Unix操作系統(tǒng)中良好習(xí)慣
當(dāng)我們經(jīng)常使用Unix操作系統(tǒng)時(shí),大家往往會(huì)陷入某種固定的使用模式。有時(shí),您沒有養(yǎng)成以盡可能最好的方式做事的習(xí)慣。有時(shí),您的不良習(xí)慣甚至?xí)?dǎo)致出現(xiàn)混亂。糾正此類缺點(diǎn)的最佳方法之一,就是有意識地采用抵制這些壞習(xí)慣的好習(xí)慣。我們在文章中提出了幾個(gè)值得采用的 Unix操作系統(tǒng) 命令行習(xí)慣——幫助您克服許多常見使用怪癖,并在該過程中提高命令行工作效率的好習(xí)慣。
在單個(gè)命令中創(chuàng)建目錄樹
1 演示了最常見的 Unix操作系統(tǒng) 壞習(xí)慣之一:一次定義一個(gè)目錄樹。
壞習(xí)慣 1 的示例:單獨(dú)定義每個(gè)目錄樹 ~ $ mkdir tmp
~ $ cd tmp
~/tmp $ mkdir a
~/tmp $ cd a
~/tmp/a $ mkdir b
~/tmp/a $ cd b
~/tmp/a/b/ $ mkdir c
~/tmp/a/b/ $ cd c
~/tmp/a/b/c $
使用 mkdir 的 -p 選項(xiàng)并在單個(gè)命令中創(chuàng)建所有父目錄及其子目錄要容易得多。但是即使對于知道此選項(xiàng)的管理員,他們在命令行上創(chuàng)建子目錄時(shí)也仍然束縛于逐步創(chuàng)建每級子目錄?;〞r(shí)間有意識地養(yǎng)成這個(gè)好習(xí)慣是值得的。
好習(xí)慣 1 的示例:使用一個(gè)命令來定義目錄樹
~ $ mkdir -p tmp/a/b/c
您可以使用此選項(xiàng)來創(chuàng)建整個(gè)復(fù)雜的目錄樹(在腳本中使用是非常理想的),而不只是創(chuàng)建簡單的層次結(jié)構(gòu)。例如:
好習(xí)慣 1 的另一個(gè)示例:使用一個(gè)命令來定義復(fù)雜的目錄樹
~ $ mkdir -p project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
過去,單獨(dú)定義目錄的唯一借口是您的 mkdir 實(shí)現(xiàn)不支持此選項(xiàng),但是在大多數(shù)系統(tǒng)上不再是這樣了。IBM、AIX®、mkdir、GNU mkdir 和其他遵守單一 Unix操作系統(tǒng)規(guī)范 (Single Unix Specification) 的系統(tǒng)現(xiàn)在都具有此選項(xiàng)。
對于仍然缺乏該功能的少數(shù)系統(tǒng),您可以使用 mkdirhier 腳本,此腳本是執(zhí)行相同功能的 mkdir 的包裝: ~ $ mkdirhier project/{lib/ext,bin,src,doc/{html,info,pdf},demo/stat/a}
Unix操作系統(tǒng)更改路徑;不要移動(dòng)存檔
另一個(gè)不良的使用模式是將 .tar 存檔文件移動(dòng)到某個(gè)目錄,因?yàn)樵撃夸浨『檬悄M谄渲刑崛?.tar 文件的目錄。其實(shí)您根本不需要這樣做。您可以隨心所欲地將任何 .tar 存檔文件解壓縮到任何目錄——這就是 -C 選項(xiàng)的用途。在解壓縮某個(gè)存檔文件時(shí),使用 -C 選項(xiàng)來指定要在其中解壓縮該文件的目錄:
好習(xí)慣 2 的示例:使用選項(xiàng) -C 來解壓縮 .tar 存檔文件 ~ $ tar xvf -C tmp/a/b/c newarc.tar.gz
相對于將存檔文件移動(dòng)到您希望在其中解壓縮它的位置,在Unix操作系統(tǒng)中切換到該目錄,然后才解壓縮它,養(yǎng)成使用 -C 的習(xí)慣則更加可取——當(dāng)存檔文件位于其他某個(gè)位置時(shí)尤其如此。
這些都是Unix操作系統(tǒng)中一些人總結(jié)的好的使用習(xí)慣。希望大家也能夠養(yǎng)成好的習(xí)慣。
【編輯推薦】