shell:外殼程式
gui:gnome,rde,xfce
gli:sh,csh(接近c語言),ksh(商業化)---->bash最強大功能遵循開源,zsh也比較強大但沒有流行
當前所有系統預設都是bash可以支援:
程式:唯一
程序:程式的副本,程式的例項(帶有核心管理的生命週期)
程序:每個程序不知道,當前主機上只存在核心和當前程序,不知道其他程序的存在。
使用者工作環境:
bash:#管理員
$普通使用者
shell存在子shell,shell,子shell存在包含關係
我們可以連續bash三次通過pstree檢視下bash命令最後通過exit退出
為什麼要說這個包含關係:
那麼剛才說的shell是個程序,每個程序不知道,當前主機上只存在核心和當前程序,不知道其他程序的存在。
所以如果存在包含關係情況我們需要做的是處理許可權的話,那麼不同父子的程序許可權是互不影響的。
那麼還有個注意點sh特性的話,父類和子類可能不一樣那麼bash下面子類可以是csh也可以是ksh
識別當前執行的是哪種shell刪除單詞
輸入control+w
輸入control+z掛起程式
刪除行 control+ubash特性:終止執行control+c,如果不生效則需要control+z掛起程式然後過一會kill掉掛起的程式。
1、命令歷史,命令補全
2、管道,重定向
3、命令別名
4、命令列編輯
5、命令列展開
6、檔名通配
7、變數
8、程式設計----以後就是所謂的指令碼
!$:引用前乙個命令的最後乙個引數。nano !$開啟上次檔案,因為最後的乙個引數是檔案
esc,.
alt+.
以上是三個命令都可以
補全命令:
tab鍵第一次可以補全根據輸入內容匹配,如果補不全敲擊兩次
規則:path路徑補全命令
命令別名:
定義的別名只在當前程序的生命週期中有效,關閉後下次需要重新輸入
alias
例如dos命令cls清屏
那麼我們linux命令也想要用cls那麼我們可以給clear起別名
alias cls=clear
假如clear有空格,那麼我們需要將其用單引號括起來
bash 也有配置檔案,那麼我們需要讓所有使用者都可以實現通過別名進行操作那麼我們可以在配置檔案修改,具體修改位置在程式設計裡面寫。
那麼我們不想要別名了該如何撤銷,我們可以通過
ualias cls那麼我們的命令別名就被取消了
\cmd假如命令別名和命令相同需要加上反斜線
命令替換$(command),反引號esc下面的那個·command·:
把命令中某個子命令替換為其執行結果的過程
echo 」the current directory /root「
echo 」the current directory is $(pwd)「可替換為
echo 」the current directory is · pwd ·「
我們得到的結果變了我們將其結果改變了
如何獲取時間,date +%f-%h-%m-%s
那麼我們得到結果如同
2016-09-24-17-54-35
那麼我們要在當前目錄將其建立為file-2016-09-24-17-54-35.txt檔案呢
touch ./file-$(date +%f-%h-%m-%s).txt
那麼這裡說明下引號的使用:··:命令替換
""弱引用,可以實現變數替換
『』:強引用,不完成變數替換
弱引用和強引用放在變數的時候說明.
檔名通配(globbing):
通過某個符號替換某些檔名
:匹配任意長度的任意字元
?:匹配乙個任意字元
【】:匹配指定範圍內的任意單個字元
【^】:匹配範圍內的任意單個字元
【:punct:】所有的標點符號
【:space:】所有的空白字元
【:lower:】小寫字母
【:upper:】大寫字母
【:alpha:】大小寫字母
【:digit:】數字
【:alnum:】數字和大小寫字母
我們可以根據man 7 glob檢視所有的上述命令
檔名如何通配:
建立多個檔案touch abc wer 123 ad34 a123
以乙個字母開頭,中間有空格後面結尾是跟著數字的檔案ls 【a-za-z】*【【:space:】】*【0-9】 或者寫成:【【:alpha:】】*【【:space:】】*【【:digit:】】
以乙個字母開頭,
以a開頭後面跟任意字元的檔案 ls a----檢視所有
Shell程式設計實戰
1 需求分析 根據系統管理的需求,分析指令碼要實現的功能 功能實現的層次 實現的命令與語句等 2 命令測試 將要用到的命令逐個進行測試,以決定使用的選項 要設定的變數等 3 指令碼程式設計 將測試好的命令寫入指令碼檔案中,並通過各種語句將命令執行的結果儲存 判斷或者發出警報等 4 測試調優 1 對指...
shell程式設計實戰(二)
bin bash 清屏clear verbose 0 help 0 if 1 v then verbose 1 fi 列印幫助資訊 if 1 h then echo hinv echo v verbose echo h help exit fi 獲取作業系統位數 mach uname m 獲取記憶體...
Linux命令與shell程式設計大全
命令 mkdir 建立目錄 mkdir p 遞迴式去建立巢狀目錄 rmdir 刪除空目錄 cp r 將已有目錄複製到另一目錄下 cat more 檢視檔案下內容 touch 建立檔案 rm f 強制刪除檔案 rm r 遞迴刪除 mv 剪下 echo 輸出內容到控制台 echo 重定向 echo 內容...