事實是上,您可以不懂任何 shell ,就能使用 Linux 。您啟動系統后可以直接進入 X Window ,最后在 X Window 下關機。 我堅信,用 Linux 而不懂 shell ,就象開車只會用頭檔(first gear)一樣。當然,最初看起來,直接而簡單,在大多數情況下都管用。但速度慢,而且無法真正體驗駕駛的樂趣。
對,命令行很有趣。就象用一大堆收集到的積木,竟可以完成許多意想不到的創舉,一些極其復雜的工作,只需幾行命令就可以解決。這是因為,在 Unix 中,shell 可不是簡單的命令解釋器(典型的有 Windows 中的 DOS ),而是一個全功能的編程環境。 這并不意味著 shell 非常容易學通,您知道,好事多磨,這還是要花點工夫的。;-) 但請相信我,這絕對值得。您在很短時間內,就能被一大幫門外漢吹捧為 Unix wizard(奇才) 。*grin*
l CTRL k>:刪除從光標到行尾的部分 l CTRL u>:刪除從光標到行首的部分 l ALT d>:刪除從光標到當前單詞結尾的部分 l CTRL w>:刪除從光標到當前單詞開頭的部分 l CTRL a>:將光標移到行首 l CTRL e>:將光標移到行尾 l ALT a>:將光標移到當前單詞頭部 l ALT e>:將光標移到當前單詞尾部 l CTRL y>:插入最近刪除的單詞 l !$>:重復前一個命令最后的參數。
例如:您用命令 mkdir peter/pan/documents/tinkerbell 新建了一個目錄,現在您向用命令'cd'進入該目錄,您可以用 cd !$,shell 將把前一個命令'mkdir'的參數添加到現在的'cd'后面。
這將被讀為:除了以'6.bak'結尾的文件,刪除其他所有以'.bak'結尾的文件。您必須將取反號(negation sign)與取反字符(這里是 6)放到括號中,不然的話,shell 會將驚嘆號(exclamation mark)解釋成歷史記錄替換的開始(the beginning of a history substitution)。取反號在本篇介紹的所有匹配模式中都有效。
#!/bin/bash # # This file echoes a bunch of color codes to the # terminal to demonstrate what's available. Each # line is the color code of one forground color, # out of 17 (default + 16 escapes), followed by a # test use of that color on all nine background # colors (default + 8 escapes). # T='gYw' # The test text echo -e "\n 40m 41m 42m 43m\ 44m 45m 46m 47m"; for FGs in ' m' ' 1m' ' 30m' '1;30m' ' 31m' '1;31m' ' 32m' \ '1;32m' ' 33m' '1;33m' ' 34m' '1;34m' ' 35m' '1;35m' \ ' 36m' '1;36m' ' 37m' '1;37m'; do FG=${FGs// /} echo -en " $FGs \033[$FG $T " for BG in 40m 41m 42m 43m 44m 45m 46m 47m; do echo -en "$EINS \033[$FG\033[$BG $T \033[0m"; done echo; done echo
您可以用'alias'在命令行快速地創建別名,或將命令放到各自的'~/.bashrc',或放到系統級的'/etc/profile.d/alias.sh'中(而在 Mandrake Linux 8 以前的版本里,用的是'/etc/bashrc')。要刪除一個別名,只要輸入:unalias alias 。運行 alias 將列出您系統中所有定義的別名。
如果看一下'~/.bashrc'和'/etc/profile.d/alias.sh',您會發現系統已經定義了一些別名。您可以為同一個命令定義多個別名。當然,您得先確認別名與其他程序名不同,比如象 alias rm='ls -l' 這樣的就不能工作。您可以在命令行輸入這些快捷方式,測試一下。如果 shell 找不到相同名稱的命令,那您就可以將其用作別名了。
以下別名可能有用(不要忘了引號!) :
l alias rpmq='rpm -qa | grep' :現在 rpmq string 就將列出所有名稱中含有 string 的已安裝 RPM 包, l alias ls='ls -ho --color | more' :ls 將以彩色分頁方式列出文件,文件大小以 KB為單位, l alias use='du --max-depth=1 | sort -n | more' :use 將子目錄按大小排好,并以分頁方式列出,
function apros() { apropos $1 | egrep -v '(3|\(n\)'; }
定義了一個新命令,稱為'apros'。apros name 將先執行'apropos name'(即在 man page 中搜索命令),然后將得到的輸出送到管道(|),接著用'egrep'過濾,排除第'3'和第'n'章節的 man page ,這個命令可能沒什么大用處,但可以整理'apropos'命令的輸出。