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。如果一個路徑是從/開始的,它一定是絕對路徑,這樣就好理解了;
4.2 相對路徑;
相對路徑是以 . 或 .. 開始的,.表示用戶當前操作所處的位置,而.. 表示上級目錄;在路徑中,.表示用戶當前所處的目錄,而..上級目錄,要把.和..當做目錄來看。
/ 注:用戶當前位于/(根目錄)中;
5、在路徑中一些特殊符號的說明;
這些符號在相對路徑中應用的,這些符號能為我們帶來方便,所以有必要說說;
. 表示用戶所處的當前目錄;
.. 表示上級目錄
~ 表示當前用戶自己的家目錄
~USER 表示用戶名為USER的家目錄,這里的USER是在/etc/passwd中存在的用戶名;
5.1 符號.應用示例;
通過下面的例子,讓我們增強.所表示的意義;
理解./的意義;
或
mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt tmp upgrade.log
或
kernelBak youdir
[root@localhost ~]#
在有些文檔中,我們看到類似./filename 來運行一個腳本或程序的例子。其實它就是在用戶當前目錄下運行的;請看下面的示例;
5.2 符號..應用示例;
[root@localhost ~]# cd /etc/X11/
5.3 符號~和~USER示例;
~表示當前操作用戶的家目錄,看下面的例子;
Directory: /root
/root
~USER的示例;
如果我們添加一個用戶時,系統會添加一條用戶紀錄到/etc/passwd文件中,所以/etc/passwd 就是用戶的管理文件;~USER中的USER是必須在/etc/passwd中“注冊“的用戶,這樣在~USER中的USER才是有效的。怎么“注冊“, 當然是用戶管理工具來添加用戶了。關于用戶管理工具,請參考:《Linux 用戶管理工具介紹》;
為了說明~USER的應用,我們首先添加一個新用戶;
New UNIX password:
Directory: /home/linuxsirorg Shell: /bin/bash
注:我們看到新添加的用戶家目錄在/home/linuxsirorg;
~USER的示例;
比如我用root用戶操作,并且處于/root目錄中;我想進入linuxsirorg用戶的家目錄;
/root</p> <p>[root@localhost ~]# cd ~linuxsirorg/
注:進入linuxsirorg用戶的家目錄;其等效命令是cd /home/linuxsirorg;
6、切換用戶當前目錄的指令 cd ;
用戶從一個當前目錄時入另一個目錄的指令就是用cd ;我們在前面示例中大量應用過,在這里不再多說了;
用法:
舉例:
更多的幫助,請參考 man cd 或cd --help
7、判斷用戶當前所處的工作目錄的指令 pwd ;
pwd 指令用來顯示用戶當前所處的位置的,前面我們也說的很多。
示例:
8、關于用戶環境變量PATH的設置;
在一般情況下,Linux文件系統中bin或sbin目錄中的文件都是可執行的。有時我們為了方便不輸入路徑就能調用指令或工具,這時要就要設置用戶的環境變量PATH。
看下面的一例:
adduml.sh lsfile.sh mkuml-2004.07.17 mkuml-2004.07.17-ananas.tar.bz2 mydir openQreadme.txt sun.txt tmp upgrade.log</p> <p>[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文件中;
解釋:您可以找出Linux文件系統中所有bin或sbin目錄的的絕對路徑,然后把它們用:號分割,比如上面所設置的。第一個.表示用戶當前所處的目錄;
添加好后,我們再運行一下source,也就是:
或
如果發現指令只有root權限才運行,這時您要用到su; 如果您用的是普通用戶,可能無權查看一些文件的目錄的內容,您也需要用到su來切