一、linux檔案型別
-:普通檔案:
d:目錄檔案
l:鏈結檔案
裝置檔案(/dev):
s:socket套接字檔案:用在網路上的資料連線ip:port
p:管道檔案:特殊的檔案型別,解決多個應用程式同時訪問乙個檔案造成的錯誤問題
file:檢視linux中的檔案型別
語法:file [options] filename
linux檔名限制:
單個檔案或者目錄不能超過255字元
檔名當中不能包含一些特殊字元
檔案查詢命令: which locate find
which:查詢命令字所在的位置
locate:模糊匹配(只要包含關鍵字的檔案都查詢出來)
不是實時的,基於資料庫查詢, updatedb公升級locate資料庫
查詢速度特別快
find:檢視檔案或目錄的工具
特點: 實時查詢
精確查詢
遍歷整個指定目錄中的檔案,速度很慢
支援多種查詢條件(屬主,屬組,許可權,檔名等)
語法: find [find_path] [條件] [處理動作]
find_path:如果不寫,預設在當前工作目錄查詢
條件:如果不寫,會查詢出該路徑下所有的檔案
處理動作:預設列印到螢幕上 print
條件:(匹配標準)
-name file_name:根據檔名進行查詢,區分大小寫
查詢條件萬用字元:
*:通配任意個數的任意字元 # find /etc/ -name "pass*" # find /etc/ -name "*pass"
?:通配單個的任意字元 # find /etc/ -name "passw*"
-iname file_name:根據檔名進行查詢,不區分大小寫
-regex pattern:根據正規表示式的模式進行查詢
-user:通過屬主進行查詢
-group:通過屬組程序查詢
-uid uid:通過uid號進行查詢
-gid gid:通過gid號進行查詢
-nouser:查詢沒有屬主的檔案
-nogroup:查詢沒有屬組的檔案
-type:根據檔案型別進行查詢
-b:塊裝置
-c:字元裝置
-d:目錄
-f:檔案
-p:命名管道
-s:套接字檔案
-l:鏈結檔案
-size [+ | -] num [k|m|g]
-size 5k:精確匹配
+:大於
-:小於
根據時間戳進行查詢: # stat file_name //檢視檔案的時間戳
[+ | -] 也起作用
-atime:時間單位為天,access時間
-mtime:時間單位為天,modify時間
-ctime:時間單位為天,change時間
-mmin:時間單位為分鐘,modify時間
-amin:時間單位為分鐘,access時間
-cmin:時間單位為分鐘,change時間
根據許可權查詢:
-perm mode:
mode:num(如644),精確匹配
/mode:/num任意一位匹配
-mode:-num檔案許可權能夠完全包含此mode時才能匹配
條件組合:
-a:同時滿足多個條件,比如查詢屬主是tom並且許可權為644的檔案
-o:滿足乙個條件即可,比如查詢屬主是tom或者許可權為644的檔案
-not:不滿足條件的被查詢出來
出來動作:
-print:預設動作,預設查詢結果列印到螢幕
-ls:預設以類似於ls -l的形式顯示結果的資訊
-ok command {} \;執行動作時提示使用者是否執行,必須以\;結尾,{}代表檔名佔位符
-exec command {} \;執行動作時不提示使用者直接執行,必須以\;結尾,{}代表檔名佔位符
1、查詢/var目錄下屬主為root並且屬組為mail的所有檔案;
find /var -user root -a -group mail
2、查詢/usr目錄下不屬於root,bin,或student的檔案;
find /usr -not -user root -a -not -user bin -a -not -user student
find /usr -not \( -user root -o -user bin -o -user student \)
3、查詢/etc目錄下最近一周內內容修改過且不屬於root及student使用者的檔案;
find /etc -mtime -7 -not \ ( -user root -o -user student \)
find /etc -mtime -7 -not -user root -a -not -user student
4、查詢當前系統上沒有屬主或屬組且最近1天內曾被訪問過的檔案,並將其屬主屬組均修改為root;
find / \( -nouser -o -nogroup \) -a -atime -1 -exec chown root:root {} \;
5、查詢/etc目錄下大於1m的檔案,並將其檔名寫入/tmp/etc.largefiles檔案中;
find /etc -size +1m >> /tmp/etc.largefiles
6、查詢/etc目錄下所有使用者都沒有寫許可權的檔案,顯示出其詳細資訊;
find /etc -not -perm /222 -ls
二、許可權:是使用者對於系統資源及資料等操作的能力
三類使用者許可權:
屬主:owner
屬組:group
其他:other
-rw-r--r--:10位
第一位:檔案型別
第2-4位:檔案屬主許可權
第5-7位:檔案屬組許可權
第8-10位:其他使用者的許可權
檔案:r(read):讀許可權,可以檢視檔案的內容,使用cat more等命令
w(write):寫許可權,可以修改檔案的內容及刪除檔案
x(execute):執行許可權,可執行檔案或指令碼
目錄:r:讀許可權,可以檢視目錄中的列表,執行ls命令
w:寫許可權,可以向目錄中新建檔案或目錄等
x:執行許可權,可以執行cd命令
改變許可權的命令
chmod 改變檔案或目錄的許可權
chmod 755 abc:賦予abc許可權rwxr-xr-x
chmod u=rwx,g=rx,o=rx abc:同上u=使用者許可權,g=組許可權,o=不同組其他使用者許可權
chmod u-x,g+w abc:給abc去除使用者執行的許可權,增加組寫的許可權
chmod a+r abc:給所有使用者新增讀的許可權
改變所有者(chown)和使用者組(chgrp)命令
chown xiaoming abc:改變abc的所有者為xiaoming
chgrp root abc:改變abc所屬的組為root
chown root ./abc:改變abc這個目錄的所有者是root
chown ‐r root ./abc:改變abc這個目錄及其下面所有的檔案和目錄的所有者是root
umask:反掩碼(在/etc/login.defs中定義)
rwx:7
檔案預設:rw-rw-rw-:666 644=rw-r--r--新建檔案時,許可權掩碼(666)減去反掩碼(022)就是新建檔案的許可權(644)
目錄預設:rwxrwxrwx:777 755=rwxr-xr-x,新建目錄時,許可權掩碼(777)減去反掩碼(022)就是新建目錄的許可權(755)
linux隱藏許可權:
lsattr:檢視檔案或目錄的隱藏許可權
chattr:修改檔案的隱藏許可權,/ /dev /tmp /var /etc 目錄不受chattr保護
語法:chattr +-= [options] file_name
a:只能向檔案中追加資料,不能刪除
i:任何使用者不能刪除檔案
a:不同步訪問時間
+:新增相應許可權
-:刪除相應許可權
=:設定相應許可權
/etc/passwd /etc/shadow /etc/group
tom:/etc/passwd /etc/shadow /etc/group新增資訊,新建宿主目錄(修改宿主目錄的歸屬)
echo "tom:x:1001:1001::/home/tom:/bin/bash" >> /etc/passwd
Linux學習筆記 01
命令的格式 command options parameter1 常用命令 cd 進入到根目錄 cd 進入到當前目錄 cd 進入到上級目錄 cd usr 進入到usr目錄下 cd 進入到當前使用者的主目錄 cd 進入到上次所在的目錄 檢視當前路徑 pwd 顯示當前路徑下資料夾與檔案 ls 不包含隱藏...
linux學習筆記 01
mkdir 目錄名 mkdir p 目錄名 目錄名 lsll rmdir p 目錄名 目錄名 注意這裡的目錄名必須完整 刪除rm rf 目錄名 這裡的r 逐層刪除 這裡的f 不進行確認 touch 檔名 字尾無所謂 cp 檔名 檔案目錄 mv 檔名 檔案目錄 rm 檔名 vi kh88 命令模式es...
Linux學習筆記01
su 提公升許可權 ls 展示當前資料夾的內容 exit 退出當前使用者的命令列模式 新建的預設使用者,linux會在 home 目錄下建立對應的預設使用者的全權資料夾 比如 lern使用者,就必然存在 home lern目錄 lern對 home lern目錄及目錄內的所有資料具有全權,但是ler...