歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> Linux下基本的文件和目錄管理命令學習教程

Linux下基本的文件和目錄管理命令學習教程

日期:2017/3/1 17:34:13   编辑:Linux技術

. 代表此層目錄
. . 代表上一層目錄
- 代表前一個工作目錄
~ 代表“目前用戶身份”所在的中文件夾
~account 代表account這個用戶的主文件夾(account是個賬號名稱)

cd:切換目錄
cd ~vurtne 切換到vurtne這個用戶的主文件夾,即/home/vurtne
cd ~ 表示回到自己的主文件夾,即/root. 等同於cd
cd . . 切換到上層目錄
cd - 代表回到剛才的目錄

pwd:顯示當前目錄
pwd -P 顯示出實際的工作目錄,而非鏈接文件本身的目錄名
(如/var/mail)
mkdir:新建一個新的目錄

復制代碼代碼如下:mkdir -m 770 test 直接配置目錄權限

復制代碼代碼如下:mkdir -p test/test1/test2/test3/test4 創建遞歸目錄

rmdir:刪除一個空的目錄

復制代碼代碼如下:rmdir -p test/test1/test2/test3/test4 刪除遞歸目錄(空目錄)

執行文件路徑的變量:$PATH
PATH=”$PATH”:/root 將/root加入PATH當中
① 不同身份用戶默認的PATH不同,默認能夠隨意執行的命令也不同(如root和一般用戶);
② PAHT是可以修改的,所以一般用戶還是可以通過修改PATH來執行某些位於/sbin或
/usr/sbin下的命令來查詢;
③ 使用絕對路徑或相對路徑直接指定某個命令的文件名來執行,會比查詢PATH來得正確;
④ 命令應該要放置到正確的目錄下,執行才會比較方便;
⑤ 本目錄(.)最好不要放到PATH當中。

cat:由第一行開始顯示文件內容
tac:從最後一行開始顯示
nl:顯示的時候輸出行號
more:一頁一頁顯示文件內容
less:與more類似,可以向前翻頁
head:只看頭幾行 head -n 3 /etc/passwd
tail:只看結尾幾行
od:以二進制的方式讀取文件內容
ls -al --full-time : 查閱完整時間格式
cp,rm,mv : 復制、刪除、移動
由於cp有種種的文件屬性與權限的特性,所以,在復制時應注意:
① 是否需要完整保留來源文件的信息
② 源文件是否為軟連接文件
③ 源文件是否為特殊的文件
④ 源文件是否為目錄

復制代碼代碼如下:basename /etc/sysconfig/network 取得最後的文件名

復制代碼代碼如下:dirname /etc/sysconfig/network 取得目錄名

修改文件時間或創建新文件:touch
-a : 僅修改訪問時間;
-c : 僅修改文件的時間,若該文件不存在則不創建新文件;
-d : 後面可以接欲修改的日期而不用目前的日期,也可以使用--date=”日期或時間”;
-m : 僅修改mtime;
-t : 後面可以接欲修改的時間而不用目前的時間,格式為[YYMMDDhhmm].
mtime(medify time):最後一次修改文件或目錄的時間;
ctime(change time):最後一次改變文件或目錄(改變的是原數據即屬性)的時間;
atime(access time):最後一次訪問文件或目錄的時間。

文件默認權限:umask
umask:就是指定“目前用戶在新建文件或目錄時候的權限默認值”。
默認情況下:
若用戶創建“文件”則默認沒有可執行(x)權限,即只有r、w權限,也就是最大為666,默認權限如下:

復制代碼代碼如下:-rw-rw-rw-
若用戶新建“目錄”,則由於x與是否可以進入此目錄有關,因此默認為所有權限均開放,即為:drwxrwxrwx
umask對於新建文件與目錄的默認權限是很有關系的。
例如:假設你的umask為003,請問該umask情況下,新建的文件與目錄權限是什麼?
答:umask為003,所以去掉的權限為--------wx,因此:
文件:(-rw-rw-rw-)-(--------wx)=-rw-rw-r--
目錄:(drwxrwxrwx)-(--------wx)=drwxrwxr--

文件隱藏屬性:chattr , lsattr
chattr(設置文件的隱藏屬性)

復制代碼代碼如下:[vurtne@localhost ~]$chattr [+-=] [ASacdistu] 文件或目錄名稱
參數:()
+:增加某一個特殊參數,其他原本存在參數則不動;
-:刪除某一個特殊參數,其他原本存在參數則不動;
=:僅有後面接的參數。
注意:由於屬性設置常見的是a與i的設置值,而且很多設置值必須要身為root才能設置,
所以現僅列出a與i兩項。
a:當設置a之後,這個文件將只能增加數據,而不能刪除也不能修改數據,只有root才
能設置這個屬性。
i:它可以讓一個文件“不能被刪除、改名,設置鏈接也無法寫入或添加數據。”對於系統安
全性有相當大的幫助。只有root能設置此屬性。
20151113104839366.jpg (563×228)

lsattr:顯示文件隱藏屬性

復制代碼代碼如下:[vurtne@localhost ~]$lsattr [-adR] 文件或目錄
參數:
-a:將隱藏文件的屬性顯示出來;
-d:如果接的是目錄,僅列出目錄本身的屬性而非目錄內的文件名;
-R:連同子目錄的數據也一並列出來。
20151113104910863.jpg (570×78)

