亚洲av色香蕉一区二区三区,十四以下岁毛片带血a级,亚洲 校园 欧美 国产 另类,亚洲av日韩av一区谷露,色欲av无码一区二区三区

  • 相關(guān)軟件
    >Unix shell 淺講 創(chuàng)建者:webmaster 更新時(shí)間:2005-07-02 01:09

    1. 輸出入轉(zhuǎn)向
    在 UNIX 中,每一個(gè) process 均有三個(gè)特殊的 file descriptor , 標(biāo)準(zhǔn)輸入( standard input )、標(biāo)準(zhǔn)輸出 ( standard output )、標(biāo)準(zhǔn)錯(cuò)誤輸出( standard error )。這三個(gè)平常是接受 terminal 的輸入,而由 terminal 顯示出去。但是UNIX 提供使用者可以使用一般的檔案或 pipe 來(lái)取代這些標(biāo)準(zhǔn)輸出入設(shè)備。在tcsh 里頭,使用者可以利用">"和"<"來(lái)進(jìn)行輸出入轉(zhuǎn)向的工作。

    輸出轉(zhuǎn)向:
    command > file

    你可以將一個(gè)指令的輸出結(jié)果轉(zhuǎn)向到一個(gè)檔案,讓此檔案儲(chǔ)存這個(gè) command的輸出結(jié)果。

    但是請(qǐng)注意,如果 file 已經(jīng)存在在系統(tǒng)中,則 file 將會(huì)被蓋過(guò)。也就是原先 file 的內(nèi)容將會(huì)消失。

    command >& file

    與 > 相同,但是這個(gè)格式表示連 standard error 一起轉(zhuǎn)向。在 UNIX 中,standard error 在 programer 的習(xí)慣是用來(lái)顯示 error 的發(fā)生,因此如果沒(méi)有被轉(zhuǎn)向時(shí), standard output 的結(jié)果將會(huì)被轉(zhuǎn)向到 file ,而 standard error 的結(jié)果仍將顯示在 terminal 上。

    command >> file

    此格示代表將 standard output 的結(jié)果 append 到 file 中。如果 file 已存在在系統(tǒng)中,則 standard output 的結(jié)果將會(huì)加到 file 的末端,如果 file原先并不存在,則 file 將會(huì)被開(kāi)啟而將 standard output 的結(jié)果存至 file中。

    command >>& filE

    同上,不過(guò)此格式代表連 standard error 一起 append 到 file 之中。

    輸入轉(zhuǎn)向
    command < file

    一般程式須要自終端機(jī)輸入資料,而你可以將程式所要輸入的資料統(tǒng)一編入檔案中,利用轉(zhuǎn)向一并輸入。

    set ignoreeeof
    由於轉(zhuǎn)向輸出會(huì)有將現(xiàn)有檔案 overwrite 的危險(xiǎn),csh 與 tcsh 提供使用者一個(gè)方式來(lái)避免。

    當(dāng)你執(zhí)行 set ignoreeeof 之後,如有輸出轉(zhuǎn)向到已存在之檔案時(shí),它會(huì)發(fā)出一個(gè)檔案已存在的訊息。 而在處理 append 轉(zhuǎn)向上,如果已經(jīng) set ignoreeeof ,則當(dāng)要 append 一個(gè)不存在的檔案,將會(huì)出現(xiàn)一個(gè) error messege 。

    然而如果我們當(dāng)真是要轉(zhuǎn)向蓋過(guò)一個(gè)已存在的檔案,或者是要 append 一個(gè)不存在的檔案時(shí),又要如何呢?

    我們只要在 ">" ">&" ">>" ">>&" 後面加上驚嘆號(hào)"!",成為 ">!" , ... 就可以了。

    2. Pipe
    如同前面說(shuō)的轉(zhuǎn)向,Pipe 也是在標(biāo)準(zhǔn)輸出入和標(biāo)準(zhǔn)示誤裝置間作取代動(dòng)作,如此一來(lái)可以將某一個(gè)程式的輸出連到另一個(gè)程式的輸入中。其語(yǔ)法如下:
    command1 | command2 [ | command3 ....]
    command1 |& command2 [ |& command3 ....] <--- 連 standard error 一起 pipe


    3. 前景與背景
    在 sh 下面,一個(gè)新產(chǎn)生的 process 可以經(jīng)由 command 後面的符號(hào)';'和'&'來(lái)分別前景和背景。如以下語(yǔ)法

    command

    這表示產(chǎn)生一個(gè) foreground 的 process ,你要等到它結(jié)束才能再下另一個(gè)指令。

    command &

    這樣表示產(chǎn)生一個(gè) background 的 process ,它會(huì)給你一個(gè)類似以下的訊息:

    [1] 21304

    然後就出現(xiàn)下一個(gè)提示號(hào),以供你給下一個(gè)指令。然後在這個(gè) background 的process 結(jié)束的時(shí)候再給你一個(gè)如下面的訊息,告訴你它把這個(gè) process 執(zhí)行完畢了。

    [1] Done command

    command1 ; command2 ; command3

    這樣表示你要求系統(tǒng)連續(xù)執(zhí)行 command1 , command2 , command3 三個(gè)指令,其中 command2 要等待 command1 , command3 要等待 command2 ,而你要等待 command3 執(zhí)行完畢才能下指令。

    command1 & command2 & command3 &

    這樣表示你要求系統(tǒng)連續(xù)執(zhí)行 command1 , command2 , command3 三個(gè)指令,而這三個(gè)指令都放在背景執(zhí)行,彼此之間不需等待。

    fg 與 bg

    也許你會(huì)問(wèn),一個(gè)已經(jīng)執(zhí)行的 process 可不可以由前景換背景,或由背景換前景呢?

    可以的。一個(gè)在前景執(zhí)行的 process ,你可以按 Ctl-Z 將 process 暫停,系統(tǒng)會(huì)給你一個(gè)訊息:

    Suspended

    然後出現(xiàn)提示號(hào)。此時(shí)你可以使用 fg 將其恢復(fù)前景執(zhí)行,或按 bg 將其改為背景執(zhí)行。

    而如果有一個(gè) background 的 process , 你也可以用 fg 指令將其呼叫到前景來(lái)。首先你需用 jobs 指令來(lái)觀查目前有多少在背景下的 proesses,然後根據(jù)它所顯示出來(lái)的 job id 來(lái)決定將那一個(gè) process 放到前景。如使用

    % fg %3 # 將第三個(gè) job 放到 foreground 。

    4. 別名 alias
    在 csh 與 tcsh 中,提供 alias 的功能,使得使用者可以將常用卻冗長(zhǎng)的指令以其他的名字存起,不過(guò)不須像儲(chǔ)存變數(shù)一樣要在前面加一個(gè)"$"。

    alias 的格式:
    alias aliasname string ....
    alias aliasname 'string \!* string'

    前面的一個(gè)格式是把 aliasname 直接用來(lái)取代後面的 string ,然後如有任何跟在後面的 argument 將會(huì)出現(xiàn)的其後。如下例:

    % alias la ls -Fa

    例中的 la . 相當(dāng)於 ls -F . ,然而如果僅是如此并不足夠,因此有後面的另一種格式。後面的格式中的 \!* 代表將來(lái)會(huì)出現(xiàn)在 aliasname 後面的所有參數(shù),如下例:

    % alias dir 'ls -Flag \!* | more'

    例中的 dir doc 相當(dāng)於 ls -Flag doc | more ,這樣可提供使用者在設(shè)計(jì)上更大的彈性。

    5. tcsh 的初始設(shè)定檔
    tcsh 有兩個(gè) initial 檔,一個(gè)是 $HOME/.tcshrc , 一個(gè)是 $HOME/.login 。

    每一個(gè) tcsh 在被開(kāi)啟時(shí),它都會(huì)去執(zhí)行所有位於 .tcshrc 中的命令,因此你可以把所有的 alias , 變數(shù)設(shè)定都放到 .tcshrc 里面去。在tcsh 起動(dòng)的時(shí)候便會(huì)自動(dòng)的去執(zhí)行這些對(duì)於你的環(huán)境的初始設(shè)定。

    .login 只有在 tcsh 本身是一個(gè) login shell 的時(shí)候才會(huì)執(zhí)行,它多半用來(lái)設(shè)定一些只需在 login 的時(shí)候要執(zhí)行的命令,如環(huán)境變數(shù)的設(shè)定,因環(huán)境變數(shù)在設(shè)定之後,只要是其子 process 均會(huì)取得其環(huán)境,因此不須在每次開(kāi)啟 shell 的時(shí)候都重覆執(zhí)行。

    tcsh 另有一個(gè)結(jié)束設(shè)定檔,稱為 .logout ,是在每一個(gè) login shell 結(jié)束,logout 所要執(zhí)行的動(dòng)作,其編輯的方法跟 .login , .tcshrc 完全一模一樣。

    source 指令

    如果要重新執(zhí)行 .tcshrc 的內(nèi)容,可以利用 source 指令來(lái)達(dá)到,此時(shí)就相當(dāng)於把該檔案中的所有內(nèi)容重新在命令列輸入一遍。如下:

    % source .login
    相關(guān)文章
    本頁(yè)查看次數(shù):