====基本命令====
# 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 結合...