shell介紹,命令歷史,命令補全和別名 ,通配符, 輸入輸出重定向

shell介紹

shell是一個命令解釋器,提供用戶和機器之間的交互;shell

支持特定語法,好比邏輯判斷、循環;centos

每一個用戶均可以有本身特定的shell;bash

CentOS7默認shell爲bash (Bourne Agin Shell);centos7

還有zsh、ksh等。spa

命令歷史

咱們使用過的命令,會存放在用戶家目錄下/root/.bash_history內存

history命令,能夠查看使用過的命令歷史,最多可存1000條io

history -c命令,能夠將當前內存的命令歷史清空,可是不會清空配置文件zsh

注意:剛剛敲過的命令,只有當用戶正常退出終端時,纔會保存到.bash_history文件中去。變量

環境變量HISTSIZE在/etc/profile中定義,能夠vi /etc/profile,找到HISTSIZE並修改參數配置

而後執行命令# source /etc/profile,使修改生效

修改命令歷史格式

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"

該格式只適用於當前終端,若想環境變量生效,須要# vi /etc/profile,在配置文件中添加

HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S"

而後source /etc/profile,打開其餘終端,也會生效

命令歷史永久保存,運行chattr +a ~/.bash_history(只能追加,不能刪除)

!! 表示執行最後一條命令

!n 表示運行第幾條命令(n表明數字)

!echo 表示會在命令歷史裏面,最近一次執行以 echo 開頭的命令

命令補全和別名

命令補全

按一次tab能夠補全一個命令、一個路徑或者是一個文件名;連續按兩次tab鍵,則把全部的命令或者文件名都列出來。在centos7裏支持參數自動補全,須要安裝安裝包bash-completion。

而後重啓下系統(reboot),纔會生效。

alias別名

咱們能夠經過alias把一個經常使用且很長的指令另取名一個簡單易記的指令,若是不想用了,也可使用unalias取消別名,直接執行alias命令,則會看到系統中全部的別名。

alias存放:

第一個在用戶家目錄下.bashrc文件下

第二個在 /etc/profile.d 目錄下的 colorgrep.sh 、colorls.sh 這些腳本中定義的

通配符

通配符*,表示零個或多個字符

通配符?,表示任意一個字符

中括號 [],ls [0-9].txt表示0-9範圍內的任意.txt文件

花括號 {},ls {1,2,3}.txt表示括號內任意.txt文件

輸入輸出重定向

cat 1.txt > 2.txt,大於號>表示將前面的命令輸出,直接輸入到後面的文件裏面去,這裏是指將1.txt的內容重定向到2.txt裏面去,以前2.txt的內容會被刪除。

cat 1.txt >> 2.txt,兩個大於號>>表示追加,不會刪除2.txt的內容,將1.txt的內容追加到2.txt裏面去。

ls aaa.txt 2> err,2大於號表示將命令產生的錯誤信息輸入到一個文件裏去

ls aaa.txt 2>> err,表示錯誤信息追加劇定向

ls [12].txt aaa.txt &> a.txt, 表示將正確和錯誤的輸出信息都輸入到a.txt中

ls [12].txt aaa.txt &>> a.txt,表示將正確和錯誤的輸出信息都追加到a.txt中

 ls [12].txt aaa.txt >1.txt 2>a.txt

wc -l < 1.txt ,表示把1.txt文件內容輸入重定向到命令wc -l 中去,(左邊必需要是命令,不能由文件到文件,不多用,瞭解便可)

相關文章
相關標籤/搜索