a亚洲精品_精品国产91乱码一区二区三区_亚洲精品在线免费观看视频_欧美日韩亚洲国产综合_久久久久久久久久久成人_在线区

首頁 > 系統(tǒng) > Unix > 正文

Unix系統(tǒng)中文件管理和文件權限設置教程

2024-09-08 18:01:01
字體:
來源:轉載
供稿:網友
這篇文章主要介紹了Unix系統(tǒng)中文件管理和文件權限設置教程,是Unix入門學習中的基礎知識,需要的朋友可以參考下
 
 
在 UNIX 中的所有數據被都組織成文件。所有文件被都組織成目錄。這些目錄被組織成一個稱為文件系統(tǒng)的樹狀結構。
 
當您使用 UNIX 時,你將花費大部分時間用一種方式或另一種方式去處理文件。本教程將教你如何創(chuàng)建和刪除文件,復制和重命名它們,創(chuàng)建鏈接到它們等。
 
在 UNIX 中有三種基本類型的文件:
 
普通文件: 一個普通的文件是系統(tǒng)上包含數據、 文本或程序指令的文件。在本教程中,你將使用普通文件。
 
目錄: 目錄存儲特殊和普通文件。 UNIX 目錄對于熟悉 Windows 或者 Mac OS 的用戶,相當于文件夾。
 
特殊文件: 一些特殊的文件提供訪問硬件,例如硬盤、 CD - ROM 驅動器、 調制解調器和以太網適配器。其他特殊文件類似于別名或快捷方式,使您能夠訪問單個文件使用不同的名稱。
 
 
文件列表
為了列出存儲在當前目錄中的文件和目錄。使用下面的命令:
 
 
復制代碼代碼如下:
 
$ls
 
這里是上述命令的示例輸出:
 
復制代碼代碼如下:
 
$ls
 
    binhosts  lib res.03
    ch07   hw1pub test_results
    ch07.bak   hw2res.01  users
    docs   hw3res.02  work
命令 ls 支持 -l 選項,將幫助您獲得有關列出的文件的詳細信息:
 
復制代碼代碼如下:
 
$ls -l
 
    total 1962188
    drwxrwxr-x  2 amrood amrood  4096 Dec 25 09:59 uml
    -rw-rw-r--  1 amrood amrood  5341 Dec 25 08:38 uml.jpg
    drwxr-xr-x  2 amrood amrood  4096 Feb 15  2006 univ
    drwxr-xr-x  2 root   root4096 Dec  9  2007 urlspedia
    -rw-r--r--  1 root   root  276480 Dec  9  2007 urlspedia.tar
    drwxr-xr-x  8 root   root4096 Nov 25  2007 usr
    drwxr-xr-x  2200300  4096 Nov 25  2007 webthumb-1.01
    -rwxr-xr-x  1 root   root3192 Nov 25  2007 webthumb.php
    -rw-rw-r--  1 amrood amrood 20480 Nov 25  2007 webthumb.tar
    -rw-rw-r--  1 amrood amrood  5654 Aug  9  2007 yourfile.mid
    -rw-rw-r--  1 amrood amrood166255 Aug  9  2007 yourfile.swf
    drwxr-xr-x 11 amrood amrood  4096 May 29  2007 zlib-1.2.3
 
這里是有關所有列出的列信息:
 
第一列: 表示文件類型,給出了該文件的權限。后面是所有類型的文件的說明。
 
第二列: 表示文件或目錄所采取的內存塊的數目。
 
第三列: 表示該文件的所有者。這是創(chuàng)建此文件的 UNIX 用戶。
 
第四列: 表示用戶組。每個 UNIX 用戶會有一個相關聯(lián)的組。
 
第五列: 表示文件大小以字節(jié)為單位。
 
第六列: 表示此文件被創(chuàng)建或最后一次修改的日期和時間。
 
第七列: 表示文件或目錄的名稱。
在 ls -l 清單示例中,每個文件的行開頭為 d ,- ,或 l。這些字符指示列出的文件的類型。
 
前綴 描述
- 常規(guī)的文件,如 ASCII 文本文件,二進制可執(zhí)行文件,或硬鏈接。
b 特殊塊文件。塊輸入輸出設備文件如物理硬盤驅動器。
c 字符特殊文件。原始的輸入/輸出設備文件如物理硬盤驅動器。
d 包含其他文件和目錄列表的目錄文件。
l 符號鏈接文件。鏈接到任何一個普通的文件。
p 命名的管道。進程間通信機制。
s 用于進程間通信的套接字。
 
