命令列基礎工具的更佳替代品

Adrien Brochard發表於2014-10-20

命令列聽起來有時候會很嚇人,特別是在剛剛接觸的時候,你甚至可能做過有關命令列的噩夢。然而漸漸地,我們都會意識到命令列實際上並不是那麼嚇人,反而是非常有用。實際上,沒有命令列正是每次我使用 Windows 時讓我感到崩潰的地方。這種感覺上的變化是因為命令列工具實際上是很智慧的。 你在任何一個 Linux 終端上所使用的基本工具功能都是很強大的, 但還遠說不上是足夠強大。 如果你想使你的命令列生涯更加愉悅, 這裡有幾個程式你可以下載下來替換原來的預設程式, 它還可以給你提供比原始程式更多的功能。

dfc

作為一個 LVM 使用者, 我非常喜歡隨時檢視我的硬碟儲存器的使用情況. 我也從來沒法真正理解為什麼在 Windows 上我們非得開啟資源管理器來檢視電腦的基本資訊。在 Linux 上, 我們可以使用如下命令:

$ df -h

該命令可顯示電腦上每一分卷的大小、 已使用空間、 可用空間、 已使用空間百分比和掛載點。 注意, 我們必須使用 "-h" 選項使得所有資料以可讀形式顯示(使用 GiB 而不是 KiB)。 但你可以使用 dfc 來完全替代 df, 它不需要任何額外的選項就可以得到 df 命令所顯示的內容, 並且會為每個裝置繪製彩色的使用情況圖, 因此可讀性會更強。

另外, 你可以使用 "-q" 選項將各分卷排序, 使用 "-u" 選項指定你希望使用的單位, 甚至可以使用 "-e" 選項來獲得 csv 或者 html 格式的輸出.

dog

Dog 比 cat 好, 至少這個程式自己是這麼宣稱的。 你應該相信它一次。 所有 cat 命令能做的事, dog 都做的更好。 除了僅僅能在控制檯上顯示一些文字流之外, dog 還可以對其進行過濾。 例如, 你可以使用如下語法來獲得網頁上的所有圖片:

$ dog --images [URL] 

或者是所有連結:

dog --links [URL] 

另外, dog 命令還可以處理一些其他的小任務, 比如全部轉換為大寫或小寫, 使用不同的編碼, 顯示行號和處理十六進位制檔案。 總之, dog 是 cat 的必備替代品。

advcp

一個 Linux 中最基本的命令就是複製命令: cp。 它幾乎和 cd 命令地位相同。 然而, 它的輸出非常少。 你可以使用 verbose 模式來實時檢視正在被複制的檔案, 但如果一個檔案非常大的話, 你看著螢幕等待卻完全不知道後臺在幹什麼。 一個簡單的解決方法是加上一個進度條: 這正是 advcp (advanced cp 的縮寫) 所做的! advcp 是 GNU coreutils 的一個 補丁版本, 它提供了 acp 和 amv 命令, 即"高階"的 cp 和 mv 命令. 使用語法如下:

$ acp -g [file] [copy] 

它把檔案複製到另一個位置, 並顯示一個進度條。

我還建議在 .bashrc 或 .zshrc 中設定如下命令別名:

alias cp="acp -g"
alias mv="amv -g"

(譯者注: 原文給出的連結已貌似失效, 我寫了一個可用的安裝指令碼放在了我的 gist 上, 用的是 AUR 裡的 patch。)

(譯者注:由於 GIST 被封,所以我將這個構建指令碼貼到這裡,大家可以使用它來構建一個自己用的二進位制程式。)

#!/usr/bin/env bash
set -e
 
tmpdir=$(mktemp -t -d advcp.XXXXXX)
cd ${tmpdir}
 
wget https://aur.archlinux.org/packages/ad/advcp/advcp.tar.gz
tar xf advcp.tar.gz
 
source advcp/PKGBUILD
 
wget http://ftp.gnu.org/gnu/coreutils/coreutils-"${_pkgver}".tar.xz
tar xf coreutils-"${_pkgver}".tar.xz
 
