天天看點

8.1 shell介紹8.2 指令曆史8.3 指令補全和别名8.4 通配符8.5 輸入輸出重定向

8.1 shell介紹

1. shell是一個指令解釋器,提供使用者和機器之前的交換

2. 每個使用者都可以有自己特定的shell

3. CentOS7預設shell是bash(Bourne Agin Shell); shell還有zsh、ksh等

zsh、ksh這兩種shell指令沒有安裝,

可以用yum list搜尋下這兩個指令的安裝包:

[root@hao-01 ~]# yum list |grep zsh

[root@hao-01 ~]# yum list |grep ksh

4. shell有自己的特定文法,比如邏輯判斷、循環

8.2 指令曆史

1. 檢視指令曆史内所有指令:

[root@hao-01 ~]# history

2. 檢視指令曆史存放的檔案路徑(使用者夾目錄.bash_history):

ls /使用者夾目錄/.bash_history

[root@hao-01 ~]# ls /root/.bash_history

注意:非正常指令退出終端,本次輸入過的指令,不會儲存到這個檔案裡,

再次打開終端,指令曆史裡也找不到(不完整)!!!

3. 檢視指令曆史存放檔案儲存的指令最大數值:

[root@hao-01 ~]# echo $HISTSIZE

4. 修改 指令曆史存放檔案儲存的指令最大數值:

[root@hao-01 ~]# vi /etc/profile

修改存儲最大數值:HISTSIZE=最大數值(數字)

5. 即刻生效 /etc/profile的修改:

[root@hao-01 ~]# source /etc/profile

6. 環境變量,指令曆史指令标記 年月日,時分秒(隻限目前終端生效!) :

[root@hao-01 ~]# HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

7. 修改 指令曆史指令标記的日期時間(永久生效的!) :

添加:指令曆史指令标記日期時間的環境變量: HISTTIMEFORMAT="%Y/%m/%d %H:%M:%S "

8. 即刻生效 /etc/profile的修改:

9. 檢視指令曆史内所有指令:

10. 給.bash_history存放曆史指令檔案添加特殊a權限(避免被修改删除):

chattr +a  /使用者夾目錄/.bash_history

[root@hao-01 ~]# chattr +a /root/.bash_history

11. 執行上一條指令:!!

[root@hao-01 ~]# !!

12. 執行指令曆史編号對應的指令:

!指令曆史指令編号

[root@hao-01 ~]# !978

13. 執行以ls開頭,最近執行過得指令:

[root@hao-01 ~]# !ls

8.3 指令補全和别名

1. 敲一下 Tab鍵,參數可補全,需要安裝bash-completion包:

[root@hao-01 ~]# yum install -y bash-completion

2. 重新開機系統(生效):

[root@hao-01 ~]# reboot

3. 敲一下 Tab鍵: 自動補全指令、路徑 、centos7還可以補全參數

4. 敲兩下 Tab鍵: 列出以輸入的指令為開頭的多個指令

5. 設定 自定義别名指令 :

alias 自定義的别名指令='原指令'

[root@hao-01 ~]# alias haols='ls'

6. 列出所有别名指令(alias) :

[root@hao-01 ~]# alias

7. 檢視 自定義的alias(别名指令)存放檔案:

ls  /使用者夾目錄/.bashrc                            

[root@hao-01 ~]# ls /root/.bashrc

8. 檢視 别名指令存放腳步所在目錄:

[root@hao-01 ~]# ls /etc/profile.d/

9. 取消(删除) 自定義别名指令:

unalias  自定義的别名指令

[root@hao-01 ~]# unalias haols

8.4 通配符

1. 目前目錄列出,包含.txt的檔案(*表示多個任意的字元) :

[root@hao-01 ~]# ls *.txt

[root@hao-01 ~]# ls *txt

2. 目前目錄列出,(比對)所有1開頭的檔案或目錄 :

[root@hao-01 ~]# ls 1*

3. 目前目錄列出, 包含.txt檔案(?表示一個任意的字元) :

[root@hao-01 ~]# ls ?.txt

4. 目前目錄列出,[]内範圍數字包含.txt的檔案(數字最大範圍0-9) :

[root@hao-01 ~]# ls [0-9].txt

比對出指定數字包含.txt的檔案:

[root@hao-01 ~]# ls [09].txt

5. 目前目錄列出,[]内範圍字母包含.txt的檔案(字母範圍 a-z或A-Z) :

[root@hao-01 ~]# ls [a-z].txt

比對出指定字母包含.txt的檔案:

[root@hao-01 ~]# ls [az].txt

6. 目前目錄列出,[]内範圍數字和字母包含.txt的文 :

[root@hao-01 ~]# ls [0-9a-z].txt

7. 目前目錄列出,[]内數字開頭帶有.txt的檔案 :

(方括号隻支援單數,數字最大到9)注意:方括号每個字元之間可不加逗号分割!!!)

[root@hao-01 ~]# ls [1,2,3,4,11,22,33,44].txt

8. 目前目錄列出,{}内數字開頭帶有.txt的檔案(花括号支援多位字元) :

注意:花括号每個字元之間必須加逗号分割!

[root@hao-01 ~]# ls {1,2,3,4,11,22,33,44}.txt

8.5 輸入輸出重定向

輸出:指令結果,輸出到右邊檔案

1. 輸出重定向:注意:>(一個大于号)後面檔案原有内容會被删除)

前面指令的輸出結果,輸出到後面檔案(原有内容被删): 前面指令 >  後面檔案

[root@hao-01 ~]# cat 1.txt > 2.txt

2. 輸出追加重定向:注意:>>(兩個大于号)後面檔案原有内容不會被删除)

前面指令的輸出結果,追加到 >後面檔案(原有内容不會删): 前面指令 >>  後面檔案

[root@hao-01 ~]# cat 1.txt >> 2.txt

3. 輸出錯誤指令輸出重定向:

錯誤指令的輸出結果,輸出到後面檔案(原有内容被删):前面錯誤指令  2>  後面檔案

[root@hao-01 ~]# cataa 1.txt  2>  2.txt

[root@hao-01 ~]# cat 2.txt

4. 輸出錯誤指令追加重定向:

錯誤指令的輸出結果,追加到後面檔案(原有内容不會删):前面錯誤的指令 2>>  後面檔案

[root@hao-01 ~]# cataa 1.txt  2>>  2.txt

輸入:檔案内容,輸入到左邊指令

1. 把1.txt内容,輸入到wc -l指令執行:

指令 <  檔案

[root@hao-01 ~]# wc -l <  2.txt

本文轉自 主内安詳 51CTO部落格,原文連結:http://blog.51cto.com/zhuneianxiang/2059488,如需轉載請自行聯系原作者

繼續閱讀