元字符
元字符在 UNIX 中具有特殊的意義。例如 * 和 ? 是元字符。我們使用 * 匹配 0 或多個字符,問號 ? 與單個字符匹配。
 
舉個例子:
 
 
復制代碼代碼如下:
 
$ls ch*.doc
 
顯示名稱以 ch 開頭,并以 .doc 結束的所有文件:
 
復制代碼代碼如下:
 
ch01-1.doc ch010.doc ch02.docch03-2.doc
ch04-1.doc ch040.doc ch05.docch06-2.doc
ch01-2.doc ch02-1.doc c
 
在這里 * 作為元字符可以和任何字符相匹配。如果你只是想要顯示以 .doc 結尾的所有文件,你可以使用以下命令:
 
復制代碼代碼如下:
 
$ls *.doc
 
隱藏文件
隱藏文件,是第一個字符是圓點或句點字符 (.) 的文件。 UNIX 程序 ( 包括 shell ) 大多數使用這些文件來存儲配置信息。
 
隱藏文件的一些常見的例子包括文件:
 
.profile: Bourne shell ( sh ) 初始化腳本。
.kshrc: Korn shell ( ksh ) 初始化腳本。
.cshrc: C shell ( csh ) 初始化腳本。
.rhosts: remote shell 配置文件。
若要列出不可見文件,請指定到 ls -a 選項:
 
 
復制代碼代碼如下:
 
$ ls -a
 
    . .profile   docs lib test_results
    ...rhostshostspub users
    .emacsbinhw1  res.01  work
    .exrc ch07   hw2  res.02
    .kshrcch07.bak   hw3  res.03
    $
單個點 . : 這個代表當前目錄。
兩個點 .. : 這個代表父目錄。
 
創(chuàng)建文件
您可以使用 vi 編輯器來創(chuàng)建任何 UNIX 系統(tǒng)上的普通文件。你只需要給出以下命令:
 
 
復制代碼代碼如下:
 
$ vi filename
 
上面的命令會打開一個給定的文件名的文件。您將需要按鍵 i 來進入編輯模式。一旦您處于編輯模式下你可以在如下圖所示文件中寫入您的內容:
    This is unix file....I created it for the first time.....
    I'm going to save this content in this file.
一旦你做完上一步,請執(zhí)行以下步驟:
 
按鍵 esc 退出編輯模式。
一起按兩個鍵 Shift + ZZ 完全退出文件。
現(xiàn)在你會有一個已經創(chuàng)建好的叫 filename 的文件在當前目錄中。
 
 
復制代碼代碼如下:
 
$ vi filename
 
編輯文件
您可以使用 vi 編輯器編輯現(xiàn)有的文件。我們將在一個單獨的教程中詳細介紹。但總之,您可以打開現(xiàn)有的文件,如下所示:
 
復制代碼代碼如下:
 
$ vi filename
 
一旦文件被打開,您將能在編輯模式下按鍵 i ,然后您可以如您所想的編輯文件。如果您想要在一個文件里左右移動首先您需要按下鍵 esc 退出編輯模式來,然后您可以使用下列鍵在文件內部移動:
l 鍵移動到右側。
h 鍵移動到左側。
k 鍵移動到上面。
j 鍵移動到下面。
使用上面的鍵您可以將光標放在任何您想要編輯的地方。一旦您定位好然后您可以使用 i 鍵來在編輯模式下編輯該文件。當您編輯完文件您可以按下 esc 鍵然后按下 Shift + ZZ 鍵來從文件完全的退出。
 
顯示文件的內容
你可以使用 cat 命令來查看文件的內容。以下是簡單的示例來查看上面創(chuàng)建文件的內容:
 
 
復制代碼代碼如下:
 
$ cat filename
This is unix file....I created it for the first time.....
I'm going to save this content in this file.
 
你可以通過按如下方式使用 -b 選項和 cat 命令顯示行號:
 
復制代碼代碼如下:
 
$ cat -b filename
1 This is unix file....I created it for the first time.....
2 I'm going to save this content in this file.
 
統(tǒng)計文件中字數
你可以使用 wc 命令來獲取一個文件中的總的行數,字數和字符數。以下是簡單的示例來查看有關上面創(chuàng)建的文件的信息:
 
 
復制代碼代碼如下:
 
