在Linux中任何東西都可以表示為文件。目錄是特殊類型的文件,它是保存其他文件的容器。為了找到重要的文件,需要介紹一些基本的命令和概念,它們告訴你當(dāng)前所在的位置以及如何從一個目錄切換到另一個目錄。
最重要的命令是pwd命令、波浪形字符(~)和路徑。使用波浪形字符(~)可以切換到用戶的主目錄;而路徑是描述Linux目錄樹中位置的一個概念。
與它們緊密相關(guān)的是在執(zhí)行命令時搜索的目錄,它與一個名為PATH的環(huán)境變量有關(guān)。掌握了這些概念后,就可以用cd命令在目錄之間切換。
1. pwd命令
在命令行接口,當(dāng)前目錄可能是頂層目錄(即為根目錄,用/表示),也可能是一個子目錄。pwd命令可以確定當(dāng)前目錄。試試這個命令,它顯示一個相對于頂層根目錄(/)的目錄名。有了這個信息,必要時我們就可以切換到其他目錄。順便指出,pwd是打印工作目錄這三個單詞的首字符(print working directory)(它與現(xiàn)代的打印機沒有任何關(guān)系,而是對把輸出打印到電傳打字機的時代的致敬)。例如,當(dāng)用戶michael在自己的主目錄中執(zhí)行pwd命令時,會看到下面的輸出信息:
2.波浪符(~)
使用標(biāo)準(zhǔn)的登錄方式時,每個Linux用戶都處于一個主目錄中。波浪符(~)可以用來表示當(dāng)前用戶的主目錄。例如,當(dāng)用戶john登錄時,它處在/home/john主目錄中。與此對應(yīng),root管理員用戶的主目錄是/root。
因此,cd ~命令的效果取決用戶名。例如,如果以用戶mj登錄到系統(tǒng),則cd ~命令導(dǎo)航到/home/mj目錄,如果以root用戶登錄到系統(tǒng),則此命令導(dǎo)航到/root目錄。在目錄樹中任何位置都可以用ls ~命令列出自己主目錄中的內(nèi)容。稍后將介紹cd和ls命令的使用。當(dāng)以root管理員用戶登錄到系統(tǒng)并執(zhí)行l(wèi)s命令,就會看到如下內(nèi)容:
順便指出,這些文件說明在安裝過程中發(fā)生的事情,即安裝了哪些程序包,在本地系統(tǒng)添加了哪些用戶和組等。anaconda-ks.cfg命令是Kickstart自動安裝的重要工具。
3.目錄路徑
使用Linux目錄時需要掌握路徑的兩個基本概念:絕對路徑和相對路徑。絕對路徑是從頂層目錄(即root目錄/)的角度來描述完整的目錄結(jié)構(gòu)。相對路徑是以當(dāng)前目錄為基礎(chǔ)。相對路徑的最前面沒有斜杠。
掌握絕對目錄與相對目錄的區(qū)別很重要。特別當(dāng)運行一個命令時,絕對目錄是必需的。否則引用錯誤目錄的命令會導(dǎo)致意想不到的結(jié)果。例如,假如當(dāng)前在頂層root目錄,我們想用相對路徑備份/home目錄。如果恢復(fù)該備份時我們正好在/home目錄中,則michael用戶的文件就會恢復(fù)到/home/home/michael目錄中。相反,如果用絕對路徑備份/home目錄,則在恢復(fù)這些備份文件時當(dāng)前目錄不起作用。備份數(shù)據(jù)會恢復(fù)到正確的目錄中。
4.環(huán)境路徑
嚴(yán)格來說,在執(zhí)行一個命令時必須引用這個命令的完整路徑。例如,既然ls命令是在/bin目錄中,因此用戶應(yīng)該執(zhí)行/bin/ls命令以列出當(dāng)前目錄中的文件。有了PATH環(huán)境變量,命令前不需要加上它的完整路徑。當(dāng)我們在命令行輸入一個命令時,bash shell自動會在PATH環(huán)境變量的路徑中搜索這個命令。從一個控制臺切換到另一個控制臺,環(huán)境變量始終保持不變。
為確定當(dāng)前用戶的PATH環(huán)境變量的內(nèi)容,只需要執(zhí)行echo $PATH命令。這會看到在屏幕上輸出一系列目錄。在RHEL 7中,普通用戶的PATH變量與root用戶的PATH變量的差別不大。
現(xiàn)在,普通用戶與root用戶的PATH變量包含的目錄幾乎完全相同,但是差別還是有的,那就是搜索目錄的順序。例如,,/usr/bin和/usr/sbin這兩個目錄都可以使用system-config-keyboard命令。從普通用戶和root管理員用戶PATH變量的默認(rèn)內(nèi)容可以看出,由于PATH變量存在的差別,兩者的執(zhí)行方法不一樣。
PATH是由/etc/profile文件的當(dāng)前設(shè)置參數(shù)或者/etc/profile.d目錄中的腳本全局決定的。你可能注意到,系統(tǒng)為UserID(UID)0用戶與其他所有用戶配置的PATH內(nèi)容不大一樣。UID 0對應(yīng)于root管理員用戶。某個用戶的PATH變量可以由該用戶主目錄中的一個適當(dāng)?shù)挠涗泚砑右远ㄖ?,此隱藏文件名為~/.bash_profile或~/.profile。
5. cd命令
在Linux中切換目錄非常容易。只要用cd并列出目標(biāo)目錄的絕對路徑即可。如果使用相對路徑,務(wù)必記住目標(biāo)目錄取決于當(dāng)前目錄。
默認(rèn)情況下,單獨使用cd命令可以導(dǎo)航到用戶的主目錄,該命令不需要波浪形符。另一個常用的快捷命令是兩個連續(xù)的點字符(..),用于代表目錄層次中的上一層目錄。因此,cd..將移動到當(dāng)前目錄的父目錄。