亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

對(duì)話 UNIX:第 2 部分: 做得多不如做得巧

瀏覽:50日期:2024-06-17 16:03:01

每種技術(shù)性勞動(dòng)都有其自身的秘密,這些小竅門(mén)、技巧和工具甚至可以處理最復(fù)雜的任務(wù)。例如,我的鄰居是一個(gè)熟練的木匠。他僅憑眼睛就可以非常精確地測(cè)量和改變角度、無(wú)縫地進(jìn)行斜接,并且他所完成的作品為他在當(dāng)?shù)貓?bào)紙上贏得了贊譽(yù)。

但更神奇的是(至少對(duì)于我這樣一個(gè)肯定會(huì)出錯(cuò)的外行來(lái)說(shuō)),他可以相當(dāng)輕松地完成工作。他干這一行大約有 20 多年了,并且掌握了所有的快捷方法。通過(guò)這些快捷方法,可以在這里節(jié)省一點(diǎn)點(diǎn)時(shí)間,在那里節(jié)省一點(diǎn)點(diǎn)勞動(dòng),然而對(duì)于像進(jìn)行切割、錘釘子和組裝框架這樣的重復(fù)性任務(wù),這樣的節(jié)省最終加起來(lái)真的不少。

程序員、系統(tǒng)管理員和其他的 Unix® 計(jì)算機(jī)專(zhuān)業(yè)人員都有他們自己專(zhuān)門(mén)的工具:

CPU

RAM

操作系統(tǒng)

應(yīng)用程序

Shell

就像一個(gè)經(jīng)驗(yàn)豐富的木匠,了解一些竅門(mén)并應(yīng)用相應(yīng)的工具可以節(jié)省大量的時(shí)間和精力。第 1 期的對(duì)話 UNIX 介紹了 UNIX 命令行的強(qiáng)大功能。本文向您介紹一些有用的 Shell 快捷方法,它們有助于您更好地掌握 Shell 提示符。

讓您的手指稍事休息,不要讓它們過(guò)于疲勞

正如第 1 部分所介紹的,UNIX 命令行的強(qiáng)大功能是無(wú)與倫比的。只需按一些鍵并使用一些句法粘結(jié)劑,包括管道 (|)、tee 和重定向,您就可以在 Shell 提示符中即興組裝自己的數(shù)據(jù)轉(zhuǎn)換器。

例如,下面的命令將在您的 home 目錄中查找所有包含單詞 Monthly Report 的文本文件:

$ find /home/joe -type f -name '*.txt' -print | xargs grep -l "Monthly Report"

該命令將搜索整個(gè) home 目錄 (find /home/joe) 以查找所有的常規(guī)文件 (-type f) 中具有后綴 .txt 的文件,然后運(yùn)行 grep 命令來(lái)搜索字符串 Monthly Report。如果找到匹配項(xiàng),-l 選項(xiàng)將打印出相應(yīng)的文件名。因此,該命令的輸出是匹配文件的列表。

盡管上面的命令很有用,但是要記住這個(gè)命令并重新輸入,這樣做很費(fèi)勁,尤其是在您需要經(jīng)常使用這個(gè)命令的情況下。而且,當(dāng)命令行作為使用電子郵件、文件、工具(如編輯器、編譯器、監(jiān)視器)和遠(yuǎn)程系統(tǒng)的主要接口時(shí),您在命令行中所節(jié)省的時(shí)間和精力可以更好地用于手頭上的其他任務(wù)。畢竟,這些短的時(shí)間加起來(lái)真的不少。

為了處理這些重復(fù)性的任務(wù),Unix Shell 提供了各種有用的快捷方法,具體包括:

符號(hào)

通配符

命令歷史

環(huán)境變量

別名

啟動(dòng)文件

例如,您可以使用符號(hào) ~(波浪符號(hào))引用您的 home 目錄。您還可以使用 $HOME 環(huán)境變量引用您的 home 目錄,如清單 1 所示。

清單 1. UNIX Shell 中的快捷方法

$ whoamistrike$ echo ~/Users/strike$ echo $HOME/Users/strike$ !!echo $HOME/Users/strike