$ wc filename
2 19 103 filename
 
這里是所有四個列的細節(jié):
第一列: 代表文件中的行數。
 
第二列: 代表文件中的字數。
 
第三列: 代表文件中的字符數。這是文件的實際大小。
 
第四列: 代表文件名。
在獲取有關這些文件的信息的時候,你可以給多個文件。這里是簡單的語法:
 
 
復制代碼代碼如下:
 
$ wc filename1 filename2 filename3
 
復制文件
要使用 cp 命令文件的副本。該命令的基本語法如下:
 
 
復制代碼代碼如下:
 
$ cp source_file destination_file
 
下面是創(chuàng)建一個已有文件 filename 的副本的例子。
 
復制代碼代碼如下:
 
$ cp filename copyfile
 
現(xiàn)在你會發(fā)現(xiàn)多了一個文件 copyfile 在您的當前目錄。此文件與原始文件 filename 完全相同。
刪除文件
若要更改文件的名稱使用 mv 命令。其基本的語法是:
 
 
復制代碼代碼如下:
 
$ mv old_file new_file
 
下面是把現(xiàn)有文件 filename 重命名為 newfile 的示例:
 
復制代碼代碼如下:
 
$ mv filename newfile
 
mv 命令將現(xiàn)有文件完全移動到新的文件。所以在這種情況下你只能發(fā)現(xiàn) newfile 在你當前的目錄中。
刪除文件
若要刪除現(xiàn)有文件使用 rm 命令。其基本的語法是:
 
 
復制代碼代碼如下:
 
$ rm filename
 
警告: 要刪除一個文件可能會很危險,因為它可能包含有用的信息。所以在使用此命令時要小心。這推薦使用 -i 選項和 rm 命令。
以下是完全刪除現(xiàn)有文件 filename 的示例:
 
 
復制代碼代碼如下:
 
$ rm filename
 
您可以在一行中刪除多個文件,如下所示:
 
復制代碼代碼如下:
 
$ rm filename1 filename2 filename3
 
標準 UNIX 流
在正常情況下每個 UNIX 程序在它啟動時打開的三個流 ( 文件 ):
 
stdin : 這指作為標準輸入,關聯(lián)文件描述符為 0。它也可以表示為 STDIN 。UNIX 程序默認從 STDIN 中讀取。
stdout : 這指作為標準輸出,關聯(lián)文件描述符為 1。它也可以表示為 STDOUT 。UNIX 程序默認從 STDOUT 中讀取。
stderr : 這指作為標準錯誤,關聯(lián)文件描述符為 2。它也可以表示為 STDERR 。UNIX 程序會將所有的錯誤信息寫入 STDERR。
 
文件權限
 
文件所有權是 UNIX 的一個重要的組成部分,提供了一種安全的方法來存儲文件。在 UNIX 中每個文件有以下屬性:
 
所有者權限:所有者的權限決定文件的所有者可以對文件執(zhí)行的操作。
組權限:組權限決定了屬于該組的成員對他所擁有的文件能夠執(zhí)行的操作。
其他人權限:其他人權限表示其他所有人對于該文件能夠進行的操作。
 
 
權限表示符
當使用 ls -l 命令的時候,會將與文件相關的各種權限展示出來,如下:
 
 
復制代碼代碼如下:
 
$ls -l /home/amrood
-rwxr-xr-- 1 amrood users 1024 Nov 2 00:10 myfile
drwxr-xr--- 1 amrood users 1024 Nov 2 00:10 mydir
 
輸出的第一列表示的是與文件或者目錄相關的訪問模式或者權限。
權限被分為三組,組中的每個位置代表一個特定的權限,這個順序是:讀(r)、寫(w)和執(zhí)行(x):
 
前三個字符 (2-4) 表示文件的所有者的權限。例如 -rwxr-xr-- 代表,文件的所有者擁有讀 (r)、寫 (w) 和執(zhí)行 (x) 的權限。
第二組的三個字符 (5-7) 包含了該文件所屬組的權限。例如 -rwxr-xr-- 表示了所屬組擁有讀 (r) 和執(zhí)行 (x) 的權限,但沒有寫權限。
最后一組三個字符 (8-10) 代表其他人的權限。例如 -rwxr-xr-- 代表其他人只有讀 (r) 的權限。
 
 
文件訪問模式
文件的權限是 UNIX 系統(tǒng)安全性的第一道防線。UNIX 權限的基本組成部分是讀,寫,執(zhí)行權限,如下所述:
 
 
 
