Linux系統下檔案與目錄操作
與其它作業系統一樣,在Linux系統下使用者的資料和程式也是以檔案的形式儲存的。是以在使用Linux的過程中,是經常要對檔案與目錄進行操作的。現在我們就以一個Window使用者的立場來學習一下Linux下的檔案與目錄操作方法。
1. 檔案名與檔案類型
檔案名是一個檔案的辨別。從這個角度來說,檔案名的規則與Windows 9x下的是基本上相同的。它同樣是由字母、數字、下劃線、圓點組成,最 大的長度是255個字元。
與Windows 9x一樣,Linux系統中也有普通檔案和目錄檔案,不過目錄檔案在Window中被簡稱為目錄就是了。而在Linux系統中有一種特殊的檔案,那就是裝置檔案。在Linux系統中,把每一個I/O設定都映射成為一個檔案,可以象普通檔案一樣處理,這就使得檔案與裝置的操作盡可能統一。從使用者的使用者來說,對I/O裝置的使用和一般檔案的使用幾乎一樣,這樣就可以不必了解I/O裝置的細節。
2. 目錄結構
與Windows下一樣,在Linux中也是通過目錄來組織檔案的。但不同的是,在Linux下隻有一個根目錄,而不象Windows那樣一個分區一個根目錄。 如果有多個分區的話,就需要将其它分區mount到根目錄上來用。
大家回憶一下當時為Linux分區時,有一個選項要填,那就是Mount Point,我們将其中一個寫成了“/”,也就是根目錄(這點與Windows相反, 一個是“\”,一個是“/”,真是天生冤家)。其它的則可能是/home、/usr。
安裝完系統後,你會發現/home、/usr就是根目錄下面的home、usr目錄!對了,整個分區就用于該目錄了。
安裝完Linux後,有許許多多的目錄,下面我們就說明一些重要的目錄:
/bin:存放着一百多個Linux下常用的指令、工具
/dev:存放着Linux下所有的裝置檔案!
/home:使用者主目錄,每建一個使用者,就會在這裡建立一個與使用者同名的目錄,給該使用者一個自己的空間
/lost+found:顧名思義,一些丢失的檔案可能可以在這裡找到
/mnt:外部裝置的挂接點,通常用cdrom與floppy兩個子目錄!它的存在簡化了CD光牒與軟碟的使用。你隻需在塞入CD光牒後,運作: mount /mnt/ cdrom,就可以将CD光牒上的内容Mount到/mnt/cdrom上,你就可以通路了。不過你使用完成後,應該離開該目錄,并執行umount /mnt/cdrom。同樣 的,軟碟就是mount /mnt/floppy和umount /mnt/floppy了。
/proc:這其實是一個假的目錄,通過這裡你可以通路到記憶體裡的内容。
/sbin:這裡存放着系統級的指令與工具
/usr:通常用來安裝各種軟體的地方
/usr/X11R6 X Window目錄
/usr/bin與/usr/sbin 一些後安裝的指令與工具
/usr/include、/usr/lib及/usr/share 則是存放一些共享連結庫
/usr/local 常用來安裝新軟體
/usr/src Linux源程式
/boot:Linux就是從這裡啟動的
/etc:這裡存放在Linux大部分的配置檔案
/lib:靜态連結庫
/root:root使用者的主目錄,這就是特權之一!
/var:通常用來存放一些變化中的東西!
/var/log:存放系統日志
/var/spool:存放一些郵件、新聞、列印隊列等
另外,要說明的是,在Linux下“目前目錄”、“路徑”等概念與Windows下是一樣的。
3. 顯示檔案内容
使用過DOS指令的人都應該知道,我們可以使用type指令來檢視一個檔案的内容。在Linux下有五個相關的指令,功能各有千秋,不過它們都象 type指令一樣,隻能用來檢視文本檔案。
(1) cat指令
cat指令是最象type指令的,使用的方法很簡單:“cat 檔案名”。不過比type指令更強大的是,它可以同時檢視多個檔案:“cat 檔案名一 文 件名二”。
(2) more指令
如果文本檔案比較長,一屏無法顯示完,那麼使用cat指令就可能無法看清。這裡我們可以簡單地使用more來代替cat指令即可。其效果與 type 文 件名/p類似。使用more指令将一次顯示一屏文本,顯示滿後,停下來,并提示出已顯示全部内容的百分比,按空格鍵就可以看到下一屏。
(3) less指令
less指令的功能幾乎和more指令一樣,也是按頁顯示檔案,不同之處在于less指令在顯示檔案時允許使用者既可以向前又可以向後翻閱檔案。
向前翻:按b鍵;向後翻:按p鍵;指定位置:輸入百分比;退出:q
我經常使用more和less,幾乎不使用cat檢視檔案。
(4) head指令
通過head指令可以僅檢視某檔案的前幾行,格式為:
head 行數 檔案名
如果未指定行數,則使用預設值10。
(5) tail指令
與head指令相對應的,我們可以使用tail指令來檢視檔案尾部的内容。通常用來實時監測某個檔案是否被修改,通常用來觀察日志。如:
tail -f maillog
4. 編輯檔案
在Red Hat Linux 7中有許多文字編輯工具,其中最常用的應該是vi,這是一個廣泛應用于所有UNIX系統的編輯器。它的使用有些特别:
首先,可以使用指令“vi 檔案名”打開一個檔案。
剛啟動的時候,vi處于指令狀态,不能夠輸入任何字元。在這個狀态下,可以使用方向鍵進行移動,而需要輸入内容時,你需要輸 入“i”或“a”指令進入編輯狀态。編輯完成後,你需要按下“ESC”鍵回到指令狀态。
在指令狀态下,你可以輸入“:q!”不存盤退出,輸入“:wq”存盤退出。
5. 檔案的複制、删除與移動
大家都早已熟知在DOS下我們可以使用copy、del、move指令來實作檔案的複制、删除與移動。下面我們說說如何在Linux系統中做以上操作。
1) cp指令:檔案/目錄複制指令
它的文法格式為:cp [選項] 源檔案或目錄 目标檔案或目錄
常用的選項有:
a 該選項常在複制目錄時使用,它保留連結、檔案屬性,并遞歸地複制目錄,就象DOS中的xcopy /s一樣
f 如果目标檔案或目錄已存在,就覆寫它,并且不做提示
i 與f選項正好相反,它在覆寫時,會讓使用者回答“Y”來确認
p 使用該選項,複制檔案時将保留修改時間和通路權限
r 若給出的源是一個目錄,那麼cp将遞歸複制該目錄下所有的子目錄和檔案,不過這要求目标也是一個目錄名
另外,大家要注意的是,如果源是檔案名,目标是目錄名的話,那麼使用cp指令可以指定多個源檔案名。如:
$ cp a.txt b.txt /home/user1
該指令将把a.txt和b.txt檔案複制到/home/usr1目錄中。
2) rm指令:檔案/目錄删除指令
它的文法格式為:rm [選項] 檔案 …
f 在删除過程中不給任何訓示,直接删除
r 訓示rm将參數中列出的全部目錄和子目錄都遞歸地删除
i 互動式的删除,每個檔案在删除時都給出提示
使用rm指令時一定要小心,特别是以root使用者登入時,我就看到過一個朋友在使用rm指令删除/home/tmp目錄時将指令“rm -rf /home/tmp”誤輸 成了 “rm -rf / home/tmp”,結果等他走回電腦面前,整個系統都被删除了!
3) mv指令:檔案/目錄移動指令
它的文法格式為:mv [選項] 源檔案或目錄 目标檔案或目錄
f 如果操作要覆寫某已有的目标檔案時不給任何訓示
i 互動式的操作,如果操作要覆寫某已有的目标檔案時會詢問使用者是否覆寫
mv指令的執行效果與參數類型的不同而不同!
第一參數(源) 第二個參數(目标) 結果
檔案名 檔案名 将源檔案名改為目标檔案名
檔案名 目錄名 将檔案移動到目标目錄
目錄名 目錄名 目标目錄已存在:源目錄移動到目标目錄
目标目錄不存在:改名
目錄名 檔案名 出錯
6. 目錄相關操作
1) 建立新目錄:mkdir,它的使用與DOS下的md相同:mkdir 目錄名;
2) 删除空目錄:rmdir,它的使用與DOS下的rd相同:rmdir 目錄名;
3) 改變目錄:cd,它的使用與DOS下的cd指令基本相同,唯一一個不同的是,不管目錄名是什麼,cd與目錄名之間必須有空格,也就是:“cd/”、 “cd..”、“cd.”都是非法的,而應該輸入:“cd /”、“cd ..”、“cd .”,如果直接輸入指令“cd”,而不加任何參數,将回到這個使用者的主目錄。
4) 顯示目前目錄:pwd
5) 列目錄指令:ls,相當于DOS下的dir
它的文法為:ls [選項] [目錄或檔案]
a 顯示指定目錄下所有的子目錄與檔案,包括隐藏檔案;
c 按檔案的修改時間排序
l 采用長格式來顯示檔案的詳細資訊,每個檔案一行資訊,其内容為:檔案類型與權限 連結數 檔案屬主 檔案屬組 檔案大小 最近修改時間 檔案名
7. 檔案與目錄的權限操作
在Linux系統中,每一個檔案和目錄都有相應的通路許可權限,我們可以用它來确定誰可以通過何種方式對檔案和目錄進行通路和操作。檔案或目 錄的通路權限分為可讀、可寫和可執行三種,分别以r,w,x表示,其含義為:
r w x
檔案 可讀 可寫 可執行
目錄 可列出目錄 可在目錄中做寫操作 可以通路該目錄
在檔案被建立時,檔案所有者可以對該檔案的權限進行設定。
對于一個檔案來說,可以将使用者分成三種,并對其分别賦予不同的權限:
1) 檔案所有者
2) 與檔案所有者同組使用者
3) 其它使用者
每一個檔案或目錄的通路權限都有三組,每組用三位表示,如:
d rwx r-x r--
第一部分:這裡的d代表目錄,其它的有:- 代表普通檔案 c 代表字元裝置檔案;
第二部分:檔案所有者的權限字,這裡為r w x表示可讀、可寫、可執行 (目錄的可執行指的可以進入目錄);
第三部分:與檔案所有者同組的使用者的權限字,這裡為r - x表示可讀、不可寫、可執行。由于同組使用者之間交流較多,讓他看看檔案,别亂改就 行了嘛。
第四部分:其它使用者的權限字,這裡為- - -,當然給我無關的人嘛,我的檔案當然不但不給你寫,也不讓你讀。
1) 檔案/目錄權限設定指令:chmod
這是Linux系統管理者最常用到的指令之一,它用于改變檔案或目錄的通路權限。該指令有兩種用法:
用包含字母和操作符表達式的文字設定法
其文法格式為:chmod [who] [opt] [mode] 檔案/目錄名
其中who表示對象,是以下字母中的一個或組合:
u:表示檔案所有者
g:表示同組使用者
o:表示其它使用者
a:表示所有使用者
opt則是代表操作,可以為:
+:添加某個權限
-:取消某個權限
=:賦予給定的權限,并取消原有的權限
而mode則代表權限:
r:可讀
w:可寫
x:可執行
例如:為同組使用者增加對檔案a.txt的讀寫權限:
chmod g+rw a.txt
用數字設定法
而數字設定法則更為簡單:chmod [mode] 檔案名
關鍵是mode的取值,一開始許多初學者會被搞糊塗,其實很簡單,我們将rwx看成二進制數,如果有則有1表示,沒有則有0表示,那麼rwx r-x r- -則可以表示成為:
111 101 100
再将其每三位轉換成為一個十進制數,就是754。
例如,我們想讓a.txt這個檔案的權限為:
自己 同組使用者 其他使用者
可讀 是 是 是
可寫 是 是 可執行
那麼,我們先根據上表得到權限串為:rw-rw-r--,那麼轉換成二進制數就是110 110 100,再每三位轉換成為一個十進制數,就得到664,是以我 們執行指令:
chmod 664 a.txt
2) 改變檔案的屬主指令:chown
文法格式很簡單:chown [選項] 使用者名 檔案/目錄名
其中最常用的選項是“R”,加上這個參數,可以将整個目錄裡的所有子目錄和檔案的屬主都改變成指定使用者。
3) 改變檔案屬組指令:chgrp
該指令也很簡單:chgrp 組名 檔案名
來源:Linux技術中堅站
[url]http://www.chinalinuxpub.com/read.php?wid=733[/url]