最后一個(gè)命令 !!(兩個(gè)感嘆號(hào)),可能看起來(lái)有些奇怪,但它是一種命令歷史符號(hào),可以一字不差地重復(fù)前面的命令。(許多 Shell 還允許您使用向上箭頭鍵或按 Control+P 來(lái)瀏覽以前的命令列表。)

讓我們更仔細(xì)地研究 Shell 中的各種快捷方法。本文主要介紹 Z Shell(zsh,請(qǐng)參見(jiàn)參考資料部分),它通常安裝在 /bin/zsh 目錄中。(如果您的系統(tǒng)中沒(méi)有 Z Shell,可以請(qǐng)求系統(tǒng)管理員安裝它。)Z Shell 具有一些特別的特性,另外,這里所介紹的示例適用于所有主流的 UNIX Shell。

Shell 符號(hào)

針對(duì)許多頻繁使用的命令行參數(shù),Shell 提供了相應(yīng)的符號(hào) 或記號(hào)作為簡(jiǎn)寫(xiě)。您只需輸入這些符號(hào)來(lái)代替相應(yīng)的參數(shù)。

如上所述,~ 表示您的 home 目錄。與之類(lèi)似的簡(jiǎn)寫(xiě)形式 ~username 表示 username 的 home 目錄。例如,~joe 表示 joe 的 home 目錄,所以,要將文件從 joe 的 doc 目錄復(fù)制到您的 info 目錄,您可以輸入下面的命令:

$ cp ~joe/doc/report.txt ~/info

假設(shè) joe 的 home 目錄位于 /guests,而您的 home 目錄為 /staff/bobr,~joe 將由 /guests/joe 替換,而 ~ 則變成 /staff/bobr,最后產(chǎn)生命令 cp /guests/joe/doc/report.txt /staff/bobr/info。(請(qǐng)參見(jiàn)側(cè)欄“檢驗(yàn)?zāi)墓ぷ饕粤私馊绾晤A(yù)覽命令行。)

另一個(gè)有用的符號(hào)是 ..(兩個(gè)點(diǎn)號(hào)),這是當(dāng)前目錄的父目錄的簡(jiǎn)寫(xiě)。使用 .. 和 .(當(dāng)前工作目錄的簡(jiǎn)寫(xiě)符號(hào)),您可以引用文件系統(tǒng)中相對(duì)于當(dāng)前工作目錄的文件和目錄。

例如,如果您的當(dāng)前工作目錄為 ~/jane/projects/lambda,那么簡(jiǎn)寫(xiě) ../.. 表示向上兩級(jí)目錄的目錄,即 ~/jane。要表示包含 ~/jane 的目錄,您可以使用 ../../../(“向上三級(jí)目錄)或路徑 ~jane/../。后面的這個(gè)路徑表示從 ~jane 開(kāi)始,然后轉(zhuǎn)到上一級(jí)目錄。

要將文件復(fù)制到您的當(dāng)前目錄,不需要指定目標(biāo)目錄,可以直接使用 .(“點(diǎn))來(lái)表示:

$ cp -pr /path/to/lots/of/stuff .

前面的命令將 /path/to/lots/of/stuff 目錄遞歸地復(fù)制到您的當(dāng)前目錄,并保持其原始的時(shí)間和日期戳。引用 .. 和 . 的路徑名稱(chēng)為相對(duì)路徑名。以 /(正斜杠)或 ~(波浪符號(hào))開(kāi)頭的路徑名稱(chēng)為絕對(duì)路徑名,因?yàn)槟菑奈募到y(tǒng)的頂端、或從一個(gè)目錄層次結(jié)構(gòu)的頂端開(kāi)始來(lái)引用相應(yīng)的文件。

通配符和模式

使用符號(hào),可以節(jié)省輸入的時(shí)間,并且可以快速和精確地引用特定的目錄。通配符 是另一種簡(jiǎn)寫(xiě)形式,用來(lái)引用目錄中的內(nèi)容。

