前綴 | 描述 |
---|---|
- | 常規(guī)的文件,如 ASCII 文本文件,二進(jìn)制可執(zhí)行文件,或硬鏈接。 |
b | 特殊塊文件。塊輸入輸出設(shè)備文件如物理硬盤驅(qū)動(dòng)器。 |
c | 字符特殊文件。原始的輸入/輸出設(shè)備文件如物理硬盤驅(qū)動(dòng)器。 |
d | 包含其他文件和目錄列表的目錄文件。 |
l | 符號鏈接文件。鏈接到任何一個(gè)普通的文件。 |
p | 命名的管道。進(jìn)程間通信機(jī)制。 |
s | 用于進(jìn)程間通信的套接字。 |
元字符
元字符在 UNIX 中具有特殊的意義。例如 * 和 ? 是元字符。我們使用 * 匹配 0 或多個(gè)字符,問號 ? 與單個(gè)字符匹配。
舉個(gè)例子:
隱藏文件
隱藏文件,是第一個(gè)字符是圓點(diǎn)或句點(diǎn)字符 (.) 的文件。 UNIX 程序 ( 包括 shell ) 大多數(shù)使用這些文件來存儲配置信息。
隱藏文件的一些常見的例子包括文件:
.profile: Bourne shell ( sh ) 初始化腳本。
.kshrc: Korn shell ( ksh ) 初始化腳本。
.cshrc: C shell ( csh ) 初始化腳本。
.rhosts: remote shell 配置文件。
若要列出不可見文件,請指定到 ls -a 選項(xiàng):
創(chuàng)建文件
您可以使用 vi 編輯器來創(chuàng)建任何 UNIX 系統(tǒng)上的普通文件。你只需要給出以下命令:
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
一旦你做完上一步,請執(zhí)行以下步驟:
按鍵 esc 退出編輯模式。
一起按兩個(gè)鍵 Shift + ZZ 完全退出文件。
現(xiàn)在你會有一個(gè)已經(jīng)創(chuàng)建好的叫 filename 的文件在當(dāng)前目錄中。
l 鍵移動(dòng)到右側(cè)。
h 鍵移動(dòng)到左側(cè)。
k 鍵移動(dòng)到上面。
j 鍵移動(dòng)到下面。
使用上面的鍵您可以將光標(biāo)放在任何您想要編輯的地方。一旦您定位好然后您可以使用 i 鍵來在編輯模式下編輯該文件。當(dāng)您編輯完文件您可以按下 esc 鍵然后按下 Shift + ZZ 鍵來從文件完全的退出。
顯示文件的內(nèi)容
你可以使用 cat 命令來查看文件的內(nèi)容。以下是簡單的示例來查看上面創(chuàng)建文件的內(nèi)容:
統(tǒng)計(jì)文件中字?jǐn)?shù)
你可以使用 wc 命令來獲取一個(gè)文件中的總的行數(shù),字?jǐn)?shù)和字符數(shù)。以下是簡單的示例來查看有關(guān)上面創(chuàng)建的文件的信息:
第一列: 代表文件中的行數(shù)。
第二列: 代表文件中的字?jǐn)?shù)。
第三列: 代表文件中的字符數(shù)。這是文件的實(shí)際大小。
第四列: 代表文件名。
在獲取有關(guān)這些文件的信息的時(shí)候,你可以給多個(gè)文件。這里是簡單的語法:
復(fù)制文件
要使用 cp 命令文件的副本。該命令的基本語法如下:
刪除文件
若要更改文件的名稱使用 mv 命令。其基本的語法是:
刪除文件
若要?jiǎng)h除現(xiàn)有文件使用 rm 命令。其基本的語法是:
以下是完全刪除現(xiàn)有文件 filename 的示例:
標(biāo)準(zhǔn) UNIX 流
在正常情況下每個(gè) UNIX 程序在它啟動(dòng)時(shí)打開的三個(gè)流 ( 文件 ):
stdin : 這指作為標(biāo)準(zhǔn)輸入,關(guān)聯(lián)文件描述符為 0。它也可以表示為 STDIN 。UNIX 程序默認(rèn)從 STDIN 中讀取。
stdout : 這指作為標(biāo)準(zhǔn)輸出,關(guān)聯(lián)文件描述符為 1。它也可以表示為 STDOUT 。UNIX 程序默認(rèn)從 STDOUT 中讀取。
stderr : 這指作為標(biāo)準(zhǔn)錯(cuò)誤,關(guān)聯(lián)文件描述符為 2。它也可以表示為 STDERR 。UNIX 程序會將所有的錯(cuò)誤信息寫入 STDERR。
文件權(quán)限
文件所有權(quán)是 UNIX 的一個(gè)重要的組成部分,提供了一種安全的方法來存儲文件。在 UNIX 中每個(gè)文件有以下屬性:
所有者權(quán)限:所有者的權(quán)限決定文件的所有者可以對文件執(zhí)行的操作。
組權(quán)限:組權(quán)限決定了屬于該組的成員對他所擁有的文件能夠執(zhí)行的操作。
其他人權(quán)限:其他人權(quán)限表示其他所有人對于該文件能夠進(jìn)行的操作。
權(quán)限表示符
當(dāng)使用 ls -l 命令的時(shí)候,會將與文件相關(guān)的各種權(quán)限展示出來,如下:
權(quán)限被分為三組,組中的每個(gè)位置代表一個(gè)特定的權(quán)限,這個(gè)順序是:讀(r)、寫(w)和執(zhí)行(x):
前三個(gè)字符 (2-4) 表示文件的所有者的權(quán)限。例如 -rwxr-xr-- 代表,文件的所有者擁有讀 (r)、寫 (w) 和執(zhí)行 (x) 的權(quán)限。
第二組的三個(gè)字符 (5-7) 包含了該文件所屬組的權(quán)限。例如 -rwxr-xr-- 表示了所屬組擁有讀 (r) 和執(zhí)行 (x) 的權(quán)限,但沒有寫權(quán)限。
最后一組三個(gè)字符 (8-10) 代表其他人的權(quán)限。例如 -rwxr-xr-- 代表其他人只有讀 (r) 的權(quán)限。
文件訪問模式
文件的權(quán)限是 UNIX 系統(tǒng)安全性的第一道防線。UNIX 權(quán)限的基本組成部分是讀,寫,執(zhí)行權(quán)限,如下所述:
讀:分配對文件的內(nèi)容進(jìn)行讀取和查看文件的權(quán)限。
寫:分配對文件的內(nèi)容進(jìn)行修改或者刪除的權(quán)限。
執(zhí)行:允許用戶將該文件作為一個(gè)程序進(jìn)行執(zhí)行的權(quán)限。
目錄訪問模式
目錄訪問模式采用和其他文件用相同的方式組織。但是有一些差異,還是需要提到:
讀:訪問目錄意味著用戶可以讀取目錄下的內(nèi)容。用戶可以查看目錄內(nèi)的文件名。
寫:這個(gè)權(quán)限意味著用戶可以在目錄下面刪除或者新建文件。
執(zhí)行:執(zhí)行一個(gè)目錄并沒有真正的意義,因此將它當(dāng)作可以遍歷目錄的權(quán)限。
用戶為了執(zhí)行 ls 或者 cd 命令就必須先訪問了 bin 目錄。
改變權(quán)限
改變文件或目錄的權(quán)限,您可以使用 chmod(change mode)命令。有兩種方法可以使用 chmod:符號模式和絕對模式。
符號模式中使用 chmod
對于初學(xué)者來說使用符號模式是最簡單的來修改文件或目錄的權(quán)限方法。可以用下表中的符號來添加、刪除或指定你想要設(shè)置的權(quán)限。
Chmod 操作符 | 描述 |
---|---|
+ | 給文件或者目錄添加指定的權(quán)限。 |
- | 刪除文件或者目錄的權(quán)限。 |
= | 設(shè)置指定的權(quán)限。 |
chmod 命令中使用絕對權(quán)限
用chmod命令修改權(quán)限的第二種方法,是使用一個(gè)數(shù)字來指定文件的一些列權(quán)限。
每個(gè)權(quán)限被分配了一個(gè)數(shù)值,如下表所示, 并且給每個(gè)權(quán)限集的總和提供了一個(gè)數(shù)值。
數(shù)值 | 權(quán)限八進(jìn)制表示 | 參照 |
---|---|---|
0 | 沒有權(quán)限 | --- |
1 | 可執(zhí)行的權(quán)限 | --x |
2 | 寫權(quán)限 | -w- |
3 | 執(zhí)行和寫權(quán)限: 1 (執(zhí)行) + 2 (寫) = 3 | -wx |
4 | 讀取權(quán)限 | r-- |
5 | 讀取和執(zhí)行權(quán)限: 4 (讀取) + 1 (執(zhí)行) = 5 | r-x |
6 | 讀取和寫權(quán)限: 4 (讀) + 2 (寫) = 6 | rw- |
7 | 所有權(quán)限: 4 (讀) + 2 (寫) + 1 (執(zhí)行) = 7 | rwx |
改變所有者和所屬組
在 UNIX 上創(chuàng)建一個(gè)帳戶時(shí),系統(tǒng)會給每個(gè)用戶分配一個(gè)所有者 ID 和組 ID。所有上面提到的權(quán)限也會基于所有者和組進(jìn)行分配。
如下的兩個(gè)命令可以改變一個(gè)文件的所有者和組:
chown:chown 表示的是 “change owner”,并且它是被用來改變一個(gè)文件的所有者。
chgrp:chgrp 表示的是 “change group”,并且它是被用來一個(gè)文件所屬的組。
改變所有者關(guān)系
chown 命令用來改變一個(gè)文件的所有者,它的基本語法如下:
注意:超級用戶,root 用戶,擁有不受限制的權(quán)限,能夠更改所有文件的所有者,但是普通用戶只能修改他們所擁有的文件的所有者。
改變組關(guān)系
chgrp 命令被用來修改文件所屬的組?;菊Z法如下:
示例:
SUID 和 SGID 文件權(quán)限
通常執(zhí)行一個(gè)命令時(shí),為了完成該任務(wù)它必須擁有某些特殊的權(quán)限。
舉一個(gè)例子,當(dāng)你使用 passwd 命令改變了你的密碼后,您的新密碼存儲在文件 /etc/shadow 中。
作為一個(gè)普通用戶,出于安全原因你沒有讀或?qū)懺L問這個(gè)文件的權(quán)限,但是當(dāng)你改變你的密碼時(shí),你需要擁有對這個(gè)文件寫權(quán)限。這意味著 passwd 程序必須給你額外的權(quán)限,以便您可以編寫文件 /etc/shadow,也就是需要額外的權(quán)限。
通過設(shè)置用戶 ID(SUID)和組 ID(SGID) 位可以給程序額外的權(quán)限。
當(dāng)您執(zhí)行一個(gè)啟用了 SUID 的程序,你繼承了程序所有者的權(quán)限。啟動(dòng)改程序的用戶就可以不用設(shè)置 SUID 直接運(yùn)行該程序。
這對于 SGID 同樣是適用的。通常程序是按組的權(quán)限進(jìn)行執(zhí)行,除非你的組改變了該程序所屬組的擁有者。
如果 SUID 和 SGID 權(quán)限是可用的,它們將會以小寫的 “s” 出現(xiàn)。SUID 的 “s” 位通常位于權(quán)限中所有者執(zhí)行權(quán)限的旁邊。如下:
如果對一個(gè)目錄設(shè)置了防刪除位(sticky bit),那么只有你是如下任意一種用戶時(shí)你才可以刪除該文件:
該目錄的擁有者
被刪除文件的擁有者
超級用戶,root 用戶
你可以使用如下的方式設(shè)置任何目錄的 SUID 和 SGID 位。
標(biāo)簽:張家界 達(dá)州 信陽 晉中 烏蘭察布 廣元 梧州 德陽
巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Unix系統(tǒng)中文件管理和文件權(quán)限設(shè)置教程》,本文關(guān)鍵詞 Unix,系統(tǒng),中,文件,管理,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。