shell外殼:GUI:Gnome、KDE、Xface
CLI:sh、csh、ksh、bash、tcsh。zsh
程序:
進程:進程是程序的副本,是程序執行的實例,每個進程認爲他執行的當前程序只支持它自己。,每個進程只看到內核和當前進程,它看不到這個程序的其它進程。
shell 支持子shell,並且子shell可以不是與父不是同一種shell
bash特性:1、命令歷史
2、管道、重定向
3、命令別名
4、命令行編輯
5、命令行展開
6、文件名統配
7、變量
8、編程
1、命令行編輯:
光標移動:Ctrl+a :跳到行首。
ctrl+e:跳到行尾
ctrl+d:刪除光標處字符
ctrl+u:刪除光標處到行首
ctrl+k:刪除光標處到行尾
ctrl+(左右鍵盤):一次移動一個單詞
ctrl+l:清屏
2、歷史命令:history:查看歷史命令
-c:清空歷史記錄
-d:刪除特定某行,或者連續的幾行的命令
-w:將緩衝區的命令寫至歷史文件
.bash_history:記錄操作歷史記錄
環境變量:HISTSIZE:history環境變量,默認爲1000個
命令歷史的使用記錄:上下箭頭
!數字:執行歷史命令中的第N條命令。
!-數字:執行歷史命令中的倒數第N條命令。
!!:執行上一條命令
! string:執行最後一次與string想匹配的命令
!$:引用上面最後一個命令的最後一個參數。
esc 鬆開點。
alt+. 都是引用上一個命令的最後一個參數
命令不全:在path環境變量下搜索補全。
路徑補全:在目錄下查找並不全命令
命令別名:alias:僅在當前shell生命週期中有效
alias 名字=“命令 可以加參數”
alias:顯示當前所有別名
撤銷:unalias
命令替換:把命令中某個命令替換爲其執行結果的過程。
echo “ the corrent directory is $(pwd).”
[root@LAB1 ~]# echo “he corrent directory is $(pwd).”
the corrent directory is /root.”
時間格式:+%F-%H-%M-%S
命令替換:$(命令) 或者`命令`
bahs中的引號
··:命令替換(!前面的那個反引號)
“”:弱引用,可以實現變量替換
‘’:單引號,強引用,不能實現變量替換。
文件名通配:globbing
*:任意長度的任意匹配
?:單個字符的任意匹配
[]:制定範圍內的任意匹配
[^]:制定範圍外的任意匹配
[:space:]:空格字符
[:punct:]:標點符號
[:lower:]:小寫字符
[:upper:]:大寫字符
[:alpha:]:大小寫字符
[:digit:]:數字
[:alnum:]:數字和大小寫字符
[^[:alpha:]]:非字母
系統設定:默認標準輸入設備:標準輸入: STDIN:鍵盤:0
默認標準輸出設備:標準輸出:STDOUT:屏幕顯示器:1
默認錯誤輸出:STDERR:屏幕:2:
I/O重定向
輸出重定向:> 追加輸出 : >>
輸入重定向:<
例如:ls /var > /tmp/aaa.out
2>:錯誤輸出重定向
2>>:追加的方式實現錯誤輸出重定向。
例如:ls /varr 2> /tmp/err.out
ls /var > /tmp/aab.out 2> /tmp/erra.out
&> :重定向標準輸出或者錯誤輸出到同一個文件中
ls /varrr &> /tmp/aac.out
字符轉化:tr
tr 'a-z' 'A-Z' < /tec/fstab
<< :在此處生成文檔(輸入結束)
<< EOF 或 <<END
cat >> /tmp/myfile.txt <<EOF 鍵盤輸入的文件保存在myfile文檔中
管道命令: 命令1|命令2|命令3
echo "Hello word" |tr 'a-z' 'A-Z'
cut -d : -f1 /etc/passwd /sort -n
tee:多重管道
echo ‘hello word ’ |tee /tmp/a.out. hello word即輸出到屏幕也輸出到a.out文檔中
文本查找:grep egrep fgrep
grep:Global Research 根據某種模式去搜索文本,並將符合模式的文本輸出
moshi:pattern:文本字符和正則表達式的元字符組成的匹配條件
grep: -i:忽略大小寫
--color:匹配上的顏色顯示
-v:反向查找(顯示沒有匹配上的)
-o:只顯示匹配上的字符串
正則表達式:Regular Expression REGEXP
本地元字符:.:匹配任意單個字符
*:匹配前面的字符任意次
.*:任意長度的任意字符
\?:次數匹配,匹配前面的字符至多一次
\{m,n\}:匹配前面的字符至少m次,至多n次。
系統別的地方的元字符:* :任意長度的多個字符
?:任意單個字符
[ ]:制定範圍
[^]::取反