Linux文件與目錄的操作
與其它操作系統(tǒng)一樣,在Linux系統(tǒng)下用戶的數據和程序也是以文件的形式保存的。所以在使用Linux的過程中,是經常要對文件與目錄進行操作的?,F在我們就以一個Window用戶的立場來學習一下Linux下的文件與目錄操作方法。
1. 文件名與文件類型
文件名是一個文件的標識。從這個角度來說,文件名的規(guī)則與Windows 9x下的是基本上相同的。它同樣是由字母、數字、下劃線、圓點組成,***的長度是255個字符。
與Windows 9x一樣,Linux系統(tǒng)中也有普通文件和目錄文件,不過目錄文件在Window中被簡稱為目錄就是了。而在Linux系統(tǒng)中有一種特殊的文件,那就是設備文件。在Linux系統(tǒng)中,把每一個I/O設置都映射成為一個文件,可以象普通文件一樣處理,這就使得文件與設備的操作盡可能統(tǒng)一。從用戶的用戶來說,對I/O設備的使用和一般文件的使用幾乎一樣,這樣就可以不必了解I/O設備的細節(jié)。
2. 目錄結構
與Windows下一樣,在Linux中也是通過目錄來組織文件的。但不同的是,在Linux下只有一個根目錄,而不象Windows那樣一個分區(qū)一個根目錄。如果有多個分區(qū)的話,就需要將其它分區(qū)mount到根目錄上來用。
大家回憶一下當時為Linux分區(qū)時,有一個選項要填,那就是Mount Point,我們將其中一個寫成了“/”,也就是根目錄(這點與Windows相反,一個是“\”,一個是“/”,真是天生冤家)。其它的則可能是/home、/usr。
安裝完系統(tǒng)后,你會發(fā)現/home、/usr就是根目錄下面的home、usr目錄!對了,整個分區(qū)就用于該目錄了。
安裝完Linux后,有許許多多的目錄,下面我們就說明一些重要的目錄:
/bin:存放著一百多個Linux下常用的命令、工具
/dev:存放著Linux下所有的設備文件!
/home:用戶主目錄,每建一個用戶,就會在這里新建一個與用戶同名的目錄,給該用戶一個自己的空間
/lost+found:顧名思義,一些丟失的文件可能可以在這里找到
/mnt:外部設備的掛接點,通常用cdrom與floppy兩個子目錄!它的存在簡化了光盤與軟盤的使用。你只需在塞入光盤后,運行:mount /mnt/cdrom,就可以將光盤上的內容Mount到/mnt/cdrom上,你就可以訪問了。不過你使用完成后,應該離開該目錄,并執(zhí)行umount /mnt/cdrom。同樣的,軟盤就是mount /mnt/floppy和umount /mnt/floppy了。
/proc:這其實是一個假的目錄,通過這里你可以訪問到內存里的內容。
/sbin:這里存放著系統(tǒng)級的命令與工具
/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:靜態(tài)鏈接庫
/root:root用戶的主目錄,這就是特權之一!
/var:通常用來存放一些變化中的東西!
/var/log:存放系統(tǒng)日志
/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命令來查看文件尾部的內容。通常用來實時監(jiān)測某個文件是否被修改,通常用來觀察日志。如:
tail -f maillog
4. 編輯文件
在Red Hat Linux 7中有許多文字編輯工具,其中最常用的應該是vi,這是一個廣泛應用于所有UNIX系統(tǒng)的編輯器。它的使用有些特別:
首先,可以使用命令“vi 文件名”打開一個文件。
剛啟動的時候,vi處于命令狀態(tài),不能夠輸入任何字符。在這個狀態(tài)下,可以使用方向鍵進行移動,而需要輸入內容時,你需要輸入“i”或“a”命令進入編輯狀態(tài)。編輯完成后,你需要按下“ESC”鍵回到命令狀態(tài)。
在命令狀態(tài)下,你可以輸入“:q!”不存盤退出,輸入“:wq”存盤退出。
5. 文件的復制、刪除與移動
大家都早已熟知在DOS下我們可以使用copy、del、move命令來實現文件的復制、刪除與移動。下面我們說說如何在Linux系統(tǒng)中做以上操作。
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”,結果等他走回電腦面前,整個系統(tǒng)都被刪除了!
3) mv命令:文件/目錄移動命令
它的語法格式為:mv [選項] 源文件或目錄 目標文件或目錄
常用的選項有:
f 如果操作要覆蓋某已有的目標文件時不給任何指示
i 交互式的操作,如果操作要覆蓋某已有的目標文件時會詢問用戶是否覆蓋
mv命令的執(zhí)行效果與參數類型的不同而不同!
***參數(源) 第二個參數(目標) 結果
文件名 文件名 將源文件名改為目標文件名
文件名 目錄名 將文件移動到目標目錄
目錄名 目錄名 目標目錄已存在:源目錄移動到目標目錄
目標目錄不存在:改名
目錄名 文件名 出錯
6. 目錄相關操作
1) 創(chuàng)建新目錄: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系統(tǒng)中,每一個文件和目錄都有相應的訪問許可權限,我們可以用它來確定誰可以通過何種方式對文件和目錄進行訪問和操作。文件或目錄的訪問權限分為可讀、可寫和可執(zhí)行三種,分別以r,w,x表示,其含義為:
r w x
文件 可讀 可寫 可執(zhí)行
目錄 可列出目錄 可在目錄中做寫操作 可以訪問該目錄
在文件被創(chuàng)建時,文件所有者可以對該文件的權限進行設置。
對于一個文件來說,可以將用戶分成三種,并對其分別賦予不同的權限:
1) 文件所有者
2) 與文件所有者同組用戶
3) 其它用戶
每一個文件或目錄的訪問權限都有三組,每組用三位表示,如:
d rwx r-x r--
***部分:這里的d代表目錄,其它的有:- 代表普通文件 c 代表字符設備文件;
第二部分:文件所有者的權限字,這里為r w x表示可讀、可寫、可執(zhí)行 (目錄的可執(zhí)行指的可以進入目錄);
第三部分:與文件所有者同組的用戶的權限字,這里為r - x表示可讀、不可寫、可執(zhí)行。由于同組用戶之間交流較多,讓他看看文件,別亂改就行了嘛。
第四部分:其它用戶的權限字,這里為- - -,當然給我無關的人嘛,我的文件當然不但不給你寫,也不讓你讀。
1) 文件/目錄權限設置命令:chmod
這是Linux系統(tǒng)管理員最常用到的命令之一,它用于改變文件或目錄的訪問權限。該命令有兩種用法:
用包含字母和操作符表達式的文字設定法
其語法格式為:chmod [who] [opt] [mode] 文件/目錄名
其中who表示對象,是以下字母中的一個或組合:
u:表示文件所有者
g:表示同組用戶
o:表示其它用戶
a:表示所有用戶
opt則是代表操作,可以為:
+:添加某個權限
-:取消某個權限
=:賦予給定的權限,并取消原有的權限
而mode則代表權限:
r:可讀
w:可寫
x:可執(zhí)行
例如:為同組用戶增加對文件a.txt的讀寫權限:
chmod g+rw a.txt
用數字設定法
而數字設定法則更為簡單:chmod [mode] 文件名
關鍵是mode的取值,一開始許多初學者會被搞糊涂,其實很簡單,我們將rwx看成二進制數,如果有則有1表示,沒有則有0表示,那么rwx r-x r--則可以表示成為:
111 101 100
再將其每三位轉換成為一個十進制數,就是754。
例如,我們想讓a.txt這個文件的權限為:
自己 同組用戶 其他用戶
可讀 是 是 是
可寫 是 是
可執(zhí)行
那么,我們先根據上表得到權限串為:rw-rw-r--,那么轉換成二進制數就是110 110 100,再每三位轉換成為一個十進制數,就得到664,因此我們執(zhí)行命令:
chmod 664 a.txt
2) 改變文件的屬主命令:chown
語法格式很簡單:chown [選項] 用戶名 文件/目錄名
其中最常用的選項是“R”,加上這個參數,可以將整個目錄里的所有子目錄和文件的屬主都改變成指定用戶。
3) 改變文件屬組命令:chgrp
該命令也很簡單:chgrp 組名 文件名
以上是的一些常用的Linux操作系統(tǒng)下文件和目錄相關的操作命令,這樣,各位使用Windows系統(tǒng)的操作者們可以更加方便地使用Linux。
【編輯推薦】