SHELL與SHELL命令_第1頁
SHELL與SHELL命令_第2頁
SHELL與SHELL命令_第3頁
SHELL與SHELL命令_第4頁
SHELL與SHELL命令_第5頁
已閱讀5頁,還剩107頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、第三章第三章 shell與與shell命令命令 shell基本功能及種類shell基本概念I(lǐng)/O重定向與管道shell的啟動基本shell命令 3.1 shell基本功能與基本概念基本功能與基本概念 shell是用戶和Linux內(nèi)核之間的接口程序 。shell是一個命令語言解釋器,它擁有自己內(nèi)建的shell命令集,shell也能被系統(tǒng)中其他應(yīng)用程序所調(diào)用。 shell一個解釋型的程序設(shè)計語言,shell程序設(shè)計語言支持絕大多數(shù)在高級語言中能見到的程序元素,如函數(shù)、變量、數(shù)組和程序控制結(jié)構(gòu)。 3.1.1 shell基本功能基本功能命令解釋執(zhí)行 文件名替換.輸入輸出重定向連通管道建立系統(tǒng)環(huán)境設(shè)置

2、shell編程 3.1.2 字符與保留字字符與保留字1. 字符 (1) 白空格 :空格鍵和Tab鍵(2) 通配符 *:代表從它所在位置開始的任何字符串。 ?:代表它所在位置上的任何單個字符。 :代表一個指定范圍的字符。方括號中的字符范圍可以由直接給出的字符組成,也可以由表示限定范圍的起始字符、終止字符及中間的連字符“-”組成。 通配符示例通配符示例模式串意義*當前目錄下所有文件名,但不包括.開頭的文件。例如abc是但.abc不是*Text*當前目錄下所有文件名中包含有Text的文件名,但不包括.開頭的文件ab-dm*當前目錄下所有以a、b、c、d、m開頭的文件名ab-dm?當前目錄下所有以a、

3、b、c、d、m開頭且后面只跟有一個字符的文件名!ab-dm?ab-dm?當前目錄下所有不以a、b、c、d、m開頭且后面只跟有一個字符的文件名/dev/hd?目錄/dev下所有以hd開頭且只有三個字符的文件名(3) 注釋符與注釋注釋符與注釋在shell命令或shell編程中從字符“#”開始以后到行末的部分作為注釋,因此以“#”開頭的行是注釋行。(4) 轉(zhuǎn)義字符轉(zhuǎn)義字符字符意義字符意義字符意義a響鈴符x?16進制表示b退格鍵0?8進制f換頁tTab鍵n換行v垂直制表符”(5) Linux系統(tǒng)的特殊鍵系統(tǒng)的特殊鍵 特殊鍵意義Ctrl+D結(jié)束當前程序輸入或終止當前程序或從系統(tǒng)中注銷Ctrl+C終止當前

4、程序的執(zhí)行Ctrl+終止當前程序的執(zhí)行(系統(tǒng)內(nèi)部處理時不同于Ctrl+C)Ctrl+Z掛起當前程序執(zhí)行,將推到后臺Ctrl+S/Ctrl+Q暫停/繼續(xù)屏幕的輸出,必須配合使用ScrollLock暫停/繼續(xù)屏幕的輸出,開關(guān)鍵Ctrl+Alt+Del默認動作為重啟系統(tǒng)Alt+F#字符終端切換。比如Alt+F2將終端切換至F2Ctrl+Alt+F#從圖形介面切換終端到字符終端。比如Ctrl+Alt+F1從圖形界面切換至F12. 保留字保留字 任何編程語言或系統(tǒng)都有一定數(shù)量的保留字,bashell的部分保留字如下:!,(,),break,continue,cd,echo,eval,exec,exit,

5、export,function,getopts,hash,pwd,read,readonly,return,select,set,shift,test,time,trap,type,ulimit,unset,umask,wait,for,do,done,case,in,esac,if,else,elif,if,while,until3.1.3 文件命名及文件類型文件命名及文件類型1. 文件與文件名 文件是被命名(稱為文件名)的存儲在某種介質(zhì)(如磁盤、光盤和磁帶等)上的一組信息的集合。UNIX/Linux的文件均為無結(jié)構(gòu)的字符流形式。 文件名是文件的一種標識,一般情況下,它由字母、數(shù)字、下劃線和

6、圓點組成的字符串來構(gòu)成。 Linux支持長文件名,但要求文件名的長度限制在255個字符以內(nèi)。 2. 文件類型文件類型UNIX/Linux系統(tǒng)中有三種基本的文件類型:普通文件目錄文件設(shè)備文件(1) 普通文件普通文件 l普通文件是用于存放數(shù)據(jù)的文件,它是用戶最經(jīng)常面對的文件,它又分為文本文件和二進制文件。 l文本文件:此類文件以可閱讀的ASCII碼形式存儲在計算機存儲器中,它是以“行”為基本結(jié)構(gòu)的一種信息組織和存儲方式。l二進制文件:此類文件用戶一般不能直接讀懂它們,只有通過相應(yīng)的軟件才能對其進行操作。二進制文件一般是經(jīng)編譯程序編譯后生成的可執(zhí)行程序、圖形、圖像、聲音等。 (2) 目錄文件目錄文件

7、 l目錄文件用于存儲一組相關(guān)的文件項信息,其中包括文件名及其屬性的信息。在UNIX/Linux系統(tǒng)中它只包括文件名和i節(jié)點號等相關(guān)信息,而文件的屬性信息保存在i節(jié)點信息中。目錄文件在形式上同普通文件一樣,但具有目錄屬性,只能目錄管理命令來訪問和管理。l一個目錄文件內(nèi)至少要有兩個文件項:l.-當前目錄;l.-上級目錄。l目錄文件的大小只能增加,盡管可以從目錄中刪除文件或子目錄,但不能使目錄變小。使目錄變小的方法是刪除后重建。l目錄文件往往簡稱為目錄或子目錄,在圖形界面下稱為文件夾。因為目錄也是文件,所以它的命名規(guī)則和文件命名規(guī)則相同。 (3) 設(shè)備文件設(shè)備文件 l設(shè)備文件是UNIX/Linux系

