====基本命令====
# 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*’ :通配符形式也行