linux系統(tǒng)命令使用詳解
對(duì)于Linux系統(tǒng)來說,無論是中央處理器、內(nèi)存、磁盤驅(qū)動(dòng)器、鍵盤、鼠標(biāo),還是用戶等都是文件,Linux系統(tǒng)管理的命令是它正常運(yùn)行的核心,與之前的DOS命令類似。接下來是小編為大家收集的linux系統(tǒng)命令使用詳解,希望能幫到大家。
linux系統(tǒng)命令使用詳解
cat cd
chmod chown
cp cut
名稱:cat
使用權(quán)限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
說明:把檔案串連接后傳到基本輸出(螢?zāi)换蚣?> fileName 到另一個(gè)檔案)
參數(shù):
-n 或 --number 由 1 開始對(duì)所有輸出的行數(shù)編號(hào)
-b 或 --number-nonblank 和 -n 相似,只不過對(duì)于空白行不編號(hào)
-s 或 --squeeze-blank 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-v 或 --show-nonprinting
范例:
cat -n textfile1 > textfile2 把 textfile1 的檔案內(nèi)容加上行號(hào)后輸入 textfile2 這個(gè)檔案里
cat -b textfile1 textfile2 >> textfile3 把 textfile1 和 textfile2 的檔案內(nèi)容加上行號(hào)(空白行不加)之后將內(nèi)容附加到 textfile3
名稱:cd
使用權(quán)限:所有使用者
使用方式:cd [dirName]
說明:變換工作目錄至 dirName。 其中 dirName 表示法可為絕對(duì)路徑或相對(duì)路徑。若目錄名稱省略,則變換至使用者的 home directory (也就是剛 login 時(shí)所在的目錄).另外,"~" 也表示為 home directory 的意思,"." 則是表示目前所在的目錄,".." 則表示目前目錄位置的上一層目錄。
范例:跳到 /usr/bin/:
cd /usr/bin
跳到自己的 home directory:
cd ~
跳到目前目錄的上上兩層:
cd ../..
指令名稱:chmod
使用權(quán)限:所有使用者
使用方式:chmod [-cfvR] [--help] [--version] mode file...
說明:Linux/Unix 的檔案存取權(quán)限分為三級(jí):檔案擁有者,群組,其他。利用 chmod 可以藉以控制檔案如何被他人所存取。
把計(jì):
mode:權(quán)限設(shè)定字串,格式如下:[ugoa...][[+-=][rwxX]...][,...],其中u 表示該檔案的擁有者,g 表示與該檔案的擁有者屬于同一個(gè)群體(group)者,o 表示其他以外的人,a 表示這三者皆是。
+ 表示增加權(quán)限,- 表示取消權(quán)限,= 表示唯一設(shè)定權(quán)限。
r 表示可讀取,w 表示可寫入,x 表示可執(zhí)行,X 表示只有當(dāng)該檔案是個(gè)子目錄或者該檔案已經(jīng)被設(shè)定過為可執(zhí)行。
-c:若該檔案權(quán)限確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作
-f:若該檔案權(quán)限無法被更改也不要顯示錯(cuò)誤訊息
-v:顯示權(quán)限變更的詳細(xì)資料
-R:對(duì)目前目錄下的所有檔案與子目錄進(jìn)行相同的權(quán)限變更(即以遞回的方式逐個(gè)變更)
--help:顯示輔助說明
--version:顯示版本
范例 :將檔案 file1.txt 設(shè)為所有人皆可讀取:
chmod ugo+r file1.txt
將檔案 file1.txt 設(shè)為所有人皆可讀取:
chmod a+r file1.txt
將檔案 file1.txt 與 file2.txt 設(shè)為該檔案擁有者,與其所屬同一個(gè)群體者可寫入,但其他以外的人則不可寫入:
chmod ug+w,o-w file1.txt file2.txt
將 ex1.py 設(shè)定為只有該檔案擁有者可以執(zhí)行:
chmod u+x ex1.py
將目前目錄下的所有檔案與子目錄皆設(shè)為任何人可讀取:
chmod -R a+r *
此外chmod也可以用數(shù)字來表示權(quán)限如 chmod 777 file
語(yǔ)法為:chmod abc file
其中a,b,c各為一個(gè)數(shù)字,分別表示User,Group,及Other的權(quán)限。
r=4,w=2,x=1
若要rwx屬性則4+2+1=7;
若要rw-屬性則4+2=6;
若要r-x屬性則4+1=7。
范例:
chmod a=rwx file
和
chmod 777 file
效果相同
chmod ug=rwx,o=x file
和
chmod 771 file
效果相同
若用chmod 4755 filename可使此程式具有root的權(quán)限
指令名稱:chown
使用權(quán)限:root
使用方式:chmod [-cfhvR] [--help] [--version] user[:group] file...
說明:Linux/Unix 是多人多工作業(yè)系統(tǒng),所有的檔案皆有擁有者。利用 chown 可以將檔案的擁有者加以改變。一般來說,這個(gè)指令只有是由系統(tǒng)管理者(root)所使用,一般使用者沒有權(quán)限可以改變別人的檔案擁有者,也沒有權(quán)限可以自己的檔案擁有者改設(shè)為別人。只有系統(tǒng)管理者(root)才有這樣的權(quán)限。
把計(jì):
user:新的檔案擁有者的使用者 IDgroup:新的檔案擁有者的使用者群體(group)-c:若該檔案擁有者確實(shí)已經(jīng)更改,才顯示其更改動(dòng)作-f:若該檔案擁有者無法被更改也不要顯示錯(cuò)誤訊息-h:只對(duì)于連結(jié)(link)進(jìn)行變更,而非該 link 真正指向的檔案-v:顯示擁有者變更的詳細(xì)資料-R:對(duì)目前目錄下的所有檔案與子目錄進(jìn)行相同的擁有者變更(即以遞回的方式逐個(gè)變更)--help:顯示輔助說明--version:顯示版本
范例:
將檔案 file1.txt 的擁有者設(shè)為 users 群體的使用者 jessie:
chown jessie:users file1.txt
將目前目錄下的所有檔案與子目錄的擁有者皆設(shè)為 users 群體的使用者 lamport:
chmod -R lamport:users *
名稱:cp
使用權(quán)限:所有使用者
使用方式:
cp [options] source dest
cp [options] source... directory
說明:將一個(gè)檔案拷貝至另一檔案,或?qū)?shù)個(gè)檔案拷貝至另一目錄。
把計(jì):
-a 盡可能將檔案狀態(tài),權(quán)限等資料都照原狀予以復(fù)制。
-r 若 source 中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f 若目的地已經(jīng)有相同檔名的檔案存在,則在復(fù)制前先予以刪除再行復(fù)制。
范例:
將檔案 aaa 復(fù)制(已存在),并命名為 bbb:
cp aaa bbb
將所有的C語(yǔ)言程式拷貝至 Finished 子目錄中:
cp *.c Finished
名稱:cut
使用權(quán)限:所有使用者
用法:cut -cnum1-num2 filename
說明:顯示每行從開頭算起 num1 到 num2 的文字。
范例:
shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print 開頭算起前 6 個(gè)字元
test2
this i
用法:find
使用說明:
將檔案系統(tǒng)內(nèi)符合 expression 的檔案列出來。你可以指要檔案的名稱,類別,時(shí)間,大小,權(quán)限等不同資訊的組合,只有完全相符的才會(huì)被列出來。
find 根據(jù)下列規(guī)則判斷 path 和 expression,在命令列上第一個(gè) - ( ) , ! 之前的部份為 path,之后的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預(yù)設(shè) expression?
expression 中可使用的選項(xiàng)有二三十個(gè)之多,在此只介紹最常用的部份。
-mount, -xdev:只檢查和指定目錄在同一個(gè)檔案系統(tǒng)下的檔案,避免列出其它檔案系統(tǒng)中的檔案
-amin n:在過去 n 分鐘內(nèi)被讀取過
-anewer file:比檔案 file 更晚被讀取過的檔案
-atime n:在過去 n 天過讀取過的檔案
-cmin n:在過去 n 分鐘內(nèi)被修改過
-cnewer file :比檔案 file 更新的檔案
-ctime n:在過去 n 天過修改過的檔案
-empty:空的檔案-gid n or -group name:gid 是 n 或是 group 名稱是 name
-ipath p, -path p:路徑名稱符合 p 的檔案,ipath 會(huì)忽略大小寫
-name name, -iname name:檔案名稱符合 name 的檔案。iname 會(huì)忽略大小寫
-size n:檔案大小 是 n 單位,b 代表 512 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個(gè)位元組。-type c:檔案類型是 c 的檔案。
d: 目錄
c: 字型裝置檔案
b: 區(qū)塊裝置檔案
p: 具名貯列
f: 一般檔案
l: 符號(hào)連結(jié)
s: socket
-pid n:process id 是 n 的檔案
你可以使用 ( ) 將運(yùn)算式分隔,并使用下列運(yùn)算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
范例:
將目前目錄及其子目錄下所有延伸檔名是 c 的檔案列出來。
# find . -name "*.c"
將目前目錄其其下子目錄中所有一般檔案列出
# find . -ftype f
將目前目錄及其子目錄下所有最近 20 分鐘內(nèi)更新過的檔案列出
# find . -ctime -20
名稱:less
使用權(quán)限:所有使用者
使用方式:
less [Option] filename
說明:
less 的作用與 more 十分相似,都可以用來瀏覽文字檔案的內(nèi)容,不同的是 less 允許使用者往回卷動(dòng)
以瀏覽已經(jīng)看過的部份,同時(shí)因?yàn)?less 并未在一開始就讀入整個(gè)檔案,因此在遇上大型檔案的開啟時(shí),會(huì)比一般的文書編輯器(如 vi)來的快速。
范例:
指令名稱:ln
使用權(quán)限:所有使用者
使用方式:ln [options] source dist,其中 option 的格式為:
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
說明:Linux/Unix 檔案系統(tǒng)中,有所謂的連結(jié)(link),我們可以將其視為檔案的別名,而連結(jié)又可分為兩種:硬連結(jié)(hard link)與軟連結(jié)(symbolic link),硬連結(jié)的意思是一個(gè)檔案可以有多個(gè)名稱,而軟連結(jié)的方式則是產(chǎn)生一個(gè)特殊的檔案,該檔案的內(nèi)容是指向另一個(gè)檔案的位置。硬連結(jié)是存在同一個(gè)檔案系統(tǒng)中,而軟連結(jié)卻可以跨越不同的檔案系統(tǒng)。
ln source dist 是產(chǎn)生一個(gè)連結(jié)(dist)到 source,至于使用硬連結(jié)或軟鏈結(jié)則由參數(shù)決定。
不論是硬連結(jié)或軟鏈結(jié)都不會(huì)將原本的檔案復(fù)制一份,只會(huì)占用非常少量的磁碟空間。
-f:鏈結(jié)時(shí)先將與 dist 同檔名的檔案刪除-d:允許系統(tǒng)管理者硬鏈結(jié)自己的目錄-i:在刪除與 dist 同檔名的檔案時(shí)先進(jìn)行詢問-n:在進(jìn)行軟連結(jié)時(shí),將 dist 視為一般的檔案-s:進(jìn)行軟鏈結(jié)(symbolic link)-v:在連結(jié)之前顯示其檔名-b:將在鏈結(jié)時(shí)會(huì)被覆寫或刪除的檔案進(jìn)行備份-S SUFFIX:將備份的檔案都加上 SUFFIX 的字尾-V METHOD:指定備份的方式--help:顯示輔助說明--version:顯示版本
范例:
將檔案 yy 產(chǎn)生一個(gè) symbolic link:zz
ln -s yy zz
將檔案 yy 產(chǎn)生一個(gè) hard link:zz
ln yy xx
名稱:locate
使用權(quán)限:所有使用者
使用方式: locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
說明:
locate 讓使用者可以很快速的搜尋檔案系統(tǒng)內(nèi)是否有指定的檔案。其方法是先建立一個(gè)包括系統(tǒng)內(nèi)所有檔案名稱及路徑的資料庫(kù),之后當(dāng)尋找時(shí)就只需查詢這個(gè)資料庫(kù),而不必實(shí)際深入檔案系統(tǒng)之中了。在一般的 distribution 之中,資料庫(kù)的建立都被放在 contab 中自動(dòng)執(zhí)行。
一般使用者在使用時(shí)只要用
# locate your_file_name
的型式就可以了。 參數(shù):
-u
-U
建立資料庫(kù),-u 會(huì)由根目錄開始,-U 則可以指定開始的位置。
-e
將排除在尋找的范圍之外。
-l
如果 是 1.則啟動(dòng)安全模式。在安全模式下,使用者不會(huì)看到權(quán)限無法看到的檔案。這會(huì)始速度減慢,因?yàn)?locate 必須至實(shí)際的檔案系統(tǒng)中取得檔案的權(quán)限資料。
-f
將特定的檔案系統(tǒng)排除在外,例如我們沒有到理要把 proc 檔案系統(tǒng)中的檔案放在資料庫(kù)中。
-q
安靜模式,不會(huì)顯示任何錯(cuò)誤訊息。
-n
至多顯示 個(gè)輸出。
-r
使用正規(guī)運(yùn)算式 做尋找的條件。
-o
指定資料庫(kù)存的名稱。
-d
指定資料庫(kù)的路徑
-h
顯示輔助訊息
-v
顯示更多的訊息
-V
顯示程式的版本訊息 范例:
locate chdrv:尋找所有叫 chdrv 的檔案
locate -n 100 a.out:尋找所有叫 a.out 的檔案,但最多只顯示 100 個(gè)
locate -u:建立資料庫(kù)
名稱:ls
使用權(quán)限:所有使用者
使用方式:ls [-alrtAFR] [name...]
說明:顯示指定工作目錄下之內(nèi)容(列出目前工作目錄所含之檔案及子目錄)。
-a 顯示所有檔案及目錄 (ls內(nèi)定將檔案名或目錄名稱開頭為"."的視為隱藏檔,不會(huì)列出)
-l 除檔案名稱外,亦將檔案型態(tài),權(quán)限,擁有者,檔案大小等資訊詳細(xì)列出
-r 將檔案以相反次序顯示(原定依英文字母次序)
-t 將檔案依建立時(shí)間之先后次序列出
-A 同 -a ,但不列出 "." (目前目錄) 及 ".." (父目錄)
-F 在列出的檔案名稱后加一符號(hào);例如可執(zhí)行檔則加 "*", 目錄則加 "/"
-R 若目錄下有檔案,則以下之檔案亦皆依序列出
范例:
列出目前工作目錄下所有名稱是 s 開頭的檔案,愈新的排愈后面:
ls -ltr s*
將 /bin 目錄以下所有目錄及檔案詳細(xì)資料列出:
ls -lR /bin
列出目前工作目錄下所有檔案及目錄;目錄于名稱后加 "/", 可執(zhí)行檔于名稱后加 "*":
ls -AF
名稱:more
使用權(quán)限:所有使用者
使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
說明:類似 cat ,不過會(huì)以一頁(yè)一頁(yè)的顯示方便使用者逐頁(yè)閱讀,而最基本的指令就是按空白鍵(space)就往下一頁(yè)顯示,按 b 鍵就會(huì)往回(back)一頁(yè)顯示,而且還有搜尋字串的功能(與 vi 相似),使用中的說明文件,請(qǐng)按 h 。
參數(shù):-num 一次顯示的行數(shù)
-d 提示使用者,在畫面下方顯示 [Press space to continue, q to quit.] ,如果使用者按錯(cuò)鍵,則會(huì)顯示 [Press h for instructions.] 而不是 嗶 聲
-l 取消遇見特殊字元 ^L(送紙字元)時(shí)會(huì)暫停的功能
-f 計(jì)算行數(shù)時(shí),以實(shí)際上的行數(shù),而非自動(dòng)換行過后的行數(shù)(有些單行字?jǐn)?shù)太長(zhǎng)的會(huì)被擴(kuò)展為兩行或兩行以上)
-p 不以卷動(dòng)的方式顯示每一頁(yè),而是先清除螢?zāi)缓笤亠@示內(nèi)容
-c 跟 -p 相似,不同的是先顯示內(nèi)容再清除其他舊資料
-s 當(dāng)遇到有連續(xù)兩行以上的空白行,就代換為一行的空白行
-u 不顯示下引號(hào) (根據(jù)環(huán)境變數(shù) TERM 指定的 terminal 而有所不同)
+/ 在每個(gè)檔案顯示前搜尋該字串(pattern),然后從該字串之后開始顯示
+num 從第 num 行開始顯示
fileNames 欲顯示內(nèi)容的檔案,可為復(fù)數(shù)個(gè)數(shù)
范例:
more -s testfile 逐頁(yè)顯示 testfile 之檔案內(nèi)容,如有連續(xù)兩行以上空白行則以一行空白行顯示。
more +20 testfile 從第 20 行開始顯示 testfile 之檔案內(nèi)容。
名稱:mv
使用權(quán)限:所有使用者
使用方式:
mv [options] source dest
mv [options] source... directory
說明:將一個(gè)檔案移至另一檔案,或?qū)?shù)個(gè)檔案移至另一目錄。
參數(shù):-i 若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
范例:
將檔案 aaa 更名為 bbb:
mv aaa bbb
將所有的C語(yǔ)言程式移至 Finished 子目錄中:
mv -i *.c
名稱:rm
使用權(quán)限:所有使用者
使用方式:rm [options] name...
說明:刪除檔案及目錄。
把計(jì):
-i 刪除前逐一詢問確認(rèn)。
-f 即使原檔案屬性設(shè)為唯讀,亦直接刪除,無需逐一確認(rèn)。
-r 將目錄及以下之檔案亦逐一刪除。
范例:
刪除所有C語(yǔ)言程式檔;刪除前逐一詢問確認(rèn):
rm -i *.c
將 Finished 子目錄及子目錄中所有檔案刪除:
rm -r Finished
名稱:rmdir
使用權(quán)限:于目前目錄有適當(dāng)權(quán)限的所有使用者
使用方式: rmdir [-p] dirName
說明: 刪除空的目錄。
參數(shù): -p 是當(dāng)子目錄被刪除后使它也成為空目錄的話,則順便一并刪除。
范例:
將工作目錄下,名為 AAA 的子目錄刪除:
rmdir AAA
在工作目錄下的 BBB 目錄中,刪除名為 Test 的子目錄。若 Test 刪除后,BBB 目錄成為空目錄,則 BBB 亦予刪除。
rmdir -p BBB/Test
名稱:split
使用權(quán)限:所有使用者
使用方式:split [OPTION] [INPUT [PREFIX]]說明:
將一個(gè)檔案分割成數(shù)個(gè)。而從 INPUT 分割輸出成固定大小的檔案,其檔名依序?yàn)?PREFIXaa, PREFIXab...;PREFIX 預(yù)設(shè)值為 `x。若沒有 INPUT 檔或?yàn)?`-,則從標(biāo)準(zhǔn)輸入讀進(jìn)資料。
匡兜:
-b, --bytes=SIZE
SIZE 值為每一輸出檔案的大小,單位為 byte。
-C, --line-bytes=SIZE
每一輸出檔中,單行的最大 byte 數(shù)。
-l, --lines=NUMBER
NUMBER 值為每一輸出檔的列數(shù)大小。
-NUMBER
與 -l NUMBER 相同。
--verbose
于每個(gè)輸出檔被開啟前,列印出偵錯(cuò)資訊到標(biāo)準(zhǔn)錯(cuò)誤輸出。
--help
顯示輔助資訊然后離開。
--version
列出版本資訊然后離開。
SIZE 可加入單位: b 代表 512, k 代表 1K, m 代表 1 Meg。
范例:
PostgresSQL 大型資料庫(kù)備份與回存:
因 Postgres 允許表格大過你系統(tǒng)檔案的最大容量,所以要將表格 dump 到單一的檔案可能會(huì)有問題,使用 split進(jìn)行檔案分割。
% pg_dump dbname | split -b 1m - filename.dump.
重新載入
% createdb dbname
% cat filename.dump.* | pgsql dbname
名稱:touch
使用權(quán)限:所有使用者
使用方式:
touch [-acfm]
[-r reference-file] [--file=reference-file]
[-t MMDDhhmm[[CC]YY][.ss]]
[-d time] [--date=time] [--time={atime,access,use,mtime,modify}]
[--no-create] [--help] [--version]
file1 [file2 ...]
說明:
touch 指令改變檔案的時(shí)間記錄。 ls -l 可以顯示檔案的時(shí)間記錄。
參數(shù):
a 改變檔案的讀取時(shí)間記錄。
m 改變檔案的修改時(shí)間記錄。
c 假如目的檔案不存在,不會(huì)建立新的檔案。與 --no-create 的效果一樣。
f 不使用,是為了與其他 unix 系統(tǒng)的相容性而保留。
r 使用參考檔的時(shí)間記錄,與 --file 的效果一樣。
d 設(shè)定時(shí)間與日期,可以使用各種不同的格式。
t 設(shè)定檔案的時(shí)間記錄,格式與 date 指令相同。
--no-create 不會(huì)建立新檔案。
--help 列出指令格式。
--version 列出版本訊息。
范例:
最簡(jiǎn)單的使用方式,將檔案的時(shí)候記錄改為現(xiàn)在的時(shí)間。若檔案不存在,系統(tǒng)會(huì)建立一個(gè)新的檔案。
touch file
touch file1 file2
將 file 的時(shí)間記錄改為 5 月 6 日 18 點(diǎn) 3 分,公元兩千年。時(shí)間的格式可以參考 date 指令,至少需輸入 MMDDHHmm ,就是月日時(shí)與分。
touch -c -t 05061803 file
touch -c -t 050618032000 file
將 file 的時(shí)間記錄改變成與 referencefile 一樣。
touch -r referencefile file
將 file 的時(shí)間記錄改成 5 月 6 日 18 點(diǎn) 3 分,公元兩千年。時(shí)間可以使用 am, pm 或是 24 小時(shí)的格式,日期可以使用其他格式如 6 May 2000 。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
名稱:at
使用權(quán)限:所有使用者
使用方式:at -V [-q queue] [-f file] [-mldbv] TIME
說明:at 可以讓使用者指定在 TIME 這個(gè)特定時(shí)刻執(zhí)行某個(gè)程式或指令,TIME 的格式是 HH:MM其中的 HH 為小時(shí),MM 為分鐘,甚至你也可以指定 am, pm, midnight, noon, teatime(就是下午 4 點(diǎn)鍾)等口語(yǔ)詞。
如果想要指定超過一天內(nèi)的時(shí)間,則可以用 MMDDYY 或者 MM/DD/YY 的格式,其中 MM 是分鐘,DD 是第幾日,YY 是指年份。另外,使用者甚至也可以使用像是 now + 時(shí)間間隔來彈性指定時(shí)間,其中的時(shí)間間隔可以是 minutes, hours, days, weeks?
另外,使用者也可指定 today 或 tomorrow 來表示今天或明天。當(dāng)指定了時(shí)間并按下 enter 之后,at 會(huì)進(jìn)入交談模式并要求輸入指令或程式,當(dāng)你輸入完后按下 ctrl+D 即可完成所有動(dòng)作,至于執(zhí)行的結(jié)果將會(huì)寄回你的帳號(hào)中。
把計(jì):
-V:印出版本編號(hào)
-q:使用指定的佇列(Queue)來儲(chǔ)存,at 的資料是存放在所謂的 queue 中,使用者可以同時(shí)使用多個(gè) queue,而 queue 的編號(hào)為 a, b, c... z 以及 A, B, ... Z 共 52 個(gè)
-m:即使程式/指令執(zhí)行完成后沒有輸出結(jié)果, 也要寄封信給使用者
-f file:讀入預(yù)先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案后再一次讀入
-l:列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l)
-d:刪除指定 (使用者也可以直接使用 atrm 而不用 at -d)
-v:列出所有已經(jīng)完成但尚未刪除的指定
例子:
三天后的下午 5 點(diǎn)鍾執(zhí)行 /bin/ls:
at 5pm + 3 days /bin/ls
三個(gè)星期后的下午 5 點(diǎn)鍾執(zhí)行 /bin/ls:
at 5pm + 2 weeks /bin/ls
明天的 17:20 執(zhí)行 /bin/date:
at 17:20 tomorrow /bin/date
1999 年的最后一天的最后一分鐘印出 the end of world !
at 23:59 12/31/1999 echo the end of world !
名稱:cal
使用權(quán)限:所有使用者
使用方式:cal [-mjy] [month [year]]
說明:
顯示日歷。若只有一個(gè)參數(shù),則代表年份(1-9999),顯示該年的年歷。年份必須全部寫出:``cal 89\ 將不會(huì)是顯示 1989 年的年歷。使用兩個(gè)參數(shù),則表示月份及年份。若沒有參數(shù)則顯示這個(gè)月的月歷。
1752 年 9 月第 3 日起改用西洋新歷,因這時(shí)大部份的國(guó)家都采用新歷,有 10 天被去除,所以該月份的月歷有些不同。在此之前為西洋舊歷。
匡兜:
-m:以星期一為每周的第一天方式顯示。
-j:以凱撒歷顯示,即以一月一日起的天數(shù)顯示。
-y:顯示今年年歷。
范例:
cal:顯示本月的月歷。
[root@mylinux /root]# date
Tue Aug 15 08:00:18 CST 2000
[root@mylinux /root]# cal
August 2000
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
[root@mylinux /root]#
cal 2001:顯示公元 2001 年年歷。
[root@mylinux /root]# cal 2001
2001
January February March
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1 2 3
7 8 9 10 11 12 13 4 5 6 7 8 9 10 4 5 6 7 8 9 10
14 15 16 17 18 19 20 11 12 13 14 15 16 17 11 12 13 14 15 16 17
21 22 23 24 25 26 27 18 19 20 21 22 23 24 18 19 20 21 22 23 24
28 29 30 31 25 26 27 28 25 26 27 28 29 30 31
April May June
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 5 1 2
8 9 10 11 12 13 14 6 7 8 9 10 11 12 3 4 5 6 7 8 9
15 16 17 18 19 20 21 13 14 15 16 17 18 19 10 11 12 13 14 15 16
22 23 24 25 26 27 28 20 21 22 23 24 25 26 17 18 19 20 21 22 23
29 30 27 28 29 30 31 24 25 26 27 28 29 30
July August September
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 7 1 2 3 4 1
8 9 10 11 12 13 14 5 6 7 8 9 10 11 2 3 4 5 6 7 8
15 16 17 18 19 20 21 12 13 14 15 16 17 18 9 10 11 12 13 14 15
22 23 24 25 26 27 28 19 20 21 22 23 24 25 16 17 18 19 20 21 22
29 30 31 26 27 28 29 30 31 23 24 25 26 27 28 29
30
October November December
Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa Su Mo Tu We Th Fr Sa
1 2 3 4 5 6 1 2 3 1
7 8 9 10 11 12 13 4 5 6 7 8 9 10 2 3 4 5 6 7 8
14 15 16 17 18 19 20 11 12 13 14 15 16 17 9 10 11 12 13 14 15
21 22 23 24 25 26 27 18 19 20 21 22 23 24 16 17 18 19 20 21 22
28 29 30 31 25 26 27 28 29 30 23 24 25 26 27 28 29
30 31
[root@mylinux /root]#
cal 5 2001:顯示公元 2001 年 5 月月歷。
[root@mylinux /root]# cal 5 2001
May 2001
Su Mo Tu We Th Fr Sa
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
[root@mylinux /root]#
cal -m:以星期一為每周的第一天方式,顯示本月的月歷。
[root@mylinux /root]# cal -m
August 2000
Mo Tu We Th Fr Sa Su
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30 31
[root@mylinux /root]#
cal -jy:以一月一日起的天數(shù)顯示今年的年歷。
[root@mylinux /root]# cal -jy
2000
January February
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
1 32 33 34 35 36
2 3 4 5 6 7 8 37 38 39 40 41 42 43
9 10 11 12 13 14 15 44 45 46 47 48 49 50
16 17 18 19 20 21 22 51 52 53 54 55 56 57
23 24 25 26 27 28 29 58 59 60
30 31
March April
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
61 62 63 64 92
65 66 67 68 69 70 71 93 94 95 96 97 98 99
72 73 74 75 76 77 78 100 101 102 103 104 105 106
79 80 81 82 83 84 85 107 108 109 110 111 112 113
86 87 88 89 90 91 114 115 116 117 118 119 120
121
May June
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
122 123 124 125 126 127 153 154 155
128 129 130 131 132 133 134 156 157 158 159 160 161 162
135 136 137 138 139 140 141 163 164 165 166 167 168 169
142 143 144 145 146 147 148 170 171 172 173 174 175 176
149 150 151 152 177 178 179 180 181 182
July August
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
183 214 215 216 217 218
184 185 186 187 188 189 190 219 220 221 222 223 224 225
191 192 193 194 195 196 197 226 227 228 229 230 231 232
198 199 200 201 202 203 204 233 234 235 236 237 238 239
205 206 207 208 209 210 211 240 241 242 243 244
212 213
September October
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
245 246 275 276 277 278 279 280 281
247 248 249 250 251 252 253 282 283 284 285 286 287 288
254 255 256 257 258 259 260 289 290 291 292 293 294 295
261 262 263 264 265 266 267 296 297 298 299 300 301 302
268 269 270 271 272 273 274 303 304 305
November December
Sun Mon Tue Wed Thu Fri Sat Sun Mon Tue Wed Thu Fri Sat
306 307 308 309 336 337
310 311 312 313 314 315 316 338 339 340 341 342 343 344
317 318 319 320 321 322 323 345 346 347 348 349 350 351
324 325 326 327 328 329 330 352 353 354 355 356 357 358
331 332 333 334 335 359 360 361 362 363 364 365
366
[root@mylinux /root]#
名稱:crontab
使用權(quán)限:所有使用者
使用方式:
crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
說明:
crontab 是用來讓使用者在固定時(shí)間或固定間隔執(zhí)行程式之用,換句話說,也就是類似使用者的時(shí)程表。-u user 是指設(shè)定指定 user 的時(shí)程表,這個(gè)前提是你必須要有其權(quán)限(比如說是 root)才能夠指定他人的時(shí)程表。如果不使用 -u user 的話,就是表示設(shè)定自己的時(shí)程表。
參數(shù):
-e:執(zhí)行文字編輯器來設(shè)定時(shí)程表,內(nèi)定的文字編輯器是 VI,如果你想用別的文字編輯器,則請(qǐng)先設(shè)定 VISUAL 環(huán)境變數(shù)來指定使用那個(gè)文字編輯器(比如說 setenv VISUAL joe)
-r:刪除目前的時(shí)程表
-l:列出目前的時(shí)程表
時(shí)程表的格式如下:
f1 f2 f3 f4 f5 program
其中 f1 是表示分鐘,f2 表示小時(shí),f3 表示一個(gè)月份中的第幾日,f4 表示月份,f5 表示一個(gè)星期中的第幾天。program 表示要執(zhí)行的程式。
當(dāng) f1 為 * 時(shí)表示每分鐘都要執(zhí)行 program,f2 為 * 時(shí)表示每小時(shí)都要執(zhí)行程式,其余類推
當(dāng) f1 為 a-b 時(shí)表示從第 a 分鐘到第 b 分鐘這段時(shí)間內(nèi)要執(zhí)行,f2 為 a-b 時(shí)表示從第 a 到第 b 小時(shí)都要執(zhí)行,其余類推
當(dāng) f1 為 */n 時(shí)表示每 n 分鐘個(gè)時(shí)間間隔執(zhí)行一次,f2 為 */n 表示每 n 小時(shí)個(gè)時(shí)間間隔執(zhí)行一次,其余類推
當(dāng) f1 為 a, b, c,... 時(shí)表示第 a, b, c,... 分鐘要執(zhí)行,f2 為 a, b, c,... 時(shí)表示第 a, b, c...個(gè)小時(shí)要執(zhí)行,其余類推
使用者也可以將所有的設(shè)定先存放在檔案 file 中,用 crontab file 的方式來設(shè)定時(shí)程表。
例子:
每月每天每小時(shí)的第 0 分鐘執(zhí)行一次 /bin/ls:
0 7 * * * /bin/ls
在 12 月內(nèi), 每天的早上 6 點(diǎn)到 12 點(diǎn)中,每隔 20 分鐘執(zhí)行一次 /usr/bin/backup:
0 6-12/3 * 12 * /usr/bin/backup
周一到周五每天下午 5:00 寄一封信給 alex@domain.name:
0 17 * * 1-5 mail -s "hi" alex@domain.name < /tmp/maildata
每月每天的午夜 0 點(diǎn) 20 分, 2 點(diǎn) 20 分, 4 點(diǎn) 20 分....執(zhí)行 echo "haha"
20 0-23/2 * * * echo "haha"
注意:
當(dāng)程式在你所指定的時(shí)間執(zhí)行后,系統(tǒng)會(huì)寄一封信給你,顯示該程式執(zhí)行的內(nèi)容,若是你不希望收到這樣的信,請(qǐng)?jiān)诿恳恍锌找桓裰蠹由?> /dev/null 2>&1 即可。
名稱:date
使用權(quán)限:所有使用者
使用方式:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr] [--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
說明:
date 可以用來顯示或設(shè)定系統(tǒng)的日期與時(shí)間,在顯示方面,使用者可以設(shè)定欲顯示的格式,格式設(shè)定為一個(gè)加號(hào)后接數(shù)個(gè)標(biāo)記,其中可用的標(biāo)記列表如下:
時(shí)間方面:
%:印出 %
%n:下一行
%t:跳格
%H:小時(shí)(00..23)
%I:小時(shí)(01..12)
%k:小時(shí)(0..23)
%l:小時(shí)(1..12)
%M:分鐘(00..59)
%p:顯示本地 AM 或 PM
%r:直接顯示時(shí)間 (12 小時(shí)制,格式為 hh:mm:ss [AP]M)
%s:從 1970 年 1 月 1 日 00:00:00 UTC 到目前為止的秒數(shù)
%S:秒(00..61)
%T:直接顯示時(shí)間 (24 小時(shí)制)
%X:相當(dāng)于 %H:%M:%S
%Z:顯示時(shí)區(qū)
日期方面:
%a:星期幾 (Sun..Sat)
%A:星期幾 (Sunday..Saturday)
%b:月份 (Jan..Dec)
%B:月份 (January..December)
%c:直接顯示日期與時(shí)間
%d:日 (01..31)
%D:直接顯示日期 (mm/dd/yy)
%h:同 %b
%j:一年中的第幾天 (001..366)
%m:月份 (01..12)
%U:一年中的第幾周 (00..53) (以 Sunday 為一周的第一天的情形)
%w:一周中的第幾天 (0..6)
%W:一年中的第幾周 (00..53) (以 Monday 為一周的第一天的情形)
%x:直接顯示日期 (mm/dd/yy)
%y:年份的最后兩位數(shù)字 (00.99)
%Y:完整年份 (0000..9999)
若是不以加號(hào)作為開頭,則表示要設(shè)定時(shí)間,而時(shí)間格式為 MMDDhhmm[[CC]YY][.ss],其中 MM 為月份,DD 為日,hh 為小時(shí),mm 為分鐘,CC 為年份前兩位數(shù)字,YY 為年份后兩位數(shù)字,ss 為秒數(shù)
把計(jì):
-d datestr:顯示 datestr 中所設(shè)定的時(shí)間 (非系統(tǒng)時(shí)間)
--help:顯示輔助訊息
-s datestr:將系統(tǒng)時(shí)間設(shè)為 datestr 中所設(shè)定的時(shí)間
-u:顯示目前的格林威治時(shí)間
--version:顯示版本編號(hào)
例子:
顯示時(shí)間后跳行,再顯示目前日期:
date +%T%n%D
顯示月份與日數(shù):
date +%B %d
顯示日期與設(shè)定時(shí)間(12:34:56):
date --date 12:34:56
注意:
當(dāng)你不希望出現(xiàn)無意義的 0 時(shí)(比如說 1999/03/07),則可以在標(biāo)記中插入 - 符號(hào),比如說 date +%-H:%-M:%-S 會(huì)把時(shí)分秒中無意義的 0 給去掉,像是原本的 08:09:04 會(huì)變?yōu)?8:9:4。另外,只有取得權(quán)限者(比如說 root)才能設(shè)定系統(tǒng)時(shí)間。
當(dāng)你以 root 身分更改了系統(tǒng)時(shí)間之后,請(qǐng)記得以 clock -w 來將系統(tǒng)時(shí)間寫入 CMOS 中,這樣下次重新開機(jī)時(shí)系統(tǒng)時(shí)間才會(huì)持續(xù)抱持最新的正確值。
名稱:sleep
使用權(quán)限:所有使用者
使用方式:sleep [--help] [--version] number[smhd]
說明:sleep 可以用來將目前動(dòng)作延遲一段時(shí)間
參數(shù)說明:
--help:顯示輔助訊息
--version:顯示版本編號(hào)
number:時(shí)間長(zhǎng)度,后面可接 s,m,h 或 d
其中 s 為秒,m 為 分鐘,h 為小時(shí),d 為日數(shù)
例子:
顯示目前時(shí)間后延遲 1 分鐘,之后再次顯示時(shí)間:
date;sleep 1m;date
名稱: time
使用權(quán)限: 所有使用者
使用方式: time [options] COMMAND [arguments]
說明:
time 指令的用途,在于量測(cè)特定指令執(zhí)行時(shí)所需消耗的時(shí)間及系統(tǒng)資源等資訊。例如 CPU 時(shí)間,記憶體,輸入輸出等等。需要特別注意的是,部分資訊在 Linux 上顯示不出來。這是因?yàn)樵?Linux 上部分資源的分配函式與 time 指令所預(yù)設(shè)的方式并不相同,以致于 time 指令無法取得這些資料。
把計(jì):
-o or --output=FILE
設(shè)定結(jié)果輸出檔。這個(gè)選項(xiàng)會(huì)將 time 的輸出寫入 所指定的檔案中。如果檔案已經(jīng)存在,系統(tǒng)將覆寫其內(nèi)容。
-a or --append
配合 -o 使用,會(huì)將結(jié)果寫到檔案的末端,而不會(huì)覆蓋掉原來的內(nèi)容。
-f FORMAT or --format=FORMAT
以 FORMAT 字串設(shè)定顯示方式。當(dāng)這個(gè)選項(xiàng)沒有被設(shè)定的時(shí)候,會(huì)用系統(tǒng)預(yù)設(shè)的格式。不過你可以用環(huán)境變數(shù) time 來設(shè)定這個(gè)格式,如此一來就不必每次登入系統(tǒng)都要設(shè)定一次。
一般設(shè)定上,你可以用
\t
表示跳欄,或者是用
\n
表示換行。每一項(xiàng)資料要用 % 做為前導(dǎo)。如果要在字串中使用百分比符號(hào),就用.(學(xué)過C語(yǔ)言的人大概會(huì)覺得很熟悉)
time 指令可以顯示的資源有四大項(xiàng),分別是:
Time resources
Memory resources
IO resources
Command info
詳細(xì)的內(nèi)容如下:
Time Resources
E 執(zhí)行指令所花費(fèi)的時(shí)間,格式是:[hour]:minute:second。請(qǐng)注意這個(gè)數(shù)字并不代表實(shí)際的 CPU 時(shí)間。
e 執(zhí)行指令所花費(fèi)的時(shí)間,單位是秒。請(qǐng)注意這個(gè)數(shù)字并不代表實(shí)際的 CPU 時(shí)間。
S 指令執(zhí)行時(shí)在核心模式(kernel mode)所花費(fèi)的時(shí)間,單位是秒。
U 指令執(zhí)行時(shí)在使用者模式(user mode)所花費(fèi)的時(shí)間,單位是秒。
P 執(zhí)行指令時(shí) CPU 的占用比例。其實(shí)這個(gè)數(shù)字就是核心模式加上使用者模式的 CPU 時(shí)間除以總時(shí)間。
Memory Resources
M 執(zhí)行時(shí)所占用的實(shí)體記憶體的最大值。單位是 KB
t 執(zhí)行時(shí)所占用的實(shí)體記憶體的平均值,單位是 KB
K 執(zhí)行程序所占用的記憶體總量(stack+data+text)的平均大小,單位是 KB
D 執(zhí)行程序的自有資料區(qū)(unshared data area)的平均大小,單位是 KB
p 執(zhí)行程序的自有堆疊(unshared stack)的平均大小,單位是 KB
X 執(zhí)行程序間共享內(nèi)容(shared text)的平均值,單位是 KB
Z 系統(tǒng)記憶體頁(yè)的大小,單位是 byte。對(duì)同一個(gè)系統(tǒng)來說這是個(gè)常數(shù)
IO Resources
F 此程序的主要記憶體頁(yè)錯(cuò)誤發(fā)生次數(shù)。所謂的主要記憶體頁(yè)錯(cuò)誤是指某一記憶體頁(yè)已經(jīng)置換到置換檔(swap file)中,而且已經(jīng)分配給其他程序。此時(shí)該頁(yè)的內(nèi)容必須從置換檔里再讀出來。
R 此程序的次要記憶體頁(yè)錯(cuò)誤發(fā)生次數(shù)。所謂的次要記憶體頁(yè)錯(cuò)誤是指某一記憶體頁(yè)雖然已經(jīng)置換到置換檔中,但尚未分配給其他程序。此時(shí)該頁(yè)的內(nèi)容并未被破壞,不必從置換檔里讀出來
W 此程序被交換到置換檔的次數(shù)
c 此程序被強(qiáng)迫中斷(像是分配到的 CPU 時(shí)間耗盡)的次數(shù)
w 此程序自愿中斷(像是在等待某一個(gè) I/O 執(zhí)行完畢,像是磁碟讀取等等)的次數(shù)
I 此程序所輸入的檔案數(shù)
O 此程序所輸出的檔案數(shù)
r 此程序所收到的 Socket Message
s 此程序所送出的 Socket Message
k 此程序所收到的信號(hào) ( Signal )數(shù)量
Command Info
C 執(zhí)行時(shí)的參數(shù)以及指令名稱
x 指令的結(jié)束代碼 ( Exit Status )
-p or --portability
這個(gè)選項(xiàng)會(huì)自動(dòng)把顯示格式設(shè)定成為:
real %e
user %U
sys %S
這么做的目的是為了與 POSIX 規(guī)格相容。
-v or --verbose
這個(gè)選項(xiàng)會(huì)把所有程式中用到的資源通通列出來,不但如一般英文語(yǔ)句,還有說明。對(duì)不想花時(shí)間去熟習(xí)格式設(shè)定或是剛剛開始接觸這個(gè)指令的人相當(dāng)有用。
范例:
利用下面的指令
time -v ps -aux
我們可以獲得執(zhí)行 ps -aux 的結(jié)果和所花費(fèi)的系統(tǒng)資源。如下面所列的資料:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.4 1096 472 ? S Apr19 0:04 init
root 2 0.0 0.0 0 0 ? SW Apr19 0:00 [kflushd]
root 3 0.0 0.0 0 0 ? SW Apr19 0:00 [kpiod]
......
root 24269 0.0 1.0 2692 996 pts/3 R 12:16 0:00 ps -aux
Command being timed: "ps -aux"
User time (seconds): 0.05
System time (seconds): 0.06
Percent of CPU this job got: 68%
Elapsed (wall clock) time (h:mm:ss or m:ss): 0:00.16
Average shared text size (kbytes): 0
Average unshared data size (kbytes): 0
Average stack size (kbytes): 0
Average total size (kbytes): 0
Maximum resident set size (kbytes): 0
Average resident set size (kbytes): 0
Major (requiring I/O) page faults: 238
Minor (reclaiming a frame) page faults: 46
Voluntary context switches: 0
Involuntary context switches: 0
Swaps: 0
File system inputs: 0
File system outputs: 0
Socket messages sent: 0
Socket messages received: 0
Signals delivered: 0
Page size (bytes): 4096
Exit status: 0
使用權(quán)限: 所有使用者
使用方式: uptime [-V]
說明: uptime 提供使用者下面的資訊,不需其他參數(shù):
現(xiàn)在的時(shí)間
系統(tǒng)開機(jī)運(yùn)轉(zhuǎn)到現(xiàn)在經(jīng)過的時(shí)間
連線的使用者數(shù)量
最近一分鐘,五分鐘和十五分鐘的系統(tǒng)負(fù)載
參數(shù): -V 顯示版本資訊。
范例: uptime
其結(jié)果為:
10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
看了“linux系統(tǒng)命令使用詳解”還想看: