名稱:cut 使用權限:所有使用者 用法:cut -cnum1-num2 filename 說明:顯示每行從開頭算起 num1 到 num2 的文字。 范例: shell>> cat example test2 this is test1 shell>> cut -c0-6 example ## print 開頭算起前 6 個字元 test2 this i
名稱 : find 用法 : find 使用說明 : 將檔案系統(tǒng)內符合 expression 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、權限等不同資訊的組合,只有完全相符的才會被列出來。 find 根據(jù)下列規(guī)則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部份為 path,之后的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預設 expression expression 中可使用的選項有二三十個之多,在此只介紹最常用的部份。 -mount, -xdev : 只檢查和指定目錄在同一個檔案系統(tǒng)下的檔案,避免列出其它檔案系統(tǒng)中的檔案 -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 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個位元組。-type c : 檔案類型是 c 的檔案。 d: 目錄 c: 字型裝置檔案 b: 區(qū)塊裝置檔案 p: 具名貯列 f: 一般檔案 l: 符號連結 s: socket -pid n : process id 是 n 的檔案 你可以使用 ( ) 將運算式分隔,并使用下列運算。 exp1 -and exp2 ! expr -not expr exp1 -or exp2 exp1, exp2 范例: 將目前目錄及其子目錄下所有延伸檔名是 c 的檔案列出來。 # find . -name "*.c"
名稱:less 使用權限:所有使用者 使用方式: less [Option] filename 說明: less 的作用與 more 十分相似,都可以用來瀏覽文字檔案的內容,不同的是 less 允許使用者往回卷動 以瀏覽已經(jīng)看過的部份,同時因為 less 并未在一開始就讀入整個檔案,因此在遇上大型檔案的開啟時,會比一般的文書編輯器(如 vi)來的快速。
參數(shù): a 改變檔案的讀取時間記錄。 m 改變檔案的修改時間記錄。 c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。 f 不使用,是為了與其他 unix 系統(tǒng)的相容性而保留。 r 使用參考檔的時間記錄,與 --file 的效果一樣。 d 設定時間與日期,可以使用各種不同的格式。 t 設定檔案的時間記錄,格式與 date 指令相同。 --no-create 不會建立新檔案。 --help 列出指令格式。 --version 列出版本訊息。
名稱:cut 使用權限:所有使用者 用法:cut -cnum1-num2 filename 說明:顯示每行從開頭算起 num1 到 num2 的文字。 范例: shell>> cat example test2 this is test1 shell>> cut -c0-6 example ## print 開頭算起前 6 個字元 test2 this i
名稱 : find 用法 : find 使用說明 : 將檔案系統(tǒng)內符合 expression 的檔案列出來。你可以指要檔案的名稱、類別、時間、大小、權限等不同資訊的組合,只有完全相符的才會被列出來。 find 根據(jù)下列規(guī)則判斷 path 和 expression,在命令列上第一個 - ( ) , ! 之前的部份為 path,之后的是 expression。如果 path 是空字串則使用目前路徑,如果 expression 是空字串則使用 -print 為預設 expression expression 中可使用的選項有二三十個之多,在此只介紹最常用的部份。 -mount, -xdev : 只檢查和指定目錄在同一個檔案系統(tǒng)下的檔案,避免列出其它檔案系統(tǒng)中的檔案 -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 位元組的區(qū)塊,c 表示字元數(shù),k 表示 kilo bytes,w 是二個位元組。-type c : 檔案類型是 c 的檔案。 d: 目錄 c: 字型裝置檔案 b: 區(qū)塊裝置檔案 p: 具名貯列 f: 一般檔案 l: 符號連結 s: socket -pid n : process id 是 n 的檔案 你可以使用 ( ) 將運算式分隔,并使用下列運算。 exp1 -and exp2 ! expr -not expr exp1 -or exp2 exp1, exp2 范例: 將目前目錄及其子目錄下所有延伸檔名是 c 的檔案列出來。 # find . -name "*.c"
名稱:less 使用權限:所有使用者 使用方式: less [Option] filename 說明: less 的作用與 more 十分相似,都可以用來瀏覽文字檔案的內容,不同的是 less 允許使用者往回卷動 以瀏覽已經(jīng)看過的部份,同時因為 less 并未在一開始就讀入整個檔案,因此在遇上大型檔案的開啟時,會比一般的文書編輯器(如 vi)來的快速。
參數(shù): a 改變檔案的讀取時間記錄。 m 改變檔案的修改時間記錄。 c 假如目的檔案不存在,不會建立新的檔案。與 --no-create 的效果一樣。 f 不使用,是為了與其他 unix 系統(tǒng)的相容性而保留。 r 使用參考檔的時間記錄,與 --file 的效果一樣。 d 設定時間與日期,可以使用各種不同的格式。 t 設定檔案的時間記錄,格式與 date 指令相同。 --no-create 不會建立新檔案。 --help 列出指令格式。 --version 列出版本訊息。
范例:
最簡單的使用方式,將檔案的時候記錄改為現(xiàn)在的時間。若檔案不存在,系統(tǒng)會建立一個新的檔案。 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" Linux指令大全(2) 名稱 : at 使用權限 : 所有使用者 使用方式 : at -V [-q queue] [-f file] [-mldbv] TIME 說明 : at 可以讓使用者指定在 TIME 這個特定時刻執(zhí)行某個程式或指令,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 即可完成所有動作,至于執(zhí)行的結果將會寄回你的帳號中。 把計 : -V : 印出版本編號 -q : 使用指定的佇列(Queue)來儲存,at 的資料是存放在所謂的 queue 中,使用者可以同時使用多個 queue,而 queue 的編號為 a, b, c... z 以及 A, B, ... Z 共 52 個 -m : 即使程式/指令執(zhí)行完成后沒有輸出結果, 也要寄封信給使用者 -f file : 讀入預先寫好的命令檔。使用者不一定要使用交談模式來輸入,可以先將所有的指定先寫入檔案后再一次讀入 -l : 列出所有的指定 (使用者也可以直接使用 atq 而不用 at -l) -d : 刪除指定 (使用者也可以直接使用 atrm 而不用 at -d) -v : 列出所有已經(jīng)完成但尚未刪除的指定 例子 : 三天后的下午 5 點鍾執(zhí)行 /bin/ls : at 5pm + 3 days /bin/ls 三個星期后的下午 5 點鍾執(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 !
名稱: time 使用權限: 所有使用者 使用方式: time [options] COMMAND [arguments] 說明: time 指令的用途,在于量測特定指令執(zhí)行時所需消耗的時間及系統(tǒng)資源等資訊。例如 CPU 時間、記憶體、輸入輸出等等。需要特別注意的是,部分資訊在 Linux 上顯示不出來。這是因為在 Linux 上部分資源的分配函式與 time 指令所預設的方式并不相同,以致于 time 指令無法取得這些資料。 把計 -o or --output=FILE 設定結果輸出檔。這個選項會將 time 的輸出寫入 所指定的檔案中。如果檔案已經(jīng)存在,系統(tǒng)將覆寫其內容。 -a or --append 配合 -o 使用,會將結果寫到檔案的末端,而不會覆蓋掉原來的內容。 -f FORMAT or --format=FORMAT 以 FORMAT 字串設定顯示方式。當這個選項沒有被設定的時候,會用系統(tǒng)預設的格式。不過你可以用環(huán)境變數(shù) time 來設定這個格式,如此一來就不必每次登入系統(tǒng)都要設定一次。 一般設定上,你可以用 t 表示跳欄,或者是用 n 表示換行。每一項資料要用 % 做為前導。如果要在字串中使用百分比符號,就用 。(學過 C 語言的人大概會覺得很熟悉) time 指令可以顯示的資源有四大項,分別是: Time resources Memory resources IO resources Command info 詳細的內容如下:
Time Resources E 執(zhí)行指令所花費的時間,格式是:[hour]:minute:second。請注意這個數(shù)字并不代表實際的 CPU 時間。 e 執(zhí)行指令所花費的時間,單位是秒。請注意這個數(shù)字并不代表實際的 CPU 時間。 S 指令執(zhí)行時在核心模式(kernel mode)所花費的時間,單位是秒。 U 指令執(zhí)行時在使用者模式(user mode)所花費的時間,單位是秒。 P 執(zhí)行指令時 CPU 的占用比例。其實這個數(shù)字就是核心模式加上使用者模式的 CPU 時間除以總時間。
Memory Resources M 執(zhí)行時所占用的實體記憶體的最大值。單位是 KB t 執(zhí)行時所占用的實體記憶體的平均值,單位是 KB K 執(zhí)行程序所占用的記憶體總量(stack+data+text)的平均大小,單位是 KB D 執(zhí)行程序的自有資料區(qū)(unshared data area)的平均大小,單位是 KB p 執(zhí)行程序的自有堆疊(unshared stack)的平均大小,單位是 KB X 執(zhí)行程序間共享內容(shared text)的平均值,單位是 KB Z 系統(tǒng)記憶體頁的大小,單位是 byte。對同一個系統(tǒng)來說這是個常數(shù)
IO Resources F 此程序的主要記憶體頁錯誤發(fā)生次數(shù)。所謂的主要記憶體頁錯誤是指某一記憶體頁已經(jīng)置換到置換檔(swap file)中,而且已經(jīng)分配給其他程序。此時該頁的內容必須從置換檔里再讀出來。 R 此程序的次要記憶體頁錯誤發(fā)生次數(shù)。所謂的次要記憶體頁錯誤是指某一記憶體頁雖然已經(jīng)置換到置換檔中,但尚未分配給其他程序。此時該頁的內容并未被破壞,不必從置換檔里讀出來 W 此程序被交換到置換檔的次數(shù) c 此程序被強迫中斷(像是分配到的 CPU 時間耗盡)的次數(shù) w 此程序自愿中斷(像是在等待某一個 I/O 執(zhí)行完畢,像是磁碟讀取等等)的次數(shù) I 此程序所輸入的檔案數(shù) O 此程序所輸出的檔案數(shù) r 此程序所收到的 Socket Message s 此程序所送出的 Socket Message k 此程序所收到的信號 ( Signal )數(shù)量
Command Info C 執(zhí)行時的參數(shù)以及指令名稱 x 指令的結束代碼 ( Exit Status )
-p or --portability 這個選項會自動把顯示格式設定成為: real %e user %U sys %S 這么做的目的是為了與 POSIX 規(guī)格相容。 -v or --verbose 這個選項會把所有程式中用到的資源通通列出來,不但如一般英文語句,還有說明。對不想花時間去熟習格式設定或是剛剛開始接觸這個指令的人相當有用。 范例: 利用下面的指令 time -v ps -aux 我們可以獲得執(zhí)行 ps -aux 的結果和所花費的系統(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
名稱: uptime 使用權限: 所有使用者 使用方式: uptime [-V] 說明: uptime 提供使用者下面的資訊,不需其他參數(shù): 現(xiàn)在的時間 系統(tǒng)開機運轉到現(xiàn)在經(jīng)過的時間 連線的使用者數(shù)量 最近一分鐘,五分鐘和十五分鐘的系統(tǒng)負載 參數(shù): -V 顯示版本資訊。 范例: uptime 其結果為: 10:41am up 5 days, 10 min, 1 users, load average: 0.00, 0.00, 1.99 名稱: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]
mail user1@email.address mail user1@email.address user2
將 mail.txt 的內容寄給 user2 同時 cc 給 user1 。如果將這一行指令設成 cronjob 就可以定時將備忘錄寄給系統(tǒng)使用者。 mail -s 標題 -c user1 user2 > expr length "this is a test" 14 ### 數(shù)字商數(shù) shell>> expr 14 % 9 5 ### 從位置處抓取字串 shell>> expr substr "this is a test" 3 5 is is ### 數(shù)字串 only the first character shell>> expr index "testforthegame" e 2 ### 字串真實重現(xiàn) shell>> expr quote thisisatestformela thisisatestformela
名稱: tr ### 1.比方說要把目錄下所有的大寫檔名換為小寫檔名? 似乎有很多方式,"tr"是其中一種: #!/bin/sh dir="/tmp/testdir"; files=`find $dir -type f`; for i in $files do dir_name=`dirname $i`; ori_filename=`basename $i` new_filename=`echo $ori_filename | tr [:upper:] [:lower:]` > /dev/null; #echo $new_filename; mv $dir_name/$ori_filename $dir_name/$new_filename done
### 2.自己試驗中...lowercase to uppercase tr abcdef...[del] ABCDE...[del] tr a-z A-Z tr [:lower:] [:upper:] shell>> echo "this is a test" | tr a-z A-Z > www shell>> cat www THIS IS A TEST ### 3.去掉不想要的字串 shell>> tr -d this ### 去掉有關 t.e.s.t this man man test e ### 4.取代字串 shell>> tr -s "this" "TEST" this TEST th TE
參數(shù): c 輸出結果至標準輸出設備(一般指熒幕) f 強迫寫入檔案,若目的檔已經(jīng)存在,則會被覆蓋 (force) v 將程式執(zhí)行的訊息印在熒幕上 (verbose) b 設定共同字串數(shù)的上限,以位元計算,可以設定的值為 9 至 16 bits 。由于值越大,能使用的共同字串就 越多,壓縮比例就越大,所以一般使用預設值 16 bits (bits) d 將壓縮檔解壓縮 V 列出版本訊息