命令行增強版
參考文章:CLI: improved
https://remysharp.com/2018/08/23/cli-improved
bat > cat
cat 用於打印文件的內容,如果你平時用命令行很多的話,例如語法高亮之類的功能會非常有用。我首先發現了 ccat[1] 這個有語法高亮功能的工具,然後我發現了 bat[2],它的功能有語法高亮、分頁、行號和 git 集成。
bat 命令也能讓我在(多於一屏的)輸出裏使用 / 搜索(和用 less 搜索功能一樣)。
bat網站:
https://github.com/sharkdp/bat
ubuntu安裝
sudo apt install bacula-console-qt
快捷鍵
alias cat='bat'
prettyping > ping
ping 非常有用,當我碰到“糟了,是不是 X 掛了?/我的網不通了?”這種情況下我最先想到的工具就是它了。但是 prettyping(“prettyping” 可不是指“pre typing”)在 ping 的基礎上加了友好的輸出,這可讓我感覺命令行友好了很多呢。
安裝方法:
https://linux.cn/article-10067-1.html
快捷鍵:
alias ping='prettyping --nolegend'
執行
sh prettyping www.baidu.com
輸出:
htop > top
top 是當我想快速診斷爲什麼機器上的 CPU 跑的那麼累或者風扇爲什麼突然呼呼大做的時候首先會想到的工具。我在生產環境也會使用這個工具。討厭的是 Mac 上的 top 和 Linux 上的 top 有着極大的不同(恕我直言,應該是差的多)。
不過,htop 是對 Linux 上的 top 和 Mac 上蹩腳的 top 的極大改進。它增加了包括顏色輸出,鍵盤熱鍵綁定以及不同的視圖輸出,這對理解進程之間的父子關係有極大幫助。
一些很容易上手的熱鍵:
-
P —— 按 CPU 使用率排序
-
M —— 按內存使用排序
-
F4 —— 用字符串過濾進程(例如只看包括 node 的進程)
-
space —— 錨定一個單獨進程,這樣我能觀察它是否有尖峯狀態
執行:
htop
diff-so-fancy > diff
我非常確定我是幾年前從 Paul Irish 那兒學來的這個技巧,儘管我很少直接使用 diff,但我的 git 命令行會一直使用 diff。diff-so-fancy 給了我代碼語法顏色和更改字符高亮的功能。
在我的 ~/.gitconfig 文件裏我用了下面的選項來打開 git diff 和 git show 的 diff-so-fancy 功能。
fd > find
fd 是一個很好的替代品(它的作者和 bat 的作者是同一個人)。它非常快而且對於我經常要搜索的命令非常好記。
幾個上手的例子:
-
$ fd cli # 所有包含 “cli” 的文件名
-
$ fd -e md # 所有以 .md 作爲擴展名的文件
-
$ fd cli -x wc -w # 搜索 “cli” 並且在每個搜索結果上運行
wc -w
安裝目錄:
https://github.com/sharkdp/fd/
輸出:
ncdu > du
du -sh 命令是我經常會運行的命令(-sh 是指結果以“彙總”和“人類可讀”的方式顯示),我經常會想要深入挖掘那些佔用了大量磁盤空間的目錄,看看到底是什麼在佔用空間。
ncdu 是一個非常棒的替代品。它提供了一個交互式的界面並且允許快速的掃描那些佔用了大量磁盤空間的目錄和文件,它又快又準。
du別名:
alias du="ncdu --color dark -rr -x --exclude .git --exclude node_modules"
tldr > man
幾乎所有的命令行工具都有一個相伴的手冊,它可以被 man <命令名> 來調出,但是在 man的輸出裏找到東西可有點讓人困惑,而且在一個包含了所有的技術細節的輸出裏找東西也挺可怕的。
輸出:
ack || ag > grep
grep 毫無疑問是一個強力的命令行工具,但是這些年來它已經被一些工具超越了,其中兩個叫 ack 和 ag。
我個人對 ack 和 ag 都嘗試過,而且沒有非常明顯的個人偏好,(也就是說它們都很棒,並且很相似)。我傾向於默認只使用 ack,因爲這三個字符就在指尖,很好打。並且 ack 有大量的 ack --bar 參數可以使用!(你一定會體會到這一點。)
ack 和 ag 默認都使用正則表達式來搜索,這非常契合我的工作,我能使用類似於 --js或 --html 這種標識指定文件類型搜索。(儘管 ag 比 ack 在文件類型過濾器裏包括了更多的文件類型。)
兩個工具都支持常見的 grep 選項,如 -B 和 -A 用於在搜索的上下文裏指代“之前”和“之後”。
因爲 ack 不支持 markdown(而我又恰好寫了很多 markdown),我在我的 ~/.ackrc 文件里加了以下定製語句:
1. --type-set=md=.md,.mkd,.markdown
1. --pager=less -FRX
安裝:
http://conqueringthecommandline.com/book/ack_ag
無法安裝成功