歡迎您光臨本站 註冊首頁

關於Linux系統中文件系統路徑的理解

←手機掃碼閱讀     火星人 @ 2014-03-12 , reply:0
  1、Linux文件系統是從/開始的

  在Linux操作系統的文件管理中,命令行模式(在控制台或終端下)的文件或目錄管理,要涉及路徑這一概念,這是Linux命令行操作的最基礎的基礎。如果我們了解了路徑的概念,就可以隨心所欲的進入任何目錄,進行我們想的工作。

  Linux 文件系統,是一個呈樹形結構,是從/做為入口,/(也被稱為根目錄)下有子目錄,比如etc、usr、lib等,在每個子目錄下又有文件或子目錄,這樣就形成了一個樹形結構,這種樹形結構比較單一。而Windows文件系統呢?它引入了C盤、D盤類似的磁碟概念,使得習慣Windows操作的用戶在轉向Linux時,會發現Linux根本就有C盤、D盤的概念,有時甚至不知所措。

  2、理解路徑概念的目的

  引入路徑概念目的最終是找到我們所需要的目錄或文件。比如我們想要編輯 file.txt 文件,我們首先要知道他存放在哪裡,也就是說我們要指出他所在的位置,這時就要用到路徑了。

  3、路徑的構成要素

  路徑是由目錄或目錄和文件名構成的。比如/etc/X11 就是一個路徑,而/etc/X11/xorg.conf也是一個路徑。也就是說路徑可以是目錄的組合,分級深入進去,也可以是文錄+文件構成。比如我們想用vi編輯xorg.conf文件,在命令行下輸入 vi /etc/X11/xorg.conf ,如果我們想進入/etc/X11目錄,就可以通過cd /etc/X11來實現。

  4、路徑的分類

  路徑分為絕對路徑和相對路徑。

  4.1 絕對路徑

  在Linux中,絕對路徑是從/(也被稱為根目錄)開始的,比如/usr、/etc/X11.如果一個路徑是從/開始的,它一定是絕對路徑,這樣就好理解了。

  [root@localhost ~]# pwd 註:判斷用戶當前所處的位置,也就是說他到底位於哪?

  /root 註:用戶當前位於/root.

  [root@localhost ~]# cd /usr/share/doc/ 註:我們以絕對路徑方式進入/usr/share/doc目錄下。

  [root@localhost doc]# pwd 註:判斷用戶當前所處的位置。

  /usr/share/doc 註:用戶位於/usr/share/doc,看來已經達到我們的目的了。

  4.2 相對路徑

  相對路徑是以 . 或 …… 開始的,。表示用戶當前操作所處的位置,而…… 表示上級目錄;在路徑中,。表示用戶當前所處的目錄,而……上級目錄,要把。和……當做目錄來看。

  [root@localhost ~]# pwd 註:通過pwd來判斷當前用戶所在的位置。

  /root 註:得出目錄處於/root目錄中。

  [root@localhost ~]# cd . 註:我們進入。

  [root@localhost ~]# pwd 註:判斷當前用戶所處的位置。

  /root 註:得出在/root 目錄中 .

  [root@localhost ~]# cd …… 註:我們切入/root的上級目錄。

  [root@localhost /]# pwd 註:判斷當前用戶所處的位置。

  / 註:用戶當前位於/(根目錄)中。
