bash定義: linux使用版本的shell叫作的「Bourne again Shell」,簡稱bash。linux
type:查看是否爲shell的內置命令shell
1.bash
echo $變量名: 取用變量 ,設置規則介紹略過。spa
unset 變量名 : 取消設置的變量 線程
2.排序
env :觀察環境變量 (environment的縮寫)input
set: 觀察環境變量和自定變量(set 還能夠幫咱們設置整個指令輸出/輸入的環境。 例如記錄歷史命令、顯示錯誤,這個懶得寫筆記了好累啊)it
列舉幾個變量:ast
PS1變量:這個東西就是咱們的「命令提示字符」.能夠用man bash去看看PS1 , echo ${PS1}變量
$ : 目前這個線程的pid代號 echo $$
? : 上一個指令的回傳值, 正確時候回傳0,錯誤時候回傳非零 echo $?
export 將自定變量轉爲環境變量
locale查看語系變量,總體系統的默認語系定義在 /etc/locale.conf
3.
read:讀取來自鍵盤輸入的變量
選項與參數:
-p :後面能夠接提示字符
-t :後面能夠接等待的「秒數
declare 宣告變量的類型
4.
例echo ${path#/*local/bin:}
#從前日後刪最短的那個, ##從前日後刪符合取代文字的最長的那個。 從後往前%,%%
${變量/舊字串/新字串} 替換第一個舊字符
${變量//舊字串/新字串}替換全部的舊字符
5.
變量設置方式str 沒有設置str 爲空字串str 已設置非爲空字串
str沒值 str爲空串 str有值
var=${str-expr} var=expr var= var=$str
var=${str:-expr} var=expr var=expr var=$str
6.
別名alias,unalias
歷史命令history ,當期用的操做記錄在~/.bash_history
7.配置文件解釋
/etc/profile :login shell 纔會讀/etc/profile還會去調用外部的設置數據。在 CentOS 7.x 默認的狀況下,下面這些數據會依序的被調用進來: /etc/profile.d/*.sh
/etc/locale.conf : 這個文件是由 /etc/profile.d/lang.sh 調用進來的
~/.bash_profile : login shell 纔會讀,bash 在讀完了總體環境設置的 /etc/profile 並藉此調用其餘配置文件後,接下來則是會讀取使用者的我的配置文件。所讀取的我的偏好配置文件其實主要有三個~/.bash_profile, ~/.bash_login, ~/.profile 其實 bash 的 login shell 設置只會讀取上面三個文件的其中一個, 而讀取的順序則是依照上面的順序。
~/.bashrc : nonlogin shell 時,該 bash 配置文件僅會讀取 ~/.bashrc
/etc/bashrc : CentOS 7.x 還會主動的調用 這個文件。因爲這個 ~/.bashrc 會調用 /etc/bashrc 及 /etc/profile.d/*.sh , 因此,萬一你沒有 ~/.bashrc (可能本身不當心將他刪除了),那麼你會發現你的 bash 提示字符可能會變成這個樣子:-bash-4.2$ 由於並無調用 /etc/bashrc 來規範 PS1 變量(這個我還真遇到過。不過當時不知道爲何特別鬱悶)
/etc/man_db.conf : 規範了使用 man 的時候, man page 的路徑到哪裏去尋找。
~/.bash_history : 歷史命令就記錄在這裏
~/.bash_logout : 當我登出 bash 後,系統再幫我作完什麼動做後才離開
8.
組合按鍵執行結果
Ctrl + C 終止目前的命令
Ctrl + D 輸入結束 (EOF),例如郵件結束的時候;
Ctrl + M 就是 Enter 啦!
Ctrl + S 暫停屏幕的輸出
Ctrl + Q 恢復屏幕的輸出
Ctrl + U 在提示字符下,將整列命令刪除
Ctrl + Z 「暫停」目前的命令
符號 :
* 表明「 0 個到無窮多個任意字符
?表明「必定有一個」意字符
[ ] 一樣表明「必定有一個在括號內」的字符(非任意字符)。例如 [abcd] 表明「必定有一個字符, 多是 a, b, c, d 這四個任何一個
[ - ] 、[^ ]
9
1. 標準輸入 (stdin) :代碼爲 0 ,使用 < 或 << ; <<表明結束符
2. 標準輸出 (stdout):代碼爲 1 ,使用 > 或 >> ;>覆蓋的方式輸入,>>累加的方式輸入
3. 標準錯誤輸出(stderr):代碼爲 2 ,使用 2> 或 2>> ;
/dev/null 垃圾桶黑洞
命令執行的判斷依據 ; && ||
10管道
管線命令僅會處理 standard output,對於 standard error output 會予以忽略
管線命令必需要可以接受來自前一個指令的數據成爲 standard input 繼續處理才行。
擷取命令: cut, grep
排序命令: sort, wc, uniq
雙向重導向: tee
字符轉換命令: tr, col, join, paste, expand
分區命令: split
參數代換: xargs
stdin 與 stdout 能夠利用減號 "-" 來替代
這麼多全敲了。脖子疼。。。T_T
ctrl+a、ctrl+e讓光標移動到最前、後面