2013年10月23日 星期三

[Linux] 常用指令小技巧_command tips


Linux的基本指令及意義,鳥哥哥的網站已經說明得很清楚了,以下就針對幾項列出說明

cd

用來改變路徑
Ex. cd ..    → 回到上一層
   cd /usr/bin → 直接到/usr/bin目錄下



ls

用來顯示檔案名稱與內容
Ex. ls -l      → 列出檔案系統結構
   ls -a     → 顯示隱藏檔
   ls -al    → 顯示隱藏檔與詳細資料


tree

目錄以樹狀結構顯示
Ex.有個名稱為test的目錄,且底下檔案存放方式如以下路徑
/test/fruit/apple.jpg
/test/car.zip
輸入 tree後,則會以下列方式顯示
.
|--fruit
|  `--apple.jpg
`--car.zip


top

動態顯示目前主機的狀態及執行中的服務或程序
※通常用來檢查主機狀況


ps -aux

查看執行中的程序,輸出的「PID」那列是程序的執行代碼
※通常若發生程序卡住的狀況但主機還能連線時,可以先查詢出是哪一程序造成,取得PID後,再搭配下一個指令,將卡住的程序關閉


kill

刪除執行中的指令,須配合ps -aux
Ex. 如同上述所說,取得PID後,執行「 kill PID 」,就可以刪除這個程序


grep

搜尋特定字元
Ex. 我們執行了 ps -aux查詢系統服務後,想知道目前有哪些在使用mysql這個服務
可以這樣下「ps -aux | grep mysql」,就可以搜出目前有在使用mysql這個服務的程序


head

取出某檔案的前幾行
Ex. head  /test/hello.config     → 預設顯示檔案的前10行
      head  -n 20 /test/hello.config  → 顯示檔案的前20行
      head  -n -50 /test/hello.config    → 最後50行不顯示


tail

取出某檔案的後幾行,用法和 head 雷同
Ex. tail  /test/hello.config     → 預設顯示檔案的最後10行
      tail  -n 20 /test/hello.config  → 顯示檔案的最後20行
      tail  -n +50 /test/hello.config   →   顯示從第50行到最後一行
      tail  -f  /test/hello.config    → 偵測若有資料寫入時,立刻顯示,按下「ctrl +c」可離開


sort

顧名思義就是排序,可接在其他指令後面將其排序
Ex. cat /etc/passwd | sort   →  將列出的帳號排序,sort後面沒有值就是預設文字排序
      若 sort 後面接其他參數
      sort -f     → 忽略大小寫,A 及 a 視為通一編碼
      sort -b    → 忽略最前的空白字元 (例如:_apple原排序在字母後,則視為 apple排序)
      sort -M  → 以月分排序
      sort -n    → 使用「純數字」排序,原為文字排序
      sort -r    → 改為降冪 (預設為升冪)
      sort -u    → uniq,相同的資料只出現一次
      sort -t     → 分隔符號,預設是用 tab 隔開,也可以自行輸入
      sort -k    → 以區間來進行排序

-t 及-k 光看文字解釋應該不是很明白,所以舉個範例,假設有個文件內容如下:
[root@www~] cat /test/hello.txt
mary:20:1.1
john:50:5.5
dori:40:6.8
tina:10:3.4
[root@www~] cat /test/hello.txt | sort -t ':' -k 2  執行後,結果則變成以下
tina:10:3.4
mary:20:1.1
dori:40:6.8
john:50:5.5
(1)  sort -t 先以 「:」 做為區隔,所以原來的「mary:20:1.1 」會變成「mary」、「20」、「1.1」
(2)  然後我們再以 -k 2,意指以第二欄位來做排序,故取出各行的「20」、「50」、「40」、「10」來做排序,產生以上結果。
※還有許多組合可以排序來分析取出的資訊,就暫不在此贅述


uniq

排序完後,將重複的資料僅列出出一個做顯示
Ex. uniq -i  → 忽略字元大小寫差異
   uniq -c → 計算出現次數
   uniq -ic → 所以兩個結合起來,就可以列出每個重複資料出現次數
※有點類似sql 語法利用group by 及 count 計算某筆資料重複出現次數



wc

 計算某檔案字元數、單字數、行數
Ex. cat  /test/hello.config | wc → 顯示結果為「行數、單字數、字元數」
  wc -l   → 行數
  wc -w → 單字數(英文單字)
  wc -m → 字元



find

尋找檔案,語法為:find 路徑 -name 檔名
Ex. find /etc -name passwd → 尋找etc目錄下叫passwd的檔案


mkdir

建立新的目錄
Ex. mkdir test


rmdir

刪除目錄,這邊必須目錄底下為空,否則無法刪除
Ex. rmdir test


rm -rf

刪除目錄極其目錄底下的所有檔案,使用此指令
Ex. rm irf test


mv

搬移檔案,語法為 mv srcFile(來源) desFile(目的)
Ex. mv /test/hello.txt /test2/hello.txt


cp

複製檔案,語法為 cp srcFile(來源) desFile(目的)
Ex. cp /test/hello.txt /test2/hello.txt


lh
將檔案大小轉換成可讀的標示

參考資料
[1] http://linux.vbird.org/linux_basic/redhat6.1/linux_06command.php

2 則留言: