鳥哥的Linux私房菜筆記第六章

Johnson木木發表於2019-06-01

目錄與路徑

相對路徑與絕對路徑

上一章簡單的提到絕對路徑和相對路徑

絕對路徑:路徑的寫法一定是由根目錄(/)寫起的,例如:/home/user 這個目錄
相對路徑:路徑的寫法不是由根目錄(/)寫起,例如:我當前所在目錄 /home/user,我要切換到/home/user2 目錄下。那麼寫法就是 cd ../user2,其實相對路徑指的意思是:相對於當前目錄的路徑。


目錄的相關操作

特殊的目錄:

.   //代表當前目錄
..  //代表上一次目錄
-   //代表前一個工作目錄(其實就是上一個操作的目錄)
~   //代表當前使用者的家目錄,例如當前使用者是user,那麼user的家目錄就是在/home/user下
~username   //代表使用者名稱為username的使用者的家目錄。


常見的處理目錄的指令

cd     //切換目錄
pwd    //顯示當前目錄
mkdir  //建立目錄
rmdir  //刪除空目錄,注意是空目錄!不空的目錄後面再講

簡單指令用法如下

cd /home/user //使用絕對路徑切換目錄
pwd           //顯示當前所在目錄,只會顯示絕對路徑
mkdir dir     //建立一個名為dir的目錄(可以理解為資料夾)
rmdir dir     //刪除一個名為dir的空目錄


執行檔案路徑變數:$PATH

ls為查閱檔案屬性的指令,起對應完整檔名為:/bin/ls(這是絕對路徑),那麼為什麼我們輸入ls就會執行/bin/ls這個指令呢?這是因為環境變數PATH所致的。相當於我們Window下的環境變數path。

echo $PATH   //列印PATH變數,$號後面接的是變數。
/home/vagrant/bin:/home/vagrant/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin

可以看到每個目錄中間用冒號(:)來隔開,每個目錄都會有順序之分。我們之所以可以執行ls命令,那是因為ls指令存在/bin目錄下,我們可以看到$PATH有/bin這個目錄,所以ls指令就可以直接執行啦。
例舉常用新增環境變數的兩種方式,需要把/home/vagrant新增到環境變數:
1.只對當前使用者生效:
修改家目錄下的 .bashrc檔案,然後在檔案的最下方加入:

export PATH=/home/vagrant:$PATH
///儲存後執行
source ~/.bashrc

2.修改/etc/environment檔案,直接使用vim命令在後面新增就可以了。

cat /etc/environment //檢視該檔案
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games"


檔案與目錄管理

檔案與目錄的管理,其實主要就是顯示屬性、複製、刪除、移動等操作。
選項:

檔案與目錄的檢視:ls

ls可以說是最常用的指令了,而ls指令一些常用的選項如下:
-a : 列出全部檔案,包括隱藏檔案(開頭為 . 的檔案)
-d : 僅列出目錄本身,而不列出目錄內的檔案資料
-l : 列出的檔案或目錄,一個佔一行,並且顯示檔案的屬性、許可權等等資料。
使用方式如下:

ls -[options]


複製、刪除與移動:cp,rm,mv

cp(複製檔案或目錄)
cp指令也非常重要,因為我們也經常進行檔案的複製,所以也會常常用到這個指令。如果要去複製別人的檔案,我們必須有read(讀)許可權。一般來說複製別人的檔案後,該檔案的擁有者就會變成自己的啦。
常用選項:
-i : 若檔案已經存在時,詢問是否需要覆蓋檔案。
-p : 把檔案的屬性(許可權、使用者、時間)一起復制過去。
-r :遞迴複製,例如複製非空的目錄,就需要使用這個指令啦。

使用方式如下:

cp [-options] 原始檔 目標檔案
cp -i /usr/bin /tmp/bin //例子



rm(移除檔案和目錄)
選項:
-f : 忽略不存在的檔案,不會出現警告資訊
-i : 執行刪除動作時會詢問你是否真的需要刪除
-r : 遞迴刪除,常用在目錄的刪除上,使用這命令要再三確認啊。危險!

使用方式如下:

rm [-options] 檔案或目錄



mv(移動/更名 檔案或目錄)
相似於window下的剪下和重新命名操作。
選項:
-f :如果檔案已存在,不會詢問而只是直接覆蓋。
-i :如果檔案已存在,則會詢問是否需要覆蓋。
-u :如果檔案已存在,且複製的檔案比已存在的檔案新,就會覆蓋。

mv -[options] 原始檔 目標檔案
mv /home/vagrant /tmp/vg  //此命令就會把home下vagrant目錄移動到tmp目錄下,並且改名為vg啦。

擴充套件:其實更名還有一個命令,叫做rename。需要詳細瞭解的話可以 man rename看一看。

相關文章