1.2 關於執行檔案路徑的變數:$path
linux的預設命令列模式(bash shell)具有檔案補齊功能,要常常利用 [tab] 按鍵來自動補齊目錄路徑
.
#代表此層目錄
..#代表上一層目錄
- #代表前乙個工作目錄
~ #代表家目錄(目前使用者身份所在的)
~account #代表account(乙個賬號名稱)這個使用者的家目錄
常見的處理目錄的命令
cd
#切換目錄(change directory)
pwd#顯示當前目錄(print working directory)
mkdir
#建立乙個新目錄(make directory)
rmdir
#刪除乙個空目錄(remove directory)
[dmtsai@study ~]$ su - #切換為root身份
[root@study ~]
cd[相對路徑或絕對路徑]
[root@study ~]
cd ~dmtsai #代表進入dmtsai這個使用者的家目錄,亦即/home/dmtsai
[root@study ~]
cd ~ #代表回到自己的家目錄,亦即/root這個目錄
[root@study ~]
cd#代表回到自己的家目錄
[root@study ~]
cd..
#表示回到當前目錄的上一層目錄,亦即 /root 的上層目錄,還是/root
[root@study ~]
cd - #表示回到剛才到過的目錄,這裡是/root
[root@study ~]
cd /var/spool/mail #絕對路徑
[root@study ~]
cd../postfix #相對路徑,這裡我們由/var/spool/mail變到/var/spool/postfix
用法:
[root@study ~]
pwd[-p]
範例1:
[root@study ~]
pwd/root
範例2:
[root@study ~]
cd /var/mail #注意,/var/mail 是乙個鏈結檔案
[root@study mail]
pwd/var/mail
[root@study mail]
pwd -p
/var/spool/mail
[root@study mail]
ls -ld /var/mail
lrwxrwxrwx 1 root root 10 may 4 17:51 /var/mail -> spool/mail
pwd 加 [-p] 與不加有區別,因為 /var/mail 是乙個鏈結檔案,鏈結到 /var/spool/mail,所以加上 [-p] 後,不會顯示鏈結檔案的路徑,而是顯示完整路徑
用法:
[root@study ~]
mkdir
[-mp] 目錄名稱
選項與引數:
-m : 設定檔案的許可權。直接設定,不使用預設許可權(umask)
-p :幫助你直接將所需要的目錄(包含上層目錄)遞迴建立
範例1:
請到 /tmp下面嘗試建立數個新目錄看看
[root@study ~]
cd /tmp
[root@study tmp]
mkdir
test
#建立名為test的新目錄
[root@study tmp]
mkdir test1/test2/test3/test4
mkdir: cannot create directory 'test1/test2/test3/test4' no such file or directory
# 不能建立的原因是因為要建立test4之前要建立它的上層,以此類推
[root@study tmp]
mkdir -p test1/test2/test3/test4
# 加入 -p 選項後,可以自行幫你建立多層目錄
範例2:
建立許可權為 drwx- -x- -x的目錄
[rwx] = 4+2+1=7
[- -x] = 0+0+1=1
[root@study tmp]
mkdir -m 711 test2
[root@study tmp]
ls -ld test* #列出所有包含test字元的目錄
drwxr-xr-x 2 root root 6 jun 4 19:03 test
drwxr-xr-x 3 root root 18 jun 4 19:04 test1
drwxr-xr-x 2 root root 6 jun 4 19:05 test2
如果不加 [-m] 選項來強制設定屬性,系統就會使用預設屬性(與umask有關)
用法:
[root@study ~]
rmdir
[-p] 目錄名稱
選項與引數: -p :連同上層"空的"目錄也一起刪除
範例1:
將於 mkdir 範例中建立的目錄 ( /tmp )刪除掉
[root@study tmp]
ls -ld test*
drwxr-xr-x 2 root root 6 jun 4 19:03 test
drwxr-xr-x 3 root root 18 jun 4 19:04 test1
drwxr-xr-x 2 root root 6 jun 4 19:05 test2
[root@study tmp]
rmdir
test
#刪除空目錄test
[root@study tmp]
rmdir test1 # 因為有內容,無法刪除
rmdir
: failed to remove 'test1':direcitory not empty
[root@study tmp]
rmdir -p test1/test2/test3/test4
[root@study tmp]
ls -ld test*
drwxr-xr-x 2 root root 6 jun 4 19:05 test2
# test 與 test1 被刪除了
# 使用 -p 選項,立刻可將test1/test2/test3/test4 一次刪除,不過要注意,mkdir僅能刪除空目錄
當我們執行乙個命令的時候,用 ls 來舉例,系統會依照path的設定去每個path定義的目錄下查詢檔案名為 ls (ls命令的絕對路徑為/bin/ls)的可執行檔案,如果在path定義的目錄中含有多個檔名為 ls 的可執行檔案,那麼先執行第乙個被找到的同名命令
範例1:
執行【echo $path】來看看到底有哪些目錄被定義了出來
echo有「顯示、列印」的意思
$表示後面接的是變數,所以會顯示出當前的path
[root@study ~]
echo
$path
/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
[root@study ~]
exit
#退出 root身份,回到原賬號
[dmtsai@study ~]$ echo
$path
/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/home/dmtsai/.local/bin:/home/dmtsai/bin
# 在centos 7中 /bin 是鏈結到 /usr/bin 當中的
path(一定是大寫)這個變數的內容是由一堆目錄所組成的,每個目錄中間用冒號( :)隔開,每個目錄有順序之分。
仔細看輸出內容,你會發現無論是 root 還是 dmtsai 都有 /bin 或 /usr/bin 這個目錄在path變數內,所以能夠在任何地方執行 ls 來找到 /bin/ls 執行檔案
除了 $path 外,如果還要更明確地定義出變數地名稱,可以使用大括號 $來處理變數的呼叫
例如:如果想讓 root 在任何目錄均可執行 /root/ls ,那麼就將 /root 加入path當中即可
[root@study ~] path=
"$:/root"
路徑與目錄
1.相對路徑與絕對路徑 linux 中的目錄呈樹狀結構,帶有分支。假如需要在任意乙個目錄下變換到根目錄下的 etc,那麼應該使用 cd etc 命令,這就是所謂的絕對路徑,是從根目錄向下定址。如果使用 cd etc 呢?表示要切換到當前目錄下的 etc目錄中,情況就不一樣了。l 絕對路徑 路徑的寫法...
目錄與路徑
目錄與路徑 相對路徑的用途 相對路徑與絕對路徑由什麼了不起阿,喝,那可真是了不起。假設你寫了乙個軟體,這個軟體共需要三個目錄,分別是etc,bin,man這三個目錄,然而由於不同的人喜歡安裝在不同的目錄之下,假設甲安扎安裝的目錄是 usr local packages etc,usr local p...
Linux目錄與路徑
絕對路徑 正確度較好 相對路徑 目錄間切換簡便 特殊目錄 表示當前目錄 表示當前目錄的上一層目錄 表示當前的工作目錄 表示當前使用者身份所在的家目錄 count 表示count使用者的家目錄 根目錄的上層與根目錄是同乙個目錄。目錄指令 1.cd 變換目錄 change directory cd 直接...