99精品伊人亚洲|最近国产中文炮友|九草在线视频支援|AV网站大全最新|美女黄片免费观看|国产精品资源视频|精彩无码视频一区|91大神在线后入|伊人终合在线播放|久草综合久久中文

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

Linux文件是一個(gè)什么文件的路徑

阿銘linux ? 來(lái)源:阿銘linux ? 作者:阿銘linux ? 2022-10-17 09:07 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

從這一章開(kāi)始,阿銘介紹的命令會(huì)越來(lái)越多,希望你能夠反復(fù)練習(xí)每一個(gè)命令的每一個(gè)選項(xiàng)。在Windows下,新建、復(fù)制、刪除文件或者文件夾都非常簡(jiǎn)單,而Linux需要我們使用命令行進(jìn)行操作。這樣便增加了學(xué)習(xí)Linux系統(tǒng)的難度,不過(guò)不用擔(dān)心,一旦能夠熟練使用它們,那么你將永遠(yuǎn)也不會(huì)忘記。萬(wàn)事開(kāi)頭難,所以請(qǐng)大家努力吧!

5.1絕對(duì)路徑和相對(duì)路徑

在Linux中,什么是一個(gè)文件的路徑呢?簡(jiǎn)單地說(shuō),就是這個(gè)文件存放的地方,例如在上一章提到的/root/.ssh/authorized_keys就是一個(gè)文件的路徑。只要你告訴系統(tǒng)某個(gè)文件的路徑,系統(tǒng)就可以找到這個(gè)文件。

在Linux中,存在著絕對(duì)路徑和相對(duì)路徑。

絕對(duì)路徑:路徑的寫(xiě)法一定是由根目錄/寫(xiě)起的,例如/usr/local/mysql。

相對(duì)路徑:路徑的寫(xiě)法不是由根目錄/寫(xiě)起的。例如,首先用戶進(jìn)入到/home,然后再進(jìn)入到test ,執(zhí)行的命令為

# cd /home 
# cd test

此時(shí)用戶所在的路徑為/home/test。第一個(gè)cd命令后緊跟/home,前面有斜杠;而第二個(gè)cd命令后緊跟test,前面沒(méi)有斜杠。這個(gè)test是相對(duì)于/home目錄來(lái)講的,所以稱(chēng)為相對(duì)路徑。

5.1.1命令cd

命令cd(changedirectory的簡(jiǎn)寫(xiě))是用來(lái)變更用戶所在目錄的,如果后面什么都不跟,就會(huì)直接進(jìn)入當(dāng)前用戶的根目錄下。我們做實(shí)驗(yàn)用的是root賬戶,所以運(yùn)行命令cd后,會(huì)進(jìn)入root賬戶的根目錄/root下。如果后面跟目錄名,則會(huì)直接切換到指定目錄下。示例命令如下:

# cd /tmp/
# pwd
/tmp
# cd
# pwd
/root

上例中,命令pwd用于顯示當(dāng)前所在目錄。命令cd后面只能是目錄名,如果跟了文件名,則會(huì)報(bào)錯(cuò),例如:

# cd /etc/passwd
-bash: cd: /etc/passwd: 不是目錄

因?yàn)?etc/passwd為一個(gè)文件,所以就報(bào)錯(cuò)了。在Linux文件系統(tǒng)中,有兩個(gè)特殊的符號(hào)也可以表示目錄。“.”表示當(dāng)前目錄,“..”表示當(dāng)前目錄的上一級(jí)目錄,示例命令如下:

# cd /usr/local/lib/
# pwd
/usr/local/lib
# cd .
# pwd
/usr/local/lib
# cd ..
# pwd
/usr/local

上例中,首先進(jìn)入/usr/local/lib/目錄,接著輸入.,用命令pwd查看當(dāng)前目錄,還是在/usr/local/lib/目錄下,然后輸入..,則進(jìn)入/usr/local/ 目錄(即/usr/local/lib目錄的上一級(jí)目錄)。

5.1.2命令mkdir

命令mkdir(makedirectory的簡(jiǎn)寫(xiě))用于創(chuàng)建目錄,這個(gè)命令在上一章中用過(guò)。該命令的格式為:mkdir [-mp] [目錄名稱(chēng)]。其中,-m、-p為其選項(xiàng)。-m選項(xiàng)用于指定要?jiǎng)?chuàng)建目錄的權(quán)限(這個(gè)選項(xiàng)不常用,阿銘不作重點(diǎn)解釋?zhuān)?p選項(xiàng)很管用,我們先來(lái)做個(gè)試驗(yàn),你就一目了然了。執(zhí)行如下命令:

