AIX SHELL基礎

來源:互聯網
上載者:User

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


相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.