檢視linux支援的shell指令碼型別
# cat /etc/shells
/bin/sh
/bin/bash
/sbin/nologin
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
最早sh就叫sh,也叫bsh,發展來自與b語言,之後出現了csh,它類似於c語言,在csh的基礎之上出現了ksh,但是ksh為商業版,所有在linux系統出現後,就開發了bash,集合了sh,csh以及ksh的優點;
現在最新的shell編譯器也有zsh,但是使用較少;
1. 因為linux是多使用者,多程序的;所以每個使用者應用的程式是相同的,但是程序是不一樣的;程序可以理解為同一程式的轉殖;它支援每個使用者對自己的bash程序進行修改,但是實際上使用的bash程式都是一樣的; linux系統如何來區分每個使用者的bash程序能,這就是通過pid來進行區分;
2 bash的特性:命令列的處理:ctrl+a ctrl+e ctrl+u ctrl+l ctrl+w ctrl+k
ctrl+u 刪除游標前的字元
ctrl+k 刪除游標後的字元
ctrl+w 以空格為分隔符,去刪除檔案
ctrl+r 進入乙個互動介面,搜尋最近一次使用的命令(要輸入string)
命令歷史:history
-c-d 500
-d 500 10
-w //儲存到家目錄的.bash_history檔案中去,這樣的話,即使重啟,或者-c清楚,也會保留history的命令記錄
命令別名
alias
unalias
命令的替換
$(命令)
# echo "today is $(date)"和``實現的功能相同
# echo "today is `date`"
``:強制轉意
tab鍵的應用
1 補全命令
2 補全路徑
當輸入後需要補全的命令或者路徑不是唯一的時候,所有選項都會顯示出來;
當需要顯示的選項過多時,會提示;
檔案的萬用字元
\ //轉意字元
^ //以什麼開頭
$ //以什麼結尾
//匹配在內某個字元,指定範圍,[^0-9] 代表取反
[ - ] //輸入[ - ]所標記的範圍字元
. //某乙個任意字元
* //0個或者多個任意的字元
//匹配前乙個字元或表示式n次到m次
//最少n次
//只有n次
//最多m次
grep 「^\\$」 檔名 //以$開頭
+ //匹配前乙個字元或一次以上
? //匹配前乙個字元或表示式0次一次
| //或
()//分組
SHELL 基礎知識
1 什麼是shell?shell的本意是 殼 的意思,其實已經很形象地說明了shell在linux系統中的作用。shell就是圍繞在linux核心之外的乙個 殼 程式,使用者在作業系統上完成的所有任務都是通過shell與linux系 統核心的互動來實現的。shell本身是乙個c語言編寫的程式,是使用...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...
shell 基礎知識
預設變數 傳入指令碼的命令列引數個數 所有命令列引數值,在各個引數值之間留有空格 0 命令本身 shell檔名 1 第乙個命令列引數 2 第二個命令列引數 區域性變數 在變數首次被賦值時加上local 關鍵字可以宣告乙個區域性變數,例s3 bin bash hello var1 echo hello...