8、統(tǒng)的一個重要特色。UNIX/Linux系統(tǒng)把每一個I/O設(shè)備都看成一個文件,與普通文件一樣處理,這樣可以使文件與設(shè)備的操作盡可能統(tǒng)一。從用戶的角度來看,對I/O設(shè)備的使用和一般文件的使用一樣,不必了解I/O設(shè)備的細節(jié)。 l設(shè)備文件與普通文件和目錄文件不同,它除了在目錄文件和文件說明信息表(i節(jié)點)中占據(jù)相應(yīng)的位置之外,并不占有實際的物理存儲塊。當用戶使用設(shè)備文件時,可通過設(shè)備的名稱得到其i節(jié)點,然后通過其中的主、次設(shè)備號取得與內(nèi)核中的設(shè)備驅(qū)動程序的聯(lián)系,從而達到訪問設(shè)備的目的。 常見設(shè)備文件類型常見設(shè)備文件類型l塊設(shè)備文件(b):以塊方式存取的設(shè)備;l字符設(shè)備文件(c):以字符方式存取的設(shè)備;

9、l管道設(shè)備文件(p):用于進程間通信的FIFO“臨時文件”。l名管道:主要用于有直接繼承關(guān)系的父子進程之間的通信。當創(chuàng)建無名管道的進程結(jié)束后,無名管道自動消失;l命名管道:命令管道是一種特殊的設(shè)備文件,在文件系統(tǒng)里以名字形式存在。當通信結(jié)束后若不主動刪除它,它不會自動消失,而仍以文件的形式存在在文件系統(tǒng)中。 l套接字文件(s):套接字分為文件套接字和網(wǎng)絡(luò)套接字。文件套接字存在于文件系統(tǒng)中,讓用戶以文件的方式訪問網(wǎng)絡(luò)連接。 硬鏈接和符號鏈接硬鏈接和符號鏈接l符號鏈接(l):用于通過此文件的內(nèi)容指向它所鏈接的文件或資源。可跨越文件系統(tǒng)或一個不存在的地方。l硬鏈接(-):兩個或多個文件名共用一個文件

10、體,也就是說一個文件可以具有多個不同的名字,但具有相同的i節(jié)點號。3.1.4 目錄結(jié)構(gòu)與路徑目錄結(jié)構(gòu)與路徑1. 目錄與目錄結(jié)構(gòu) UNIX/Linux系統(tǒng)以文件目錄的方式來組織和管理系統(tǒng)中的所有文件。所謂文件目錄就是將所有文件的說明信息采用樹型結(jié)構(gòu)組織起來即目錄。UNIX/Linux系統(tǒng)中,整個文件系統(tǒng)有一個“根”(root),然后在根上分“杈”(directory),任何一個分杈上都可以再分杈,也可以長出“葉子”?!案焙汀拌尽痹贚inux中被稱為“目錄”或“文件夾”,而“葉子”則是一個個的文件。在UNIX/Linux系統(tǒng)中文件系統(tǒng)的根目錄用符號“/”表示。Linux是一個多用戶系統(tǒng),操作系統(tǒng)

11、本身的程序或數(shù)據(jù)存放在以根目錄開始的某些專用目錄中,有時被指定為系統(tǒng)目錄。 RedHatRedHat Linux 9 Linux 9的錄結(jié)構(gòu)的錄結(jié)構(gòu)2. 工作目錄、用戶主目錄與路徑工作目錄、用戶主目錄與路徑 自從用戶登錄到系統(tǒng)中之后,每時每刻都“處在”某個目錄之中,此目錄被稱作工作目錄或當前目錄(Working Directory)。工作目錄用“.”表示,且可以隨時改變。 用戶剛登錄到系統(tǒng)中時,其工作目錄便是該用戶主目錄。root用戶的主目錄為/root,其它用戶的主目錄是在/home下的與登錄名相同的目錄。路徑是指從樹型目錄中的某個目錄層次到某個文件或目錄路線。 對任一文件在文件系統(tǒng)中的位置

12、可以由相對路徑或絕對路徑來決定。絕對路徑是指從“根”開始的路徑;相對路徑是從用戶工作目錄開始的路徑。 3.1.5 shell命令解釋及執(zhí)行命令解釋及執(zhí)行在Unix/Linux系統(tǒng)中,命令格式如下:命令名 選項 參數(shù) 在Linux系統(tǒng)中默認的分隔符為白空格。 參數(shù)是Linux命令操作的對象,而選項則影響命令對對象的操作行為。 選項是由符號“-”引導(dǎo)的字符或字符串,“-”是必須的,Linux用它來區(qū)別選項和參數(shù)。在Linux系統(tǒng)中選項有兩種形式:傳統(tǒng)Unix風(fēng)格的選項,以“-”開始,緊跟一個字符;GNU風(fēng)格的選項,以“-”開始,緊跟著完整的英文單詞來說明選項的意義。bashbash的命令行擴展與歷

13、史特性的命令行擴展與歷史特性bash命令行具有命令和文件名擴展特性。bash能列出指定目錄下部分匹配的文件名來完成文件名擴展。 bash還允許用戶對正在輸入的命令行進行編輯。 Linux的回車后命令也被保留在歷史記錄中,通過光標鍵“”和“”上下翻動歷史記錄,對出現(xiàn)的當前記錄可以進行編輯和使用。用戶還可使用格式: history n若用戶要重新執(zhí)行某條歷史記錄的命令可以使用格式:!記錄編號bash命令行編輯鍵命令行編輯鍵 編輯鍵意義Ctrl+A光標移至行首Ctrl+E光標移至行尾Alt+F光標前移至右一詞末Alt+B光標后移至左一詞前Ctrl+L清屏并在屏幕頂端重顯當前行Ctrl+-恢復(fù)上一次的

