
- Unix/Linux 初學者指南
- Unix/Linux - 首頁
- Unix/Linux - 什麼是Linux?
- Unix/Linux - 快速入門
- Unix/Linux - 檔案管理
- Unix/Linux - 目錄
- Unix/Linux - 檔案許可權
- Unix/Linux - 環境
- Unix/Linux - 基本實用程式
- Unix/Linux - 管道與過濾器
- Unix/Linux - 程序
- Unix/Linux - 通訊
- Unix/Linux - vi 編輯器
- Unix/Linux Shell 程式設計
- Unix/Linux - Shell 指令碼
- Unix/Linux - 什麼是 Shell?
- Unix/Linux - 使用變數
- Unix/Linux - 特殊變數
- Unix/Linux - 使用陣列
- Unix/Linux - 基本運算子
- Unix/Linux - 決策
- Unix/Linux - Shell 迴圈
- Unix/Linux - 迴圈控制
- Unix/Linux - Shell 替換
- Unix/Linux - 引號機制
- Unix/Linux - I/O 重定向
- Unix/Linux - Shell 函式
- Unix/Linux - 手冊頁幫助
- 高階 Unix/Linux
- Unix/Linux - 標準 I/O 流
- Unix/Linux - 檔案連結
- Unix/Linux - 正則表示式
- Unix/Linux - 檔案系統基礎
- Unix/Linux - 使用者管理
- Unix/Linux - 系統性能
- Unix/Linux - 系統日誌
- Unix/Linux - 訊號和陷阱
Linux 檔案管理
什麼是 Linux 檔案管理?
在使用 Linux 時,我們需要許多文字檔案和二進位制檔案,例如所有 Linux 程式都以二進位制檔案的形式出現,而它們的原始碼則以文字檔案的形式出現。作為作業系統的使用者,我們還會建立許多檔案來管理我們的日常活動。使用者生成的檔案包括文字檔案、Excel 檔案、PowerPoint 簡報以及許多其他文字檔案。
在本章中,我們將詳細討論 Linux/Unix 中的檔案管理。Linux 中的所有資料都組織成檔案,所有這些檔案都組織成不同的目錄。這些目錄組織成一個稱為檔案系統的樹狀結構。
檔案系統負責將資訊儲存在硬碟驅動器上,並在以後檢索和更新它。Linux 檔案系統的示例包括 FAT16、FAT32、NTFS、Ext2、Ext3、Ext4 等。
Linux 中的檔案型別
實際上,Linux 中的一切都是一個檔案。因此,當您使用 Linux 時,無論如何,您都會花費大部分時間處理檔案。本教程將幫助您瞭解如何建立和刪除檔案、複製和重新命名檔案、建立指向它們的連結等。
在 Linux 中,有三種基本型別的檔案:
普通檔案 - 普通檔案是系統上包含資料、文字或程式指令的檔案。在本教程中,您將瞭解如何使用普通檔案。
目錄 - 目錄儲存特殊檔案和普通檔案。對於熟悉 Windows 或 Mac OS 的使用者,Unix 目錄相當於資料夾。
特殊檔案 - 一些特殊檔案提供對硬體的訪問,例如硬碟驅動器、CD-ROM 驅動器、調變解調器和乙太網介面卡。其他特殊檔案類似於別名或快捷方式,使您可以使用不同的名稱訪問單個檔案。
Linux 中的檔案管理命令
讓我們學習最重要的 Linux 命令,以列出可用檔案、建立和刪除檔案、複製和重新命名檔案、建立指向檔案的連結等。
列出檔案
要列出 Linux 系統當前目錄中儲存的所有檔案和目錄,請使用以下命令:
$ ls
以下是上述命令的示例輸出:
$ls bin hosts lib res.03 ch07 hw1 pub test_results ch07.bak hw2 res.01 users docs hw3 res.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 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 $
以下是所有列出的列的資訊:
第一列 - 表示檔案型別和對檔案授予的許可權。以下是所有檔案型別的說明。
第二列 - 表示檔案或目錄佔用的記憶體塊數。
第三列 - 表示檔案的擁有者。這是建立此檔案的 Linux 使用者。
第四列 - 表示所有者的組。每個 Linux 使用者都將有一個關聯的組。
第五列 - 表示檔案大小(以位元組為單位)。
第六列 - 表示上次建立或修改此檔案的時間和日期。
第七列 - 表示檔案或目錄名稱。
在ls -l列表示例中,每一行檔案都以d、-或l開頭。這些字元指示列出的檔案的型別。
字首 | 描述 |
---|---|
- |
普通檔案,例如 ASCII 文字檔案、二進位制可執行檔案或硬連結。 |
b |
塊特殊檔案。塊輸入/輸出裝置檔案,例如物理硬碟驅動器。 |
c |
字元特殊檔案。原始輸入/輸出裝置檔案,例如物理硬碟驅動器。 |
d |
目錄,其中包含其他檔案和目錄的列表。 |
l |
符號連結檔案。任何普通檔案的連結。 |
p |
命名管道。程序間通訊的一種機制。 |
s |
套接字,用於程序間通訊。 |
Linux 中的元字元
Linux 元字元在 Unix 中具有特殊含義。例如,*和?是元字元。我們使用*匹配 0 個或多個字元,問號 (?) 與單個字元匹配。
例如:
$ls ch*.doc
顯示所有名稱以ch開頭並以.doc結尾的檔案:
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
這裡,*用作元字元,與任何字元匹配。如果要顯示所有以.doc結尾的檔案,則可以使用以下命令:
$ls *.doc
Linux 中的隱藏檔案
Linux 和 Unix 有一些隱藏檔案,對使用者不可見。這些檔案的名稱以點或句點字元 (.) 開頭。Linux 程式(包括 shell)使用大部分這些檔案來儲存系統配置資訊。
一些常見的隱藏檔案示例包括以下檔案:
檔案 | 描述 |
---|---|
.profile |
Bourne shell (sh) 初始化指令碼 |
.kshrc |
Korn shell (ksh) 初始化指令碼 |
.cshrc |
C shell (csh) 初始化指令碼 |
.rhosts |
遠端 shell 配置檔案 |
要列出這些隱藏的(或不可見的)檔案,我們必須使用-a選項和ls命令:
$ 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 $
單點 (.) - 這表示當前目錄。
雙點 (..) - 這表示父目錄。
在 Linux 中建立檔案
許多檔案編輯器預裝在 Linux 系統上。我最喜歡的是vim或簡稱vi編輯器,我用它在我的 Ubuntu Linux 系統上建立和更新不同的文字檔案。
因此,讓我們使用vi編輯器在任何 Linux 系統上建立普通檔案。您只需執行以下命令:
$ vi filename
上述命令將開啟一個具有給定檔名檔案。現在,按i鍵進入編輯模式。一旦進入編輯模式,就可以開始在檔案中寫入內容。
讓我們在文字檔案中寫入以下內容:
This is a text file in Linux....I created it using vi text editor..... I'm going to save this content in this file.
完成在檔案中寫入內容後,請執行以下步驟:
按esc鍵退出編輯模式。
同時按Shift + ZZ兩鍵完全退出檔案。
您現在將在當前目錄中建立一個名為filename的檔案。
$ vi filename $
在 Linux 中編輯檔案
您可以使用vi編輯器編輯現有檔案。我們將簡要討論如何開啟現有檔案:
$ vi filename
開啟檔案後,您可以按i鍵進入編輯模式,然後您可以繼續編輯檔案。如果要在此處和檔案內移動,則首先需要按Esc鍵退出編輯模式。之後,您可以使用以下鍵在檔案中移動:
l鍵向右移動。
h鍵向左移動。
k鍵向上移動檔案。
j鍵向下移動檔案。
因此,使用上述鍵,您可以將游標定位在要編輯的任何位置。定位後,您可以使用i鍵進入編輯模式。完成檔案編輯後,按Esc鍵,最後同時按Shift + ZZ兩鍵完全退出檔案。
顯示檔案內容
您可以使用cat命令檢視檔案的內容。以下是如何檢視上面建立的檔案內容的簡單示例:
$ cat filename This is a text file in Linux....I created it using vi text editor..... I'm going to save this content in this file. $
您可以透過使用-b選項以及cat命令來顯示行號,如下所示:
$ cat -b filename 1 This is a text file in Linux....I created it using vi text editor..... 2 I'm going to save this content in this file. $
計算檔案中的單詞數
您可以使用wc命令獲取檔案中包含的總行數、單詞數和字元數。以下是如何檢視上面建立的檔案資訊的簡單示例:
$ wc filename 2 22 116 filename $
以下是所有四列的詳細資訊:
第一列 - 表示檔案中總行數。
第二列 - 表示檔案中總單詞數。
第三列 - 表示檔案中總位元組數。這是檔案的實際大小。
第四列 - 表示檔名。
您可以同時提供多個檔案並獲取有關這些檔案的資訊。以下是簡單的語法:
$ wc filename1 filename2 filename3
在 Linux 中複製檔案
要複製現有檔案,請使用cp Linux 命令。該命令的基本語法為:
$ cp source_file destination_file
以下是如何建立現有檔案filename副本的示例。
$ cp filename copyfile $
您現在將在當前目錄中找到另一個檔案copyfile。此檔案將與原始檔案filename完全相同。
在 Linux 中重新命名檔案
要更改現有檔案的名稱,請使用mv Linux 命令。以下是基本語法:
$ mv old_file new_file
以下程式將現有檔案filename重新命名為newfile。
$ mv filename newfile $
mv命令會將現有檔案完全移動到新檔案。在這種情況下,您只會在當前目錄中找到newfile。
在 Linux 中刪除檔案
要從 Linux 檔案系統中刪除現有檔案,請使用rm命令。以下是基本語法:
$ rm filename
警告 − 檔案可能包含有用資訊。使用此刪除命令時,務必謹慎。最好結合使用-i選項和rm命令。
以下是完全刪除現有檔案filename的示例。
$ rm filename $
您可以使用以下命令一次刪除多個檔案:
$ rm filename1 filename2 filename3 $
建立檔案連結
Linux 提供連結機制,用於從另一個位置訪問檔案。您可以將這些連結視為現有檔案的替代名稱。這些連結可以是符號連結或硬連結。
以下是建立指向 filename 的符號連結的命令:
$ ln -s filename symlink $
以下是建立指向現有檔案的硬連結的命令:
$ ln filename hardlink $
現在您可以檢查您建立的連結了。
$ ls -l total 8 -rw-r--r-- 2 root root 132 May 1 07:18 filename -rw-r--r-- 2 root root 132 May 1 07:18 hardlink lrwxrwxrwx 1 root root 8 May 1 07:17 symlink -> filename $
建立符號連結或硬連結後,您可以使用這些連結訪問原始檔案。您可以使用連結編輯這些檔案,但如果您刪除連結檔案,則原始檔案將保持未刪除且不變。