本文將精選介紹一些「知道的人都知道,但其實不太常被使用」的實用指令。
我已整理成可直接複製貼上、馬上就能使用的形式,建議你一邊開著終端機一邊閱讀。

前言

在日常使用 Linux 的過程中,總會有讓人想著「有沒有辦法更快一點?」的時刻。
這裡不介紹常見的 lsgrep,而是精選 5 個一旦知道就能大幅提升工作效率的指令。

適合讀者:

  • 剛從 Linux 新手畢業的人
  • 想讓終端機操作更俐落的工程師

1. fzf — 將各種選擇變成交互式

安裝

# Ubuntu / Debian
sudo apt install fzf

# macOS (Homebrew)
brew install fzf
# 啟用按鍵綁定(依環境不同,路徑或步驟可能不同)
$(brew --prefix)/opt/fzf/install
# 載入 Bash 的按鍵綁定(依環境不同,路徑可能不同,請確認)
source /usr/share/doc/fzf/examples/key-bindings.bash
# 或參考安裝時提示的 key-bindings 路徑

能做什麼?

fzf 是一個稱為模糊搜尋器的工具,能夠將透過管線傳入的任意清單進行互動式篩選

# 互動式選擇檔案並開啟
vim $(fzf)

# 讓歷史搜尋快到飛起來(加入 .bashrc / .zshrc)
# 按 Ctrl+R 啟動
source /usr/share/doc/fzf/examples/key-bindings.bash

建範例:Git 分支輕鬆切換

# 排除目前分支(前面會有 *)以安全選擇
git checkout $(git branch | grep -v "^\*" | fzf)

你可以邊篩選邊選擇分支。再也不用擔心輸入很長的分支名稱時打錯字。

fzf 本身就很強大,但和其他指令搭配時更能發揮真正價值。這正是「把所有東西都用管線串起來」的 UNIX 哲學體現。

※互動式:會依操作即時回應的雙向系統


2. tldrman 指令的輕鬆版

安裝

# 官方 Node.js 用戶端(建議)
npm install -g tldr

# (參考)也有 Python 實作等其他用戶端,
# 但本文以 npm 版本為前提說明。

能做什麼?

man 指令雖然詳細,但閱讀起來很花時間。tldr直接顯示實用的指令範例

# 快速確認 tar 指令的用法
tldr tar

輸出範例:

tar

Archiving utility.
Often combined with a compression method, such as gzip or bzip2.

- Create an archive and write it to a file:
  tar cf target.tar file1 file2 file3

- Extract a (compressed) archive file into the current directory:
  tar xf source.tar[.gz|.bz2|.xz]

- List the contents of a tar file:
  tar tvf source.tar

這樣就不用打開 man tar 一直往下捲了。


3. watch — 即時監視指令

安裝

多數 Linux 發行版都有預先安裝。
如果沒有,可以用以下指令安裝:

sudo apt install procps

其他發行版請在套件管理器中搜尋 watch

能做什麼?

watch定期執行指定指令,並持續更新畫面上的輸出。很適合用來監控日誌或確認資源使用狀況。

# 每 2 秒更新一次磁碟使用量(預設)
watch df -h

# 每 1 秒更新一次
watch -n 1 df -h

# 將變動的部分以反白方式顯示
watch -d free -h

建範例:部署中的容器狀態監視

watch -n 2 docker ps

你只要在另一個終端機跑部署流程,同時在這個視窗看著容器啟動狀況就好。按 Ctrl+C 結束。


4. xargs — 將標準輸出轉成參數傳給下一個指令

能做什麼?

管線 | 會把標準輸出當作「文字串流」傳遞,但 xargs 則是把這些文字以空白或換行分割後,展開成參數的橋接工具。

# 刪除目前目錄下所有 .log 檔
find . -name "*.log" | xargs rm

# 透過平行執行加速建置(使用 -P 指定程序數)
cat targets.txt | xargs -P 4 -I {} make {}

常見的錯誤與避免方法

如果檔名包含空白,xargs 可能會誤判。與 find 搭配時,建議使用 -print0-0 來安全處理。

# 先確認要刪除的目標(也支援包含空白的檔名)
find . -name "*.log" -print0 | xargs -0 echo rm

# 確認沒問題後,移除 echo 直接執行
find . -name "*.log" -print0 | xargs -0 rm

xargs rm 的威力非常強,正式環境中建議先養成用 xargs echo 確認刪除目標的習慣。


5. tmux — 終端機分割與隨機管理

安裝

sudo apt install tmux

能做什麼?

tmux終端機多工器。它可以把一個終端機視窗分割成多個區塊,也能在 SSH 連線中斷後讓工作繼續執行。

基本操作(前綴鍵是 Ctrl+b

操作指令新建一個工作階段tmux new -s mysession工作階段列表tmux ls附加到工作階段tmux attach -t mysession左右分割畫面Ctrl+b %上下分割畫面Ctrl+b "在面板之間移動Ctrl+b ←↑↓→分離工作階段Ctrl+b d### 最強的使用情境:SSH 連線斷開了也能繼續幹活

# 透過 SSH 登入伺服器後
tmux new -s deploy

# 執行需要較長時間的處理
./deploy.sh

### 最強的使用情境:SSH 斷線後仍可在伺服器上持續執行工作

# 即使 SSH 連線中斷,伺服器上的 tmux 工作階段與工作也會持續存在
# 重新連線後可用 tmux attach 重新開始作業

# 重新連線後
tmux attach -t deploy

對於長時間的批次處理或部署作業來說,這是必備工具。


總結

一句話說明各指令:fzf:將任何內容交互式篩選 tldrman 的輕鬆版 watch:即時監視指令 xargs:將輸出作為參數傳給下一個指令 tmux:終端機分割與工作階段管理
有沒有哪一個指令讓你特別感興趣呢?
先用 tldr 減少「查指令的時間」,再用 fzf 減少「選擇的時間」,光是這樣就能明顯感受到工作速度變快。

不妨實際試試看,並把你喜歡的工具整合到 shell 設定檔裡吧!


原文出處:https://qiita.com/K_TAKETO/items/66d70ce4ed54139998a9


精選技術文章翻譯,幫助開發者持續吸收新知。

共有 0 則留言


精選技術文章翻譯,幫助開發者持續吸收新知。
🏆 本月排行榜
🥇
站長阿川
📝16   ❤️1
469
🥈
我愛JS
1
評分標準:發文×10 + 留言×3 + 獲讚×5 + 點讚×1 + 瀏覽數÷10
本數據每小時更新一次
📢 贊助商廣告 · 我要刊登