shell命令基本知識點

命令歷史

# cat /root/.bash_history       //存放歷史命令的地方

# history      //查看命令歷史的條數

# echo $HISTSIZE       //查看可以保存的條數

# vim /etc/profile       //改變變量HISTSIZE的值 “/HISTSIZE” 去搜索

# source /etc/profile       //這樣才能使我們剛剛修改的值生效

# vim /etc/profile →在HISTSIZE下增加 HISTTIMEFORMAT=”%Y/%m/%d %H:%M:%S “ 改變輸出歷史的格式,例如: 923 2017/06/28 17:56:42 source /etc/profile 包括什麼時間輸入的都可以顯示!!!

# chattr +a ~/.bash_history       //永久保存輸入的歷史(a權限,只允許增加,不允許刪除)

# !!       //執行上一條命令

#!761       //查找命令第761條命令,在命令歷史中!

命令補全

參數補全,安裝bash-completion

自定義經常使用的命令,來提高效率:例如:

# alias resnet=‘systemctl restart network.service'             //但是這樣僅僅是保存在內存當中,我們要是需要長久使用,就要寫在配置文件中,家目錄下的 # .bashrc

通配符

# ls *.txt        //查看所有以.txt結尾的文件

# ls 1*         //查看以1開頭的所有文件

# ls ?.txt            //一個字符且.txt的文件

# ls ??.txt          //兩個字符且.txt的文件

# ls [0-3].txt         //包含0.txt 1.txt 2.txt 3.txt

# ls [123].txt         //包含1.txt 2.txt 3.txt

輸入輸出重定向

“>”     //重定向                   “>>”     //追加內容

# cat 12.txt > 22.txt                 //查看12.txt的內容並重定向到22.txt

# cat 12.txt >> 22.txt                    //查看12.txt的內容並追加(之前的內容不刪除)到22.txt

“2>”               //錯誤重定向                        “2>>”                   //錯誤追加重定向

後期寫shell腳本的時候會經常用到的一個命令:

# ls [12].txt txzzz.txt(沒有這個文件) >1.txt  2>b.txt              //把正確的輸出,輸出到1.txt,錯誤的輸出輸出到b.txt

管道符、作業控制

管道符:把一個命令結果的輸出傳遞到後面一個命令;

# cat 1.txt |wc -l ;             //查看1.txt 的內容 並交給後面查看有多少行 輸出~

# cat 1.txt |grep ‘aaa’                   //查看1.txt 的內容 並交給後面grep 查找 aaa

# find ./ -type f | wc -l                     //查看當前目錄下有多少個文件,然後統計輸出

案例:假如現在正在配置IP地址,當你進入vim之後,發現忘記IP地址了,然後使用“ctrl+z”去臨時返回到命令行,fg 返回到任務,也許有時候,後臺任務比較多,可以使用 jobs 來查看,然後恢復某個任務使用 fg+id ,或者把某個任務放到後臺去繼續執行 bg+id,一次性的把一個命令放到後臺去執行,# sleep 1000 & ,可以用jobs去查看。

系統內置變量

# env             //查看系統變量

# set             //查看系統自設的變量+用戶設置的變量

自定義變量:

# zhdy=winner            //設置自定義的變量

# set | grep zhdy              //查詢自定義變量中的zhdy

# unset zhdy               //取消自定義的變量

# 變量名規則:字母、數字下劃線,首位不能爲數字

# 變量值有特殊符號時需要用單引號括起來

# a=’a$bc’  # echo $a  # a$bc

# a=1;b=2  #echo $a$b  # 12

# echo $SSH_TTY               //查看自己在哪個TTY下面

#export zhdy=linux           //製作一個全局的環境變量,

環境變量配置文件

系統層次的環境變量(千萬別去更改,除非特殊要求):

/etc/profile 用戶環境變量,交互登錄才執行

/etc/bashrc 用戶不用登錄,執行shell就生效

用戶層次的環境變量(僅限於當前用戶):

~/.bashrc //自定義一些別名alias

~/.bash_profile //自定義一些變量。例:HISTSIZE=2000

~/.bash_history //自定義歷史相關配置

~/.bash_logout //自定義退出後所執行的動作

profile:用戶登錄的時候會使用到

bash:系統或者用戶執行一些shell

[root@zhdy-02 ~]# echo $PS1            //輸出左邊的一個格式

[\u@\h \W]\$

[root@zhdy-02 ~]# PS1='[\u@\h \w]\$’                  //更改格式爲絕對路徑

[root@zhdy-02 ~]#cd /etc/sysconfig/network-scripts/

[root@zhdy-02 /etc/sysconfig/network-scripts]#           //已經顯示爲絕對路徑了!!!

# PS1=’\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;36m\]\w\[\033[00m\]\$ ‘          //帶顏色的格式

當然這只是暫存在內存中,要是想要永久修改,一定要進入 # vim /etc/bashrc 去修改!


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章