一、基本命令
1. 輸出命令 —— echo
echo “要輸出的字符串” //將字符串打印到屏幕上。
echo [選項] [輸出內容]
-e :支持反斜線控制的字符轉換。
\a \b退格鍵,刪除 \n \r \v \t \0 \x
顏色選項:
\e[1;31m 文字開始着色
\e[0m 結束着色
其他:
30m黑色;31m紅色;32m綠色;33m黃色;
34m藍色;35m洋紅色;36m青色;37m白色
echo $SHELL //打印環境變量
2. 別名命令 —— alias:
臨時增加別名:
alias ls='ls --color=auto'
重啓後失效。
臨時刪除別名:
unalias ls;
永久修改別名:
用戶環境變量位置:~/.bashrc
在環境變量中修改別名記錄
1. alias vi='vim' //vim比vi的功能強大。使用vim代替vi
2. source .bashrc //調用文件,可直接生效(不用重新登入)
命令執行時的優先級:
1.優先執行絕對路徑或相對路徑執行的命令。
2.其次執行別名。
3.然後纔是Bash的內部命令。(別名優先於內部命令)
4.按$PATH查找的環境變量中的第一個外部命令。
3. bash的快捷鍵:
ctrl + C //強制退出
ctrl + l //清屏 clear
ctrl + u //從光標出刪除到行首
ctrl + a //光標移到行首
ctrl + e //光標移到行尾
ctrl + z //命令放入後臺
ctrl + r //在歷史命令中搜索
4. 關於Bash:
執行歷史命令:
!n 執行第n條命令
!! 執行上一條命令
!字符串 執行最後一次以此字符串開頭的命令。
腳本執行方式:
1.chmod 755 hello.sh (主要方式)
./hello.sh
2.bash hello.sh
shell版本:
/etc/shells 文件中表明支持的shell版本。
sh 進入子sh版本的shell解釋器。
二、語法規則:
1.輸入、輸出重定向
標準輸入:0 鍵盤
標準輸出:1 顯示器
錯誤輸出:2 顯示器
正確輸出:
命令 > 文件 >覆蓋,>>追加
錯誤輸出:
命令 2>文件 >覆蓋,>>追加,注意'>'與文件之間不能有空格。
正確和錯誤都寫在指定的文件中:
命令 &> 文件
命令 > 文件 2>&1 //覆蓋
命令 &>> 文件
命令 >> 文件 2>&1 //追加
/dev/null //Linux的黑洞
ls &>/dev/null //將結果直接丟棄
正確的日誌放在一個文件,錯誤結果放在另一個文件
命令 >> 文件1 2>>文件2
輸入重定向:
命令 < 文件 //將文件做爲輸入
命令 << 引號 ... 引號 //將引號(單雙都可)之間的內容作爲輸入數據
2.符號說明
符號 | 說明 |
---|---|
? | 匹配一個字符 |
* | 匹配任意內容 |
[a,b,c] | 匹配括號中的某一個字符。 |
[^a] | 匹配不是a的字符 |
‘ ’ | 單引號:無視特殊字符,將其當做字符串輸出 |
“ ” | 雙引號:特殊、轉移字符還會起作用。 |
` ` | 反引號:將命令結果複製給變量: aa=`ls` echo &aa |
$() | 同反引號,引用系統命令: aa=$(ls) |
# | 註釋 |
$ | 調用變量的值 |
\ | 轉義符,特殊符號失去作用 |
: | 命令順序執行,命令之間沒有任何邏輯關係。 |
&& | 只有當前面的命令正確執行,纔會執行後面的命令,不只判斷前一個,還判斷前幾個。 |
|| | 前面的命令正確執行,則後面的命令錯誤執行;前面的命令錯誤執行,則後面的命令正確執行 |
| | 管道,前一個命令的結果給後一個命令處理 |
3.舉例
more 文件
文件內容分屏顯示
netstat -an | grep establish | wc -l
服務器連接了多少人。(統計有多少監聽端口處於establish)
命令 && echo "yes" || echo "no"
命令正確執行則輸出yes,否則輸出no。
shell版“helloworld”:
#!/bin/bash
#The first program
echo -e "\e[1;34m 這是HelloWorld.sh \e[0m"