shell:外殼
GUI:Gnome, KDE, Xfce
CLI: sh, csh, ksh, bash, tcsh, zsh
進程之間互不干預(yù)
在每個進程看來蒜哀,當前主機上只存在內(nèi)核和當前進程,進程是程序的副本吏砂,進程是程序執(zhí)行的實例
bash:
? ?1凡怎、命令歷史、命令補全
? ?2赊抖、管道统倒、重定向
? ?3、命令別名
? ?4氛雪、命令行編輯
? ?5房匆、命令行展開
? ?6、文件名通配
? ?7报亩、變量
? ?8浴鸿、編程
命令行編輯:
光標跳轉(zhuǎn):
? ? Ctrl+a:跳到命令行首
? ? Ctrl+e:跳到命令行尾
? ? Ctrl+u:刪除光標至命令行首的內(nèi)容
? ? Ctrl+k:刪除光標至命令行尾的內(nèi)容
? ? Ctrl+l:清屏
? ? Ctrl+ <- or -> :左右跳一個單詞
命令歷史:
查看命令歷史:history
bash會自動記錄過去執(zhí)行過的命令,保存在緩沖區(qū)中弦追,上下鍵可找到
? ? -c:清空命令歷史
? ? -d OFFSET [n](行數(shù)):刪除指定位置的命令
? ? ? ? 例:#-d 400 3 :總400開始刪三行
? ? -w:保存命令歷史至歷史文件中
? ? HISTSIZE:保存命令大小【緩沖區(qū)大小】(1000條左右)
命令歷史的使用技巧:
? ? !n:執(zhí)行命令歷史中的第n條命令岳链;
? ? !-n:執(zhí)行命令歷史中的倒數(shù)第n條命令;
? ? !!:執(zhí)行上一條命令劲件;
? ? !string:執(zhí)行命令歷史中最近一個以指定字符串開頭的命令
? ? !$:引用前一個命令的最后一個參數(shù);
? ? Esc , .:同上
? ? Alt + .:同上
命令補全:tab補全
? ? ? 小技巧:兩下tab掸哑,給出指定相關(guān)的所有命令
路徑補全:同上
命令別名:
? ? alias CMDALIAS = 'COMMAND [options] [arguments]'
? ? 在shell中定義的別名僅在當前shell生命周期中有效;別名的有效范圍僅為當前shell進程零远;
? ? ualias CMDALIAS:撤銷命令
命令替換: $(COMMAND),反引號:`COMMAND`
把命令中某個子命令替換為其執(zhí)行結(jié)果的過程
bash支持的引號:
? ? ` `:命令替換
? ? " ":弱引用苗分,可以實現(xiàn)變量替換
? ? ' ':強引用,不完成變量替換
文件名通配:globbing
? ? *:任意長度的任意字符
? ? ?:任意單個字符
? ? []:匹配指定范圍內(nèi)的任意單個字符
? ? ? ? ? [abc], [a-m], [a-z], [A-Z], [0-9], [a-zA-Z], [0-9a-zA-Z]
? ? ? ? ? ?[:space:]:空白字符
? ? ? ? ? ?[:punct:]:標點符號
? ? ? ? ? ?[:lower:]:小寫字母
? ? ? ? ? ?[:upper:]:大寫字母
? ? ? ? ? ?[:alpha:]:大小寫字母
? ? ? ? ? ?[:digit:]:數(shù)字
? ? ? ? ? ?[:alnum:]:數(shù)字和大小寫字母
# man 7 glob ? ? ?查看手冊
? ? [^]:匹配指定范圍之外的任意單個字符
? ? ? ? ls [^0-9]*列出以非數(shù)字開頭的文件
?[[:alpha:]]*[[:space:]]*[^[:alpha:]]
字母開頭中間空格字母結(jié)尾的文件
練習(xí)
顯示所有以a或m開頭的文件牵辣;
? ?ls [am]*
顯示所有文件名中包含了數(shù)字的文件摔癣;
? ?ls *[0-9]*
? ?ls *[[:digit:]]*