目錄與路徑

2021-07-30 22:47:01 字數 2978 閱讀 1766

目錄與路徑

相對路徑的用途

相對路徑與絕對路徑由什麼了不起阿,喝,那可真是了不起。假設你寫了乙個軟體,這個軟體共需要三個目錄,分別是etc,bin,man這三個目錄,然而由於不同的人喜歡安裝在不同的目錄之下,假設甲安扎安裝的目錄是/usr/local/packages/etc,/usr/local/packages/bin以及/usr/local/packages/man,不過乙喜歡安裝在/home/packages/etc,/home/packages/bin,/home/packages/man這三個目錄,請問如果需要用到絕對路徑的話,那麼是否很麻煩呢。

絕對路徑的用途

但是對於檔名的正確性,卻對路徑的正確度比較好一點。一般來說,如果是在寫程式(shell script)來管理系統的條件下,務必使用絕對路徑的寫法。因為絕對路徑的寫法雖然比較麻煩,但可以肯定的是這個寫法絕對不會由問題。

需要特別注意的是:在所有目錄底下都存在兩個目錄,分別是.和..,分別代表此層目錄和上層目錄的意思。

底下是我們常見幾個處理目錄的指令:

cd: 變換目錄;

pwd: 顯示當前的目錄;

mkdir: 建立乙個新目錄;

rmdir: 刪除乙個目錄;

cd (變換目錄)

我們指代web這個使用者的家目錄是/home/web,而root家目錄則是/root,假設我以root在linux系統中,那麼簡單的說明以下這幾個目錄的意義:

cd是change directory的縮寫,這個是用來變換工作目錄的指令。注意,目錄名稱與cd之間存在乙個空格。一登入linux系統後,root會在root的家目錄。那回到上一層目錄可以用cd。利用相對路徑的寫法必須確認你目前的路徑才能正確的去你想要去的目錄。

其實,我們的提示字元,亦即那個[root@www]#當中,就已經指出了當前的 目錄了,剛登陸的時候會到自己的家目錄,而家目錄還有乙個**,那就是

pwd (顯示目前所在的目錄)

pwd是print working directory的縮寫,也就是顯示目前所在目錄的指令。

mkdir (建立新目錄)

rmdir (刪除的目錄)

關於執行檔案路徑的變數:$path

經過第 fhs 的說明後,我們知道查閱檔案屬性的指令 ls 完整檔名為:/bin/ls(這是絕對路徑),那你會不會覺得很奇怪:『為什麼我可以在任何地方執行/bin/ls 這個指令呢? 』 為什麼我在任何目錄下輸入 ls 就一定可以顯示出一些訊息而不會說找不到該 /bin/ls 指令呢? 這是因為環境變數 path 的幫助所致呀!

當我們在執行乙個指令的時候,舉例ls來說,系統會依照path的設定去每個path定義的目錄下去搜尋檔名為ls的可執行檔案,如果在path定義的目錄中含有多個檔名為ls的可執行檔案,那麼先搜尋到的同名嗯指令被執行。

現在,請下達echo $path來看看到底由那些目錄 被定義出來的。

path(一定是大寫)這個變數的內容是由一堆目錄所組成的,每個目錄中間用:來隔開,每個目錄是由順序之分的。仔細看一下上面的輸出,你可以發現無論是root還是vbird都有/bin這個目錄記錄在path變數內,所以當然能夠在任何地方執行ls來找到/bin/ls執行檔案羅。

例題:

請問你能不能使用一般身份使用者下達 ifconfig eth0 這個指令呢?

答:如上面的範例所示,當你使用 vbird 這個賬號執行 ifconfig 時,會出現『-bash: ifconfig:command not found』的字樣, 因為 ifconfig 的是放置到/sbin 底下,而由上表的結果中我們可以發現 vbird 的 path 並沒有設定/sbin, 所以預設無法執行。但是你可以使用『/sbin/ifconfig eth0』來執行這個指令喔!因為一般使用者還是可以使用ifconfig 來查詢系統 ip 的引數, 既然 path 沒有規範到/sbin,那麼我們使用『絕對路徑』也可以執行到該指令的!

而由上面的幾個例題我們也可以知道幾件事情:

不同身份使用者預設的path不同,預設能夠隨意執行的指令也不相同;

path是可以修改的,所以一般使用者還可以透過修改path來執行某些位於/sbin或者/usr/sbin下的指令來查詢;

使用絕對路徑或者相對路徑直接指定某個指令的檔名來執行,會比搜尋path來的正確;

指令應該放在正確的目錄下,執行起來才會比較方便;

本目錄(.)最好不要放在path當中;

摘自鳥哥linux私房菜

路徑與目錄

1.相對路徑與絕對路徑 linux 中的目錄呈樹狀結構,帶有分支。假如需要在任意乙個目錄下變換到根目錄下的 etc,那麼應該使用 cd etc 命令,這就是所謂的絕對路徑,是從根目錄向下定址。如果使用 cd etc 呢?表示要切換到當前目錄下的 etc目錄中,情況就不一樣了。l 絕對路徑 路徑的寫法...

目錄與路徑

1.2 關於執行檔案路徑的變數 path linux的預設命令列模式 bash shell 具有檔案補齊功能,要常常利用 tab 按鍵來自動補齊目錄路徑 代表此層目錄 代表上一層目錄 代表前乙個工作目錄 代表家目錄 目前使用者身份所在的 account 代表account 乙個賬號名稱 這個使用者的...

Linux目錄與路徑

絕對路徑 正確度較好 相對路徑 目錄間切換簡便 特殊目錄 表示當前目錄 表示當前目錄的上一層目錄 表示當前的工作目錄 表示當前使用者身份所在的家目錄 count 表示count使用者的家目錄 根目錄的上層與根目錄是同乙個目錄。目錄指令 1.cd 變換目錄 change directory cd 直接...