命令列基礎工具的更佳替代品
命令列聽起來有時候會很嚇人,特別是在剛剛接觸的時候,你甚至可能做過有關命令列的噩夢。然而漸漸地,我們都會意識到命令列實際上並不是那麼嚇人,反而是非常有用。實際上,沒有命令列正是每次我使用 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
相關文章
- 命令列常用工具的替代品命令列
- Nmcli 網路管理命令列工具基礎命令列
- 命令列基礎命令列
- Windows命令列基礎Windows命令列
- 常用命令列基礎命令列
- Linux基礎命令---dig工具Linux
- 基於命令列的WINCE驅動開發工具命令列
- 基於node和npm的命令列工具——tive-cliNPM命令列
- JDK常用的命令列工具JDK命令列
- 基礎篇:一文講懂樹莓派命令列文字編輯工具Vim的使用樹莓派命令列
- ROS命令列工具ROS命令列
- 用 nodejs 寫一個命令列工具 :建立 react 元件的命令列工具NodeJS命令列React元件
- Linux基礎命令---host域名查詢工具Linux
- Linux基礎命令---wget下載工具Linuxwget
- 基於Python命令列的NBA文字直播小工具Python命令列
- Redis的基礎命令Redis
- Linux基礎命令---lpq檢視列印佇列Linux佇列
- 『忘了再學』Shell基礎 — 26、cut列提取命令
- 基礎命令
- TortoiseSVN 命令 (命令列執行工具)命令列
- Click: 命令列工具神器命令列
- EFCore之命令列工具命令列
- 使用SVN命令列工具命令列
- windows命令列工具(轉)Windows命令列
- Linux基礎命令---mailq顯示郵件佇列LinuxAI佇列
- RAID的基礎命令AI
- shell 基礎命令
- MySQL基礎命令MySql
- nmap基礎命令
- Docker 基礎命令Docker
- MongoDB基礎命令MongoDB
- RMAM基礎命令
- gitHub 基礎命令Github
- Liunx基礎命令
- Docker基礎命令Docker
- git基礎命令Git
- 優秀的命令列工具整理(二)命令列
- 優秀的命令列工具整理(三)命令列