Linux 桌面從開始的簡陋到現在走了很長的路。 在我早期使用 Linux 的那段日子裡, 掌握命令列是最基本的 —— 即使是在桌上出版。 不過現在變了, 很多人可能從沒用過命令列。 但對於 Linux 系統管理員來說, 可不能這樣。 實際上, 對於任何 Linux 管理員(不管是伺服器還是桌面), 命令列仍是必須的。 從管理網路到系統安全, 再到應用和系統設定 —— 沒有什麼工具比命令列更強大。
但是, 實際上……你可以在 Linux 系統裡找到非常多命令。 比如只看/usr/bin目錄, 你就可以找到很多命令執行檔(你可以運行ls/usr/bin/ | wc -l看一下你的系統裡這個目錄下到底有多少命令)。
幸運的是, 你可以使用一些工具和技巧, 這樣你就不用每天掙扎著去記憶這些命令了。 我想和大家分享幾個這樣的小技巧, 希望能讓你們能稍微有效地使用命令列(順便節省點腦力)。
我們從一個系統內置的工具開始介紹, 然後再介紹兩個可以安裝的非常實用的程式。
Bash 命令歷史
不管你知不知道, Bash(最流行的 Linux shell)會保留你執行過的命令的歷史。 想實際操作下看看嗎?有兩種方式。 打開終端視窗然後按向上方向鍵。 你應該可以看到會有命令出現,
要重新執行(或修改一下再執行)之前運行過的命令, 這是一個很好的方式。 我經常用這個功能。 它不僅僅讓我不用去記憶一個命令的所有細節, 而且可以不用一遍遍重複地輸入同樣的命令。
說到 Bash 的命令歷史, 如果你執行命令history, 你可以列出你過去執行過的命令列表(圖 1)。
圖 1: 你能找到我敲的命令裡的錯誤嗎?
你的 Bash 命令歷史保存的歷史命令的數量可以在~/.bashrc檔裡設置。 在這個檔裡, 你可以找到下面兩行:
HISTSIZE=1000
HISTFILESIZE=2000
HISTSIZE是命令歷史清單裡記錄的命令的最大數量, 而HISTFILESIZE是命令歷史文件的最大行數。
顯然, 預設情況下, Bash 會記錄你的 1000 條歷史命令。 這已經很多了。 有時候, 這也被認為是一個安全性漏洞。 如果你在意的話, 你可以隨意減小這個數值, 在安全性和實用性之間平衡。 如果你不希望 Bash 記錄你的命令歷史, 可以將HISTSIZE設置為0
如果你修改了~/.bashrc檔, 記得要登出後再重新登錄(否則改動不會生效)。
apropos
這是第一個我要介紹的工具,
圖 2: 你用的什麼防火牆?
再假如你需要一個操作目錄的命令,
圖 3: 可以操作目錄的工具有哪些呢?
apropos 工具在幾乎所有 Linux 發行版本裡都會預設安裝。
Fish
還有另一個能幫助你記憶命令的很好的工具。 Fish 是 Linux/Unix/Mac OS 的一個命令列 shell, 有一些很好用的功能。
自動推薦
VGA 顏色
完美的腳本支持
基於網頁的配置
説明文檔自動補全
語法高亮
以及更多
自動推薦功能讓 fish 非常方便(特別是你想不起來一些命令的時候)。
你可能覺得挺好,但是 fish 沒有被默認安裝。對於 Ubuntu(以及它的衍生版),你可以用下面的命令安裝:
sudo apt-add-repository ppa:fish-shell/release-2
sudo apt update
sudo apt install fish
對於類 CentOS 系統,可以這樣安裝 fish。用下面的命令增加倉庫:
sudo -s
cd /etc/yum.repos.d/
wget連結
用下麵的命令更新倉庫:
yum repolist
yum update
然後用下面的命令安裝 fish:
yum install fish
fish 用起來可能沒你想像的那麼直觀。記住,fish 是一個 shell,所以在使用命令之前你得先登錄進去。在你的終端裡,運行命令 fish 然後你就會看到自己已經打開了一個新的 shell(圖 4)。
圖 4: fish 的互動式 shell。
在開始輸入命令的時候,fish 會自動補齊命令。如果推薦的命令不是你想要的,按下鍵盤的 Tab 鍵可以流覽更多選擇。如果正好是你想要的,按下鍵盤的向右鍵補齊命令,然後按下 Enter 執行。在用完 fish 後,輸入 exit 來退出 shell。
Fish 還可以做更多事情,但是這裡只介紹用來幫助你記住命令,自動推薦功能足夠了。
保持學習
Linux 上有太多的命令了。但你也不用記住所有命令。多虧有 Bash 命令歷史以及像 apropos 和 fish 這樣的工具,你不用消耗太多記憶來回憶那些幫你完成任務的命令。
有一些很好用的功能。自動推薦
VGA 顏色
完美的腳本支持
基於網頁的配置
説明文檔自動補全
語法高亮
以及更多
自動推薦功能讓 fish 非常方便(特別是你想不起來一些命令的時候)。
你可能覺得挺好,但是 fish 沒有被默認安裝。對於 Ubuntu(以及它的衍生版),你可以用下面的命令安裝:
sudo apt-add-repository ppa:fish-shell/release-2
sudo apt update
sudo apt install fish
對於類 CentOS 系統,可以這樣安裝 fish。用下面的命令增加倉庫:
sudo -s
cd /etc/yum.repos.d/
wget連結
用下麵的命令更新倉庫:
yum repolist
yum update
然後用下面的命令安裝 fish:
yum install fish
fish 用起來可能沒你想像的那麼直觀。記住,fish 是一個 shell,所以在使用命令之前你得先登錄進去。在你的終端裡,運行命令 fish 然後你就會看到自己已經打開了一個新的 shell(圖 4)。
圖 4: fish 的互動式 shell。
在開始輸入命令的時候,fish 會自動補齊命令。如果推薦的命令不是你想要的,按下鍵盤的 Tab 鍵可以流覽更多選擇。如果正好是你想要的,按下鍵盤的向右鍵補齊命令,然後按下 Enter 執行。在用完 fish 後,輸入 exit 來退出 shell。
Fish 還可以做更多事情,但是這裡只介紹用來幫助你記住命令,自動推薦功能足夠了。
保持學習
Linux 上有太多的命令了。但你也不用記住所有命令。多虧有 Bash 命令歷史以及像 apropos 和 fish 這樣的工具,你不用消耗太多記憶來回憶那些幫你完成任務的命令。