5個你可能會忽略的有用命令列工具

2016-03-15    分類:作業系統、程式設計開發、首頁精華1人評論發表於2016-03-15

本文由碼農網 – 小峰原創翻譯,轉載請看清文末的轉載要求,歡迎參與我們的付費投稿計劃

不可否認,好的命令列工具可給開發人員帶來好處。這篇文章,正如標題所說的那樣,將為大家介紹5款超棒的命令列工具。

1.Z

  • 一次安裝
  • 甚至忘記了它
  • 得益於它的生產力:Z。

OK,但這是怎麼一回事呢?好吧,Z可以讓你快速從資料夾跳轉到資料夾,而無需費心編寫完整的絕對或相對路徑。為了實現這一目標,它記錄了所有你訪問的資料夾,然後基於上次使用的頻率和時間將它們排名。因此,所有你需要做的是鍵入 z part/of/path然後敲回車。通過這種方式,Z就會自動引導你到排名最高的匹配。

z

要安裝Z,可以下載 z.sh,然後在~/.zshrc或~/.bashrc中獲取資源,如果你依然不能必然跳轉到ZSH的話。下面著手正常流,cd-所有地方,這樣就可以了!

另外,如果你使用oh-my-zsh框架,那麼只需在~/.zshrc的外掛列表新增它。

$ vim ~/.zshrc
 plugins=(brew git mercurial mvn osx sbt scala vi-mode z)

預設情況下,Z在~/.z中儲存資料,下面是我在刪除之後稍微移動的內容。列印資料後,你可以看到我通過指定一小部分的路徑轉移到2個不同的資料夾,不考慮當前資料夾。請注意該目錄名是用一種不區分大小寫的方式匹配中間字的——非常方便!

總而言之,我強烈推薦大家花時間去了解這個偉大的工具,無論你的背景,興趣和使用案例是什麼。

2.youtube-dl

我們要介紹的第二個優秀工具是youtube-dl。這是一個跨平臺的工具,允許你下載YouTube視訊。最簡單的安裝方法是通過Homebrew或pip,如下圖所示。其它下載選項可以在上面的連結中找到。

$ brew install youtube-dl
 $ sudo pip install --upgrade youtube_dl

有時,出於某種原因,你可能需要下載用於存檔目的的演示。或者,想像你在一個偏遠的山村度過週末,沒有網際網路,但你又真的想看到最新的虛擬JUG會話。那麼一個簡單的youtube-dl https://youtu.be/PQPvZkA-6bg<wbr><wbr>足以滿足這一點。

youtube-dl

其他需要關注的好東西:

  • 並不限制你只能從Youtube下載,例如還Vimeo。
  • 只需指向YouTube播放列表,youtube-dl就會聰明地自動下載完整列表。
  • 如示例影像顯示,youtube-dl很樂意遵循縮寫的URL為你服務。
  • 預設情況下,將會下載最高清的視訊,但一個簡單的youtube-dl -f $FORMAT $LINK語句將覆蓋這一點。使用 -F 標記可讓你發現可用的格式。
  • 真正託管的其它選項被很好的記錄,並可通過 man youtube-dl輕易訪問。

3.shellcheck

我詳細任何在命令列上花費了顯著一段時間得人,都會想要使用shell指令碼自動執行任務。Bash本身就因其誤區眾多而聞名,甚至先高階指令碼編寫者也會不時地碰到意想不到的事情。不幸的是,對於我們來說,shell指令碼沒有撤消按鈕,“意外”很可能是就是“災難”的代名詞。

長話短說:我們身邊有一個非常寶貴的工具可保護我們避免這一點,shellcheck!從本質上講,它是一個可以告訴你你的指令碼哪裡出錯的靜態分析器。

你可以通過選擇程式包管理器安裝shellcheck:Homebrew, Pacman, APT——從原始碼構建它,或在你的瀏覽器中執行它。

 $ brew install shellcheck
 # pacman -S shellcheck
 # apt-get install shellcheck

