1、Linux文件系統(tǒng)是從/開始的;
在Linux操作系統(tǒng)的文件管理中,命令行模式(在控制臺(tái)或終端下)的文件或目錄管理,要涉及路徑這一概念,這是Linux命令行操作的最基礎(chǔ)的基礎(chǔ)。如果我們了解了路徑的概念,就可以隨心所欲的進(jìn)入任何目錄,進(jìn)行我們想的工作。
Linux 文件系統(tǒng),是一個(gè)呈樹形結(jié)構(gòu),是從/做為入口,/(也被稱為根目錄)下有子目錄,比如etc、usr、lib等,在每個(gè)子目錄下又有文件或子目錄,這樣就 形成了一個(gè)樹形結(jié)構(gòu),這種樹形結(jié)構(gòu)比較單一。而Windows文件系統(tǒng)呢?它引入了C盤、D盤類似的磁盤概念,使得習(xí)慣Windows操作的用戶在轉(zhuǎn)向 Linux時(shí),會(huì)發(fā)現(xiàn)Linux根本就沒有C盤、D盤的概念,有時(shí)甚至不知所措。
2、理解路徑概念的目的;
引入路徑概念目的最終是找到我們所需要的目錄或文件。比如我們想要編輯 file.txt 文件,我們首先要知道他存放在哪里,也就是說我們要指出他所在的位置,這時(shí)就要用到路徑了。
3、路徑的構(gòu)成要素;
路徑是由目錄或目錄和文件名構(gòu)成的。比如/etc/X11 就是一個(gè)路徑,而/etc/X11/xorg.conf也是一個(gè)路徑。也就是說路徑可以是目錄的組合,分級(jí)深入進(jìn)去,也可以是文錄+文件構(gòu)成。比如我們想 用vi編輯xorg.conf文件,在命令行下輸入 vi /etc/X11/xorg.conf ,如果我們想進(jìn)入/etc/X11目錄,就可以通過cd /etc/X11來實(shí)現(xiàn)。
4、路徑的分類;
路徑分為絕對(duì)路徑和相對(duì)路徑;
4.1 絕對(duì)路徑;
在Linux中,絕對(duì)路徑是從/(也被稱為根目錄)開始的,比如/usr、/etc/X11。如果一個(gè)路徑是從/開始的,它一定是絕對(duì)路徑,這樣就好理解了;
[root@localhost ~]# pwd
注:判斷用戶當(dāng)前所處的位置,也就是說他到底位于哪?
/root
注:用戶當(dāng)前位于/root;
[root@localhost ~]# cd /usr/share/doc/
注:我們以絕對(duì)路徑方式進(jìn)入/usr/share/doc目錄下;
[root@localhost doc]# pwd
注:判斷用戶當(dāng)前所處的位置
/usr/share/doc
注:用戶位于/usr/share/doc,看來已經(jīng)達(dá)到我們的目的了;
4.2 相對(duì)路徑;
相對(duì)路徑是以 . 或 .. 開始的,.表示用戶當(dāng)前操作所處的位置,而.. 表示上級(jí)目錄;在路徑中,.表示用戶當(dāng)前所處的目錄,而..上級(jí)目錄,要把.和..當(dāng)做目錄來看。
[root@localhost ~]# pwd
注:通過pwd來判斷當(dāng)前用戶所在的位置;
/root
注:得出目錄處于/root目錄中;
[root@localhost ~]# cd .
注:我們進(jìn)入.
[root@localhost ~]# pwd
注:判斷當(dāng)前用戶所處的位置;
/root
注:得出在/root 目錄中 ;
[root@localhost ~]# cd ..
注:我們切入/root的上級(jí)目錄
[root@localhost /]# pwd
注:判斷當(dāng)前用戶所處的位置。
/ 注:用戶當(dāng)前位于/(根目錄)中;
5、在路徑中一些特殊符號(hào)的說明;
這些符號(hào)在相對(duì)路徑中應(yīng)用的,這些符號(hào)能為我們帶來方便,所以有必要說說;
. 表示用戶所處的當(dāng)前目錄;
.. 表示上級(jí)目錄
~ 表示當(dāng)前用戶自己的家目錄
~USER 表示用戶名為USER的家目錄,這里的USER是在/etc/passwd中存在的用戶名;
5.1 符號(hào).應(yīng)用示例;
通過下面的例子,讓我們增強(qiáng).所表示的意義;
[root@localhost ~]# pwd
注:判斷用戶當(dāng)前所處的目錄;
/root
注:位于/root目錄;
[root@localhost ~]# cd .
注:進(jìn)入.目錄,這里的.就是用戶當(dāng)前所處的位置;
[root@localhost ~]# pwd
注:在哪呢?
/root
注:在/root中。
理解./的意義;
[root@localhost ~]# pwd
注:判斷用戶當(dāng)前所處的目錄;
/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/
查看用戶所處當(dāng)前目錄下的tmp目錄的內(nèi)容
kernelBak youdir
或
[root@localhost ~]# ls tmp/
kernelBak youdir
[root@localhost ~]#
在有些文檔中,我們看到類似./filename 來運(yùn)行一個(gè)腳本或程序的例子。其實(shí)它就是在用戶當(dāng)前目錄下運(yùn)行的;請(qǐng)看下面的示例;
[root@localhost ~]# pwd
注:判斷用戶當(dāng)前所處的目錄; r />/root 注:位于/root目錄;
[root@localhost ~]# touch lsfile.sh
注:創(chuàng)建一個(gè)文件名為lsfile.sh的文件;
[root@localhost ~]# chmod 755 lsfile.sh
注:修改權(quán)限讓其可執(zhí)行;
[root@localhost ~]# echo "ls -la"> lsfile.sh
注:向lsfile.sh文件中加入ls -la 一句指令
[root@localhost ~]# more lsfile.sh
注:用more 工具來查看lsfile.sh 文件的內(nèi)容;
ls -la
[root@localhost ~]# ./lsfile.sh
注:運(yùn)行l(wèi)sfile.sh ,在這里用的是相對(duì)路徑;
[root@localhost ~]# /root/lsfile.sh
注:這是絕對(duì)路徑運(yùn)行l(wèi)sfile.sh 腳本;
5.2 符號(hào)..應(yīng)用示例;
[root@localhost ~]# pwd
注:判斷用戶當(dāng)前所處的目錄;
/root
[root@localhost ~]# cd /etc/X11/
注:進(jìn)入/目錄下的etc目錄下的X11目錄;
[root@localhost X11]# pwd
注:判斷用戶當(dāng)前所處的目錄;
/etc/X11
注:看來用戶真的位于/etc/X11目錄了;
[root@localhost X11]# cd ..
注:退到上級(jí)目錄;
[root@localhost etc]# pwd
注:判斷用戶當(dāng)前所處的目錄;
/etc
[root@localhost etc]# cd ../root/
注:退到上級(jí)目錄,也就是退到/,然后再進(jìn)入root目錄;
[root@localhost ~]# pwd
判斷是不是進(jìn)入/目錄下的root目錄?
/root
注:的確是實(shí)現(xiàn)了。
5.3 符號(hào)~和~USER示例;
~表示當(dāng)前操作用戶的家目錄,看下面的例子;
[root@localhost ~]# id
注:查看當(dāng)前用戶的用戶信息;我們用哪個(gè)用戶來操作命令的?
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/
注:進(jìn)入/etc/X11
[root@localhost X11]# pwd
注:判斷用戶所處的目錄;
/etc/X11
注:看來已經(jīng)到了/etc/X11;
[root@localhost X11]# cd
~ 注:我們返回root用戶的家目錄;
[root@localhost ~]# pwd
/root
注:是不是返回了??
~USER的示例;
如果我們添加一個(gè)用戶時(shí),系統(tǒng)會(huì)添加一條用戶紀(jì)錄到/etc/passwd文件中,所以/etc/passwd 就是用戶的管理文件;~USER中的USER是必須在/etc/passwd中“注冊“的用戶,這樣在~USER中的USER才是有效的。怎么“注冊“, 當(dāng)然是用戶管理工具來添加用戶了。關(guān)于用戶管理工具,請(qǐng)參考:《Linux 用戶管理工具介紹》;
為了說明~USER的應(yīng)用,我們首先添加一個(gè)新用戶;
[root@localhost ~]# adduser linuxsirorg
注:添加linuxsirorg這個(gè)用戶;
[root@localhost ~]# passwd linuxsirorg
注;為linuxsirorg 設(shè)置密碼;
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目錄中;我想進(jìn)入linuxsirorg用戶的家目錄;
[root@localhost ~]# pwd
/root/p>
p>[root@localhost ~]# cd ~linuxsirorg/
注:進(jìn)入linuxsirorg用戶的家目錄;其等效命令是cd /home/linuxsirorg;
[root@localhost linuxsirorg]# pwd
注:判斷用戶所處位置;
/home/linuxsirorg
[root@localhost linuxsirorg]# cd ~root
注:等同于cd /root ,或等同行cd ~ ;表示返回root的家目錄;
6、切換用戶當(dāng)前目錄的指令 cd ;
用戶從一個(gè)當(dāng)前目錄時(shí)入另一個(gè)目錄的指令就是用cd ;我們在前面示例中大量應(yīng)用過,在這里不再多說了;
用法:
#cd 路徑
舉例:
[root@localhost ~]# cd /usr/share/man/
更多的幫助,請(qǐng)參考 man cd 或cd --help
7、判斷用戶當(dāng)前所處的工作目錄的指令 pwd ;
pwd 指令用來顯示用戶當(dāng)前所處的位置的,前面我們也說的很多。
示例:
[root@localhost man]# pwd
注;判斷用戶當(dāng)前所處的目錄;
/usr/share/man
注:位于/usr/share/man 中;
8、關(guān)于用戶環(huán)境變量PATH的設(shè)置;
在一般情況下,Linux文件系統(tǒng)中bin或sbin目錄中的文件都是可執(zhí)行的。有時(shí)我們?yōu)榱朔奖悴惠斎肼窂骄湍苷{(diào)用指令或工具,這時(shí)要就要設(shè)置用戶的環(huán)境變量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/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
上面的例子,第一個(gè)指令就是直接運(yùn)行了ls命令來顯示當(dāng)前目錄下的文件和子目錄;第二個(gè)條/bin/ls 指令是用絕對(duì)路徑的ls來運(yùn)行的;這兩種方式運(yùn)行的結(jié)果看來是一樣的。
在論壇上,有些弟兄總是我已經(jīng)安裝了某某軟件包,卻沒有某個(gè)指令。其實(shí)就是環(huán)境變量設(shè)置的事。如果您直接輸入某個(gè)指令不存在,解決辦法有兩個(gè),一個(gè)方法是要指定用可執(zhí)行文件的絕對(duì)路徑(也可以是相對(duì)路徑,怎么方便怎么用吧),另一個(gè)方法是設(shè)定用戶的環(huán)境變量。
我們可以用export PATH來設(shè)置環(huán)境變量。比如把下面一行加入到用戶家目錄下的.bashrc 或.profile文件中;
export PATH=".:/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin"
解釋:您可以找出Linux文件系統(tǒng)中所有bin或sbin目錄的的絕對(duì)路徑,然后把它們用:號(hào)分割,比如上面所設(shè)置的。第一個(gè).表示用戶當(dāng)前所處的目錄;
添加好后,我們再運(yùn)行一下source,也就是:
#source .bashrc
或
#source .profile
如果發(fā)現(xiàn)指令只有root權(quán)限才運(yùn)行,這時(shí)您要用到su; 如果您用的是普通用戶,可能無權(quán)查看一些文件的目錄的內(nèi)容,您也需要用到su來切