我們繼續“10個鮮為人知Linux命令系列”的第三部分。或許你已經知道了這些命令,那你無疑是一個有經驗而喜歡探索的Linux用戶。
閱讀:十個鮮為人知的Linux 命令(一)、十個鮮為人知的Linux 命令(二)
在一個實例中運行修改後的最後一個命令。假設我需要運行一個命令‘ls -l‘來詳細列出‘Desktop’目錄下的內容。意外地,你打了‘lls -l‘。所以你需要重新打整個命令或者使用導航鍵編輯前面的命令。當你的命令很長時這個很痛苦。
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那樣的風險命令的話!
這個命令會刷新文件的內容而不需刪除然後創建相同的文件。當我們需要反復輸出,或者在相同的文件上記錄日志時,這個命令就非常有用。
我有一個有很多文字的‘test.txt’文件在我的‘Desktop‘上。
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
注意:再說一次,這個命令可能很危險!永遠不要嘗試刷新系統文件或者某篇日志文件的內容。如果你這麼做了,你可能會遭遇嚴重的問題!
‘at‘命令與cron 命令相似也可用於安排一個任務或者在某個特定時刻執行命令。
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 14:012
或
avi@localhost:~/Desktop$ echo "ls -l > /dev/pts/0" | at 2:12 PM
示例輸出
-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。
avi@localhost:~/Desktop$ tty /dev/pts/0
注意: ‘at‘會在系統時間匹配到特定時間時會盡快執行。
下面的命令以人類可讀的形式輸出當前目錄的子目錄的大小。
avi@localhost:/home/avi/Desktop# du -h --max-depth=1 38M ./test 1.1G ./shivji 42M ./drupal 6.9G ./101MSDCF 16G .
注意:上面的命令在檢查系統使用率是非常有用。
‘expr‘不是那麼鮮為人知的命令。這個命令在終端中計算簡單的算數時非常有用。
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
在終端上從英文字典上查單詞以防混淆。比如說,我記不清了是該拼成carrier還是carieer。
avi@localhost:/home/avi/Documents# look car 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'開頭的單詞。我得到了我想找的。
另外一個命令在通常基礎上並不會經常使用,但是在腳本語言和系統管理時非常有用。
這個命令會持續地輸出給定的字符串,直到由你的中斷命令打斷。
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
factor實際是一個源於數學的命令。這個命令會輸出所有給定數字的因數。
avi@localhost:~/Desktop$ factor 22 22: 2 11 avi@localhost:~/Desktop$ factor 21 21: 3 7 avi@localhost:~/Desktop$ factor 11 11: 11
我們都用ping命令檢測服務器是否連通。我通常ping google,來檢測我是否連接到了因特網。
當你等待或者持續盯著你的終端等待命令的回應或者等待服務器的連接時,有時是很氣人的。
一旦服務器連通就有一個聲音如何(譯注:下面命令是等60秒PING一次)?
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‘。
這個命令很有趣,他會以倒序輸出文本文件的內容。也就是從最後一行到第一行。
在home目錄下,我的Documents目錄下有一個35.txt文件。用cat 命令檢查內容。
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)。
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.
現在結束了。如果你還知道其他一些Linux鮮為人知的命令,你可以在下面評論,那麼我們你可以在以後的文章中包含進來。
不要忘了給我們有價值的評論。我很快會發另外有趣的文章。別走開繼續關注 Tecmint。
英文來源: http://www.tecmint.com/10-lesser-known-commands-for-linux-part-3/