14、操作Ctrl+K刪除光標處至行末內(nèi)容Ctrl+U刪除光標處至行首內(nèi)容Alt+D刪除光標處至單詞末內(nèi)容Alt+DEL刪除光標處至單詞首內(nèi)容Ctrl+W刪除光標處左一詞至詞首內(nèi)容Ctrl+Y將剛刪除的內(nèi)容插入到光標處3.1.6 環(huán)境變量與變量環(huán)境變量與變量1. 環(huán)境變量 shell在開始執(zhí)行時就已經(jīng)定義了一些和系統(tǒng)的工作環(huán)境有關(guān)的變量,用戶還可以重新定義這些變量。環(huán)境變量可用命令env來查詢。常用的shell環(huán)境變量有:HOME:根目錄。 LOGNAME:登錄用戶名。IFS:命令行內(nèi)部域分割符(白空格):空格,tab。PATH:命令搜索路徑。TERM:終端的類型。PWD:當前工作目錄的絕對路徑名,

15、該變量的取值隨cd命令的使用而變化。PS1:主提示符,默認情況下,超級用戶的主提示符是#,普通用戶主提示符是$。PS2:輔助提示符,提示用戶繼續(xù)輸入命令的其余部分,默認的輔助提示符是“”。 2. 變量變量 在UNIX/Linux系統(tǒng)中,除了環(huán)境變量外,用戶還可以定義自己的變量。定義后的變量就像在其它程序設(shè)計語言里一樣被引用。 變量引用時需要使用“$”作為變量名的前導(dǎo)字符。 變量的定義方法:var_name=var_value 變量的使用:echo $var_name 3.1.7 標準流與輸入輸出重定向標準流與輸入輸出重定向標準設(shè)備,與標準流I/O重定向管道 標準設(shè)備標準設(shè)備當執(zhí)行一個命令時,s

16、hell通常會自動為其打開三個標準文件,即標準輸入文件、標準輸出和標準錯誤。 文件號描述符使用設(shè)備標準輸入0stdin鍵盤標準輸出1stdout屏幕標準錯誤2stderr屏幕I/OI/O重定向重定向I/O重定向(也稱作改道)是指通過文件的形式實現(xiàn)I/O輸入和輸出。I/O重定向可以通過以下符號實現(xiàn):以覆蓋方式實現(xiàn)輸出重定向。:以追加方式實現(xiàn)輸出的重定向。&:標準輸出和標準錯誤同時重定向。 3.1.8 管道管道管道機制是在兩個或多個進程之間建立一種連接,使得前一個命令的輸出作為后一個命令的輸入。管道機制常用于進程間的通信。實現(xiàn)管道機制的符號是“|”,其方法為: 命令1 | 命令2 | |

17、命令n有時候需要對某文件處理既要在屏幕上看到輸出同時又要保存一個副本。這時使用管道與tee命令配合來實現(xiàn)。tee命令命令tee命令的功能是讀取標準輸入的數(shù)據(jù),并將其內(nèi)容輸出到指定文件,其用法為:tee -ai 文件-a 追加方式。-i 忽略中斷信號tee命令的使用示例如下:ls *.txt | tee f1 f2 #將當前目錄的*.txt文件目錄顯示在屏幕上同時保存兩個副本f1和f2 3.1.9 引號機制、命令替換與參數(shù)替換引號機制、命令替換與參數(shù)替換1. 引號機制在shell中引號分為三種:單引號(),雙引號(”)和反單引號()。由單引號括起來的字符都作為普通字符。反單引號的作用是命令替換。

18、命令替換的另一種形式是:$(cmd) 它的作用與cmd相同。 雙引號的作用與單引號的功能基本一樣,可用來定義變量,所不同的是在雙引號內(nèi)可進行變量和命令替換。 反單引號與命令替換示例反單引號與命令替換示例x=pwd#通過命令pwd替換定義變量x。y=whoami#通過命令whoami替換定義變量yecho $x $y#顯示變量x和y的內(nèi)容MyVar=$(whoami) #通過命令whoami定義變量MyVarecho $MyVar $(pwd) #顯示變量MyVar和$(pwd)的值雙引號示例雙引號示例string=$PATH#定義string變量echo $string#顯示變量的值:$PAT

19、Hmyname=whoamimyself=I am a student, my uname is $myname and my work dir is pwd.myself1=I am a student, my uname is $myname and my work dir is pwd.echo $myselfecho $myself1單引號示例單引號示例lstring=$PATH#定義string變量lecho $string#顯示變量的值:$PATHlmyname=whoamilmyself=I am a student, my uname is $myname and my wor

20、k dir is pwd.lmyself1=I am a student, my uname is $myname” and my work dir is pwd.lecho $myselflecho $myself1參數(shù)替換參數(shù)替換參數(shù)替換主要是指命令行參數(shù)的替換。在執(zhí)行命令時,它的命令行參數(shù)也可以是變量,也可以包括命令替換。設(shè)有命令DispAllVar用于顯示所有的命令行參數(shù),有變量x其值為test parm,則命令DispAllVar I am whoami the value of x is $x的輸出為:I am root the value of x is test parm在程序

21、的執(zhí)行過程中whoami被替換為root,變量x的值被替換為其值test parm。 3.1.10 shell種類種類UNIX/Linux中的shell有多種類型,其中最常用的幾種是Bourne shell(sh或bsh)、Bourne again shell(bash),C shell(csh)、tc shell(tcsh)、Korn shell(ksh)和Z shell(zsh)等。 3.2 shell啟動啟動 3.2.1 shell的啟動與退出過程的啟動與退出過程shell的啟動流和工作過程如圖3-2所示。用戶登錄過程中,在輸入用戶名和密碼后,系統(tǒng)要檢查以下文件:passwd:系統(tǒng)用戶數(shù)

