企鵝日記(四) 檔案與目錄管理

2021-09-01 16:43:09 字數 3918 閱讀 8446

====基本命令====

# pwd [-p] :顯示當前的工作目錄

-p:選項表示顯示實際的工作目錄,而非連線檔案本身的目錄名

# mkdir [-mp] 目錄名:新建目錄

-m:設定檔案的許可權,直接設定,不需要看預設許可權(umask)

-p:遞迴建立目錄

# rmdir [-p] 目錄名稱:刪除空的目錄

-p:連同上層空目錄也一起刪除

# echo $path 可以顯示可執行檔案路徑,如果在當前目錄下,必須輸入./xx才能執行,預設當前路徑.不在path中。

# ls [-adhlst] 目錄:列出目錄裡的檔案

-a:所有檔案,包含隱藏檔案

-d:僅僅列出目錄的資訊,不列出裡面的檔案

-h:檔案大寫以k,m,g顯示

-l:一行一行顯示詳細資訊

-s:按檔案大小排序,而不是預設的檔名排序

-t:依檔案修改時間排序

–full-time:檔案修改的完整時間

====檔案的複製====

# cp [-apdriu] source1 source2 … directory

-a:相當於-pdr

-p:連同檔案屬性一起複製,而非使用預設屬性(備份常用)

-d:若原始檔為link file,則複製link file而非檔案本身

-r:遞迴複製,用於目錄複製行為(常用)

-i:若目標檔案存在,在覆蓋時候詢問操作的進行(常用)

-u:若目標檔案比原始檔舊才更新目標檔案

