Linux不存在像Windows那樣分盤符的概念,Linux在安裝之后就以文件目錄的形式來進行管理,存儲。即當我們安裝完系統之后,我們就會看到有一堆的目錄出現在根目錄下。同時Linux使用正斜杠“/”,而不是反斜杠“\”來標識目錄。
先來個例子:
用戶間文件共享:
共享文件對一個團隊來說很重要,團隊成員通常需要在一台服務器上共同完成一項任務。下面介紹如何實現用戶間共享文件,假設這個團隊的成員在服務器上的用戶名為lucy,liwei,tian,他們屬於workgroup工作組。可以用一下命令來模擬這個場景:
## 新建一個用戶名為workgroup的用戶組 $ sudo groupadd workgroup ## 新建用戶並歸入workgroup 用戶組 $ sudo useradd -G workgroup lucy $ sudo passwd lucy $ sudo useradd -G workgroup liwei $ sudo passwd liwei $ sudo useradd -G workgroup tian $ sudo passwd tian
首先在/home目錄下新建一個work目錄,作為這個小組的工作目錄,注意這個需要root權限的哦。
$ cd home/
$ sudo mkdir work ## 建立一個名為work的目錄
現在任何人都可以訪問這個新建的目錄,而只有root用戶具有該目錄的寫權限。現在我們希望前面我們創建的workgroup具有讀寫權限,並禁止其他無關的用戶查看這個目錄。
$ sudo chgrp workgroup work/ ## 將work目錄的所有權交給workgroup組 $ sudo chmod g+rwx work/ ## 增加workgroup組對work目錄的讀,寫,執行權限 $ sudo chmod 0-rwx work/ ## 撤銷其他用戶對work目錄的讀,寫,執行權限
接下來把這個目錄交給一個組長liwei
$ sudo chown liwei work/ ## 將work目錄的所有者更改為liwei用戶
現在所有屬於這個組的成員都可以訪問並修改這個目錄中的內容了,而其他未經過授權的用戶,除了root外都無法開導里面的內容。舉例來說,liwei在work目錄下新建了一個名為test的文件,那么同屬於一個組的tian如果認為這個文件沒什么必要,可以有權限刪除它。
$ su liwei ## 切換到用戶liwei $ cd /home/work $ touch test ## 建立一個空文件test $ su tian ##切換到用戶tian $ cd /home/work/ $ rm test ## 刪除test文件
建立文件與目錄
建立目錄:mkdir
mkdir命令可以一次創建一個或者是多個目錄,下面的命令在用戶主目錄下建立兩個目錄:document,picture
$ cd ~ ## 進入用戶主目錄 $ mkdir document picture ## 新建兩個目錄
用戶也可以使用絕對路徑來新建文件
$ mkdir ~/picture/temp ## 在主目錄下新建temp的目錄
由於主目錄先picture 這個目錄已經存在,所以這條命令是合法的,但當用戶試圖運行下面的命令,mkdir將提示有錯
$ mkdir ~tempx/job mkdir:無法創建目錄
但是可以使用-p選項,來完整地創建一個子目錄結構
$ mkdir -p ~tempx/job
建立一個空文件:touch
touch使用非常簡單,只需在后面跟上一個文件名作為參數。下面這個命令在當前目錄下新建一個名為hello的文件
$ touch hello
touch命令的另一個用途是更新一個文件的建立日期與時間。
移動,復制與刪除
1、移動與重命名:mv
mv這個命令用來移動文件,下面這個命令將hello文件移動到bin目錄下
$ mv hello bin/
當然也可以用來移動目錄,下面這條命令把photos目錄移動到【桌面】這個目錄下
$ mv photos/ 桌面/
mv再把一個文件或者是目錄移動到目標目錄中的時候,如果出現了同名的文件的時候會是什么樣子呢?
如果出現同名的文件將會覆蓋掉目標文件中的同名文件。別擔心Linux提供了一個-i的選項用來提示用戶石是否要覆蓋這個文件,如下:
$ mv -i hello test/ ##test目錄下有一個hello文件 mv:是否覆蓋“test/hello”?
回到y表示覆蓋,回答n表示跳過這個文件。
另一個有一用的選項是-b,這個選項也可以解決上述問題。在移動文件前,首先在目標目錄的同名文件的文件名后加一個“~”,從而避免了這個文件被覆蓋。
$ mv -b hello test/ $ cd test/ $ ls hello hello~
在Linux中沒有重命名這個命令,重命名無非就是同一個文件在同一個目錄下移動,這個mv就可以解決了,
$ mv hello~ hello_bak $ ls hello hello_back
mv可以在移動文件和目錄的同時實現重命名。
復制文件與目錄:cp
cp命令用來復制文件與目錄,下面這個條命令將test.js復制到test目錄下
$ cp test.js test/
和mv命令一樣,cp默認情況下會覆蓋目標目錄下的同名文件,像上面一樣可以使用-i命令對這種情況進行提示。也可使用-b選項對同名文件改名后在復制。
$ cp -b test.js test/ $ cd test/ $ ls test.js test.js~
cp命令在執行復制任務的時候會自動的跳過目錄。
$ cp test/ 桌面/ cp:略過目錄"test/"
可以使用-r選項來解決這個問題,這個選項將子目錄連同其中的文件一起復制到另一個子目錄下:
$ cp -r test/ 桌面/
刪除目錄和文件:rmdir和rm