5個你可能會忽略的有用命令行工具
不可否認,好的命令行工具可給開發人員帶來好處。這篇文章,正如標題所說的那樣,將為大家介紹5款超棒的命令行工具。
1.Z
-
一次安裝
-
甚至忘記了它
-
得益于它的生產力:Z。
OK,但這是怎么一回事呢?好吧,Z可以讓你快速從文件夾跳轉到文件夾,而無需費心編寫完整的絕對或相對路徑。為了實現這一目標,它記錄了所有你訪問的文件夾,然后基于上次使用的頻率和時間將它們排名。因此,所有你需要做的是鍵入 z part/of/path
然后敲回車。通過這種方式,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://yout
其他需要關注的好東西:
-
并不限制你只能從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能做的不僅僅如此。它用黃色來對潛在 的災難性事件作出警告:要是toDelete是空的呢?當然,這個例子是有點假,沒有–no-preserve-root,因此應該不會有分解為/的語句 損壞,但我的觀點仍然有效!最后,在綠色的語句中你會發現未來潛在事故中最不容忽視的常規警告。
最后關于shellcheck還要補充的一句話是:使用整齊的Syntastic Vim插件在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"
5.tree
這篇文章中我們要介紹的最后一個工具是必不可少的tree實用程序。tree能輸出一個不錯的,結構化的目錄樹視圖,讓你直觀看到你的數據結構,而不必 ls, cd 或 z所有地方。如果它沒有預裝在你最喜歡的*NIX中,那么可以通過你喜歡的軟件包管理獲取。
- $ brew install tree
- # pacman -S tree
- # apt-get install tree
在最基本的形式中,你只需輸入 $ tree
打印當前文件夾的結構。
就個人而言,我更喜歡和別的什么搭配一起用,例如添加一些標記來打印人可讀的文件大小,隱藏文件,和一個不錯的總文件計數:$ tree -ah --du
。
這就是所有我要告訴你的關于tree的內容。它grep輸出的時候真的非常方便,而且展現給你一個超棒的文件系統,我敢肯定,你會從第一時間就喜歡上它。
上面這些就是我要介紹的命令行工具,這些工具你乍一看不會覺得會改變你的生活,但是一段時間后,你無法想象不使用它們的情形。事實上,你可能會咒罵你那臺破電腦,因為沒有安裝這些偉大的工具。你最喜歡的命令行工具是什么,歡迎分享在下面的評論中。
譯文鏈接:http://www.codeceo.com/article/5-command-tools-you-may-overlook.html
英文原文:5 Unexpectedly Useful Command Line Tools You Might Overlook