# mkdir /tmp/test/123

mkdir: 無(wú)法創(chuàng)建目錄 '/tmp/test/123': 沒(méi)有那個(gè)文件或目錄

# mkdir -p /tmp/test/123
# ls /tmp/test
123

當(dāng)我們想創(chuàng)建目錄/tmp/test/123時(shí),提示無(wú)法創(chuàng)建、/tmp/test目錄不存在。在Linux中,如果它發(fā)現(xiàn)要?jiǎng)?chuàng)建的目錄的上一級(jí)目錄不存在,就會(huì)報(bào)錯(cuò)。為了解決這個(gè)問(wèn)題,Linux設(shè)置了-p選項(xiàng),這個(gè)選項(xiàng)可以幫我們創(chuàng)建一大串級(jí)聯(lián)目錄,并且當(dāng)創(chuàng)建一個(gè)已經(jīng)存在的目錄時(shí),不會(huì)報(bào)錯(cuò)。示例命令如下:

# ls -ld /tmp/test/123
drwxr-xr-x 2 root 6 12月 30
07:25 /tmp/test/123
# mkdir /tmp/test/123
mkdir: 無(wú)法創(chuàng)建目錄 '/tmp/test/123': 文件已存在
# mkdir -p /tmp/test/123
# ls -ld /tmp/test/123
drwxr-xr-x 2 root 6 12月 30
07:25 /tmp/test/123

在上一章中阿銘已經(jīng)介紹過(guò)ls命令,但并沒(méi)有介紹它的-d選項(xiàng)。這個(gè)選項(xiàng)是針對(duì)目錄的,通常都是和-l并用,寫(xiě)成-ld。它可以查看指定目錄的屬性,比如在本例中,它可以查看/tmp/test/123目錄的創(chuàng)建時(shí)間,如果不加-d,則會(huì)顯示該目錄里面的文件和子目錄的屬性。

5.1.3命令rmdir

命令rmdir(removedirectory的簡(jiǎn)寫(xiě))用于刪除空目錄,后面可以是一個(gè)目錄,也可以是多個(gè)目錄(用空格分隔)。該命令只能刪除目錄,不能刪除文件,所以阿銘一般不用它,而改用命令rm(remove的簡(jiǎn)寫(xiě)),這個(gè)命令既可以刪除目錄,又可以刪除文件,將在下一節(jié)中介紹。rmdir有和mkdir具有相同的選項(xiàng)-p,它同樣可以級(jí)聯(lián)刪除一大串目錄,但在級(jí)聯(lián)的目錄中,如果某一個(gè)目錄里還有目錄或者文件時(shí),這個(gè)命令就不好用了。我們先來(lái)看看命令rmdir的用法,示例命令如下:

# ls /tmp/test 
123
# rmdir /tmp/test/
rmdir: 刪除 '/tmp/test/' 失敗: 目錄非空
# rmdir /tmp/test/123
# ls /tmp/test
#

在上例中,命令rmdir只能刪除空目錄,即使加上-p選項(xiàng)也只能刪除一串空目錄??梢?jiàn),這個(gè)命令有很大的局限性,偶爾用一下還可以。

5.1.4命令rm

命令rm是最常用的,它也有很多選項(xiàng)。你可以通過(guò)命令man rm來(lái)獲得它的詳細(xì)幫助信息。這里,阿銘只介紹最常用的兩個(gè)選項(xiàng)。

-r:刪除目錄用的選項(xiàng),類(lèi)似于rmdir,但可以刪除非空目錄。下面阿銘先創(chuàng)建一連串的目錄,然后嘗試刪除它們。示例命令如下:

# mkdir -p /tmp/test/123 
# rm -r /tmp/test/123 
rm:是否刪除目錄 '/tmp/test/123'? y

和rmdir不同的是,使用rm –r命令刪除目錄時(shí),會(huì)詢問(wèn)是否刪除,如果輸入“y”則會(huì)刪除,如果輸入“n”則不刪除。另外,rm -r命令能刪除非空目錄。

-f:表示強(qiáng)制刪除。它不再詢問(wèn)是否刪除,而是直接刪除。如果后面跟一個(gè)不存在的文件或者目錄,則不會(huì)報(bào)錯(cuò)。下面阿銘嘗試刪除一個(gè)不存在的目錄,示例命令如下:

# rm /tmp/test/123/123
rm: 無(wú)法刪除 '/tmp/test/123/123': 沒(méi)有那個(gè)文件或目錄 
# rm -f /tmp/test/123/123

上例中,/tmp/test/123/123這個(gè)目錄是不存在的,但加上-f選項(xiàng)后,就不會(huì)報(bào)錯(cuò)。但如果要?jiǎng)h除一個(gè)存在的目錄時(shí),即使加上-f選項(xiàng)也會(huì)報(bào)錯(cuò)。所以,使用命令rm刪除目錄時(shí),一定要加-r選項(xiàng)。請(qǐng)對(duì)比下面的示例命令和上面的示例命令的區(qū)別:

# rm -f /tmp/test/123
rm: 無(wú)法刪除 '/tmp/test/123': 是一個(gè)目錄
# rm -rf /tmp/test/123

關(guān)于rm命令,阿銘使用最多的是-rf選項(xiàng),這樣刪除文件或目錄比較方便。但請(qǐng)大家千萬(wàn)要注意,rm -rf命令后面不能加“/”,否則它會(huì)把你的系統(tǒng)文件全部刪除,這是非常危險(xiǎn)的!

5.2環(huán)境變量PATH

在講環(huán)境變量之前,阿銘先介紹一下命令which,它用于查找某個(gè)命令的絕對(duì)路徑。示例命令如下:

# which rmdir
/usr/bin/rmdir
# which rm
alias rm='rm -i'
 /usr/bin/rm
# which ls
alias ls='ls --color=auto'
 /usr/bin/ls

其中rm和ls是兩個(gè)特殊的命令,在上例中我們使用alias命令做了別名。我們用的rm實(shí)際上是rm -i,加上-i選項(xiàng)后,刪除文件或者命令時(shí)都會(huì)詢問(wèn)是否確定要?jiǎng)h除,這樣做比較安全。命令alias可以設(shè)置命令或文件的別名,阿銘會(huì)在10.1.3節(jié)中詳細(xì)介紹。命令which阿銘不常使用,平時(shí)只用來(lái)查詢某個(gè)命令的絕對(duì)路徑。

在上面的示例中,用which查到rm命令的絕對(duì)路徑為/usr/bin/rm。那么你是否會(huì)問(wèn):“為什么我們使用命令時(shí),只是直接打出了命令,而沒(méi)有使用這些命令的絕對(duì)路徑呢?”這是環(huán)境變量PATH在起作用。請(qǐng)輸入如下命令:

# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

這里的echo用來(lái)輸出$PATH的值。PATH前面的$是變量的前綴符號(hào),這些知識(shí)點(diǎn)將會(huì)在第10章中詳細(xì)介紹。

因?yàn)?bin目錄在PATH的設(shè)定中,所以自然可以找到ls。但值得注意的是,由于PATH里沒(méi)有/root目錄,如果你將ls移到/root目錄下,當(dāng)執(zhí)行l(wèi)s命令時(shí),系統(tǒng)自然就找不到可執(zhí)行文件了,它會(huì)提示command not found!。示例命令如下:

# mv /usr/bin/ls /root/
# ls
-bash: /usr/bin/ls: 沒(méi)有那個(gè)文件或目錄

命令mv(move的簡(jiǎn)寫(xiě))用于移動(dòng)目錄或者文件,它還有重命名的作用(這個(gè)將在4.2.2節(jié)中介紹)。那么,該如何解決上面的這種問(wèn)題呢?有兩種方法,一種方法是直接將/root這個(gè)路徑加入到$PATH當(dāng)中,命令如下:

# PATH=$PATH:/root
# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root
# ls
anaconda-ks.cfg ls

另一種方法是使用絕對(duì)路徑,命令如下:

# /root/ls
anaconda-ks.cfg ls

為了不影響系統(tǒng)使用,建議將ls文件還原,命令如下:

# mv /root/ls /usr/bin/

5.2.1命令cp

cp是copy(即復(fù)制)的簡(jiǎn)寫(xiě),該命令的格式為:cp [選項(xiàng)] [ 來(lái)源文件 ] [目的文件]。例如,我想把test1復(fù)制成test2,可以寫(xiě)為cp test1 test2。下面介紹命令cp的幾個(gè)常用選項(xiàng)。

-r:如果要復(fù)制一個(gè)目錄,必須加-r選項(xiàng),否則不能復(fù)制,這類(lèi)似于rm命令。示例命令如下:

# mkdir 123
# cp 123 456
cp: 略過(guò)目錄"123"
# cp -r 123 456
# ls –ld 123 456
drwxr-xr-x 2 root 6 12月 30
07:35 123
drwxr-xr-x 2 root 6 12月 30
07:36 456

-i:這是安全選項(xiàng),如果遇到一個(gè)已存在的文件,會(huì)詢問(wèn)是否覆蓋,這也與rm命令類(lèi)似。在RedHat/Rocky系統(tǒng)中,使用的cp命令其實(shí)是cp –i,我們可以通過(guò)which命令查看,具體如下:

# which cp
alias cp='cp -i'
 /bin/cp

為了更形象地說(shuō)明-i 選項(xiàng)的作用,我們來(lái)做一個(gè)簡(jiǎn)單的小試驗(yàn),命令如下:

# cd 123
# ls
# touch 111
# touch 222
# cp -i 111 222
cp:是否覆蓋 '222'?n
# echo 'abc' > 111
# echo 'def' > 2
22
# cat 111 222
abc
def
# /bin/cp 111 222
# cat 111
abc
# cat 222
abc

上例中,touch可以解釋為:如果有這個(gè)文件,則會(huì)改變?cè)撐募脑L問(wèn)時(shí)間;如果沒(méi)有這個(gè)文件,就會(huì)創(chuàng)建這個(gè)文件。前面說(shuō)過(guò),echo命令用于打印,這里echo的內(nèi)容abc和def并沒(méi)有顯示在屏幕上,而是分別寫(xiě)入了文件“111”和“222”。起寫(xiě)入作用的就是符號(hào)“>”,這在Linux中叫做重定向,即把前面產(chǎn)生的輸出寫(xiě)入到后面的文件中。而cat命令則用于讀一個(gè)文件,并把讀出的內(nèi)容打印到當(dāng)前屏幕上。(重定向?qū)⒃诘?1章中介紹,cat命令將在5.3.1節(jié)中詳細(xì)介紹,這里你只要明白它們的含義即可。)

5.2.2命令mv

mv是move的簡(jiǎn)寫(xiě),該命令的格式為:mv [ 選項(xiàng) ] [源文件或目錄](méi) [目標(biāo)文件或目錄](méi)。該命令有如下幾種情況。

目標(biāo)文件是目錄,但該目錄不存在。

目標(biāo)文件是目錄,且該目錄存在。

目標(biāo)文件是文件,且該文件不存在。

目標(biāo)文件是文件,但該文件存在。

當(dāng)目標(biāo)文件是目錄時(shí),其存在與否,執(zhí)行后的結(jié)果是不一樣的。如果該目錄存在,則會(huì)把源文件或目錄移動(dòng)到該目錄中。如果該目錄不存在,則會(huì)把源目錄重命名為給定的目標(biāo)文件名。

當(dāng)目標(biāo)文件是文件時(shí),其存在與否,執(zhí)行后的結(jié)果也是不一樣的。如果該文件存在,則會(huì)詢問(wèn)是否覆蓋。如果該文件不存在,則會(huì)把源文件重命名為給定的目標(biāo)文件名。

下面我們來(lái)做幾個(gè)小試驗(yàn),示例命令如下:

# mkdir /tmp/test_mv
# cd /tmp/test_mv
# mkdir dira dirb
# ls
dira dirb
# mv dira dirc
# ls
dirb dirc

上例中,首先阿銘創(chuàng)建了一個(gè)實(shí)驗(yàn)用的目錄/tmp/test_mv,然后進(jìn)入到該目錄下進(jìn)行實(shí)驗(yàn),這樣做的目的是保持目錄和文件簡(jiǎn)潔,后面的實(shí)驗(yàn)以此類(lèi)推。這里,目標(biāo)文件是目錄dirc,并且dirc不存在,相當(dāng)于把目錄dira重命名為dirc。

下例中,目標(biāo)文件是目錄dirb,且dirb存在,則會(huì)把目錄dirc移動(dòng)到目錄dirb里:

# mv dirc dirb
# ls
dirb
# ls dirb
dirc

下例中,mv filed filee的目標(biāo)文件是文件filee且這個(gè)文件不存在,相當(dāng)于把文件filed重命名為filee。mv filee dirb命令則將更名后的文件filee移動(dòng)到目錄dirb里。

# touch filed
# ls
dirb filed
# mv filed filee
# ls
dirb filee
# mv filee dirb
# ls
dirb
# ls dirb
dirc filee

