標題: LINUX與UNIX SHELL編程指南 目錄和第一部分s h e l l [打印本頁] 作者: sd-feng 時間: 2006-05-25 11:19 標題: LINUX與UNIX SHELL編程指南 目錄和第一部分s h e l l 本書共分五部分,詳細介紹了shell編程技巧,各種UNIX命令及語法,還涉及了UNIX下的文字處理以及少量的系統(tǒng)管理問題。本書內(nèi)容全面、文字簡潔流暢,適合Shell編程人員學習、參考。
2 第一部分shell
下載
下面讓我們來分析一下該命令所得結(jié)果的前面兩行,看看都包含了哪些信息
:
total 4232:這一行告訴我們該目錄中所有文件所占的空間
。
- r w x r- x r- x:這是該文件的權(quán)限位。如果除去最前面的橫杠,這里一共是9個字符,他們
分別對應9個權(quán)限位。通過這些權(quán)限位,可以設定用戶對文件的訪問權(quán)限。這9個字符可以分
為三組:
r w x:文件屬主權(quán)限這是前面三位
r- x :同組用戶權(quán)限這是中間三位
r- x :其他用戶權(quán)限這是最后三位
后面我們還將對這些權(quán)限位作更詳細的介紹。出現(xiàn)在r、w、x位置上的橫杠表示相應的訪
問權(quán)限被禁止。
1 該文件硬鏈接的數(shù)目。
root 文件的屬主。
root 文件的屬主r o o t所在的缺省組(也叫做r o o t )。
3578 用字節(jié)來表示的文件長度,記住,不是K字節(jié)!
Oct 14 04:44 文件的更新時間。
dmesg 文件名。
接下來的三個權(quán)限位是文件屬主所具有的權(quán)限;再接下來的三位是與你同組用戶所具有
的權(quán)限,這里是a d m i n組;最后三位是其他用戶所具有的權(quán)限。在該命令的結(jié)果中,我所屬于
的缺省組也顯示了出來。下面是對該文件權(quán)限的精確描述:
表1-1 ls -l命令輸出的含義
(第一個字符) 普通文件
(接下來的三個字符) r w 文件屬主的權(quán)限
(再接下來的三個字符) r- 同組用戶的權(quán)限
(最后三個字符) r- 其他用戶的權(quán)限
因此,這三組字符(除了第一個字符)分別定義了
:
1) 文件屬主所擁有的權(quán)限
。
2) 文件屬主缺省組(一個用戶可以屬于很多的組)所擁有的權(quán)限
。
3) 系統(tǒng)中其他用戶的權(quán)限
。
在每一組字符中含有三個權(quán)限位
:
r 讀權(quán)
限
w 寫/更改權(quán)
限
x 執(zhí)行該腳本或程序的權(quán)
限
這里我們采用另外一種方式來表示剛才所列出m y f i l e的文件權(quán)限
:
-r w -r- -r--
文件類型為普通文件文件屬主可以讀、寫同組用戶可以讀其他用戶可以讀
你可能已經(jīng)注意到了,m y f i l e在創(chuàng)建的時候并未給屬主賦予執(zhí)行權(quán)限,在用戶創(chuàng)建文件時,
系統(tǒng)不會自動地設置執(zhí)行權(quán)限位。這是出于加強系統(tǒng)安全的考慮。必須手工修改這一權(quán)限位:
后面講到u m a s k命令時,你就會明白為什么沒有獲得執(zhí)行權(quán)限。然而,你可以針對目錄設置執(zhí)
行權(quán)限位,但這與文件執(zhí)行權(quán)限位的意義有所不同,這一點我們將在后面討論。
1.4 改變權(quán)限位
對于屬于你的文件,可以按照自己的需要改變其權(quán)限位的設置。在改變文件權(quán)限位設置
之前,要仔細地想一想有哪些用戶需要訪問你的文件(包括你的目錄)。可以使用c h m o d命令來
改變文件權(quán)限位的設置。這一命令有比較短的絕對模式和長一些的符號模式。我們先來看一
看符號模式。
1.4.1 符號模式
c h m o d命令的一般格式為:
chmod [who] operator [permission] filename
w h o的含義是:
u 文件屬主權(quán)限。
g 同組用戶權(quán)限。
o 其他用戶權(quán)限
。
a 所有用戶(文件屬主、同組用戶及其他用戶)
。
o p e r a t o r的含義:
+ 增加權(quán)限。
-取消權(quán)限
。
= 設定權(quán)限
。
p e r m i s s i o n的含義
:
r 讀權(quán)限
。
w 寫權(quán)限
。
x 執(zhí)行權(quán)限
。
s 文件屬主和組s e t - I D
。
t 粘性位*
。
l 給文件加鎖,使其他用戶無法訪問
。
u,g,o 針對文件屬主、同組用戶及其他用戶的操作
。
*在列文件或目錄時,有時會遇到“t”位!皌”代表了粘性位。如果在一個目錄上出現(xiàn)
“t”位,這就意味著該目錄中的文件只有其屬主才可以刪除,即使某個同組用戶具有和屬主
同等的權(quán)限。不過有的系統(tǒng)在這一規(guī)則上并不十分嚴格。
如果在文件列表時看到“t”,那么這就意味著該腳本或程序在執(zhí)行時會被放在交換區(qū)(虛
存)。不過由于當今的內(nèi)存價格如此之低,大可不必理會文件的“t”的使用。
第1章文件安全與權(quán)限5
下載
1.4.2 chmod命令舉例
現(xiàn)在讓我們來看一些使用c h m o d命令的例子。假定m y f i l e文件最初具有這樣的權(quán)限:r w x
rwx rwx
:
這樣,該文件的權(quán)限變?yōu)椋?br />
現(xiàn)在已經(jīng)使文件屬主對m y f i l e文件具有讀、寫執(zhí)行的權(quán)限,而a d m i n組的用戶對該文件具
有讀權(quán)限。
如果希望某個腳本文件對你自己來說可執(zhí)行,而且你對該文件的缺省權(quán)限很放心,那么
只要使它對你來說具有執(zhí)行權(quán)限即可。
$ chmod u+x dt
1.4.3 絕對模式
c h m o d命令絕對模式的一般形式為:
chmod [mode] file
其中m o d e是一個八進制數(shù)。
在絕對模式中,權(quán)限部分有著不同的含義。每一個權(quán)限位用一個八進制數(shù)來代表,如表
1 - 3所示。
1.5 目錄
還記得在前面介紹c h m o d命令時講過,目錄的權(quán)限位和文件有所不同,F(xiàn)在我們來看看其
中的區(qū)別。目錄的讀權(quán)限位意味著可以列出其中的內(nèi)容。寫權(quán)限位意味著可以在該目錄中創(chuàng)
建文件,如果不希望其他用戶在你的目錄中創(chuàng)建文件,可以取消相應的寫權(quán)限位。執(zhí)行權(quán)限
位則意味著搜索和訪問該目錄(見表1 - 5、表1 - 6)。
表1-5 目錄權(quán)限
r w x
可以列出該目錄中的文件可以在該目錄中創(chuàng)建或刪除文件可以搜索或進入該目錄
表1-6 目錄權(quán)限舉例
權(quán)限文件屬主同組用戶其他用戶
drwx rwx r- x ( 7 7 5 ) 讀、寫、執(zhí)行讀、寫、執(zhí)行讀、執(zhí)行
drwx r-x r- - ( 7 5 4 ) 讀、寫、執(zhí)行讀、執(zhí)行讀
drwx r-x r- x ( 7 5 5 ) 讀、寫、執(zhí)行讀、執(zhí)行讀、執(zhí)行
s u i d意味著如果某個用戶對屬于自己的s h e l l腳本設置了這種權(quán)限,那么其他用戶在執(zhí)行這
一腳本時也會具有其屬主的相應權(quán)限。于是,如果根用戶的某一個腳本設置了這樣的權(quán)限,
那么其他普通用戶在執(zhí)行它的期間也同樣具有根用戶的權(quán)限。同樣的原則也適用于g u i d,執(zhí)
行相應腳本的用戶將具有該文件所屬用戶組中用戶的權(quán)限。
1.6.1 為什么要使用suid/guid
為什么要使用這種類型的腳本?這里有一個很好的例子。我管理著幾個大型的數(shù)據(jù)庫系
統(tǒng),而對它們進行備份需要有系統(tǒng)管理權(quán)限。我寫了幾個腳本,并設置了它們的g u i d,這樣
我指定的一些用戶只要執(zhí)行這些腳本就能夠完成相應的工作,而無須以數(shù)據(jù)庫管理員的身份
登錄,以免不小心破壞了數(shù)據(jù)庫服務器。通過執(zhí)行這些腳本,他們可以完成數(shù)據(jù)庫備份及其
他管理任務,但是在這些腳本運行結(jié)束之后,他們就又回復到他們作為普通用戶的權(quán)限。
有相當一些U N I X命令也設置了s u i d和g u i d。如果想找出這些命令,可以進入/ b i n或/ s b i n目
錄,執(zhí)行下面的命令:
$ ls -l | grep '^...s'
上面的命令是用來查找s u i d文件的;
$ ls -l | grep '^...s..s'
上面的命令是用來查找s u i d和g u i d的。
現(xiàn)在我們明白了什么是s u i d,可是如何設置它呢?下面就來介紹這個問題。如果希望設置
s u i d,那么就將相應的權(quán)限位之前的那一位設置為4;如果希望設置g u i d,那么就將相應的權(quán)限
位之前的那一位設置為2;如果希望兩者都置位,那么將相應的權(quán)限位之前的那一位設置為4+2。
一旦設置了這一位,一個s將出現(xiàn)在x的位置上。記。涸谠O置s u i d或g u i d的同時,相應的
執(zhí)行權(quán)限位必須要被設置。例如,如果希望設置g u i d,那么必須要讓該用戶組具有執(zhí)行權(quán)限。
如果想要對文件l o g i n設置s u i d,它當前所具有的權(quán)限為rwx rw- r-- (741) ,需要在使用
c h m o d命令時在該權(quán)限數(shù)字的前面加上一個4,即chmod 4741,這將使該文件的權(quán)限變?yōu)閞 w s
rw- r- -。
命令結(jié)果含義
chmod 4755
chmod 6711
chmod 4764
rws r-x r- x
rws --s --s
rws rw- r-
文件被設置了s u i d,文件屬主具有讀、寫和執(zhí)行的權(quán)限,所有其
他用戶具有讀和執(zhí)行的權(quán)限
文件被設置了s u i d和g u i d,文件屬主具有讀、寫和執(zhí)行的權(quán)限,
所有其他用戶具有執(zhí)行的權(quán)限
文件被設置了s u i d,文件屬主具有讀、寫和執(zhí)行的權(quán)限,同組用
戶具有讀和執(zhí)行的權(quán)限,其他用戶具有讀權(quán)限
第1章文件安全與權(quán)限9
下載
還可以使用符號方式來設置s u i d / g u i d。如果某個文件具有這樣的權(quán)限:rwx r-x r- x ,那么
可以這樣設置其s u i d:
chmod u+s <filename>
于是該文件的權(quán)限將變?yōu)椋簉ws r-x r-x
在查找設置了s u i d的文件時,沒準會看到具有這樣權(quán)限的文件:rwS r-x r- x ,其中S為大寫。
它表示相應的執(zhí)行權(quán)限位并未被設置,這是一種沒有什么用處的s u i d設置,可以忽略它的存在。
注意,c h m o d命令不進行必要的完整性檢查,可以給某一個沒用的文件賦予任何權(quán)限,但
chmod 命令并不會對所設置的權(quán)限組合做什么檢查。因此,不要看到一個文件具有執(zhí)行權(quán)限,
就認為它一定是一個程序或腳本。
1.7 chown和chgrp
當你創(chuàng)建一個文件時,你就是該文件的屬主。一旦你擁有某個文件,就可以改變它的所
有權(quán),把它的所有權(quán)交給另外一個/ e t c / p a s s w d文件中存在的合法用戶?梢允褂糜脩裘蛴
戶I D號來完成這一操作。在改變一個文件的所有權(quán)時,相應的s u i d也將被清除,這是出于安
全性的考慮。只有文件的屬主和系統(tǒng)管理員可以改變文件的所有權(quán)。一旦將文件的所有權(quán)交
給另外一個用戶,就無法再重新收回它的所有權(quán)。如果真的需要這樣做,那么就只有求助于
系統(tǒng)管理員了。
文件p r o j e c t的所有權(quán)現(xiàn)在由用戶l o u i s e交給了用戶p a u l i n e。
1.7.2 chgrp舉例
c h g r p命令和c h o w n命令的格式差不多,下面給出一個例子。
用戶p a u l i n e現(xiàn)在把該文件所屬的組由a d m i n變?yōu)閟 y b a d m i n(系統(tǒng)中的另外一個用戶組)。
1.7.3 找出你所屬于的用戶組
如果你希望知道自己屬于哪些用戶組,可以用如下的命令:
10 第一部分shell
下載
或者可以使用i d命令:
1.7.4 找出其他用戶所屬于的組
為了找出其他用戶所屬于的組,可以用如下的命令:
上面的命令告訴我們用戶m a t t y屬于s y b a d m i n、a p p s g e n和p o s t用戶組。
1.8 umask
當最初登錄到系統(tǒng)中時,u m a s k命令確定了你創(chuàng)建文件的缺省模式。這一命令實際上和
c h m o d命令正好相反。你的系統(tǒng)管理員必須要為你設置一個合理的u m a s k值,以確保你創(chuàng)建的
文件具有所希望的缺省權(quán)限,防止其他非同組用戶對你的文件具有寫權(quán)限。
在已經(jīng)登錄之后,可以按照個人的偏好使用u m a s k命令來改變文件創(chuàng)建的缺省權(quán)限。相應
的改變直到退出該s h e l l或使用另外的u m a s k命令之前一直有效。
一般來說,u m a s k命令是在/ e t c / p r o f i l e文件中設置的,每個用戶在登錄時都會引用這個文
件,所以如果希望改變所有用戶的u m a s k,可以在該文件中加入相應的條目。如果希望永久性
地設置自己的u m a s k值,那么就把它放在自己$ H O M E目錄下的. p r o f i l e或. b a s h _ p r o f i l e文件中。
1.8.1 如何計算umask值
u m a s k命令允許你設定文件創(chuàng)建時的缺省模式,對應每一類用戶(文件屬主、同組用戶、
其他用戶)存在一個相應的u m a s k值中的數(shù)字。對于文件來說,這一數(shù)字的最大值分別是6。系
統(tǒng)不允許你在創(chuàng)建一個文本文件時就賦予它執(zhí)行權(quán)限,必須在創(chuàng)建后用c h m o d命令增加這一
權(quán)限。目錄則允許設置執(zhí)行權(quán)限,這樣針對目錄來說,u m a s k中各個數(shù)字最大可以到7。
該命令的一般形式為:
umask nnn
其中n n n為u m a s k置0 0 0 - 7 7 7。
讓我們來看一些例子。
計算出你的u m a s k值:
可以有幾種計算u m a s k值的方法,通過設置u m a s k值,可以為新創(chuàng)建的文件和目錄設置缺
省權(quán)限。表1 - 8列出了與權(quán)限位相對應的u m a s k值。
在計算u m a s k值時,可以針對各類用戶分別在這張表中按照所需要的文件/目錄創(chuàng)建缺省
權(quán)限查找對應的u m a s k值。
例如,u m a s k值002 所對應的文件和目錄創(chuàng)建缺省權(quán)限分別為6 6 4和7 7 5。
還有另外一種計算u m a s k值的方法。我們只要記住u m a s k是從權(quán)限中“拿走”相應的位即
可。
第1章文件安全與權(quán)限11
下載
表1-8 umask值與權(quán)限
u m a s k 文件目錄
0 6 7
1 6 6
2 4 5
3 4 4
4 2 3
5 2 2
6 0 1
7 0 0
例如,對于u m a s k值0 0 2,相應的文件和目錄缺省創(chuàng)建權(quán)限是什么呢?
第一步,我們首先寫下具有全部權(quán)限的模式,即7 7 7 (所有用戶都具有讀、寫和執(zhí)行權(quán)限)。
第二步,在下面一行按照u m a s k值寫下相應的位,在本例中是0 0 2。
第三步,在接下來的一行中記下上面兩行中沒有匹配的位。這就是目錄的缺省創(chuàng)建權(quán)限。
1.9.1 使用軟鏈接來保存文件的多個映像
下面我們就解釋一下符號鏈接是怎么回事。比方說在/ u s r / l o c a l / a d m i n / s a l e s目錄下有一個
含有銷售信息的文件,銷售部門的每一個人都想看這份文件。你可以在每一位用戶的$ H O M E
目錄下建立一個指向該文件的鏈接,而不是在每個目錄下拷貝一份。這樣當需要更改這一文
件時,只需改變一個源文件即可。每個銷售$ H O M E目錄中的鏈接可以起任何名字,不必和源
文件一致。
如果有很多子目錄,而進入這些目錄很費時間,在這種情況下鏈接也非常有用?梢葬
對$ H O M E目錄下的一個很深的子目錄創(chuàng)建一個鏈接。還有,比如在安裝一個應用程序時,它
的日志被保存到/ u s r / o p t / a p p / l o g目錄下,如果想把它保存在另外一個你認為更方便目錄下,可
以建立一個指向該目錄的鏈接。
該命令的一般形式為:
ln [-s] source_path target_path
其中的路徑可以是目錄也可以是文件。讓我們來看幾個例子。
1.9.2 符號鏈接舉例
假如系統(tǒng)中有4 0個銷售和管理用戶,銷售用戶使用一個銷售應用程序,而管理用戶使用
一個管理應用程序。我作為系統(tǒng)管理員該怎么做呢?首先刪除它們各自$ H O M E目錄下的所
有. p r o f i l e文件。然后在/ u s r / l o c a l / m e n u s /目錄下創(chuàng)建兩個p r o f i l e文件,一個是s a l e s . p r o f i l e,一
個是a d m i n . p r o f i l e,它們分別為銷售和管理人員提供了所需的環(huán)境,并引導他們進入相應的應
用程序,F(xiàn)在我在所有銷售人員的$ H O M E目錄下分別創(chuàng)建一個指向s a l e s . p r o f i l e的鏈接,在所
有管理人員的$ H O M E目錄下分別創(chuàng)建一個指向a d m i n . p r o f i l e文件的鏈接。注意,不必在上面
命令格式中的t a rg e t _ p a t h端創(chuàng)建相應文件,如果不存在這樣一個文件,l n命令會自動創(chuàng)建該文
第1章文件安全與權(quán)限13
下載
件。下面就是我對銷售人員m a t t y所做的操作。
(你所看到的可能會與此稍有差別)。
這就是我所要做的全部工作;對于管理人員也是如此。而且如果需要作任何修改的話,
只要改變銷售和管理人員的p r o f i l e文件即可,而不必對4 0個用戶逐一進行修改。
下面是另外一個例子。我所管理的系統(tǒng)中有一個網(wǎng)絡監(jiān)視器,它將日志寫在/ u s r / o p t /
m o n i t o r / r e g s t a r目錄下,但其他所有的日志都保存在/ v a r / a d m / l o g s目錄下,這樣只需在該目錄
下建立一個指向原有文件的鏈接就可以在一個地方看所有的日志了,而不必花費很多時間分
別進入各個相應的目錄。下面就是所用的鏈接命令:
在新安裝的系統(tǒng)上,通常要進行這樣的操作,在/ v a r目錄中創(chuàng)建一個指向/ t m p目錄的鏈接,
因為有些應用程序認為存在/ v a r / t m p目錄(然而它實際上并不存在),有些應用程序在該目錄中
保存一些臨時文件。為了使所有的臨時文件都放在一個地方,可以使用l n命令在/ v a r目錄下建
立一個指向/ t m p目錄的鏈接。
有時可能需要在系統(tǒng)中查找具有某一特征的文件(例如文件權(quán)限、文件屬主、文件長度、
文件類型等等)。這樣做可能有很多原因?赡艹鲇诎踩缘目紤],或是一般性的系統(tǒng)管理任
務,或許只是為了找出一個不知保存在什么地方的文件。F i n d是一個非常有效的工具,它可
以遍歷當前目錄甚至于整個文件系統(tǒng)來查找某些文件或目錄。
在本章中,我們介紹以下內(nèi)容:
. find命令選項。
. 使用f i n d命令不同選項的例子。
. 配合f i n d使用x a rg s命令的例子。
由于f i n d具有如此強大的功能,所以它的選項也很多,其中大部分選項都值得我們花時間
來了解一下。即使系統(tǒng)中含有網(wǎng)絡文件系統(tǒng)( N F S ),f i n d命令在該文件系統(tǒng)中同樣有效,只要
你具有相應的權(quán)限。
在運行一個非常消耗資源的f i n d命令時,很多人都傾向于把它放在后臺執(zhí)行,因為遍歷一
個大的文件系統(tǒng)可能會花費很長的時間(這里是指3 0 G字節(jié)以上的文件系統(tǒng))。
F i n d命令的一般形式為:
find pathname -options [-print -exec -ok]
讓我們來看看該命令的參數(shù):
pathname find命令所查找的目錄路徑。例如用.來表示當前目錄,用/來表示系統(tǒng)根目錄。
-print find命令將匹配的文件輸出到標準輸出。
-exec find命令對匹配的文件執(zhí)行該參數(shù)所給出的s h e l l命令。相應命令的形式為' c o m m
and' {} \;,注意{ }和\;之間的空格。
-ok 和- e x e c的作用相同,只不過以一種更為安全的模式來執(zhí)行該參數(shù)所給出的s h e l l命令,
在執(zhí)行每一個命令之前,都會給出提示,讓用戶來確定是否執(zhí)行。
2.1 find命令選項
f i n d命令有很多選項或表達式,每一個選項前面跟隨一個橫杠-。讓我們先來看一下該命
令的主要選項,然后再給出一些例子。
-name 按照文件名查找文件。
-perm 按照文件權(quán)限來查找文件。
-prune 使用這一選項可以使f i n d命令不在當前指定的目錄中查找,如果同時使用了- d e p t h
選項,那么- p r u n e選項將被f i n d命令忽略。
-user 按照文件屬主來查找文件。
-group 按照文件所屬的組來查找文件。
-mtime -n +n 按照文件的更改時間來查找文件,- n表示文件更改時間距現(xiàn)在n天以內(nèi),+ n
表示文件更改時間距現(xiàn)在n天以前。F i n d命令還有- a t i m e和- c t i m e選項,但它們都和- m t i m e選項作者: sd-feng 時間: 2006-05-26 10:28
相似,所以我們在這里只介紹- m t i m e選項。
-nogroup 查找無有效所屬組的文件,即該文件所屬的組在/ e t c / g r o u p s中不存在。
-nouser 查找無有效屬主的文件,即該文件的屬主在/ e t c / p a s s w d中不存在。
-newer file1 ! file2 查找更改時間比文件f i l e 1新但比文件f i l e 2舊的文件。
-type 查找某一類型的文件,諸如:
b -塊設備文件。
d -目錄。
c -字符設備文件。
p -管道文件。
l -符號鏈接文件。
f -普通文件。
-size n[c] 查找文件長度為n塊的文件,帶有c時表示文件長度以字節(jié)計。
-depth 在查找文件時,首先查找當前目錄中的文件,然后再在其子目錄中查找。
-fstype 查找位于某一類型文件系統(tǒng)中的文件,這些文件系統(tǒng)類型通?梢栽谂渲梦募
/ e t c / f s t a b中找到,該配置文件中包含了本系統(tǒng)中有關文件系統(tǒng)的信息。
-mount 在查找文件時不跨越文件系統(tǒng)m o u n t點。
-follow 如果f i n d命令遇到符號鏈接文件,就跟蹤至鏈接所指向的文件。
-cpio 對匹配的文件使用c p i o命令,將這些文件備份到磁帶設備中。
2.1.1 使用name選項
文件名選項是f i n d命令最常用的選項,要么單獨使用該選項,要么和其他選項一起使用。
可以使用某種文件名模式來匹配文件,記住要用引號將文件名模式引起來。
不管當前路徑是什么,如果想要在自己的根目錄$ H O M E中查找文件名符合* . t x t的文件,
使用~作為' p a t h n a m e參數(shù),波浪號~代表了你的$ H O M E目錄。
如果希望在當前目錄下查找所有用戶都可讀、寫、執(zhí)行的文件(要小心這種情況),我們
可以使用f i n d命令的- p e r m選項。在八進制數(shù)字前面要加一個橫杠-。在下面的命令中- p e r m代
表按照文件權(quán)限查找,而‘0 0 7’和你在c h m o d命令的絕對模式中所采用的表示法完全相同。
$ find . -perm -007 -print
2.1.3 忽略某個目錄
如果在查找文件時希望忽略某個目錄,因為你知道那個目錄中沒有你所要查找的文件,
那么可以使用- p r u n e選項來指出需要忽略的目錄。在使用- p r u n e選項時要當心,因為如果你同
時使用了- d e p t h選項,那么- p r u n e選項就會被f i n d命令忽略。
如果希望在/ a p p s目錄下查找文件,但不希望在/ a p p s / b i n目錄下查找,可以用:
$ find /apps -name "/apps/bin" -prune -o -print
2.1.4 使用user和nouser選項
如果希望按照文件屬主查找文件,可以給出相應的用戶名。例如,在$ H O M E目錄中查找
文件屬主為d a v e的文件,可以用:
$ find ~ -user dave -print
在/ e t c目錄下查找文件屬主為u u c p的文件:
$ find /etc -user uucp -print
為了查找屬主帳戶已經(jīng)被刪除的文件,可以使用- n o u s e r選項。這樣就能夠找到那些屬主
在/ e t c / p a s s w d文件中沒有有效帳戶的文件。在使用- n o u s e r選項時,不必給出用戶名;f i n d命令
能夠為你完成相應的工作。例如,希望在/ h o m e目錄下查找所有的這類文件,可以用:
$ find /home -nouser -print
2.1.5 使用group和nogroup選項
就像u s e r和n o u s e r選項一樣,針對文件所屬于的用戶組,f i n d命令也具有同樣的選項,為
了在/ a p p s目錄下查找屬于a c c t s用戶組的文件,可以用:
$ find /apps -group accts -print
要查找沒有有效所屬用戶組的所有文件,可以使用n o g r o u p選項。下面的f i n d命令從文件
系統(tǒng)的根目錄處查找這樣的文件
$ fine/-nogroup-print作者: sd-feng 時間: 2006-05-26 10:29
2.1.6 按照更改時間查找文件
如果希望按照更改時間來查找文件,可以使用m t i m e選項。如果系統(tǒng)突然沒有可用空間了,
很有可能某一個文件的長度在此期間增長迅速,這時就可以用m t i m e選項來查找這樣的文件。
用減號-來限定更改時間在距今n日以內(nèi)的文件,而用加號+來限定更改時間在距今n日以前的
文件。
希望在系統(tǒng)根目錄下查找更改時間在5日以內(nèi)的文件,可以用:
$ find / -mtime -5 -print
為了在/ v a r / a d m目錄下查找更改時間在3日以前的文件,可以用:
$ find /var/adm -mtime +3 -print
2.1.7 查找比某個文件新或舊的文件
如果希望查找更改時間比某個文件新但比另一個文件舊的所有文件,可以使用- n e w e r選
項。它的一般形式為:
newest_file_name ! oldest_file_name
其中,!是邏輯非符號。
這里有兩個文件,它們的更改時間大約相差兩天。
下面給出的f i n d命令能夠查找更改時間比文件a g e . a w k新但比文件b e l t s . a w k舊的文件:
如果想使用f i n d命令的這一選項來查找更改時間在兩個小時以內(nèi)的文件,除非有一個現(xiàn)成
的文件其更改時間恰好在兩個小時以前,否則就沒有可用來比較更改時間的文件。為了解決
這一問題,可以首先創(chuàng)建一個文件并將其日期和時間戳設置為所需要的時間。這可以用t o u c h
命令來實現(xiàn)。
為了在/ h o m e / a p a c h e目錄下查找文件長度恰好為1 0 0字節(jié)的文件,可以用:
$ find /home/apache -size 100c -print
為了在當前目錄下查找長度超過1 0塊的文件(一塊等于5 1 2字節(jié)),可以用:
$ find . -size +10 -print
2.1.10 使用depth選項
在使用f i n d命令時,可能希望先匹配所有的文件,再在子目錄中查找。使用d e p t h選項就
可以使f i n d命令這樣做。這樣做的一個原因就是,當在使用f i n d命令向磁帶上備份文件系統(tǒng)時,
希望首先備份所有的文件,其次再備份子目錄中的文件。
在下面的例子中,f i n d命令從文件系統(tǒng)的根目錄開始,查找一個名為C O N . F I L E的文件。
它將首先匹配所有的文件然后再進入子目錄中查找。
$ find / -name "CON.FILE" -depth -print
2.1.11 使用mount選項
在當前的文件系統(tǒng)中查找文件(不進入其他文件系統(tǒng)),可以使用f i n d命令的m o u n t選項。
在下面的例子中,我們從當前目錄開始查找位于本文件系統(tǒng)中文件名以X C結(jié)尾的文件:
$ find . -name "*.XC" -mount -print作者: sd-feng 時間: 2006-05-26 10:31
2.1.12 使用cpio選項
c p i o命令可以用來向磁帶設備備份文件或從中恢復文件?梢允褂胒 i n d命令在整個文件系
統(tǒng)中(更多的情況下是在部分文件系統(tǒng)中)查找文件,然后用c p i o命令將其備份到磁帶上。
如果希望使用c p i o命令備份/ e t c、/ h o m e和/ a p p s目錄中的文件,可以使用下面所給出的命
令,不過要記住你是在文件系統(tǒng)的根目錄下:
(在上面的例子中,第一行末尾的\告訴s h e l l命令還未結(jié)束,忽略\后面的回車。
)
在上面的例子中,應當注意到路徑中缺少/。這叫作相對路徑。之所以使用相對路徑,是
因為在從磁帶中恢復這些文件的時候,可以選擇恢復文件的路徑。例如,可以將這些文件先
恢復到另外一個目錄中,對它們進行某些操作后,再恢復到原始目錄中。如果在備份時使用
了絕對路徑,例如/ e t c,那么在恢復時,就只能恢復到/ e t c目錄中去,別無其他選擇。在上面
的例子中,我告訴f i n d命令首先進入/ e t c目錄,然后是/ h o m e和/ a p p s目錄,先匹配這些目錄下
的文件,然后再匹配其子目錄中的文件,所有這些結(jié)果將通過管道傳遞給c p i o命令進行備份。
2.1.13 使用exec或ok來執(zhí)行shell命令
當匹配到一些文件以后,可能希望對其進行某些操作,這時就可以使用- e x e c選項。一旦
f i n d命令匹配到了相應的文件,就可以用- e x e c選項中的命令對其進行操作(在有些操作系統(tǒng)
中只允許- e x e c選項執(zhí)行諸如l s或ls -l這樣的命令)。大多數(shù)用戶使用這一選項是為了查找舊文
件并刪除它們。這里我強烈地建議你在真正執(zhí)行r m命令刪除文件之前,最好先用l s命令看一
下,確認它們是所要刪除的文件。
e x e c選項后面跟隨著所要執(zhí)行的命令,然后是一對兒{ },一個空格和一個\,最后是一個
分號。
為了使用e x e c選項,必須要同時使用p r i n t選項。如果驗證一下f i n d命令,會發(fā)現(xiàn)該命令只
輸出從當前路徑起的相對路徑及文件名。
為了用ls -l 命令列出所匹配到的文件,可以把ls -l 命令放在f i n d命令的- e x e c選項中,例如:
上面的例子中,f i n d命令匹配到了當前目錄下的所有普通文件,并在- e x e c選項中使用ls -l
命令將它們列出。
為了在/ l o g s目錄中查找更改時間在5日以前的文件并刪除它們,可以用:
$ find logs -type f -mtime +5 -exec rm {} \
;
記住,在s h e l l中用任何方式刪除文件之前,應當先查看相應的文件,一定要小心!
當使用諸如m v或r m命令時,可以使用- e x e c選項的安全模式。它將在對每個匹配到的文件
進行操作之前提示你。在下面的例子中,f i n d命令在當前目錄中查找所有文件名以. L O G結(jié)尾、
更改時間在5日以上的文件,并刪除它們,只不過在刪除之前先給出提示。
按y鍵刪除文件,按n鍵不刪除。
任何形式的命令都可以在- e x e c選項中使用。在下面的例子中我們使用g r e p命令。f i n d命令
首先匹配所有文件名為“p a s s w d *”的文件,例如p a s s w d、p a s s w d . o l d、p a s s w d . b a k,然后執(zhí)
行g r e p命令看看在這些文件中是否存在一個r o u n d e r用戶。作者: sd-feng 時間: 2006-05-26 10:32
2.1.14 find命令的例子
我們已經(jīng)介紹了f i n d命令的基本選項,下面給出f i n d命令的一些其他的例子
。
為了匹配$ H O M E目錄下的所有文件,下面兩種方法都可以使用
:
$ find $HOME -print
$ find ~ -print
為了在當前目錄中查找s u i d置位,文件屬主具有讀、寫、執(zhí)行權(quán)限,并且文件所屬組的用
戶和其他用戶具有讀和執(zhí)行的權(quán)限的文件,可以用:
我們的一個審計系統(tǒng)每天創(chuàng)建一個審計日志文件。日志文件名的最后含有數(shù)字,這樣我
們一眼就可以看出哪個文件是最新的,哪個是最舊的。A d m i n . l o g 文件編上了序號:
a d m i n . l o g . 0 0 1、a d m i n . l o g . 0 0 2等等。下面的f i n d命令將刪除/ l o g s目錄中訪問時間在7日以前、
含有數(shù)字后綴的a d m i n . l o g文件。該命令只檢查三位數(shù)字,所以相應日志文件的后綴不要超過
9 9 9。
$ find /logs -name 'admin.log[0-9][0-9][0-9]
'-atime +7 -exec rm {} \
;
為了查找當前文件系統(tǒng)中的所有目錄并排序,可以用:
$ find . -type d -print -local -mount |sort
為了查找系統(tǒng)中所有的r m t磁帶設備,可以用:
$ find /dev/rmt -print
2.2 xargs
在使用f i n d命令的- e x e c選項處理匹配到的文件時,f i n d命令將所有匹配到的文件一起傳遞
給e x e c執(zhí)行。不幸的是,有些系統(tǒng)對能夠傳遞給e x e c的命令長度有限制,這樣在f i n d命令運行
幾分鐘之后,就會出現(xiàn)溢出錯誤。錯誤信息通常是“參數(shù)列太長”或“參數(shù)列溢出”。這就是
x a rg s命令的用處所在,特別是與f i n d命令一起使用。F i n d命令把匹配到的文件傳遞給x a rg s命
令,而x a rg s命令每次只獲取一部分文件而不是全部,不像- e x e c選項那樣。這樣它可以先處理
最先獲取的一部分文件,然后是下一批,并如此繼續(xù)下去。在有些系統(tǒng)中,使用- e x e c選項會
為處理每一個匹配到的文件而發(fā)起一個相應的進程,并非將匹配到的文件全部作為參數(shù)一次
執(zhí)行;這樣在有些情況下就會出現(xiàn)進程過多,系統(tǒng)性能下降的問題,因而效率不高;而使用
第2章使用f i n d和x a rg s 21
下載
x a rg s命令則只有一個進程。另外,在使用x a rg s命令時,究竟是一次獲取所有的參數(shù),還是分
批取得參數(shù),以及每一次獲取參數(shù)的數(shù)目都會根據(jù)該命令的選項及系統(tǒng)內(nèi)核中相應的可調(diào)參
數(shù)來確定。
讓我們來看看x a rg s命令是如何同f i n d命令一起使用的,并給出一些例子。
下面的例子查找系統(tǒng)中的每一個普通文件,然后使用x a rg s命令來測試它們分別屬于哪類
文件:
2.3 小結(jié)
f i n d命令是一個非常優(yōu)秀的工具,它可以按照用戶指定的準則來匹配文件。使用e x e c和
x a rg s可以使用戶對所匹配到的文件執(zhí)行幾乎所有的命令。作者: 唐三葬 時間: 2006-05-28 22:25
頂,希望轉(zhuǎn)完。作者: sd-feng 時間: 2006-05-29 10:24
第3章后臺執(zhí)行命令
At at命令。使用它在一個特定的時間運行一些特殊的作業(yè),或在晚一些的非負荷高峰時
間段或高峰負荷時間段運行。
& 使用它在后臺運行一個占用時間不長的進程。
Nohup 使用它在后臺運行一個命令,即使在用戶退出時也不受影響。作者: sd-feng 時間: 2006-05-29 10:27
3.1 cron和crontab
c r o n是系統(tǒng)主要的調(diào)度進程,可以在無需人工干預的情況下運行作業(yè)。有一個叫做
c r o n t a b的命令允許用戶提交、編輯或刪除相應的作業(yè)。每一個用戶都可以有一個c r o n t a b文件
來保存調(diào)度信息?梢允褂盟\行任意一個s h e l l腳本或某個命令,每小時運行一次,或一周
三次,這完全取決于你。每一個用戶都可以有自己的c r o n t a b文件,但在一個較大的系統(tǒng)中,
系統(tǒng)管理員一般會禁止這些文件,而只在整個系統(tǒng)保留一個這樣的文件。系統(tǒng)管理員是通過
c r o n . d e n y和c r o n . a l l o w這兩個文件來禁止或允許用戶擁有自己的c r o n t a b文件。
3.1.1 crontab的域
為了能夠在特定的時間運行作業(yè),需要了解c r o n t a b文件每個條目中各個域的意義和格式。
下面就是這些域:
C r o n t a b文件的一個條目是從左邊讀起的,第一列是分,最后一列是要運行的命令,它位
于星期的后面。
在這些域中,可以用橫杠-來表示一個時間范圍,例如你希望星期一至星期五運行某個作
業(yè),那么可以在星期域使用1 - 5來表示。還可以在這些域中使用逗號“,”,例如你希望星期一
和星期四運行某個作業(yè),只需要使用1 , 4來表示?梢杂眯翘*來表示連續(xù)的時間段。如果你
對某個表示時間的域沒有特別的限定,也應該在該域填入*。該文件的每一個條目必須含有5
個時間域,而且每個域之間要用空格分隔。該文件中所有的注釋行要在行首用#來表示。作者: sd-feng 時間: 2006-05-29 10:28
3.1.2 crontab條目舉例
這里有c r o n t a b文件條目的一些例子:
30 21* * * /apps/bin/cleanup.sh
上面的例子表示每晚的2 1 : 3 0運行/ a p p s / b i n目錄下的c l e a n u p . s h。
45 4 1,10,22 * * /apps/bin/backup.sh
上面的例子表示每月1、1 0、2 2日的4 : 4 5運行/ a p p s / b i n目錄下的b a c k u p . s h。
上面的例子表示在每天1 8 : 0 0至2 3 : 0 0之間每隔3 0分鐘運行/ a p p s / b i n目錄下的d b c h e c k . s h。
0 23 * * 6 /apps/bin/qtrend.sh
上面的例子表示每星期六的11 : 0 0 p m 運行/ a p p s / b i n目錄下的q t r e n d . s h。
你可能已經(jīng)注意到上面的例子中,每個命令都給出了絕對路徑。當使用c r o n t a b運行s h e l l
腳本時,要由用戶來給出腳本的絕對路徑,設置相應的環(huán)境變量。記住,既然是用戶向c r o n
提交了這些作業(yè),就要向c r o n提供所需的全部環(huán)境。不要假定c r o n知道所需要的特殊環(huán)境,它
其實并不知道。所以你要保證在s h e l l腳本中提供所有必要的路徑和環(huán)境變量,除了一些自動
設置的全局變量。
如果c r o n不能運行相應的腳本,用戶將會收到一個郵件說明其中的原因。
3.1.3 crontab命令選項
c r o n t a b命令的一般形式為:
Crontab [-u user] -e -l -
r
其中:
-u 用戶名。
-e 編輯c r o n t a b文件。
-l 列出c r o n t a b文件中的內(nèi)容。
-r 刪除c r o n t a b文件。
如果使用自己的名字登錄,就不用使用- u選項,因為在執(zhí)行c r o n t a b命令時,該命令能夠
知道當前的用戶。作者: sd-feng 時間: 2006-05-29 10:29
3.1.4 創(chuàng)建一個新的crontab文件
在考慮向c r o n進程提交一個c r o n t a b文件之前,首先要做的一件事情就是設置環(huán)境變量
E D I TO R。c r o n進程根據(jù)它來確定使用哪個編輯器編輯c r o n t a b文件。9 9 %的U N I X和L I N U X用
戶都使用v i,如果你也是這樣,那么你就編輯$ H O M E目錄下的. p r o f i l e文件,在其中加入這樣
一行:
EDITOR=vi; export EDITOR
然后保存并退出。
不妨創(chuàng)建一個名為< u s e r > c r o n的文件,其中< u s e r >是用戶名,例如,d a v e c r o n。在該文件
中加入如下的內(nèi)容。
保存并退出。確信前面5個域用空格分隔。
在上面的例子中,系統(tǒng)將每隔1 5分鐘向控制臺輸出一次當前時間。如果系統(tǒng)崩潰或掛起,
從最后所顯示的時間就可以一眼看出系統(tǒng)是什么時間停止工作的。在有些系統(tǒng)中,用t t y 1來表
示控制臺,可以根據(jù)實際情況對上面的例子進行相應的修改。
為了提交你剛剛創(chuàng)建的c r o n t a b文件,可以把這個新創(chuàng)建的文件作為c r o n命令的參數(shù):
$ crontab davecron
現(xiàn)在該文件已經(jīng)提交給c r o n進程,它將每隔1 5分鐘運行一次。
同時,新創(chuàng)建文件的一個副本已經(jīng)被放在/ v a r / s p o o l / c r o n目錄中,文件名就是用戶名(即,
d a v e)。
3.1.5 列出crontab文件
為了列出c r o n t a b文件,可以用:
你將會看到和上面類似的內(nèi)容?梢允褂眠@種方法在$ H O M E目錄中對c r o n t a b文件做一備
份:
$ crontab -l > $HOME/mycron
這樣,一旦不小心誤刪了c r o n t a b文件,可以用上一節(jié)所講述的方法迅速恢復。
3.1.6 編輯crontab文件
如果希望添加、刪除或編輯c r o n t a b文件中的條目,而E D I TO R環(huán)境變量又設置為v i,那么
就可以用v i來編輯c r o n t a b文件,相應的命令為:
$ crontab -
e
可以像使用v i編輯其他任何文件那樣修改c r o n t a b文件并退出。如果修改了某些條目或添
加了新的條目,那么在保存該文件時,c r o n會對其進行必要的完整性檢查。如果其中的某個
域出現(xiàn)了超出允許范圍的值,它會提示你。
我們在編輯c r o n t a b文件時,沒準會加入新的條目。例如,加入下面的一條:
現(xiàn)在保存并退出。最好在c r o n t a b文件的每一個條目之上加入一條注釋,這樣就可以知道
它的功能、運行時間,更為重要的是,知道這是哪位用戶的作業(yè)。
現(xiàn)在讓我們使用前面講過的crontab -l命令列出它的全部信息:
3.1.7 刪除crontab文件
為了刪除c r o n t a b文件,可以用:
$ crontab -
r
3.1.8 恢復丟失的crontab文件
如果不小心誤刪了c r o n t a b文件,假設你在自己的$ H O M E目錄下還有一個備份,那么可以
將其拷貝到/ v a r / s p o o l / c r o n / < u s e r n a m e >,其中< u s e r n a m e >是用戶名。如果由于權(quán)限問題無法完
成拷貝,可以用:
$ crontab <filename>
其中,< f i l e n a m e >是你在$ H O M E目錄中副本的文件名。
我建議你在自己的$ H O M E目錄中保存一個該文件的副本。我就有過類似的經(jīng)歷,有數(shù)次
誤刪了c r o n t a b文件(因為r鍵緊挨在e鍵的右邊.)。這就是為什么有些系統(tǒng)文檔建議不要直接
編輯c r o n t a b文件,而是編輯該文件的一個副本,然后重新提交新的文件。
有些c r o n t a b的變體有些怪異,所以在使用c r o n t a b命令時要格外小心。如果遺漏了任何選
項,c r o n t a b可能會打開一個空文件,或者看起來像是個空文件。這時敲d e l e t e鍵退出,不要按
< C t r l - D >,否則你將丟失c r o n t a b文件。作者: sd-feng 時間: 2006-05-29 10:30
3.2 at命令
a t命令允許用戶向c r o n守護進程提交作業(yè),使其在稍后的時間運行。這里稍后的時間可能
是指1 0 m i n以后,也可能是指幾天以后。如果你希望在一個月或更長的時間以后運行,最好還
是使用c r o n t a b文件。
一旦一個作業(yè)被提交,a t命令將會保留所有當前的環(huán)境變量,包括路徑,不象c r o n t a b,
只提供缺省的環(huán)境。該作業(yè)的所有輸出都將以電子郵件的形式發(fā)送給用戶,除非你對其輸出
進行了重定向,絕大多數(shù)情況下是重定向到某個文件中。
和c r o n t a b一樣,根用戶可以通過/ e t c目錄下的a t . a l l o w和a t . d e n y文件來控制哪些用戶可以
使用a t命令,哪些用戶不行。不過一般來說,對a t命令的使用不如對c r o n t a b的使用限制那么嚴
格。
a t命令的基本形式為:
at [-f script] [-m -l -r] [time] [date]
其中,
-f script 是所要提交的腳本或命令。
-l 列出當前所有等待運行的作業(yè)。a t q命令具有相同的作用。
-r 清除作業(yè)。為了清除某個作業(yè),還要提供相應的作業(yè)標識(I D);有些U N I X變體只
接受a t r m作為清除命令。
-m 作業(yè)完成后給用戶發(fā)郵件。
time at命令的時間格式非常靈活;可以是H、H H . H H M M、H H : M M或H : M,其中H和M
分別是小時和分鐘。還可以使用a . m .或p . m .。
date 日期格式可以是月份數(shù)或日期數(shù),而且a t命令還能夠識別諸如t o d a y、t o m o r r o w這樣
的詞。
現(xiàn)在就讓我們來看看如何提交作業(yè)。作者: sd-feng 時間: 2006-05-29 10:31
3.2.1 使用at命令提交命令或腳本
使用a t命令提交作業(yè)有幾種不同的形式,可以通過命令行方式,也可以使用a t命令提示符。
一般來說在提交若干行的系統(tǒng)命令時,我使用a t命令提示符方式,而在提交s h e l l腳本時,使用
命令行方式。
如果你想提交若干行的命令,可以在a t命令后面跟上日期/時間并回車。然后就進入了a t命
令提示符,這時只需逐條輸入相應的命令,然后按‘< C T R L - D >’退出。下面給出一個例子:
其中,< E O T >就是< C T R L - D >。在2 1 : 1 0系統(tǒng)將執(zhí)行一個簡單的f i n d命令。你應當已經(jīng)注
意到,我所提交的作業(yè)被分配了一個唯一標識job 1。該命令在完成以后會將全部結(jié)果以郵件
的形式發(fā)送給我。
下面就是我從這個郵件中截取的一部分:
下面這些日期/時間格式都是a t命令可以接受的:
如果希望向a t命令提交一個s h e l l腳本,使用其命令行方式即可。在提交腳本時使用- f選項。
在上面的例子中,一個叫做d b _ t a b l e . s h的腳本將在明天下午3 : 0 0運行。
還可以使用e c h o命令向a t命令提交作業(yè):
為什么要在后臺執(zhí)行命令?因為當在后臺執(zhí)行命令時,可以繼續(xù)使用你的終端做其他事
情。適合在后臺運行的命令有f i n d、費時的打印作業(yè)、費時的排序及一些s h e l l腳本。在后臺運
行作業(yè)時要當心:需要用戶交互的命令不要放在后臺執(zhí)行,因為這樣你的機器就會在那里傻
等。
在上面的例子中,所有的標準輸出和錯誤輸出都將被重定向到一個叫做out.file 的文件中。
當你成功地提交進程以后,就會顯示出一個進程號,可以用它來監(jiān)控該進程,或殺死它。作者: sd-feng 時間: 2006-05-29 10:32
3.3.1 向后臺提交命令
現(xiàn)在我們運行一個f i n d命令,查找名為“s r m . c o n f”的文件,并把所有標準輸出和錯誤輸
出重定向到一個叫作f i n d . d t的文件中:
如果系統(tǒng)沒有給出任何信息,告訴你進程已經(jīng)被殺死,那么不妨等一會兒,也許系統(tǒng)正
在殺該進程,如果還沒有回應,就再執(zhí)行另外一個k i l l命令,這次帶上一個信號選項:
如果用上述方法提交了一個后臺進程,那么在退出時該進程將會被終止。為了使后臺進
程能夠在退出后繼續(xù)運行,可以使用n o h u p命令,下面我們就介紹這一命令。作者: sd-feng 時間: 2006-05-29 10:33
3.4 nohup命令
如果你正在運行一個進程,而且你覺得在退出帳戶時該進程還不會結(jié)束,那么可以使用
n o h u p命令。該命令可以在你退出帳戶之后繼續(xù)運行相應的進程。N o h u p就是不掛起的意思( n o
hang up)。
該命令的一般形式為:
nohup command
&
3.4.1 使用nohup命令提交作業(yè)
如果使用n o h u p命令提交作業(yè),那么在缺省情況下該作業(yè)的所有輸出都被重定向到一個名
為n o h u p . o u t的文件中,除非另外指定了輸出文件:
nohup command > myout.file 2>&
1
在上面的例子中,輸出被重定向到m y o u t . f i l e文件中。
讓我們來看一個例子,驗證一下在退出帳戶后相應的作業(yè)是否能夠繼續(xù)運行。我們先提
交一個名為p s 1的日志清除進程: