我們繼續“10個鮮為人知Linux命令系列”的第三部分。或許你已經知道了這些命令,那你無疑是一個有經驗而喜歡探索的Linux使用者。
22. ^foo^bar 命令
在一個例項中執行修改後的最後一個命令。假設我需要執行一個命令‘ls -l‘來詳細列出‘Desktop’目錄下的內容。意外地,你打了‘lls -l‘。所以你需要重新打整個命令或者使用導航鍵編輯前面的命令。當你的命令很長時這個很痛苦。
1 2 3 4 5 6 7 8 9 10 11 12 |
avi@localhost:~/Desktop$ lls -l bash: lls: command not found avi@localhost:~/Desktop$ ^lls^ls ls -l total 7489440 drwxr-xr-x 2 avi avi 36864 Nov 13 2012 101MSDCF -rw-r--r-- 1 avi avi 206833 Nov 5 15:27 1.jpg -rw-r--r-- 1 avi avi 158951 Nov 5 15:27 2.jpg -rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc |
注意:在上面的替換中我們使用“typo(被替換的)original_command(原始命令)”。警告!這個命令可能會非常危險!如果你有意或者無意地打錯了系統命令或者任何像rm -rf那樣的風險命令的話!
23. > file.txt 命令
這個命令會重新整理檔案的內容而不需刪除然後建立相同的檔案。當我們需要反覆輸出,或者在相同的檔案上記錄日誌時,這個命令就非常有用。
我有一個有很多文字的‘test.txt’檔案在我的‘Desktop‘上。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
avi@localhost:~/Desktop$ cat test.txt Linux GNU Debian Fedora kali ubuntu git Linus Torvalds avi@localhost:~/Desktop$ > test.txt avi@localhost:~/Desktop$ cat test.txt |
注意:再說一次,這個命令可能很危險!永遠不要嘗試重新整理系統檔案或者某篇日誌檔案的內容。如果你這麼做了,你可能會遭遇嚴重的問題!
24. at 命令
‘at‘命令與cron 命令相似也可用於安排一個任務或者在某個特定時刻執行命令。
1 |
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 14:012 |
或
1 |
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 2:12 PM |
示例輸出
1 2 3 4 5 6 7 8 |
-rw-r--r-- 1 avi avi 220492 Nov 1 13:49 Screenshot-1.png -rw-r--r-- 1 root root 358 Oct 17 10:11 sources.list -rw-r--r-- 1 avi avi 4695982080 Oct 10 20:29 squeeze.iso .. .. -rw-r--r-- 1 avi avi 90624 Nov 5 12:59 Untitled 1.doc -rw-r--r-- 1 avi avi 96206 Nov 5 12:56 Untitled 1.odt -rw-r--r-- 1 avi avi 9405 Nov 12 23:22 Untitled.png |
注意:echo “ls -l”的意思是,將這串命令(這裡是 ls -l)輸出在標準終端上。你可以用你需要或者選擇的命令替代‘ls -l‘。
> :重定向輸出
/dev/pts/0: 這是輸出裝置和/或檔案,輸出到指定的地方,這裡輸出在終端(/dev/pts/0)。
就我而言,此時我的tty在/dev/pts/0。你可以用tty命令檢查你的tty。
1 2 3 |
avi@localhost:~/Desktop$ tty /dev/pts/0 |
注意: ‘at‘會在系統時間匹配到特定時間時會盡快執行。
25. du -h –max-depth=1 命令
下面的命令以人類可讀的形式輸出當前目錄的子目錄的大小。
1 2 3 4 5 6 7 |
avi@localhost:/home/avi/Desktop# du -h --max-depth=1 38M ./test 1.1G ./shivji 42M ./drupal 6.9G ./101MSDCF 16G . |
注意:上面的命令在檢查系統使用率是非常有用。
26. expr 命令
‘expr‘不是那麼鮮為人知的命令。這個命令在終端中計算簡單的算數時非常有用。
1 2 3 4 5 6 7 8 9 10 11 |
avi@localhost:/home/avi/Desktop# expr 2 + 3 5 avi@localhost:/home/avi/Desktop# expr 6 – 3 3 avi@localhost:/home/avi/Desktop# expr 12 / 3 4 avi@localhost:/home/avi/Desktop# expr 2 \* 9 18 |
27. look 命令
在終端上從英文字典上查單詞以防混淆。比如說,我記不清了是該拼成carrier還是carieer。
avi@localhost:/home/avi/Documents# look car
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
Cara Cara's … ... carps carpus carpus's carrel carrel's carrels carriage carriage's carriages carriageway carriageway's carried carrier carrier's carriers carries … ... caryatids |
上面的命令會顯示字典上所有以’car’開頭的單詞。我得到了我想找的。
28. yes 命令
另外一個命令在通常基礎上並不會經常使用,但是在指令碼語言和系統管理時非常有用。
這個命令會持續地輸出給定的字串,直到由你的中斷命令打斷。
1 2 3 4 5 6 7 8 9 10 11 12 |
avi@localhost:~/Desktop$ yes "Tecmint is one of the best site dedicated to Linux, how to" Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to … … ... Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to Tecmint is one of the best site dedicated to Linux, how to |
29. factor 命令
factor實際是一個源於數學的命令。這個命令會輸出所有給定數字的因數。
1 2 3 4 5 6 7 8 |
avi@localhost:~/Desktop$ factor 22 22: 2 11 avi@localhost:~/Desktop$ factor 21 21: 3 7 avi@localhost:~/Desktop$ factor 11 11: 11 |
30. ping -i 60 -a IP_address
我們都用ping命令檢測伺服器是否連通。我通常ping google,來檢測我是否連線到了因特網。
當你等待或者持續盯著你的終端等待命令的回應或者等待伺服器的連線時,有時是很氣人的。
一旦伺服器連通就有一個聲音如何(譯註:下面命令是等60秒PING一次)?
1 2 3 4 5 |
avi@localhost:~/Desktop$ ping -i 60 -a www.google.com PING www.google.com (74.125.200.103) 56(84) bytes of data. 64 bytes from www.google.com (74.125.200.103): icmp_req=1 ttl=44 time=105 ms 64 bytes from 74.125.200.103: icmp_req=2 ttl=44 time=281 ms |
注意,當你發現命令不會返回聲音時。請確保你的系統不是靜音的,聲音已經在‘sound preferences(聲音選項)‘ 中啟用並確保勾選了‘Enable window and window sound‘。
31. tac 命令
這個命令很有趣,他會以倒序輸出文字檔案的內容。也就是從最後一行到第一行。
在home目錄下,我的Documents目錄下有一個35.txt檔案。用cat 命令檢查內容。
1 |
avi@localhost:~/Documents$ cat 35.txt |
示例輸出
- Linux is built with certain powerful tools, which are unavailable in windows.
- One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it’s Linux Counterpart.
- Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.
現在用tac命令反轉檔案內容(譯註:當然,我們知道cat反轉過來就是tac)。
1 |
avi@localhost:~/Documents$ tac 35.txt |
示例輸出
- Shell scripting/programming makes it possible to execute command(s), piped to get desired output in order to automate day-to-day usages.
- One of such important tool is Shell Scripting. Windows however comes with such a tool but as usual it is much weak as compared to it’s Linux Counterpart.
- Linux is built with certain powerful tools, which are unavailable in windows.