22、據(jù)庫。shadow:影子密碼和用戶登錄控制文件。group:系統(tǒng)組定義文件。如果用戶名和密碼合法,則啟動shell,否則要求用戶重新輸入用戶名和密碼。shell的啟動過程(續(xù)的啟動過程(續(xù))l在系統(tǒng)啟動shell過程中,依次進行以下操作:l(1) 執(zhí)行系統(tǒng)腳本文件/etc/profile;l(2) 在它的控制下再執(zhí)行/etc/profile.d/目錄的*.sh腳本文件;l(3) 執(zhí)行用戶profile文件/.bash_profile;l(4) 如果/.bashrc存在則執(zhí)行之;l(5) 如果/etc/bashrc文件存在則執(zhí)行之。l需要說明的是,以上步驟都是在當前shell內(nèi)執(zhí)行的(參見第十章

23、),目的是為用戶設(shè)置環(huán)境變量或做相關(guān)準備。一切執(zhí)行完畢之后出現(xiàn)系統(tǒng)提示符。shell的退出的退出l當用戶通過(Ctrl_D、exit或logout)注銷時,將調(diào)用用戶家目錄內(nèi)的腳本文件.bash_logoutl若用戶想讓shell退出時做些事情,比如刪除臨時文件,則可將shell命令添加到.bash_logout文件。3.2.2 修改修改.bashrc和和. bash_profile文件文件 l用戶可在shell的啟動過程加入自己的內(nèi)容,比如設(shè)置自己所需的環(huán)境變量。用戶也可以在.bashrc和.bash_profile中加入自己的用戶內(nèi)容,一般是放在文件的最后,使其在一切都準備之后執(zhí)行之。l這

24、樣可以使用戶在登錄之后就進入某個規(guī)定程序,當其退出時用戶也隨之注銷。因此可讓用戶只在某個規(guī)定封閉環(huán)境下工作,而不讓其真正進入系統(tǒng),從而也看不到系統(tǒng)的提示符,因而提高了系統(tǒng)的安全性。修改修改. bash_logout文件文件 l用戶也做自己退出時做點工作。這些退出時做的工作是通過. bash_logout實現(xiàn)的。也就是說如果用戶想在退出時讓系統(tǒng)做點工作的話,可以將做工作“命令”加入腳本文件. bash_logout中。3.3 Linux系統(tǒng)的基本命令系統(tǒng)的基本命令l目錄基本操作命令 l文件操作基本命令 l文本文件編輯與操作基本命令 l進程管理基本命令 l時間管理命令 l文件或目錄比較命令 l其它

25、操作命令 3.3.1 目錄基本操作命令目錄基本操作命令 l列目錄內(nèi)容l目錄創(chuàng)建l目錄刪除l目錄切換l顯示當前工作目錄1. 列目錄內(nèi)容(列目錄內(nèi)容(ls)l功能:列目錄內(nèi)容l用法:ls 選項 文件 l參數(shù):l-a:列所有文件及目錄(Linux規(guī)定以點”.”開頭為隱藏文件,默認情況下不會列出)l-A:同-a,但不列出.和.l-b:以八進制數(shù)字方式列不可顯示的文件l-i:列目錄時顯示i節(jié)點信息l-l:長格式列表l-F:短格式列表,文件名稱后加一符號表示屬性:可執(zhí)行文件加*,目錄/l-r:將文件以相反排序方式列出(默認按文件名ASCII碼值排序)l-R:遞歸列目錄及其子目錄l-t:按文件依修改時間排序

26、l-U:以不排序方式列目錄lsls示例示例l1) 列出目前工作目錄下所有名稱是s開頭的文件,按修改時間倒排序lls -ltr s*l2) 遞歸列/bin目錄及其子目錄lls -lR /binl3) 列當前目錄,在目錄名后加/,可執(zhí)行文件名后加*lls AF 2. 建立子目錄(建立子目錄(mkdir)l功能:建立子目錄l用法:mkdir -p -m MODE dirnames l參數(shù):l-p-p:如果要創(chuàng)建的目錄存在也不報錯,必要時可一同創(chuàng)建父目錄。l- - m, - mode=MODE:按照權(quán)限MODE創(chuàng)建子目錄。l例: l1) 在工作目錄下,建立一個名為temp的子目錄lmkdir temp

