Shell教程(一):简介
shell提供了對(duì)UNIX系統(tǒng)的接口。收集輸入,并根據(jù)輸入執(zhí)行程序。當(dāng)一個(gè)程序執(zhí)行完畢后,它會(huì)顯示該程序的輸出。
?
shell是一個(gè)環(huán)境,我們可以運(yùn)行我們的命令,程序和shell腳本。shell有不同的風(fēng)格,就像有不同風(fēng)格的操作系統(tǒng)。每個(gè)的shell的風(fēng)格,有它自己的一套識(shí)別的命令和功能。
shell它交互式解釋和執(zhí)行用戶輸入的命令或者自動(dòng)地解釋和執(zhí)行預(yù)先設(shè)定好的一連串的命令;作為程序設(shè)計(jì)語言,它定義了各種變量和參數(shù),并提供了許多在高級(jí)語言中才具有的控制結(jié)構(gòu),包括循環(huán)和分支。
幾個(gè)學(xué)習(xí)Shell編程的網(wǎng)站推薦:
Ubuntu社區(qū):http://wiki.ubuntu.org.cn/Shell%E7%BC%96%E7%A8%8B%E5%9F%BA%E7%A1%80
易百教程 http://www.yiibai.com/shell/
Chinaunix:?http://bbs.chinaunix.net/forum-24-1.html
?
?
shell為您提供了對(duì)UNIX系統(tǒng)的接口。向你收集的輸入,并根據(jù)輸入執(zhí)行程序。當(dāng)一個(gè)程序執(zhí)行完畢后,它會(huì)顯示該程序的輸出。
shell是一個(gè)環(huán)境,我們可以運(yùn)行我們的命令,程序和shell腳本。shell有不同的風(fēng)格,就像有不同風(fēng)格的操作系統(tǒng)。每個(gè)的shell的風(fēng)格,有它自己的一套識(shí)別的命令和功能。
Shell 提示符:
提示符下這就是所謂的命令提示符下$,發(fā)出shell。雖然會(huì)顯示提示,您可以鍵入一個(gè)命令。
shell讀取輸入后按Enter鍵。它決定了想要的命令和執(zhí)行輸入的第一個(gè)字符。一個(gè)字是一個(gè)完整的字符集。空格和制表符分隔單詞。
以下是一個(gè)簡(jiǎn)單的例子date命令顯示當(dāng)前日期和時(shí)間:
$date Thu Jun 25 08:30:19 MST 2009你可以定制你的命令提示符下使用環(huán)境變量PS1環(huán)境教程解釋。
Shell 類型:
在UNIX系統(tǒng)下有兩種主要類型的shell:
1.? Bourne shell. 如果您使用的是Bourne類型的shell,默認(rèn)提示符為$字符。
2.? C shell.如果您使用的是C型的shell,默認(rèn)的提示字符%。
再還有各種Bourne shell的子類別列示如下:
·????????Bourne shell ( sh)
·????????Korn shell ( ksh)
·????????Bourne Again shell ( bash)
·????????POSIX shell ( sh)
不同的C型shell如下:
·????????C shell ( csh)
·????????TENEX/TOPS C shell ( tcsh)
原來的UNIX shell寫于20世紀(jì)70年代中期,由斯蒂芬·伯恩,在新澤西AT&T貝爾實(shí)驗(yàn)室。
Bourne shell 是第一個(gè)shell 出現(xiàn)在UNIX系統(tǒng)上,因此,它被稱為 "the shell".
Bourne shell的安裝通常為 /bin/sh 在大多數(shù)UNIX版本。出于這個(gè)原因,它是編寫腳本使用在幾個(gè)不同的版本的UNIX shell。
在本教程中,我們將要覆蓋大多數(shù)基于傳播Borne Shell概念。
Shell 腳本:
shell腳本的基本概念是一個(gè)命令列表中列出的順序執(zhí)行。 #是shell腳本注釋前面一英鎊符號(hào)。
條件測(cè)試,如值A(chǔ)大于B值,循環(huán)我們?nèi)ネㄟ^大量的數(shù)據(jù),讀取和存儲(chǔ)數(shù)據(jù)的文件和變量的讀取和存儲(chǔ)數(shù)據(jù),該腳本可能包含的功能。
shell腳本和函數(shù)都解釋。這意味著他們不會(huì)被編譯。
我們將在接下來的幾個(gè)教程寫了許多腳本。這將是一個(gè)簡(jiǎn)單的文本文件,在其中,我們會(huì)把我們所有的命令和其他一些必要的結(jié)構(gòu),告訴shell環(huán)境做什么,什么時(shí)候做。
示例腳本:
假設(shè)我們創(chuàng)建了一個(gè)test.sh腳本。注意:所有的腳本 .sh擴(kuò)展。添加任何東西到腳本,需要提醒系統(tǒng)正在啟動(dòng)一個(gè)shell腳本。例如:
#!/bin/sh這是告訴系統(tǒng)Bourne shell的執(zhí)行下面的命令。這就是所謂的家shebang?,因?yàn)椤?#xff03;”符號(hào)被稱為哈希,和!符號(hào)被稱為bang。
要?jiǎng)?chuàng)建一個(gè)包含這些命令的腳本,把shebang行第一,然后添加命令:
#!/bin/bash pwd lsShell 注釋:
你可以把注釋,在你的腳本如下:
#!/bin/bash ? # Author : Zara Ali # Copyright (c) Tutorialsyiibai.com # Script follows here: pwd ls現(xiàn)在保存上面的內(nèi)容,使此腳本可執(zhí)行如下:
$chmod +x test.sh現(xiàn)在,你的shell腳本,可隨時(shí)執(zhí)行如下:
$./test.shThis would producefollowing result:
/home/amrood index.htm? unix-basic_utilities.htm? unix-directories.htm? test.sh??? unix-communication.htm??? unix-environment.htm注:要執(zhí)行任何程序在當(dāng)前目錄中,執(zhí)行可使用?./program_name
擴(kuò)展Shell腳本:
Shell腳本有幾個(gè)必要的結(jié)構(gòu)告訴shell環(huán)境做什么,什么時(shí)候做。當(dāng)然,大多數(shù)腳本是比上述更加復(fù)雜。
shell畢竟,真正的編程語言,完成變量,控制結(jié)構(gòu),等等。無論腳本變得多么復(fù)雜,但是,它仍然是順序執(zhí)行的命令的列表。
下面的腳本使用讀命令從鍵盤輸入,并將其分配給變量PERSON的值,并最終打印在stdout。
#!/bin/sh ? # Author : Zara Ali # Copyright (c) Tutorialsyiibai.com # Script follows here: ? echo "What is your name?" read PERSON echo "Hello, $PERSON"下面是運(yùn)行的腳本示例:
$./test.sh What is your name? Zara Ali Hello, Zara Ali $from: http://www.yiibai.com/shell/what_is_shell.html#總結(jié)
以上是生活随笔為你收集整理的Shell教程(一):简介的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Shell 编程快速入门
- 下一篇: Shell教程(二):变量、特殊变量