例如,假設(shè)您的某個(gè)目錄中包含了 100 個(gè)文件。有些是以 .c 為后綴的 C 源代碼文件,其他一些是以 .o 為后綴的目標(biāo)文件,還有一些是文本文件 (.txt)、腳本 (.sh) 和可執(zhí)行文件(具有執(zhí)行權(quán)限的文件)。要僅列出其中的 C 文件,只需輸入:

$ ls *.c

通配符 *(通常稱(chēng)為 star 而不是 asterisk)表示匹配任何字符序列。.c 文件擴(kuò)展名是一種文本模式,它僅匹配點(diǎn)號(hào)加小寫(xiě)字母 c 的情況。所以,*.c 表示任何字符序列加上點(diǎn)號(hào)和小寫(xiě)字母 c。在給定了 *.c 之后,Shell 將查看當(dāng)前目錄(除非您提供一個(gè)起始絕對(duì)或相對(duì)路徑名),找出所有匹配這個(gè)模式的文件名,將 *.c 擴(kuò)展為文件名列表,然后將這個(gè)列表作為參數(shù)傳遞給 ls 命令。

清單 2 基于 wget 的源代碼文件演示了 *.c 的使用,wget 是一種命令行的下載實(shí)用工具。

單 2. 使用通配符在目錄中查找 C 源代碼文件

$ ls *.calloca.cansi2knr.ccmpt.cconnect.cconvert.c...

將通配符展開(kāi)為匹配文件名列表的過(guò)程稱(chēng)為通配符匹配 (globbing),并且 Unix Shell 具有各種各樣的通配符匹配操作符(所謂的 glob),以便幫助您描述所要查找的內(nèi)容:

通配符匹配操作符 *(星號(hào))匹配任何字符或字符序列,包括空序列。

通配符匹配操作符 ?(問(wèn)號(hào))匹配任何單個(gè)的字符。

通配符匹配操作符 [ ](方括號(hào))匹配任何括起來(lái)的字符。在方括號(hào)中,通過(guò)使用 -(連字符),比如 [a-z] 或者所有的小寫(xiě)字母,您可以引用某個(gè)范圍的字符。

(Z Shell 具有許多獨(dú)特的通配符匹配操作符。有關(guān) Z Shell 通配符匹配操作符的更多信息,請(qǐng)參見(jiàn)側(cè)欄。)

您還可以根據(jù)需要重復(fù)使用通配符匹配操作符。清單 3 提供了一些其他示例。

在清單 3 中,命令 1 顯示了該目錄中所有的條目,包括長(zhǎng)列表中那些以 .(點(diǎn))開(kāi)頭的條目。(-a 選項(xiàng)顯示了所謂的點(diǎn)文件;-1 選項(xiàng)表示在一列中列出所有的內(nèi)容;而 -F 選項(xiàng)分別使用 /(正斜杠)和 *(星號(hào))突出表示目錄和可執(zhí)行文件。)

命令 2 查找名稱(chēng)以點(diǎn)號(hào)開(kāi)頭的條目(即 .*)。第 3 個(gè)命令僅查找那些單字母后綴的項(xiàng)目。

第 4 個(gè)命令僅查找那些 4 個(gè)字母后跟點(diǎn)號(hào)和單個(gè)字符的項(xiàng)目。最后,命令 5 查找這樣的項(xiàng)目:以小寫(xiě)字母 a、b 或 c 開(kāi)頭,后面至少跟一個(gè)字母,然后可以是任何內(nèi)容,接著是點(diǎn)號(hào)和任何后綴。正如所看到的,您可以根據(jù)實(shí)際情況重復(fù)使用這些通配符匹配操作符。

清單 3. 通配符示例

1 $ ls -1 -a -F./libsChangeLogChangeLog-branches/MakefileMakefile.inalloca.cansi2knr.ccmpt.ccmpt.oconfig.hconfig.h.inconnect.cconnect.hconnect.oconvert.cconvert.hconvert.o...wget*2 $ ls -a -F .*./lib3 $ ls -1 *.?alloca.cansi2knr.ccmpt.ccmpt.oconfig.hconnect.cconnect.hconnect.oconvert.cconvert.hconvert.o...4 $ ls -1 ????.?cmpt.ccmpt.o5 $ ls [a-c]?*.*alloca.cansi2knr.ccmpt.ccmpt.oconfig.hconfig.h.inconnect.cconnect.hconnect.oconvert.cconvert.hconvert.ocookIEs.ccookies.hcookies.o

