Linux 桌面從開始的簡(jiǎn)陋到現(xiàn)在走了很長(zhǎng)的路。在我早期使用 Linux 的那段日子里,掌握命令行是最基本的 —— 即使是在桌面版。不過現(xiàn)在變了,很多人可能從沒用過命令行。但對(duì)于 Linux 系統(tǒng)管理員來說,可不能這樣。實(shí)際上,對(duì)于任何 Linux 管理員(不管是服務(wù)器還是桌面),命令行仍是必須的。從管理網(wǎng)絡(luò)到系統(tǒng)安全,再到應(yīng)用和系統(tǒng)設(shè)定 —— 沒有什么工具比命令行更強(qiáng)大。
但是,實(shí)際上……你可以在 Linux 系統(tǒng)里找到非常多命令。比如只看 /usr/bin 目錄,你就可以找到很多命令執(zhí)行文件(你可以運(yùn)行 ls/usr/bin/ | wc -l 看一下你的系統(tǒng)里這個(gè)目錄下到底有多少命令)。當(dāng)然,它們并不全是針對(duì)用戶的執(zhí)行文件,但是可以讓你感受下 Linux 命令數(shù)量。在我的 Elementary OS 系統(tǒng)里,目錄 /usr/bin 下有 2029 個(gè)可執(zhí)行文件。盡管我只會(huì)用到其中的一小部分,我要怎么才能記住這一部分呢?
幸運(yùn)的是,你可以使用一些工具和技巧,這樣你就不用每天掙扎著去記憶這些命令了。我想和大家分享幾個(gè)這樣的小技巧,希望能讓你們能稍微有效地使用命令行(順便節(jié)省點(diǎn)腦力)。
我們從一個(gè)系統(tǒng)內(nèi)置的工具開始介紹,然后再介紹兩個(gè)可以安裝的非常實(shí)用的程序。
不管你知不知道,Bash(最流行的 Linux shell)會(huì)保留你執(zhí)行過的命令的歷史。想實(shí)際操作下看看嗎?有兩種方式。打開終端窗口然后按向上方向鍵。你應(yīng)該可以看到會(huì)有命令出現(xiàn),一個(gè)接一個(gè)。一旦你找到了想用的命令,不用修改的話,可以直接按 Enter 鍵執(zhí)行,或者修改后再按 Enter 鍵。
要重新執(zhí)行(或修改一下再執(zhí)行)之前運(yùn)行過的命令,這是一個(gè)很好的方式。我經(jīng)常用這個(gè)功能。它不僅僅讓我不用去記憶一個(gè)命令的所有細(xì)節(jié),而且可以不用一遍遍重復(fù)地輸入同樣的命令。
說到 Bash 的命令歷史,如果你執(zhí)行命令 history,你可以列出你過去執(zhí)行過的命令列表(圖 1)。
圖 1: 你能找到我敲的命令里的錯(cuò)誤嗎?
你的 Bash 命令歷史保存的歷史命令的數(shù)量可以在 ~/.bashrc 文件里設(shè)置。在這個(gè)文件里,你可以找到下面兩行:
HISTSIZE=1000HISTFILESIZE=2000
HISTSIZE 是命令歷史列表里記錄的命令的最大數(shù)量,而 HISTFILESIZE 是命令歷史文件的最大行數(shù)。
顯然,默認(rèn)情況下,Bash 會(huì)記錄你的 1000 條歷史命令。這已經(jīng)很多了。有時(shí)候linux命令,這也被認(rèn)為是一個(gè)安全漏洞。如果你在意的話,你可以隨意減小這個(gè)數(shù)值,在安全性和實(shí)用性之間平衡。如果你不希望 Bash 記錄你的命令歷史,可以將 HISTSIZE 設(shè)置為 0。
如果你修改了 ~/.bashrc 文件,記得要登出后再重新登錄(否則改動(dòng)不會(huì)生效)。
這是第一個(gè)我要介紹的工具,可以幫助你記憶 Linux 命令。apropos (意即“關(guān)于”)能夠搜索 Linux 幫助文檔來幫你找到你想要的命令。比如說,你不記得你用的發(fā)行版用的什么防火墻工具了。你可以輸入 apropos “firewall”,然后這個(gè)工具會(huì)返回相關(guān)的命令(圖 2)。
圖 2: 你用的什么防火墻?
庫(kù)文件:.lib或者.a 命令格式: armar options archive [ file_list ] 選項(xiàng): -r 在 插入文件, 替換掉已經(jīng)存在的同名成員. -d 在 中刪除成員. -x 在 中提取同名的成員. -m 在 中移動(dòng)文件. -p 打印文件到標(biāo)準(zhǔn)輸出設(shè)備. -a pos 插入/刪除 后面的文件. -b pos 插入/刪除 前面的文件. -u 只更新舊的文件, 與 -r 一起使用. -n 不要向object文件中添加符號(hào)表. -s 強(qiáng)制重新生成文檔符號(hào)表. -t 打印文檔的內(nèi)容表. --zs 顯示符號(hào)表. --zt 匯總文檔內(nèi)容 (大小和輸入). -c 當(dāng)一個(gè)新文檔被創(chuàng)建的時(shí)候不顯示警告. -c 提取的時(shí)候不要覆蓋一個(gè)已經(jīng)存在的文件. -t 截取系統(tǒng)最大長(zhǎng)度文件名. -v 提供詳細(xì)輸出. --create 強(qiáng)制創(chuàng)建一個(gè)新的文檔. --via file 從 via 文件中獲取額外參數(shù). --sizes 列出所有成員大小與庫(kù)的總大小. --entries 列出包括入口點(diǎn)的部分. --vsn 打印最新的armar版本. --help 打印幫助信息.。, 就不說最好了). 沒用過的也建議試試看, 當(dāng)然 vim 對(duì)編寫文本文件很方便好用, 比如編寫程序, html文檔等等, 卻不能用來編寫 word 文檔.關(guān)于 vim 的安裝, 基本使用方法等網(wǎng)絡(luò)上能搜出許多, 就不在這里羅嗦了, 要是對(duì) vim 有興趣, 那就看看這里(中文文檔): http://vcd.gro.clinux.org/本文就說些其中比較有用, 比較常用的命令, 若能熟練運(yùn)用這些命令, 那么會(huì)發(fā)現(xiàn)編輯文件很舒服.說明:以下的例子中 xxx 表示在命令模式下輸入 xxx 并回車以下的例子中 :xxx 表示在擴(kuò)展模式下輸入 xxx 并回車小括號(hào)中的命令表示相關(guān)命令.在編輯模式或可視模式下輸入的命令會(huì)另外注明.1. 查找 /xxx(。保存之后在終端中輸入javac hello.java(注意,是在/home/and/目錄下面新建的hello.java文件,否則,運(yùn)行此命令需要先到相應(yīng)的目錄下面去,可以先在終端中試試ls命令,可以列出當(dāng)前目錄的所有文件)。