5.3幾個(gè)與文檔相關(guān)的命令

上面介紹的幾個(gè)命令幾乎都是與目錄相關(guān)的,下面阿銘繼續(xù)介紹幾個(gè)與文檔相關(guān)的命令。

5.3.1命令cat

命令cat(它并不是某個(gè)單詞的簡(jiǎn)寫(xiě),大家可以通過(guò)man cat命令查看它的解釋?zhuān)┦潜容^常用的一個(gè)命令,用于查看一個(gè)文件的內(nèi)容并將其顯示在屏幕上。cat后面可以不加任何選項(xiàng),直接跟文件名。下面阿銘介紹它的兩個(gè)常用選項(xiàng)。

-n :查看文件時(shí),把行號(hào)也顯示到屏幕上。示例命令如下(當(dāng)前目錄依然在/tmp/test_mv):

# echo '111111111' >
dirb/filee
# echo '222222222' >>
dirb/filee
# cat dirb/filee
111111111
222222222
# cat -n dirb/filee
 1  111111111
 2  222222222

上例中出現(xiàn)了符號(hào)>>,它跟前面介紹的符號(hào)>類(lèi)似,其作用也是重定向,即把前面的內(nèi)容輸入到后面的文件中,但符號(hào)>>是“追加”的意思。當(dāng)使用符號(hào)>時(shí),如果文件中有內(nèi)容,則會(huì)刪除文件中原有的內(nèi)容,而使用符號(hào)>>則不會(huì)刪除原有的內(nèi)容。

-A:顯示所有的內(nèi)容,包括特殊字符。示例命令如下:

# cat -A dirb/filee
111111111$
222222222$

上例中,若不加-A選項(xiàng),那么每行后面的$符號(hào)是看不到的。

5.3.2命令tac

和命令cat一樣,命令 tac(正好是命令cat的反序?qū)懛ǎ┮彩前盐募膬?nèi)容顯示在屏幕上,只不過(guò)是先顯示最后一行,然后顯示倒數(shù)第二行,最后才顯示第一行。我們使用命令tac來(lái)查看剛才創(chuàng)建的文件dirb/filee,顯示的結(jié)果和命令cat正好是反序,如下所示:

# tac dirb/filee
222222222
111111111

5.3.3命令more

命令more也用于查看一個(gè)文件的內(nèi)容,后面直接跟文件名。當(dāng)文件內(nèi)容太多,一屏不能全部顯示時(shí),用命令cat肯定是看不了前面的內(nèi)容,這時(shí)可以使用命令more。當(dāng)看完一屏后,按空格鍵可以繼續(xù)看下一屏,看完所有內(nèi)容后就會(huì)退出,按Ctrl+B可以向上翻屏,按Ctrl+F向下翻屏(同空格)。如果你想提前退出,按q鍵即可。

5.3.4命令less

命令less的作用和命令more一樣,后面直接跟文件名,但命令less比more功能要多一些。按空格鍵可以翻頁(yè),按j鍵可以向下移動(dòng)(按一下就向下移動(dòng)一行),按k鍵可以向上移動(dòng)。在使用more和less查看某個(gè)文件時(shí),你可以按一下/鍵,并輸入一個(gè)字符串(如root),然后回車(chē),這樣就可以查找這個(gè)字符串了。如果是查找多個(gè)該字符串,可以按n鍵顯示下一個(gè)。另外,也可以用?鍵替代/鍵來(lái)搜索字符串,唯一不同的是,/是在當(dāng)前行向下搜索,而?是在當(dāng)前行向上搜索。

5.3.5命令head

命令head用于顯示文件的前10行,后面直接跟文件名。如果加-n選項(xiàng),則顯示文件的前幾行,示例命令如下:

# head /etc/passwd
root0root:/root:/bin/bash
bin1bin:/bin:/sbin/nologin
daemon2daemon:/sbin:/sbin/nologin
adm3adm:/var/adm:/sbin/nologin
lp4lp:/var/spool/lpd:/sbin/nologin
sync5sync:/sbin:/bin/sync
shutdown6shutdown:/sbin:/sbin/shutdown
halt7halt:/sbin:/sbin/halt
mail8mail:/var/spool/mail:/sbin/nologin
operator11operator:/root:/sbin/nologin
# head -n 1 /etc/passwd
root0root:/root:/bin/bash
# head -n2 /etc/passwd
root0root:/root:/bin/bash
bin1bin:/bin:/sbin/nologin

