【正文】
ho –e \\a echo “***** $1 has just logged in *****” exit 0 126 控制結(jié)構(gòu) case語句 case variable in pattern [ | pattern ]… ) statements。 then echo “Good afternoon” else echo “Sorry, $timeofday not recognized . Enter yes or no” exit 1 fi exit 0 117 控制結(jié)構(gòu) for語句 for variable in values do statements done 118 控制結(jié)構(gòu) for語句 例子: for foo in bar fud 43 do echo $foo done exit 0 119 控制結(jié)構(gòu) for語句 結(jié)果: bar fud 43 120 控制結(jié)構(gòu) for語句 例子: !/bin/sh for file in $(ls f*.sh) do lpr $file done exit 0 121 控制結(jié)構(gòu) while語句 while condition do statements done 122 控制結(jié)構(gòu) while語句 例子:口令字檢查程序 !/bin/sh echo “enter password” read trythis while [ “$trythis” != “secret” ]。 then echo “Good morning” 114 控制結(jié)構(gòu) if語句例子 else echo “Good afternoon” fi exit 0 如果直接輸入回車鍵會怎樣? 115 控制結(jié)構(gòu) elif語句 !/bin/sh echo “Is it morning? Please answer yes or no” read timeofday if [ “$timeofday” = “yes” ]。shell的條件測試命令(布爾判斷命令)有 test和[]。 shell讀取輸入數(shù)據(jù)時會將一組字符視為單詞之間的分隔字符,他們通常是空格、制表符和換行符 $0 shell腳本程序的名字 $ 傳遞到腳本程序的參數(shù)個數(shù) $$ 該 shell腳本程序的進(jìn)程 ID 100 參數(shù)變量 shell腳本程序在調(diào)用時還帶有參數(shù),會產(chǎn)生參數(shù)變量。具體有哪些環(huán)境變量取決于個人配置。 95 引號的用法 !/bin/sh myvar=“Hi there” echo $myvar echo “$myvar” echo ?$myvar? echo \$myvar 96 引號的用法 echo Enter some text read myvar echo ?$myvar? now equals $myvar exit 0 97 引號的用法 程序輸出結(jié)果如下: Hi there Hi there $myvar $myvar Enter some text Hello World $myvar mow equals Hello World 98 環(huán)境變量 環(huán)境變量是 shell預(yù)先初始化的一些變量,環(huán)境變量可被子進(jìn)程繼承。如放在單引號里,則不替換。如想在一個參數(shù)里包含一個或多個這樣的空白字符,就需要給參數(shù)加上引號。在變量名前加上一個 “ $”字符可以獲得變量的內(nèi)容。需要用工具程序?qū)?“ 數(shù)值 ” 型字符串轉(zhuǎn)換為正確的數(shù)值并操作。變量是在第一次用到的時候被創(chuàng)建的。如: ls my_{finger toe}s 列出 my_fingers和 my_toes兩個文件。如: ls –l [Yy]* 列出當(dāng)前目錄下所有以 y和 Y開頭的文件。 86 交互式程序 $ for file in * do if grep –l POSIX $file then more $file fi done 87 關(guān)于通配符 ? *可以替代多個字符,而?則替代一個字符。 順序地敲入一系列命令,讓 shell交互地執(zhí)行它們。1 kill –1 1234 /dev/null 2amp。 cat file1 | more 以分頁方式列出文件 file1 的內(nèi)容。 83 管道命令 語法:命令 1 | 命令 2 將命令 1的執(zhí)行結(jié)果送到命令 2,做為命令 2的輸入。 例如 : cc amp。 語法:命令 amp。 82 重定向 語法:命令 文件將命令執(zhí)行的結(jié)果附加到指定的文件 中。 例如: cc amp。 81 重定向 語法:命令 amp。 80 重定向 語法:命令 ! 文件將命令的執(zhí)行結(jié)果送至指定的文 件中,若文件已經(jīng)存在,則覆蓋。 79 重定向 2. 標(biāo)準(zhǔn)輸出的控制 語法:命令 文件將命令的執(zhí)行結(jié)果送至指定的文 件中。 語法: ! n 77 文件壓縮 1. 壓縮文件 語法: press 文件名 壓縮文件 語法: pressdir 目錄名 壓縮目錄 2. 解壓縮文件 語法: unpress 文件名 解壓縮文件 語法: unpressdir 目錄名 解壓縮目錄 78 重定向 1. 標(biāo)準(zhǔn)輸入的控制 語法:命令 文件將文件做為命令的輸入。 74 歷史命令 1. 設(shè)定命令記錄表的長度 語法: set history = n 例如 : set history = 40 設(shè)定命令記錄表的長度為 40 (可記錄 執(zhí)行過的前面 40 個命令 )。 73 別名 3. 刪除所定義的別名 語法: unalias name 例如: unalias dir 刪除別名 dir 的定義。 例如 : alias dir 查看別名 dir 所定義的命令。 71 別名 1. 查看所定義的命令的別名 語法: a l i a s 查看自己目前定義的所有命令,及 所對應(yīng)的別名。 69 環(huán)境變量 2. 設(shè)定環(huán)境變量 語法: set –a NAME=word 例如 : set a PRINTER=sp 設(shè)定環(huán)境變量 PRINTER 為 sp。 語法: echo $NAME 顯示指定的環(huán)境變量 N A M E 的設(shè)定值。 67 shell變量 3. 刪除外殼變量 語法: unset var 例如 : unset PRINTER 刪除外殼變量 PRINTER 的設(shè)定 值。 語法: echo $變量名顯示指定的外殼變量的設(shè)定 值。 kill %2 終止在后臺中的第二個進(jìn)程。鍵入 b g命令,將暫停的進(jìn)程置于后臺繼 續(xù)執(zhí)行。 將編譯 文件的工作置于后臺行。 61 進(jìn)程控制命令 3. 在后臺執(zhí)行進(jìn)程的方式 語法:命令 amp。 60 進(jìn)程控制命令 2. 結(jié)束或終止進(jìn)程 語法: kill [9] PID P I D:利用 ps 命令所查出的進(jìn)程號。 ps au 查看系統(tǒng)中,所有用戶的進(jìn)程。 lprm Psp 456 刪除 sp 打印機(jī)上編號為 456 的打印作 業(yè)。 57 打印機(jī)控制命令 1.檢查打印機(jī)狀態(tài)、打印作業(yè)順序號和用戶名 語法: lpq [P 打印機(jī)名 ] 例如: lpq 或 lpq Psp 檢查 sp 打印機(jī)的狀態(tài)。 語法: lpr [P打印機(jī)名 ] 文件名 例如: lpr file1 或 lpr Psp file1 自 s p打印機(jī)打印文件 f i l e 1。 55 文件打印輸出 用戶可用 set 命令 來設(shè)定打印機(jī)名。 例如: d i ff file1 file2 比較文件 file1 與 file2 內(nèi)各行的不同 之處。 例如: find / name file1 print 自根目錄下尋找文件 file1 的 路徑。 語法: whatis mand 顯示命令功能的摘要。 53 尋找文件或命令的路徑 語法: whereis mand 顯示命令的路徑。 語法: ln 老文件名 新文件名 例如: ln file1 file2 將文件 f i l e 2鏈接至文件 f i l e 1。 50 改變文件或目錄最后修改時間 語法: touch name n a m e:文件名或目錄名。 48 檢查自己所屬的工作組 語法: g r o u p s 49 改變文件或目錄工作組所有權(quán) 語法: chgrp [R] 工作組名 name n a m e:文件名或目錄名 例如: chgrp vlsi file1 將文件 file1 的工作組所有權(quán)改為 vlsi 工作組所有。 例如: chown user file1 將文件 file1 改為用戶 user 所有。 chmod or file4 對于文件 f i l e 4,刪除其他使用者 可讀取的權(quán)利。 chmod u+x file2 對于文件 f i l e 2,增加當(dāng)前用戶可 以執(zhí)行的權(quán)利。 46 文件權(quán)限設(shè)定 chmod 755 dir1 對于目錄 d i r 1,設(shè)定成任何使用者 皆有讀取及執(zhí)行的權(quán)利,但只有所有者可做修改。 mode: 3個 8位數(shù)字或 r w x的組合。 注意從 PC與工作站間的文件傳輸也可透過在 PC端的 FTP指 令進(jìn)行文件傳輸,指令用法與上述指令大致相同。 ftp quit 結(jié)束 ftp 工作。 44 文件傳輸 ftp mput *.txt 將本地工作站中擴(kuò)展文件名為 txt 的所有文件 拷貝到遠(yuǎn)程工作站中。 ftp put file2 將本地工作站的文件 f i l e 2拷貝到遠(yuǎn)程工作站 中。 ftp cd dir1 更改遠(yuǎn)程工作站的工作目錄位置至 dir1 之下。 ftp dir . |more 分頁列出遠(yuǎn)程工作站當(dāng)前目錄下的所有文件 名。 ftp ls 列出遠(yuǎn)程工作站當(dāng)前目錄下的所有文件名。 ftp !ls 列出本地工作站當(dāng)前目錄下的所有文件名。 語法: ftp 主機(jī)名或 ftp ip地址 例如: ftp doc 與遠(yuǎn)程工作站 doc 之間進(jìn)行文件傳輸。 rcp r doc:/home/user/dir1 . 將工作站 doc 路徑 /home/user 下的目錄 d i r 1,拷貝到當(dāng)前工作站的目 錄下,目錄名仍為 d i r 1。 rcp r dir1 doc:/home/user 將目錄 d i r 1拷貝到工作 站 doc 路徑 /home/user 下。 du s dir1 顯示目錄 dir1 的總?cè)萘俊? cat file1 | more 以分頁方式查看文件名 file1 的內(nèi) 容。 36 列出當(dāng)前目錄 語法: p w d 37 查看文件內(nèi)容 語法: cat 文件名 例如: cat file1 以連續(xù)顯示方式,查看文件名 file1 的內(nèi) 容。 rm file? 刪除文件名中有五個字符且前四個字符為 file 的所有文件。 rm r dir1 刪除目錄 d i r 1及其子目錄下所有文件。 33 建立新目錄 語法: mkdir 目錄名 例如: mkdir dir1 建立一新目錄 d i r 1。 mv file1 dir1 將文件 f i l e 1移到目錄 dir1 下,文件名 仍為 f i l e 1。 cp r dir1 dir2 復(fù)制整個目錄。 31 復(fù)制文件 cp /tmp/file1 . 將目錄 /tmp 下的文件 file1 復(fù)制到當(dāng)前 目錄下,文件名仍為 f i l e 1。 30 復(fù)制文件 語法 : cp [r] 源地址目的地址 例如: cp file1 file2 將文件 file1 復(fù)制成 f i l e 2。 cd /../.. 改變目錄位置至絕對路徑的目錄位置下。 cd .. 改變目錄位置至當(dāng)前目錄的父目錄。 cd dir1 改變目錄位置至