




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Linux系統(tǒng)與大數(shù)據(jù)應(yīng)用1Hadoop平臺應(yīng)用常用Linux命令第章本章內(nèi)容2.1文件和目錄2.2文件操作2.3幫助和歷史2.4文件的其他操作2.5系統(tǒng)常用操作2.6本章小結(jié)
2.1文件和目錄在ubuntu中所有的文件都是基于目錄的方式存儲的,一切都是目錄,一切都可以是文件。1)/:目錄屬于根目錄,是所有目錄的絕對路徑的起始點,Ubuntu中的所有文件和目錄都在根目錄下,一般根目錄下只存放目錄,不要存放文件,/etc、/bin、/dev、/lib、/sbin應(yīng)該與跟目錄存放在相同的分區(qū)中如圖2-1所示。2.1.1Ubuntu系統(tǒng)目錄結(jié)構(gòu)圖2-1根目錄展示2)/etc/文件目錄,存放文件管理配置文件和目錄,一般情況下不應(yīng)將可執(zhí)行文件放在該文件夾下一般多用來存放配置文件。這個目錄多用來存放系統(tǒng)管理所需要的配置文件和子目錄。3)/home/:它是用戶的主要目錄,在linux中用戶都有自己的目錄,一般目錄名使用自己的用戶名來命名。4)/bin:用來存放系統(tǒng)中最常用的二進(jìn)制的可執(zhí)行文件。5)/sbin:這其中的s代表最高級用戶,用來存放管理員使用的系統(tǒng)管理程序。6)/dev:這個目錄是用來存放linux中的外部設(shè)備的,包括硬盤、鍵盤、鼠標(biāo)、usb。7)/mnt:此目錄主要是作為掛載點使用。8)/usr:存放與系統(tǒng)用戶相關(guān)的文件和目錄。9)/var:它的長度可變,特別是記錄一些數(shù)據(jù),如圖2-2所示。2.1.1Ubuntu系統(tǒng)目錄結(jié)構(gòu)9)/var:它的長度可變,特別是記錄一些數(shù)據(jù),如圖2-2所示。10)/lib:包含了可以共享的庫文件,其中有很多可以被/bin和/sbin中使用的庫文件。11)/lost+found:該目錄一般情況下是空的,只有當(dāng)虛擬機(jī)關(guān)機(jī)的時候才會有一些零散文件。12)/tmp:包含了臨時的文件,該目錄的權(quán)限較低,所有用戶都可以對其進(jìn)行訪問。13)/boot:這其中存放的包括一些啟動器程序。15)/media:自動掛載光驅(qū)。2.1.1Ubuntu系統(tǒng)目錄結(jié)構(gòu)16)/root:是超級權(quán)限用戶的主目錄,同時root權(quán)限在ubuntu中也是最高的權(quán)限,查看root權(quán)限如圖2-3所示。2.1.1Ubuntu系統(tǒng)目錄結(jié)構(gòu)圖2-3查看root權(quán)限1)創(chuàng)建目錄命令:mkdir使用mkdir命令可以創(chuàng)建目錄,如果想要創(chuàng)建目錄,那么首先就要明確想要創(chuàng)建目錄的位置,如果是打算將目錄創(chuàng)建到home下,那么我們就直接可以在終端中寫入命令行:創(chuàng)建新的文件夾如圖2-4所示。mkdir目錄名2.1.2創(chuàng)建/刪除目錄圖2-4創(chuàng)建文件夾2.1.2創(chuàng)建/刪除目錄如果打算在某個目錄中再創(chuàng)建目錄,那么我們就需要先在命令行中寫入命令,并進(jìn)入該目錄中,然后在該目錄中再進(jìn)行創(chuàng)建目錄,假設(shè)是在/usr中創(chuàng)建,進(jìn)入usr文件夾如圖2-5所示,那我們可以寫入命令行:首先是:然后,創(chuàng)建新的文件夾如圖2-6所示。圖2-5進(jìn)入usr文件夾圖2-6創(chuàng)建文件夾2.1.2創(chuàng)建/刪除目錄當(dāng)我們創(chuàng)建完目錄后就可以使用ls-命令來查看目錄是否創(chuàng)建成功,查看文件如圖2-7所示。其實一個目錄就是一個特殊類型的文件,就如同Windows中的文件夾一樣,目錄里既可以有文件,也可以有子目錄,就是因為有目錄的存在,Linux才能夠以一種目錄樹的結(jié)構(gòu)對文件系統(tǒng)進(jìn)行管理。有時候我們需要一次性的建立多級目錄,則可以使用-p參數(shù):#mkdir-p/home/dir1/dir2/dir3圖2-7查看文件2.1.2創(chuàng)建/刪除目錄2)刪除目錄命令:rmdir當(dāng)我們打算刪除home中的目錄時,應(yīng)該在終端中寫入:查看并刪除文件夾如圖2-8所示。當(dāng)我們打算刪除/usr中的目錄時,可以在終端中寫入:刪除完并查看如圖2-9。圖2-8查看并刪除文件夾圖2-9刪除完并查看2.1.3查看文件查看文件可以用ls命令ls命令:全文是List列表的含義。-a列出目錄下的所有文件,包括以.開頭的隱含文件,查看帶.的隱含文件如圖2-10所示。-b把文件名中不可輸出的字符用反斜杠加字符編號的形式列出-c輸出文件的i節(jié)點的修改時間,并以此排序。-d將目錄象文件一樣顯示,而不是顯示其下的文件。-e輸出時間的全部信息,而不是輸出簡略信息。-f-U對輸出的文件不排序。-i輸出文件的i節(jié)點的索引信息。-k以k字節(jié)的形式表示文件的大小。圖2-10查看帶.的隱含文件2.1.3查看文件-l列出文件的詳細(xì)信息,查看文件的詳細(xì)信息如圖2-11所示。-m橫向輸出文件名,并以“,”作分格符。-n用數(shù)字的UID,GID代替名稱。-o顯示文件的除組信息外的詳細(xì)信息。下面建立一個查看目錄的事例:圖2-11查看文件的詳細(xì)信息
2.1.3查看文件【例2-1】:查看etc目錄下的詳細(xì)信息:ls-l/usr/,查看usr目錄下的所有文件如圖2-12所示。圖2-12查看usr目錄下的所有文件2.1.4查看路徑查看當(dāng)前路徑使用pwd命令:pwd命令以絕對路徑的方式顯示用戶當(dāng)前工作目錄。命令將當(dāng)前目錄的全路徑名(從根目錄)寫入標(biāo)準(zhǔn)輸出。全部目錄使/分隔。第一個/表示根目錄,最后一個目錄是當(dāng)前目錄。執(zhí)行pwd命令可立刻得知您目前所在的工作目錄的絕對路徑名稱。當(dāng)我們進(jìn)入到某個目錄中的時候,想要知道當(dāng)前的路徑,那么我們就需要pwd命令來實現(xiàn),查看文件夾的路徑如圖2-13所示。圖2-13查看文件夾的路徑2.1.5tree命令首先在ubuntu系統(tǒng)中默認(rèn)是沒有tree這個命令的,需要安裝,用下面的命令就可以完成tree這個命令工具的安裝sudoaptinstalltree下面來說明如何使用tree這個命令,就是直接查看關(guān)于tree的幫助,輸入下面的命令,可以查看關(guān)于tree命令的幫助信息tree--help
其實tree命令是直接用來顯示目錄樹的,當(dāng)我們在終端直接輸入tree命令,就會自動給以樹形的形式列出當(dāng)前目錄的文件和文件夾,不加任何參數(shù),它會自動列表當(dāng)前目錄下面所有深度級別的文件和目錄,通過目錄樹來看出目錄的概況,可以更加明確地看出目錄和文件夾,tree命令的結(jié)構(gòu)圖如圖2-14所示。圖2-14tree命令的結(jié)構(gòu)圖2.1.5tree命令查看不同級別子目錄和文件使用"tree-L1"這個命令,只查看當(dāng)前第一級的目錄和文件,當(dāng)使用"tree-L2"這個命令時,只是查看當(dāng)前第二級的目錄和文件,當(dāng)使用"tree-LN"這個命令時,只查看當(dāng)前第N級的目錄和文件。當(dāng)使用下面的命令時,是將當(dāng)前文件的第二級子目錄的目錄結(jié)構(gòu)信息輸入保存到/home/xyh/tree.txt文件中。tree-L2>/home/xyh/tree.txt打開/home/xyh/tree.txt文件查看里面保存的結(jié)果是否和之前使用的命令顯示的結(jié)果是一樣的,可以看到文件保存的結(jié)果就是使用"tree-L2"這個命令的輸入結(jié)果。2.2文件操作Linux中文件的操作是十分頻繁的,如創(chuàng)建文件、創(chuàng)建文件目錄、查看文件內(nèi)容,修改文件等常見操作,在Linux常見操作系統(tǒng)中既可以采用命令行方式進(jìn)行操作,也可采用可視化方式來進(jìn)行對文件的操作,對于初學(xué)者來說建議采用命令行方式進(jìn)行文件操作。2.2.1創(chuàng)建文件1.touch命令:touch命令有兩個功能:一是用于把已存在文件的時間標(biāo)簽更新為系統(tǒng)當(dāng)前的時間(默認(rèn)方式),它們的數(shù)據(jù)將原封不動地保留下來;二是用來創(chuàng)建新的空文件。-a:只是用來更新訪問時間,不改變修改時間,建立空文件夾并查看如圖2-15所示,查看建立以及修改的時間如圖2-16所示,如圖2-17所示,創(chuàng)建文件及查看如圖2-18所示。圖2-15建立空文件并查看圖2-16查看建立以及修改的時間2.2.1創(chuàng)建文件-c:不創(chuàng)建不存在的文件-m:只更新修改時間,不改變訪問時間。-t:將時間修改為指定時間圖2-17圖2-18創(chuàng)建文件及查看2.2.1創(chuàng)建文件下面是創(chuàng)建文件的事例。
【例2-2】touchex2
在當(dāng)前目錄下建立一個空文件ex2,然后,利用ls-l命令可以發(fā)現(xiàn)文件ex2的大小為0,表示它是空文件,查看文件及其創(chuàng)建時間如圖2-19,2-20所示。圖2-19查看文件及其創(chuàng)建的時間圖2-202.2.2創(chuàng)建目錄1)創(chuàng)建目錄命令:mkdir
使用mkdir命令可以創(chuàng)建目錄,如果想要創(chuàng)建目錄,那么首先就要明確想要創(chuàng)建目錄的位置,如果是打算將目錄創(chuàng)建到home下,那么我們就直接可以在終端中寫入命令行:創(chuàng)建目錄如圖2-21所示。如果打算在某個目錄中再創(chuàng)建目錄,那么我們就需要先在命令行中寫入命令,并進(jìn)入該目錄中,然后在該目錄中再進(jìn)行創(chuàng)建目錄,假設(shè)是在/usr中創(chuàng)建,那我們可以寫入命令行:首先是:進(jìn)入文件夾如圖2-22所示。圖2-21創(chuàng)建目錄圖2-22進(jìn)入文件夾2.2.2創(chuàng)建目錄然后:在usr文件夾下創(chuàng)建新的文件夾如圖2-23所示。當(dāng)我們創(chuàng)建完目錄后就可以使用ls-命令來查看目錄是否創(chuàng)建成,查看該文件夾下的全部文件如圖2-24所示。其實一個目錄就是一個特殊類型的文件,就如同Windows中的文件夾一樣,目錄里既可以有文件,也可以有子目錄,就是因為有目錄的存在,Linux才能夠以一種目錄樹的結(jié)構(gòu)對文件系統(tǒng)進(jìn)行管理。有時候我們需要一次性的建立多級目錄,則可以使用-p參數(shù):#mkdir-p/home/dir1/dir2/dir3圖2-23在usr文件夾下創(chuàng)建新的文件夾圖2-24查看該文件夾下的全部文件2.2.3查看文件內(nèi)容在ubuntu中有很多命令,這其中有一些命令可以用來查看文件中的內(nèi)容,通過在終端寫入命令的方式,來輸出并查看其中的文件內(nèi)容。1)cat和taccat:是從第一行開始顯示,并且可以把所有的內(nèi)容全部輸出。cat-n文件名n是能夠顯示行號,了解每一行的內(nèi)容。
tac:是將文件中的內(nèi)容按照倒序的方式進(jìn)行輸出,并不是十分常用。查看文件中的內(nèi)容如圖2-25所示。圖2-25查看文件中的內(nèi)容2.2.3查看文件內(nèi)容2)more和lessmore:是將文件從第一行開始,根據(jù)輸出窗口的大小,適當(dāng)?shù)妮敵鑫募?nèi)容。當(dāng)一頁無法全部輸出時,可以用“回車鍵”向下翻行,用“空格鍵”向下翻頁。退出查看頁面,請按“q”鍵。另外,more還可以配合管道符“|”進(jìn)行使用如圖2-26所示。less:less的功能和more相似,但是使用more無法向前翻頁,只能向后翻。less可以使用【pageup】和【pagedown】鍵進(jìn)行前翻頁和后翻頁,這樣看起來更方便圖2-26查看文件中的內(nèi)容2.2.3查看文件內(nèi)容3)head和tailhead和tail通常使用在只需要讀取文件的前幾行或者后幾行的情況下使用。head的功能是顯示文件的前幾行內(nèi)容,查看文件中前五行的內(nèi)容如圖2-27所示。head-n數(shù)字文件名tail-n數(shù)字文件名查看文件中后五行的內(nèi)容如圖2-28所示。圖2-27查看文件中前五行的內(nèi)容。圖2-28查看文件中后五行的內(nèi)容2.2.3查看文件內(nèi)容4)nlnl的功能和cat-n一樣,同樣是從第一行輸出全部內(nèi)容,并且把行號顯示出來如圖2-29所示。nl文件名圖2-29顯示行號2.2.4清屏清屏命令為:clear。在ubuntu中清屏就是通過輸入一行命令將其上面的內(nèi)容清理干凈,然后繼續(xù)去完成下面的代碼,通過在ubuntu中使用clear命令來實現(xiàn)。2.3幫助和歷史ubuntu操作系統(tǒng)中可利用命令的提示,來對命令或者命令參數(shù)進(jìn)行提示,對于學(xué)習(xí)者來說要記住所有的命令是不可能的,也沒有這樣的必要,忘記命令的參數(shù)或者命令都可以利用幫助命令,這是個很有用的命令;ubuntu 中也有查看歷史操作命令,這個命令可以幫助顯示出一定時間內(nèi)的歷史命令,對于Lunux系統(tǒng)運(yùn)維人員是非常常用的命令。2.3.1help命令ubuntu中有大量的命令,可以用來完成各種操作,那么help命令就是其中的一種,就是因為ubuntu中的命令過多,所以有的時候用戶就會忘記,那么我們就可以通過help命令來幫助我們完成命令行的寫入,help命令用于顯示shell內(nèi)部命令的幫助信息。help命令只能顯示shell內(nèi)部的命令幫助信息。而對于外部命令的幫助信息只能使用man或者info命令查看。我們通過在終端寫入helphelp命令,首先初步了解help命令應(yīng)該如何使用,并且通過看help命令的反饋情況進(jìn)行對一些命令能夠大量的掌握并實現(xiàn)。我們通過使用help命令能過快速掌握每個命令的重要作用,通過help命令來實現(xiàn)其他命令的學(xué)習(xí),在help命令中包含著很多ubuntu中的常用命令,help命令如圖2-30所示。2.3.1help命令help-d:顯示cd的簡短描述,簡單了解cd的作用,了解cd的使用如圖2-31所示。help-s:顯示cd的用法,顯示cd的使用方法如圖2-32所示。help-m:比較詳細(xì)的cd使用方法。參數(shù):內(nèi)部命令:指定需要顯示幫助信息的shell內(nèi)部命令。圖2-31了解cd的用法圖2-32顯示cd命令的用法2.3.1help命令下面為使用help命令的事例如圖2-33所示?!纠?-3】:使用help命令顯示shell內(nèi)部shopt命令的幫助信息輸入如下命令,helpshopt圖2-33查看helpshopt命令2.3.2man命令在ubuntu系統(tǒng)中,man命令可以幫組我們了解命令的參數(shù),但是默認(rèn)是沒有安裝man命令的,所以我們第一步就是要先安裝man命令。在終端中輸入以下命令,但一定要在聯(lián)網(wǎng)的情況下,不然下載不了安裝包。如果沒有錯誤提示的話,就可以使用man命令了。sudoapt-getinstallmanpagessudoapt-getinstallmanpages-desudoapt-getinstallmanpages-de-devsudoapt-getinstallmanpages-devLinux中man手冊共有下面幾個章節(jié):? Standardcommands(標(biāo)準(zhǔn)命令)? Systemcalls(系統(tǒng)調(diào)用函數(shù))? Libraryfunctions(庫函數(shù))? Specialdevices(設(shè)備說明)? Fileformats(文件格式)? Gamesandtoys(游戲和娛樂)? Miscellaneous(雜項)? AdministrativeCommands(管理員命令)2.3.3自動補(bǔ)全tab在Ubuntu系統(tǒng)中,使用tab鍵就能自動補(bǔ)全命令了,但在Linux其他系統(tǒng)中卻不存在這個功能。Linux下tab可補(bǔ)全命令名,但也存在無法補(bǔ)全情況。方法一:1)需取得root權(quán)限,可root或sudo任選其一,找到bash.bashrc文件,(該文件默認(rèn)為只讀文件)打開并且打開方式自選,可用gedit/etc/bash.bashrc或在KDE中直接找到文件雙擊。2)找到以下代碼:#enablebashcompletionininteractiveshells#enablebashcompletionininteractiveshells#if[-f/etc/bash_completion]&&!shopt-oqposix;then#./etc/bash_completion#fi3)去掉#保存即可,注意#enablebashcompletionininteractiveshells前面#別去掉。若未找到該語句,可寫上以下語句:if[-f/etc/bash_completion];then./etc/bash_completionfi4)保存,重登錄。方法二:使用Insert鍵,可以實現(xiàn)tab鍵補(bǔ)全命令的開關(guān)。2.3.4查看歷史historyubuntu中的命令行包含一個功能強(qiáng)大的歷史特性,使用它可以方便的查看和重用之前使用后的命令。若想查看最近使用的命令,只需在終端中輸入history命令。該命令會把剛剛使用的命令把儲存在用戶的home目錄下的bash_history文件中的命令調(diào)出來,該文件存儲用戶最近使用過的命令,最多可保留1000個命令的歷史記錄。由于歷史命令比較多,可以使用管道把history的內(nèi)容分屏展示出來。如果直接在終端寫入history,那么將會出現(xiàn)最近使用過的命令行,history命令如圖2-34所示。圖2-34history命令2.3.4查看歷史history1)historyn:是得到第幾個歷史紀(jì)錄如圖2-35所示。2)history-c:是將shell中的記錄全部刪除。3)!Number:是在所有的記錄中找到對應(yīng)數(shù)字的那一條命令,進(jìn)行運(yùn)行,查看相應(yīng)的記錄如圖2-36所示。另外,如果想在命令歷史中搜索一個命令,同時按下Ctrl+r鍵后,輸入你感興趣的命令,命令終端就能為你自動補(bǔ)齊你所要找的命令。同時,使用鍵盤的上下鍵也能在最近的歷史命令中切換,找到你想重用的命令,按Enter鍵即可。圖2-35查看幾條歷史紀(jì)錄圖2-36查看對應(yīng)的記錄2.4.1復(fù)制/剪切命令1.復(fù)制命令ubuntu中我們可以利用兩個復(fù)制的命令對文件進(jìn)行復(fù)制,分別是cp,一個是scp,但是他們也略有不同。cp主要是用于在同一臺電腦上,在不同的目錄之間進(jìn)行copy文件;而scp主要是在不同的系統(tǒng)之間進(jìn)行copy文件。命令基本格式:1)cp文件名新文件名將文件復(fù)制成一個新的文件如圖2-37所示。圖2-37復(fù)制文件2.4.1復(fù)制/剪切命令2)cp-R目錄新目錄將這個目錄中的文件復(fù)制到另一個新的目錄下如圖2-38所示3)cp-f/--force:強(qiáng)行復(fù)制文件或目錄,不管目的文件和目錄是否存在。4)cp-r:表示遞歸copy,若source中含有目錄名,則將目錄下之檔案亦皆依序拷貝到目標(biāo)目錄下。圖2-38復(fù)制目錄2.4.1復(fù)制/剪切命令
2.剪切命令ubuntu中的剪切命令是mv(move),可以幫助我們進(jìn)行文件的移動或者是改名。1)mv文件1文件2如果文件1已存在,文件2不存在,那么該命令為改名,文件的重命名如圖2-39所示。圖2-39文件的重命名2.4.1復(fù)制/剪切命令2)sudomv目錄1/目錄2如果目錄1在目錄2中不存在,那么將文件移到目錄2下,移動目錄如圖2-40所示。3)sudomv文件/目錄如果文件在該目錄中不存在,那么將文件移動到目錄中如圖2-41所示。圖2-40移動目錄圖2-41文件的移動2.4.2重命名在ubuntu下修改文件的名字有很多種方法,一般有有mv和rename。1.mvmv文件1文件2如果文件1已存在,文件2不存在,那么該命令為改名,文件的更改如圖2-42所示。如把文件a.txt得命名為b.txt,命令行中可以寫入:mva.txtb.txtmv一次只能重命名一個文件,而且,它是移動命令。如果tofile已經(jīng)存在的話,會直接裝原文件覆蓋,從而造成文件的丟失。當(dāng)然有選項可以對已存在的文件進(jìn)行提示。圖2-42文件的更改2.4.2重命名2.renamerename可以從字面理解出重新命名的意思,所以我們在ubuntu中將會使用rename命令來進(jìn)行重新命名。首先我們可以直接在終端輸入如圖2-43所示。sudonautilus進(jìn)入圖形化界面,那么我們就可以選擇某一個文件,進(jìn)行右鍵單擊,尋找rename進(jìn)行操作。圖2-43圖形化界面2.4.2重命名我們還可以通過在終端寫入命令行的方式進(jìn)行修改,我們可以在終端寫入:rename[-v][-n][-f]perlexpr[files]1)-v(verbose)打印被成功重命名的文件。2)-n(no-act)只是顯示將被重命名的文件,而不重命名。(重命名之前可以用-n確認(rèn)需要重命名的文件)3)-f(force)覆蓋已經(jīng)存在的文件。4)perlexprPerl語言格式的正則表達(dá)式。5)files需要被替換的文件(比如*.c、*.h),如果沒給出文件名,將從標(biāo)準(zhǔn)輸入讀。2.4.3重定向在ubuntu中支持輸入輸出重定向,用符號<和>來表示。0、1和2分別表示標(biāo)準(zhǔn)輸入、標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤信息輸出,可以用來指定需要重定向的標(biāo)準(zhǔn)輸入或輸出,比如2>a.txt表示將錯誤信息輸出到文件a.txt中。同時,還可以在這三個標(biāo)準(zhǔn)輸入輸出之間實現(xiàn)重定向,比如將錯誤信息重定向到標(biāo)準(zhǔn)輸出,可以用2>&1來實現(xiàn)。ubuntu下還有一個特殊的文件/dev/null,它就像一個無底洞,所有重定向到它的信息都會消失得無影無蹤。這一點非常有用,當(dāng)我們不需要回顯程序的所有信息時,就可以將輸出重定向到/dev/null。如果想要正常輸出和錯誤信息都不顯示,則要把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤都重定向到/dev/null,例如:#ls1>/dev/null2>/dev/null還有一種做法是將錯誤重定向到標(biāo)準(zhǔn)輸出,然后再重定向到/dev/null,例如:#ls>/dev/null2>&1注意:此處的順序不能更改,否則達(dá)不到想要的效果,此時先將標(biāo)準(zhǔn)輸出重定向到/dev/null,然后將標(biāo)準(zhǔn)錯誤重定向到標(biāo)準(zhǔn)輸出,由于標(biāo)準(zhǔn)輸出已經(jīng)重定向到了/dev/null,因此標(biāo)準(zhǔn)錯誤也會重定向到/dev/null。2.4.3重定向定義:將原本從一個輸入輸出設(shè)備的輸入輸出操作,轉(zhuǎn)向到從另外一個輸入輸出設(shè)備進(jìn)行,linux系統(tǒng)中sh啟動進(jìn)程時會默認(rèn)打開三個輸入輸出文件:標(biāo)準(zhǔn)輸入文件、標(biāo)準(zhǔn)輸出文件和標(biāo)準(zhǔn)錯誤文件,他們的文件句柄分別是0,1,2,有時候你需要將進(jìn)程的輸出到一個文件的時候,你會這樣處理:a>file.txt(假定a是程序名稱),那么sh就會將默認(rèn)的兩個輸出文件1和2改為:file.txt,這就叫重定向。在ubuntu中應(yīng)該輸入的命令:afo.txt2>fe.txtsh就將0的輸入文件該向為:fa.txt,也就是將輸入改為從文件fa.txt,重定向如圖2-44所示。圖2-44重定向2.4.3重定向在ubuntu中重定向常見重命令如下:? command>filename把標(biāo)準(zhǔn)輸出重定向到一個新文件中? command1>fielname把標(biāo)準(zhǔn)輸出重定向到一個文件中? command2>filename把標(biāo)準(zhǔn)錯誤重定向到一個文件中? command>filename2>&1把標(biāo)準(zhǔn)輸出和標(biāo)準(zhǔn)錯誤一起重定向到一個文件中? command<filename>filename2把command命令以filename文件作為標(biāo)準(zhǔn)輸入,以file。name2文件作為標(biāo)準(zhǔn)輸出? command<filename把command命令以filename文件作為標(biāo)準(zhǔn)輸入? command<&m把文件描述符m作為標(biāo)準(zhǔn)輸入? command>&m把標(biāo)準(zhǔn)輸出重定向到文件描述符m中? command<&-把關(guān)閉標(biāo)準(zhǔn)輸入2.4.4管道命令在ubuntu中,bash命令執(zhí)行的時候有輸出的數(shù)據(jù)會出現(xiàn),那么如果這群數(shù)據(jù)必需要經(jīng)過幾道手續(xù)之后才能得到我們所想要的格式,那么我們應(yīng)該如何來設(shè)定?這就牽涉到管道命令的問題了,管線命令使用的符號是“|”。管道命令的定義:一般在Linux命令中(管道)之前的命令會輸出大量的結(jié)果,(管道)之后的命令一般就是帶有條件的,只將之前滿足條件的結(jié)果顯示出來。管道命令只會處理stdout,忽略stderr,管道命令后面接的第一個數(shù)據(jù)必定是命令,這個命令必須能夠接收stdin。管道命令的使用方法:Linux管道命令具有過濾特性,一條命令通過標(biāo)準(zhǔn)輸入端口接收一個文件中的數(shù)據(jù),命令執(zhí)行后產(chǎn)生的結(jié)果數(shù)據(jù)又通過標(biāo)準(zhǔn)輸出端口送給后一條命令,作為第二條命令的輸入數(shù)據(jù)。第二條數(shù)據(jù)也是通過標(biāo)準(zhǔn)輸入端口接收輸入數(shù)據(jù)。注:管道命令必須能夠接受來自前一個命令的數(shù)據(jù)成為standardinput繼續(xù)處理。那么管道命令的簡單使用為:假設(shè)我們要讀取last這個指令中,那個root登入的『次數(shù)』應(yīng)該怎么作?那么我所進(jìn)行的步驟是:首先我們要在終端輸入last,目的是將這一段時間所有人登入數(shù)據(jù)取出來,然后使用grep將上面的輸出數(shù)據(jù)(stdout)當(dāng)中的root擷取出來,最后,使用wc這個可以計算行數(shù)的指令將上一步的數(shù)據(jù)計算行數(shù),管道命令如圖2-45所示。圖2-45管道命令2.4.4管道命令下面我們開始了解下簡單的管道命令:1)顯示當(dāng)前目錄以k結(jié)尾的文件,應(yīng)該在終端寫入如圖2-46所示。ls|grepk$2)不顯示當(dāng)前目錄以字母o到z結(jié)尾的文件,注意^符號在中括號內(nèi)和中括號外的區(qū)別,顯示文件如圖2-47所示。ls|grep[^o-z]$圖2-46顯示k結(jié)尾的文件圖2-47顯示文件2.4.4管道命令3)不顯示當(dāng)前目錄以單個字符e結(jié)尾的文件,應(yīng)在終端輸入如圖2-48所示。ls|grep[^e]$4)下面我們來了解幾個配合管道使用最多的文字處理和統(tǒng)計命令:? wc統(tǒng)計行數(shù),字?jǐn)?shù),字符數(shù)? cut對文本進(jìn)行分塊提取? sort對文本排序,默認(rèn)從小到大,先數(shù)字再字母? uniq去除相鄰重復(fù)行,先sort再uniq可以去除所有重復(fù)行? tee將管道前面命令所得結(jié)果輸出成為一個文件,再將結(jié)果傳遞給后面的命令? tr字符操作,最常用的是大小寫轉(zhuǎn)換與刪除文本中指定字符以上幾個命令的應(yīng)用:圖2-48顯示以單個字符e結(jié)尾的文件2.4.4管道命令? wc使用參數(shù)l計算,顯示當(dāng)前文件夾下數(shù)字1到3開頭的文件的數(shù)量,顯示1~3開頭的文件如圖2-49所示。ls|grep^[1-3]|wc-ltr命令的應(yīng)用:將當(dāng)前目錄文件名,小寫轉(zhuǎn)換大寫,反之大寫轉(zhuǎn)小寫('[A-Z]''[a-z]'),大小寫轉(zhuǎn)換如圖2-50所示。ls|tr'[a-z]''[A-Z]'圖2-49顯示1~3開頭的文件圖2-50大小寫轉(zhuǎn)換2.4.5鏈接快捷方式Linux的鏈接有2種,一種是軟連接,也就是你說的符號鏈接,一種是硬鏈接,軟連接(符號鏈接)類似于windows的快捷方式,也就是說原始文件必須存在,如果原始文件丟了,那么軟連接也就失效了。硬鏈接是指向原始文件對應(yīng)的數(shù)據(jù)存儲位置,不能為目錄建立硬鏈接文件,硬鏈接與原始文件必須位于同一分區(qū)(文件系統(tǒng))中。或者簡單說,硬鏈接就好比是把原始文件復(fù)制了一份,文件大小都不會發(fā)生變化,即使刪除了原始文件,硬鏈接依舊可以使用。1.硬鏈接:1)原文件名和鏈接文件名都指向相同的物理地址。2)目錄不能有硬鏈接;硬鏈接不能跨越文件系統(tǒng)。3)文件在磁盤中只有一個復(fù)制,以節(jié)省硬盤空間。4)由于刪除文件要在同一個索引節(jié)點屬于唯一的鏈接時才能成功,因此可以防止不必要的誤刪除如圖2-51所示。2.4.5鏈接快捷方式2.軟鏈接:1)用ln–s命令創(chuàng)建文件的符號鏈接2)符號鏈接是Linux特殊文件的一種,作為一個文件它的資料是它所鏈接的文件的路徑名,類似于Windows下的快捷方式3)可以刪除原有的文件而保存鏈接文件,沒有防止誤刪除功能如圖2-52所示。圖2-52軟連接 硬鏈接:(hardlink)同一個文件系統(tǒng),不能指向目錄文件(默認(rèn))。2.4.6文件搜索ubuntu中文件查找命令有很多,一般文件分類為兩種,一種是應(yīng)用程序,即二進(jìn)制文件,一種是文檔,就是比較常見的文本文件。對于前者,我們一般使用whereis、which等命令,對于后者,我們習(xí)慣使用find命令,當(dāng)然find命令是linux是最強(qiáng)大的文件搜索命令。ubuntu下最強(qiáng)大的搜索命令為“find”。它的格式為:find<指定目錄><指定條件><指定動作>;比如使用find命令搜索在根目錄下的所有interfaces文件的所在位置。應(yīng)該輸入命令為:“find/-name‘interfaces'”使用Locate搜索ubuntu中的文件,會比find命令快。因為它查詢的是數(shù)據(jù)庫(/var/lib/locatedb),數(shù)據(jù)庫包含本地所有的文件信息。使用locate命令在根目錄下搜索interfaces文件,應(yīng)該在終端寫入命令:查找命令如圖2-53所示。locateinterfaces2.4.6文件搜索使用“whereis”命令可以搜索ubuntu中的所有可執(zhí)行文件即二進(jìn)制文件。使用whereis命令可以搜索grep二進(jìn)制文件。在終端寫入的命令為:查找二進(jìn)制文件如圖2-54所示。whereisgrep我們也可以使用which命令查看系統(tǒng)命令是否存在,并返回系統(tǒng)命令所在的位置。使用which命令查看grep命令是否存在以及存在的目錄應(yīng)在終端輸入:查找存在的目錄如圖2-55所示。whichgrep圖2-54查找二進(jìn)制文件圖2-55查找存在目錄2.4.6文件搜索使用type命令查看系統(tǒng)中的某個命令是否為系統(tǒng)自帶的命令。使用type命令查看cd命令是否為系統(tǒng)自帶的命令;應(yīng)在終端輸入:typecd查看grep是否為系統(tǒng)自帶的命令。應(yīng)在終端輸入:typegrep查看某個命令是否是自帶的命令如圖2-56所示。圖2-56查看某個命令是否是自帶命令2.4.7壓縮文件和解壓縮zip可能是目前使用得最多的文檔壓縮格式。它最大的優(yōu)點就是在不同的操作系統(tǒng)平臺,比如Linux,Windows以及MacOS,上使用。缺點就是支持的壓縮率不是很高,而tar.gz和tar.gz2在壓縮率方面做得非常好,這就是兩種壓縮文件的不同點,各有各的好處。
2.4.7壓縮文件和解壓縮1)zip:在ubuntu中壓縮成zip文件的命令是:zipFileName.zipDirName
解壓縮的命令為:unzipFileName.zip2)tar(tar.gz):在ubuntu中壓縮(壓縮并打包)的命令是:tar-cvffile.tarfiletar-zcvffile.tar.gzfile解壓縮的命令是:tar-zxvffile.tar.gz3)bz2:壓縮命令是:tar-jcvfname.tar.bz2name解壓命令是:tar-jxvfname.tar.bz24).bz
解壓命令為:bzip2-dFileName.bzbunzip2FileName.bz2.4.7壓縮文件和解壓縮5).rar
解壓縮的命令是:raraFileName.rar我們在ubuntu中的解壓文件一般都是tar.gz的,所以我們應(yīng)該更加多多地了解tar.gz文件的解壓方式。當(dāng)我們我們在ubuntu中解壓jdk時,應(yīng)該在終端輸入:解壓jdk如圖2-57所示。sudotar-zxvfjdk-8u144-linux-x64.tar.gz圖2-57解壓jdk2.5系統(tǒng)常用操作在ubuntu中有很多常用的系統(tǒng)操作,可以幫助我們在一定的時間內(nèi)去了解相應(yīng)的東西,例如時間,年份,系統(tǒng)的進(jìn)程,我們可以通過一些常用的操作方式來了解,下面將要進(jìn)入這一節(jié)的學(xué)習(xí)。2.5.1日歷cal
cal命令可以用來顯示公歷(陽歷)日歷。公歷是現(xiàn)在國際通用的歷法,又稱格列歷,通稱陽歷。“陽歷”又名“太陽歷”,系以地球繞行太陽一周為一年,為西方各國所通用,故又名“西歷”,在ubuntu中可以查看該月份的整體日歷,當(dāng)然也可以看到某一年,某一個月的,我們可以通過在終端寫入:顯示日歷如圖2-58所示。calmonthyear圖2-58顯示日歷2.5.1日歷cal我們也可以通過ubuntu知道當(dāng)前月份,我們可以在終端輸入:cal,顯示當(dāng)月的日歷如圖2-59所示。圖2-59顯示當(dāng)月的日歷2.5.1日歷cal也可單獨指定年,這時輸出全年的日歷。注意,這時屏幕可能顯示不下,從而只能看到后面幾個月的日歷,顯示某一年的日歷如圖2-60所示。2.5.1日歷cal要想知道cal命令的語法格式,可在命令行中鍵入cal--help查看如圖2-61所示)如果在cal命令中使用超出范圍的數(shù),則會提示出錯如圖2-62所示。2.5.2時間datedate命令主要用于顯示以及修改系統(tǒng)時間,而hwclock命令用于查看設(shè)置硬件時間,以及同步硬件時間與系統(tǒng)時間。如果想要通過ubuntu命令行來了解當(dāng)前時間,可以在終端寫入:date,顯示日期以及具體的時間如圖2-63所示。如果想要知道當(dāng)前時間和日期,輸入命令如圖2-64所示。echo`date+%Y-%m-%d_%H:%M:%S`2.5.2時間date如果想要知道當(dāng)前的日期,輸入命令:日期的顯示如圖2-65所示。echo`date+%Y/%m/%d`如果打算修改時間,那么需要寫入命令:date-s時間字符串。只修改系統(tǒng)的日期,不修改時間(時分秒)如圖2-66所示date-s2012-08-022.5.2時間date或者只修改時間不修改日期date-s10:08:00當(dāng)然也可以同時修改日期和時間date-s"2012-05-1804:53:00"上述修改只是修改了linux的系統(tǒng)時間,CMOS中的時間可能還沒有改變,所以為了保險,需要使用clock-w把當(dāng)前系統(tǒng)時間寫入到CMOS中。系統(tǒng)時間和CMOS時間的關(guān)系。系統(tǒng)時間是由linux操作系統(tǒng)來維護(hù)的;CMOS時間是CMOS芯片保存的時間。系統(tǒng)啟動時,操作系統(tǒng)將從CMOS讀出時間記錄為系統(tǒng)時間,同時操作系統(tǒng)也會自動每隔一段時間將系統(tǒng)時間寫入CMOS中。如果使用date命令修改系統(tǒng)時間后馬上重啟電腦,操作系統(tǒng)還沒有將系統(tǒng)時間同步到CMOS,這樣開機(jī)后就還是沒有修改前的時間了,所以為了保險起見,最還還是手動使用命令clock將系統(tǒng)時間同步到CMOS中。2.5.3進(jìn)程操作進(jìn)程是一個其中運(yùn)行著一個或多個線程的地址空間和這些線程所需要的系統(tǒng)資源。在ubuntu中有很多命令。那么哪些命令可以查看所有運(yùn)行中的進(jìn)程呢?進(jìn)程在ubuntu系統(tǒng)中是十分重要的。進(jìn)程操作的命令一般用:ps命令與其他命令的搭配來時實現(xiàn)。1.查看進(jìn)程1)ps命令及其參數(shù)ps命令最經(jīng)常使用地還是用于監(jiān)控后臺進(jìn)程地工作情況,因為后臺進(jìn)程是不和屏幕鍵盤這些標(biāo)準(zhǔn)輸入/輸出設(shè)備進(jìn)行通信地,所以如果需要檢測其情況,便可以運(yùn)用ps命令了.輸入下面的ps命令,顯示所有運(yùn)行中的進(jìn)程:ps-e顯示所有進(jìn)程,環(huán)境變量
ps-f全格式
ps-h不顯示標(biāo)題
ps-l長格式
ps-w寬輸出
psa顯示終端上地所有進(jìn)程,包括其他用戶地進(jìn)程
psr只顯示正在運(yùn)行地進(jìn)程
psx顯示沒有控制終端地進(jìn)程2.5.3進(jìn)程操作在ubuntu的終端輸入,顯示進(jìn)程和環(huán)境變量如圖2-67所示,如圖2-68所示。ps-e顯示所有進(jìn)程和環(huán)境變量.2.5.3進(jìn)程操作利用”psa”命令顯示終端上地所有進(jìn)程,包括其他用戶地進(jìn)程使用”psr”命令只顯示正在運(yùn)行地進(jìn)程。顯示正在進(jìn)行的進(jìn)程如圖2-69所示。2.5.3進(jìn)程操作2)top命令top命令提供了運(yùn)行中系統(tǒng)的動態(tài)實時視圖。在命令提示行中輸入top如圖2-70所示。
top按q退出,按h進(jìn)入幫助。2.5.3進(jìn)程操作2.關(guān)閉進(jìn)程(1)利用終端1)ps-ef顯示所有進(jìn)程,之后確定要終止的進(jìn)程的PID,顯示所有進(jìn)程如圖2-71所示。2)用killpid命令終止進(jìn)程,終止進(jìn)程如圖
溫馨提示
- 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電梯禮儀考試題及答案
- 券商期權(quán)考試題及答案
- 保育員培訓(xùn)內(nèi)容
- 工業(yè)互聯(lián)網(wǎng)平臺軟件定義網(wǎng)絡(luò)SDN在智能工廠生產(chǎn)數(shù)據(jù)采集與分析中的應(yīng)用優(yōu)化報告
- 康復(fù)醫(yī)療器械市場未來趨勢報告:2025年需求與產(chǎn)品創(chuàng)新展望
- 腫瘤免疫治療中心介紹
- 電商售后服務(wù)2025年提升策略與售后服務(wù)效果評估報告
- 安安全全的排隊健康活動
- 戶外施工安全知識
- 安防部工作培訓(xùn)
- 廣東省廣州市增城區(qū)2022-2023學(xué)年一年級下學(xué)期期末數(shù)學(xué)試卷
- 2.1.4-駕駛員、押運(yùn)員安全生產(chǎn)責(zé)任制考核表
- 化工原理課件-兩流體間的熱量傳遞
- 《人工智能基礎(chǔ)概念》考試復(fù)習(xí)題庫(濃縮300題)
- 端子壓接技術(shù)標(biāo)準(zhǔn)
- 消費(fèi)經(jīng)濟(jì)學(xué)完整整套教學(xué)課件
- 機(jī)械特性測試儀操作規(guī)程
- 超星學(xué)習(xí)通藝術(shù)美學(xué)(蘇州大學(xué))章節(jié)答案
- 護(hù)理查房高位截癱584
- GA 1524-2018射釘器公共安全要求
- 植物學(xué)第三小組名錄
評論
0/150
提交評論