開發人員的 Linux 命令學習清單

來源:互聯網
上載者:User

       作為一個開發人員,尤其是 服務端應用開發人員, 掌握適量的 Linux 常用命令是非常有助於工作的。很多日常任務,比如查看伺服器日誌,資料檔案處理、批量修改,不再需要使用主開發語言實現,而只需要掌握和使用一些命令和工具就可以了。不過,作為開發人員和作為系統管理員, 學習 linux 命令工具的程度也顯然是有差異的。

  

       作為開發人員, 應該掌握如下使用頻繁的 linux 命令工具:

        1.   檔案目錄相關:   ls, cp, rm , mv,  cat , head, tail ,  cd ,  pwd, mkdir ,  touch,  rename,  less,  find, which, locate,  chmod, chown, less, ln,  tar,  umask

        2.   文本處理:   grep, sed, awk, tr,  uniq,  sort,  join,  cut,  tee,  wc,  echo

        3.   進程查看:   ps,  top,  kill,   who,  

        4.    網路工具:  netstat ,  scp ,   ssh,  ping,   wget, ifconfig,  arp

        5.    環境設定與伺服器軟體:  apache,  set,  alias, . ,  source, sudo ,  su,  date,  read

        6.    協助資訊:  --help,  man ,   

        7.    其它:  xargs 

        總共也就  50 條左右的命令。

        使用 man cmdname | wc -l 可查看該命令說明有多少行,閱讀前有個底。shift + g  可以直達 man 文檔末尾。num+shift+g 可以直達第 num 行。  試一試:

        man ls | wc -l     243

        man find | wc -l  1572

        

        任務: 分別計算上述命令的MAN文檔的行數

         STEP1:  將上述命令放置到一個文字檔中, 命令為 cmds.list  

ls, cp, rm , mv,  cat , head, tail ,  cd ,  pwd, mkdir ,  touch,  rename,  less,  find, which, locate,  chmod, chown, less, ln,  tar,  umask grep, sed, awk, tr,  uniq,  sort,  join,  cut,  tee,  wc, ps,  top,  fg,  kill,   who,  netstat ,  scp ,   ssh,  ping,   wgetset,  alias, . ,  source, sudo ,  su,  date,  man ,xargs 

          STEP2:使用 tr 命令先將 ,  轉化為 換行,並去掉空格和空行; 

             $ tr ',' '\n' < cmds.list | tr -d ' ' | grep -v '^$' > result.mid

          STEP3:   使用簡單 while&read 迴圈,輸出每一個命令的man文檔的行數

             $  while IFS='' read CMD_NAME; do echo -ne $CMD_NAME "\t"; man $CMD_NAME | wc -l ; done < result.mid 

          STEP4:   整合: 重新導向通常可以使用管道來替代。下面是完整命令

             $ cat cmds.list | tr ',' '\n'  | tr -d ' ' | grep -v '^$' | while IFS='' read CMD_NAME; do echo -ne $CMD_NAME "\t"; man $CMD_NAME | wc -l ; done | sort -nrk 2 