27、l2) 一次創(chuàng)建多個目錄lmkdir temp2 temp3 temp4l3) 在子目錄temp下創(chuàng)建子目錄child,若父目錄不存在,則一同創(chuàng)建之lmkdir p temp5/child3. 3. 目錄空刪除(目錄空刪除(rmdirrmdir)l功能:空目錄刪除l用法為:lrmdir -p dirNamel參數(shù):l使用-p參數(shù),rmdir在刪除一個目錄時,若其子目錄也是空的話,則一并刪除。 l說明:l若所刪目錄非空則報錯l例:lrmdir temp4. 4. 改變工作目錄(改變工作目錄(cdcd)l功能:改變工作目錄l用法:cd dirNamel說明:當不帶參數(shù)時將回到家目錄(相關(guān)于cd $

28、HOME 或cd -)。l例: lcd /tmp#切換到目錄/tmplcd /usr/bin#切換到目錄/usr/binlcd . #切換到上級目錄lcd #切換到家目錄$HOMElcd -#回到剛剛離開的目錄5. 5. 顯示當前目錄顯示當前目錄( (pwdpwd) )l功能:顯示當前目錄l用法:lpwd -P -Ll參數(shù):l選項-P,-L分別用于顯示當前目錄的物理和邏輯位置,默認為后者。l示例:lcd /usr/tmplpwd -Plpwd -L 3.3.2 3.3.2 文件操作基本命令文件操作基本命令l1. 顯示文件的內(nèi)容或合并文件(cat)l2. 文本編輯命令(vi) l3. 分屏顯示文

29、件內(nèi)容(more) l4. 使用less命令瀏覽文件 l5. 修改文件存取時間或創(chuàng)建空文件(touch) l6. 刪除文件(rm) l7. 使用mv命令給文件改名 l8. 文件和目錄復(fù)制(cp) l9. 顯示文件的開始或結(jié)尾部分(head/tail) l10. 文件的格式輸出(pr) l11. 以指定格式或進制顯示文件內(nèi)容(od) l12. 顯示文件或文件系統(tǒng)狀態(tài)信息(stat) 1. 1. 顯示文件的內(nèi)容或合并文件顯示文件的內(nèi)容或合并文件( (cat)cat)l功能:顯示文件的內(nèi)容或合并文件l法為:cat -options filenames l參數(shù)或選項:l-E:在行末顯示$符號-s:當多

30、個空行時只顯示一個l-n:為所有行添加行號 -T:將Tab鍵顯示為I(Ctrl+I)l-v:顯示所有內(nèi)容。除回車和Tab外,不可顯示的字符用或M-表示(表示Ctrl鍵,M-表示Alt鍵)l示例:lcat test.txt#顯示文件test.txt的內(nèi)容lcat -n test.txt #顯示文件test.txt的內(nèi)容,并添加行號lcat *.txt#顯示所有的*.txt文件lcat test1.txt test2.txt test.txt#合并lcat myfile#將從鍵盤輸入內(nèi)容保存到文件(Ctrl_D結(jié)束)3. 分屏顯示文件內(nèi)容(分屏顯示文件內(nèi)容(more)l功能:分屏顯示文件內(nèi)容l用法

31、:lmore -dflpcsu -lines +linenum | +/pattern filenamesl參數(shù):l+/pattern:從第一個正規(guī)表達式pattern處開始顯示l+linenum從第linenum行開始顯示l-lines:指定滿屏行數(shù)為lines,默認時為24行l(wèi)-l:忽略L(換頁)。默認時遇到L時會暫停l-s:壓縮多個空行為一行more命令的屏幕操作命令命令的屏幕操作命令 命令功能命令功能Q/q/C退出!cmd執(zhí)行shell命令=顯示當前行行號:n下一文件#d/#b向前/后滖動#行:p上一文件空格向前翻一屏:f顯示當前文件名和行號回車向前翻一行L重顯本屏內(nèi)容?/h幫助.重復(fù)

32、上一命令4. 使用使用less命令瀏覽文件命令瀏覽文件less命令和more命令一樣都是分頁處理命令,但是less命令的功能比more命令更強大。less命令提供了許多比more命令優(yōu)秀的功能:可以使用光標鍵在文本文件中前后滾屏??梢杂眯刑柣虬俜直茸鳛闀瀬頌g覽文件。可以實現(xiàn)在多個文件中進行復(fù)雜的檢索、模式匹配、高亮度顯示等操作。鍵盤操作與字處理程序如vi兼容。閱讀到文件結(jié)束或者標準輸入結(jié)束的時候less命令不會退出。屏幕底部的信息提示更容易控制使用,而且提供了更多的信息。帶有許多的附件,包括一個獨立的鍵定義程序lesskey,這樣就可以定義和使用鍵來控制less命令。 5. 修改文件存取時間

33、或創(chuàng)建空文件(修改文件存取時間或創(chuàng)建空文件(touch)功能:修改文件存取時間或創(chuàng)建空文件(touch)用法:touch -acm -r ref_file -t CCYYMMDDhhmm.ss file touch -acm -t MMDDyy files 示例:1) 將文件的修改時間改為當前時間,若不存在則創(chuàng)建之touch myfile2) 修改文件的存取時間touch a t 200601010030 myfile yourfile3) 修改文件的修改時間touch m t 200706050403 myfiletouch m d ”Feb 2 2006 18:20” /tmp/tmpf6

34、. 刪除文件(刪除文件(rm)功能:刪除文件用法:rm options file .參數(shù):-i:刪除前逐一詢問確認(此為默認選項)?;卮饡ry/yes表示確認,其它為放棄-f: 強迫刪除,刪除時不進行提示-r/-R: 遞歸刪除。刪除目錄連同其子目錄一起刪除-: 刪除以-開頭的文件示例1) 刪除文件rm myfile hisfile #交互式刪除,刪除前需要用戶確認2) 刪除文件和目錄rm -r -f myf.c mydir #同時刪除文件和目錄3) 刪除具有特殊名字的文件rm - -xyz #刪除-xyz文件rm * #刪除名字為*和的文件名 7. 使用使用mv命令給文件改名命令給文件改名功能:

35、文件更名或移動用法:mv options source destmv options source . Directory參數(shù):-b:若需覆蓋,則在覆蓋前備份。行為受-S和-V參數(shù)影響,默認時在文件名后追加-f:參見rm -i:參見rm-u:若目標文件已經(jīng)存在,則比源文件舊時覆蓋,否則不覆蓋-S suff:定義備份時使用的后綴為suff,默認為,與-b配合使用-V=:version-control控制。method可取值為:none/off:不備份;never/simple:按預(yù)設(shè)方式備份;t/numberd:文件名尾部增加備份次數(shù),比如1,2;nil/existing:若已有備份方式則使用原

36、備份方式mv命令示例命令示例1)文件更名mv file1 file2 #若file2存在,在不使用備份時將被覆蓋mv myfile /tmp/tmpf #將文件myfile移動至/tmp并更名為tmpf2)將文件fiel1,file2移動到目錄mydirmv file1 file2 mydir3)#文件移動備份(續(xù)2)cp mydir/file12 . #將dir中的file1,file2重新復(fù)制回來mv -bf V”t” file1 file2 mydir #以備份方式移動文件ls mydir/file12* file1 file1.1 file2 file2.1 8.8.文件和目錄復(fù)制(文

37、件和目錄復(fù)制(cp)功能:文件和目錄復(fù)制用法:cp options source destcp options source . directory參數(shù)-d:復(fù)制時復(fù)制符號鏈接,若不指定則復(fù)制符號鏈接指向的文件-p:復(fù)制源文件時除內(nèi)容外,保留源文件的屬性信息-l:不作復(fù)制,只創(chuàng)建硬鏈接-s:不作復(fù)制,只創(chuàng)建符號鏈接-R/-r:遞歸復(fù)制。復(fù)制目錄是一同復(fù)制的所有子目錄及文件示例cp file1 file2#將文件file1復(fù)制到file2,默認采用交互方式cp /tmp/myp.c .#將文件/tmp/myp.c復(fù)制到當前目錄cp *.c *.txt /tmp #將文件*.c和*.txt復(fù)制到目