大家請(qǐng)注意,選項(xiàng)-n后有無(wú)空格均可。另外,也可以省略字母n,-后面直接跟數(shù)字, 如下:

# head -2 /etc/passwd
root0root:/root:/bin/bash
bin1bin:/bin:/sbin/nologin

5.3.6命令tail

和命令head類(lèi)似,命令tail用于顯示文件的最后10行,后面直接跟文件名。如果加-n選項(xiàng),則顯示文件的最后幾行,示例命令如下:

# tail /etc/passwd
nobody65534Kernel Overflow User:/:/sbin/nologin
dbus81System message bus:/:/sbin/nologin
systemd-coredump999systemd Core Dumper:/:/sbin/nologin
systemd-resolve193systemd Resolver:/:/sbin/nologin
tss59Account used by the trousers package to sandbox the tcsd
daemon:/dev/null:/sbin/nologin
polkitd998User for polkitd:/:/sbin/nologin
unbound997Unbound DNS resolver:/etc/unbound:/sbin/nologin
sssd996User for sssd:/:/sbin/nologin
sshd74Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony995:/var/lib/chrony:/sbin/nologin
# tail -n2 /etc/passwd
sshd74Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony995:/var/lib/chrony:/sbin/nologin
# tail -2 /etc/passwd
sshd74Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
chrony995:/var/lib/chrony:/sbin/nologin

同樣,-n后面有無(wú)空格均可,且字母n也可以省略。

另外,命令tail的-f選項(xiàng)也常用,它可以動(dòng)態(tài)顯示文件的最后10行。如果文件內(nèi)容在不斷增加,使用-f選項(xiàng)非常方便和直觀。比如tail -f /var/log/messages可以動(dòng)態(tài)、實(shí)時(shí)地查看文件/var/log/ messages中的內(nèi)容。

5.4文件的所有者和所屬組

一個(gè)Linux目錄或者文件,都會(huì)有一個(gè)所有者和所屬組。所有者是指文件的擁有者,而所屬組指的是這個(gè)文件屬于哪一個(gè)用戶組(關(guān)于用戶、用戶組的概念,會(huì)在第5章中詳細(xì)介紹,這里你要明白一個(gè)用戶組下面會(huì)有若干個(gè)用戶)。Linux這樣設(shè)置文件屬性的目的是為了文件的安全。

例如,test文件的所有者是user0,而test1文件的所有者是user1,那么user1很有可能是不能查看test文件的,相應(yīng)地,user0也很有可能不能查看test1文件(之所以說(shuō)是可能,是因?yàn)閡ser0和user1有可能屬于同一個(gè)用戶組,而恰好這個(gè)用戶組對(duì)這兩個(gè)文件有查看權(quán)限)。

有時(shí)我們也會(huì)有這樣的需求:使一個(gè)文件能同時(shí)被user0和user1查看,這怎么實(shí)現(xiàn)呢?這時(shí)“所屬組”就派上用場(chǎng)了。先創(chuàng)建一個(gè)組users,讓user0和user1同屬于users組,然后建立一個(gè)文件test2,且其所屬組為users,這樣user0和user1都可以訪問(wèn)test2文件。Linux文件屬性不僅規(guī)定了所有者和所屬組,還規(guī)定了所有者(user)、所屬組(group)以及其他用戶(others)對(duì)該文件的權(quán)限。我們可以通過(guò)ls -l命令來(lái)查看這些屬性,代碼如下:

# ls -l /etc/passwd
-rw-r--r--. 1 root 1080 12月 26
08:08 /etc/passwd

其中,第3列和第4列的root就是所有者和所屬組。

5.5Linux文件屬性

在上例中,用ls –l命令查看當(dāng)前目錄下的文件時(shí),共顯示了9列內(nèi)容(用空格劃分列),它們都代表什么含義呢?

第1列:包含該文件的類(lèi)型、所有者、所屬組以及其他用戶對(duì)該文件的權(quán)限。第1列共11位(阿銘這里列出的是10位,沒(méi)有最后一位,你可以通過(guò)ls -l /看一下,會(huì)看到最后一位是一個(gè).),其中第1位用來(lái)描述該文件的類(lèi)型。上例中我們看到的文件類(lèi)型有d和-,其實(shí)除了這兩種外,還有l(wèi)、b、c、s等,具體描述如下所示。

d表示該文件為目錄。

-表示該文件為普通文件。

