歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux技術 >> linux學習日記四 文件與目錄管理

linux學習日記四 文件與目錄管理

日期:2017/3/1 18:03:46   编辑:Linux技術

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

# 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*’ :通配符形式也行

Copyright © Linux教程網 All Rights Reserved