38、錄,保持原文件名cp file1 /tmp/file2#將文件file1復(fù)制到/tmp并更名為file2cp -rp dir1 dir2#將目錄dir1復(fù)制到目錄dir2,且保持原屬性cp -R file1 file2 dir1 dir2#將文件file?和dir1復(fù)制到目錄dir2 9. 顯示文件的開始或結(jié)尾部分(顯示文件的開始或結(jié)尾部分(head/tail)功能:顯示文件的開始或結(jié)尾部分用法為:head -num | -n num tail -num | -n num 說明:若指num則,則顯示num行,否則只顯示開始或結(jié)尾的10行。10.文件的格式輸出(文件的格式輸出(pr)功能:文件的

39、格式輸出用法為:pr optioms files參數(shù):(參見教材)示例:pr prog.c#按默認方式輸出文件分2欄按默認方式輸出文件pr 2 mytxt.txt#以對分方式分2欄輸出文件mytxt.txtls /dev | pr a 3#以交叉方式分3欄顯示/dev中的內(nèi)容11. 以指定格式或進制顯示文件內(nèi)容(以指定格式或進制顯示文件內(nèi)容(od)功能:以指定格式或進制顯示文件內(nèi)容用法為:od options filesod -traditional files +offset +label 參數(shù):-A type地址類型:d,o,x和n分別代表10,8,16進制和無地址,默認16進制-j:跳過

40、#個字符-N:只讀入#個字符-t:設(shè)置輸出格式。type:a,c,d#,f#,o#,u#,x# 分別為命名字符,字符,整數(shù),浮點數(shù),八進制,無符號整數(shù)和十六進制數(shù),#為數(shù)字表示位數(shù)-w:設(shè)置每列的最大字符數(shù)為# -v輸出時不省略重復(fù)的數(shù)據(jù)-traditional接收傳統(tǒng)格式。傳統(tǒng)格式可為:-a(-ta), -b(-toC), -c(-tc), -d(-tu2), -f(-tfF), -h(-tx2), -i(-td2), -l(-td4), -o(-to2), -x(-tx2)示例od -N32 ta a.out #按命名字符顯示a.out前32個字符od tx1c a.out#按1位十六進制

