Linux學習(4) 目錄與路徑

2021-07-24 19:12:41 字數 3191 閱讀 7536

相對路徑與絕對路徑:

絕對路徑:路徑的寫法一定由根目錄 / 寫起,例如 /usr/share/doc 這個目錄;

相對路徑:不是由 / 寫起,例如由 /usr/share/doc 到 /usr/share/man 下這個目錄,可以寫 cd ../man。指的是當前工作目錄下的路徑

一些特殊的目錄,可以幫助我們快速操作:

.       代表此層目錄

.. 代表上層目錄

- 代表前乙個工作目錄

~ 代表「目前使用者身份」所在的主資料夾

~yxh 代表「yxh」這個使用者的主資料夾(yxh是個賬戶名稱)

#要注意,根目錄下其實也有「.」和「..」目錄,但是仔細去看發現,都指向的是自己

介紹一些簡單的命令:

[root@vm_174_157_centos ~]# cd [相對路徑或絕對路徑]

例項:[root@vm_174_157_centos ~]# cd ~

[root@vm_174_157_centos ~]# cd /var/spool/mail

#cd是 change directory 的縮寫,用來切換工作目錄。多用[tab]快速補齊可以避免打錯,是乙個好的習慣。

#輸出當前工作目錄

[root@vm_174_157_centos ~]# pwd

#顯示實際的工作目錄,而非檔案本身的目錄名

[root@vm_174_157_centos ~]# pwd

/var/mail

[root@vm_174_157_centos ~]# pwd -p

/var/spool/mail <== 加了-p發現不一樣

[root@vm_174_157_centos ~]# ls -ld /var/mail

lrwxrwxrwx 1 root root 10 sep 4

17:54 /var/mail-> spool/mail

#看到這裡應該知道原因了吧,因為/var/mail是連線檔案,鏈結到/var/spool/mail

#所以加上pwd -p後,會不以連線檔案的資料顯示,而是正確的完整路徑

這裡寫**片[root@vm_174_157_centos ~]# mkdir [-mp] 目錄名稱

選項與引數:

-m:配置檔案案的許可權!直接設定,不需要看預設許可權(umask)

-p:幫助你直接將所需要的目錄(包含上層目錄)遞迴建立起來

#建立新目錄

[root@vm_174_157_centos ~]# cd /tmp

[root@vm_174_157_centos tmp]# mkdir test

[root@vm_174_157_centos tmp]# mkdir test1/test2/test3/test4

mkdir:cannot create directory 'test1/test2/test3/test4': no such file or directory

[root@vm_174_157_centos tmp]# mkdir -p test1/test2/test3/test4

#加了這個-p選項,可以自行幫你建立多層目錄

[root@vm_174_157_centos ~]# rmdir [-p] 目錄名稱

引數:-p:連通上層空的目錄也一起刪除

[root@vm_174_157_centos ~]# rmdir test1

rmdir: 'test1': directory not empty

#同理,-p可以遞迴刪除

在了解fhs之後,我們知道檢視檔案屬性的命令 ls 的完整檔名為:/bin/ls(這是絕對路徑),我們之所以在任何目錄下輸入ls都可以執行,而不會提示找不到該指令,就是有環境變數path的幫助。

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

我們可以通過echo $path來檢視哪些目錄被定義了:

#先用root身份搜尋

[root@vm_174_157_centos ~]# echo $path

/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

#再用yxh身份搜尋

[root@vm_174_157_centos ~]# echo $path

/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin

path(一定是大寫)這個變數的內容是一堆目錄,用冒號隔開,每個目錄是有順序的。通過上面的,我們可以看到,無論是root還是其他的賬戶,都有bin這個目錄在path 變數內,當然可以執行。

如上面所示,用yxh這個行號執行ifconfig時,會出現[-bash: ifconfig: command not found]的字樣,因為這個命令是放在/sbin下面的,但是yxh的path沒有設定,所以無法執行。

但是我們同樣可以通過[/sbin/ifconfig eth0]這個命令來執行,絕對路徑也是可以的嘛!

(1)當我們移動了之後,無論你在哪個目錄下輸入都沒有辦法順利執行了。因為/root這個目錄不在path指定的目錄中。

(2)因為 ls 是確實存在的,只是位子變了,所以我們可以通過絕對路徑來執行這個檔名,如下所示:

[root@vm_174_157_centos ~]# /root/ls

[root@vm_174_157_centos ~]# .ls

<==因為在/root目錄下,所以直接用.ls指定

(3)如果想讓root在任何目錄都執行,只需要將/root加入path當中即可。加入方法如下:

[root@vm_174_157_centos ~]# path="$path":/root

Linux目錄與路徑

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

linux目錄與路徑

絕對路徑 路徑的學法一定由根目錄 寫起。如 user share doc。相對路徑 目錄不由 寫起。如 user share doc要切換到 user share man時可以寫為 cd man 這樣就是行對路勁的寫法。代表此層目錄 代表上層目錄 代表前乙個工作目錄 代表 目前使用者 所在的主資料夾...

Linux的目錄與路徑 一

linux的目錄與路徑 絕對路徑 路徑是由根目錄 開始的 eg user share doc 相對路徑 相對於目前工作目錄的路徑 eg 當由 user share doc到 user share man下時,可以寫成 cd man 相對路徑簡單,但只能針對當前的工作目錄 絕對路徑準確,但是寫的內容較...