《鸟哥的Linux学习:基础篇》第六章:Linux文件和=目录管理

来源:互联网 发布:淮南腾讯大数据 编辑:程序博客网 时间:2024/06/05 19:56

1、目录的相关操作

.         代表此層目錄

..        代表上一層目錄

-         代表前一個工作目錄

~         代表『目前使用者身份』所在的家目錄

~account  代表 account 這個使用者的家目錄(account是個帳號名稱)

 

2、处理目录的指令:

  • Cd(Change Directory):變換目錄(文件夹)
  • Pwd(Print Working Directory):顯示目前的目錄
  • Mkdir(make directory):建立一個新的目錄
  • rmdir:刪除一個空的目錄

 

3、环境变量:$PATH

echo有『显示、打印』

PATH 前面加的 $表示後面接的是变量

 

4、文件与目录的查看:ls

选项与参数:

-a全部的檔案,連同隱藏檔( 開頭為 . 的檔案) 一起列出來(常用)
-d  :僅列出目錄本身,而不是列出目錄內的檔案資料(常用)
-l  :長資料串列出,包含檔案的屬性與權限等等資料;(常用)

 

5、复制、删除与移动

复制:cp(copy)

cp [-adfilprsu] 來源檔(source) 目標檔(destination)

选项与参数

-a  :相當於 -dr --preserve=all 的意思,至於 dr 請參考下列說明;(常用)
-i  :若目標檔(destination)已經存在時,在覆蓋時會先詢問動作的進行(常用)
-p  :連同檔案的屬性(權限、用戶、時間)一起複製過去,而非使用預設屬性(備份常用)
-r  :遞迴持續複製,用於目錄的複製行為;(常用)

 

删除:rmremove

 

移动或重命名:mvmove

mv [-fiu] source destination

 

6、文件内容查看:

直接查看:

  • cat  由第一行開始顯示檔案內容
  • tac  從最後一行開始顯示,可以看出 tac 是 cat 的倒著寫!
  • nl   顯示的時候,順道輸出行號!

可翻页查看

  • more 一頁一頁的顯示檔案內容
  • less 與 more 類似,但是比 more 更好的是,他可以往前翻頁!

文件摘取

  • head 只看頭幾行
  • tail 只看尾巴幾行

非纯文字文件

  • od   以二進位的方式讀取檔案內容!

 

7、修改文件时间或新建文件

[root@study ~]# touch[-acdmt] 檔案

選項與參數:

-a  :僅修訂 access time;

-c  :僅修改檔案的時間,若該檔案不存在則不建立新檔案;

-d  :後面可以接欲修訂的日期而不用目前的日期,也可以使用 --date="日期或時間"

-m  :僅修改 mtime ;

-t  :後面可以接欲修訂的時間而不用目前的時間,格式為[YYYYMMDDhhmm]           

 

8、文件预设权限:umask

root@robust-virtual-machine:/srv/ahome# umask
0022
root@robust-virtual-machine:/srv/ahome# umask -S
u=rwx,g=rx,o=rx

直接输入为数字形态的权限设定分数,加入-S一符号类型方式显示。

 

8、文件隐藏属性          

设定文件隐藏属性

chattr [+-=][ASacdistu] 檔案或目錄名稱

显示文件隐藏属性

# lsattr [-adR] 檔案或目錄

 

9、set UID

文件的权限状态有【s】时,就称为set uid,简称suid的特殊权限

SUID程式執行的過程示意圖
圖6.4.1、SUID程式執行的過程示意圖

SUID 僅可用在binaryprogram 上,不能夠用在 shell script 上面

 

Set GID

 

Sticky Bit ,SBIT

修改以上权限的方法要用到第五章的数字更改权限,在三个数字前加上一个数字,这个数字代表这几个权限

  • 4 為 SUID
  • 2 為 SGID
  • 1 為 SBIT


10、观察文件类型:file

 

11、指令和文件查找

Which(寻找执行文件)

Whereis(寻找特定文件)

Locate:

[root@study ~]# locate[-ir] keyword

選項與參數:

-i  :忽略大小寫的差異;

-c  :不輸出檔名,僅計算找到的檔案數量

-l  :僅輸出幾行的意思,例如輸出五行則是 -l 5

-S  :輸出 locate 所使用的資料庫檔案的相關資訊,包括該資料庫紀錄的檔案/目錄數量等