41、和字符方式分別顯示a.out內(nèi)容 12. 12. 顯示文件或文件系統(tǒng)狀態(tài)信息(顯示文件或文件系統(tǒng)狀態(tài)信息(statstat)功能:顯示文件或文件系統(tǒng)狀態(tài)信息(stat)用法為:stat options FILE 參數(shù):-f:顯示文件所在文件系統(tǒng)信息-L:跟蹤符號鏈接-cFORMAT:指定顯示格式-t:精簡模式示例:stat a.out#顯示文件a.out的狀態(tài)信息stat -f a.out#顯示文件a.out所在文件系統(tǒng)的狀態(tài)信息stat my_link#顯示符號鏈接文件my_link的狀態(tài)信息stat -L my_link #顯示文件my_link的鏈接文件狀態(tài)信息 3.3.3文本文件編輯與

42、操作基本命令文本文件編輯與操作基本命令 0. 文本編輯命令(vi)1. 字符串過濾命令(grep) 2. 使用sort 命令對文件排序 3. 使用uniq命令刪除文件中重復(fù)的行 4. 文件內(nèi)容信息統(tǒng)計(wc) 0. 文本編輯命令(文本編輯命令(vi)vi有三種工作模式:命令模式、編輯模式和命令項模式。命令模式:當進入vi時,它處在命令模式。在這種模式下,用戶可通過vi的命令對文件的內(nèi)容進行處理,比如刪除、移動、復(fù)制等;也可通過命令進入編輯模式。編輯模式:用戶可在命令模式下通過i,I,a,A,o,O等命令使vi進入編輯模式。在編輯模式下,用戶能在光標處輸入內(nèi)容,或通過光標鍵移動光標。也可通過按E

43、SC鍵返回命令模式。命令項模式或叫底行模式:也是命令模式的一種,在命令模式下用戶輸入冒號后光標會跳到底行,輸入相關(guān)命令后可完成指定操作。使用方式:vi -options files vivi的命令選項的命令選項+#:進入vi后光標直接定位到第#行-r/-L:列出當前目錄內(nèi)所有因vi非正常退出而殘留的交換文件,以便恢復(fù)-r :從交換文件.*.swp中恢復(fù)文件-r file:從vi crash或非正常退出中恢復(fù)文件。-R:以只讀方式編輯文件。使用此參數(shù)時,被編輯的文件不能回存,但可以另存。vi啟動的常用方法啟動的常用方法vi file:從第一行開始或上次退出時報光標處vi +# file:從第#行

44、開始vi + file:從文件尾開始vi +/pattern file:從指定的模式匹配處開始vi -r file:從癱瘓恢復(fù)vi -L/-r:從癱瘓中列恢復(fù)列表vi的插入模式功能鍵的插入模式功能鍵 鍵或命令功能描述鍵或命令功能描述i光標處插入I行首插入a光標后追加A行末追加o當前行下面插入新行O當前行上面插入新行 vi的刪除的刪除命令命令 命令功能描述命令功能描述x刪除光標處的字符X刪除光標前的字符d0從光標處刪除到行首D從光標刪除到行末dd刪除光標所在的行dw刪除光標后的一個word#d刪除(含)光標所在后的#行#x刪除光標所在處的#個字符 vi的的修改與替換命令修改與替換命令 命令功能描

45、述命令功能描述R/cc替換/修改一整行cw修改一個字C修改光標后的部分s替換光標處的字符S替換光標所在的行r替換當前一個字符R從當前字符開始替換vi的的搜索與定位命令搜索與定位命令 命令功能描述命令功能描述0定位行首/exp后向定位到exp:#定位到#行?exp前向定位到exp$定位行末/exp定位到行首為exp的行:$|G定位到文件尾/exp$定位到行末為exp的行n|N向前/后重復(fù)以前定位n,m?|/exp在n-m行前或后向搜索expvi的的搜索與替換命令搜索與替換命令 命令功能描述:s/exp1/exp2/g將當前行的exp1替換成exp2:n,ms/exp1/exp2/g將從n到m行中

46、的exp1替換為exp2:n,mg/exp1/s/exp2/g將從n到m行中的exp1替換為exp2:g/exp1/s/exp2/g將全文中的exp1替換為exp2 vi的的文件內(nèi)容的移動、復(fù)制、刪除和保存文件內(nèi)容的移動、復(fù)制、刪除和保存 命令功能描述:n1,n2d刪除n1-n2行的內(nèi)容:n1,n2w! file將n1-n2行內(nèi)容寫入文件file:n1,n2tn3將n1-n2行內(nèi)容復(fù)制到n3:n1,n2mn3將n1-n2行內(nèi)容移動到n3vi的的緩沖區(qū)使用命令緩沖區(qū)使用命令 命令功能描述Y/yy將當前行放入無名緩沖區(qū)P/p將緩區(qū)中的內(nèi)容粘貼當前行的上/下一行”cyy將當前行放入緩沖區(qū)c”cd將當

47、前行刪除,內(nèi)容放入緩沖區(qū)c”cP/ ”cp將緩區(qū)c中的內(nèi)容粘貼當前行的上/下一行vi的退出的退出 命令功能描述:w保存文件,但不退出:x保存文件,且退出vi:q退出(若文件已更改,則不能退出):q!不保存退出:zz保存文件且退出vi:wq保存退出:wq!保存退出:wfile將現(xiàn)行文件的內(nèi)容,追加到文件file:w file將現(xiàn)行文件的內(nèi)容,寫入file:w! file將現(xiàn)行文件的內(nèi)容,寫入已存在的filevi的其它命令的其它命令 l.:重復(fù)上次執(zhí)行的命令u:作廢剛剛執(zhí)行過的命令l:set nu:設(shè)置行號:set nonu:取消行號l:n:定位到下一文件:N:定位到上一文件lCtrl+G:顯示當

48、前編輯文件信息Ctrl+L:刷新屏幕lJ:將下一行合并到當前行l(wèi):將光標處的字符進行大小寫轉(zhuǎn)換l:r file:讀入文件到光標所在行的下方l:!cmd:執(zhí)行shell命令cmdl:r!cmd:執(zhí)行cmd并將其輸出追加到光標處l:!:重復(fù)上次執(zhí)行的shell命令l:e!:重新讀入當前文件,作廢以前所操作l:e file:放棄當前文件編輯,重新以file啟動vi1. 1. 字符串過濾命令字符串過濾命令(grepgrep)功能:文件內(nèi)容信息過濾用法:grep options pattern files grep options -e pattern | -f patternfile files常用參

49、數(shù):-A/-B/-C num:在匹配模式的行后/前/前后各輸出num行內(nèi)容-b:在每行前顯示以字符為單位的偏移量-c:不顯示匹配內(nèi)容,只顯示匹配行數(shù)-E/-F:使用擴展正則/固定表達式,調(diào)用egrep/fgrep-e pattern 使用表達式pattern,用于保護以-開頭的表達式-f patternfile:從patternfile中讀取表達式-h:輸出結(jié)果前面不帶有文件名-i,-ignore-case:忽略大小寫的區(qū)別-I:忽略二進制文件-l:若有匹配,每文件只輸出一欠文件名,每個文件遇匹配后立即退出 -m NUM:在文件中搜索到NUM次出現(xiàn)時停止本文件搜索-n,-line-number

50、:輸出時顯示行號-q,-quiet:無輸出,只有返回碼。-v:反向搜索,顯示不匹配的內(nèi)容-w/-x:整字/行匹配模式字符串過濾命令字符串過濾命令grepgrep示例示例1) 使用固定表達式:在/etc/passwd內(nèi)搜索root用戶grep -F root /etc/passwd2) 多文搜索:在a*、b*和c*中搜索mytextgrep mytext abc*3) 流搜索:在當前目錄內(nèi)搜索文件名內(nèi)含有x的文件ls | grep -E x+4) 反向搜索:在文件/etc/syslog.conf中搜索非注釋行g(shù)rep v ”#” /etc/syslog.conf2. 使用使用sort 命令對文件

51、排序命令對文件排序功能:對文件排序使用方式為:sort -b -d -f -g -i -k POS1,POS2 -M -m -n -o FILE -r -S SIZE -s -T DIR -t -u-z參數(shù):見教材示例:1) 對文件按字典順序排序sort fieli fileo #將filei排序后輸出到fileo2) 以第二個域為鍵進行排序sort -k 2,2 infile #使用k指定絕對域號sort +1 -2 infile #使用相對量定義域號3) 以第二個域的第一個字符為鍵進行排序sort -k 2, 2.1 infilesort +1.0 -2.1 infile3. 使用使用un

52、iq命令刪除文件中重復(fù)的行命令刪除文件中重復(fù)的行功能:刪除文件中重復(fù)的行用法:uniq options. infile outfile參數(shù):-c:在輸出行前加入在輸入中連續(xù)出現(xiàn)的次數(shù)-s N:忽略N個字符-d:僅顯示重復(fù)行-f N:忽略N個字段-D:顯示所有重復(fù)行-w N:只比較前N個字符-u:僅顯示不重復(fù)的行-i:比較時忽略大小寫示例:#將輸入文件中的非重復(fù)行保存到另一個文件中uniq ifile ofileuniq ifile ofile 4. 文件內(nèi)容信息統(tǒng)計(文件內(nèi)容信息統(tǒng)計(wc)功能:文件內(nèi)容信息統(tǒng)計用法為:wc -c -m -w -l -L files 參數(shù):-c:統(tǒng)計字節(jié)數(shù)-m

