文件与目录管理——笔记
目錄
1.特殊目錄:
2.處理目錄的命令:
3.執(zhí)行文件路徑變量:$PATH
4.文件與目錄管理:
1)查看文件與目錄:ls
2)復(fù)制、刪除與移動(dòng):cp,rm,mv
3)文件內(nèi)容查閱:
4)修改文件或創(chuàng)建新文件:
時(shí)間參數(shù):
5.文件與目錄默認(rèn)權(quán)限和隱藏權(quán)限:
1)文件默認(rèn)權(quán)限:umask
2)文件隱藏屬性:
3)文件的特殊權(quán)限:SUID,SGID,SBIT
Set UID功能與限制:
Set GID功能與限制:
文件:
目錄:
Sticky Bit功能與限制:
6.查看文件類型:file
命令與文件名的查詢:
1)腳本文件名的查詢:
2)文件名查找:
小結(jié):
1.特殊目錄:
“.”代表此層目錄
“..”代表上一層目錄
“-”代表前一個(gè)工作目錄
“~”代表“當(dāng)前用戶身份”所在的主文件夾
2.處理目錄的命令:
“cd”:切換目錄
“pwd”:顯示當(dāng)前目錄
“mkdir”:新建一個(gè)新目錄
“rmdir”:刪除一個(gè)空目錄
注:使用rmdir刪除目錄時(shí),目錄需要一層一層的刪除,而且被刪除的目錄里不能存在其他目錄或文件(空目錄),如果想將所有目錄下的東西都刪除使用rm -r 目錄名
3.執(zhí)行文件路徑變量:$PATH
當(dāng)在執(zhí)行一個(gè)命令時(shí),系統(tǒng)會(huì)照PATH的設(shè)置去每個(gè)PATH定義文件的目錄下查詢文件名為“xx”的可執(zhí)行命令,如果在PATH定義的目錄中含有多個(gè)文件名為“xx”的可執(zhí)行文件,那么先查詢到的同名命令先被執(zhí)行
使用 echo $PATH 可以查看有哪些目錄被定義出來(在一般用戶中不包括任何“sbin”的目錄)
PATH這個(gè)變量的內(nèi)容是由一堆目錄所組成的,每個(gè)目錄中間用冒號(hào)隔開(:),且每個(gè)目錄有順序之分
由此可以得出:
1.不同身份用戶默認(rèn)PATH不同,默認(rèn)能夠隨意執(zhí)行的命令也不同
2.PATH是可修改的,所以一般用戶可以通過修改PATH來執(zhí)行某些位于/sbin或/usr/sbin下的命令來查詢
3.命令應(yīng)放到正確的目錄下,執(zhí)行才會(huì)方便
4.本目錄(.)最好不要放在PATH中
4.文件與目錄管理:
1)查看文件與目錄:ls
-a:列出全部文件,包括隱藏文件
-A:列出全部文件,及所有隱藏文件,但不包括"."和".."這兩個(gè)目錄
-d:僅列出目錄本身,而不是列出目錄內(nèi)的文件數(shù)據(jù)
-f:直接列出結(jié)果,不進(jìn)行排序
-F:根據(jù)文件,目錄給予附加數(shù)據(jù)結(jié)構(gòu)(*:代表可執(zhí)行文件;/:代表目錄;=:代表socket文件;|:代表FIFO文件)
-h:將文件容量以MB,GB等方便閱讀的方式列出
-i:列出indoe號(hào)碼
-l:列出長數(shù)據(jù)串,包含文件屬性與權(quán)限
-n:列出UID與GID,不是用戶名與組等數(shù)據(jù)
-r:將排序結(jié)果反向輸出
-R:連同子目錄一同列出,相當(dāng)于將該目錄下的所有文件都顯示出來
-S:以文件容量大小排序,而非文件名
-t:依據(jù)時(shí)間排序
--color=never:不要依據(jù)文件特性給予顏色顯示
--color=always:顯示顏色
--color=auto:讓系統(tǒng)自行依據(jù)設(shè)置來判斷是否給予顏色
--full-time:以完整時(shí)間模式輸出
--time={atime,ctime}:輸出訪問時(shí)間或改變權(quán)限屬性時(shí)間(ctime)而非內(nèi)容更改時(shí)間(modification time)
2)復(fù)制、刪除與移動(dòng):cp,rm,mv
cp(復(fù)制文件或目錄)
-a:相當(dāng)于-pdr,是在保留原文件屬性的基礎(chǔ)上復(fù)制文件
-d:若文件為連接文件(link file)的屬性,則復(fù)制連接文件屬性而非文件本身
-f:為強(qiáng)制(force)的意思,若文件已經(jīng)存在且無法打開,則刪除后再嘗試一次
-i:若目標(biāo)文件(destination)已經(jīng)存在,在覆蓋時(shí)會(huì)詢問操作的進(jìn)行
-l:進(jìn)行硬鏈接(hard link)的連接文件創(chuàng)建,并非復(fù)制文件本身
-p:連同文件屬性一同復(fù)制,并非使用默認(rèn)屬性
-r:遞歸持續(xù)復(fù)制,用于目錄的復(fù)制行為
-s:復(fù)制成符號(hào)鏈接文件(symbolic link),即快捷方式
-u:目標(biāo)文件(destination)比源文件(source)舊才會(huì)更新源文件
注:
1.如果源文件有兩個(gè)以上,則最后一個(gè)目的文件一定是目錄
2.在默認(rèn)條件中,cp的源文件與目的文件的權(quán)限是不同的,目的文件的所有者通常是命令操縱者本身,當(dāng)有一些特殊權(quán)限的文件時(shí)需要加上-a或-p可以完整復(fù)制文件權(quán)限
3.復(fù)制目錄時(shí),需要加-r
4.在一般用戶中,即使加上-a參數(shù),無法復(fù)制完整權(quán)限,只能復(fù)制文件的相關(guān)權(quán)限及時(shí)間屬性,與所有者、用戶組有關(guān)是無法操作的
rm(移除文件或目錄)
-f:忽略不存在的文件,不會(huì)出現(xiàn)警告
-i:互動(dòng)模式,在刪除前會(huì)詢問用戶是否操作
-r:遞歸刪除
注:
為了防止文件被誤刪,許多發(fā)行版的操作系統(tǒng)已經(jīng)默認(rèn)加入-I
當(dāng)文件中有“-”開頭時(shí),可以這樣刪除 “rm ./-xxx-”或“rm -- -xxx-”
mv(移動(dòng)文件與目錄,或更名)
-f:如果目標(biāo)文件已存在,不會(huì)詢問而直接覆蓋
-i:若目標(biāo)文件已存在,就會(huì)詢問是否覆蓋
-u:若文件已經(jīng)存在,且源文件比較新,才會(huì)更新
注:可以使用-u來測(cè)試文件的新舊,看看是否移動(dòng)
需要大批量來改文件名時(shí),使用rename
3)文件內(nèi)容查閱:
cat(concatenate):從第一行開始顯示文件
-A:相當(dāng)于-vET,show all,可以列出一些特殊字符
-b:僅對(duì)非空行列出行號(hào)
-E:將結(jié)尾的斷行字符以$顯示出來
-n:打印行號(hào),但與-b不同,空行也會(huì)顯示行號(hào)
-T:將tab按鍵顯示出來
-v:列出一些看不出來的特殊字符
tac:從最后一行開始顯示文件
同cat命令
?
nl:顯示的時(shí)候,同時(shí)輸出行號(hào)
-b:指定行號(hào)
1.-b a 不論是否有空行均列出行號(hào)
2.-b t 如果有空行,不會(huì)列出該行
-n:列出行號(hào)
-n ln:行號(hào)在最左邊顯示
-n rn:行號(hào)在最右邊顯示,且不加0
-n rz:同上,且加0
-w:行號(hào)字段占用的位數(shù)(加上行號(hào),默認(rèn)是6位)
more:一頁一頁的顯示文件內(nèi)容
less:與more類似,并且可以翻頁
head:只看開頭幾行,可以加數(shù)字表示想要看的行數(shù)
-n:后接數(shù)字,表示顯示多少行
當(dāng)接負(fù)數(shù)時(shí),代表列出前面的所有行數(shù),但不包括后面所寫的行數(shù)
?
tail:與head類似,只看結(jié)尾
-n:同上
當(dāng)接正數(shù)時(shí),代表該文件會(huì)從xx行后都列出
-f:表示持續(xù)監(jiān)測(cè)后面的文件名,需要按下ctrl+c才會(huì)停止檢測(cè)
od:以二進(jìn)制方式讀取文件
-t:后面接各種輸出類型
a:使用默認(rèn)字段輸出
c:使用ASCLL字符輸出
d [size]:利用十進(jìn)制(decimal)輸出數(shù)據(jù),每個(gè)正數(shù)占用 size bytes
f [size]:利用浮點(diǎn)數(shù)(floating)輸出數(shù)據(jù),每個(gè)正數(shù)占用 size bytes
o [size]:利用八進(jìn)制(octal)輸出數(shù)據(jù),每個(gè)正數(shù)占用 size bytes
x [size]:利用十六進(jìn)制(hexadecimal)輸出數(shù)據(jù),每個(gè)正數(shù)占用 size bytes
?
4)修改文件或創(chuàng)建新文件:
時(shí)間參數(shù):
modification time(mtime):當(dāng)該文件的內(nèi)容改變時(shí),會(huì)更新這個(gè)時(shí)間(內(nèi)容指文件內(nèi)容,并非文件屬性或權(quán)限)
status time (ctime):當(dāng)該文件的狀態(tài)(status)改變時(shí),會(huì)更新該時(shí)間(文件的權(quán)限或?qū)傩?#xff09;
access time(atime):當(dāng)文件內(nèi)容被取用,會(huì)更新該時(shí)間(使用文件內(nèi)容查詢時(shí),會(huì)更新該時(shí)間)
注:在默認(rèn)情況下,使用ls顯示的是該文件的mtime
?
在某些情況下,由于BIOS的設(shè)置錯(cuò)誤以及失去誤差,會(huì)導(dǎo)致系統(tǒng)時(shí)間“跑到”未來,可以使用touch來改變時(shí)間
touch:
-a:僅修改訪問時(shí)間,若果文件不存在,會(huì)創(chuàng)建一個(gè)新文件
-c:僅修改文件時(shí)間,文件不存在是不會(huì)創(chuàng)建文件
-d:后接修改時(shí)間,可以不用當(dāng)前時(shí)間;也可使用--date="日期或時(shí)間"
-m:僅修改mtime
-t:后接修改時(shí)間,可不用當(dāng)前時(shí)間,格式[YYMMDDhhmm]
注:當(dāng)復(fù)制了一個(gè)文件時(shí),并沒有辦法復(fù)制ctime這個(gè)屬性
?
5.文件與目錄默認(rèn)權(quán)限和隱藏權(quán)限:
1)文件默認(rèn)權(quán)限:umask
umask是指目前用戶在新建文件或目錄時(shí)的默認(rèn)權(quán)限(umask是指默認(rèn)值需要減掉的權(quán)限)
查看方式:
1.直接輸入uamsk,可以看到數(shù)字形態(tài)的權(quán)限設(shè)置分?jǐn)?shù)
?2.后面加-S,會(huì)以符號(hào)類型顯示出權(quán)限
文件一般默認(rèn)權(quán)限為644,最大權(quán)限為666
目錄一般默認(rèn)權(quán)限為755,最大權(quán)限為777
默認(rèn)情況下,root的umask會(huì)拿掉較多權(quán)限(默認(rèn)022),而一般身份用戶會(huì)保留用戶組的寫入(002)
2)文件隱藏屬性:
chattr:設(shè)置文件的隱藏屬性(注意:該命令只能在Ext2/Ext3的文件系統(tǒng)上生效)
參數(shù):
+:增加一個(gè)特殊參數(shù),其他原本存在的不變
-:減去一個(gè)特殊參數(shù),同上
=:既有后面接的參數(shù)
?
A:訪問一個(gè)文件時(shí),它的atime不會(huì)改變(對(duì)較慢的計(jì)算機(jī)有用)
S:一般文件是異步寫入磁盤,如果加上S后修改文件時(shí),改動(dòng)會(huì)同步寫入磁盤
a:設(shè)置a之后,該文件只能增加數(shù)據(jù),不能刪除和修改數(shù)據(jù)(只有root可以設(shè)置這個(gè)屬性)
c:會(huì)將文件自動(dòng)壓縮,讀取時(shí)自動(dòng)解壓縮;在存儲(chǔ)時(shí),會(huì)先壓縮在存儲(chǔ)
d:當(dāng)dump程序執(zhí)行時(shí),該屬性會(huì)是此文件(目錄)不會(huì)被dump備份
i:該屬性可以是一個(gè)文件不能被刪除、改名,設(shè)置連接也無法寫入或添加數(shù)據(jù)(只有root可以設(shè)置這個(gè)屬性)
s:但文件被刪除時(shí),它將完全從硬盤空間中刪除
u:與s相反,如果文件被刪除,數(shù)據(jù)內(nèi)容還存在于硬盤中,可以找回此文件
?
lsattr:顯示文件的隱藏屬性
參數(shù):
-a:顯示隱藏文件屬性
-d:如果接的是目錄,僅列出目錄本身屬性而非目錄內(nèi)的文件名
-R:連同子目錄的數(shù)據(jù)也一同列出
3)文件的特殊權(quán)限:SUID,SGID,SBIT
在文件或目錄中users、group以及others的可執(zhí)行權(quán)限沒有設(shè)置(x),所以S,T代表權(quán)限為空
?
Set UID功能與限制:
出現(xiàn)在文件所有者的x權(quán)限上,當(dāng)設(shè)置了SUID的程序文件,在用戶執(zhí)行該程序時(shí),用戶的權(quán)限是該程序文件的屬主的權(quán)限。(借權(quán)執(zhí)行自己用戶身份做不了的)讓一個(gè)沒有相應(yīng)權(quán)限的用戶運(yùn)行程序時(shí),可以訪問他沒有權(quán)限訪問的資源
s(小寫):表示SUID和所有者權(quán)限中可執(zhí)行位被設(shè)置
S(大寫):表示SUID被設(shè)置,但所有者權(quán)限中可執(zhí)行位沒有被設(shè)置
?
1.SUID僅對(duì)二進(jìn)制文件有效
2.執(zhí)行者對(duì)該文件需要有可執(zhí)行權(quán)限
3.本權(quán)限僅對(duì)執(zhí)行該程序的過程中(run-time)有效
4.執(zhí)行者具有該程序所有者(owner)的權(quán)限
注:SUID僅用在二進(jìn)制文件上,不能用在shell script;同時(shí)SUID對(duì)目錄也無效
Set GID功能與限制:
出現(xiàn)在用戶組的X權(quán)限上,功能與SUID類似,但SGID可以對(duì)目錄或文件設(shè)置 (一般情況下,出于對(duì)系統(tǒng)安全的考慮,盡量使用SGID代替SUID);
s(小寫):表示SUID和同組用戶權(quán)限中可執(zhí)行位被設(shè)置
S(大寫):表示SUID被設(shè)置,但同組用戶權(quán)限中可執(zhí)行位沒有被設(shè)置
?
文件:
1.對(duì)二進(jìn)制文件有效
2.程序執(zhí)行著對(duì)該程序要有可執(zhí)行權(quán)限
3.執(zhí)行者在執(zhí)行該程序中會(huì)獲得該程序用戶組的支持
目錄:
1.具有r與x權(quán)限,該用戶能夠進(jìn)入目錄
2.用戶在此目錄下的有效用戶組,將會(huì)變成該目錄的用戶組
3.用戶在此目錄下,具有寫權(quán)限(可以新建文件),則用戶創(chuàng)建的新文件的用戶組與此目錄的用戶組相同
?
Sticky Bit功能與限制:
SBIT只針對(duì)目錄有效,對(duì)文件沒有效果
t(小寫):表示SBIT和其他人權(quán)限中可執(zhí)行為被設(shè)置
T(大寫):表示SBIT被設(shè)置,但其他人權(quán)限中沒有設(shè)置可執(zhí)行位
?
1.用戶在此目錄下具有w,x權(quán)限
2.在用戶在該目錄下創(chuàng)建文件或目錄時(shí),僅有自己和root才有權(quán)利刪除
?
4為SUID = u+s
2為SGID = g+s
1為SBIT = o+t
?
6.查看文件類型:file
命令與文件名的查詢:
1)腳本文件名的查詢:
which(尋找“執(zhí)行文件”)
2)文件名查找:
whereis(尋找特定文件)
-b:只找二進(jìn)制文件
-m:只找說明文件manual路徑下的文件
-s:只找source源文件
-u:查找上述選項(xiàng)中的其他特殊文件
locate(查詢數(shù)據(jù)庫/var/lib/mlocate/mlocate.mdb來搜索文件)
-i:忽略大小寫差異
-r:后接正則表達(dá)式的顯示方式
find
1.與時(shí)間有關(guān)的參數(shù)
-atime n:在n天之內(nèi)改過的文件
-ctime +n:列出n天之前(不包含n天本身)被改過的文件名
-mtime -n:列出n天之前(包含n天本身)被改過的文件名
-newer file:file為一個(gè)已存在的文件,列出比file還新的文件名
2.與用戶用戶組有關(guān)的參數(shù)
-uid n:n表示用戶賬號(hào)的ID信息
-gid n:n表示用戶組名的ID信息
-user name:name為用戶賬號(hào)名
-group name:name表示用戶組名
-nouser:尋找文件的所有者不存在于/etc/passwd的人
-nogroup:尋找文件的所有用戶組不存在于/etc/group中的文件
3.與權(quán)限名稱有關(guān)的參數(shù)
-name filename:查找文件名為filename文件
-size [+ -] SIZE:查找比SIZE還要大(+)或小(-)的文件,SIZE規(guī)格:c表示byte,k表示kbyte
-type TYPE:查找文件類型為TYPE,TYPE包括:一般正規(guī)文件(f),設(shè)備文件(b,c),目錄(d),連接文件(l),socket(s),FIFO(p)
-perm mode:剛好等于mode的文件,mode為chmod的屬性值(=)
-perm -mode:必須包括mode的文件(>=)
-perm +mode:包含任一mode的權(quán)限(<=)
4.其他可進(jìn)行的操作
-exec command:command作為命令,后接其他命令來處理查找到的結(jié)果
-print:將結(jié)果打印到屏幕(此操作默認(rèn))
?
案例:find / -user jay -exec cp -a {} /test/ \;
”{}“代表由find找到的內(nèi)容
”-exec“到”\;“是關(guān)鍵字,代表find額外命令的開始(-exec)到結(jié)束(\;)
”;“表示轉(zhuǎn)義
小結(jié):
1.能讓用戶進(jìn)入目錄成為可工作目錄的基本權(quán)限
需要有用戶對(duì)此文件或目錄的執(zhí)行權(quán)限(x);如果想查閱目錄,還需要加上r
2.用戶在某個(gè)目錄中讀取一個(gè)文件的基本權(quán)限
用戶需要對(duì)此目錄有x;用戶需要對(duì)文件有r
3.用戶可以修改文件的基本權(quán)限
用戶在該文件所在的目錄至少有x;用戶對(duì)該文件要有r,w
4.用戶可以創(chuàng)建一個(gè)文件的基本權(quán)限
用戶在該目錄下有w,x(重點(diǎn)在w)
5.用戶進(jìn)入目錄并執(zhí)行某個(gè)命令的基本權(quán)限
用戶在該目錄至少有x;用戶在該文件至少有x
?
?
總結(jié)
以上是生活随笔為你收集整理的文件与目录管理——笔记的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 文件权限与目录配置——笔记
- 下一篇: 密码篇——对称加密—DES