歡迎您光臨本站 註冊首頁

關於linux的工作目錄

←手機掃碼閱讀     火星人 @ 2014-03-09 , reply:0

本文是面向linux的新手,內容很雜,很亂,講的也很拖沓.如果內容有錯誤,歡迎各路高手予以指正.

使用的操作系統是Ubuntu Linux 10.04 LTS,使用的Terminal是gnome-terminal.

文章的開始肯定是枯燥無聊的基礎知識.但是這些知識,我覺得有必要知道.

一、什麼是目錄?

這個……其實我也不知道怎麼解釋.目錄就是Windows下的文件夾唄.

二、目錄結構

Windows下管C:,D:,E:,F:……叫做根目錄.(我很好奇,如果在Windows下分區超過26個會是什麼結果?好吧,我承認,我完全不會用Windows.)也就是說,Windows的目錄結構有多個根目錄.從C:想要訪問D:中的內容要首先切換到D:才可以進行訪問.

Linux的目錄只有一個根目錄,它的名字叫“/”.沒錯,只有一個斜杠“/”.Linux的文件系統通過“掛載”的方式來處理多個分區.(詳細請查詢“文件系統”和“掛載”相關資料.)

三、絕對路徑、相對路徑

絕對路徑是指從根目錄開始的路徑,它在系統中是唯一的.

相對路徑是指當前位置開始的路徑.它與當前的位置有關.

在Linux中,區分絕對路徑和相對路徑的方法很簡單,以“/”開頭的(也就是以根目錄開始的)路徑就是絕對路徑,其它的是相對路徑.

例如,當前位置是/usr.

1、如果進入bin目錄,那麼此時的當前目錄是/usr/bin目錄.

2、如果我進入/bin目錄,那麼此時的當前目錄是/bin目錄.

如何進入一個目錄?一會再說,別著急.

好了,該介紹的都介紹完了,應該沒啥要說的了吧?那麼下面進入正題.

首先介紹一個命令:pwd.

您可以先試一下,在Terminal裡面輸入pwd,回車.輸出了什麼?

是的,就是當前工作目錄.

我們“男人”一下,在Terminal裡面輸入man pwd看看.man裡面對pwd的簡介是:

pwd - print name of current/working directory


看起來pwd很簡單,就是輸出當前/工作目錄的名字.

pwd有兩個和軟鏈接有關的選項,在這不作介紹.感興趣的同學可以自己研究.(請查詢“軟鏈接”相關資料)

我們在此不區分“當前目錄”與“工作目錄”,暫時認為這兩個是同一個概念.

那麼,第一個問題:pwd命令是如何知道當前目錄是哪個呢?

答案在man裡面說的很清楚:環境變數.

我們在Terminal裡面輸入env,回車.輸出了什麼?

很多東西是吧?有點亂.請仔細找一下,裡面有以“PWD=”開頭的一行.等號後面的是什麼?

我們發現,這和pwd命令輸出的內容是一樣的.

實際上,pwd的原理就是輸出環境變數中的PWD變數的值.

哎?環境變數是什麼?其實我也不知道.環境變數有一大堆(就是env命令輸出的那一堆),它們會在Terminal啟動的時候被初始化,在Terminal關閉的時候消失.它們在某種程度上表示了Terminal當前的狀態及系統中相關的設置.

並且,Linux中有很多命令會用到環境變數中某些變數的內容.

那麼我們今天暫時不去管其它的環境變數,只看一下和“工作目錄”有關的環境變數.我們用grep命令把env輸出中的PWD字串篩選出來.(請自行學習shell中有關“管道”和“grep命令”的相關知識).

env | grep 'PWD'

現在,我們改變一下工作目錄.改變工作目錄的命令是cd.cd就是change directory的縮寫,用來改變當前工作目錄.

cd /usr

我們把當前工作目錄改成了“/usr”.首先,我們發現命令提示符前面的冒號':'後面的字元串也發生了改變.(請查詢“linux shell 命令提示符”的相關資料)原來是:

:~$

現在變成了:

:/usr$

現在,我們查看一下環境變數中的PWD的值.

env | grep 'PWD'

我們發現,PWD變數的值已經變成了/usr.但是,我們同時發現,環境變數中多出來一個叫OLDPWD的變數,它的值是我們“cd /usr”之前PWD變數的值.並且從它的名字中我們也能看出,OLDPWD就是原來的PWD的值.

那麼實踐一下剛才我們在講到絕對目錄和相對目錄時提到的事情:

相對目錄:

cd /usr

cd bin

pwd

此時輸出的是/usr/bin.

cd /usr

cd /bin

pwd

此時輸出的是/bin.

這裡有一個疑問.當“cd bin”時,cd命令是進入“當前目錄”下的“bin”目錄.那麼,cd命令是如何知道“當前目錄”是什麼的?

答案是:環境變數.

cd命令是通過環境變數中PWD變數的值來獲取“當前目錄”的.

這裡,介紹兩個cd命令的特殊用法.“cd -”(這個是減號)和“cd ~”(這個是波浪線,鍵盤上“1”左邊的那個鍵上面的那個字元).

“cd -”是後退命令.還記得環境變數中有個叫“OLDPWD”的變數不?cd -就是進入OLDPWD變數保存的路徑.

兩次cd -是後退的後退嗎?不是.你可以自己試一下,兩次cd -它又回來了,而不是上上次的路徑.

“cd ~”是進入“家目錄”.每個用戶都有一個“家目錄”.一般情況下,用戶的家目錄是/home下有一個以用戶名為名稱的目錄.“家目錄”中保存的是用戶的一些相關設置.

除了cd以外,很多需要查找文件或目錄的命令都會首先在當前目錄下尋找.關於當前目錄的概念就先介紹這麼多.

如果有什麼錯誤或者希望與本人交流,可以與本人聯繫.

本人郵箱:elephant_liu@mail.dlut.edu.cn.

本文出自 「elephant_liu」 博客,請務必保留此出處http://elephantliu.blog.51cto.com/1107116/555489


[火星人 ] 關於linux的工作目錄已經有521次圍觀

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