讀:分配對文件的內容進行讀取和查看文件的權限。
寫:分配對文件的內容進行修改或者刪除的權限。
執(zhí)行:允許用戶將該文件作為一個程序進行執(zhí)行的權限。
 
 
目錄訪問模式
目錄訪問模式采用和其他文件用相同的方式組織。但是有一些差異,還是需要提到:
 
讀:訪問目錄意味著用戶可以讀取目錄下的內容。用戶可以查看目錄內的文件名。
寫:這個權限意味著用戶可以在目錄下面刪除或者新建文件。
執(zhí)行:執(zhí)行一個目錄并沒有真正的意義,因此將它當作可以遍歷目錄的權限。
用戶為了執(zhí)行 ls 或者 cd 命令就必須先訪問了 bin 目錄。
 
改變權限
改變文件或目錄的權限,您可以使用 chmod(change mode)命令。有兩種方法可以使用 chmod:符號模式和絕對模式。
 
 
 
符號模式中使用 chmod
對于初學者來說使用符號模式是最簡單的來修改文件或目錄的權限方法。可以用下表中的符號來添加、刪除或指定你想要設置的權限。
 
Chmod 操作符 描述
+ 給文件或者目錄添加指定的權限。
- 刪除文件或者目錄的權限。
= 設置指定的權限。
如下是以 testfile 文件為示例。對 testfile 文件運行 ls -l 就會像下面一樣顯示文件的權限:
 
復制代碼代碼如下:
 
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
 
接下來將前面表格中的 chmod 命令都對 testfile 運行一下,下面的是在 ls -l 運行之后,你可以看到文件權限的改變:
 
復制代碼代碼如下:
 
$chmod o+wx testfile
$ls -l testfile
-rwxrwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod u-x testfile
$ls -l testfile
-rw-rwxrwx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod g=rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
 
下面將展示如何將上面的命令組合成一行:
 
復制代碼代碼如下:
 
$chmod o+wx,u-x,g=rx testfile
$ls -l testfile
-rw-r-xrwx 1 amrood users 1024 Nov 2 00:10 testfile
 
chmod 命令中使用絕對權限
用chmod命令修改權限的第二種方法,是使用一個數字來指定文件的一些列權限。
 
每個權限被分配了一個數值,如下表所示, 并且給每個權限集的總和提供了一個數值。
 
數值 權限八進制表示 參照
0 沒有權限 ---
1 可執(zhí)行的權限 --x
2 寫權限 -w-
3 執(zhí)行和寫權限: 1 (執(zhí)行) + 2 (寫) = 3 -wx
4 讀取權限 r--
5 讀取和執(zhí)行權限: 4 (讀取) + 1 (執(zhí)行) = 5 r-x
6 讀取和寫權限: 4 (讀) + 2 (寫) = 6 rw-
7 所有權限: 4 (讀) + 2 (寫) + 1 (執(zhí)行) = 7 rwx
如下是針對 testfile 文件的示例。運行 ls -l 命令會顯示與該文件相關的權限如下:
 
復制代碼代碼如下:
 
$ls -l testfile
-rwxrwxr-- 1 amrood users 1024 Nov 2 00:10 testfile
 
對 testfile 運行上面表格中每個 chmod 示例命令,如下是在 ls -l 之后的,你可以從下面命令中看出權限的改變情況:
 
復制代碼代碼如下:
 
$ chmod 755 testfile
$ls -l testfile
-rwxr-xr-x 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 743 testfile
$ls -l testfile
-rwxr---wx 1 amrood users 1024 Nov 2 00:10 testfile
$chmod 043 testfile
$ls -l testfile
----r---wx 1 amrood users 1024 Nov 2 00:10 testfile
 
改變所有者和所屬組
在 UNIX 上創(chuàng)建一個帳戶時,系統(tǒng)會給每個用戶分配一個所有者 ID 和組 ID。所有上面提到的權限也會基于所有者和組進行分配。
 
如下的兩個命令可以改變一個文件的所有者和組:
 
chown:chown 表示的是 “change owner”,并且它是被用來改變一個文件的所有者。
chgrp:chgrp 表示的是 “change group”,并且它是被用來一個文件所屬的組。
 
 
改變所有者關系
chown 命令用來改變一個文件的所有者,它的基本語法如下:
 
 
復制代碼代碼如下:
 
