版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
從零開始:Linux基礎(chǔ)教程之命令的使用介紹bashshell如果您使用過Linux系統(tǒng),那么您知道當(dāng)?shù)卿洉r(shí),將會(huì)看到像這樣的提示符:$您所看到的特殊的提示符可能看起來很不一樣。它可能包含系統(tǒng)的主機(jī)名、當(dāng)前的工作目錄名,或者兩者都有。但是不管這個(gè)特殊的提示符看起來像什么,有一件事是肯定的。打印出這個(gè)提示符的程序叫“shell”,極有可能您的特殊的shell是一個(gè)叫bash的程序。您在運(yùn)行bash嗎?您可以通過輸入下面的命令來檢查您是否正在運(yùn)行bash:$echo$SHELL/bin/bash如果上面的命令行報(bào)錯(cuò)或者不會(huì)類似地響應(yīng)我們的示例,那么您可能正在運(yùn)行一個(gè)不同于bash的shell。關(guān)于bashBash是“Bourne-againshell”的首字母縮寫,它是大多數(shù)Linux系統(tǒng)夠與Linux系統(tǒng)進(jìn)行交互。當(dāng)您輸完命令,您可以通知shell執(zhí)行exit或logout命令,在此您將返回到登錄提示符。順便提一下,您還可以通過在bash提示符下按control-D來注銷。缺省的shell。shell的任務(wù)是執(zhí)行您的命令,使您能使用“cd”您可能已經(jīng)發(fā)現(xiàn),目不轉(zhuǎn)睛地盯著bash提示符可不是世界上最讓人感到有勁的事。那么,讓我們來開始用bash來瀏覽我們的文件系統(tǒng)。在提示符下,輸入下面的命令(不包括$):$cd/我們只告訴bash您想在/(也稱為根目錄)中工作;系統(tǒng)上的所有目錄形成一棵樹,/被認(rèn)為是這棵樹的頂部,或者是根。cd設(shè)置當(dāng)前您正在工作的目錄,也稱為“當(dāng)前工作目錄”。路徑
要看bash的當(dāng)前工作目錄,您可以輸入:$pwd/在上面的示例中,cd的/參數(shù)叫做路徑。它告訴cd我們要轉(zhuǎn)到什么地方。特別是,/參數(shù)是一個(gè)絕對(duì)路徑,意味著它指定了相對(duì)于文件系統(tǒng)樹的根的位置。絕對(duì)路徑這里有幾個(gè)其它的絕對(duì)路徑:/dev/usr/usr/bin/usr/local/bin您可以看到,所有絕對(duì)路徑有一個(gè)共同點(diǎn)就是,它們都以/開頭。通過路徑/usr/local/bin,我們告訴cd進(jìn)/開入/目錄,接著進(jìn)入這個(gè)目錄之下的usr目錄,然后再進(jìn)入local和bin。絕對(duì)路徑總是通過是否以頭來判斷。相對(duì)路徑另一種路徑叫相對(duì)路徑。在Bash中,cd以及其它命令總是解釋那些相對(duì)于當(dāng)前目錄的路徑。相對(duì)路徑絕不會(huì)以/開頭。這樣,如果我們?cè)?usr中:$cd/usr那么,我們可以使用相對(duì)路徑來轉(zhuǎn)到/usr/local/bin目錄:$cdlocal/bin$pwd/usr/local/bin使用“..”相對(duì)路徑還可以包含一個(gè)或多個(gè)..目錄。..目錄是指向父目錄的專門目錄。那么,繼續(xù)前面的示例:$pwd/usr/local/bin$cd..$pwd
/usr/local您可以看到,現(xiàn)在我們的當(dāng)前目錄是/usr/local。我們能夠“后退”到相對(duì)于我們所在的當(dāng)前目錄的一個(gè)目錄。此外,我們還可以將\\\\\"..\\\\\\"添加到一個(gè)現(xiàn)有的相對(duì)路徑中,使我們可以進(jìn)入與我們已在目錄并排的目錄,例如:$pwd/usr/local$cd../share$pwd/usr/share相對(duì)路徑示例相對(duì)路徑可以變得相當(dāng)復(fù)雜。這里有幾個(gè)示例,所有的都沒有顯示出結(jié)果的目標(biāo)路徑。請(qǐng)?jiān)囍茢嘁幌?,輸入這些命令后,您最終將會(huì)轉(zhuǎn)到什么地方:$cd/bin$cd../usr/share/zoneinfo$cd/usr/X11R6/bin$cd../lib/X11$cd/usr/bin$cd../bin/../bin現(xiàn)在,試驗(yàn)一次,看看您的推斷是否正確。理解“.”在我們結(jié)束cd的介紹之前,我們還需要討論一些更多的內(nèi)容。首先,還有另一個(gè)叫.的專門的目錄。它表示“當(dāng)前目錄”。然而該目錄不為cd命令使用,它通常用來執(zhí)行一些當(dāng)前目錄中的程序,如下所示:$./myprog在上面的示例中,駐留在當(dāng)前工作目錄中的myprog可執(zhí)行文件將被執(zhí)行。cd和主目錄如果我們想要轉(zhuǎn)到主目錄,我們可以輸入:$cd
沒有參數(shù),cd將轉(zhuǎn)到主目錄,對(duì)于超級(jí)用戶來說是/root,對(duì)于一般用戶來說通常是/home/username。但是,如果我們想要指定一個(gè)主目錄中的文件,將會(huì)怎樣呢?可能我們想要將一個(gè)文件參數(shù)傳給myprog命令。如果該文件在主目錄中,我們可以輸入:$./myprog/home/drobbins/myfile.txt但是,使用像這樣的絕對(duì)路徑并不總是很方便。幸好,我們可以使用~(代字符)字符來完成同樣的事:$./myprog~/myfile.txt其他用戶的主目錄Bash將把單獨(dú)的~擴(kuò)展為指向主目錄,然而您還可以用它來指向其他用戶的主目錄。例如,如果我們想要引用fred的主目錄中的名為fredsfile.txt的文件,可以輸入:$./myprog~fred/fredsfile.txt使用Linux命令介紹\"ls\"現(xiàn)在,我們將快速地看一看ls命令。很可能,您已經(jīng)很熟悉ls,并且知道只輸入ls本身將列出當(dāng)前工作目錄的內(nèi)容:$">[b]通過指定-a選項(xiàng),您可以看到目錄中的所有文件,包括隱文藏件—那些以.開頭的文件。您可以在下面的示例中看到,ls-a將顯示.和..專門的目錄鏈接:$">[b]遞歸和索引節(jié)點(diǎn)清單。您可以使用-d來查看目錄本身,而您還可以用-R來完成相反的工作—不僅只查看一個(gè)目錄內(nèi)部,而且要遞歸地查看該目錄內(nèi)所有的目錄內(nèi)部!我們將不會(huì)有對(duì)應(yīng)該選項(xiàng)的任何示例輸出(因?yàn)樗话阏己艽蟮钠?,但是為了感覺一下它是怎樣工作的,您可以試幾個(gè)ls-R和ls-Rl命令。最后,ls的-i選項(xiàng)可以用來在清單中顯示文件系統(tǒng)對(duì)象的索引節(jié)點(diǎn)號(hào):$ls-i/usr1409X11R6314258i686-linux43090libexec13394sbin1417bin1513i686-pc-linux-gnu5120local13408share8316distfiles1517include776man23779src43doc1386info93892portage36737ssl70744gentoo-x861585lib5132portage.old784tmp理解索引節(jié)點(diǎn),第1部分文件系統(tǒng)的每個(gè)對(duì)象都分配到一個(gè)獨(dú)一無二的索引,叫做索引節(jié)點(diǎn)號(hào)。這可能看起來微不足道,但是理解索引節(jié)點(diǎn)對(duì)于理解許多文件系統(tǒng)操作來說很重要。例如,請(qǐng)考慮出現(xiàn)在每個(gè)目錄中的.和..鏈接。為了完全理解..目錄實(shí)際上是什么,我們將先來看一看/usr/local的索引節(jié)點(diǎn)號(hào):
$ls-id/usr/local5120/usr/local/usr/local目錄有一個(gè)5120索引節(jié)點(diǎn)號(hào)?,F(xiàn)在,我們來看一看/usr/local/bin/..的索引節(jié)點(diǎn)號(hào):$ls-id/usr/local/bin/..5120/usr/local/bin/..您可以看到,/usr/local/bin/..具有和/usr/local相同的索引節(jié)點(diǎn)號(hào)!這就是我們抓住的問題的實(shí)質(zhì)。過去,我們認(rèn)為/usr/local是這個(gè)目錄本身。現(xiàn)在,我們發(fā)現(xiàn)索引節(jié)點(diǎn)5120實(shí)際上是這個(gè)目錄,并且我們發(fā)現(xiàn)了指向該索引節(jié)點(diǎn)的兩個(gè)目錄條目(叫做“鏈接”)。/usr/local和/usr/local/bin/..都鏈接到索引節(jié)點(diǎn)5120。雖然索引節(jié)點(diǎn)5120只在磁盤中的一地方存在,但是多個(gè)目錄條目都鏈接到它上面。事實(shí)上,通過使用ls-dl命令,我們可以看到索引節(jié)點(diǎn)5120被引用的總次數(shù)$ls-dl/usr/localdrwxr-xr-x8rootroot240Dec2220:57/usr/local如果我們看一看從左起的第二欄,我們可以看到目錄/usr/local(索引節(jié)點(diǎn)5120)被引用了8次。在我的系統(tǒng)中,引用該索引節(jié)點(diǎn)的不同路徑有這些:/usr/local/usr/local/./usr/local/bin/../usr/local/games/../usr/local/lib/../usr/local/sbin/../usr/local/share/../usr/local/src/..使用Linux命令mkdir我們來快速地看一看mkdir命令,它可以用來創(chuàng)建新目錄。下面的示例創(chuàng)建了三個(gè)新目錄:tic、tac和toe,都在/tmp下:$cd/tmp$mkdirtictactoe缺省情況下,mkdir不會(huì)為您創(chuàng)建父目錄;鄰接的上一元素的完整路徑必須存在。因此,如果您想要?jiǎng)?chuàng)建目錄won/der/ful,您將需要發(fā)出三個(gè)單獨(dú)的mkdir命令:$mkdirwon/der/ful
mkdir:cannotcreatedirectory`won/der/ful':Nosuchfileordirectory$mkdirwon$mkdirwon/der$mkdirwon/der/fulmkdir-p然而,mkdir有一個(gè)很方便的-p選項(xiàng),該選項(xiàng)告訴mkdir創(chuàng)建所有缺少的父目錄,如下所示:$mkdir-peasy/as/pie總之,非常簡(jiǎn)單。要學(xué)習(xí)更多關(guān)于mkdir命令的知識(shí),請(qǐng)輸入manmkdir來閱讀手冊(cè)頁。除cd(它內(nèi)置在bash中)之外,這幾乎適用于這里所涉及的所有命令(比如manls)。touch現(xiàn)在,我們將要快速地看一看cp和mv命令,這些命令用來復(fù)制、重命名以及移動(dòng)文件和目錄。為了開始該概述,我們將首先用touch命令在/tmp中創(chuàng)建一個(gè)文件:$cd/tmp$touchcopyme如果文件存在,touch命令將更新文件的“mtime”(請(qǐng)回想ls-l輸出中的第六欄)。如果文件不存在,那么將創(chuàng)建一個(gè)新的空文件?,F(xiàn)在您應(yīng)該有一個(gè)大小為零的/tmp/copyme文件。echo和重定向既然文件存在,我們來把一些數(shù)據(jù)添加文到件中。我們可以使用echo命令來完成,它帶有自己參數(shù),并且把這些參數(shù)打印到標(biāo)準(zhǔn)輸出。首先,單獨(dú)的echo命令是這樣的:$echo\"firstfile\"firstfile帶有輸出重定向的同樣的echo命令為:$echo\"firstfile\">copyme大于符號(hào)告訴shell將echo的輸出寫到名為copyme的文件中。如果該文件不存在,將創(chuàng)建這個(gè)文件;如果該文件存在,將覆蓋這個(gè)文件。通過輸入ls-l,我們可以看到copyme文件為10個(gè)字節(jié)長(zhǎng),因?yàn)樗╢irstfile這個(gè)詞和換行符:$ls-lcopyme-rw-r--r--1rootroot10Dec2814:13copymecat和cp
為了在終端顯示文件的內(nèi)容,要使用cat命令:$catcopymefirstfile現(xiàn)在,我們可以使用cp命令的基本調(diào)用來由原始的copyme文件創(chuàng)建copiedme文件:$cpcopymecopiedme通過觀察,我們發(fā)現(xiàn)它們確實(shí)是相互獨(dú)立的文件;它們的索引節(jié)點(diǎn)號(hào)不同:$ls-icopymecopiedme648284copiedme650704copymemv現(xiàn)在,我們來用“mv”命令將“copiedme”重命名為“movedme”。其索引節(jié)點(diǎn)號(hào)將仍然是同一個(gè);但是,指向該索引節(jié)點(diǎn)的文件名將改變。$mvcopiedmemovedme$ls-imovedme648284movedme只要目標(biāo)文件和源文件駐留在同一文件系統(tǒng)上,被移動(dòng)的文件的索引節(jié)點(diǎn)號(hào)就將仍然不變。在本教程系列的第3部分,我們將進(jìn)一步看一下文件系統(tǒng)。創(chuàng)建鏈接和刪除文件硬鏈接當(dāng)談及目錄條目和索引節(jié)點(diǎn)之間關(guān)系時(shí),我們提到了鏈接這個(gè)術(shù)語。Linux實(shí)際有兩種鏈接。到此為止我們所討論的這種鏈接叫硬鏈接。一個(gè)給定的索引節(jié)點(diǎn)可以有任意數(shù)目的硬鏈接,該索引節(jié)點(diǎn)一直存在于文件系統(tǒng),直到所有的硬鏈接消失??梢允褂胠n命令來創(chuàng)建新的硬鏈接$cd/tmp$touchfirstlink$lnfirstlinksecondlink
$ls-ifirstlinksecondlink15782firstlink15782secondlink您可以看到,硬鏈接工作于索引節(jié)點(diǎn)級(jí)別,指向特殊的文件。在Linux系統(tǒng)上,硬鏈接有幾個(gè)局限性。第一,您只能給文件建立硬鏈接,而不能給目錄建立硬鏈接。的確如此;即便.和..是系統(tǒng)給目錄創(chuàng)建的硬鏈接,也不允許您(“root”用戶也不行)創(chuàng)建任何您自己的硬鏈接。硬鏈接的第二個(gè)局限性是它們不能跨文件系統(tǒng)。這意味著,如果您的/和/usr存在于不同的文件系統(tǒng),您不能創(chuàng)建從/usr/bin/bash到/bin/bash的鏈接。符號(hào)鏈接實(shí)際上,符號(hào)鏈接(symboliclink,或“symlinks”)比硬鏈接更常用到。符號(hào)鏈接是一種專門的文件類型,在這種文件類型中,鏈接通過名稱引用另一個(gè)文件,而不是直接引用索引節(jié)點(diǎn)。符號(hào)鏈接不阻止文件被刪除;如果目標(biāo)文件消失,那么符號(hào)鏈接僅僅是不可用,或“被破壞”。通過將-s選項(xiàng)傳給ln,可以創(chuàng)建符號(hào)鏈接。$ln-ssecondlinkthirdlink$ls-lfirstlinksecondlinkthirdlink-rw-rw-r--2agriffisagriffis0Dec3119:08firstlink-rw-rw-r--2agriffisagriffis0Dec3119:08secondlinklrwxrwxrwx1agriffisagriffis10Dec3119:39thirdlink->secondlink在ls-l輸出中,可以用三種方式區(qū)分符號(hào)鏈接和一般文件。第一,請(qǐng)意注第一欄包含一個(gè)l字符的輸出表明是符號(hào)鏈接。第二,符號(hào)鏈接的大小是目標(biāo)文件(本例是secondlink)的字符數(shù)。第三,輸出的最后一欄顯示目標(biāo)文件名。符號(hào)鏈接通常比硬鏈接更靈活。您可以給任何類型的文件系統(tǒng)對(duì)象(包括目錄)創(chuàng)建符號(hào)鏈接。又因?yàn)榉?hào)鏈接的實(shí)現(xiàn)是基于路徑的(而不是索引節(jié)點(diǎn)),所以創(chuàng)建指向另一個(gè)文件系統(tǒng)上的對(duì)象的符號(hào)鏈接是完全可行的。但是,這一事實(shí)也使符號(hào)鏈接理解起來很復(fù)雜。請(qǐng)考慮我們想要在/tmp中創(chuàng)建一個(gè)指向/usr/local/bin的鏈接的情況。我們應(yīng)該輸入:$ln-s/usr/local/binbin1$ls-lbin1lrwxrwxrwx1rootroot14Jan115:42bin1->/usr/local/bin或者還可以輸入:
$ln-s../usr/local/binbin2$ls-lbin2lrwxrwxrwx1rootroot16Jan115:43bin2->../usr/local/bin您可以看到,兩個(gè)符號(hào)鏈接都指向同一目錄。但是,如果我們的第二個(gè)符號(hào)鏈接在任何時(shí)刻被移動(dòng)到另一個(gè)目錄,由于相對(duì)路徑的緣故,它將遭到“破壞”。$ls-lbin2lrwxrwxrwx1rootroot16Jan115:43bin2->../usr/local/bin$mkdirmynewdir$mvbin2mynewdir$cdmynewdir$cdbin2bash:cd:bin2:Nosuchfileordirectory因?yàn)?tmp/usr/local/bin這個(gè)目錄不存在,我們不能再把目錄轉(zhuǎn)到bin2;換句話說,bin2現(xiàn)在被破壞了。由于這個(gè)原因,有時(shí)避免用相對(duì)路徑信息來創(chuàng)建符號(hào)鏈接是個(gè)好主意。但是,在許多情況下,相對(duì)的符號(hào)鏈接很管用。請(qǐng)考慮一個(gè)示例,在這個(gè)示例中您想要給/usr/bin中的一個(gè)程序創(chuàng)建一個(gè)別名:#ls-l/usr/bin/keychain-rwxr-xr-x1rootroot10150Dec1220:09/usr/bin/keychain作為root用戶,您可能想要給“keychain”創(chuàng)建一個(gè)別名,比如“kc”。在這個(gè)示例中,我們有root訪問權(quán),由bash提示符改變?yōu)椤?”可以證明。我們之所以需要root訪問權(quán)是因?yàn)橐话阌脩舨荒茉?usr/bin中創(chuàng)建文件。作為root用戶,我們可以像下面這樣給keychain創(chuàng)建一個(gè)別名:#cd/usr/bin#ln-s/usr/bin/keychainkc當(dāng)這個(gè)解決方法作起用時(shí),如果我們想要把兩個(gè)文件都移到/usr/local/bin時(shí),它將會(huì)出現(xiàn)問題。#mv/usr/bin/keychain/usr/bin/kc/usr/local/bin因?yàn)樵诜?hào)鏈接中,我們使用了絕對(duì)路徑,而我們的kc符號(hào)鏈接仍然指向/usr/bin/keychain,它已不存在了——另一個(gè)被破壞的符號(hào)鏈接。符號(hào)鏈接中的相對(duì)路徑和絕對(duì)路徑都各具優(yōu)點(diǎn),您應(yīng)該使用適合于您
的特殊應(yīng)用的路徑類型。一般情況下,相對(duì)路徑或絕對(duì)路徑都能工作得很好。在這種情況下,下面的示例將起作用:#cd/usr/bin#ln-skeychainkc#ls-lkclrwxrwxrwx1rootroot8Jan512:40kc->keychainrm既然我們知道怎樣使用cp、mv和ln,現(xiàn)在我們?cè)搶W(xué)習(xí)怎樣把對(duì)象從文件系統(tǒng)中刪除了。通常,這用rm命令來完成。要?jiǎng)h除文件,只需在命令行中指定它們:$cd/tmp$touchfile1file2$ls-lfile1file2-rw-r--r--1rootroot0Jan116:41file1-rw-r--r--1rootroot0Jan116:41file2$rmfile1file2$ls-lfile1file2ls:file1:Nosuchfileordirectoryls:file2:Nosuchfileordirectoryrmdir要?jiǎng)h除目錄,您有兩種選擇。您可以刪除目錄中所有的對(duì)象,然后使用rmdir來刪除目錄本身:$mkdirmydir$touchmydir/file1$rmmydir/file1$rmdirmydirrm和目錄或者,您可以使用rm命令的recursiveforce選項(xiàng)來告訴rm刪除您指定的目錄以及目錄中包含的所有對(duì)象:$rm-rfm
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度終止勞動(dòng)合同及離職后保密及競(jìng)業(yè)限制協(xié)議
- 心衰合并肺栓塞的護(hù)理查房
- 債權(quán)委托轉(zhuǎn)讓協(xié)議
- 注冊(cè)商標(biāo)申請(qǐng)書
- 支部條例心得體會(huì)
- 2025保姆雇傭合同協(xié)議書
- 2025西瓜產(chǎn)銷合同簡(jiǎn)單
- 2025教師試用期合同范本
- 【七年級(jí)下冊(cè)地理中圖版】5.2 地方文化特色對(duì)旅游的影響 同步練習(xí)
- 物流快遞前臺(tái)工作總結(jié)
- 2024年醫(yī)師定期考核臨床業(yè)務(wù)知識(shí)考試題庫及答案(共三套)
- 2014新PEP小學(xué)英語六年級(jí)上冊(cè)-Unit5-What-does-he-do復(fù)習(xí)課件
- 建筑材料供應(yīng)鏈管理服務(wù)合同
- 孩子改名字父母一方委托書
- 2024-2025學(xué)年人教版初中物理九年級(jí)全一冊(cè)《電與磁》單元測(cè)試卷(原卷版)
- 江蘇單招英語考綱詞匯
- 2024年事業(yè)單位財(cái)務(wù)工作計(jì)劃例文(6篇)
- 2024年工程咨詢服務(wù)承諾書
- 青桔單車保險(xiǎn)合同條例
- 車輛使用不過戶免責(zé)協(xié)議書范文范本
- 2023-2024學(xué)年天津市部分區(qū)九年級(jí)(上)期末物理試卷
評(píng)論
0/150
提交評(píng)論