注意:cp dir1/* dir2/ 和 cp -r dir1/ dir2/的區別,前乙個複製dir1下的所有檔案到dir2,後乙個複製dir1目錄到dir2(-r 連帶目錄下的檔案也遞迴複製)

====檔案的刪除====

# rm [-fir] 檔案或者目錄

-f:force,忽略不存在的檔案,不出現警告資訊,也不詢問使用者是否刪除

-i:互動模式,詢問使用者是否刪除

-r:遞迴刪除,謹慎小心!!

====檔案的移動====

# mv [-fiu] source1 source2 … directory

-f:force,不詢問,直接覆蓋

-i:目標檔案已經存在,詢問是否覆蓋

-u:如果目標檔案已存在,且source比較新,才覆蓋

====獲取path和filename====

# dirname /etc/sysconfig/network 得到/etc/sysconfig

# basename /etc/sysconfig/network 得到 network

====檔案內容查詢====

cat:從第一行開始顯示

tac:最後一行開始顯示

nl:顯示的時候,輸出行號

more:一頁頁顯示,只能向後翻頁

less:一頁頁顯示,可以向前向後翻頁,man頁面就是呼叫的less

head -n 100:只顯示頭100行,head -n -100:前面的所有行,不包括最後的100行

tail -n 100 -f /var/log:只顯示結尾100行(-f可以持續顯示內容,很有用),tail -n +100:顯示後面所有行,但不包括最前面的100行

od:以二進位制方式讀取檔案內容

====檔案的三個比較重要的時間屬性====

mtime:modification time,檔案的建立或者修改時間

ctime:檔案的狀態status改變的時間,比如許可權或者屬性更改

atime:access time,檔案被訪問被讀取的時間

可使用命令:ls -l –time=atime/ctime/mtime 顯示。預設是mtime

利用touch命令可以修改以上三個時間,可以用來建立乙個空的檔案

====預設許可權與隱藏許可權====

chattr設定隱藏屬性,lsattr檢視隱藏屬性

# umask -s :檢視預設許可權

對檔案和目錄的預設許可權是不用的:

對檔案而言:-rw-rw-rw

對目錄而言:drwxrwxrwx

而umask的數值指的是在此基礎上剪掉的許可權部分。

# umask 002 可設定

# chattr [+-=][ai] 檔案或者目錄

+:增加,如果原本存在,不動,-也是一樣,=直接賦值

a:這個檔案只能增加資料,也不能刪除也不能修改資料,只有root可以設定這個東東

i:這個就厲害了,可以讓乙個檔案不被刪除、改名、設定連線也無法寫入或新增資料,只有root可以設定。

# lsattr [-adr] 檔案或目錄,可以檢視隱藏屬性

====檔案特殊許可權:suid,sgid,sbit====

當s出現在owner的x上時候,代表suid,其含義是:

* suid許可權僅對二進位制程式(binary program)有效;

* 執行者對於該程式需要具備x的可執行許可權;

* 本許可權僅在執行程式過程中(run-time)有效;

* 執行者將具有該程式owner的許可權。

當s出現在group的x上時候,代表sgid,其含義是:

對檔案來講 –>

* sgid對二進位制程式有用;

* 程式執行者對該程式來說,需具備x的許可權;

* 執行者在執行過程中會獲得該程式使用者組的支援。

對目錄來講–>

* 使用者如果對此目錄具有r與x的許可權,該使用者可以進入該目錄;

* 使用者在此目錄下的有效使用者組(effective group)變為該目錄的group;

* 若使用者在此目錄下具有w許可權,則使用者建立的新檔案的group與此目錄的group一樣。

sbit(sticky bit)只對目錄有效,作用是:

* 當使用者對於此目錄有w,x許可權的時候;

* 使用者在該目錄下建立檔案或者目錄,僅有自己和root才能刪除

4為suid,2為sgid,1為sbit

chmod 4755 filename,你懂得。如果是s和t表示連x的許可權都沒有了,那s和t的設定就沒有啥用了,擺設而已,空的。

====命令與檔案的查詢====

# which command:查詢命令的位置,根據$path去查詢的。

檔名的查詢:

先用whereis 和 locate查詢,速度快,因為直接查詢資料庫,而找不到後再用find,直接搜尋硬碟

# whereis [-bmsu] 檔案或目錄名

-b:只找二進位制檔案

-m:只找說明檔案manual路徑下的檔案

-s:只找source原始檔

-u:查詢不在上述三個選項中的其他特殊檔案

# locate [-ir] keyword

-i:忽略大小寫

-r:正則式查詢

最後乙個find命令,太強大了,不想寫了,自己去查吧。

find /var -mtime +4:大於等於5天前的檔名

find /var -mtime -4:小於等於4天內的檔名

find /var -mtime 4:4~5天那一天

find /home -user yidao

find / -nouser

find / -name password:名字為password的檔案

find /var -type s:socket檔案

find / -perm +7000

find / -perm +7000 -exec ls -l {} \;

find /etc -name 『*httpd*』 :萬用字元形式也行

本人部落格已搬家,新位址為:

Linux基礎之四 檔案與目錄

本篇只記錄檔案與目錄的基礎注意事項。一 檔案許可權與目錄許可權 linux下依據登入賬號許可權的不同分為使用者 使用者組和其他人3種身份,root賬號擁有所有的許可權。同乙個賬號可以有多個不同使用者組的支援。檔案許可權分為r w x,即讀 寫和執行許可權。可以使用ls la命令檢視到檔案屬性,檔案屬...

二 檔案與目錄

struct stat include include include int open char pathname,int o mode t mode 返回檔案描述符 include int close int fd 關閉檔案 include ssize t read int fd,void bu...

18 檔案與目錄

模式 說明r唯讀 r 讀寫 w寫入,先刪除原檔案,在重新寫入,如果檔案沒有則建立 w 讀寫,先刪除原檔案,在重新寫入,如果檔案沒有則建立 可以寫入輸出 a寫入,在檔案末尾追加新的內容,檔案不存在,建立之 a 讀寫,在檔案末尾追加新的內容,檔案不存在,建立之 b開啟二進位制檔案。可以與r w a 結合...