文件特殊權限:SUID,SGID,SBIT
s 與 t 這兩個權限的意義與系統的帳號及系統的程序較為相關。
SetUID
① SUID 權限僅對二進位程序(binary program)有效;
② 運行者對於該程序需要具有 x 的可運行權限;
③ 本權限僅在運行該程序的過程中有效 (run-time);
④ 運行者將具有該程序擁有者 (owner) 的權限。
SetGID
SGID 有如下的功能:
① SGID 對二進位程序有用;
② 程序運行者對於該程序來說,需具備 x 的權限;
③ 運行者在運行的過程中將會獲得該程序群組的支持!

當一個目錄配置了 SGID 的權限後,他將具有如下的功能:
① 使用者若對於此目錄具有 r 與 x 的權限時,該使用者能夠進入此目錄;
② 使用者在此目錄下的有效群組(effective group)將會變成該目錄的群組;
③ 用途:若使用者在此目錄下具有 w 的權限(可以新建文件),則使用者所創建的新文件,
該新文件的群組與此目錄的群組相同。

Sticky Bit
Sticky Bit, SBIT 目前只針對目錄有效,對於文件已經沒有效果了。 其對於目錄的作用是:① 當使用者對於此目錄具有 w, x 權限,亦即具有寫入的權限時;
② 當使用者在該目錄下創建文件或目錄時,僅有自己與 root 才有權力刪除該文件

查看文件類型:file
查詢某個文件的基本數據,例如是屬於ASCII或者是data文件,或者是 binary,且其中有沒有使用到動態函式庫 (share library) 等等的資訊,就可以利用 file來查閱。

命令和文件的查詢:

which(尋找“執行文件”)
-a:將所有由PATH目錄中可以找到的命令均列出,且不只第一個被找到的命令名稱。

whereis(尋找特定文件)
-b:只找二進制格式的文件;
-m:只找在說明文件manual路徑下的文件;
-s:只找source源文件;
-u:查找不在上述三個選項當中的其他特殊文件。

locate
-i:忽略大小寫的差異;
-r:後面可接正則表達式的顯示方式。

find

權限和命令之間的關系
1、讓使用者能進入某目錄成為『可工作目錄』的基本權限為何?
① 可使用的命令:例如 cd 等變換工作目錄的命令;
② 目錄所需權限:使用者對這個目錄至少需要具有 x 的權限
③ 如果使用者想要在這個目錄內利用 ls 查閱檔名,則使用者對此目錄還需要 r 的權限。

2、使用者在某個目錄內讀取一個文件的基本權限為何?
① 可使用的命令:cat, more, less等等
② 目錄所需權限:使用者對這個目錄至少需要具有 x 權限;
③ 文件所需權限:使用者對文件至少需要具有 r 的權限才行!

3、讓使用者可以修改一個文件的基本權限為何?
① 可使用的命令:nano 或未來要介紹的 vi/vim 編輯器等;
② 目錄所需權限:使用者在該文件所在的目錄至少要有 x 權限;
③ 文件所需權限:使用者對該文件至少要有 r, w 權限

4、讓一個使用者可以創建一個文件的基本權限為何?
目錄所需權限:使用者在該目錄要具有 w,x 的權限,重點是w權限

5、讓使用者進入某目錄並運行該目錄下的某個命令之基本權限為何?
① 目錄所需權限:使用者在該目錄至少要有 x 的權限;
② 文件所需權限:使用者在該文件至少需要有 x 的權限。

PS:修改home下的中文目錄為英文目錄
習慣問題,喜歡使用fedora為您在home目錄下自創建的“桌面”、“文檔”,“圖片 、公共的” 、“下載”、
“音樂”、“ 視頻”等目錄。時間久了,總感覺有一點痛快,在命令行下操作這些目錄下的文件時總要切換輸
入法,總不是那麼酣暢淋漓。要是能把這些中文目錄改成英文目錄就好了。有人會說,重命名不是得了。
我試過,重命名可以,不過好像有點問題。例如,把“下載”重命名為“Downloads”,浏覽器默認的下載目錄變了。
上網查,才知道一些技術牛人們蔑視桌面用戶的智商,認為用桌面的人都是連自己的文件目錄都管不好的,
一定要幫你主動搞好。於是管理Linux桌面的freedesktop.org搞出一個xdg-user-dirs,要主動為用戶創建好一堆子目錄,
方便我們的使用,於是就有了home目錄下那些目錄。
好的,切入正題,如何修改,打開終端,在終端下輸入命令:

復制代碼代碼如下:
[vurtne@localhost~]$ export LANG=en_US
[vurtne@localhost~]$ xdg- user- dirs- gtk- update

這個時候會彈出一個配置界面,提示是否將中文目錄切換為英文目錄。選中不再提示,確定。
系統會刪除沒有內容的中文目錄,而有內容的目錄會保持。並創建8個相應的英文目錄如下:
“Desktop”、“Download”、“Templates”、“Public”、“Documents”、“Music”、“Pictures”、“Videos”。
此時,您在“位置”裡看到的常用中文目錄已經變成英文目錄。只需要將原中文目錄的內容拷貝到相應英文目錄,
並刪除中文目錄即可。

接下來再執行

復制代碼代碼如下:
export LANG=zh_CN.UTF-8

以顯示中文。OK,行了,三個命令就行。

可就為一次改變要記三個命令,也麻煩。能不能不記啦。
那您注銷,然後在登錄界面選擇語言種類為“English(united states)”,
進入系統後你就發現整個系統都變成English了,
同時還會彈出一個對話框提示是否切換用戶目錄,選擇“Update names”,
確認並再注銷,在登錄界面選擇“漢語”,進入系統後事個系統又變成了Chinese了,
同樣會彈出同一個對話框,選擇"Keep old names"。
OK,大功告成,一個命令都不需要記,就可完成您想要的結果。

Copyright © Linux教程網 All Rights Reserved