53、:統(tǒng)計字符數(shù)-L:統(tǒng)計最長行的字節(jié)數(shù)-w:統(tǒng)計單詞數(shù)-l :統(tǒng)計行數(shù)示例:wc /etc/inittab #綜合統(tǒng)計/etc/inittab內(nèi)容信息wc w /etc/inittab#統(tǒng)計/etc/inittab的單詞數(shù)wc l /etc/inittab#統(tǒng)計/etc/inittab的行數(shù)wc c /etc/inittab#統(tǒng)計/etc/inittab的字符數(shù) 3.3.4 進程管理基本命令進程管理基本命令 1. 進程樹及進程狀態(tài)查詢(pstree) 2. 終止進程執(zhí)行(kill) 1. 進程樹及進程狀態(tài)查詢(進程樹及進程狀態(tài)查詢(pstree)功能:進程樹及進程狀態(tài)查詢用法:pstree -a

54、 -c -h|-Hpid -l -n -p -u -G|-U pid|user參數(shù):pid:顯示pid的子進程樹user:顯示用戶user的子進程樹-a:顯示每個程序的完整命令行參數(shù),括號內(nèi)的表示被換出-c:不使用精簡方式,默認情況下使用精簡方式-h:突出顯示正在執(zhí)行的進程-H:突出顯示指定進程,若指定進程不存在,pstree執(zhí)行失敗-l:長列格式顯示樹狀圖,默認情況下超長者將被截去-n:按pid排序,而非默認進程名排序-p:顯示pid-u:顯示用戶名稱。示例:pstree p | grep named #查詢進程named的pidpstree apache#查詢apache用戶的進程2. 終

55、止進程執(zhí)行(終止進程執(zhí)行(kill)功能:終止進程執(zhí)行用法:kill -s sigspec | -n signum | -sigspec pid | job.kill -l sigspec參數(shù):-l signal:列出所有可用的信號名稱-s sigspec-n signum-signum 發(fā)送的信號。可用的信號有HUP(1),INT(2),KILL(9),TERM(15)等示例:kill l#列出所有信號kill -9 323#發(fā)送信號9(KILL)終止pid為323的進程#終止名為named的進程pstree p | grep named #查詢進程信息kill -9 1656#設(shè)命令輸出中

56、named的進程號為1656,終止它 3.3.5 時間管理命令時間管理命令 1. 顯示或設(shè)定系統(tǒng)的日期與時間(date)2. 使用cal命令顯示日歷 1. 1. 顯示或設(shè)定系統(tǒng)的日期與時間(顯示或設(shè)定系統(tǒng)的日期與時間(datedate)功能:顯示或設(shè)定系統(tǒng)的日期與時間用法:date -d datestr -s datestr -u +form MMDDhhmmCCYY.ss參數(shù):MMDDhhmmCCYY.ss:設(shè)置系統(tǒng)時間 +form:設(shè)置時間顯示格式-d datestr:顯示datestr中所設(shè)定的時間(非系統(tǒng)時間)-s datestr:將系統(tǒng)時間設(shè)為datestr中所設(shè)定的時間 -u:顯示

57、目前的格林威治時間 說明:用戶可以設(shè)定顯示的格式,格式為一個+后接數(shù)個格式標記。如果是不以+作為開頭,則表示設(shè)定時間,而時間格式為MMDDhhmmCCYY.ss。只有root用戶才能設(shè)置時間。圖形界面下也可設(shè)置時間。 date使用示例使用示例ldate#以默認格式顯示系統(tǒng)當前時間ldate +%T%n%Dl#按指定格式顯示系統(tǒng)當前系統(tǒng)時間,時間和日期各占一行l(wèi)date 01311010l#設(shè)置系統(tǒng)時間:1月31日10:10:00 CST 當年ldate -s “+2 minutes”l#將系統(tǒng)時間前提2分ldate -d “2007-01-01 00:00:00 CST” +%sl#僅轉(zhuǎn)換而不

58、設(shè)置時間 (起始時間為19700101 0:00)l#將中國標準時間2007-01-01 0:0:0的時間字符的轉(zhuǎn)換為秒date顯示格式(一)顯示格式(一) 標志作用標志作用%輸出 %n換行%tTabTab%H小時(0023)%I小時(0112)%k小時(023)%l小時(112)%M分鐘(0059)%p顯示AM或PM%r直接顯示時間(12小時制)%Z顯示時區(qū)%S秒(0061)%T直接顯示時間(24 小時制)%X相當于%H:%M:%S,但有所區(qū)別%s從1970年1月1日00:00:00 UTC到目前為止的秒數(shù)date顯示格式顯示格式(二二)標志作用標志作用%a星期幾(SunSat)%A星期幾(

59、SundaySaturday)%b月份(JanDec)%B月份(JanuaryDecember)%c直接顯示日期與時間%d日(0131)%D直接顯示日期(mm/dd/yy)%h同%b%j一年中的第幾天(001.366) %m月份(0112)%U一年中的第幾周(0053)(以周日為第一天)%W一年中的第幾周(0053)(以周一第一天)%w 一周中的第幾天(06)%x直接顯示日期(mm/dd/yy)%y年份的最后兩位(0099)%Y完整年份(00009999)2. 使用使用cal命令顯示日歷命令顯示日歷功能:顯示日歷用法:cal -smjy13 month year參數(shù):-1:只顯示1個月日歷(默

60、認)-m:以星期一為每周的第一天方式顯示。-3:顯示以當前月為中心的三個月日歷-j:按儒勒歷(Julian Calendar)顯示日歷-s:以星期日為每周的第一天方式顯示(默認)-y:顯示當年歷。示例:calcal 5 20083.3.6文件或目錄比較命令文件或目錄比較命令 1. 比較兩個文件的內(nèi)容(cmp) 2. 比較文件的差異(diff) 3. 比較兩個已排序文件(comm) 4.顯示文件行的指定部分(cut) 5. 連接文件的行(paste) 6. 連接兩個文件的行(join) 7. 文本文件排版(fmt) 8. 文本文件包裝(fold) 1. 比較兩個文件的內(nèi)容(比較兩個文件的內(nèi)容(cmp)功

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論