cd coreutils-"${_pkgver}"
 
echo "[1mPatching...[0m"
patch -p1 -i ../advcp/advcpmv-"${_pkgver}"_"${pkgver}".patch || exit 1
 
echo "[1mStart making...[0m"
./configure || exit 1
make || exit 1
 
sudo install -Dm 755 "${PWD}"/src/cp /usr/local/bin/acp
sudo install -Dm 755 "${PWD}"/src/mv /usr/local/bin/amv
 
echo "[1mInstallation succeeded![0m"
echo "[1mDon't forget to add \"alias cp='acp -g'\" and \"alias mv='amv -g'\" in your bashrc![0m"

 

The Silver Searcher

the silver searcher 這個名字聽起來很不尋常(銀搜尋...), 它是一款設計用來替代 grep 和 ack 的工具。 The silver searcher 在檔案中搜尋你想要的部分, 它比 ack 要快, 而且能夠忽略一些檔案而不像 grep 那樣。(譯者注: 原文的意思貌似是 grep 無法忽略一些檔案, 但 grep 有類似選項) the silver searcher 還有一些其他的功能,比如彩色輸出, 跟隨軟連線, 使用正規表示式, 甚至是忽略某些模式。

作者在開發者主頁上提供了一些搜尋速度的統計數字, 如果它們的確是真的的話, 那是非常可觀的。 另外, 你可以把它整合到 Vim 中, 用一個簡潔的命令來呼叫它。 如果要用兩個詞來概括它, 那就是: 智慧、快速。

plowshare

所有命令列的粉絲都喜歡使用 wget 或其他對應的替代品來從網際網路上下載東西。 但如果你使用許多檔案分享網站, 像 mediafire 或者 rapidshare。 你一定很樂意瞭解一款專門為這些網站設計的對應的程式, 叫做 plowshare。 安裝成功之後, 你可以使用如下命令來下載檔案:

$ plowdown [URL] 

或者是上傳檔案:

$ plowup [website name] [file] 

前提是如果你有那個檔案分享網招的賬號的話。

最後, 你可以獲取分享資料夾中的一系列檔案的連結:

$ plowlist [URL] 

或者是檔名、 大小、 雜湊值等等:

$ plowprobe [URL] 

對於那些熟悉這些服務的人來說, plowshare 還是緩慢而令人難以忍受的 jDownloader 的一個很好的替代品。

htop

如果你經常使用 top 命令, 很有可能你會喜歡 htop 命令。 top 和 htop 命令都能對正在執行的程式提供了實時檢視功能, 但 htop 還擁有一系列 top 命令所沒有的人性化功能。 比如, 在 htop 中, 你可以水平或垂直滾動程式列表來檢視每個程式的完整命令名, 還可以使用滑鼠點選和方向鍵來進行一些基本的程式操作(比如 kill、 (re)nice 等),而不用輸入程式識別符號。

mtr

系統管理員的一個基本的網路診斷工具traceroute可以用於顯示從本地網路到目標網路的網路第三層協議的路由。mtr(即“My Traceroute”的縮寫)繼承了強大的traceroute功能,並整合了 ping 的功能。當發現了一個完整的路由時,mtr會顯示所有的中繼節點的 ping 延遲的統計資料,對網路延遲的定位非常有用。雖然也有其它的 traceroute的變體(如:tcptraceroute 或 traceroute-nanog),但是我相信 mtr 是traceroute 工具裡面最實用的一個增強工具。

總的來說, 這些十分有效的基本命令列的替代工具就像那些有用的小珍珠一樣, 它們並不是那麼容易被發現, 但當一旦你找到一個, 你就會驚訝你是如何忍受這麼長沒有它的時間! 如果你還知道其他的與上面描述相符的工具, 請在評論中分享給我們。


via: http://xmodulo.com/2014/07/better-alternatives-basic-command-line-utilities.html

作者:Adrien Brochard 譯者:wangjiezhe 校對:wxy

本文由 LCTT 原創翻譯,Linux中國 榮譽推出

相關文章