Shell 是介於作業系統和使用者之間的介面,它能解釋使用者發出的命令,啟動應用程式,並利用系統功能系統管理使用者資料。Shell 可以在使用者的互動式控制下在前台或後台同時運行多個進程,Shell 同時也是一種有效程式設計語言。
1、萬用字元
1)*:多個任一字元
$ ls
info newdir test.file testfile
mbox newtest.file test1.file wangyi
$ ls *.*
newtest.file test.file test1.file
2)?:單個任一字元
$ ls ????.*
test.file
3) [ ]:在[ ]之間的單個字元
$ ls [mt]*
mbox test.file test1.file
4)[ - ]:在[ - ]範圍內的單個字元
$ ls [m-w]*
mbox newtest.file test.file test1.file testfile
newdir:
wangyi:
5)!:非某個或某些字元
$ ls [!t]*
mbox newtest.file
info:
notes tmp
newdir:
wangyi:
test.file
2、標準輸入輸出
在 AIX 標準狀態下,輸入來自鍵盤,輸出是到螢幕,出錯資訊也是顯示在螢幕上。
重新導向符號 系統變數名
標準輸入 < <<) 0
標準輸出 > (>>) 1
標準錯誤輸出 2> (2>>) 2
3/重新導向
在 AIX 的環境中標準的輸入、輸出和錯誤資訊均可以重新定向,使使用者可以從鍵盤以外的其他地方如檔案,串口等)擷取輸入資訊,並把輸入的內容和出錯的資訊送到螢幕之外的其他地方如檔案等)。
●輸入重新導向
$ command < filename
$ mail xumin < test.file
● 輸出重新導向
$ command > filename
$ ls > out.file
$ cat out.file
28
info
mbox
newdir
newtest.file
out.file
test.file
test1.file
testfile
wangyi
● 錯誤資訊重新導向
$ command 2> filename
$ ls test2.file 2> error.out
$ cat error.out
ls: 0653-341 The file test2.file does not exist.
● 組合重新導向
$ command < infile > outfile 2> errfile
$ command > outfile 2> errfile < infile
$ ls test1.file test2.file > out.file 2> error.file
$ cat out.file
test1.file
$ cat error.file
ls: 0653-341 The file test2.file does not exist.
●關聯組合重新導向
$ command > outfile 2> &1
這裡的&1 指向 out.file,因為此時原來系統的標準輸出已被重新導向為 out.file。
$ command 2> &1 > outfile
這裡的&1 指向標準輸出,此時原來系統的標準輸出尚未改變。
4、管道
管道的作用是把前一個命令的輸出作為後一個命令的輸入。
管道的用法:
$ command1 | command2
$ ls | wc -w
5、分割輸出
tee 這個命令可以讀取標準輸入,並把資料同時送到標準的輸出和指定的檔案中
tee 的用法:
$ command1 | tee filename | command2
$ ls | tee out.file | wc
11 11 97
$ cat out.file
error.file
error.out
info
mbox
newdir
newtest.file
out.file
test.file
test1.file
testfile
6、多個命令
在 AIX 中 shell 允許在同一行中寫多個命令,只需要在命令之間加上“;”作為分隔字元
用法:
$ command1 ; command2 ; command3
$ pwd;cd /;ls
/home/xumin
Slider.class dead.letterlost+found smit.script usr
TT_DB dev lpp testnfs var
aaaa etc mnt testxmg websm.log
adsmtest home opt testxmg2 xumin
bin info sbin tftpboot xumin_disk1
cdrom info.www share tmp
cds.types informix showcase u
core lib smit.log unix
7、長命令
在 AIX 的 shell 中寫較長的命令時,可以使用“\”作為換行的標記,這時 shell 會用一個“>”作為提示符。
8、Shell 環境中的變數
在 shell 環境下面可以定義變數,供系統、使用者,shell 程式和各種應用使用。變數可以由系統定義,也可以由使用者自己定義。系統已經定義的變數使用者也可以修改或刪除。
例如: HOME -- 使用者的 home 目錄
TERM -- 終端類型
PATH -- 命令搜尋路徑
9、變數的查看和定義
1)查看已定義過的變數
$ set
~~~
~~~
HOME=/home/xumin
LANG=En_US
LOCPATH=/usr/lib/nls/loc
LOGIN=xumin
LOGNAME=xumin
MAIL=/usr/spool/mail/xumin
MAILCHECK=600
MAILMSG='[YOU HAVE NEW MAIL]'
~~~
~~~
PATH=/usr/bin:/etc:/usr/sbin:/usr/ucb:/home/xumin/bin:/usr/bin/X11:/sbin:.
PPID=69504nput
PS1='$ '
PS2='> '
PS3='# '
PS4='+ '
PWD=/
RANDOM=31884
32
SECONDS=2774
SHELL=/usr/bin/ksh
TERM=ANSI
TERM_DEFAULT=lft
TMOUT=0
TZ=CST6CDT
USER=xumin
2)顯示變數值
$ echo $name
$ echo $HOME
/home/xumin
3)定義變數
$ name=value
$ echo $xxx
$ xxx=hello!
$ echo $xxx
hello!
4)刪除變數
$ unset
$ unset xxx
$ echo $xxx
5)變數的運用
' ':把' '之間的內容作為一個命令,返回命令的結果
$ now=`date`
$ echo $now
Wed Aug 12 15:23:19 CDT 1998
' ' :不解釋 ' ' 之間的任何內容
$ echo '$HOME'
$HOME
“”:會解釋“”之間的 $、` `、\等字元的特殊含義
$ echo “now is `date`”
now is Wed Aug 12 15:32:41 CDT 1998
\ :忽略\之後的特殊字元的特殊含義
$ echo \$HOME
$HOME
oracle視頻教程請關注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html