工欲善其事,必先利其器,做爲一名手藝人, 咱們應該利用好工具,以便將咱們的時間用在更有效率的事情上,類 Linux 上不少原生的如 cat
,grep
等命令給咱們帶來了不少便利,但其實都或多或少有能夠改進的地方,市面上其實出現了大量的第三方開發者開發的對這些原生作了很大改進的命令,比原生的命令更好用,今天就給你們推薦這些命令,大部分能夠說是秒殺原生命令了,能讓你事半功倍,強烈推薦php
我的以爲即將介紹的命令很好用,徹底能夠替代原生命令,也設置了大量的 alias 語句來替代原生命令,不過每一個人的習慣不同,若是你以爲即將介紹的命令用得不習慣 ,想用回原生的命令也能夠,按相似如下的操做便可node
\cat # 忽略全部 alias 爲 cat 的命令 - explanation: https://stackoverflow.com/a/16506263/22617
# 或
command cat # 忽略全部函數和 aliases
複製代碼
廢話不說,讓咱們看看哪此命令足以替代原生命令吧git
原生的 cat
命令只是簡單地打印某個文件的內容,但 bat
命令在此基礎上還能夠作到如下功能github
/
來搜索相關的內容 功能演示以下
推薦用 alias
命令將 cat
設置成 bat
shell
alias cat='bat'
複製代碼
💾 點擊這裏可安裝 bat
bash
什麼是 fzf 呢函數
It's an interactive Unix filter for command-line that can be used with any list; files, command history, processes, hostnames, bookmarks, git commits, etc.工具
它是一款使用 GO 語言編寫的交互式的 Unix 命令行工具。能夠用來查找任何列表內容、文件、歷史命令、 本機綁定的host、 進程、 Git 分支、進程等。全部的命令行工具能夠生成列表輸出的均可以再經過管道 pipe 到 fzf 上進行搜索和查找性能
咱們簡單介紹一下它的查找歷史命令的功能,查看歷史輸入的終端命令咱們通常用 ctrl+r
,在這方面,fzf
能夠說是秒殺 ctrl+r
了,ctrl+r
只能呼出最近一條包含輸入字符串的歷史命令,並且只能作精確匹配,而安裝了 fzf
後,當呼出 ctrl+r
會顯示全部包含輸入字符串的命令(默認匹配最近一條符合搜索條件的命令),按上下箭頭便可自由選擇你想要的命令,並且支持模糊搜索,這個特性針對那些經常只是隱約記得歷史命令的人特別有用,好比若是我隱約記得有個命令和 git
,finance
有關,我能夠這麼搜 ui
fzf 的功能遠不止於此,與其餘命令結合讓你的效率飛速提高,自動補全功能徹底秒殺默認的 tab 功能,再安裝一個具備預覽功能的 highlight 插件,好用到爆炸,不信看如下功能展現
💾 點擊這裏可安裝 fzf
top 命令能夠說是查看進程與系統運行的利器了,不過 htop 不只具有 top 的全部功能,還有一些 top 不具有但很實用的功能,簡單列舉幾個
顯示每一個 CPU 的負載狀況,若是 CPU 是四核八線程的,會顯示每一個線程的負載狀況,並且不一樣的指標用顏色區分開來,更直觀,對用戶更友好
交互式
咱們能夠設置 top 的 alias 以便利用 htop 的強大功能
alias top="sudo htop" # alias top and fix high sierra bug
複製代碼
💾 點擊這裏可安裝 htop
默認的 git diff
顯示不太友好,也不支持定製配色方案,並且僅能支持行級別的 diff, diff-so-fancy
默認的配色方案不只是 human readable
,並且支持字符級別的 diff,因此推薦 git diff
用 diff-so-fancy
,默認的 diff 和 diff-so-fancy 對好比下
diff-so-fancy
默認的 find 命令不太好用,查找命令比較複雜冗餘,考慮如下三種情形
// use find
find . -type f -name "*.md"
find . -name '*cli*'
find ./ -type f -name "*php*" -exec wc -w {} +
// use fd
fd -e md
fd md # all with .md extension
fd cli -x wc -w
複製代碼
能夠看到,用 fd 命令極簡,更關鍵的是在文件多的狀況下 fd 還有另外一大優點:性能!fd 的搜索效率能夠達到 find 的 20 倍以上 💾 點擊這裏可安裝配置 fd
##ncdu > du ncdu 能夠理解爲是交互式的 du。咱們通常用 du 來查找某個目錄佔用了多少磁盤空間,但若是咱們須要查看這個目錄下的子目錄/文件佔用了多少空間並對其進行排序 du 就無能爲力了,而用 ncdu 的話咱們只要在目錄輸入此命令便可顯示按空間大小降序排序的全部文件/目錄
並且比較方便的一點是 ncdu 是交互式的,若是咱們還想看子目錄裏的文件/目錄大小,只須要按上下箭頭選中相關目錄按回車便可查看子目錄詳情的空間佔用狀況,速度極快!另外也可刪除文件,能夠在選中子目錄時執行至關於 cd 到此子目錄的命令(此時會退出ncdu, 並 cd 到此子目錄)。還有一個比較騷的功能是點擊 cmd
+ 選中的目錄/文件能夠打開當前目錄/文件 咱們能夠爲 du 設置 ncdu 的 alias,配上主題優雅不少
// --color 設置主題,--rr 只讀模式,防止執行 ncdu 時刪除文件以及 cd 到某個子目錄
alias du="ncdu --color dark -rr -x --exclude .git --exclude node_modules"
複製代碼
效果以下
ncdu
原文連接點擊這裏
我的公衆號: 碼農蛻變之路,按期分享各類 IT 技能,期待與你們交流