一天一點學習Linux之目錄與路徑

2021-12-29 20:41:09 字數 3387 閱讀 9890

在前面的相關內容中,我們知道fhs限制了linux以樹狀來分布目錄的,也談到了絕對路徑與相對路徑的相關內容,還有我們在使用命令的時候,為什麼不用寫全部的路徑,命令就能執行,這是為什麼?這就是我們今天的學習內容。

相對路徑與絕對路徑定義

絕對路徑:路徑是由根目錄/ 開始的

相對路徑:相對於目前工作目錄的路徑

相對路徑與絕對路徑的優缺點

相對路徑簡單,但只能針對當前的工作目錄

絕對路徑準確,但是寫的內容較多

目錄的相關操作

linux系統上常見的一些符號

在開始操作目錄前,先給大家介紹一些大家在linux系統上常見的一些符號

. 代表此層目錄

.. 代表上一層目錄

- 代表前乙個工作目錄

~ 代表目前使用者所在的家目錄

注: 1、根目錄/下的.與..是代表同乙個目錄。也就是說..所代表的也就是.

2、這裡的-與我們前面su -(相當於su -l)是不同的意思,大家要理解。

常見的處理目錄的命令

cd:改變目錄(change directory)

pwd:顯示當前目錄(print working directory)

mkdir:建立乙個新的目錄(make directory)

rmdir:刪除乙個空的目錄

cd 改變目錄

cd ~yufei

進入yufei的家目錄

cd ~

進入當前使用者的家目錄

cd 和cd ~是一樣的,都是進入當前使用者的家目錄

cd ..

進入上層目錄

cd -

回到剛才的目錄

pwd 顯示目前所在的目錄

這個命令的使用時機是當你不知道你所在的目錄是哪個的情況下,可以直接用pwd顯示出當前的工作目錄。這裡有個重要的引數就是-p,這個引數可以顯示出真實的工作目錄。這是針對連線而言的。

[root@yufei yufei]# cd /var/mail/

[root@yufei mail]# pwd

/var/mail

[root@yufei mail]# pwd -p

/var/spool/mail

[root@yufei mail]# ls -ld /var/mail

lrwxrwxrwx. 1 root root 10 dec 15 22:35 /var/mail -> spool/mail

通過上面我們可以看出來,/var/mail這個目錄是個連線檔案,真正的目錄是/var/spool/mail,這就是-p引數的意義。

mkdir 建立新目錄

兩個重要的引數

-m : 設定mask的值,而不依據系統預設的umask值來建立目錄 (mask與umask是不同的含義哦!特別注意)

-p : 遞迴建立目錄(預設的情況下,目錄是需要一層層來建立的)

[root@yufei ~]# umask

0022

[root@yufei ~]# mkdir test

[root@yufei ~]# mkdir -m 700 test1

[root@yufei ~]# ls -ld test*

drwxr-xr-x 2 root root 4096 feb  9 21:35 test

drwx—— 2 root root 4096 feb  9 21:36 test1

通過上面的對比,我想各位已經明白了-m引數的意義了。

下面我們再來看看這個-p引數的意思

[root@yufei ~]# mkdir test/test/test

mkdir: cannot create directory `test/test/test』: no such file or directory

[root@yufei ~]# mkdir -p test/test/test

發現已經在test目錄下建立了test/test這兩個目錄,如果不用-p引數,就要一層層來建立。

rmdir 刪除空目錄

也有個-p引數,意義也是一樣的,連同上層的空目錄一起刪除

我們還是以/root裡面的test/test/test為例

[root@yufei ~]# touch test/test/test/file

[root@yufei ~]# rmdir test/test/test/

rmdir: failed to remove `test/test/test/』: directory not empty

如果目錄裡面有內家的話,那麼rmdir是刪除不了的,他會有提示「directory not empty」

[root@yufei ~]# rm -f test/test/test/file

[root@yufei ~]# rmdir test/test/test/

這時候只刪除了最底層的test目錄,還有test/test這兩個目錄沒有刪除,想要連同上層的空目錄一起刪除的話,可以加上-p引數。

[root@yufei ~]# mkdir test/test/test

[root@yufei ~]# rmdir -p test/test/test/

這時候把最底層的test目錄的上層所有的空目錄全部刪除了。當前目錄沒有了test目錄了。

rm -fr 刪除目錄及檔案

這個命令用起來比較方便快捷,沒有任何的提示,直接清空所有的內容,-f的意思就是直接刪除,沒有提示,而-r就是遞迴處理的意思。如果你確認你的目錄及裡面的資料都不要的話,可以用此命令來個痛快的刪除。

大家可能會發現很多地方提到「rm -fr /」這個命令,其實這個命令在rhel6上我實驗過(其他的系統上沒有測試),並不能直接執行,執行此命令,會有相應的提示:

[root@yufei ~]# rm -fr /

rm: it is dangerous to operate recursively on `/』

rm: use –no-preserve-root to override this failsafe

是不是多了一層保險啊!但是刪除其他的目錄,沒有提示的哦,所以在使用前,一定要確保你執行的操作是正確的。

命令檔案的路徑(path)

正如我們開頭所說的一樣,我們在執行命令的時候並沒有用命令的絕對路徑就能直接執行,這就是路徑的變數$path所起的作用。

[root@yufei ~]# echo $path

/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

我們看到,這個path裡面包括了這些目錄,所以,當我們在執行命令的時候,系統會在這些目錄裡面查詢所要執行的命令,找到後就執行了。目錄之間用「:」號分隔的。如果說,乙個命令可能在多個目錄裡面,那麼執行哪個呢?其實,就是先找到者先執行。如果在這些目錄裡面都找不到的話,那麼就會發現乙個「command not found」的提示,告訴你,找不到命令哈!

一天一點學linux

隨著linux應用的擴充套件許多朋友開始接觸linux,根據學習windwos的經驗往往有一些茫然的感覺 不知從何處開始學起。就像是戰爭,你有勇氣戰勝一切敵人,但你的眼前一片 漆黑,你知道前面有很多敵人,但就不知道具體的位置,無從下手。所以認清方向,確定目標很重要。下面就說說學習linux的一些建議...

一天一點學linux

隨著linux應用的擴充套件許多朋友開始接觸linux,根據學習windwos的經驗往往有一些茫然的感覺 不知從何處開始學起。就像是戰爭,你有勇氣戰勝一切敵人,但你的眼前一片 漆黑,你知道前面有很多敵人,但就不知道具體的位置,無從下手。所以認清方向,確定目標很重要。下面就說說學習linux的一些建議...

一天一點linux 5

windows系統對比 32位與64位系統簡單介紹和對比 置初衷不同 64位為高效能所設計,32位為普通使用者設計 要求配置不同 64位只能安裝64位電腦上 cpu必須是64位 32位可以安裝在32位和64位cpu電腦上 運算速度不同 64位處理資料比32位快 定址能力不同 64位支援多達128g記...