$ chown user filelist
 
上面命令中的 user 既可以是系統(tǒng)中的用戶名,也可以是系統(tǒng)中用戶的 id(uid)。 示例:
 
復制代碼代碼如下:
 
$ chown amrood testfile
 
改變 testfile 文件的所有者為 amrood 用戶。
注意:超級用戶,root 用戶,擁有不受限制的權限,能夠更改所有文件的所有者,但是普通用戶只能修改他們所擁有的文件的所有者。
 
改變組關系
chgrp 命令被用來修改文件所屬的組。基本語法如下:
 
 
復制代碼代碼如下:
 
$ chgrp group filelist
 
上面命令中的 group 既可以是系統(tǒng)中存在的組的名稱,也可以是系統(tǒng)中存在的組的 ID(GID)。
示例:
 
 
復制代碼代碼如下:
 
$ chgrp special testfile
 
改變給定的文件的組為 special 組。
SUID 和 SGID 文件權限
通常執(zhí)行一個命令時,為了完成該任務它必須擁有某些特殊的權限。
 
舉一個例子,當你使用 passwd 命令改變了你的密碼后,您的新密碼存儲在文件 /etc/shadow 中。
 
作為一個普通用戶,出于安全原因你沒有讀或寫訪問這個文件的權限,但是當你改變你的密碼時,你需要擁有對這個文件寫權限。這意味著 passwd 程序必須給你額外的權限,以便您可以編寫文件 /etc/shadow,也就是需要額外的權限。
 
通過設置用戶 ID(SUID)和組 ID(SGID) 位可以給程序額外的權限。
 
當您執(zhí)行一個啟用了 SUID 的程序,你繼承了程序所有者的權限。啟動改程序的用戶就可以不用設置 SUID 直接運行該程序。
 
這對于 SGID 同樣是適用的。通常程序是按組的權限進行執(zhí)行,除非你的組改變了該程序所屬組的擁有者。
 
如果 SUID 和 SGID 權限是可用的,它們將會以小寫的 “s” 出現(xiàn)。SUID 的 “s” 位通常位于權限中所有者執(zhí)行權限的旁邊。如下:
 
 
復制代碼代碼如下:
 
$ ls -l /usr/bin/passwd
-r-sr-xr-x 1 root bin 19031 Feb 7 13:47 /usr/bin/passwd*
 
上面的顯示了 SUID 被設置了并且該命令被 root 用戶所擁有。在使用大寫字母 S 而不是小寫字母表示執(zhí)行位沒有設置。
如果對一個目錄設置了防刪除位(sticky bit),那么只有你是如下任意一種用戶時你才可以刪除該文件:
 
該目錄的擁有者
被刪除文件的擁有者
超級用戶,root 用戶
你可以使用如下的方式設置任何目錄的 SUID 和 SGID 位。
 
 
復制代碼代碼如下:
 
$ chmod ug+s dirname
$ ls -l
drwsr-sr-x 2 root root 4096 Jun 19 06:45 dirname

(編輯:武林網)

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 日韩一区二区三区av | 成人精品鲁一区一区二区 | 色又黄又爽网站www久久 | 日本亚洲欧美 | 888av在线 | 天堂在线中文字幕 | 国产第一页在线播放 | 成人久久亚洲 | 国产aⅴ爽av久久久久 | 精品一区二区视频 | 精品国产欧美 | 国产区福利 | 午夜免费视频 | 一区二区三区高清 | 欧美三日本三级三级在线播放 | 美女黄色毛片视频 | 色天天久久 | 国产精品日韩在线观看 | 久久成人在线视频 | 视频成人免费 | 亚洲国产成人精品女人 | 免费一区二区视频 | 蜜桃视频在线观看www社区 | 久久这里有精品 | 成人国产一区 | 欧美日韩中文在线 | 男女做爰高清无遮挡免费视频 | 日韩av在线免费看 | 欧美成人激情视频 | 爱草视频 | 美女吊逼 | 国产精品一区99 | 免费黄色网址在线播放 | 久久99精品久久久久久按摩秒播 | 久久久久久亚洲 | 色偷偷噜噜噜亚洲男人 | 日韩av免费在线观看 | 国产一区二区精品在线 | 欧美日韩综合精品 | 欧美精品亚洲精品 | 久草 在线 |