- 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 $
创建符号链接或硬链接后,您可以使用这些链接访问原始文件。您可以使用链接编辑这些文件,但如果您删除链接文件,则原始文件将保持未删除且不变。