Linux指令大全
1.cat
使用權限:所有使用者
使用方式:cat [-AbeEnstTuv] [--help] [--version] fileName
說明:把檔案串連接后傳到基本輸出(螢幕或加> fileName到另一個檔案)
參數:
-n或--number由1開始對所有輸出的行數編號
-b或--number-nonblank和-n相似,只不過對于空白行不編號
-s或--squeeze-blank當遇到有連續兩行以上的空白行,就代換為一行的空白行
-v或--show-nonprinting
范例:
cat -n textfile1 > textfile2把textfile1的檔案內容加上行號后輸入textfile2這個檔案里
cat -b textfile1 textfile2 >> textfile3把textfile1和textfile2的檔案內容加上行號(空白行不加)之后將內容附加到textfile3
2.head顯示文件頭
3.du報告磁盤使用空間
du[選項][目錄或文件]
-a顯示每一個文件的磁盤使用量
-s僅顯示匯總的使用量
-k報告結果以k字節為單位
4.df[選項][資源](報告磁盤剩余空間)
-l本地文件系統
-k報告磁盤空間,以k為單位
5.which報告命令位置【選項】【命令】
6.tail顯示文件尾
7.mv移動文件或者改名
mv src_file _list dst_file
8.touch創建一個不存在的文件
9.tar打包:
tar cvf文件名待打包目錄解包:tarxvf文件名查看:tar tvf文件名查看打包文件的內容
10.Gzip壓縮:
gzip –c文件名>文件名.gz解壓縮:gzip –d xxx
11.
nohup當終端退出后,由該終端啟動的后臺程序也會自動退出,如果不讓退出,可以用nohup命令,nohupfind . –name abc –print>newtext&
12.cd
使用權限:所有使用者
使用方式: cd [dirName]
說明:變換工作目錄至dirName。其中dirName表示法可為絕對路徑或相對路徑。若目錄名稱省略,則變換至使用者的home directory (也就是剛login時所在的目錄)。另外,"~"也表示為home
directory的意思,"."則是表示目前所在的目錄,".."則表示目前目錄位置的上一層目錄。范例:跳到/usr/bin/ :
cd /usr/bin
跳到自己的home directory :
cd ~
跳到目前目錄的上上兩層:
cd ../..
13.
bc計算器輸入命令bc后進行計算,按回車出結果ctrl+d退出(+ - * / %“^”)加、減、乘、除、求模、乘方運算
14.
finger顯示用戶信息finger root
15.
who am I【查看使用者自己的用戶信息】
who【查看正在使用unix的用戶】
16.
chmod
使用權限:所有使用者使用方式: chmod [-cfvR] [--help] [--version] mode file...
說明: Linux/Unix的檔案存取權限分為三級:檔案擁有者、群組、其他。利用chmod可以藉以控制檔案如何被他人所存取。
mode :權限設定字串,格式如下: [ugoa...][[+-=][rwxX]...][,...],其中u表示該檔案的擁有者,g表示與該檔案的擁有者屬于同一個群體(group)者,o表示其他以外的人,a表示這三者皆是。
+表示增加權限、-表示取消權限、=表示唯一設定權限。
r表示可讀取,w表示可寫入,x表示可執行,X表示只有當該檔案是個子目錄或者該檔案已經被設定過為可執行。
-c :若該檔案權限確實已經更改,才顯示其更改動作
-f :若該檔案權限無法被更改也不要顯示錯誤訊息
-v :顯示權限變更的詳細資料
-R :對目前目錄下的所有檔案與子目錄進行相同的權限變更(即以遞回的方式逐個變更)
--help :顯示輔助說明
--version :顯示版本范例:將檔案file1.txt設為所有人皆可讀取:
chmod ugo+r file1.txt
將檔案file1.txt設為所有人皆可讀取:
chmod a+r file1.txt
將檔案file1.txt與file2.txt設為該檔案擁有者,與其所屬同一個群體者可寫入,但其他以外的人則不可寫入:
chmod ug+w,o-w file1.txt file2.txt
將ex1.py設定為只有該檔案擁有者可以執行:
chmod u+x ex1.py
將目前目錄下的所有檔案與子目錄皆設為任何人可讀取:
chmod -R a+r *
此外chmod也可以用數字來表示權限如chmod 777file
語法為:chmod abc file
其中a,b,c各為一個數字,分別表示User、Group、及Other的權限。
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的權限
17.
chown
使用權限: root
使用方式: chmod [-cfhvR] [--help] [--version] user[:group] file...
說明: Linux/Unix是多人多工作業系統,所有的檔案皆有擁有者。利用chown可以將檔案的擁有者加以改變。一般來說,這個指令只有是由系統管理者(root)所使用,一般使用者沒有權限可以改變別人的檔案擁有者,也沒有權限可以自己的檔案擁有者改設為別人。只有系統管理者(root)才有這樣的權限。
user :新的檔案擁有者的使用者IDgroup :新的檔案擁有者的使用者群體(group)-c :若該檔案擁有者確實已經更改,才顯示其更改動作-f :若該檔案擁有者無法被更改也不要顯示錯誤訊息-h :只對于連結(link)進行變更,而非該link真正指向的檔案-v :顯示擁有者變更的詳細資料-R :對目前目錄下的所有檔案與子目錄進行相同的擁有者變更(即以遞回的方式逐個變更)--help :顯示輔助說明--version :顯示版本范例:
將檔案file1.txt的擁有者設為users群體的使用者jessie :
chown jessie:users file1.txt
將目前目錄下的所有檔案與子目錄的擁有者皆設為users群體的使用者lamport :
chmod -R lamport:users *
18.
cp
使用權限:所有使用者使用方式:
cp [options] source dest
cp [options] source... directory說明:將一個檔案拷貝至另一檔案,或將數個檔案拷貝至另一目錄。
-a盡可能將檔案狀態、權限等資料都照原狀予以復制。
-r若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝至目的地。
-f若目的地已經有相同檔名的檔案存在,則在復制前先予以刪除再行復制。
范例:
將檔案aaa復制(已存在),并命名為bbb :
cp aaa bbb
將所有的C語言程式拷貝至Finished子目錄中:
cp *.c Finished
19.
cut
使用權限:所有使用者用法:cut -cnum1-num2 filename
說明:顯示每行從開頭算起num1到num2的文字。范例:
shell>> cat example
test2
this is test1
shell>> cut -c0-6 example ## print開頭算起前6個字元
test2
this i
20.
less
使用權限:所有使用者使用方式:
less [Option] filename
說明:
less的作用與more十分相似,都可以用來瀏覽文字檔案的內容,不同的是less允許使用者往回卷動
以瀏覽已經看過的部份,同時因為less并未在一開始就讀入整個檔案,因此在遇上大型檔案的開啟時,會比一般的文書編輯器(如vi)來的快速。范例:
21.
ln
使用權限:所有使用者使用方式: ln [options] source dist,其中option的格式為:
[-bdfinsvF] [-S backup-suffix] [-V {numbered,existing,simple}]
[--help] [--version] [--]
說明: Linux/Unix檔案系統中,有所謂的連結(link),我們可以將其視為檔案的別名,而連結又可分為兩種:硬連結(hard link)與軟連結(symbolic link),硬連結的意思是一個檔案可以有多個名稱,而軟連結的方式則是產生一個特殊的檔案,該檔案的內容是指向另一個檔案的位置。硬連結是存在同一個檔案系統中,而軟連結卻可以跨越不同的檔案系統。
ln source dist是產生一個連結(dist)到source,至于使用硬連結或軟鏈結則由參數決定。不論是硬連結或軟鏈結都不會將原本的檔案復制一份,只會占用非常少量的磁碟空間。
-f :鏈結時先將與dist同檔名的檔案刪除-d :允許系統管理者硬鏈結自己的目錄-i :在刪除與dist同檔名的檔案時先進行詢問-n :在進行軟連結時,將dist視為一般的檔案-s :進行軟鏈結(symbolic link)-v :在連結之前顯示其檔名-b :將在鏈結時會被覆寫或刪除的檔案進行備份-S SUFFIX :將備份的檔案都加上SUFFIX的字尾-V METHOD :指定備份的方式--help :顯示輔助說明--version :顯示版本
范例:
將檔案yy產生一個symbolic link : zz
ln -s yy zz
將檔案yy產生一個hard link : zz
ln yy xx
22.
locate
使用權限:所有使用者
使用方式:locate [-q] [-d ] [--database=]
locate [-r ] [--regexp=]
locate [-qv] [-o ] [--output=]
locate [-e ] [-f ] <[-l ] [-c]
<[-U ] [-u]>
locate [-Vh] [--version] [--help]
說明:
locate讓使用者可以很快速的搜尋檔案系統內是否有指定的檔案。其方法是先建立一個包括系統內所有檔案名稱及路徑的資料庫,之后當尋找時就只需查詢這個資料庫,而不必實際深入檔案系統之中了。在一般的distribution之中,資料庫的建立都被放在contab中自動執行。一般使用者在使用時只要用
# locate your_file_name
的型式就可以了。參數:
-u
-U建立資料庫,-u會由根目錄開始,-U則可以指定開始的位置。
-e將排除在尋找的范圍之外。
-l如果是1.則啟動安全模式。在安全模式下,使用者不會看到權限無法看到的檔案。這會始速度減慢,因為locate必須至實際的檔案系統中取得檔案的權限資料。
-f將特定的檔案系統排除在外,例如我們沒有到理要把proc檔案系統中的檔案放在資料庫中。
-q安靜模式,不會顯示任何錯誤訊息。\
-n至多顯示個輸出。
-r使用正規運算式做尋找的條件。
-o指定資料庫存的名稱。
-d指定資料庫的路徑
-h顯示輔助訊息
-v顯示更多的訊息
-V
顯示程式的版本訊息范例:
locate chdrv :尋找所有叫chdrv的檔案
locate -n 100 a.out :尋找所有叫a.out的檔案,但最多只顯示100個
locate -u :建立資料庫
23.:
?ls
使用權限:所有使用者使用方式: ls [-alrtAFR] [name...]
說明:顯示指定工作目錄下之內容(列出目前工作目錄所含之檔案及子目錄)。
-a顯示所有檔案及目錄(ls內定將檔案名或目錄名稱開頭為"."的視為隱藏檔,不會列出)
-l除檔案名稱外,亦將檔案型態、權限、擁有者、檔案大小等資訊詳細列出
-r將檔案以相反次序顯示(原定依英文字母次序)
-t將檔案依建立時間之先后次序列出
-A同-a,但不列出"." (目前目錄)及".." (父目錄)
-F在列出的檔案名稱后加一符號;例如可執行檔則加"*",目錄則加"/"
-R若目錄下有檔案,則以下之檔案亦皆依序列出范例:
列出目前工作目錄下所有名稱是s開頭的檔案,愈新的排愈后面:
ls -ltr s*
將/bin目錄以下所有目錄及檔案詳細資料列出:
ls -lR /bin
列出目前工作目錄下所有檔案及目錄;目錄于名稱后加"/",可執行檔于名稱后加"*" :
ls -AF
24.
more
使用權限:所有使用者
使用方式:more [-dlfpcsu] [-num] [+/pattern] [+linenum] [fileNames..]
說明:類似cat,不過會以一頁一頁的顯示方便使用者逐頁閱讀,而最基本的指令就是按空白鍵(space)就往下一頁顯示,按b鍵就會往回(back)一頁顯示,而且還有搜尋字串的功能(與vi相似),使用中的說明文件,請按h。
參數:-num一次顯示的行數
-d提示使用者,在畫面下方顯示[Press space to continue, q to quit.],如果使用者按錯鍵,則會顯示[Press h for instructions.]而不是嗶聲
-l取消遇見特殊字元^L(送紙字元)時會暫停的功能
-f計算行數時,以實際上的行數,而非自動換行過后的行數(有些單行字數太長的會被擴展為兩行或兩行以上)
-p不以卷動的方式顯示每一頁,而是先清除螢幕后再顯示內容
-c跟-p相似,不同的是先顯示內容再清除其他舊資料
-s當遇到有連續兩行以上的空白行,就代換為一行的空白行
-u不顯示下引號(根據環境變數TERM指定的terminal而有所不同)
+/在每個檔案顯示前搜尋該字串(pattern),然后從該字串之后開始顯示
+num從第num行開始顯示
fileNames欲顯示內容的檔案,可為復數個數
范例:
more -s testfile逐頁顯示testfile之檔案內容,如有連續兩行以上空白行則以一行空白行顯示。
more +20 testfile從第20行開始顯示testfile之檔案內容
25.
名稱:mv
使用權限:所有使用者使用方式:
mv [options] source dest
mv [options] source... directory說明:將一個檔案移至另一檔案,或將數個檔案移至另一目錄。參數:-i若目的地已有同名檔案,則先詢問是否覆蓋舊檔。
-f:禁止交互操作。mv操作要覆蓋某個已有的目標文件時不給任何指示,指定此參數后i參數將不再起作用。
范例:將檔案aaa更名為bbb :
mv aaa bbb
將所有的C語言程式移至Finished子目錄中:
mv -i *.c
26.
:rm
使用權限:所有使用者使用方式:rm [options] name...
說明:刪除檔案及目錄。把計
-i刪除前逐一詢問確認。
-f即使原檔案屬性設為唯讀,亦直接刪除,無需逐一確認。
-r將目錄及以下之檔案亦逐一刪除。
范例:
刪除所有C語言程式檔;刪除前逐一詢問確認:
rm -i *.c
將Finished子目錄及子目錄中所有檔案刪除:
rm -r Finished
rm file*
27
.rmdir
使用權限:于目前目錄有適當權限的所有使用者使用方式:rmdir [-p] [-r]dirName
說明:刪除空的目錄。參數:-p是當子目錄被刪除后使它也成為空目錄的話,則順便一并刪除。
-r目錄是非空的時候刪除
范例:將工作目錄下,名為AAA的子目錄刪除:
rmdir AAA
在工作目錄下的BBB目錄中,刪除名為Test的子目錄。若Test刪除后,BBB目錄成為空目錄,則BBB亦予刪除。
rmdir -p BBB/Test
名稱:split
使用權限:所有使用者使用方式:split [OPTION] [INPUT [PREFIX]]
說明:將一個檔案分割成數個。而從INPUT分割輸出成固定大小的檔案,其檔名依序為PREFIXaa,
PREFIXab...;PREFIX預設值為`x。若沒有INPUT檔或為`-,則從標準輸入讀進資料。
-b, --bytes=SIZE
SIZE值為每一輸出檔案的大小,單位為byte。
-C, --line-bytes=SIZE
每一輸出檔中,單行的最大byte數。
-l, --lines=NUMBER
NUMBER值為每一輸出檔的列數大小。
-NUMBER
與-l NUMBER相同。
--verbose
于每個輸出檔被開啟前,列印出偵錯資訊到標準錯誤輸出。
--help
顯示輔助資訊然后離開。
--version
列出版本資訊然后離開。
SIZE可加入單位: b代表512,k代表1K,m代表1 Meg。范例:
PostgresSQL大型資料庫備份與回存:因Postgres允許表格大過你系統檔案的最大容量,所以要將表格dump到單一的檔案可能會有問題,使用split進行檔案分割。
% pg_dump dbname | split -b 1m - filename.dump.重新載入
% createdb dbname
% cat filename.dump.* | pgsql dbname
28.
名稱:touch
使用權限:所有使用者使用方式:
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指令改變檔案的時間記錄。ls -l可以顯示檔案的時間記錄。參數:
a改變檔案的讀取時間記錄。
m改變檔案的修改時間記錄。
c假如目的檔案不存在,不會建立新的檔案。與--no-create的效果一樣。
f不使用,是為了與其他unix系統的相容性而保留。
r使用參考檔的時間記錄,與--file的效果一樣。
d設定時間與日期,可以使用各種不同的格式。
t設定檔案的時間記錄,格式與date指令相同。
--no-create不會建立新檔案。
--help列出指令格式。
--version列出版本訊息。范例:最簡單的使用方式,將檔案的時候記錄改為現在的時間。若檔案不存在,系統會建立一個新的檔案。
touch file
touch file1 file2將file的時間記錄改為5月6日18點3分,公元兩千年。時間的格式可以參考date指令,至少需輸入MMDDHHmm,就是月日時與分。
touch -c -t 05061803 file
touch -c -t 050618032000 file將file的時間記錄改變成與referencefile一樣。
touch -r referencefile file
將file的時間記錄改成5月6日18點3分,公元兩千年。時間可以使用am, pm或是24小時的格式,日期可以使用其他格式如6 May 2000。
touch -d "6:03pm" file
touch -d "05/06/2000" file
touch -d "6:03pm 05/06/2000" file
29.
名稱: at
使用權限:所有使用者
使用方式: at -V [-q
queue] [-f file] [-mldbv] TIME
說明: at可以讓使用者指定在TIME這個特定時刻執行某個程式或指令,TIME的格式是HH:MM其中的HH為小時,MM為分鐘,甚至你也可以指定am, pm, midnight, noon, teatime(就是下午4點鍾)等口語詞。
如果想要指定超過一天內的時間,則可以用MMDDYY或者MM/DD/YY的格式,其中MM是分鐘,DD是第幾日,YY是指年份。另外,使用者甚至也可以使用像是now +時間間隔來彈性指定時間,其中的時間間隔可以是minutes, hours, days, weeks
另外,使用者也可指定today或tomorrow來表示今天或明天。當指定了時間并按下enter之后,at會進入交談模式并要求輸入指令或程式,當你輸入完后按下ctrl+D即可完成所有動作,至于執行的結果將會寄回你的帳號中。
-V :印出版本編號
-q :使用指定的佇列(Queue)來儲存,at的資料是存放在所謂的queue中,使用者可以同時使用多個queue,而queue的編號為a, b, c... z以及A, B, ... Z共52個
-m :即使程式/指令執行完成后沒有輸出結果,也要寄封信給使用者
-f file :讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案后再一次讀入
-l :列出所有的指定(使用者也可以直接使用atq而不用at -l)
-d :刪除指定(使用者也可以直接使用atrm而不用at -d)
-v :列出所有已經完成但尚未刪除的指定例子:
三天后的下午5點鍾執行/bin/ls :
at 5pm + 3 days /bin/ls
三個星期后的下午5點鍾執行/bin/ls :
at 5pm + 2 weeks /bin/ls
明天的17:20執行/bin/date :
at 17:20 tomorrow /bin/date
1999年的最后一天的最后一分鐘印出the end of world !
at 23:59 12/31/1999 echo the end of world !
30.
名稱:cal
使用權限:所有使用者使用方式:cal[-mjy] [month [year]]
說明:
顯示日歷。若只有一個參數,則代表年份(1-9999),顯示該年的年歷。年份必須全部寫出:``cal 89將不會是顯示1989年的年歷。使用兩個參數,則表示月份及年份。若沒有參數則顯示這個月的月歷。
1752年9月第3日起改用西洋新歷,因這時大部份的國家都采用新歷,有10天被去除,所以該月份的月歷有些不同。在此之前為西洋舊歷。
-m :以星期一為每周的第一天方式顯示。
-j :以凱撒歷顯示,即以一月一日起的天數顯示。
-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年年歷。
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 :以一月一日起的天數顯示今年的年歷。
[root@mylinux /root]# cal –jy
31.名稱: crontab
使用權限:所有使用者使用方式:
crontab [ -u user ] filecrontab [ -u user ] { -l | -r | -e }
說明:
crontab是用來讓使用者在固定時間或固定間隔執行程式之用,換句話說,也就是類似使用者的時程表。-u user是指設定指定user的時程表,這個前提是你必須要有其權限(比如說是root)才能夠指定他人的時程表。如果不使用-u user的話,就是表示設定自己的時程表。餐數:
-e :執行文字編輯器來設定時程表,內定的文字編輯器是VI,如果你想用別的文字編輯器,則請先設定VISUAL環境變數來指定使用那個文字編輯器(比如說setenv VISUAL joe)
-r :刪除目前的時程表
-l :列出目前的時程表
時程表的格式如下:
f1 f2 f3 f4 f5 program
其中f1是表示分鐘,f2表示小時,f3表示一個月份中的第幾日,f4表示月份,f5表示一個星期中的第幾天。program表示要執行的程式。
當f1為*時表示每分鐘都要執行program,f2為*時表示每小時都要執行程式,其余類推
當f1為a-b時表示從第a分鐘到第b分鐘這段時間內要執行,f2為a-b時表示從第a到第b小時都要執行,其余類推
當f1為*/n時表示每n分鐘個時間間隔執行一次,f2為*/n表示每n小時個時間間隔執行一次,其余類推
當f1為a,
b, c,...時表示第a, b, c,...分鐘要執行,f2為a, b, c,...時表示第a,
b, c...個小時要執行,其余類推使用者也可以將所有的設定先存放在檔案file中,用crontab file的方式來設定時程表。
例子:
每月每天每小時的第0分鐘執行一次/bin/ls :
0 7 * * * /bin/ls
在12月內,每天的早上6點到12點中,每隔20分鐘執行一次/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點20分, 2點20分, 4點20分....執行echo "haha"
20 0-23/2 * * * echo "haha"
注意:
當程式在你所指定的時間執行后,系統會寄一封信給你,顯示該程式執行的內容,若是你不希望收到這樣的信,請在每一行空一格之后加上> /dev/null
2>&1即可
32.名稱: date
使用權限:所有使用者使用方式:
date [-u] [-d datestr] [-s datestr] [--utc] [--universal] [--date=datestr][--set=datestr] [--help] [--version] [+FORMAT] [MMDDhhmm[[CC]YY][.ss]]
說明:
date可以用來顯示或設定系統的日期與時間,在顯示方面,使用者可以設定欲顯示的格式,格式設定為一個加號后接數個標記,其中可用的標記列表如下:
時間方面:
% :印出%
%n :下一行
%t :跳格
%H :小時(00..23)
%I :小時(01..12)
%k :小時(0..23)
%l :小時(1..12)
%M :分鐘(00..59)
%p :顯示本地AM或PM
%r :直接顯示時間(12小時制,格式為hh:mm:ss [AP]M)
%s :從1970年1月1日00:00:00 UTC到目前為止的秒數
%S :秒(00..61)
%T :直接顯示時間(24小時制)
%X :相當于%H:%M:%S
%Z :顯示時區日期方面:
%a :星期幾(Sun..Sat)
%A :星期幾(Sunday..Saturday)
%b :月份(Jan..Dec)
%B :月份(January..December)
%c :直接顯示日期與時間%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 :年份的最后兩位數字(00.99)
%Y :完整年份(0000..9999)
若是不以加號作為開頭,則表示要設定時間,而時間格式為MMDDhhmm[[CC]YY][.ss],其中MM為月份,DD為日,hh為小時,mm為分鐘,CC為年份前兩位數字,YY為年份后兩位數字,ss為秒數
把計:
-d datestr :顯示datestr中所設定的時間(非系統時間)
--help :顯示輔助訊息
-s datestr :將系統時間設為datestr中所設定的時間
-u :顯示目前的格林威治時間
--version :顯示版本編號例子:
顯示時間后跳行,再顯示目前日期:
date +%T%n%D
顯示月份與日數:
date +%B %d
顯示日期與設定時間(12:34:56) :
date --date 12:34:56
注意:當你不希望出現無意義的0時(比如說1999/03/07),則可以在標記中插入-符號,比如說date +%-H:%-M:%-S會把時分秒中無意義的0給去掉,像是原本的08:09:04會變為8:9:4。另外,只有取得權限者(比如說root)才能設定系統時間。當你以root身分更改了系統時間之后,請記得以clock -w來將系統時間寫入CMOS中,這樣下次重新開機時系統時間才會持續抱持最新的正確值。
名稱: sleep
使用權限:所有使用者使用方式:sleep [--help] [--version] number[smhd]
說明:
sleep可以用來將目前動作延遲一段時間參數說明:
--help :顯示輔助訊息
--version :顯示版本編號
number :時間長度,后面可接s、m、h或d
其中s為秒,m為分鐘,h為小時,d為日數例子:顯示目前時間后延遲1分鐘,之后再次顯示時間:
date;sleep 1m;date
33.名稱:time
使用權限:所有使用者使用方式:time [options] COMMAND [arguments]
說明:time指令的用途,在于量測特定指令執行時所需消耗的時間及系統資源等資訊。例如CPU時間、記憶體、輸入輸出等等。需要特別注意的是,部分資訊在Linux上顯示不出來。這是因為在Linux上部分資源的分配函式與time指令所預設的方式并不相同,以致于time指令無法取得這些資料。
-o or --output=FILE
設定結果輸出檔。這個選項會將time的輸出寫入所指定的檔案中。如果檔案已經存在,系統將覆寫其內容。
-a or --append
配合-o使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容。
-f FORMAT or --format=FORMAT
以FORMAT字串設定顯示方式。當這個選項沒有被設定的時候,會用系統預設的格式。不過你可以用環境變數time來設定這個格式,如此一來就不必每次登入系統都要設定一次。
一般設定上,你可以用t表示跳欄,或者是用n表示換行。每一項資料要用%做為前導。如果要在字串中使用百分比符號,就用。(學過C語言的人大概會覺得很熟悉)
time指令可以顯示的資源有四大項,分別是:
Time resources
Memory resources
IO resources
Command info詳細的內容如下:
Time Resources
E執行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數字并不代表實際的CPU時間
e執行指令所花費的時間,單位是秒。請注意這個數字并不代表實際的CPU時間。
S指令執行時在核心模式(kernel mode)所花費的時間,單位是秒。
U指令執行時在使用者模式(user mode)所花費的時間,單位是秒。
P執行指令時CPU的占用比例。其實這個數字就是核心模式加上使用者模式的CPU時間除以總時間。
Memory Resources
M執行時所占用的實體記憶體的最大值。單位是KB
t執行時所占用的實體記憶體的平均值,單位是KB
K執行程序所占用的記憶體總量(stack+data+text)的平均大小,單位是KB
D執行程序的自有資料區(unshared data area)的平均大小,單位是KB
p執行程序的自有堆疊(unshared stack)的平均大小,單位是KB
X執行程序間共享內容(shared text)的平均值,單位是KB
Z系統記憶體頁的大小,單位是byte。對同一個系統來說這是個常數
IO Resources
F此程序的主要記憶體頁錯誤發生次數。所謂的主要記憶體頁錯誤是指某一記憶體頁已經置換到置換檔(swap file)中,而且已經分配給其他程序。此時該頁的內容必須從置換檔里再讀出來。
R此程序的次要記憶體頁錯誤發生次數。所謂的次要記憶體頁錯誤是指某一記憶體頁雖然已經置換到置換檔中,但尚未分配給其他程序。此時該頁的內容并未被破壞,不必從置換檔里讀出來
W此程序被交換到置換檔的次數
c此程序被強迫中斷(像是分配到的CPU時間耗盡)的次數
w此程序自愿中斷(像是在等待某一個I/O執行完畢,像是磁碟讀取等等)的次數
I此程序所輸入的檔案數
O此程序所輸出的檔案數
r此程序所收到的Socket Message
s此程序所送出的Socket Message
k此程序所收到的信號( Signal )數量
Command Info
C執行時的參數以及指令名稱
x指令的結束代碼( Exit Status )
-p or --portability
這個選項會自動把顯示格式設定成為:
real %e
user %U
sys %S
這么做的目的是為了與POSIX規格相容。
-v or --verbose
這個選項會把所有程式中用到的資源通通列出來,不但如一般英文語句,還有說明。對不想花時間去熟習格式設定或是剛剛開始接觸這個指令的人相當有用。范例:
利用下面的指令
time -v ps -aux
我們可以獲得執行ps -aux的結果和所花費的系統資源。如下面所列的資料:
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
34.名稱:uptime
使用權限:所有使用者
使用方式:uptime [-V]
說明:uptime提供使用者下面的資訊,不需其他參數:現在的時間
系統開機運轉到現在經過的時間
連線的使用者數量
最近一分鐘,五分鐘和十五分鐘的系統負載
參數:-V顯示版本資訊。
范例:uptime
其結果為:
10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99
35.名稱:chfn
使用權限:所有使用者用法:shell>>chfn
說明:提供使用者更改個人資訊,用于finger and mail username
范例:
shell>> chfn
Changing finger information for user
Password: [del]
Name[]:Johnney Huang ###提供finger時的資料
Office[]:NCCU
Office Phone[]: [del]
Home Phone[]: [del]
36.:chsh
使用權限:所有使用者用法:shell>>chsh
說明:更改使用者shell設定范例:
shell>> chsh
Changing fihanging shell for user1
Password: [del]
New shell [/bin/tcsh]: ### [是目前使用的shell]
[del]
shell>> chsh -l ###展示/etc/shells檔案內容
/bin/bash
/bin/sh
/bin/ash
/bin/bsh
/bin/tcsh
/bin/csh
” finger [返回]
37.
finger
使用權限:所有使用者使用方式:finger[options] user[@address]
說明:finger可以讓使用者查詢一些其他使用者的資料。會列出來的資料有:
Login Name
User Name
Home directory
Shell
Login status
mail status
.plan
.project
.forward其中.plan,.project和.forward就是使用者在他的Home Directory里的.plan,.project和.forward等檔案里的資料。如果沒有就沒有。finger指令并不限定于在同一伺服器上查詢,也可以尋找某一個遠端伺服器上的使用者。只要給一個像是E-mail address一般的地址即可。-l多行顯示。
-s單行顯示。這個選項只顯示登入名稱,真實姓名,終端機名稱,閑置時間,登入時間,辦公室號碼及電話號碼。如果所查詢的使用者是遠端伺服器的使用者,這個選項無效。范例:下列指令可以查詢本機管理員的資料:
finger root
其結果如下:
Login: root Name: root
Directory: /root Shell: /bin/bash
Never logged in.
No mail.
No Plan.
38.last使用權限:所有使用者使用方式:shell>>last [options]
說明:顯示系統開機以來獲是從每月初登入者的訊息
-R省略hostname的欄位
-num展示前num個
username展示username的登入訊息
tty限制登入訊息包含終端機代號范例:
shell>> last -R -2
johnney pts/1 Mon Aug 14 20:42 still logged in
johnney pts/0 Mon Aug 14 19:59 still logged in
wtmp begins Tue Aug 1 09:01:10 2000 ### /var/log/wtmp
shell>> last -2 minery \
minery pts/0 140.119.217.115 Mon Aug 14 18:37 - 18:40 (00:03)
minery pts/0 140.119.217.115 Mon Aug 14 17:22 - 17:24 (00:02)
39.
passwd
使用權限:所有使用者使用方式:passwd[-k] [-l] [-u [-f]] [-d] [-S] [username]
說明:用來更改使用者的密碼參數:
-k-l-u-f
-d關閉使用者的密碼認證功能,使用者在登入時將可以不用輸入密碼,只有具備root權限的使用者方可使用.
-S顯示指定使用者的密碼認證種類,只有具備root權限的使用者方可使用.
[username]指定帳號名稱.
40.
file
1.作用file通過探測文件內容判斷文件類型,使用權限是所有用戶。
2.格式file [options]文件名
3.[options]主要參數
-v:在標準輸出后顯示版本信息,并且退出。
-z:探測壓縮過的文件類型。
-L:允許符合連接。
-f name:從文件namefile中讀取要分析的文件名列表。
4.簡單說明
使用file命令可以知道某個文件究竟是二進制(ELF格式)的可執行文件,還是Shell Script文件,或者是其它的什么格式。file能識別的文件類型有目錄、Shell腳本、英文文本、二進制可執行文件、C語言源文件、文本文件、DOS的可執行文件。
5.應用實例
如果我們看到一個沒有后綴的文件grap,可以使用下面命令:
$ file grap
grap:English text
此時系統顯示這是一個英文文本文件。需要說明的是,file命令不能探測包括圖形、音頻、視頻等多媒體文件類型。
41.
mkdir
1.作用
mkdir命令的作用是建立名稱為dirname的子目錄,與MS DOS下的md命令類似,它的使用權限是所有用戶。
2.格式
mkdir
[options]目錄名
3.[options]主要參數
-m,--mode=模式:設定權限<模式>,與chmod類似。
-p,--parents:需要時創建上層目錄;如果目錄早已存在,則不當作錯誤。
-v,--verbose:每次創建新目錄都顯示信息。
--version:顯示版本信息后離開。
4.應用實例
在進行目錄創建時可以設置目錄的權限,此時使用的參數是“-m”。假設要創建的目錄名是“tsk”,讓所有用戶都有rwx(即讀、寫、執行的權限),那么可以使用以下命令:
$
mkdir-m 777 tsk
42.
grep
1.作用
grep命令可以指定文件中搜索特定的內容,并將含有這些內容的行標準輸出。grep全稱是Global Regular Expression Print,表示全局正則表達式版本,它的使用權限是所有用戶。
2.格式
grep[options]
[option]:
3.主要參數
[options]主要參數:
-c:只輸出匹配行數。
-I:不區分大小寫(只適用于單字符)。
-h:查詢多文件時不顯示文件名。
-l:查詢多文件時只輸出包含匹配字符的文件名。
-n:顯示匹配行及行號。
-s:不顯示不存在或無匹配文本的錯誤信息。
-v:顯示不包含匹配文本的所有行。
pattern正則表達式主要參數:
\:忽略正則表達式中特殊字符的原有含義。
^:匹配正則表達式的開始行。
$:匹配正則表達式的結束行。
\<:從匹配正則表達式的行開始。
\>:到匹配正則表達式的行結束。
[
]:單個字符,如[A]即A符合要求 。
[
- ]:范圍,如[A-Z],即A、B、C一直到Z都符合要求 。
。:所有的單個字符。
*:有字符,長度可以為0。
正則表達式是Linux/Unix系統中非常重要的概念。正則表達式(也稱為“regex”或“regexp”)是一個可以描述一類字符串的模式(Pattern)。如果一個字符串可以用某個正則表達式來描述,我們就說這個字符和該正則表達式匹配(Match)。這和DOS中用戶可以使用通配符“*”代表任意字符類似。在Linux系統上,正則表達式通常被用來查找文本的模式,以及對文本執行“搜索-替換”操作和其它功能。
4.應用實例
查詢DNS服務是日常工作之一,這意味著要維護覆蓋不同網絡的大量IP地址。有時IP地址會超過2000個。如果要查看nnn.nnn網絡地址,但是卻忘了第二部分中的其余部分,只知到有兩個句點,例如nnn nn..。要抽取其中所有nnn.nnn IP地址,使用[0-9 ]\{3 \}\.[0-0\{3\}\。含義是任意數字出現3次,后跟句點,接著是任意數字出現3次,后跟句點。
$grep
'[0-9 ]\{3 \}\.[0-0\{3\}\' ipfile補充說明,grep家族還包括fgrep和egrep。fgrep是fix grep,允許查找字符串而不是一個模式;egrep是擴展grep,支持基本及擴展的正則表達式,但不支持\q模式范圍的應用及與之相對應的一些更加規范的模式。3.grep命令系統調用
grep是Linux/Unix中使用最廣泛的命令之一,許多Linux系統內部都可以調用它。
(1)如果要查詢目錄列表中的目錄,方法如下:
$ ls -l
| grep '∧d'
(2)如果在一個目錄中查詢不包含目錄的所有文件,方法如下:
$ ls -l
| grep '∧[∧d]'
(3)用find命令調用grep,如所有C源代碼中的“Chinput”,方法如下:
$find /ZhXwin -name *.c -exec grep -q -s Chinput {} \;-print
通常用于過濾查找ps –ef |grepsendmail
43.
dd
1.作用
dd命令用來復制文件,并根據參數將數據轉換和格式化。
2.格式
dd [options]
3.[opitions]主要參數
bs=字節:強迫ibs=<字節>及obs=<字節>。
cbs=字節:每次轉換指定的<字節>。
conv=關鍵字:根據以逗號分隔的關鍵字表示的方式來轉換文件。
count=塊數目:只復制指定<塊數目>的輸入數據。
ibs=字節:每次讀取指定的<字節>。
if=文件:讀取<文件>內容,而非標準輸入的數據。
obs=字節:每次寫入指定的<字節>。
of=文件:將數據寫入<文件>,而不在標準輸出顯示。
seek=塊數目:先略過以obs為單位的指定<塊數目>的輸出數據。
skip=塊數目:先略過以ibs為單位的指定<塊數目>的輸入數據。
4.應用實例
dd命令常常用來制作Linux啟動盤。先找一個可引導內核,令它的根設備指向正確的根分區,然后使用dd命令將其寫入軟盤:
$ rdev vmlinuz /dev/hda
$dd if=vmlinuz of=/dev/fd0
上面代碼說明,使用rdev命令將可引導內核vmlinuz中的根設備指向/dev/hda,請把“hda”換成自己的根分區,接下來用dd命令將該內核寫入軟盤。2.使用dd命令將init.rd格式的root.ram內容導入內存
dd if=/dev/fd0 of=floppy.fd
dd if=root.ram of=/dev/ram0#
44.find
命令查找文件的幾種方法:
(1)根據文件名查找
例如,我們想要查找一個文件名是lilo.conf的文件,可以使用如下命令:
find /-name lilo.conf
find命令后的“/”表示搜索整個硬盤。
(2)快速查找文件
根據文件名查找文件會遇到一個實際問題,就是要花費相當長的一段時間,特別是大型Linux文件系統和大容量硬盤文件放在很深的子目錄中時。如果我們知道了這個文件存放在某個目錄中,那么只要在這個目錄中往下尋找就能節省很多時間。比如smb.conf文件,從它的文件后綴“.conf”可以判斷這是一個配置文件,那么它應該在/etc目錄內,此時可以使用下面命令:
find /etc-name smb.conf
這樣,使用“快速查找文件”方式可以縮短時間。
(3)根據部分文件名查找方法
有時我們知道只某個文件包含有abvd這4個字,那么要查找系統中所有包含有這4個字符的文件可以輸入下面命令:
find /-name '*abvd*'
輸入這個命令以后,Linux系統會將在/目錄中查找所有的包含有abvd這4個字符的文件(其中*是通配符),比如abvdrmyz等符合條件的文件都能顯示出來。
(4)使用混合查找方式查找文件
find命令可以使用混合查找的方法,例如,我們想在/etc目錄中查找大于500000字節,并且在24小時內修改的某個文件,則可以使用-and (與)把兩個查找參數鏈接起來組合成一個混合的查找方式。
find /etc -size +500000c -and -mtime +1
find[path][options][expression]
path指定目錄路徑,系統從這里開始沿著目錄樹向下查找文件。它是一個路徑列表,相互用空格分離,如果不寫path,那么默認為當前目錄。
3.主要參數
[options]參數:
-depth:使用深度級別的查找過程方式,在某層指定目錄中優先查找文件內容。
-maxdepth levels:表示至多查找到開始目錄的第level層子目錄。level是一個非負數,如果level是0的話表示僅在當前目錄中查找。
-mindepth levels:表示至少查找到開始目錄的第level層子目錄。
-mount:不在其它文件系統(如Msdos、Vfat等)的目錄和文件中查找。
-version:打印版本。
[expression]是匹配表達式,是find命令接受的表達式,find命令的所有操作都是針對表達式的。它的參數非常多,這里只介紹一些常用的參數。
—name:支持統配符*和?。
-atime n:搜索在過去n天讀取過的文件。
-ctime n:搜索在過去n天修改過的文件。
-group grpoupname:搜索所有組為grpoupname的文件。
-user用戶名:搜索所有文件屬主為用戶名(ID或名稱)的文件。
-size n:搜索文件大小是n個block的文件。-print:輸出搜索結果,并且打印。
使用說明:
將檔案系統內符合expression的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、權限等不同資訊的組合,只有完全相符的才會被列出來。
find根據下列規則判斷path和expression,在命令列上第一個- ( ) , !之前的部份為path,之后的是expression。如果path是空字串則使用目前路徑,如果expression是空字串則使用-print為預設expression
expression中可使用的選項有二三十個之多,在此只介紹最常用的部份。
-mount, -xdev :只檢查和指定目錄在同一個檔案系統下的檔案,避免列出其它檔案系統中的檔案
-amin n :在過去n分鐘內被讀取過
-anewer file :比檔案file更晚被讀取過的檔案
-atime n :在過去n天過讀取過的檔案
-cmin n :在過去n分鐘內被修改過
-cnewer file :比檔案file更新的檔案
-ctime n :在過去n天過修改過的檔案
-empty :空的檔案-gid n or -group name : gid是n或是group名稱是name
-ipath p, -path p :路徑名稱符合p的檔案,ipath會忽略大小寫
-name name, -iname name :檔案名稱符合name的檔案。iname會忽略大小寫
-size n :檔案大小是n單位,b代表512位元組的區塊,c表示字元數,k表示kilo bytes,w是二個位元組。-type c :檔案類型是c的檔案。
d:目錄
c:字型裝置檔案
b:區塊裝置檔案
p:具名貯列
f:一般檔案
l:符號連結
s: socket
-pid n : process id是n的檔案你可以使用( )將運算式分隔,并使用下列運算。
exp1 -and exp2
! expr
-not expr
exp1 -or exp2
exp1, exp2
范例:執行命令和立即顯示的內容如下:
$ find . -nameabc -print&
10722
10722表示進程號(PID)。當find命令在后臺執行完后,會顯示結果。
將目前目錄及其子目錄下所有延伸檔名是c的檔案列出來。
# find . -name "*.c"
將目前目錄其其下子目錄中所有一般檔案列出
# find . -ftype f
將目前目錄及其子目錄下所有最近20分鐘內更新過的檔案列出
# find . -ctime -20
例2]在后臺運行find命令,在當前目錄及其子目路下查找文件名為abc的文件并將結果存到myfind文件中。
執行命令如下:
$ find . -name abc -print>myfind&
45.cmp
1.作用
cmp(“compare”的縮寫)命令用來簡要指出兩個文件是否存在差異,它的使用權限是所有用戶。
2.格式cmp[options]文件名
3.[options]主要參數
-l:將字節以十進制的方式輸出,并方便將兩個文件中不同的以八進制的方式輸出。
46.diff
1.作用
diff命令用于兩個文件之間的比較,并指出兩者的不同,它的使用權限是所有用戶。
2.格式
diff [options]源文
件目標文件
3.[options]主要參數
-a:將所有文件當作文本文件來處理。
-b:忽略空格造成的不同。
-B:忽略空行造成的不同。
-c:使用綱要輸出格式。
-H:利用試探法加速對大文件的搜索。
47關機重啟命令
(1)shutdown
–hy 0關機
hhalt
rreboot
y回答yes
0倒記時間
(2)系統的重啟
#shutdown –ry 0或者#reboot