那么,ls *.z 將會(huì)產(chǎn)生什么樣的結(jié)果呢(假設(shè)不存在這樣的文件)?它將產(chǎn)生一條有用的錯(cuò)誤消息:

$ ls *.zzsh: no matches found: *.z

關(guān)于(命令)歷史

到目前為止,您已經(jīng)了解了如何指定路徑和選擇相應(yīng)的文件。您可以在命令行中描述需要完成的任務(wù)。然而,即使所有的命令行都很短并且很簡(jiǎn)單,但您仍然有可能對(duì)反反復(fù)復(fù)地輸入這些相同的內(nèi)容而感到厭煩。尤其是,您可能厭倦了輸入冗長(zhǎng)的、復(fù)雜的命令行,其中可能包含大量的選項(xiàng)、或者參數(shù)的順序有嚴(yán)格的要求。幸運(yùn)的是,大多數(shù) Shell 都維護(hù)了以前命令的歷史。要再次運(yùn)行一個(gè)命令,只需從這個(gè)歷史列表中找到相應(yīng)的條目,然后再次運(yùn)行它。與 Shell 中其他的部分一樣,通過(guò)快捷方法可以快速和輕松地進(jìn)行引用。

要在 Z Shell 中啟用命令歷史,可以輸入:

$ HISTSIZE=500$ SAVEHIST=500

這里的命令指定了 Shell 和持久化歷史文件應(yīng)該保留最后的 500 條命令。(在缺省情況下,Z Shell 僅保存最后的 30 條命令。)有關(guān)如何捕獲和保存命令歷史的信息,請(qǐng)查看您的 Shell 文檔。

在 Shell 中進(jìn)行了一段時(shí)間的工作之后,您只需輸入 history 就可以查看命令歷史:

$ history...781 /bin/ls -d */782 /bin/ls -F *(/)783 /bin/ls -d -F *(/)784 /bin/ls -d -F */785 /bin/ls -d */

您所運(yùn)行的每個(gè)命令都會(huì)分配到一個(gè)順序的數(shù)值標(biāo)識(shí)符。您可以使用這個(gè)標(biāo)識(shí)符,如 782,來(lái)引用完整的命令和命令中的某些部分。要再次運(yùn)行一個(gè)命令,可以輸入 !(感嘆號(hào))加上命令對(duì)應(yīng)的數(shù)值:

$ !785ChangeLog-branches/ doc/ po/ src/ util/ Windows/

如果您希望從一個(gè)歷史命令中獲得特定的參數(shù),可以使用 !(感嘆號(hào))來(lái)引用這個(gè)命令,并提供 :N,其中 0 表示命令名,1 表示第 1 個(gè)參數(shù),依此類(lèi)推。例如,要提取歷史日志中命令 782 的第二個(gè)參數(shù),可以輸入清單 4 中所示的代碼。

清單 4. 提取命令 782 的第二個(gè)參數(shù)

$ echo !782:2 echo *(/)ChangeLog-branches doc po src util windows$ ls AUTHORS COPYING INSTALL MacHINESAUTHORS  COPYING  INSTALL  MACHINES$ echo !!:3echo INSTALL$ history -2788 ls AUTHORS COPYING INSTALL MACHINES789 echo INSTALL$ echo !788^echo AUTHORSAUTHORS$ echo !788$echo MACHINESMACHINES

命令 history -2 打印出前兩個(gè)命令。作為快捷方法,您可以使用 ^(脫字符號(hào))引用命令的第一個(gè)參數(shù)(而不是命令名本身),并且您可以使用 $(美元符號(hào))引用歷史命令的最后一個(gè)參數(shù)。您還可以使用范圍符號(hào)來(lái)引用某個(gè)范圍的參數(shù),如清單 5 所示。

清單 5. 范圍符號(hào)

$ echo AUTHORS COPYING INSTALL MacHINESAUTHORS COPYING INSTALL MACHINES$ echo !!:1-2echo AUTHORS COPYINGAUTHORS COPYING

還有其他的更直接的方法可以用來(lái)再次調(diào)用歷史命令。其中一種方法是搜索歷史命令:

$ ls I*$ ls M*$ echo !?Mls INSTALL

結(jié)構(gòu) !?M 尋找最近的包含大寫(xiě)字母 M 的歷史命令行。

環(huán)境變量

流暢地表達(dá)命令行 任務(wù),這是一種基本的 Unix 技能。但是與 UNIX 進(jìn)行對(duì)話不僅僅只是使用 Shell 提示符,您還必須與各種各樣的 UNIX 實(shí)用工具進(jìn)行通信。在 UNIX 中,環(huán)境變量保存了 Shell 中的相關(guān)設(shè)置,并允許您將首選項(xiàng)傳播到從命令行啟動(dòng)的所有實(shí)用工具中。

有些環(huán)境變量稱(chēng)為 Shell 變量,Shell 僅使用這些變量控制其自身的行為。例如,只有 Z Shell 使用 $HISTSIZE 和 $SAVEHIST 管理命令歷史,如上所述??梢詫?Shell 變量看作相應(yīng)的設(shè)置。

需要對(duì)其他的環(huán)境變量進(jìn)行導(dǎo)出、或使得它們?nèi)挚捎?,并將它們?fù)制到從命令行中啟動(dòng)的每個(gè)命令的進(jìn)程空間(即環(huán)境)。例如,$HOME 是一個(gè)特殊的環(huán)境變量,它保存了您的 home 目錄的位置。UNIX 登錄序列將設(shè)置 $HOME(以及其他的環(huán)境變量),然后啟動(dòng) Shell,而 Shell 反過(guò)來(lái)使用 $HOME 查找所有的 Shell 啟動(dòng)文件。您所啟動(dòng)的其他應(yīng)用程序,如 SSH 和 FTP,引用 $HOME 查找 .netrc 文件(用于存儲(chǔ)機(jī)密的、遠(yuǎn)程訪問(wèn)的密碼)。有些環(huán)境變量,如 $HOME、$PATH 和 $SHELL,會(huì)被所有應(yīng)用程序使用。其他的環(huán)境變量可能專(zhuān)門(mén)針對(duì)某個(gè)應(yīng)用程序。

要查看當(dāng)前所有的環(huán)境變量,可以輸入 printenv,如清單 6 所示。(根據(jù)系統(tǒng)管理員對(duì)系統(tǒng)所進(jìn)行的配置,您系統(tǒng)中的環(huán)境變量可能會(huì)比本文中所介紹的更多或更少。)

清單 6. 查看環(huán)境變量

$ printenvPATH=/Users/strike/bin:/Applications/xampp/xamppfiles/bin:/Users/strike/bin:/usr/bin:/bin:/usr/sbin:/sbinHOME=/Users/strikeSHELL=/bin/zshUSER=strikeTERM=xterm-colorLOGNAME=strikeSHLVL=1PWD=/Local/src/versions/wget/wget-1.9OLDPWD=/Local/src/versions/wget/wget-1.9/srcPERL5LIB=/Applications/xampp/xamppfiles/lib/perl5/site_perl/5.8.7:/Projects/IGSP/srcCLICOLOR=trueMANPATH=/Local/root/share/man:/usr/share/man:/opt/local/share/manINFOPATH=/opt/local/share/infoLESS=-n

您可能認(rèn)識(shí)其中大多數(shù)的變量,而其他一些可能是新出現(xiàn)的。Shell 級(jí)別($SHLVL)顯示您所處的 Shell 的深度。1 表示登錄 Shell,2 表示您從登錄 Shell 中啟動(dòng)了另一個(gè) Shell,依此類(lèi)推。您可以使用 $SHLVL 的值來(lái)更改后續(xù) Shell(嵌套 Shell)的提示符。$TERM 反映了您的終端(可能是終端模擬程序)設(shè)置,對(duì)于確保正確地呈現(xiàn)文本、顏色以及對(duì)按鍵進(jìn)行正確的解釋?zhuān)@是非常重要的信息。$PWD 是您的當(dāng)前工作目錄,而 $OLDPWD 是上一次的工作目錄。您可以使用這兩個(gè)變量實(shí)現(xiàn)在兩個(gè)目錄之間的快速切換,如清單 7 所示。

