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