那些提升工作效率的shell命令

歡迎光臨我的博客

切換目錄

  • 注意:當前用戶是xiaochao,系統爲centos6,並且,shell命令是嚴格區分大小寫的。
  • 顯示當前目錄路徑:pwd

    pwd
    output:/home/xiaochao/Download
    
  • 切換目錄:cd

    1、使用相對路徑

    cd Download #進入當前路徑下的Download目錄
    

    2、使用絕對路徑

    cd /var/log
    
  • 點號(.)的使用

    cd . #表示進入當前目錄
    cd .. #表示進入當前目錄的上一級目錄
    cd ... #表示進入當前目錄的上兩級目錄,這個bash不支持,zsh支持。依次類推。
    
  • 波浪號(~)的使用

    • 波浪號表示用戶目錄,即環境變量$HOME的別名,對於教程環境,就是/home/xiaochao。
    • cd命令如果不加任何參數,則相當於執行cd ~ 命令。
  • 短橫號(-)的使用

    cd - 表示上一次cd命令進入的目錄,功能類似於windowns文件管理器的後腿功能。只不過,當你使用cd -進入上一次的目錄,那麼當前所在的目錄就變成了上一次目錄,舉個栗子。

    假設當前目錄是/home/xiaochao
    cd Download #當前目錄爲/home/xiaochao/Download
    cd /home/xiaochao   #當前目錄爲/home/xiaochao
    cd -    #當前目錄爲/home/xiaochao/Download
    cd -    #當前目錄爲/home/xiaochao
    cd -    #當前目錄爲/home/xiaochao/Download
    cd -    #當前目錄爲/home/xiaochao
    
  • 轉移

    當我們有兩個目錄,並且這兩個目錄裏內容一致,目錄名不一致,常見的場景是備份目錄和源目錄。在兩個目錄之間切換,可以使用cd轉移功能,舉個栗子。

    假設我們有連個目錄,/home/xiaochao/aa/bb/cc/dd,/home/xiaochao/aa.back/bb/cc/dd
    cd /home/xiaochao/aa/bb/cc/dd   #進入目錄
    cd aa aa.back   #進入/home/xiaochao/aa.back/bb/cc/dd
    

執行多個命令

  • 後一個命令依賴於前一個命令的輸出,可以是用管道(|)

    ls | wc -l  #當前目錄文件個數
    
  • 後一個命令必須等前一個命令運行成功後在運行,可以使用雙與號(&&)

    aa && ls    #只運行aa,ls不運行
    
  • 後一個命令必須等前一個命令運行完,不關心是否成功,使用單與號(&)

    aa & ls     #aa和ls都運行,但是ls必須等aa運行完。
    
  • 並行執行多個命令,使用兩個豎號(||)

    aa || ls    #aa和ls並行執行,互不影響。
    

ctrl鍵的妙用

  • ctrl+a:回到當前輸入/便在行首插入字符,不用按住方向鍵了。
  • ctrl+e:與上個組合相反,回到行尾。
  • ctrl+l:清空當前的終端界面,效果等同於clear命令。
  • ctrl+u:清空當前輸入行的所有輸入。假設你輸入了aa bb,按下這個組合鍵,aa bb就被刪掉了。
  • ctrl+y:就是把ctrl+u刪除的字符串粘貼回來。
  • ctrl+r:歷史命令搜索。按下ctrl+r後,會搜索包含你輸入的字符串的命令。
  • ctrl+c:終止當前終端正在運行的程序。
  • ctrl+d:推送當前終端。
  • ctrl+z:把終端當前正在運行的程序放到後臺運行。

其他常用的shell命令

  • $?:上一條命令的返回的結果。
  • !$:上一個命令的最後一個字符串
  • !!:上一個命令
  • man ascii:查看ascii碼錶,按q退出。
  • >file.txt:創建一個文件,比touch短。
  • du -s * | sort -n | tail: 列出當前目錄下最大的10個文件。
  • ssh user@server bash < script.sh: 遠程執行一個shell腳本。不用拷貝。
  • convert input.png -gravity NorthWest -background transparent -extent 720×200 output.png:改變圖片的大小,不用裝ps那麼大的東西了。
  • fgrep -r “Hello World” ./* :查詢當前目標下,包含hello world的文件,-r表示查詢包括子目錄。
  • locate:查詢特定文件名的文件,但是需要安裝mlocate,並且使用updatedb命令定期更新索引。
發佈了24 篇原創文章 · 獲贊 12 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章