要執行它,只需執行shellcheck my-script,它會讀取shebang (#!)指令來決定是否作為sh, bash或ksh分析。

shellcheck

正如上面例子中顯示的輸出那樣,有一個語法錯誤,它用紅色標記:是關於空格的問題。然而,shellcheck能做的不僅僅如此。它用黃色來對潛在的災難性事件作出警告:要是toDelete是空的呢?當然,這個例子是有點假,沒有–no-preserve-root,因此應該不會有分解為/的語句損壞,但我的觀點仍然有效!最後,在綠色的語句中你會發現未來潛在事故中最不容忽視的常規警告。

最後關於shellcheck還要補充的一句話是:使用整齊的Syntastic Vim外掛在Vim內部本身整合工具,配置什麼時候應該允許,以及應該如何執行等。上面生成輸出的同一個指令碼中現在從我們最喜歡的文字編輯器中看起來是下面這樣的。

shellcheck-vim

4.multitail

對於系統管理員和開發運營人員:停止使用 tail -f,並開始使用multitail。這個最終的日誌檢視器允許你做一些非常酷的事情,非常值得一提。或者你可以要麼使用tmux 或screen 來獲取in-shell複用,或只使用一個現代化的終端模擬器讓你可以快速做一些事情,例如iTerm2 或Terminator,然而,在這些情況下,你可能會錯過下面一些功能。

  • 同時顯示多個視窗,在使用ncurses的同一個shell中。
  • 同一視窗中合併多個日誌,例如同一應用程式的stdout 和stderr日誌。
  • 通過選單內可編輯的正規表示式執行動態地過濾。
  • 使用預定義的顏色高亮器使日誌變得更加清晰,或者再次用正規表示式自己定義。

如何安裝:

$ brew install multitail
 # pacman -S multitail
 # apt-get install multitail

舉一個實際的例子,這裡一個視窗截圖,我正在通過附加到Tomcat,執行臭名昭著的PetClinic專案來開發JRebel。那時我既需要Tomcat自己的輸出,也需要JRebel的輸出。注意-CS“為所有的後續檔案使用這個顏色方案”,其次是方案名稱。

由於兩個日誌顏色被設定與Apache規則配合良好,接著是日誌檔案的實際路徑。

$ multitail -CS apache "$TOMCAT_HOME/logs/catalina.out" "$HOME/.jrebel/jrebel.log"

multitail

5.tree

這篇文章中我們要介紹的最後一個工具是必不可少的tree實用程式。tree能輸出一個不錯的,結構化的目錄樹檢視,讓你直觀看到你的資料結構,而不必 ls, cd 或 z所有地方。如果它沒有預裝在你最喜歡的*NIX中,那麼可以通過你喜歡的軟體包管理獲取。

 $ brew install tree
 # pacman -S tree
 # apt-get install tree

在最基本的形式中,你只需輸入 $ tree列印當前資料夾的結構。

tree

就個人而言,我更喜歡和別的什麼搭配一起用,例如新增一些標記來列印人可讀的檔案大小,隱藏檔案,和一個不錯的總檔案計數:$ tree -ah --du

tree-fancy

這就是所有我要告訴你的關於tree的內容。它grep輸出的時候真的非常方便,而且展現給你一個超棒的檔案系統,我敢肯定,你會從第一時間就喜歡上它。

上面這些就是我要介紹的命令列工具,這些工具你乍一看不會覺得會改變你的生活,但是一段時間後,你無法想象不使用它們的情形。事實上,你可能會咒罵你那臺破電腦,因為沒有安裝這些偉大的工具。你最喜歡的命令列工具是什麼,歡迎分享在下面的評論中。

譯文連結:http://www.codeceo.com/article/5-command-tools-you-may-overlook.html
英文原文:5 Unexpectedly Useful Command Line Tools You Might Overlook
翻譯作者:碼農網 – 小峰
轉載必須在正文中標註並保留原文連結、譯文連結和譯者等資訊。]

相關文章