-r  :後面可接正規表示法的顯示方式

 

Find:全磁盘搜素,较慢

特殊功能在于:能进行额外的动作(action),还能使用通配符来查找。

find 相關的額外動作
圖6.5.2、find 相關的額外動作

 

12、

讓使用者能進入某目錄成為『可工作目錄』的基本權限是什么:

  • 可使用的指令:例如 cd 等變換工作目錄的指令;
  • 目錄所需權限:使用者對這個目錄至少需要具有 x的權限
  • 額外需求:如果使用者想要在這個目錄內利用 ls 查閱檔名,則使用者對此目錄還需要 r 的權限。

二、使用者在某個目錄內讀取一個檔案的基本權限為何?

  • 可使用的指令:例如本章談到的 cat, more, less等等
  • 目錄所需權限:使用者對這個目錄至少需要具有 x 權限;
  • 檔案所需權限:使用者對檔案至少需要具有 r的權限才行!

三、讓使用者可以修改一個檔案的基本權限為何?

  • 可使用的指令:例如 nano 或未來要介紹的 vi 編輯器等;
  • 目錄所需權限:使用者在該檔案所在的目錄至少要有 x 權限;
  • 檔案所需權限:使用者對該檔案至少要有 r, w權限

四、讓一個使用者可以建立一個檔案的基本權限為何?

  • 目錄所需權限:使用者在該目錄要具有 w,x的權限,重點在 w 啦!

五、讓使用者進入某目錄並執行該目錄下的某個指令之基本權限為何?

  • 目錄所需權限:使用者在該目錄至少要有 x 的權限;
  • 檔案所需權限:使用者在該檔案至少需要有 x 的權限

重点回顾

  • 絕對路徑:『一定由根目錄 / 寫起』;相對路徑:『不由 / 寫起,而是由相對當前目錄寫起』
  • 特殊目錄有:., .., -, ~, ~account需要注意;
  • 與目錄相關的指令有:cd, mkdir, rmdir, pwd 等重要指令;
  • rmdir 僅能刪除空目錄,要刪除非空目錄需使用『 rm -r 』指令;
  • 使用者能使用的指令是依據 PATH 變數所規定的目錄去搜尋的;
  • ls 可以檢視檔案的屬性,尤其 -d, -a, -l 等選項特別重要!
  • 檔案的複製、刪除、移動可以分別使用:cp, rm , mv等指令來操作;
  • 檢查檔案的內容(讀檔)可使用的指令包括有:cat, tac, nl, more, less, head, tail, od 等
  • cat -n 與 nl 均可顯示行號,但預設的情況下,空白行會不會編號並不相同;
  • touch 的目的在修改檔案的時間參數,但亦可用來建立空檔案;
  • 一個檔案記錄的時間參數有三種,分別是 access time(atime), status time (ctime), modification time(mtime),ls 預設顯示的是 mtime。
  • 除了傳統的rwx權限之外,在Ext2/Ext3/Ext4/xfs檔案系統中,還可以使用chattr與lsattr設定及觀察隱藏屬性。 常見的包括只能新增資料的 +a 與完全不能更動檔案的 +i 屬性。
  • 新建檔案/目錄時,新檔案的預設權限使用 umask 來規範。預設目錄完全權限為drwxrwxrwx, 檔案則為-rw-rw-rw-。
  • 檔案具有SUID的特殊權限時,代表當使用者執行此一binary程式時,在執行過程中使用者會暫時具有程式擁有者的權限
  • 目錄具有SGID的特殊權限時,代表使用者在這個目錄底下新建的檔案之群組都會與該目錄的群組名稱相同。
  • 目錄具有SBIT的特殊權限時,代表在該目錄下使用者建立的檔案只有自己與root能夠刪除!
  • 觀察檔案的類型可以使用 file 指令來觀察;
  • 搜尋指令的完整檔名可用 which 或 type ,這兩個指令都是透過 PATH 變數來搜尋檔名;
  • 搜尋檔案的完整檔名可以使用 whereis 找特定目錄或 locate 到資料庫去搜尋,而不實際搜尋檔案系統;
  • 利用 find 可以加入許多選項來直接查詢檔案系統,以獲得自己想要知道的檔名。

 

0 0
原创粉丝点击