目錄與路徑

  • 相對路徑與絕對路徑。
    1. 絕對路徑:從根目錄 / 寫起,如:目錄 /usr/share/man
    2. 相對路徑:不是從根目錄 / 寫起,其寫法如:
      
      .		代表此層目錄
      
      .. 代表上層目錄
      - 代表前一個工作目錄
      ~ 代表自己的家目錄
      ~user 代表到 user 這個用戶的家目錄
  • 相關指令
    
    		cd 		 變換工作目錄。
    
    pwd 顯示目前所在的目錄。
    mkdir 建立新目錄。
    rmdir 刪除【空】的目錄。
    1. cd (Change Directory):變換工作目錄。
      [root@dywHome2 ~]# cd ..
      [root@dywHome2 /]# cd
      [root@dywHome2 ~]# cd /home/dywang
      [root@dywHome2 dywang]# cd ~
      [root@dywHome2 ~]# cd ~dywang
      [root@dywHome2 dywang]# cd ../../var
      [root@dywHome2 var]# cd ~test
      -bash: cd: ~test: No such file or directory
      
    2. pwd (Print Working Directory):顯示目前所在的目錄。
      [root@dywHome2 var]# cd /var/log
      [root@dywHome2 log]# pwd
      /var/log
      
    3. mkdir (Make Directory):建立新目錄。
      [root @test /root ]# mkdir [-mp] [目錄名稱] 
      參數說明: 
      -m :直接設定檔案的權限,而不管 umask 內容。 
      -p :直接將上層目錄遞迴建立起來。 
      #範例: 
      [root @test /root]# cd tmp 
      [root @test /tmp]# mkdir test %*<== 建立名稱為 test 的目錄。 *)
      [root @test /tmp]# mkdir -p test1/test2/test3/test4 %*<== 直接建立 test2... 等上層目錄。*)
      [root @test /tmp]# mkdir -m 711 testqq  %*<== 建立權限為 711 的目錄。*)
      [root @test /tmp]# ll test* 
      drwxrwxr-x    2 test    test        4096 Feb  6 20:47 test/
      drwxrwxr-x    3 test    test        4096 Feb  6 20:48 test1/
      drwx--x--x    2 test    test        4096 Feb  6 20:48 testqq/
      
    4. rmdir (Remove Directory):刪除【空】的目錄。
      [root @test /root ]# rmdir [-p] [目錄名稱] 
      參數說明: 
      -p :將上層的目錄也刪除。 
      #範例: 
      [root @test /root]# rmdir test %*<== 刪除名稱為 test 的目錄 *)
      [root @test tmp]# ll 
      drwxrwxr-x    3 test    test        4096 Feb  6 20:48 test1/ 
      [root @test tmp]# rmdir test1 
      rmdir: `test1': Directory not empty 
      [root @test tmp]# rmdir -p test1/test2/test3/test4 
      [root @test tmp]$ ll
      
  • 環境變數 $PATH:提供搜尋指令之路徑
    1. 符號 $ 表示其後面接的是變數。
    2. $PATH 設定於 /root/.bashrc,可使用 echo 指令顯示其內容:
      [root@mdk-dyw ~]# echo $PATH
      /sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin:/usr/local/bin:
      /usr/local/sbin
      
    3. 若目前工作目錄 /home/csie 下有一可執行檔 foo,但本目錄並不在 $PATH 設定中,如何執行 foo
      [root@mdk-dyw ~]# /home/csie/foo
      [root@mdk-dyw ~]# ./foo
      

練習題

  1. 如何變換工作目錄至上層目錄?
    Sol. cd ..
  2. 如何變換工作目錄至自己的家目錄?
    Sol. cd 或 cd ~
  3. 如何改變目錄到使用者 csie2 的家目錄?
    Sol. cd ~csie2
  4. 如何改變目錄到前一個工作目錄?
    Sol. cd -
  5. 目前目錄下有一個可執行檔 exefile,如何執行它?
    Sol. ./exefile
  6. 如何變換工作目錄為 /usr/share?
    Sol. cd /usr/share
  7. 如何變換工作目錄至用戶 csie 的家目錄?
    Sol. cd ~csie
  8. 若要成功執行 cd ~test,則 test 有何限制?
    Sol. test 必須為合法帳號。
  9. 如何列出目前的工作目錄?
    Sol. pwd
  10. 如何建立目錄 test?
    Sol. mkdir test
  11. 如何建立目錄 test/test1/test2,但 test 下之 test1 次目錄並不存在,而要一併建立?
    Sol. mkdir -p test/test1/test2
  12. 如何建立多層目錄 /tmp/chap7/testdir?
    Sol. mkdir -p /tmp/chap7/testdir
  13. 如何建立權限為 711 的目錄 test?
    Sol. mkdir -m 711 test
  14. 要使用 rmdir 刪除目錄 test,則 test 有何限制?
    Sol. test 必須為空目錄。
  15. 如何移除目錄 test/test1/test2,連同 test1 之上層目錄一併移除?
    Sol. rmdir -p test/test1/test2
  16. 環境變數 $PATH 提供搜尋指令的路徑,如何顯示其內容?
    Sol. echo $PATH
  17. 若目前工作目錄 /home/csie 下有一可執行檔 foo,但本目錄並不在 $PATH 設定中,如何執行 foo
    Sol. ./foo/home/csie/foo

  DYWANG_HOME