下面是Kristóf Kovács收集的28個Unix/Linux下的28個命令行下的工具(原文鏈接),有一些是大家熟悉的,有一些是非常有用的,有一些是不為人知的。這些工具都非常不錯,希望每個人都知道。本篇文章還在Hacker News上被討論,你可以過去看看。我以作者的原文中加入了官網鏈接和一些說明。
dstat & sar
iostat, vmstat, ifstat 三合一的工具,用來查看系統性能(我在《性能調優攻略》中提到過那三個xxstat工具)。
官方網站:http://dag.wieers.com/rpm/packages/dstat/
你可以這樣使用:
alias dstat='dstat -cdlmnpsy'
slurm
查看網絡流量的一個工具
官方網站: Simple Linux Utility for Resource Management
vim & emacs
真正程序員的代碼編輯器。
screen, dtach, tmux, byobu
你是不是經常需要 SSH 或者 telent 遠程登錄到 Linux 服務器?你是不是經常為一些長時間運行的任務而頭疼,比如系統備份、ftp 傳輸等等。通常情況下我們都是為每一個這樣的任務開一個遠程終端窗口,因為他們執行的時間太長了。必須等待它執行完畢,在此期間可不能關掉窗口或者斷開連接,否則這個任務就會被殺掉,一切半途而廢了。
Screen是一個可以在多個進程之間多路復用一個物理終端的窗口管理器。Screen中有會話的概念,用戶可以在一個screen會話中創建多個screen窗口,在每一個screen窗口中就像操作一個真實的telnet/SSH連接窗口那樣。請參看IBM DeveloperWorks的這篇文章《使用 screen 管理你的遠程會話》
dtach 是用來模擬screen的detach的功能的小工具,其可以讓你隨意地attach到各種會話上 。下圖為dtach+dvtm的樣子。
tmux是一個優秀的終端復用軟件,類似GNU Screen,但來自於OpenBSD,采用BSD授權。使用它最直觀的好處就是,通過一個終端登錄遠程主機並運行tmux後,在其中可以開啟多個控制台而無需再“浪費”多余的終端來連接這台遠程主機;當然其功能遠不止於此。與screen相比的優點:可以橫向和縱向分割窗口,且窗格可以自由移動和調整大小。可在多個緩沖區進行復制和粘貼,支持跨窗口搜索;非正常斷線後不需重新detach;…… 有人說——與tmux相比,screen簡直弱爆了。
byobu是Ubuntu開發的,在Screen的基礎上進行包裝,使其更加易用的一個工具。最新的Byobu,已經是基於Tmux作為後端了。可通過“byobu-tmux”這個命令行前端來接受各種與tmux一模一樣的參數來控制它。Byobu的細節做的非常好,效果圖如下:
multitail
MultiTail是個用來實現同時監控多個文檔、類似tail命令的功能的軟件。他和tail的區別就是他會在控制台中打開多個窗口,這樣使同時監控多個日志文檔成為可能。他還可以看log文件的統計,合並log文件,過濾log文件,分屏,……。
官網:http://www.vanheusden.com/multitail/
tpp
終端下的PPT,要是在某某大會上用這個演示PPT,就太TMD的Geek了。
官網:http://www.ngolde.de/tpp.html
xargs & parallel
Executes tasks from input (even multithread).
xargs 是一個比較古老的命令,有簡單的並行功能,這個不說了。對於GNU parallel ( online manpage )來說,它不僅能夠處理本機上多執行緒,還能分散至遠端電腦協助處理。而使用GNU parallel前,要先確定本機有安裝GNU parallel / ssh / rsync,遠端電腦也要安裝ssh。
duplicity & rsyncrypto
Duplicity是使用rsync算法加密的高效率備份軟件,Duplicity支持目錄加密生產和格式上傳到遠程或本地文件服務器。
rsyncrypto 就是 rsync + encryption。對於rsync的算法可參看酷殼的rsync核心算法。
Encrypting backup tools.
nethack & slash’em
NetHack(Wiki),20年歷史的古老電腦游戲。沒有聲音,沒有漂亮的界面,不過這個游戲真的很有意思。網上有個家伙說:如果你一生只做一件事情,那麼玩NetHack。這句話很惹眼,但也讓人覺得這個游戲很復雜不容易上手。其實,這個游戲很雖然很復雜,卻容易上手。雖然玩通關很難,但上手很容易。NetHack上有許多復雜的規則,”the DevTeam thinks of everything”(開發團隊想到了所有的事情)。各種各樣的怪物,各種各樣的武器….,有許多spoilers文件來說明其規則。除了每次開始隨機生成的地圖,每次玩游戲,你也都會碰到奇怪的事情: 因為喝了一種藥水,變成了機器人;因為踢壞了商店的門被要求高價賠償;你的狗為你偷來了商店的東西….. 這有點象人生,你不能完全了解這個世界,但你仍然可以選擇自己的面對方式。
網上有許多文章所這是最好的電腦游戲或最好的電腦游戲之一。也許是因為它開放的源代碼讓人贊賞,古老的歷史讓人寬容,復雜的規則讓人敬畏。雖然它
網上有許多文章所這是最好的電腦游戲或最好的電腦游戲之一。也許是因為它開放的源代碼讓人贊賞,古老的歷史讓人寬容,復雜的規則讓人敬畏。雖然它不是當前流行的游戲,但它比任何一個當前流行的游戲都更有可能再經受20年的考驗。
Slash’EM 也是一個基於NetHack的經典游戲。
lftp
利用lftp命令行ftp工具進行網站數據的增量備份,鏡像,就像使用rsync一樣。
ack
ack是一個perl腳本,是grep的一個可選替換品。其可以對匹配字符有高亮顯示。是為程序員專門設計的,默認遞歸搜索,省提供多種文件類型供選。
calcurse & remind + wyrd
calcurse是一個命令行下的日歷和日程軟件。remind + wyrd也很類似。關於日歷,我不得不提一個Linux的Cycle日歷,也是一個神器,呵呵。
newsbeuter & rsstail
newsbeuter 和 rsstail 是命令行下RSS的閱讀工具。
powertop
做個環保的程序員,看看自己的電腦裡哪些程序費電。PowerTOP 是一個讓 Intel 平台的筆記本電腦節省電源的 Linux 工具。此工具由 Intel 公司發布。它可以幫助用戶找出那些耗電量大的程序,通過修復或者關閉那些應用程序或進程,從而為用戶節省電源。
htop & iotop
htop 和 iotop 用來查看進程,內存和IO負載。
ttyrec & ipbt
ttyrec 是一個 tty 控制台錄制程序,其所錄制的數據文件可以使用與之配套的 ttyplay 播放。不管是你在 tty 中的各種操作,還是在 tty 中耳熟能詳的軟件,都可進行錄制。
ipbt 是一個用來回放 ttyrec 所錄制的控制台輸入過程的工具。
與此類似的還有Shelr 和 termrec
rsync
通過SSH進行文件同步的經典工具(核心算法)
mtr
MTR – traceroute 2.0,其是把 traceroute 和 ping 集成在一塊的一個小工具 用於診斷網絡。
socat & netpipes
socat是一個多功能的網絡工具,名字來由是” Socket CAT”,可以看作是netcat的N倍加強版。
netpipes 和socat一樣,主要是用來在命令行來進行socket操作的命令,這樣你就可以在Shell腳本下行進socket網絡通訊了。
iftop & iptraf
iftop和iptraf可以用來查看當前網絡鏈接的一些流量情況。
siege & tsung
Siege是一個壓力測試和評測工具,設計用於WEB開發這評估應用在壓力下的承受能力:可以根據配置對一個WEB站點進行多用戶的並發訪問,記錄每個用戶所有請求過程的相應時間,並在一定數量的並發訪問下重復進行。
Tsung 是一個壓力測試工具,可以測試包括HTTP, WebDAV, PostgreSQL, MySQL, LDAP, and XMPP/Jabber等服務器。針對 HTTP 測試,Tsung 支持 HTTP 1.0/1.1 ,包含一個代理模式的會話記錄、支持 GET、POST 和 PUT 以及 DELETE 方法,支持 Cookie 和基本的 WWW 認證,同時還支持 SSL。
參看:十個免費的Web壓力測試工具
ledger
ledger 一個命令行下記帳的小工具。
taskwarrior
TaskWarrior 是一個基於命令行的 TODO 列表管理工具。主要功能包括:標簽、彩色表格輸出、報表和圖形、大量的命令、底層API、多用戶文件鎖等功能。
下圖是TaskWarrior 2.0的界面:
curl cURL是一個利用URL語法在命令行下工作的文件傳輸工具,1997年首次發行。它支持文件上傳和 下載 ,所以是綜合傳輸工具,但按傳統,習慣稱cURL為 下載
curl
cURL是一個利用URL語法在命令行下工作的文件傳輸工具,1997年首次發行。它支持文件上傳和下載,所以是綜合傳輸工具,但按傳統,習慣稱cURL為下載工具。cURL還包含了用於程序開發的libcurl。cURL支援的通訊協定有FTP、FTPS、HTTP、HTTPS、TFTP、SFTP、Gopher、SCP、Telnet、DICT、FILE、LDAP、LDAPS、IMAP、POP3、SMTP和RTSP。
rtorrent & aria2
rTorrent 是一個非常簡潔、優秀、非常輕量的BT客戶端. 它使用了 ncurses 庫以 C++ 編寫, 因此它完全基於文本並在終端中運行. 將 rTorrent 用在安裝有 GNU Screen 和 Secure Shell 的低端系統上作為遠程的 BT 客戶端是非常理想的。
aria2 是 Linux 下一個不錯的高速下載工具。由於它具有分段下載引擎,所以支持從多個地址或者從一個地址的多個連接來下載同一個文件。這樣自然就大大加快了文件的下載速度。aria2 也具有斷點續傳功能,這使你隨時能夠恢復已經中斷的文件下載。除了支持一般的 http(s) 和 ftp 協議外,aria2 還支持 BitTorrent 協議。這意味著,你也可以使用 aria2 來下載 torrent 文件。
ttytter & earthquake
TTYtter 是一個Perl寫的命令行上發Twitter的工具,可以進行所有其他平台客戶端能進行的事情,當然,支持中文。腳本控、CLI控、終端控、Perl控的最愛。
Earthquake也是一個命令行上的Twitter客戶端。
vifm & ranger
Vifm 基於ncurses的文件管理器,DOS風格,用鍵盤操作。
Ranger用 Python 完成,默認為使用 Vim 風格的按鍵綁定,比如 hjkl(上下左右),dd(剪切),yy(復制)等等。功能很全,擴展/可配置性也非常不錯。類似MacOS X下Finder(文件管理器)的多列文件管理方式。支持多標簽頁。實時預覽文本文件和目錄。
cowsay & sl
cowsay 不說了,如下所示,哈哈哈。還有xcowsay,你可以自己搜一搜。
sl是什麼?ls?,呵呵,你會經常把ls 打成sl嗎?如果是的話,這個東西可以讓你娛樂一下,你會看到一輛火車呼嘯而過~~,相當拉風。你可以使用sudo apt-get install sl 安裝。
最後,再介紹一個命令中linuxlogo,你可以使用 sudo apt-get install linuxlogo來安裝,然後,就可以使用linuxlogo -L
來看一下各種Linux的logo了