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 -auxEx. 如同上述所說,取得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
cp 的 Ex 是mv的喔 :)
回覆刪除謝謝這位同學,已經修正了喔! XD
刪除