1. 程式人生 > >Shell訓練營Day1

Shell訓練營Day1

Day 1
1.shell 基礎知識
(1) 什麼是shell
shell是一個命令直譯器,支援特定的語法(例如判斷、迴圈選擇等),提供使用者和機器之間的互動。
CentOS7預設shell為bash(Bourne Agin Shell)

(2)歷史命令
history命令:檢視歷史命令
.bash_history:歷史命令的存放檔案,預設儲存1000條
可以設定變數HISTSIZE=5000 或在/etc/profile中修改永久生效
HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "變數可以儲存命令執行的時間
!!:上一條命令 !n:上第n條命令 !word:以what開頭的第一條歷史命令。
(3)補全命令及設定命令別名
tab鍵補全命令,敲一下展示精準匹配;敲兩下展示以輸入內容為開頭的所有命令。
引數補全,安裝bash-completion
alias別名給命令重新起個名字 例:alias startmysql="systemctl start mysqld.service"
各使用者都有自己配置別名的檔案,位於家目錄下的.bashrc
(4)萬用字元及輸入輸出重定向
:匹配任意多個字元。例:ls -ll 1.

可以匹配到1.sh 1.txt 1.log等等
?:匹配任意單一字元。例:ls -ll ?.sh 可以匹配到1.sh 2.sh 3.sh等等
匹配一定範圍內的字元:ls -ll [1-9a-z].sh 可以匹配到1.sh 2.sh a.sh c.sh等等
ls {1,3,a}能夠匹配到1.sh 3.sh a.sh

重定向輸出:
>:覆蓋重定向
可以將一條命令的輸出重定向到一個檔案中。例如:cat /etc/passwd > 1.txt
>>:追加重定向:
與>的區別為不會覆蓋輸出到的檔案中原有的內容
錯誤重定向:2>
可以將系統列印的錯誤資訊或者命令執行的錯誤資訊重定向到一個檔案中。例如:lesss 1.txt 2> error.txt  可以在error.txt中看到未找到“lesss”命令這樣的錯誤資訊

& 是一個描述符,如果1或2前不加&,會被當成一個普通檔案。
1>&2 意思是把標準輸出重定向到標準錯誤.
2>&1 意思是把標準錯誤輸出重定向到標準輸出。
&>file意思是把標準輸出和標準錯誤輸出都重向到檔案file中