1、認識Bash
通過Shell將輸入的指令與Kernel溝通,讓Kernel控制硬體工作
查看Shell:cat /etc/shell
登入後預設的shell類型記錄在/etc/passwd中,與賬戶相關
命令別名:alias lm='ls -al' #注意有無空格
協助:man bash
命令類型:type
複製代碼 代碼如下:
type ls # ls is aliased to `ls –color=auto'
type cat # cat is hashed (/bin/cat)
type cd # cd is a shell builtin
命令執行:
\[Enter]:將[Enter]轉義,按下後不執行,而是另起一行
2、Shell的變數功能
概念:同一變數,不同使用者可以有不同值,所以可以用變數來代表此值,而不用將具體的值 寫入程式,如$PATH
複製代碼 代碼如下:
顯示變數:echo $PATH
設定變數:PATH=xxx #注意空格有無
擴充變數:PATH=$PATH:xxx
取消變數:unset MAIL
查看環境變數:env
查看環境變數及自訂變數:set
PS1:提示字元設定
自訂變數轉環境變數:export
為什麼要轉成環境變數:因為子程式會繼承父程式的環境變數
語系支援
查看系統支援的語系:locale -a
查看與語系有關的變數:locale
鍵盤讀取使用者輸入read: read atest #將使用者輸入讀入atest變數
聲明變數類型 declare: declare -i sum=100+50
3、命令別名與曆史命令
別名
複製代碼 代碼如下:
alias lm='ls -al | more'
unalias lm
曆史命令
複製代碼 代碼如下:
history
4、Bash shell的作業環境
指令執行時尋找順序
相對/絕對路徑 -> alias -> bash內建 -> $PATH
bash設定檔
複製代碼 代碼如下:
login shell/non-login shell
login shell: 進入shell時需要輸入帳號密碼
non-login shell: 通過圖形介面登入,再啟動shell時無需輸入帳號密碼
設定檔
複製代碼 代碼如下:
login shell:
/etc/profile :系統整體設定
以下三個檔案按順序,如果存在,就讀取,後面的就不再讀取
~/.bash_profile
~/.bash_login
~/.profile
萬用字元
複製代碼 代碼如下:
* : 0到無窮個字元
? : 一個字元
[]: [abc] # a or b or c
[-]: [0-9] # 0 到 9
[^]: [^abc] # 不是a,b,c的一個字元
5、資料流重導向
複製代碼 代碼如下:
> :覆蓋
>>:累加
/dev/null:接收資訊但不顯示
依次執行:cmd1,cmd2,cmd3
根據上一條執行結果確定下一條
cmd1 && cmd2
cmd1 || cmd2
6、管線命令
複製代碼 代碼如下:
ls | less
cut:同一行資料分割
echo $PATH | cut -d ':' -f 5 #以':'分割,第5個資料
grep:如果一行裡有需要的資訊,就返回這一行
sort:排序
uniq:重複內容只顯示一次
wc:統計單詞數
tee:雙向重新導向
tr:刪除或替換資料
col:轉化為純文字
join:將兩個檔案中相關資訊放在一起
paste:將兩行並在一起,中間用[Tab]分開
expand:將[Tab]轉為空白格
split:將大檔案傳為小檔案