5個(gè)你可能會(huì)忽略的有用命令行工具
不可否認(rèn),好的命令行工具可給開發(fā)人員帶來好處。這篇文章,正如標(biāo)題所說的那樣,將為大家介紹5款超棒的命令行工具。
1.Z
-
一次安裝
-
甚至忘記了它
-
得益于它的生產(chǎn)力:Z。
OK,但這是怎么一回事呢?好吧,Z可以讓你快速從文件夾跳轉(zhuǎn)到文件夾,而無需費(fèi)心編寫完整的絕對(duì)或相對(duì)路徑。為了實(shí)現(xiàn)這一目標(biāo),它記錄了所有你訪問的文件夾,然后基于上次使用的頻率和時(shí)間將它們排名。因此,所有你需要做的是鍵入 z part/of/path
然后敲回車。通過這種方式,Z就會(huì)自動(dòng)引導(dǎo)你到排名最高的匹配。
要安裝Z,可以下載 z.sh,然后在~/.zshrc或~/.bashrc中獲取資源,如果你依然不能必然跳轉(zhuǎn)到ZSH的話。下面著手正常流,cd
-所有地方,這樣就可以了!
另外,如果你使用oh-my-zsh框架,那么只需在~/.zshrc的插件列表添加它。
- $ vim ~/.zshrc
- plugins=(brew git mercurial mvn osx sbt scala vi-mode z)
默認(rèn)情況下,Z在~/.z中存儲(chǔ)數(shù)據(jù),下面是我在刪除之后稍微移動(dòng)的內(nèi)容。打印數(shù)據(jù)后,你可以看到我通過指定一小部分的路徑轉(zhuǎn)移到2個(gè)不同的文件夾,不考慮當(dāng)前文件夾。請(qǐng)注意該目錄名是用一種不區(qū)分大小寫的方式匹配中間字的——非常方便!
總而言之,我強(qiáng)烈推薦大家花時(shí)間去了解這個(gè)偉大的工具,無論你的背景,興趣和使用案例是什么。
2.youtube-dl
我們要介紹的第二個(gè)優(yōu)秀工具是youtube-dl。這是一個(gè)跨平臺(tái)的工具,允許你下載YouTube視頻。最簡單的安裝方法是通過Homebrew或pip,如下圖所示。其它下載選項(xiàng)可以在上面的鏈接中找到。
- $ brew install youtube-dl
- $ sudo pip install --upgrade youtube_dl
有時(shí),出于某種原因,你可能需要下載用于存檔目的的演示。或者,想像你在一個(gè)偏遠(yuǎn)的山村度過周末,沒有互聯(lián)網(wǎng),但你又真的想看到最新的虛擬JUG會(huì)話。那么一個(gè)簡單的youtube-dl https://yout
其他需要關(guān)注的好東西:
-
并不限制你只能從Youtube下載,例如還Vimeo。
-
只需指向YouTube播放列表,youtube-dl就會(huì)聰明地自動(dòng)下載完整列表。
-
如示例圖像顯示,youtube-dl很樂意遵循縮寫的URL為你服務(wù)。
-
默認(rèn)情況下,將會(huì)下載最高清的視頻,但一個(gè)簡單的youtube-dl -f $FORMAT $LINK語句將覆蓋這一點(diǎn)。使用 -F 標(biāo)記可讓你發(fā)現(xiàn)可用的格式。
-
真正托管的其它選項(xiàng)被很好的記錄,并可通過
man youtube-dl
輕易訪問。
3.shellcheck
我詳細(xì)任何在命令行上花費(fèi)了顯著一段時(shí)間得人,都會(huì)想要使用shell腳本自動(dòng)執(zhí)行任務(wù)。Bash本身就因其誤區(qū)眾多而聞名,甚至先高級(jí)腳本編寫者 也會(huì)不時(shí)地碰到意想不到的事情。不幸的是,對(duì)于我們來說,shell腳本沒有撤消按鈕,“意外”很可能是就是“災(zāi)難”的代名詞。
長話短說:我們身邊有一個(gè)非常寶貴的工具可保護(hù)我們避免這一點(diǎn),shellcheck!從本質(zhì)上講,它是一個(gè)可以告訴你你的腳本哪里出錯(cuò)的靜態(tài)分析器。
你可以通過選擇程序包管理器安裝shellcheck:Homebrew, Pacman, APT——從源代碼構(gòu)建它,或在你的瀏覽器中運(yùn)行它。
- $ brew install shellcheck
- # pacman -S shellcheck
- # apt-get install shellcheck
要運(yùn)行它,只需執(zhí)行shellcheck my-script,它會(huì)讀取shebang (#!)指令來決定是否作為sh, bash或ksh分析。
正如上面例子中顯示的輸出那樣,有一個(gè)語法錯(cuò)誤,它用紅色標(biāo)記:是關(guān)于空格的問題。然而,shellcheck能做的不僅僅如此。它用黃色來對(duì)潛在 的災(zāi)難性事件作出警告:要是toDelete是空的呢?當(dāng)然,這個(gè)例子是有點(diǎn)假,沒有–no-preserve-root,因此應(yīng)該不會(huì)有分解為/的語句 損壞,但我的觀點(diǎn)仍然有效!最后,在綠色的語句中你會(huì)發(fā)現(xiàn)未來潛在事故中最不容忽視的常規(guī)警告。
最后關(guān)于shellcheck還要補(bǔ)充的一句話是:使用整齊的Syntastic Vim插件在Vim內(nèi)部本身集成工具,配置什么時(shí)候應(yīng)該允許,以及應(yīng)該如何運(yùn)行等。上面生成輸出的同一個(gè)腳本中現(xiàn)在從我們最喜歡的文本編輯器中看起來是下面這樣的。
4.multitail
對(duì)于系統(tǒng)管理員和開發(fā)運(yùn)營人員:停止使用 tail -f
,并開始使用multitail。這個(gè)最終的日志查看器允許你 做一些非??岬氖虑椋浅V档靡惶??;蛘吣憧梢砸词褂胻mux 或screen 來獲取in-shell復(fù)用,或只使用一個(gè)現(xiàn)代化的終端模擬器讓你可以 快速做一些事情,例如iTerm2 或Terminator,然而,在這些情況下,你可能會(huì)錯(cuò)過下面一些功能。
-
同時(shí)顯示多個(gè)窗口,在使用ncurses的同一個(gè)shell中。
-
同一窗口中合并多個(gè)日志,例如同一應(yīng)用程序的stdout 和stderr日志。
-
通過菜單內(nèi)可編輯的正則表達(dá)式執(zhí)行動(dòng)態(tài)地過濾。
-
使用預(yù)定義的顏色高亮器使日志變得更加清晰,或者再次用正則表達(dá)式自己定義。
如何安裝:
- $ brew install multitail
- # pacman -S multitail
- # apt-get install multitail
舉一個(gè)實(shí)際的例子,這里一個(gè)窗口截圖,我正在通過附加到Tomcat,運(yùn)行臭名昭著的PetClinic項(xiàng)目來開發(fā)JRebel。那時(shí)我既需要Tomcat自己的輸出,也需要JRebel的輸出。注意-CS“為所有的后續(xù)文件使用這個(gè)顏色方案”,其次是方案名稱。
由于兩個(gè)日志顏色被設(shè)置與Apache規(guī)則配合良好,接著是日志文件的實(shí)際路徑。
$ multitail -CS apache "$TOMCAT_HOME/logs/catalina.out" "$HOME/.jrebel/jrebel.log"
5.tree
這篇文章中我們要介紹的最后一個(gè)工具是必不可少的tree實(shí)用程序。tree能輸出一個(gè)不錯(cuò)的,結(jié)構(gòu)化的目錄樹視圖,讓你直觀看到你的數(shù)據(jù)結(jié)構(gòu),而不必 ls, cd 或 z所有地方。如果它沒有預(yù)裝在你最喜歡的*NIX中,那么可以通過你喜歡的軟件包管理獲取。
- $ brew install tree
- # pacman -S tree
- # apt-get install tree
在最基本的形式中,你只需輸入 $ tree
打印當(dāng)前文件夾的結(jié)構(gòu)。
就個(gè)人而言,我更喜歡和別的什么搭配一起用,例如添加一些標(biāo)記來打印人可讀的文件大小,隱藏文件,和一個(gè)不錯(cuò)的總文件計(jì)數(shù):$ tree -ah --du
。
這就是所有我要告訴你的關(guān)于tree的內(nèi)容。它grep輸出的時(shí)候真的非常方便,而且展現(xiàn)給你一個(gè)超棒的文件系統(tǒng),我敢肯定,你會(huì)從第一時(shí)間就喜歡上它。
上面這些就是我要介紹的命令行工具,這些工具你乍一看不會(huì)覺得會(huì)改變你的生活,但是一段時(shí)間后,你無法想象不使用它們的情形。事實(shí)上,你可能會(huì)咒罵你那臺(tái)破電腦,因?yàn)闆]有安裝這些偉大的工具。你最喜歡的命令行工具是什么,歡迎分享在下面的評(píng)論中。
譯文鏈接:http://www.codeceo.com/article/5-command-tools-you-may-overlook.html
英文原文:5 Unexpectedly Useful Command Line Tools You Might Overlook