清單 7. 在目錄之間進(jìn)行切換

$ echo $PWD/Users/strike$ echo $OLDPWD/Local/src/versions/wget/wget-1.9$ cd $OLDPWD$ echo $PWD/Local/src/versions/wget/wget-1.9$ echo $OLDPWD/Users/strike

上面列表中剩下的環(huán)境變量都是應(yīng)用程序特定的。每個(gè)環(huán)境變量保存了相應(yīng)的首選項(xiàng)設(shè)置,當(dāng)您啟動(dòng)了與之關(guān)聯(lián)的應(yīng)用程序后,它可以用于控制該應(yīng)用程序的工作方式。$PERL5LIB 是 Perl 查找自定義庫(kù)的搜索路徑。ls 命令使用 $CLICOLOR 通過(guò)不同的顏色呈現(xiàn)不同類(lèi)型的文件(目錄為藍(lán)色、可執(zhí)行文件為綠色,等等)。程序的 man 頁(yè)面中通常包含對(duì)自定義應(yīng)用程序環(huán)境變量的說(shuō)明。

設(shè)置環(huán)境變量與設(shè)置 Shell 變量的方法相同。然而,您必須導(dǎo)出該變量,以使得它全局可用:

$ MYVARIABLE=$HOME/projectX$ export TMPDIR=/tmp/projectX

前一個(gè)命令設(shè)置了名為 $MYVARIABLE 的 Shell 變量。(開(kāi)頭的美元符號(hào)是 Shell 提示符。您在設(shè)置變量時(shí),不用提供這個(gè) $ 符號(hào)。然而,當(dāng)您使用這個(gè)變量時(shí),必須使用美元符號(hào),比如 $MYVARIABLE。)$MYVARIABLE 僅對(duì) Shell 是可見(jiàn)的,因?yàn)闆](méi)有將其導(dǎo)出。要查看所有 Shell 變量的列表,可以輸入 set。set 的輸出包括環(huán)境變量,因?yàn)樗鼈儗?duì) Shell 來(lái)說(shuō)也是可用的。

在后面的一個(gè)命令中,設(shè)置并導(dǎo)出了 $TMPDIR,因此它對(duì)于從 Shell 中啟動(dòng)的所有應(yīng)用程序都是可用的。GNU Compiler Collection (GCC) 編譯器是一個(gè)使用 $TMPDIR 的應(yīng)用程序。$TMPDIR 中所存儲(chǔ)的值表示 GCC 用來(lái)存放生成的臨時(shí)文件的位置。

如果您要?jiǎng)h除一個(gè)環(huán)境變量,只需輸入 unset 加上變量名即可,如清單 8 所示。

清單 8. 刪除環(huán)境變量

$ setHOME=/Users/strikeMYVARIABLE=/Users/strike/projectXTMPDIR=/tmp/projectX...$ unset MYVARIABLE TMPDIR$ setHOME=/Users/strike....

別名和啟動(dòng)文件

前面的部分主要關(guān)注的是如何減少在命令行中的輸入。當(dāng)然,還有許多內(nèi)容需要學(xué)習(xí),因?yàn)?Shell 環(huán)境非常豐富。然而請(qǐng)記住,功能越強(qiáng)大,生產(chǎn)能力就越大(要對(duì)蜘蛛俠說(shuō)聲抱歉,因?yàn)樾薷牧嗽挘?/p>

為了保留以前輸入的內(nèi)容和保存以前的所有設(shè)置,Unix Shell 分別提供了別名和啟動(dòng)文件。別名 是您所創(chuàng)建的快捷方法。每次 Shell 啟動(dòng)時(shí)都會(huì)讀取啟動(dòng)文件,這是保存(和共享)所有 Shell 設(shè)置的理想的地方,如 Shell 變量(選項(xiàng))、環(huán)境變量和別名。

