linux的終端切換到某一目錄方法:
創(chuàng)新互聯(lián)堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時代的桐城網(wǎng)站設(shè)計(jì)、移動媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
①可以使用cd命令切換到指定的文件夾,cd是change directory的縮寫。
②命令格式:cd [目錄名]
③有幾個符號作為目錄名有特殊的含義:
“/”代表根目錄、“..”代表上一級目錄、“~”代表HOME目錄、“-”代表前一目錄。
Linux是一套免費(fèi)使用和自由傳播的類Unix操作系統(tǒng),是一個基于POSIX和UNIX的多用戶、多任務(wù)、支持多線程和多CPU的操作系統(tǒng)。它能運(yùn)行主要的UNIX工具軟件、應(yīng)用程序和網(wǎng)絡(luò)協(xié)議。它支持32位和64位硬件。Linux繼承了Unix以網(wǎng)絡(luò)為核心的設(shè)計(jì)思想,是一個性能穩(wěn)定的多用戶網(wǎng)絡(luò)操作系統(tǒng)。
Linux操作系統(tǒng)誕生于1991 年10 月5 日(這是第一次正式向外公布時間)Linux存在著許多不同的Linux版本,但它們都使用了Linux內(nèi)核。Linux可安裝在各種計(jì)算機(jī)硬件設(shè)備中,比如手機(jī)、平板電腦、路由器、視頻游戲控制臺、臺式計(jì)算機(jī)、大型機(jī)和超級計(jì)算機(jī)。
嚴(yán)格來講,Linux這個詞本身只表示Linux內(nèi)核,但實(shí)際上人們已經(jīng)習(xí)慣了用Linux來形容整個基于Linux內(nèi)核,并且使用GNU 工程各種工具和數(shù)據(jù)庫的操作系統(tǒng)。
模式:
當(dāng)打開終端,第一行所見的就叫命令行提示符。我的是這樣的:
命令行提示符,顧名思義就是提示在其后面輸入命令。在你輸入新的一行命令前,這個命令提示符都會出現(xiàn)。分別解析一下上邊代表什么意思:
oscar 這是當(dāng)前用戶的名字。Linux是一個多用戶的操作系統(tǒng),Windows也可以。不過Linux的多用戶管理更方便。我們一般建議每個使用Linux系統(tǒng)的用戶都創(chuàng)建一個屬于自己的賬戶,便于隱私管理。
@ 這個符號我們應(yīng)該不陌生,我們的電子郵件一般都是 name@domain點(diǎn)抗 這樣的不是嗎。這個@就表示英語里的at,是“在...里面,落戶在...的,在其中”的意思。@前面是用戶名,后面是所在的域。
oscar-laptop 這是當(dāng)前電腦/操作系統(tǒng)的名字。上面說了在@后面的是一個域,所以 oscar@oscar-laptop 就表示oscar-laptop這臺電腦的oscar這個用戶。oscar-laptop這個名稱在安裝此Linux系統(tǒng)時可以任意指定。
: 這是分隔符,沒有什么特別的涵義。
~ 這是當(dāng)前所在目錄的名字,會隨著用戶進(jìn)入不同目錄而改變。~表示當(dāng)前用戶的家目錄,有點(diǎn)類似Windows系統(tǒng)的“我的文檔”這個目錄。
$ 指示你所具有的權(quán)限的字符。在Linux系統(tǒng)中有兩種可能:
因此, oscar@oscar-laptop:~$ 的意思就是:
你目前是以oscar這個用戶登錄;你的電腦名稱為oscar-laptop;你目前位于 ~ 目錄下,就是你的用戶家目錄。你是普通用戶,擁有有限的權(quán)限。
參數(shù)里可以包含多個參數(shù),由空格隔開,也可以包含數(shù)字,字母,等等。可以說,參數(shù)沒有固定的格式,但是一般來說還是遵循一定的規(guī)范的。
如果我們要一次加好幾個短參數(shù),可以用空格隔開,例如:
多個短參數(shù)也可以合并在一起,例如上面的命令等價于:
請注意:參數(shù)的字母的大小寫是有區(qū)別的,大寫的T和小寫的t通常表示不同意思。
如果有多個長參數(shù),是不能像多個短參數(shù)那樣合并寫的。而是只能以空格隔開,例如:
當(dāng)然我們也可以組合使用短參數(shù)和長參數(shù),例如:
有時候,同一個意義的參數(shù)有短參數(shù)和長參數(shù)兩種形式,效果是一樣的,可以任選哪一種。
有一些參數(shù)你還需要給它賦一個值才行。而且短參數(shù)和長參數(shù)的賦值的方式不盡相同。
例如,短參數(shù)賦值,通常是這樣的:
表示把10賦值給p參數(shù)。
如果是長參數(shù),則一般是這樣賦值:
長參數(shù)的方式更加容易理解,但是不如短參數(shù)那么簡潔。
正如我們說過的,參數(shù)的形式?jīng)]有絕對的準(zhǔn)則。我們上面給出的規(guī)則是一般的,有些命令的參數(shù)格式可能是我們沒怎么見過的。
有些參數(shù)就不一樣,而且取決于命令。例如對于 ls 這個命令,假如后面帶了一個參數(shù),這個參數(shù)是一個目錄的路徑名的話,那么就會列出此目錄下的文件。
兩種類型的文件
簡單起見,我們把Linux下的文件分為兩大類:
在一個文件系統(tǒng)中,我們總有一個被稱為根目錄的東西,這個根目錄里包含了所有其他目錄和文件。Linux中有且只有一個根目錄,就是
是的,就是用一個斜杠表示。沒有比根目錄再高一階的目錄了,因?yàn)闆]有目錄包含根目錄,根目錄就是Linux最頂層的目錄。
Linux系統(tǒng)安裝后,包含了很多的文件和目錄(雖然其實(shí)都是文件),我們很容易迷失在“茫茫文?!敝?。
當(dāng)然我們不可能一下子列出Linux中的所有文件,那不現(xiàn)實(shí)。但是我們可以向你展示如何在Linux的目錄樹中來回穿梭,你可以知道此刻你位于哪個目錄下。就好比能看懂Linux這個很大的“地圖”。
pwd 是英語Print Working Directory的縮寫,表示“打印當(dāng)前工作目錄”。
which 命令:獲取命令的可執(zhí)行文件的位置,which命令用于顯示一個命令的對應(yīng)的可執(zhí)行程序的位置??赡苈犉饋碛悬c(diǎn)拗口。
在Linux下,每一條命令其實(shí)對應(yīng)了一個可執(zhí)行程序。我們在終端中輸入命令,再按回車的時候,其實(shí)就是執(zhí)行了對應(yīng)的那個程序。比如說,pwd命令對應(yīng)的pwd程序就是存在于Linux中的。
which命令接受一個參數(shù),也就是你想要知道其可執(zhí)行程序位于哪里的那個命令。
我們來測試一下,就拿pwd命令來測試好了:
得到:
因此,pwd命令對應(yīng)的pwd這個可執(zhí)行程序位于/bin目錄中。
我們也可以注意到Linux中的可執(zhí)行程序和Windows中不太一樣,在Windows中可執(zhí)行程序一般以.exe結(jié)尾,而Linux中一般是沒有后綴名的。
Linux中的可執(zhí)行程序也不是都位于相同目錄的。我們可以來測試一下which命令本身對應(yīng)的可執(zhí)行程序位于哪里:
我們可以看到,which命令對應(yīng)的可執(zhí)行程序which并不位于/bin中,而是在/usr/bin中。
Ubuntu的終端默認(rèn)是有顏色標(biāo)注的,一般來說:
如果在你的終端里沒有標(biāo)明顏色,那么你可以加上參數(shù) --color=auto 來開啟顏色標(biāo)注。如下:
如果你不需要顏色標(biāo)注,那么可以用 --color=none 來關(guān)閉顏色標(biāo)注。如下:
當(dāng)然,為了避免每次都輸入這么一串額外的參數(shù),其實(shí)我們可以在一個配置文件里修改,使得永久顯示顏色或不顯示顏色。
在Linux,以點(diǎn)( . )開頭的文件是隱藏文件,不過這里不包括開頭的兩個 . 和 .. ,這兩個的含義如下:
- . (一個點(diǎn))表示當(dāng)前目錄。在當(dāng)前情況下,就是 /home/oscar 。
- .. (兩個點(diǎn))表示上一級目錄。因?yàn)楫?dāng)前目錄是/home/oscar,所以上一級目錄就是 /home 。
我們有一個大寫的參數(shù) -A,它的作用和小寫的-a幾乎一樣,唯一不同就是-A不列出 . 和 .. 這兩個文件。
-l 這個參數(shù)算是ls命令最常用的了。加上-l參數(shù)使得ls命令列出一個顯示文件和目錄的詳細(xì)信息的列表。
當(dāng)我們僅用ls -l時,列出的文件詳細(xì)信息中,文件的大小是以字節(jié)為單位的。有時這不是太直觀。我們可以再加一個參數(shù)-h,h是humain readable的縮寫,表示“適合人類閱讀的”。所以我們的命令變成了:
t是time的縮寫。
du命令也是很有用的,因?yàn)樗梢宰屛覀冎牢募湍夸浰嫉目臻g大小。
雖然ls -l命令也可以顯示文件和目錄的大小,但是du命令統(tǒng)計(jì)的才是真正的文件大小。du命令會深入遍歷每個目錄的子目錄,把所有文件的大小都做一個統(tǒng)計(jì)。
du是英語disk usage的縮寫,表示“磁盤使用/占用”。
我們的du命令也可以使用參數(shù)。
cat命令和less命令:顯示文件內(nèi)容,這兩個命令只能顯示文件內(nèi)容,并不能對文件內(nèi)容進(jìn)行修改。
一次性顯示文件的所有內(nèi)容,如果你想要在顯示的文件內(nèi)容上加上行號,那么你可以加上 -n 這個參數(shù)。
分頁顯示文件內(nèi)容
head命令和tail命令:顯示文件的開頭和結(jié)尾。
顯示文件開頭,默認(rèn)情況下,head會顯示文件的頭10行。我們也可以指定顯示的行數(shù),用 -n 這個參數(shù):
就會顯示文件的頭5行。
顯示文件結(jié)尾。默認(rèn)情況下,tail會顯示文件的尾10行。
我們也可以指定顯示的行數(shù),用 -n 這個參數(shù):
就會顯示文件的尾5行。
tail命令還可以配合 -f 參數(shù)來實(shí)時追蹤文件的更新:
這樣,就會檢查文件是否有追加內(nèi)容,如果有,就顯示新增內(nèi)容。
默認(rèn)地,tail -f會每過1秒檢查一下文件是否有新內(nèi)容。你也可以指定間隔檢查的秒數(shù),用 -s 參數(shù):
可以用快捷鍵 Ctrl + c 來終止tail -f 命令。
touch命令和mkdir命令:創(chuàng)建文件和目錄
創(chuàng)建一個空白文件。事實(shí)上,Linux沒有一個命令是專門用來創(chuàng)建一個空白文件的。touch命令其實(shí)一開始的設(shè)計(jì)初衷是修改文件的時間戳,就是可以修改文件的創(chuàng)建時間或修改時間,讓電腦以為文件是在那個時候被修改或創(chuàng)建的。但是touch命令如果后面跟著的文件名是不存在的,那么它就會新建一個。
事實(shí)上,我們可以用touch命令同時創(chuàng)建多個文件:
如果我所要創(chuàng)建的文件的名字里有空格怎么辦呢?
很簡單,加上雙引號:
創(chuàng)建一個目錄。
mkdir也可以同時創(chuàng)建好幾個目錄:
如果我所要創(chuàng)建的目錄的名字里有空格怎么辦呢?
很簡單,加上雙引號:
我們還可以用 -p 參數(shù)來遞歸創(chuàng)建目錄結(jié)構(gòu)。
比如:
cp命令和mv命令:拷貝文件和移動文件
拷貝文件或目錄
cp是英語copy的縮寫,表示“拷貝”。所以,顧名思義,此命令用于拷貝。cp命令不僅可以拷貝單個文件,還可以拷貝多個文件,也可以拷貝目錄。
復(fù)制文件到另一個目錄只需要把cp命令的第二個參數(shù)換成目錄名。
拷貝目錄
要拷貝目錄,只要在cp命令之后加上-R參數(shù)(注意是大寫的R)??截惖臅r候,目錄中的所有內(nèi)容(子目錄和文件)都會被拷貝。
使用通配符*
*號(星號)是很常用的正則表達(dá)式的符號,被稱為“通配符”,
所以如果我們用如下命令:
那么就會把當(dāng)前目錄下所有txt文件拷貝到folder這個子目錄當(dāng)中。
又如:
那么就會把當(dāng)前目錄下凡是以ha開頭的文件都拷貝到folder目錄中。
移動文件
mv是英語move的縮寫,表示“移動”。mv命令有兩個功能:
用mv命令來移動目錄很簡單,不需要額外的參數(shù),就跟移動文件一樣:
當(dāng)然,我們也可以使用通配符。
除了移動文件,mv命令還可以用于重命名文件。
事實(shí)上,Linux中沒有一個專門的命令用于重命名文件。之所以mv命令可以重命名文件,其實(shí)還是歸因于它的機(jī)制:移動文件。經(jīng)過mv移動之后,原始文件變成了新的名字的文件,文件內(nèi)容是不變的,這不就相當(dāng)于重命名了嗎?
以上命令會將new_file重命名為renamed_file。
刪除文件和目錄
rm命令可以刪除一個文件,多個文件,目錄,甚至你的整個Linux系統(tǒng)(如果你愿意的話)。
以上命令刪除當(dāng)前目錄下的new_file_copy這個文件。
我們也可以同時刪除多個文件,只要用空格隔開每個文件即可。例如:
保險(xiǎn)起見,用rm命令刪除文件時,可以加上 -i 參數(shù),這樣對于每一個要刪除的文件,終端都會詢問我們是否確定刪除。i是英語inform的縮寫,表示“告知,通知”。
有兩種回答:
y:是英語yes的縮寫,表示“是”。那么回車確認(rèn)后,文件就刪除了。
n:是英語no的縮寫,表示“否”。那么回車確認(rèn)后,文件不會刪除。
如果在rm命令后加上-f參數(shù),那么終端不會詢問用戶是否確定刪除文件,不論如何,文件會立刻被強(qiáng)制刪除。
f是英語force的縮寫。
以上命令會強(qiáng)制刪除file文件。
r是英語recursive的縮寫,表示“遞歸的”。所以使用-r參數(shù),可以使rm命令刪除目錄,并且遞歸刪除其包含的子目錄和文件。
這個命令也挺危險(xiǎn)的,用得不好可能你的子目錄和文件都沒了。
以上命令會刪除one這個目錄,包括其子目錄和文件。
其實(shí),也存在一個命令
看著和 rm -r 挺像的。但是這個命令有個局限性:只能刪除空的目錄。
創(chuàng)建鏈接
事實(shí)上,Linux下有兩種鏈接類型:
為了區(qū)分這兩種鏈接類型的不同,我們首先來談一談如Linux這樣的操作系統(tǒng)中文件在硬盤上的存放。
文件在硬盤上存儲時,大致來說(請注意我用了“大致來說”),每個文件有兩部分:
文件名的列表是儲存在硬盤的其他地方的,和文件內(nèi)容分開存放,這樣方便Linux管理。
注意:為什么我上面要用“大致說來”呢?因?yàn)榇颂幬覀兒喕嗣枋觯鋵?shí)每個文件有三部分:
我們這里簡化地將文件分為兩部分:文件名和文件內(nèi)容。因?yàn)槲覀儾幌氚咽虑閺?fù)雜化,我們想要理解兩種鏈接類型的區(qū)別,暫時只要知道這些就夠了。
每個文件的文件內(nèi)容被分配到一個標(biāo)示號碼,就是inode。因此每個文件名都綁定到它的文件內(nèi)容(用inode標(biāo)識)。原理如下圖:
下面我們學(xué)習(xí)如何創(chuàng)建硬鏈接和軟連接。
比之軟鏈接,硬鏈接的使用幾率小很多。但是我們還是要學(xué)習(xí)一下,畢竟可能會用到。
硬鏈接的原理:使鏈接的兩個文件共享同樣的文件內(nèi)容,也就是同樣的inode。
所以一旦文件1和文件2之間有了硬鏈接,那么你修改文件1或文件2,其實(shí)修改的是相同的一塊內(nèi)容。只不過我們可以用兩個文件名來取到文件內(nèi)容。
硬鏈接有一個缺陷:只能創(chuàng)建指向文件的硬鏈接,不能創(chuàng)建指向目錄的硬鏈接。但是軟鏈接可以指向文件或目錄。當(dāng)然了,事實(shí)上,通過一些參數(shù)的修改,也可以創(chuàng)建指向目錄的硬鏈接,但是比較復(fù)雜,這里不再詳述。所以對于目錄的鏈接,我們一般都是用軟鏈接。
硬鏈接原理圖:
要創(chuàng)建硬鏈接,直接用ln命令,不加任何參數(shù):
我們可以用ls -i命令查看一下(-i參數(shù)可以顯示文件的inode)。對于硬鏈接來說,刪除任意一方的文件,共同指向的文件內(nèi)容并不會從硬盤上被刪除。
我們用ls -l命令查看文件信息的時候,第二列的那個2,其實(shí)是表示擁有相同inode號的文件數(shù)。不難理解,因?yàn)樗鼈冎赶蛳嗤奈募?nèi)容,所以共享一個inode。
這個第二列的數(shù)字,一般來說對于普通文件,都是1,因?yàn)椴煌募node不同嘛。對于目錄來說,這第二列的數(shù)字標(biāo)明目錄內(nèi)所含文件數(shù)目。
其實(shí),軟鏈接才是真正像我們在Windows下的快捷方式的,其原理很相似。
創(chuàng)建硬鏈接是ln不帶任何參數(shù),但是要創(chuàng)建軟鏈接需要加上-s參數(shù)。s是symbolic(符號的)的縮寫。
file2指向的不再是file1的文件內(nèi)容(和硬鏈接不同),而是指向file1的文件名。
軟鏈接原理圖:
用ls -l命令查看一下,會發(fā)現(xiàn)形式和之前的硬鏈接不一樣噢,file2的信息是這樣的: file2-file1,表示file2指向file1。
而且file2前面的權(quán)限那里的第一個字母變成了l,表示link(鏈接)。之前硬鏈接的時候是沒有l(wèi)的,硬鏈接外表看起來就和普通文件類似。
我們用ls -l命令查看文件信息的時候,第二列的那個1,表示擁有相同inode號的文件數(shù)。不難理解,因?yàn)閒ile2指向file1,它們并沒有指向同一塊文件內(nèi)容,所以它們的inode號不相同。
軟鏈接的特點(diǎn):
1、登錄Linux系統(tǒng)之后打開終端,確定你要找關(guān)鍵字的目錄。
2、查看下當(dāng)前目錄下所有的文件,你所要找的關(guān)鍵字就在當(dāng)前目錄下某個文件里面。
3、find -type f -print這個命令可以列出當(dāng)前目錄下的所有文件。
4、type后面的f是file的意思,所以只列出文件,而排除文件夾。
5、接下來只要在find命令后面加上exec命令就可以實(shí)現(xiàn)。
用linux命令進(jìn)入一個目錄 并且執(zhí)行該目錄下的一個文件方法如下:
1、打開文件vi(如/etc里面有一個文件hosts,要打開這個文件執(zhí)行vi hosts);
2、進(jìn)入編輯模式i,a(打開hosts后不能進(jìn)行編輯,輸入i之后出現(xiàn)---insert就進(jìn)入編輯模式可以進(jìn)行編輯了);
3、退出編輯模式,按下Esc;
4、進(jìn)入命令模式,按下;
5、退出但不保存q;
6、退出保存wq或x;
7、保存w。