15 個鮮為人知的Unix命令

codecloud發表於2014-07-02

  每個開發人員都應該有在終端操作的能力。你不可能總在你要操作的電腦旁邊,這時你就得遠端登入那臺機器。雖然有些圖形介面應用可以幫助我們實現遠端作業,但是它的速度沒有通過終端訪問快(畢竟,它只是一些文字交流!)。

  不管你是終端使用者新手還是有經驗的老使用者,我肯定你一定喜歡學習新技術和技巧。在這篇文章裡面,我將會介紹15個你你可能還未聽說過的Unix命令。

  注意:在這篇文章中,我將使用方括號來標識任何變數。當你執行命令時,你應該用去掉方括號,用實際的值替換它。例如我們第一個例子, man [command] 可以這樣用 man cd 或者 man grep。

  1. man

  我們以一個簡單的例子開始。man命令代表“manual”,手冊的意思。如果你想了解任何Unix命令,你可以執行下面的命令: 

mman  [command]

  最簡單的使用例子是用man來檢視man命令自己的使用手冊:

man man

  man命令本身未必是一個鮮為人知的命令,你能在任何Unix教程中看到它。然而,我想強調它在那些在常規教程中很少見的特殊用法。

  如果你需要知道ASCII字元,試試這個:

man ascii

  是否曾經對pico-和femto-哪個更小而感到困惑?試試下面的命令來獲取有關unit字首的資訊:

man units

  有很多這樣的手冊頁面,它們有些真的也很有趣(Tip:試試 man xkill),我讓你自己去玩它。同時,我們將繼續介紹其它更多的命令。

  2. cd -

  如果你在一個目錄裡面工作,突然切換到另外一個目錄中去了,有一個方法讓你輕鬆的回到剛才的工作目錄。執行下面的命令即可回到剛剛的工作目錄:

cd -

  3. sudo !!

  由XKCD創作的這幅漫畫強調了sudo命令在Unix系統中的重要性。sudo 以管理員的許可權執行命令,使用者也被新增到 sudo使用者組。

  假設你執行一個沒帶 sudo 字首的命令,如果你不想再次輸入這個相同的命令,你可以執行下面的命令來執行最近一次執行的命令。

sudo !!

  4. mtr

  mtr 是一個強大的網路診斷工具。它結合了 traceroute 和 ping 這兩個命令的功能

mtr [hostname]

  mtr檢測執行mtr這臺機子與遠端主機之間的網路連線,這裡有關於mtr的詳細說明,列舉了mtr的全部擴充套件命令。

  5. [space] command

  經常使用終端的使用者可能知道他們執行過的每個命令都會記載在日誌檔案~/.bash_history裡面。可以用下面的命令來跳過執行命令是被日誌記載:

[space] [command]

  6. jot

  正如其名所示,jot的為generates some text,包括從數字到字元以及一些亂碼。如果你想生成一定範圍內的數字,可執行下面的命令:

jot [number_of_numbers] [starting_number]

  如果你只提供一個引數,它將會生成從1到這個數字之間的數字。

  -r 引數可生成隨機數,語法如下:

jot -r [number_of_numbers] [lower_limit] [upper_limit]

  -b 引數可重複給定的單詞。瞭解更多引數列表,你可以執行 man jot, 或者看這個文件

  7. df

  一個相對簡單的命令,df 代表“disk free”,並顯示你的磁碟空閒的空間。

  8. pkill

  pkill 也就是”process kill”,終止一個執行的程式。當一個應用沒反應的時候,這個命令非常有用。語法:

pkill [application_name]

  pkiil的一個有趣的使用情況是你可以遠端登入別人正在使用的計算機,檢查別人在執行的應用,並執行 pkill命令來終止那些程式,而當他們在四周盼望是誰在惡作劇的時候,你裝作沒什麼事發生一樣。當然,你應該確認它不是關鍵應用,並且不會有很大的損失。

  9. ddate

  Discordian calendar 是一個備用日曆,用 1YOLD表示1166BC。ddate 可以顯示Discordian date。

  10. cal

  如果你想檢視老的Gregorian日曆,使用 cal即可檢視當月月份的日曆。

  這只是預設的顯示,. 這個cal手冊 列出了不同的可選項引數,可以按不同的樣式顯示更多的月份。

  11. tac

  你可能聽說過 cat命令,它有一系列用途,包括creating、copying、merging 和 displaying 文字檔案。tac 命令可以做同樣的工作,但是它是以相反的順序!瞧一瞧。

  12. w

  w 命令可以顯示當前誰登陸到了你的系統。它列出了使用者登陸日誌,以及更多的像系統載入和執行的資訊。

  13. factor

  如果你想分解一個數字,不需要其它的工作,僅執行下面的命令即可獲得一個數字的質因數分解。

 

factor [number]

  14. yes

  在來一個有趣的命令,yes 命令將一個字串列印很多次。

yes [string]

  如果你沒有提供一個字串,它遞迴列印“y”,直達你停止這個命令。這個函式列印字元的速度太快了,以至於我無法在同一屏模式擷取這個命令的輸出。如果你正在做一些事情,恰巧有人經過,你可以執行 yes 來迷糊他們,前提是他們對shell程式設計瞭解比較少。

  注意,如果你要執行這個命令,你應該知道僅有的停止命令的方法:按 CTRL+C/CMD+C 或者關閉終端。

  15. nl

  nl命令附件了列數到文字。它最適合用於傳遞其他命令的輸出作為引數。另外一個函式的輸出使用”|“來作為引數傳遞。看下面兩個例子:

程式設計師的資料庫

  原文:http://www.sitepoint.com/15-little-known-unix-commands 翻譯:codecloud.net

相關文章