別名是一個(gè)簡(jiǎn)短的序列,您可以使用它來(lái)代替一個(gè)較長(zhǎng)的命令。您可以把別名看作是一個(gè)命令行的縮寫(xiě)。無(wú)需輸入:

$ find /home/joe -type f -name '*.txt' -print | xargs grep -l "Monthly Report"

在命令提示符處,您可以輸入已經(jīng)創(chuàng)建的別名:

$ findreports

Shell 減少了工作的復(fù)雜程度,它會(huì)將 findreports 替換成其擴(kuò)展形式。要?jiǎng)?chuàng)建 findreports 別名,可以輸入:

alias findreports='find $HOME -type f -name "*.txt" -print | xargs grep -l "Monthly Report"'

必須使用單引號(hào)確定每個(gè)別名的界限。如果您需要在別名中使用引號(hào),那么可以使用雙引號(hào)。Z Shell 別名可以包含許多 Shell 基本單位,包括變量、管道、重定向、其他別名和其他 Shell 操作數(shù),如清單 9 所示。

清單 9. Z Shell 基本單位

$ alias ll='/bin/ls -l'$ ll -d 2002*drwxrwxr-x 2 www-data  www-data4096 Jan 16 2002 2002-02drwxrwxr-x 2 www-data  www-data4096 Jan 22 2002 2002-03drwxrwxr-x 2 www-data  www-data4096 Apr 15 2002 2002-04drwxrwxr-x 2 www-data  www-data4096 Apr 19 2002 2002-05...$ alias lt='ll -t'$ lt -d 2002*drwxrwxr-x 2 www-data www-data 4096 Apr 19 2002 2002-05drwxrwxr-x 2 www-data www-data 4096 Apr 15 2002 2002-04drwxrwxr-x 2 www-data www-data 4096 Jan 22 2002 2002-03drwxrwxr-x 2 www-data www-data 4096 Jan 16 2002 2002-02$ alias m='pinky | grep mstreicher'$ mmstreicher Martin Streicher ...$ alias snap='pinky >> ~/.pinky'$ snap$ snap$ cat ~/.pinkyLoginNameTTY Idle  When Wheremstreicher Martin Streicherpts/0Jun 18 16:40 cpe-071-065-224-025.nc.res.rr.comLoginNameTTY Idle  When Wheremstreicher Martin Streicherpts/0Jun 18 16:40 cpe-071-065-224-025.nc.res.rr.com

標(biāo)簽: Unix系統(tǒng)
主站蜘蛛池模板: 国内视频拍拍视频在线观看 | 国产三级日产三级 | 91精品国产爱久久久久 | 国产图片一区 | 久久日本精品一区二区三区 | 在线a级 | 成年免费大片黄在看 | 国产欧美成人xxx视频 | 金发美女大战黑人啪啪 | 国产尤物二区三区在线观看 | 国产精品自线在线播放 | 美国黄色片免费看 | 国产丝袜诱惑 | 日本黄色小视频在线观看 | 精品国产综合成人亚洲区 | 亚洲国产精品自产在线播放 | 寡妇影院首页亚洲图片 | 国产农村一一级特黄毛片 | 中国大陆高清aⅴ毛片 | 2020久久精品永久免费 | 亚洲免费网站 | 欧美日韩精品一区二区三区不卡 | 亚洲精品久久久久网站 | 欧美成人性色大片在线观看 | 久久www香蕉免费人成 | 欧美日韩亚洲精品一区二区三区 | 亚洲第一页国产 | 久草网视频在线 | 国产精品66福利在线观看 | 亚洲精品久久精品h成人 | 国产在线观看xxxx免费 | 日本特级黄毛片毛片视频 | 成人免费真人毛片视频 | 亚洲高清不卡视频 | 黄色欧美在线观看 | 你懂的国产| 日韩黄色一级大片 | 美乳在线播放 | 91成人午夜在线精品 | 91视频免费入口 | 麻豆传媒网站网址入口 |