在前面的相關內容中,我們知道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記...