《Linux操作系統(tǒng)03-Shell》由會員分享,可在線閱讀,更多相關(guān)《Linux操作系統(tǒng)03-Shell(35頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、單擊此處編輯母版標(biāo)題樣式,單擊此處編輯母版文本樣式,第二級,第三級,第四級,第五級,Acegene IT Co.Ltd.,*,Linux,操作系統(tǒng),shell,和常用命令,周炯,上海艾基信息技術(shù)有限公司,1,Acegene IT Co.Ltd.,內(nèi)容提要,1 shell,2,進(jìn)程和,shell,命令行,2,常用命令,2,Acegene IT Co.Ltd.,1,、使用,SHELL,1.1,什么是,Shell,1.2,系統(tǒng)中有幾種,Shell,1.3 Shell,腳本,3,Acegene IT Co.Ltd.,1.1,什么是,Shell,shell,提供了一個到,Linux,操作系統(tǒng)的界面以方便
2、運行程序。事實上,,shell,也只不過是另外一個,Linux,操作系統(tǒng)程序而已。,shell,是一個命令解釋器,它可以用來啟動、掛起、停止甚至編寫程序。,shell,是,Linux,操作系統(tǒng)的一個整體組成部分,也是,Linux,操作系統(tǒng)和,UNIX,設(shè)計的一部分。,4,Acegene IT Co.Ltd.,1.1,什么是,Shell,如果把,Linux,操作系統(tǒng)的內(nèi)核想象成一個球體的中心,那么,shell,就是包圍內(nèi)核的外層。從,shell,或其他程序向,Linux,操作系統(tǒng)傳遞命令的時候,內(nèi)核就會做出相應(yīng)的反應(yīng)。,用戶,Shell,配置的位置,/etc/,passwd,5,Acegene
3、IT Co.Ltd.,1.2 shell,這種,shell,的內(nèi)建命令都有哪些?,怎樣進(jìn)行任務(wù)控制?,這種,shell,是否支持命令行編輯?,這種,shell,是否支持命令行歷史記錄?,什么是它的重要的開機啟動文件或者配置文件?,各個,shell,的重要環(huán)境變量有哪些?,可以使用什么樣的命令行提示符?,它支持什么樣的編程框架?,6,Acegene IT Co.Ltd.,1.2,系統(tǒng)中有幾種,Shell,ash,袖珍的,sh,兼容的,shell,由,Kenneth,Almquist,編寫的,ash shell,是,Linux,操作系統(tǒng)上尺寸最小的,shell,之一。這個,shell,有,24,個
4、不同的內(nèi)建命令和,10,個不同的命令行參數(shù)。,bash,Bourne Again Shell(,與,ksh,和,sh,兼容,),bash,就是由,Brian Fox,和,Chet Ramey,編寫的,Bourne Again Shell,,它是,Linux,操作系統(tǒng)上最流行的,shell,之一。,csh,對,tcsh,的一個符號鏈接,ksh,pdksh,,公共域,Korn,(,與,ksh,兼容,)shell,pdksh,shell,在,Linux,操作系統(tǒng)中叫做,ksh,。這個,shell,和商業(yè)化,UNIX,中的版本幾乎是完全兼容的。,sh,對,bash,的一個符號鏈接,tcsh,與,csh
5、,兼容的,shell,zsh,Z-shell,一個與,csh,、,ksh,、和,sh,兼容的,shell,7,Acegene IT Co.Ltd.,1.2.2 bash,bash,就是由,Brian Fox,和,Chet Ramey,編寫的,Bourne Again Shell,,它是,Linux,操作系統(tǒng)上最流行的,shell,之一。它有,48,個內(nèi)建的命令和十多個命令行參數(shù)。,可以使用方向鍵查閱以前輸入的命令,(,歷史記錄功能,),可以對某個命令行進(jìn)行編輯,敲入命令的一部分然后再按下,Tab,鍵獲得其他部分,自動執(zhí)行腳本,初始化設(shè)置文件,/etc/,rc,/etc/,bashrc,/etc
6、/profile,用來設(shè)置全局,(,對所有用戶都起作用的,),參數(shù),比如環(huán)境變量或者在第一次登錄進(jìn)入的時候給你發(fā)送一條消息,(,比如一條歡迎標(biāo)語,),。,用戶子目錄中的,.,bashrc,登錄文件,控制,bash shell,啟動運行方式或者對不同的擊鍵,(,如退格鍵,),的響應(yīng);,用戶子目錄中,.,bash_profile,文件,,通知,s h e l l,在用戶登錄后系統(tǒng)應(yīng)該使用哪一個資源文件。,8,Acegene IT Co.Ltd.,1.3,建立,Shell,命令腳本程序,shell script,(腳本文件),編輯文件,將其所有命令寫入到該文件中,,添加執(zhí)行權(quán)限,將該文件設(shè)置為可以執(zhí)
7、行,運行,9,Acegene IT Co.Ltd.,2 Shell,命令行和進(jìn)程,2.1,對,shell,進(jìn)行定制設(shè)置,2.2,進(jìn)程管理,2.3,使用重定向和管道,10,Acegene IT Co.Ltd.,2.1,對,shell,進(jìn)行定制設(shè)置,shell,包含了“環(huán)境變量”,重要的就是,$PATH,變量,$PS1,變量,alias,命令,顯示環(huán)境變量,printenv,env,set,環(huán)境變量由資源文件預(yù)先定義,bash shell,全局性系統(tǒng)環(huán)境變量的資源文件,/etc/,rc,/etc/,bashrc,/etc/profile,用戶定制的系統(tǒng)環(huán)境變量,/.,bashrc,/.,bash_
8、profile,11,Acegene IT Co.Ltd.,2.2,進(jìn)程的定義,Linux,是一個多用戶多任務(wù)的操作系統(tǒng)。,多用戶是指多個用戶可以在同一時間使用計算機系統(tǒng);,多任務(wù)是指,Linux,可以同時執(zhí)行幾個任務(wù),它可以在還未執(zhí)行完一個任務(wù)時又執(zhí)行另一項任務(wù)。,Linux,用分時管理方法使所有的任務(wù)共同分享系統(tǒng)資源。,進(jìn)程,:Linux,系統(tǒng)上所有運行的程序都可以稱之為一個進(jìn)程。,進(jìn)程的一個比較正式的定義是在自身的虛擬地址空間運行的一個單獨的程序。,進(jìn)程與程序是有區(qū)別的,,程序只是一個靜態(tài)的指令集合,不占系統(tǒng)的運行資源;,進(jìn)程不是程序,雖然它由程序產(chǎn)生。進(jìn)程是一個隨時都可能發(fā)生變化的、動
9、態(tài)的、使用系統(tǒng)運行資源的程序。而且一個程序可以啟動多個進(jìn)程。,12,Acegene IT Co.Ltd.,2.2,在后臺運行程序,后臺運行程序的意思是這個命令繼續(xù)在內(nèi)存中執(zhí)行,而在這同時,shell,命令行的控制權(quán)已經(jīng)返回到了控制臺。,對巨型文件進(jìn)行排序或者對子目錄和其他類型的文件系統(tǒng)進(jìn)行搜索等等操作都是可以放到后臺去執(zhí)行的好例子。,運行一個進(jìn)程命令格式:,進(jìn)程名,&,nohup,進(jìn)程名,&,13,Acegene IT Co.Ltd.,2.2,報告進(jìn)程狀況,PS,ps,命令是進(jìn)程查看命令。,ps,命令語法格式如下:,ps,option,ps,ax,ps,-,ef,常用選項說明如下:,-e,:顯
10、示所有進(jìn)程。,-f,:全格式。,-u,:打印用戶格式,顯示用戶名和起始時間。,ps,重要的輸出字段,USER,進(jìn)程所有者的用戶名,PID,進(jìn)程號,STAT,進(jìn)程狀態(tài),常見的值有:,R,:可執(zhí)行的。,S,:睡眠狀態(tài)。,Z,:僵尸。,I,:空閑。,14,Acegene IT Co.Ltd.,2.2,結(jié)束進(jìn)程,kill,結(jié)束進(jìn)程的辦法有:,組合鍵,:,當(dāng)需要中斷一個前臺進(jìn)程的時候,通常是使用,組合鍵;,kill,命令,:,該命令可以終止后臺進(jìn)程。,kill,命令的語法格式很簡單,大致有以下兩種方式:,kill-s,信號,|-p -a,進(jìn)程號,kill-l,信號,命令中的參數(shù)說明如下:,-s,:指定需
11、要送出的信號。既可以是信號名也可以對應(yīng)數(shù)字。,-p,:指定,kill,命令只是顯示進(jìn)程的,pid,,并不真正送出結(jié)束信號。,-l,:顯示信號名稱列表,這也可以在,/,usr/include/linux/signal.h,文件中找到。,15,Acegene IT Co.Ltd.,2.2,休眠進(jìn)程,sleep,命令可使當(dāng)前正在執(zhí)行的進(jìn)程在規(guī)定的時間內(nèi)處于睡眠。其使用的語法格式為:,$sleep time,time,為進(jìn)程將睡眠的時間,以秒為單位,16,Acegene IT Co.Ltd.,2.3,使用重定向和管道,重定向操作符,:,mysql,Database,help,helplist.txt,
12、help,helplist.txt,管道,:,|,ps,ax|,grep,ftpd,|,wc,-l,例子:,find/home-name*.doc|,xargs,fgrep,administration|less,find*.doc|,xargs,cat|,tr,n|sort|,uniq,|tee,dict,|less,17,Acegene IT Co.Ltd.,3,、常用命令,3.1,使用,man,命令獲得幫助,3.2,瀏覽及搜索文件系統(tǒng),3.3,閱讀子目錄及文件,其他命令,df,、,date,、,who,、,cp,、,mv,、,rm,、,mkdir,、,wc,、,vi,、,gcc,、,ln
13、,、,nohup,、,nice,、,passwd,、,echo,、,mail,、,talk,、,du,、,grep,、,chown,、,chgrp,、,chmod,、,uname,18,Acegene IT Co.Ltd.,3.1,使用,man,命令獲得幫助,man,可以得到幾乎所有命令的有關(guān)信息,包括,man,命令本身。,#man,man,Linux,操作系統(tǒng)發(fā)行版本也為幾乎每個程序、工具、命令或系統(tǒng)編程調(diào)用編制了使用手冊頁。存放在,/,usr,/man,的子目錄下。,man,命令的使用手冊頁文件被命名為:,/usr/man/man1/man.1.gz,19,Acegene IT Co.Lt
14、d.,3.2,瀏覽及搜索文件系統(tǒng),3.2.1,使用,cd,命令進(jìn)入不同的目錄,3.2.2,使用,pwd,命令查看自己所在的位置,3.2.3,使用,find,命令在子目錄中搜索匹配的文件,3.2.4,使用,whereis,命令查找文件,3.2.5,使用,locate,命令定位文件,3.2.6,使用,whatis,和,apropos,命令獲取命令簡介,20,Acegene IT Co.Ltd.,3.2.1,使用,cd,命令進(jìn)入不同目錄,輸入,cd,命令,后面跟著一個路徑名,就可以直接進(jìn)入到另外一個子目錄中去,#,cd,/,usr,/bin,#,cd,.,#,cd,./.,你總能夠用下面的命令回到自
15、己的用戶子目錄,(,也就是保存自己文件的子目錄,),:,#,cd,或者,#,cd,21,Acegene IT Co.Ltd.,3.2.2,pwd,命令查看所在位置,pwd,(,顯示工作子目錄,),命令告訴你自己所在的位置,并顯示當(dāng)前工作子目錄。例如,執(zhí)行命令:,#,cd,/,usr,/bin,接著輸入:,#,pwd,會看到:,/,usr,/bin,注意:,pwd,有內(nèi)置命令和外部命令,22,Acegene IT Co.Ltd.,3.2.3,用,find,在子目錄搜索文件,find,命令在硬盤驅(qū)動器上查找文件。,-name,按名字查找。比如說,如果想查找子目錄,/,usr,中的,spell,命令
16、,可以采用下面的方法:,#find/,usr,-name spell print,-,atime,按照日期查找文件,或者可以指定一個日期范圍。例如查找最近一百天沒有使用過的程序:,#find/,usr,/bin-type f-,atime,+100 print,-,mtime,按修改時間查找,如查找建立不到一天的新文件或者二十四小時內(nèi)修改過的文件:,#find/,usr,/bin-type f-,mtime,-1 print,-,xdev,按,Windows,分區(qū)查找,,xdev,參數(shù)把查詢操作限制在當(dāng)前的文件系統(tǒng)之中,檢索子目錄下所有以,.sys,結(jié)尾的文件:,#find/,mnt,/dos-name*.sys-print,xdev,23,Acegene IT Co.Ltd.,3.2.4,使用,whereis,命令查文件,whereis,命令 可以迅速地找到文件,而且提供二進(jìn)制可執(zhí)行文件、源代碼文件和使用手冊頁存放的位置。,例如:,#,whereis,(-b),find,find,:,/,usr,/bin/find/usr/man/man1/find.1.gz,24,Acegene