l表示該文件為鏈接文件(link file),4.9.3節(jié)中提到的軟鏈接即為該類(lèi)型,示例命令如下:

# ls -l /etc/rc.local
lrwxrwxrwx. 1 root 13 7月   1 11:29 /etc/rc.local -> rc.d/rc.local

上例中,第1列第1位是l,表示該文件為鏈接文件,后面阿銘還會(huì)介紹它。

b表示該文件為塊設(shè)備,比如/dev/sda就是這樣的文件,磁盤(pán)分區(qū)文件就是這種類(lèi)型。

c表示該文件為串行端口設(shè)備文件(又稱(chēng)字符設(shè)備文件),比如鍵盤(pán)、鼠標(biāo)、打印機(jī)、tty終端等都是這樣的文件。

s表示該文件為套接字文件(socket),用于進(jìn)程之間的通信,后面講到MySQL時(shí)會(huì)用到該類(lèi)型的文件。

文件類(lèi)型后面的9位,每3位為一組,上例中(rc.local)均為rwx這3個(gè)參數(shù)的組合。其中,r代表可讀,w代表可寫(xiě),x代表可執(zhí)行。前3位為所有者(user)的權(quán)限,中間3位為所屬組(group)的權(quán)限,最后3位為其他非本群組用戶(others)的權(quán)限。下面阿銘舉例來(lái)說(shuō)明一下。

假設(shè)一個(gè)文件的屬性為-rwxr-xr--,它代表的意思是,該文件為普通文件,文件擁有者可讀、可寫(xiě)且可執(zhí)行,文件所屬組對(duì)其可讀、不可寫(xiě)但可執(zhí)行,其他用戶對(duì)其只可讀。對(duì)于一個(gè)目錄來(lái)講,打開(kāi)這個(gè)目錄即為執(zhí)行這個(gè)目錄,所以任何一個(gè)目錄必須要有x權(quán)限才能打開(kāi)并查看該目錄下的內(nèi)容。例如,一個(gè)目錄的屬性為drwxr--r--,其所有者為root,那么除root之外的其他用戶是不能打開(kāi)這個(gè)目錄的。

關(guān)于前面提到第1列最后1位的“.”,阿銘要特別說(shuō)明一下。老版本CentOS 5 是沒(méi)有這個(gè)點(diǎn)的,這主要是因?yàn)樾掳姹镜膌s添加了Selinux或者acl的屬性。如果文件或者目錄使用了Selinux context的屬性,這里會(huì)是一個(gè)點(diǎn)“.”;如果設(shè)置了acl的屬性,這里會(huì)是一個(gè)加號(hào)“+”。

審核編輯:彭靜
聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • Linux
    +關(guān)注

    關(guān)注

    87

    文章

    11511

    瀏覽量

    213879
  • WINDOWS
    +關(guān)注

    關(guān)注

    4

    文章

    3614

    瀏覽量

    91440
  • 文件
    +關(guān)注

    關(guān)注

    1

    文章

    579

    瀏覽量

    25378

原文標(biāo)題:第5章 Linux文件和目錄管理上