5、在路徑中一些特殊符號的說明

  這些符號在相對路徑中應用的,這些符號能為我們帶來方便,所以有必要說說。

  。 表示用戶所處的當前目錄;

  …… 表示上級目錄;

  ~ 表示當前用戶自己的家目錄;

  ~USER 表示用戶名為USER的家目錄,這裡的USER是在/etc/passwd中存在的用戶名。

  5.1 符號。應用示例

  通過下面的例子,讓我們增強。所表示的意義。

  [root@localhost ~]# pwd 註:判斷用戶當前所處的目錄;

  /root 註:位於/root目錄;

  [root@localhost ~]# cd . 註:進入。目錄,這裡的。就是用戶當前所處的位置;

  [root@localhost ~]# pwd 註:在哪呢;

  /root 註:在/root中。

  理解。/的意義:

  [root@localhost ~]# pwd 註:判斷用戶當前所處的目錄;

  /root 註:位於/root目錄;

  [root@localhost ~]# ls 註:顯示用戶所處/root目錄的文件及子目錄;也可以用ls .或[root@localhost ~]# ls .

  mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt tmp upgrade.log;

  [root@localhost ~]# ls ./tmp/ 查看用戶所處當前目錄下的tmp目錄的內容;

  kernelBak youdir或 [root@localhost ~]# ls tmp/;

  kernelBak youdir;

  [root@localhost ~]#.

  在有些文檔中,我們看到類似。/filename 來運行一個腳本或程序的例子。其實它就是在用戶當前目錄下運行的;請看下面的示例;

  [root@localhost ~]# pwd 註:判斷用戶當前所處的目錄;

  /root 註:位於/root目錄;

  [root@localhost ~]# touch lsfile.sh 註:創建一個文件名為lsfile.sh的文件;

  [root@localhost ~]# chmod 755 lsfile.sh 註:修改許可權讓其可執行;

  [root@localhost ~]# echo "ls -la"> lsfile.sh 註:向lsfile.sh文件中加入ls -la 一句指令

  [root@localhost ~]# more lsfile.sh 註:用more 工具來查看lsfile.sh 文件的內容;

  ls -la

  [root@localhost ~]# ./lsfile.sh 註:運行lsfile.sh ,在這裡用的是相對路徑;

  [root@localhost ~]# /root/lsfile.sh 註:這是絕對路徑運行lsfile.sh 腳本。

  5.2 符號……應用示例

  [root@localhost ~]# pwd 註:判斷用戶當前所處的目錄;

  /root

  [root@localhost ~]# cd /etc/X11/ 註:進入/目錄下的etc目錄下的X11目錄;

  [root@localhost X11]# pwd 註:判斷用戶當前所處的目錄;

  /etc/X11 註:看來用戶真的位於/etc/X11目錄了;

  [root@localhost X11]# cd …… 註:退到上級目錄;

  [root@localhost etc]# pwd 註:判斷用戶當前所處的目錄;

  /etc

  [root@localhost etc]# cd ……/root/ 註:退到上級目錄,也就是退到/,然後再進入root目錄;

  [root@localhost ~]# pwd 判斷是不是進入/目錄下的root目錄?

  /root 註:的確是實現了。

  5.3 符號~和~USER示例

  ~表示當前操作用戶的家目錄,看下面的例子:

  [root@localhost ~]# id 註:查看當前用戶的用戶信息;我們用哪個用戶來操作命令的?

  uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel) 註:看到了,是root用戶;

  [root@localhost ~]# finger root 註:查看root用戶的信息;

  Login: root Name: root

  Directory: /root 註:這表示root用戶的家目錄位於/root目錄中 Shell: /bin/bash;

  [root@localhost ~]# pwd 註:判斷用戶所處的目錄;

  /root 註:是/root目錄;

  [root@localhost ~]# cd /etc/X11/ 註:進入/etc/X11

  [root@localhost X11]# pwd 註:判斷用戶所處的目錄;

  /etc/X11 註:看來已經到了/etc/X11;

  [root@localhost X11]# cd ~ 註:我們返回root用戶的家目錄;

  [root@localhost ~]# pwd

  /root 註:是不是返回了??

  ~USER的示例:

  如果我們添加一個用戶時,系統會添加一條用戶紀錄到/etc/passwd文件中,所以/etc/passwd 就是用戶的管理文件;~USER中的USER是必須在/etc/passwd中“註冊”的用戶,這樣在~USER中的USER才是有效的。怎麼“註冊”,當然是用戶管理工具來添加用戶了。關於用戶管理工具,請參考:《Linux 用戶管理工具介紹》;

  為了說明~USER的應用,我們首先添加一個新用戶:

  [root@localhost ~]# adduser linuxsirorg 註:添加linuxsirorg這個用戶;

  [root@localhost ~]# passwd linuxsirorg 注;為linuxsirorg 設置密碼;

  Changing password for user linuxsirorg.

  New UNIX password: 註:添加linuxsirorg用戶密碼

  Retype new UNIX password: 註:再輸入一次;

  passwd: all authentication tokens updated successfully.注;添加用戶成功;

  [root@localhost ~]# finger linuxsirorg 註:查看linuxsirorg用戶信息;

  Login: linuxsirorg Name: (null)

  Directory: /home/linuxsirorg Shell: /bin/bash

  註:我們看到新添加的用戶家目錄在/home/linuxsirorg.

  ~USER的示例:

  比如我用root用戶操作,並且處於/root目錄中;我想進入linuxsirorg用戶的家目錄;

  [root@localhost ~]# pwd;

  /root

  [root@localhost ~]# cd ~linuxsirorg/ ;

  註:進入linuxsirorg用戶的家目錄;其等效命令是cd /home/linuxsirorg;

  [root@localhost linuxsirorg]# pwd 註:判斷用戶所處位置;

  /home/linuxsirorg ;

  [root@localhost linuxsirorg]# cd ~root 註:等同於cd /root ,或等同行cd ~ ;表示返回root的家目錄。
 6、切換用戶當前目錄的指令 cd

  用戶從一個當前目錄時入另一個目錄的指令就是用cd ;我們在前面示例中大量應用過,在這裡不再多說了。

  用法:#cd 路徑

  舉例:

  [root@localhost ~]# cd /usr/share/man/.更多的幫助,請參考 man cd 或cd ——help.

  7、判斷用戶當前所處的工作目錄的指令 pwd

  pwd 指令用來顯示用戶當前所處的位置的,前面我們也說的很多。

  示例:

  [root@localhost man]# pwd 注;判斷用戶當前所處的目錄;

  /usr/share/man 註:位於/usr/share/man 中。

  8、關於用戶環境變數PATH的設置

  在一般情況下,Linux文件系統中bin或sbin目錄中的文件都是可執行的。有時我們為了方便不輸入路徑就能調用指令或工具,這時要就要設置用戶的環境變數PATH.

  看下面的一例:

  [root@localhost ~]# ls
   adduml.sh lsfile.sh mkuml-2004.07.17
   mkuml-2004.07.17-ananas.tar.bz2 mydir
   openQreadme.txt sun.txt tmp upgrade.log
  [root@localhost ~]# /bin/ls
  adduml.sh lsfile.sh mkuml-2004.07.17
   mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt tmp upgrade.log

  上面的例子,第一個指令就是直接運行了ls命令來顯示當前目錄下的文件和子目錄;第二條/bin/ls 指令是用絕對路徑的ls來運行的;這兩種方式運行的結果看來是一樣的。

  在論壇上,有些弟兄總是我已經安裝了某某軟體包,卻沒有某個指令。其實就是環境變數設置的事。如果您直接輸入某個指令不存在,解決辦法有兩個,一個方法是要指定用可執行文件的絕對路徑(也可以是相對路徑,怎麼方便怎麼用吧),另一個方法是設定用戶的環境變數。

  我們可以用export PATH來設置環境變數。比如把下面一行加入到用戶家目錄下的。bashrc 或。profile文件中:

  export PATH=".:/bin:/sbin:/usr/sbin:/usr/
  bin:/usr/local/ bin:/usr/X11R6/bin"

  解釋:您可以找出Linux文件系統中所有bin或sbin目錄的的絕對路徑,然後把它們用:號分割,比如上面所設置的。第一個。表示用戶當前所處的目錄。添加好后,我們再運行一下source,也就是:

  #source .bashrc
  或
  #source .profile

  如果發現指令只有root許可權才運行,這時您要用到su; 如果您用的是普通用戶,可能無權查看一些文件的目錄的內容,您也需要用到su來切換身份;請參考:《Linux 系統中的超級許可權的控制》。

  9、有關目錄的操作指令

  有關目錄的操作,比如創建、複製、移動、刪除,請參見:《Linux 文件和目錄管理之顯示、刪除、複製、移動及改名》。也就是ls、mkdir、cp、mv、rmdir、rm 等工具的運用。

5DMail收集整理



[火星人 ] 關於Linux系統中文件系統路徑的理解已經有518次圍觀

http://coctec.com/docs/linux/show-post-70675.html