Linux文件管理方法介紹
文件簡(jiǎn)介
用戶通過(guò)Shell與Linux內(nèi)核交互。Shell是一個(gè)命令行解釋工具(是一個(gè)軟件),它將用戶輸入的命令轉(zhuǎn)換為內(nèi)核能夠理解的語(yǔ)言(命令)。Linux下,很多工作都是通過(guò)命令完成的,學(xué)好Linux,首先要掌握常用命令。
Linux中的所有數(shù)據(jù)都被保存在文件中,所有的文件被分配到不同的目錄。目錄是一種類似于樹(shù)的結(jié)構(gòu),稱為文件系統(tǒng)。
當(dāng)你使用Linux時(shí),大部分時(shí)間都會(huì)和文件打交道,通過(guò)本節(jié)可以了解基本的文件操作,如創(chuàng)建文件、刪除文件、復(fù)制文件、重命名文件以及為文件創(chuàng)建鏈接等。
1、ls(List files):查看文件
查看當(dāng)前目錄下的文件和目錄可以使用 ls 命令,例如:
$ ls bin hosts lib res.03 ch07 hw1 pub test_results ch07.bak hw2 res.01 users docs hw3 res.02 work
(1)、通過(guò) ls 命令的 -l 選項(xiàng),獲取更多文件信息
$ 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 root 4096 Dec 9 2007 urlspedia -rw-r--r-- 1 root root 276480 Dec 9 2007 urlspedia.tar drwxr-xr-x 8 root root 4096 Nov 25 2007 usr drwxr-xr-x 2 200 300 4096 Nov 25 2007 webthumb-1.01 -rwxr-xr-x 1 root root 3192 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 amrood 166255 Aug 9 2007 yourfile.swf drwxr-xr-x 11 amrood amrood 4096 May 29 2007 zlib-1.2.3
每一列的含義如下:
- 第一列:文件類型。
- 第二列:表示文件個(gè)數(shù)。如果是文件,那么就是1;如果是目錄,那么就是該目錄中文件的數(shù)目。
- 第三列:文件的所有者,即文件的創(chuàng)建者。
- 第四列:文件所有者所在的用戶組。在Linux中,每個(gè)用戶都隸屬于一個(gè)用戶組。
- 第五列:文件大小(以字節(jié)計(jì))。
- 第六列:文件被創(chuàng)建或上次被修改的時(shí)間。
- 第七列:文件名或目錄名。
注意:每一個(gè)目錄都有一個(gè)指向它本身的子目錄"." 和指向它上級(jí)目錄的子目錄"..",所以對(duì)于一個(gè)空目錄,第二列應(yīng)該為 2。
通過(guò) ls -l 列出的文件,每一行都是以 a、d、- 或 l 開(kāi)頭,這些字符表示文件類型:
- - : 普通文件。如文本文件、二進(jìn)制可執(zhí)行文件、源代碼等。
- b : 塊設(shè)備文件。硬盤可以使用塊設(shè)備文件。
- c : 字符設(shè)備文件。硬盤也可以使用字符設(shè)備文件。
- d : 目錄文件。目錄可以包含文件和其他目錄。
- l : 符號(hào)鏈接(軟鏈接)??梢枣溄尤魏纹胀ㄎ募?,類似于 Windows 中的快捷方式。原來(lái)文件刪了,快捷方式雖然在但是不起作用了。
- p : 具名管道。管道是進(jìn)程間的一種通信機(jī)制。
- s : 用于進(jìn)程間通信的套接字。
(2)、三種基本的文件類型
- 普通文件:普通文件是以字節(jié)為單位的數(shù)據(jù)流,包括文本文件、源碼文件、可執(zhí)行文件等。文本和二進(jìn)制對(duì)Linux來(lái)說(shuō)并無(wú)區(qū)別,對(duì)普通文件的解釋由處理該文件的應(yīng)用程序進(jìn)行。
- 目錄:目錄可以包含普通文件和特殊文件,目錄相當(dāng)于Windows和Mac OS中的文件夾。
- 設(shè)備文件:有些教程中稱特殊文件,是一個(gè)含義。Linux 與外部設(shè)備(例如光驅(qū),打印機(jī),終端,modern等)是通過(guò)一種被稱為設(shè)備文件的文件來(lái)進(jìn)行通信。Linux 輸入輸出到外部設(shè)備的方式和輸入輸出到一個(gè)文件的方式是相同的。Linux 和一個(gè)外部設(shè)備通訊之前,這個(gè)設(shè)備必須首先要有一個(gè)設(shè)備文件存在。例如,每一個(gè)終端都有自己的設(shè)備文件來(lái)供 Linux 寫數(shù)據(jù)(出現(xiàn)在終端屏幕上)和讀取數(shù)據(jù)(用戶通過(guò)鍵盤輸入)。設(shè)備文件和普通文件不一樣,設(shè)備文件中并不包含任何數(shù)據(jù)。
設(shè)備文件有兩種類型:字符設(shè)備文件和塊設(shè)備文件。
字符設(shè)備文件以字母"c"開(kāi)頭。字符設(shè)備文件向設(shè)備傳送數(shù)據(jù)時(shí),一次傳送一個(gè)字符。典型的通過(guò)字符傳送數(shù)據(jù)的設(shè)備有終端、打印機(jī)、繪圖儀、modern等。字符設(shè)備文件有時(shí)也被稱為"raw"設(shè)備文件。
塊設(shè)備文件以字母"b"開(kāi)頭。塊設(shè)備文件向設(shè)備傳送數(shù)據(jù)時(shí),先從內(nèi)存中的buffer中讀或?qū)憯?shù)據(jù),而不是直接傳送數(shù)據(jù)到物理磁盤。磁盤和CD-ROMS既可以使用字符設(shè)備文件也可以使用塊設(shè)備文件。
(3)、元字符 * ?
元字符是具有特殊含義的字符。* 和 ? 都是元字符:
- * 可以匹配 0 個(gè)或多個(gè)任意字符;
- ? 匹配一個(gè)字符。
例如
$ ls ch*.doc
可以顯示所有以 ch 開(kāi)頭,以 .doc 結(jié)尾的文件:
ch01-1.doc ch010.doc ch02.doc ch03-2.doc ch04-1.doc ch040.doc ch05.doc ch06-2.doc ch01-2.doc ch02-1.doc c
這里,* 匹配任意一個(gè)字符。如果你希望顯示所有以 .doc 結(jié)尾的文件,可以使用
$ ls *.doc
(4)、隱藏文件 ls -a
隱藏文件的第一個(gè)字符為英文句號(hào)或點(diǎn)號(hào)(.),Linux程序(包括Shell)通常使用隱藏文件來(lái)保存配置信息。
下面是一些常見(jiàn)的隱藏文件:
.profile:Bourne shell (sh) 初始化腳本 .kshrc:Korn shell (ksh) 初始化腳本 .cshrc:C shell (csh) 初始化腳本 .rhosts:Remote shell (rsh) 配置文件
查看隱藏文件需要使用 ls 命令的 -a 選項(xiàng):
$ ls -a . .profile docs lib test_results .. .rhosts hosts pub users .emacs bin hw1 res.01 work .exrc ch07 hw2 res.02 .kshrc ch07.bak hw3 res.03
一個(gè)點(diǎn)號(hào)(.)表示當(dāng)前目錄,兩個(gè)點(diǎn)號(hào)(..)表示上級(jí)目錄
注意:輸入密碼時(shí),星號(hào)(*)作為占位符,代表你輸入的字符個(gè)數(shù)。
2、vi:創(chuàng)建文件、編輯文件
在Linux中,可以使用 vi 編輯器創(chuàng)建一個(gè)文本文件,例如:
$ vi filename
上面的命令會(huì)創(chuàng)建文件 filename 并打開(kāi),按下 i 鍵即可進(jìn)入編輯模式,你可以向文件中寫入內(nèi)容。例如:
This is Linux file....I created it for the first time..... I'm going to save this content in this file.
完成編輯后,可以按 esc 鍵退出編輯模式,也可以按組合鍵 Shift + ZZ 完全退出文件。這樣,就完成了文件的創(chuàng)建。
$ vi filename
vi 編輯器可以用來(lái)編輯文件。如下
可以打開(kāi)一個(gè)名為 filename 的文件:
$ vi filename
當(dāng)文件被打開(kāi)后,可以按 i 鍵進(jìn)入編輯模式,按照自己的方式編輯文件。如果想移動(dòng)光標(biāo),必須先按 esc 鍵退出編輯模式,然后使用方向機(jī)或者下面的按鍵在文件內(nèi)移動(dòng)光標(biāo):
- l 鍵向右移動(dòng)
- h 鍵向左移動(dòng)
- k 鍵向上移動(dòng)
- j 鍵向下移動(dòng)
使用上面的按鍵,可以將光標(biāo)快速定位到你想編輯的地方。定位好光標(biāo)后,按 i 鍵再次進(jìn)入編輯模式。編輯完成后按 esc 鍵退出編輯模式或者按組合鍵 Shift+ZZ 退出當(dāng)前文件。
3、cat(Catenate鏈接):查看文件內(nèi)容
可以使用 cat 命令來(lái)查看文件內(nèi)容,下面是一個(gè)簡(jiǎn)單的例子:
$ cat filename This is Linux file....I created it for the first time..... I'm going to save this content in this file.
可以通過(guò) cat 命令的 -b 選項(xiàng)來(lái)顯示行號(hào),例如:
$ cat -b filename 1 This is Linux file....I created it for the first time..... 2 I'm going to save this content in this file. $
4、wc(Word Count):統(tǒng)計(jì)單詞數(shù)目
可以使用 wc 命令來(lái)統(tǒng)計(jì)當(dāng)前文件的行數(shù)、單詞數(shù)和字符數(shù),下面是一個(gè)簡(jiǎn)單的例子:
$ wc filename 2 19 103 filename
每一列的含義如下:
- 第一列:文件的總行數(shù)
- 第二列:?jiǎn)卧~數(shù)目
- 第三列:文件的字節(jié)數(shù),即文件的大小
- 第四列:文件名
也可以一次查看多個(gè)文件的內(nèi)容,例如:
$ wc filename1 filename2 filename3
5、 cp(Copy):復(fù)制文件
可以使用 cp 命令來(lái)復(fù)制文件。cp 命令的基本語(yǔ)法如下:
$ cp source_file destination_file
下面的例子將會(huì)復(fù)制 filename 文件:
$ cp filename copyfile
現(xiàn)在在當(dāng)前目錄中會(huì)多出一個(gè)和 filename 一模一樣的 copyfile 文件。
6、mv(Move):重命名文件
mv 命令其實(shí)是一個(gè)移動(dòng)文件的命令,不但可以更改文件的路徑,也可以更改文件名。
重命名文件可以使用 mv 命令,語(yǔ)法為:
$ mv old_file new_file
下面的例子將會(huì)把 filename 文件重命名為 newfile:
$ mv filename newfile
現(xiàn)在在當(dāng)前目錄下,只有一個(gè) newfile 文件。
7、rm(Remove):刪除文件
rm命令可以刪除文件,語(yǔ)法為:
$ rm filename
注意:刪除文件是一種危險(xiǎn)的行為,因?yàn)槲募?nèi)可能包含有用信息,建議結(jié)合 –i (每次刪除前給出提示)選項(xiàng)來(lái)使用 rm 命令。
下面的例子會(huì)徹底刪除一個(gè)文件:
$ rm filename
你也可以一次刪除多個(gè)文件:
$ rm filename1 filename2 filename3
8、標(biāo)準(zhǔn)的Linux流
一般情況下,每個(gè)Linux程序運(yùn)行時(shí)都會(huì)創(chuàng)建三個(gè)文件流(三個(gè)文件):
- 標(biāo)準(zhǔn)輸入流(stdin):stdin的文件描述符為0,Linux程序默認(rèn)從stdin讀取數(shù)據(jù)。
- 標(biāo)準(zhǔn)輸出流(stdout):stdout 的文件描述符為1,Linux程序默認(rèn)向stdout輸出數(shù)據(jù)。
- 標(biāo)準(zhǔn)錯(cuò)誤流(stderr):stderr的文件描述符為2,Linux程序會(huì)向stderr流中寫入錯(cuò)誤信息。
到此這篇關(guān)于Linux文件管理的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Linux shell腳本實(shí)現(xiàn)CPU預(yù)警
這篇文章主要介紹了Linux shell腳本實(shí)現(xiàn)CPU預(yù)警的方法,并附上代碼以及用法,有需要的小伙伴可以參考下。2015-03-03linux下實(shí)現(xiàn)ftp自動(dòng)備份shell腳本
ftp命令把遠(yuǎn)程計(jì)算機(jī)上的文件傳輸?shù)奖镜赜?jì)算機(jī)時(shí),需要和用戶交互。怎樣使交互過(guò)程自動(dòng)化呢2013-01-01shell實(shí)現(xiàn)數(shù)字打印從100到200的數(shù)
按順序打印從100到200的數(shù)的shell腳本,需要的朋友可以參考下2013-02-02Shell腳本變量的只讀?刪除?類型及注釋語(yǔ)法基礎(chǔ)
這篇文章主要介紹了Shell腳本變量的只讀刪除類型及注釋語(yǔ)法基礎(chǔ)詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2023-05-05局域網(wǎng)遠(yuǎn)程開(kāi)機(jī)軟件制作代碼分享
局域網(wǎng)遠(yuǎn)程開(kāi)機(jī)軟件制作代碼分享,大家可以參考使用,要網(wǎng)卡支持,需要gtk+2.0 的庫(kù)支持UI2013-12-12Shell alias給命令設(shè)置別名的實(shí)現(xiàn)方法
這篇文章主要介紹了Shell alias給命令設(shè)置別名的實(shí)現(xiàn)方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-01-01