文章出處:【微信號(hào):aming_linux,微信公眾號(hào):阿銘linux】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    Linux一個(gè)實(shí)用的頭文件

    queue.h是Linux、FreeBSD中的個(gè)頭文件。
    發(fā)表于 12-02 11:48 ?1095次閱讀

    你應(yīng)該搞懂的 C 語(yǔ)言頭文件路徑問(wèn)題

    前段時(shí)間在寫(xiě) Linux 專(zhuān)欄的過(guò)程中,忽然想到個(gè)問(wèn)題 :C語(yǔ)言的頭文件路徑,因?yàn)樵贕CC環(huán)境下面,可以很直觀的了解到程序?qū)︻^
    的頭像 發(fā)表于 06-14 11:41 ?6191次閱讀
    你應(yīng)該搞懂的 C 語(yǔ)言頭<b class='flag-5'>文件</b><b class='flag-5'>路徑</b>問(wèn)題

    Linux文件系統(tǒng)的反刪除方法

    Linux文件系統(tǒng)的反刪除方法 作為個(gè)多用戶、多任務(wù)的操作系統(tǒng),Linux下的文件
    發(fā)表于 03-29 10:39 ?753次閱讀

    玩轉(zhuǎn)iPhone:iPhone各種文件路徑詳解

    玩轉(zhuǎn)iPhone:iPhone各種文件路徑詳解 很多iPhone初級(jí)玩家對(duì)錯(cuò)綜復(fù)雜的iPhone文件路徑文件
    發(fā)表于 04-07 09:17 ?565次閱讀

    Linux文件文件系統(tǒng)分析

    1.3 Linux文件文件系統(tǒng) 在安裝完Linux之后,下面先對(duì)Linux些非常重要的概念
    發(fā)表于 10-18 14:24 ?0次下載
    <b class='flag-5'>Linux</b><b class='flag-5'>文件</b>及<b class='flag-5'>文件</b>系統(tǒng)分析

    Linux文件文件描述符概述

    、鏈接文件和設(shè)備文件。 那么,內(nèi)核如何區(qū)分和引用特定的文件呢?這里用到了個(gè)重要的概念文件描述符
    發(fā)表于 10-18 14:35 ?0次下載

    linux文件系統(tǒng)基礎(chǔ)

    、linux文件結(jié)構(gòu) 文件結(jié)構(gòu)是文件存放在磁盤(pán)等存貯設(shè)備上的組織方法。主要體現(xiàn)在對(duì)文件和目錄
    發(fā)表于 11-07 15:28 ?0次下載

    Linux實(shí)用教程之Linux文件和目錄操作總結(jié)

    Linux系統(tǒng)下除了文件之外,所有的目錄和設(shè)備(光驅(qū)、硬盤(pán)等)都是以文件的形式存在的,本節(jié)主要講述Linux
    發(fā)表于 09-29 16:18 ?0次下載

    Java中如何獲取文件路徑

    Java 開(kāi)發(fā)中我們經(jīng)常要獲取文件路徑,比如讀取配置文件等等。今天我們就關(guān)于文件路徑和如何讀取文件
    的頭像 發(fā)表于 02-22 15:03 ?5627次閱讀

    Python、PyQt如何從獲取的文件路徑中提取文件路徑

    問(wèn)題描述: ? 使用self.openfile= QFileDialog.getOpenFileNames()獲取多個(gè)文件后,當(dāng)前的文件夾目錄并不是獲取文件的目錄,如何同時(shí)設(shè)置成選擇的文件
    的頭像 發(fā)表于 06-20 21:05 ?4025次閱讀

    C 語(yǔ)言的頭文件路徑位置問(wèn)題

    前言 前段時(shí)間在寫(xiě) Linux 專(zhuān)欄的過(guò)程中,忽然想到個(gè)問(wèn)題 :C語(yǔ)言的頭文件路徑,因?yàn)樵贕CC環(huán)境下面,可以很直觀的了解到程序?qū)︻^
    的頭像 發(fā)表于 06-22 10:05 ?6932次閱讀
    C 語(yǔ)言的頭<b class='flag-5'>文件</b><b class='flag-5'>路徑</b>位置問(wèn)題

    Linux文件系統(tǒng)特點(diǎn)

    Linux文件系統(tǒng)特點(diǎn) 文件系統(tǒng)要有嚴(yán)格的組織形式,使得文件能夠以塊為單位進(jìn)行存儲(chǔ)。 文件系統(tǒng)中也要有索引區(qū),用來(lái)方便查找
    的頭像 發(fā)表于 11-09 14:48 ?1683次閱讀
    <b class='flag-5'>Linux</b>的<b class='flag-5'>文件</b>系統(tǒng)特點(diǎn)

    linux文件訪問(wèn)權(quán)限怎么設(shè)置

    Linux 文件訪問(wèn)權(quán)限是操作系統(tǒng)中個(gè)非常重要的概念。正確地設(shè)置文件訪問(wèn)權(quán)限可以保護(hù)系統(tǒng)的安全性,防止未經(jīng)授權(quán)的人員對(duì)
    的頭像 發(fā)表于 11-23 10:20 ?2131次閱讀

    Linux文件系統(tǒng)的掛載過(guò)程

    Linux文件系統(tǒng)(rootfs)是Linux系統(tǒng)中所有其他文件系統(tǒng)和目錄的起點(diǎn),它是內(nèi)核啟動(dòng)時(shí)掛載的第一個(gè)
    的頭像 發(fā)表于 10-05 16:50 ?972次閱讀

    Linux文件查找

    …] [options] [expression] [action] 查找 地區(qū) 妹紙 18-25歲 約? 是linux里面的個(gè)實(shí)時(shí)查找工具,通過(guò)制定路徑完成
    的頭像 發(fā)表于 12-03 17:09 ?739次閱讀