less 1583less 1583wget 1579find 1572ps 1166top 1158awk 902ssh 901man 710grep 636sudo 520tar 492netstat 356ping 340sed 280xargs 275ls 243date 204locate 189cp 172sort 160scp 156chmod 146tr 137chown 125ln 120rm 108mv 105kill 104tail 103join 103who 99touch 93uniq 89cut 88cat 82wc 70head 68umask 67su 66mkdir 63rename 57pwd 57tee 53which 31source 0set 0fg 0cd 0alias 0. 0

        注意到,一般命令MAN文檔的行數(包括空行)在 100-400 之間,重量級的命令則有很詳細的說明,約500- 2000 行 比如 find 近 1500 多行!  小型命令可以一個個選項地嘗試, 掌握大型命令就要講究技巧了。先掌握日常工作需要的那些,不必求全。

                   

       選項通用部分:
        1.    -q  靜默方式, 不列印操作相關的任何資訊;   -v  “羅嗦”方式, 列印操作相關資訊

       常用命令:
        .  ls  列舉目錄內容(所含檔案的元資訊)
           -a 所有 -h 大小人類可讀 -l 詳細資料 -i 索引節點號 -m 以逗號分隔 -1 每行一個 -r 反序顯示 -R 遞迴顯示子目錄內容 -t 按修改時間排序
        .  rm   刪除檔案或目錄    (1)  -i ,  -I[once]  是否提示使用者    (2)  -r ,  -R  刪除目錄時使用;  (3) -f  強制移除
        .  mv   移動檔案或重新命名。 記住文法格式即可
                 (1) mv srcName  destName  (2) mv src1 src2 ... destDirectory (3) mv -t destDirectory src1 src2 ...
        .  cp   複製檔案或建立連結。 文法格式同 mv
                -i 提示使用者  -r 複製目錄,遞迴複製  -s 建立軟連結 -l 建立永久連結
        .  mkdir 若目錄不存在,則根據指定目錄名稱建立目錄;否則報錯。
             -p 指定目錄路徑上的目錄若不存在,則建立相應目錄,而不報錯。eg. mkdir -p a/b 若目錄 a 不存在,則先建立目錄 a , 再建立目錄 b. 
        .  
        .  which 定位命令的全路徑 -a 顯示匹配參數的所有路徑  
        .  head  顯示檔案開頭的指定部分,或者除去指定末尾的所有部分。 可以使用兩種方式指定 -c 位元組數,  -n 行數 ; 
              eg.  head -n  5  data.txt 顯示 data.txt 的前5行;  head -n -5 data.txt 顯示 data.txt 除去最後5行的所有行  
        .  pwd 顯示當前所在目錄的全路徑; cd 切換到指定目錄
        .  cat 串連多個檔案的內容並列印到標準輸出。  -E 在行尾顯示 $ ;  -n 在行頭顯示行號
        .  wc 統計指定檔案。 -c 位元組數  -m 字元數 -l 行數 -w 單詞數 -L 最長行長度 
        .  tee 從標準輸入中讀取內容,並寫到標準輸出和指定的檔案中; 用於將同一內容批量複製到多個檔案中。
               若存在則覆蓋,不存在則建立 -a 追加內容而不是覆蓋。 
        .  uniq 報告或重複資料刪除行,常與 sort 連用。 -d 只列印有重複的行; -u 只列印沒有重複的行; -c 統計行及重複出現的次數
                       -s N 比較時跳過前N個字元; -f N 比較時跳過前N個欄位; -w N 只比較至多前N個字元 
        .  cut  列印檔案每一行的選定部分到標準輸出,作用單位是檔案行。用於剪下指定內容。 
                -b [range] 指定範圍的位元組  -c [range] 指定範圍的字元 -f [range] 指定範圍的欄位 -d 指定欄位分割符
                範圍指定: N 第N個 ;  N- 從第N個到末尾 ; -N 從第一個到第N個; M-N 從第M到第N個(邊界包含) 
                eg. cut -c 1-4 cmds.list 列印檔案 cmds.list 中每一行的前4個字元; cut -f 2 cmds.list 列印第二個欄位
        .  who 查看登入使用者及運行概況 -u 使用者列表 -b 系統啟動時間 -r 運行層級  -q 登入使用者數

    grep: 從指定檔案中搜尋匹配模式的行,並列印。 若沒有指定,則從標準輸入中讀入內容。

           -A  Num  列印匹配行及接下來的 Num 行  -B Num 列印匹配行及之前的 Num 行
           -c  只列印匹配行數      --color 高亮顯示匹配部分   
           -E  使用擴充Regex     -e PATTERN  使用 PATTERN 作為模式  -P 使用 perl 運算式
           -F  使用固定字串匹配     -f inputfile 從指定檔案中讀模數式,每行一個
           -n  列印匹配行時顯示行號   
           -H  搜尋多個檔案時,列印檔案名   -h 不列印檔案名
            -i  忽略大小寫
            -l  只列印含有匹配的檔案名稱    -L  列印沒有任何匹配的檔案名稱
            -r  遞迴搜尋     -v 搜尋不匹配的行   -x 選擇完全符合整行的行

     sed: 流編輯器, 使用指定編輯命令文本過濾和處理
          -e  script  使用 script 的編輯命令處理檔案
          -f  script-file    使用 script-file 給出的命令集合編輯檔案,每行一個編輯命令
          -i  就地編輯,直接改變所編輯的檔案
          -r  在編輯命令中使用擴充Regex

         編輯命令  a 追加文本   i 插入文本  q 退出sed   s/regexp/replacement
        

      

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.