8.1 shell介紹
8.2 命令歷史
8.3 命令補全和別名
8.4 通配符
8.5 輸入輸出重定向
一、shell介紹
- shell是一個命令解釋器,提供用戶和機器之間的交互
- 每個用戶都可以有自己特定的shell
- CentOS7默認shell爲bash(Bourne Agin Shell)
- 還有zsh、ksh等,這shell默認是不安裝的,使用需要進行安裝
- shell支持特定語法,比如邏輯判斷、循環(if for whell)
二、歷史命令
- 使用過的命令歷史存放在用戶家目錄下的.bash_history文件中,可以通過history命令查看命令使用歷史。
- 可以通過:echo $HISTSIZE 查看多可以存儲多少條歷史命令,默認爲:1000條。
3.history -c 可以清除歷史命令,但是不能清除.bash_history文件中的歷史命令。
4.歷史記錄只有退出終端的時候纔會保存到.bash_history文件中,非正常關閉終端使用過的命令不會保存。
5.環境變量HISTSIZE的大小可以在/etc/profile中進行修改,改爲source或者退出終端重新登錄生效
6.修改命令歷史顯示格式,顯示命令歷史的時間:
臨時生效:HISTTIMEFORMAT="%Y/%m/%d %H:%M"
永久生效:在/etc/profile中加入:HISTTIMEFORMAT="%Y/%m/%d %H:%M "
7.如果想把命令永久保存,不想別人刪除,那可以把.bash_history文件加上a權限,使文件只能添加不能刪除。
chattr -a ~/.bash_history
8.命令歷史快捷鍵
- !!: 執行最後一次執行的命令。
- !+數字 :會執行歷史中對應的數字行命令
如我想執行第1012條命令:
- !+xx:會執行以xx開頭的最後一條命令。
如我想執行最後一條mkdir命令:
三、 命令補全和別名
1.Tab鍵可以命令補全
2. Cenots 7中支持參數補全,但需要安裝bash-completion,ctrl+d退出,重新登錄後生效。
yum -y install bash-completion
安裝完成後,重新登錄就可以使用參數補全了,連按兩下tab鍵。
3. 別名
- 如果覺得有些命令比較長和繁瑣,可以使用給這些命令起一個別名,起別名的命令:alias
用法:alias 別名='具體命令'
如:
- 直接使用alias可以查看已經有的別名:
- 取消別名:unalias 別名
4、通配符
1.* :表示0或者多個任意字符
如:*.txt 列出所有以.txt結尾文件
2. ?:一個任意字符
如:?.txt 列出一個任意字符的.txt文件
3. [0-9]:方括號裏面指定範圍
如:[123].txt 會列出1.txt 2.txt 3.txt
[]也是可以支持字母的。
4. {}.txt: 列出花括號內開頭帶有.txt
如:{1,3,a}.txt 會列出1.txt 3.txt a.txt
五、輸入輸出重定向
- 輸出重定向:
1.> :左邊輸出重定向到右邊
如:cat 1.txt > 2.txt 會把1.txt的內容重定向到2.txt中
2. >> :左邊輸出追加到右邊
如:cat 1.txt >> 2.txt 會把1.txt的內容追加到2.txt中
3. 2>:錯誤重定向
如:輸入一個錯誤的命令,加上2> 它會把錯誤信息重定向到2.txt中。
4. 2>>: 錯誤追加重定向
5.&> 是 > 和 2> 結合 ,會把正確和錯誤信息全部重定向。也支持>>
- 輸入重定向
把右邊的文件輸入到左邊的命令中
如:把2.txt的內容輸入到wc -l命令中進行統計行數