文件是一些数据的集合,这些数据一般是文本或机器操作码。文件驻留在物理设备上, 如硬盘和 CD-ROM等 目录是文件系统中的一个单元,目录中可以存放文件和目录。文件和目录以层次结构的 方式进行管理。要访问设备上的文件,必须把它的文件系统与指定的目录联系起来,这就是 前面所介绍的安装文件系统 文件系统是操作系统用来存储和管理文件的方法,在 Linux中每个分区都是一个文件系 统,都有自己的目录层次结构。 Linux将这些分属不同分区并且相互独立的文件系统,按 定的方式组织成一个总的目录层次结构,下面通过一系列实例介绍与文件和目录管理相关的 命令。 42.1查看目录与文件内容 认识 Linux目录结构,“/”根目录下的子目录见表4-11 表4-11“〃根目录下的子目录 说明 是 binary的缩写,这个目录下主要存放用户经常使用的命令 /boot 这个目录主要存放着系统的内核以及启动时所需要的文件,比如 Linux内核文件 vmlinuz和核 心解压缩所需的 RAMDISk文件 initrd都在这里,如果安装了gub,这里还会有grub目录 /dev 是 device的缩写,这个目录下存放设备文件,比如 /d ev/hda代表第一块IDE硬盘。正常情况下 每种设备有一个独立的子目录,其中存放这些设备的内容 这个目录下主要存放系统管理所需的配置文件和子目录 用户主目录,用户的个人数据存放在主目录中,比如有个用户zg,他的主目录就是 Thome/ztg 这个目录下主要存放系统最基本的函数库,几乎所有的应用程序都要用到这些函数库 lost found这个目录平时是空的,当系统不正常关机后,这里保存一些文件的片段 用途同mnt,比如挂载U盘等 存放不好归类的东西 可以将别的文件系统临时挂载到这里,比如挂载 Windows硬盘分区 这个目录下主要存和网络相关的文件 这个目录用来安装可选的应用程序 是一个虚拟的目录,由系统运行时产生,是系统内存的映射,可以通过直接访问这个目录来获 取系统信息。注意:这个目录的内容不在硬盘上而是在内存里 超级用户(也叫系统管理员或根用户)的主目录 /sbin 就是 Super User的意思,这个目录下主要存放系统管理员使用的管理程序,其他的还有 elinux全称是 Security Enhanced Linux,使用 selinux的Lix,其安全级别可以达到B级 存放一些服务启动之后需要服务的文件 系统的核心文件,这个目录是26内核的一个很大的变化,该目录下安装了26内核中新出现 的一个系统文件 Sysfs, Sysfs文件系统集成了下面三种文件系统信息:针对进程信息的proc 文件系统、针对设备的dev文件系统、针对伪终端的 devpts文件系统 存放临时文件,需要经常清理,这是除了/soca目录以外一般用户可以使用的一个目录,启 动时系统并不自动删除这里的文件,所以需要经常清理这里的无用文件 是很重要、很庞大的目录,包含系统的主要程序、用户自行安装的程序、图形界面需要的文件 共享的目录与文件、命令程序文件、程序库、手册和其他文件等,这些文件一般不需要修改
文件是一些数据的集合,这些数据一般是文本或机器操作码。文件驻留在物理设备上, 如硬盘和 CD-ROM 等。 目录是文件系统中的一个单元,目录中可以存放文件和目录。文件和目录以层次结构的 方式进行管理。要访问设备上的文件,必须把它的文件系统与指定的目录联系起来,这就是 前面所介绍的安装文件系统。 文件系统是操作系统用来存储和管理文件的方法,在 Linux 中每个分区都是一个文件系 统,都有自己的目录层次结构。Linux 将这些分属不同分区并且相互独立的文件系统,按一 定的方式组织成一个总的目录层次结构,下面通过一系列实例介绍与文件和目录管理相关的 命令。 4.2.1 查看目录与文件内容 认识 Linux 目录结构,“/”根目录下的子目录见表 4-11: 表 4-11 “/”根目录下的子目录 目录 说明 /bin 是 binary 的缩写,这个目录下主要存放用户经常使用的命令 /boot 这个目录主要存放着系统的内核以及启动时所需要的文件,比如 Linux 内核文件 vmlinuz 和核 心解压缩所需的 RAM Disk 文件 initrd 都在这里,如果安装了 grub,这里还会有 grub 目录 /dev 是 device 的缩写,这个目录下存放设备文件,比如/dev/hda 代表第一块 IDE 硬盘。正常情况下, 每种设备有一个独立的子目录,其中存放这些设备的内容 /etc 这个目录下主要存放系统管理所需的配置文件和子目录 /home 用户主目录,用户的个人数据存放在主目录中,比如有个用户 ztg,他的主目录就是/home/ztg /lib 这个目录下主要存放系统最基本的函数库,几乎所有的应用程序都要用到这些函数库 /lost found 这个目录平时是空的,当系统不正常关机后,这里保存一些文件的片段 /media 用途同 mnt,比如挂载 U 盘等 /misc 存放不好归类的东西 /mnt 可以将别的文件系统临时挂载到这里,比如挂载 Windows 硬盘分区 /net 这个目录下主要存和网络相关的文件 /opt 这个目录用来安装可选的应用程序 /proc 是一个虚拟的目录,由系统运行时产生,是系统内存的映射,可以通过直接访问这个目录来获 取系统信息。注意:这个目录的内容不在硬盘上而是在内存里 /root 超级用户(也叫系统管理员或根用户)的主目录 /sbin s 就是 Super User 的意思,这个目录下主要存放系统管理员使用的管理程序,其他的还有 /usr/sbin、/usr/local/sbin /selinux 全称是 Security Enhanced Linux,使用 selinux 的 Linux,其安全级别可以达到 B1 级 /srv 存放一些服务启动之后需要服务的文件 /sys 系统的核心文件,这个目录是 2.6 内核的一个很大的变化,该目录下安装了 2.6 内核中新出现 的一个系统文件 Sysfs,Sysfs 文件系统集成了下面三种文件系统信息:针对进程信息的 proc 文件系统、针对设备的 devfs 文件系统、针对伪终端的 devpts 文件系统 /tmp 存放临时文件,需要经常清理,这是除了/usr/local 目录以外一般用户可以使用的一个目录,启 动时系统并不自动删除这里的文件,所以需要经常清理这里的无用文件 /usr 是很重要、很庞大的目录,包含系统的主要程序、用户自行安装的程序、图形界面需要的文件、 共享的目录与文件、命令程序文件、程序库、手册和其他文件等,这些文件一般不需要修改
包含系统执行过程中的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、 格式化后的手册页以及一些应用程序的数据文件等等。建议单独的放在一个分区 注意 "根目录下的子目录根据不同的 Linux发行版会有所区别;普通用户最好将自己的文件存放 在/home/ user name目录及其子目录下;大多数工具和应用程序安装在/bin、/sbin、Jusr/bin、 /usr/sbin、/usr/11/bin、/usr/ocal/bin等;在不清楚的情况下,不要修改"/"根目录下的内容。 1.ls(list)命令 语法:ls[选项[目录或文件] 功能:对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls将输 出文件名及其他信息。默认情况下,输出条目按字母顺序排序。若未给出目录名或是文件名 时,就显示当前目录的信息。这是用户最常用的一个命令之一,因为用户需要不时地查看某 个目录的内容。使用ls命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可 执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色 表示是其他格式文件。ls命令中各选项及其功能见表4-12 图4-18中,第2条命令的输出结果,每行列出的信息依次是:文件类型与权限,链接 数,文件属主,文件属组,文件大小,建立或最近修改的时间,名字 对于符号链接文件,显示的文件名之后有“→”和引用文件路径名。 对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小 目录中的总块数显示在长格式列表的开头,其中包含间接块。 用ls-1命令显示的信息中,开头是由10个字符构成的字符串,其中第一个字符表示文 件类型,它可以是表4-13所列类型之一。 表4-13文件类型 件类型普通文件块设各文件字符设各文件目录符号链接 后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的 权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表 示对文件的读、写和执行权限,各权限见表4-14 后面的9个字符表示文件的访问权限,分为3组,每组3位。第一组表示文件属主的 权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表 示对文件的读(r)、写(w)和执行权限(x)。对于目录,表示进入权限。s表示当文件被 执行时,把该文件的UID或GD赋予执行进程的UID(用户ID)或GID(组ID)。t表示 设置标志位(留在内存,不被换出)。如果该文件是目录,那么在该目录中的文件只能被超 级用户、目录拥有者或文件属主删除。如果它是可执行文件,那么在该文件执行后,指向其 正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。接着显示的是 文件大小、生成时间、文件或命令名称。 表4-14访问权限 第2步:如图4-19所示,执行带通配符*的ls命令(第2条命令)列出root目录下所
/var 包含系统执行过程中的经常变化的文件,例如打印机、邮件、新闻等假脱机目录、日志文件、 格式化后的手册页以及一些应用程序的数据文件等等。建议单独的放在一个分区 注意: “/”根目录下的子目录根据不同的 Linux 发行版会有所区别;普通用户最好将自己的文件存放 在/home/user_name 目录及其子目录下;大多数工具和应用程序安装在/bin、/sbin、/usr/bin、 /usr/sbin、/usr/X11/bin、/usr/local/bin 等;在不清楚的情况下,不要修改“/”根目录下的内容。 1.ls(list)命令 语法:ls [选项] [目录或文件] 功能:对于每个目录,该命令将列出其中的所有子目录与文件。对于每个文件,ls 将输 出文件名及其他信息。默认情况下,输出条目按字母顺序排序。若未给出目录名或是文件名 时,就显示当前目录的信息。这是用户最常用的一个命令之一,因为用户需要不时地查看某 个目录的内容。使用 ls 命令时会有几种不同的颜色,其中蓝色表示是目录,绿色表示是可 执行文件,红色表示是压缩文件,浅蓝色表示是链接文件,加粗的黑色表示符号链接,灰色 表示是其他格式文件。ls 命令中各选项及其功能见表 4-12。 图 4-18 中,第 2 条命令的输出结果,每行列出的信息依次是:文件类型与权限,链接 数,文件属主,文件属组,文件大小,建立或最近修改的时间,名字。 对于符号链接文件,显示的文件名之后有“→”和引用文件路径名。 对于设备文件,其“文件大小”字段显示主、次设备号,而不是文件大小。 目录中的总块数显示在长格式列表的开头,其中包含间接块。 用 ls - l 命令显示的信息中,开头是由 10 个字符构成的字符串,其中第一个字符表示文 件类型,它可以是表 4-13 所列类型之一。 表 4-13 文件类型 字母 - b c d l p 文件类型 普通文件 块设备文件 字符设备文件 目录 符号链接 命名管道 后面的 9 个字符表示文件的访问权限,分为 3 组,每组 3 位。第一组表示文件属主的 权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表 示对文件的读、写和执行权限,各权限见表 4-14。 后面的 9 个字符表示文件的访问权限,分为 3 组,每组 3 位。第一组表示文件属主的 权限,第二组表示同组用户的权限,第三组表示其他用户的权限。每一组的三个字符分别表 示对文件的读(r)、写(w)和执行权限(x)。对于目录,表示进入权限。s 表示当文件被 执行时,把该文件的 UID 或 GID 赋予执行进程的 UID(用户 ID)或 GID(组 ID)。t 表示 设置标志位(留在内存,不被换出)。如果该文件是目录,那么在该目录中的文件只能被超 级用户、目录拥有者或文件属主删除。如果它是可执行文件,那么在该文件执行后,指向其 正文段的指针仍留在内存。这样再次执行它时,系统就能更快地装入该文件。接着显示的是 文件大小、生成时间、文件或命令名称。 表 4-14 访问权限 字母 r w x 权限 读 写 执行,对于目录,表示进入权限 第 2 步:如图 4-19 所示,执行带通配符*的 ls 命令(第 2 条命令)列出 root 目录下所
有以i开头的目录与文件;执行带选项-a的ls命令(第3条命令)列出root目录下的所有 子目录与文件,包括隐藏文件。其中“.”表示当前目录,“.”表示上一级目录,他们是两 个特殊的目录 2.fle命令 语法:file选项[文件名 功能:通过探测文件内容判断文件类型,使用权限是所有用户。使用fle命令可以知道 某个文件究竟是二进制(ELF格式)的可执行文件,还是 Shell Script文件,或者是其他的什 么格式。file能识别的文件类型有目录、 Shell脚本、英文文本、二进制可执行文件、C语言 源文件、文本文件、DOS的可执行文件。需要说明的是,file命令不能探测包括图形、音频 视频等多媒体文件类型。file命令中各选项及其功能见表4-15。 3.more命令 语法:more选项[文件名] 功能:一页一页的显示,方便用户逐页阅读,而最基本的指令就是按空白键( space) 显示下一页。按【B】键就会显示上一页。按【H】键,查看帮助信息。而且还有查找字串 的功能,“/字符串”查旬字符串所在处。按【Q】键,跳出more状态。more命令的各选项 及其功能见表4-16。 4.less命令 语法:less选项][文件名] 功能:less的作用与more十分相似,也可以用来浏览文本文件的内容,less改进了more 不能回头看的问题,可以简单的使用【 PageUp】键向上翻。来浏览已经看过的部分,同时 因为less并未在一开始就读入整个文件,因此在遇上大型文件的开启时,会比一般的文本编 辑器速度快。less命令的各选项及其功能见表4-17。 5.cat( concatenate)命令 语法:cat选项]文件1文件2 功能:把文件串连接后传到基本输出(显示器或重定向到另一个文件),cat命令的各选 项及其功能见表4-18 注意 cat命令还有对文件的追加与合并功能,在4.2.5节对这些功能进行介绍 6.head命令 语法:head选项[文件名] 功能:显示文件的前几行。该命令的各选项及其功能见表4-19 7.tail命令 语法:tail[选项[文件名] 功能:显示文件的后几行。该命令的各选项及其功能见表4-19 实例49使用cat、head和tal命令
有以 i 开头的目录与文件;执行带选项-a 的 ls 命令(第 3 条命令)列出 root 目录下的所有 子目录与文件,包括隐藏文件。其中“.”表示当前目录,“..”表示上一级目录,他们是两 个特殊的目录。 2.file 命令 语法:file [选项] [文件名] 功能:通过探测文件内容判断文件类型,使用权限是所有用户。使用 file 命令可以知道 某个文件究竟是二进制(ELF 格式)的可执行文件, 还是 Shell Script 文件,或者是其他的什 么格式。file 能识别的文件类型有目录、Shell 脚本、英文文本、二进制可执行文件、C 语言 源文件、文本文件、DOS 的可执行文件。需要说明的是,file 命令不能探测包括图形、音频、 视频等多媒体文件类型。file 命令中各选项及其功能见表 4-15。 3.more 命令 语法:more [选项] [文件名] 功能:一页一页的显示,方便用户逐页阅读,而最基本的指令就是按空白键(space) 显示下一页。按【B】键就会显示上一页。按【H】键,查看帮助信息。而且还有查找字串 的功能,“/字符串”查旬字符串所在处。按【Q】键,跳出 more 状态。more 命令的各选项 及其功能见表 4-16。 4. less 命令 语法:less [选项] [文件名] 功能:less 的作用与 more 十分相似,也可以用来浏览文本文件的内容,less 改进了 more 不能回头看的问题,可以简单的使用【PageUp】键向上翻。来浏览已经看过的部分,同时 因为 less 并未在一开始就读入整个文件,因此在遇上大型文件的开启时,会比一般的文本编 辑器速度快。less 命令的各选项及其功能见表 4-17。 5.cat(concatenate)命令 语法:cat [选项] 文件 1 文件 2…… 功能:把文件串连接后传到基本输出(显示器或重定向到另一个文件),cat 命令的各选 项及其功能见表 4-18。 注意: cat 命令还有对文件的追加与合并功能,在 4.2.5 节对这些功能进行介绍。 6.head 命令 语法:head [选项] [文件名] 功能:显示文件的前几行。该命令的各选项及其功能见表 4-19。 7. tail 命令 语法:tail [选项] [文件名] 功能:显示文件的后几行。该命令的各选项及其功能见表 4-19。 实例 4-9 使用 cat、head 和 tail 命令
42.2文件与目录的创建、复制、删除、转移及重命名 1. mkdir命令 语法: mkdir选项][dr- name 功能:该命令创建由dr-name命名的目录。要求创建目录的用户在当前目录中(dr-name 的父目录中)具有写权限,并且 dir-name不能是当前目录中已有的目录或文件名称。命令 中各选项及其功能见表420。 表4-20 mkdir命令的各选项及其功能 功能 对新建目录设置存取权限,也可以用chd命令设置,例如:#mkdr-m700dr1 p 可以是一个路径名称。此时若路径中的某些目录尚不存在,加上此选项后,系统将自动建立好 些尚不存在的目录,即一次可以建立多个目录 命实例410使用mkdr命令创建目录 2. rmdir命令 语法:rmdr[选项][ dir-name] 功能:删除空目录,dir-name表示目录名。该命令从一个目录中删除一个或多个子目录 项。需要特别注意的是,一个目录被删除之前必须是空的。#rm-rdr-name命令可代替mdir, 但是有危险性。删除某个目录时也必须具有对父目录的写权限。 rmdir命令选项及其功能见 表4-21。 表4-21 rmdir命令选项及其功能 递归删除目录dir-name,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除 或者由于某种原因保留部分路径,则系统在标准输出上显示相应的信息 妒实例411使用 rmdir命令删除目录 3.cd命令 语法: cd [dir-name 功能:改变工作目录。该命令将当前目录改变至 dir-name所指定的目录。若没有指定 dir-name,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和 读权限。 4.mv命令 语法:mv选项[源文件或目录][目标文件或目录] 功能:该命令可以为文件或目录改名或将文件由一个目录移入另一个目录中。视mv命 令中第2个参数类型的不同(是目标文件还是目标目录),mv命令将文件重命名或将其移至 个新的目录中。当第2个参数类型是文件时,mv命令完成文件重命名,此时,源文件只 能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当 第2个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv命令将各参数指定 的源文件均移至目标目录中。在跨文件系统移动文件时,mⅴ先复制,再将原有文件删除
4.2.2 文件与目录的创建、复制、删除、转移及重命名 1.mkdir 命令 语法:mkdir [选项] [dir-name] 功能:该命令创建由 dir-name 命名的目录。要求创建目录的用户在当前目录中(dir-name 的父目录中)具有写权限,并且 dir-name 不能是当前目录中已有的目录或 文件名称。命令 中各选项及其功能见表 4-20。 表 4-20 mkdir 命令的各选项及其功能 选项 功能 -m 对新建目录设置存取权限,也可以用 chmod 命令设置,例如:#mkdir -m 700 dir1 -p 可以是一个路径名称。此时若路径中的某些目录尚不存在, 加上此选项后, 系统将自动建立好 那些尚不存在的目录,即一次可以建立多个目录 实例 4-10 使用 mkdir 命令创建目录 2.rmdir 命令 语法:rmdir [选项] [dir-name] 功能:删除空目录,dir-name 表示目录名。该命令从一个目录中删除一个或多个子目录 项。需要特别注意的是,一个目录被删除之前必须是空的。#rm -r dir-name 命令可代替 rmdir, 但是有危险性。删除某个目录时也必须具有对父目录的写权限。rmdir 命令选项及其功能见 表 4-21。 表 4-21 rmdir 命令选项及其功能 选项 功能 - p 递归删除目录 dir-name,当子目录删除后其父目录为空时,也一同被删除。如果整个路径被删除 或者由于某种原因保留部分路径,则系统在标准输出上显示相应 的信息 实例 4-11 使用 rmdir 命令删除目录 3.cd 命令 语法:cd [dir-name] 功能:改变工作目录。该命令将当前目录改变至 dir-name 所指定的目录。若没有指定 dir-name,则回到用户的主目录。为了改变到指定目录,用户必须拥有对指定目录的执行和 读权限。 4.mv 命令 语法:mv [选项] [源文件或目录] [目标文件或目录] 功能:该命令可以为文件或目录改名或将文件由一个目录移入另一个目录中。视 mv 命 令中第 2 个参数类型的不同(是目标文件还是目标目录),mv 命令将文件重命名或将其移至 一个新的目录中。当第 2 个参数类型是文件时,mv 命令完成文件重命名,此时,源文件只 能有一个(也可以是源目录名),它将所给的源文件或目录重命名为给定的目标文件名。当 第 2 个参数是已存在的目录名称时,源文件或目录参数可以有多个,mv 命令将各参数指定 的源文件均移至目标目录中。在跨文件系统移动文件时,mv 先复制,再将原有文件删除
而链至该文件的链接也将丢失。如果所给目标文件(不是目录)已存在,此时该文件的内容 将被新文件覆盖。为防止用户用mv命令破坏另一个文件,使用mv命令移动文件时,最好 使用i选项。命令中各选项及其功能见表4-22 5.rm命令 语法:rm[选项[文件或目录] 功能:用户可以用m命令删除不需要的文件。该命令的功能为删除一个目录中的一个 或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件, 只是断开了链接,原文件保持不变。如果没有使用-r选项,则rm不会删除目录。使用rm 命令要小心。因为一旦文件被删除,它是不能被恢复的。了防止这种情况的发生,可以使用 i选项来逐个确认要删除的文件。如果用户输入y,文件将被删除。如果输入仼何其他东西, 文件则不会删除。该命令的各选项及其功能见表4-23 6.cp命令 语法:cp[选项][源文件或目录][目标文件或目录] 功能:该命令的功能是将给出的文件或目录复制到另一文件或目录中,功能十分强大。 需要说明的是,为防止用户在不经意的情况下用cp命令破坏另一个文件,如用户指定的目 标文件名已存在,用cp命令复制文件后,这个文件就会被新源文件覆盖,因此,建议用户 在使用φp命令复制文件时,最好使用i选项。该命令的各选项及其功能见表4-24 42.3文件内容统计命令 1.we( word characters)命令 语法:w选项][文件名 功能:统计文件中的文件行数、字数和字符数。该命令的各选项及其功能见表4-25。 表425we命令的各选项及其功能 选项 统计文件的字符数 N统计文件的字数 统计文件的行数 42.4搜索命令 1. whereis命令 语法: whereis[文件名 功能:用来査找可执行程序、源程序和使用手册。该命令的各选项及其功能见表4-26 表4-26 whereis命令的各选项及其功能
而链至该文件的链接也将丢失。如果所给目标文件(不是目录)已存在,此时该文件的内容 将被新文件覆盖。为防止用户用 mv 命令破坏另一个文件,使用 mv 命令移动文件时,最好 使用 i 选项。命令中各选项及其功能见表 4-22。 5.rm 命令 语法:rm [选项] [文件或目录] 功能:用户可以用 rm 命令删除不需要的文件。该命令的功能为删除一个目录中的一个 或多个文件或目录,它也可以将某个目录及其下的所有文件及子目录均删除。对于链接文件, 只是断开了链接,原文件保持不变。如果没有使用-r 选项,则 rm 不会删除目录。使用 rm 命令要小心。因为一旦文件被删除,它是不能被恢复的。了防止这种情况的发生,可以使用 i 选项来逐个确认要删除的文件。如果用户输入 y,文件将被删除。如果输入任何其他东西, 文件则不会删除。该命令的各选项及其功能见表 4-23。 6.cp 命令 语法:cp [选项] [源文件或目录] [目标文件或目录] 功能:该命令的功能是将给出的文件或目录复制到另一文件或目录中,功能十分强大。 需要说明的是,为防止用户在不经意的情况下用 cp 命令破坏另一个文件,如用户指定的目 标文件名已存在,用 cp 命令复制文件后,这个文件就会被新源文件覆盖,因此,建议用户 在使用 cp 命令复制文件时,最好使用 i 选项。该命令的各选项及其功能见表 4-24。 4.2.3 文件内容统计命令 1.wc(word characters)命令 语法:wc [选项] [文件名] 功能:统计文件中的文件行数、字数和字符数。该命令的各选项及其功能见表 4-25。 表 4-25 wc 命令的各选项及其功能 选项 功能 选项 功能 -c 统计文件的字符数 -w 统计文件的字数 -l 统计文件的行数 4.2.4 搜索命令 1.whereis 命令 语法:whereis [文件名] 功能:用来查找可执行程序、源程序和使用手册。该命令的各选项及其功能见表 4-26。 表 4-26 whereis 命令的各选项及其功能
只在设置的目录下查找说明文件 只在设置的目录下查找二进制文件 不显示文件名前的路径名称 只在设置的目录下查找源代码文件 查找不包含指定类型的文 2.find命令 语法:find[起始目录][查找条件][操作或fnd[path] options] expression] 功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件, 功能很强大。该命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足査找条件 的文件并对之采取相关的操作 3. locate命令 语法:[选项][文件名] 功能: locate也是一个查找文件的工具, locate命令用于查找文件,它比fnd命令的搜 索速度快,它需要一个数据库,这个数据库由每天的例行工作程序( crontab)来建立。当建 立好这个数据库后,就可以方便地来查找所需文件了。 locate让用户可以很快速的查找文件 系统内是否有指定的文件。其方法是先建立一个包括系统内所有文件名称及路径的资料库 之后当査找时就只需查询这个资料库,而不必实际深入文件系统之中了。在一般的发行版之 中,资料库的建立都被放在 conta中自动执行。一般用户在使用时只要用# locate I文件名 的形式就可以了。该命令的各选项及其功能见表429。 4.grep( Global Regular Expression Print)命令 语法:grep[选项][查找模式][文件名1,文件名2,…-… 功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。grep命令以指定 模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有 包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep命令一次只能搜索 一个指定的模式;grep命令有一组选项,利用这些选项可以改变其输出方式。例如,可以在 搜索到的文本行上加入行号,或者只输出文本行的行号,或者输出所有与搜索模式不匹配的 文本行,或只简单地输出已搜索到指定模式的文件名,并且可以指定在查找模式时忽略大小 写。grep命令的各选项及其功能见表4-30。 表4-30grep命令的各选项及其功能 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 只显示匹配行的数量 e expression指定检索使用的模式。用于防止以“”开头的模式被解释为命令选项 每个模式作为一个扩展的正则表达式对待 从 expire文件中获取要搜索的模式,一个模式占一行 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式 在查找多个文件时,指示grep不要将文件名加入到输出之前 比较时不区分大小写,只适用于单字符 查询多文件时只输出包含匹匹配串的文件名,当在某文件中多次出现匹配串时,不重复 显示匹配行及行号(文件首行行号为1) 不显示不存在或无匹配串的错误信息 只显示不包含匹配串的行,找出模式失配的行 只显示整行严格匹配的行 grep命令的查找模式中正则表达式的主要参数及其功能见表4-31
选项 功能 选项 功能 -b 只查找二进制文件 -M 只在设置的目录下查找说明文件 -B 只在设置的目录下查找二进制文件 -s 只查找源代码文件 -f 不显示文件名前的路径名称 -S 只在设置的目录下查找源代码文件 -m 只查找说明文件 -u 查找不包含指定类型的文件 2.find 命令 语法:find [起始目录] [查找条件] [操作] 或 find [path] [options] [expression] 功能:在目录结构中搜索文件,并执行指定的操作。此命令提供了相当多的查找条件, 功能很强大。该命令从指定的起始目录开始,递归地搜索其各个子目录,查找满足查找条件 的文件并对之采取相关的操作。 3.locate 命令 语法:[选项] [文件名] 功能:locate 也是一个查找文件的工具,locate 命令用于查找文件,它比 find 命令的搜 索速度快,它需要一个数据库,这个数据库由每天的例行工作程序(crontab)来建立。当建 立好这个数据库后,就可以方便地来查找所需文件了。locate 让用户可以很快速的查找文件 系统内是否有指定的文件。其方法是先建立一个包括系统内所有文件名称及路径的资料库, 之后当查找时就只需查询这个资料库,而不必实际深入文件系统之中了。在一般的发行版之 中,资料库的建立都被放在 contab 中自动执行。一般用户在使用时只要用# locate [文件名] 的形式就可以了。该命令的各选项及其功能见表 4-29。 4.grep(Global Regular Expression Print)命令 语法:grep [选项] [查找模式] [文件名 1,文件名 2,……] 功能:逐行搜索所指定的文件或标准输入,并显示匹配模式的每一行。grep 命令以指定 模式搜索文件,并通知用户在什么文件中搜索到与指定的模式匹配的字符串,并打印出所有 包含该字符串的文本行,在该文本行的最前面是该行所在的文件名。grep 命令一次只能搜索 一个指定的模式;grep 命令有一组选项,利用这些选项可以改变其输出方式。例如,可以在 搜索到的文本行上加入行号,或者只输出文本行的行号,或者输出所有与搜索模式不匹配的 文本行,或只简单地输出已搜索到指定模式的文件名,并且可以指定在查找模式时忽略大小 写。grep 命令的各选项及其功能见表 4-30。 表 4-30 grep 命令的各选项及其功能 选项 功能 -b 在输出的每一行前显示包含匹配字符串的行在文件中的字节偏移量 -c 只显示匹配行的数量 -e expression 指定检索使用的模式。用于防止以“-”开头的模式被解释为命令选项 -E 每个模式作为一个扩展的正则表达式对待 -f expfile 从 expfile 文件中获取要搜索的模式,一个模式占一行 -F 每个模式作为一组固定字符串对待(以新行分隔),而不作为正则表达式 -h 在查找多个文件时,指示 grep 不要将文件名加入到输出之前 -i 比较时不区分大小写,只适用于单字符 -l 查询多文件时只输出包含匹匹配串的文件名,当在某文件中多次出现匹配串时,不重复 显示此文件名 -n 显示匹配行及行号(文件首行行号为 1) -s 不显示不存在或无匹配串的错误信息 -v 只显示不包含匹配串的行,找出模式失配的行 -x 只显示整行严格匹配的行 grep 命令的查找模式中正则表达式的主要参数及其功能见表 4-31
表4-31正则表达式的主要参数及其功能 参数功能 忽略正则表达式中特殊字符的原有含义 匹配行的开始,如:“^grep”匹配所有以grep开头的行 匹配行的结束,如:“ grepS”匹配所有以grep结尾的行 从匹配正则表达式的行开始,锚定单词的开始,如:“ k<grep”匹配包含以grep开头的单词 的行 到匹配正则表达式的行结束,锚定单词的结束,如:“grep”匹配包含以grep结尾的单词 字符范围,如:“[ Good”匹配Good和good,如:“[e-glod”匹配eood、food和good 匹配一个不在指定范围内的字符,如:“^a-th-zrep”匹配不包含af和h-z字母开头,紧跟 任意单个字符 匹配零个或多个字符 单词锁定符,如:“ bgood\b”只匹配good xm}重复字符x,m次,如:“x{6}”匹配包含6个x的行 x{m}重复字符x,至少m次,如:“x6,”匹配至少有6个x的行 x{mn|重复字符x,至少m次,不多于n次,如:“x610}”匹配6-10个x的行 匹配字母和数字字符,也就是[AZa-0-9,如:“Gw*d”匹配以G后跟零个或多个字母或 数字字符,然后是d W Ww的反置形式,匹配一个或多个非字母和数字字符,如点号句号等 实例417使用grep命令 例1:#grep#httpd.conf搜索httpdconf文件中包含#的行 例2:#grep-v#httpd.conf搜索httpd.conf文件中不包含#的行 例3:#ls-|grep"d"通过管道过滤ls4输出的内容,只显示以d开头的行,也就 是只显示当前目录中的目录(查询子目录)。 例4:# grep exam'f搜索当前目录中所有以f开头的文件中包含exam的行。 例5:# grep'exam'fI f2f3搜索当前目录中在f、n2、f文件中匹配exam的行。 例6:#grep|acN3f搜索当前目录中在f文件中所有包含a、bbb或cc字符 串的行。 例7:#grep-n"*fl搜索当前目录中在f文件中含有*字符的行,并显示行号 42.5文件的追加、合并、比较与排序 1.cat( concatenate,连锁)命令 语法:cat选项]文件1文件2 功能:把文件串连接后传到基本输出(显示器或重定向到另一个文件),cat命令还有对 文件的追加与合并功能,cat命令的各选项及其功能见表4-32。 表4-32cat命令的各选项及其功能
表 4-31 正则表达式的主要参数及其功能 参数 功能 \ 忽略正则表达式中特殊字符的原有含义 ^ 匹配行的开始,如:“^grep”匹配所有以 grep 开头的行 $ 匹配行的结束,如:“grep$”匹配所有以 grep 结尾的行 \ 到匹配正则表达式的行结束,锚定单词的结束,如:“grep\>”匹配包含以 grep 结尾的单词 的行 [ ] 字符范围,如:“[Gg]ood”匹配 Good 和 good,如:“[e-g]ood”匹配 eood、food 和 good [^] 匹配一个不在指定范围内的字符,如:“[^a-fh-z]rep”匹配不包含 a-f 和 h-z 字母开头,紧跟 grep 的行 . 任意单个字符 * 匹配零个或多个字符 \b 单词锁定符,如:“\bgood\b”只匹配 good x\{m\} 重复字符 x,m 次,如:“x\{6\}”匹配包含 6 个 x 的行 x\{m,\} 重复字符 x,至少 m 次,如:“x\{6,\}”匹配至少有 6 个 x 的行 x\{m,n\} 重复字符 x,至少 m 次,不多于 n 次,如:“x\{6,10\}”匹配 6-10 个 x 的行 \w 匹配字母和数字字符,也就是[A-Za-z0-9],如:“G\w*d”匹配以 G 后跟零个或多个字母或 数字字符,然后是 d \W \w 的反置形式,匹配一个或多个非字母和数字字符,如点号句号等 实例 4-17 使用 grep 命令 例 1:# grep '#' httpd.conf 搜索 httpd.conf 文件中包含#的行。 例 2:# grep -v '#' httpd.conf 搜索 httpd.conf 文件中不包含#的行。 例 3:# ls -l | grep '^d' 通过管道过滤 ls -l 输出的内容,只显示以 d 开头的行,也就 是只显示当前目录中的目录(查询子目录)。 例 4:# grep 'exam' f* 搜索当前目录中所有以 f 开头的文件中包含 exam 的行。 例 5:# grep 'exam' f1 f2 f3 搜索当前目录中在 f1、f2、f3 文件中匹配 exam 的行。 例 6:# grep '[a-c]\{3\}' f1 搜索当前目录中在 f1 文件中所有包含 aaa、bbb 或 ccc 字符 串的行。 例 7:# grep -n '\*' f1 搜索当前目录中在 f1 文件中含有*字符的行,并显示行号。 4.2.5 文件的追加、合并、比较与排序 1.cat(concatenate,连锁)命令 语法:cat [选项] 文件 1 文件 2…… 功能:把文件串连接后传到基本输出(显示器或重定向到另一个文件),cat 命令还有对 文件的追加与合并功能,cat 命令的各选项及其功能见表 4-32。 表 4-32 cat 命令的各选项及其功能 选项 功能
b,- number- nonblank和-n相似,但是不对空白行编号 s,- squeeze-blank当遇到有连续两行以上的空白行时就替换为一个空白行 妒实例418使用cat命令合并文件、向文件追加内容 2.echo命令 语法:echo[-ne[字符串或环境变量]或echo[- helpIN[- version 功能:在显示器上显示一段文字,一般起到一个提示的作用。 其中选项n表示输出文字后不换行:字符串可以加引号,也可以不加引号。用echo命 令输出加引号的字符串时,将字符串原样输出:用echo命令输出不加引号的字符串时,将 字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。 如果使用选项-e,那么字符串中出现表433中的字符时,将特别加以处理,而不会将 他们作为一般的文字进行输出 表4-33特殊字符及其功能 字符功能 字符功能 发出警告声 光标移至行首,但不换行 abdf 删除前一个字符 最后不加上换行符号 与相同 换行但光标仍旧停留在原来的位置 插入字符 换行且光标移至行首 插入nnn(八进制)所代表的ASCI字符 3.dif( difference)命令 语法:diff选项] filel file2 功能:比较文件的差异,显示两文件的不同之处,df'以逐行的方式,比较文本文件的 异同。若指定要比较目录,则di会比较目录中相同文件名的文件,但不会比较其中子目录, 比如命令“df/ home/ztg exam. txt”把home/g目录中名为 exam txt的文件与当前目录中的 exam. txt文件进行比较。如果用“-”表示 filel或fie2,则表示标准输入。该命令的各选项 及其功能见表4-34 命实例420使用dm命令 df命令的简单举例如图423所示。文件 exam l. txt、exam2tt和exam3txt的内容如图 4-34、435所示
-n,--number 由 1 开始对所有输出的行编号 -b,--number-nonblank 和-n 相似,但是不对空白行编号 -s,--squeeze-blank 当遇到有连续两行以上的空白行时就替换为一个空白行 实例 4-18 使用 cat 命令合并文件、向文件追加内容 2.echo 命令 语法:echo [-ne] [字符串或环境变量] 或 echo [--help][--version] 功能:在显示器上显示一段文字,一般起到一个提示的作用。 其中选项-n 表示输出文字后不换行;字符串可以加引号,也可以不加引号。用 echo 命 令输出加引号的字符串时,将字符串原样输出;用 echo 命令输出不加引号的字符串时,将 字符串中的各个单词作为字符串输出,各字符串之间用一个空格分割。 如果使用选项-e,那么字符串中出现表 4-33 中的字符时,将特别加以处理,而不会将 他们作为一般的文字进行输出。 表 4-33 特殊字符及其功能 字符 功能 字符 功能 \a 发出警告声 \r 光标移至行首,但不换行 \b 删除前一个字符 \t 插入tab \c 最后不加上换行符号 \v 与\f相同 \f 换行但光标仍旧停留在原来的位置 \\ 插入\字符 \n 换行且光标移至行首 \nnn 插入nnn(八进制)所代表的ASCII字符 3.diff(difference)命令 语法:diff [选项] file1 file2 功能:比较文件的差异,显示两文件的不同之处,diff 以逐行的方式,比较文本文件的 异同。若指定要比较目录,则 diff 会比较目录中相同文件名的文件,但不会比较其中子目录, 比如命令“diff /home/ztg exam.txt”把/home/ztg 目录中名为 exam.txt 的文件与当前目录中的 exam.txt 文件进行比较。如果用“-”表示 file1 或 fiie2,则表示标准输入。该命令的各选项 及其功能见表 4-34。 实例 4-20 使用 diff 命令 diff 命令的简单举例如图 4-23 所示。文件 exam1.txt、exam2.txt 和 exam3.txt 的内容如图 4-34、4-35 所示
rootolocalhost txtfile]# diff c examl. txt exam. txt H examI,txt2008-05-2818:12:12.000000000+0800 xam3.txt2008-05-2818:12:10.000000000+0800 exam111111111111111 exam2222222222222222222 xam33333333333333333333 rootolocalhost txtfilef diff exam. txt exams. txt [rootalocalhost txtfilelf diff examl. txt exams.txt 1a2,3 图4-37使用dt命令 通常输出由下述形式的行组成 nl an3 n4 nl.n2 d n3 nl n2 c n3. n4 字母a、d和c分别表示附加、删除和修改操作。字母(a、d和c)之前的行号(n1 n2)是针对flel的,其后面的行号(n3,n4)是针对file2的 在上述形式的每一行的后面跟随受到影响的若干行,以“”打头的行属于第2个文件。 4.cmp( compare)命令 语法:cmp[-][-s] filel file2 功能:显示两文件不同之处的信息。该命令的各选项及其功能见表4-35。 表4-35cmp命令的各选项及其功能 给出两文件不同的字节数 不显示两文件的不同处,给出比较结果 42.6文件的链接 语法:n[ options]源文件[链接名] 功能:为文件建立在其他路径中的访问方法(链接)。该命令的各选项及其功能见表436 链接有两种:硬链接和符号链接,默认情况下,ln命令产生硬链接 1.硬链接( Hard Link) 硬连接是指通过索引节点来进行的连接。在 Linux的文件系统中,保存在磁盘分区中的 文件不管是什么类型,都给它分配一个编号,称为索引节点号( Inode Index)。在 Linux中, 多个文件名可以指向同一个索引节点,一般这种连接就是硬连接。硬连接的作用是允许一个 文件拥有多个有效的路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”,因 为指向同一个索引节点的连接有一个以上时,删除一个连接并不影响索引节点本身和其他的
图4-37 使用diff命令 通常输出由下述形式的行组成: n1 a n3,n4 n1,n2 d n3 n1,n2 c n3,n4 字母 a、d 和 c 分别表示附加、删除和修改操作。字母(a、d 和 c)之前的行号(n1, n2)是针对 file1 的,其后面的行号(n3,n4)是针对 file2 的。 在上述形式的每一行的后面跟随受到影响的若干行,以“<”打头的行属于第 1 个文件, 以“>”打头的行属于第 2 个文件。 4.cmp(compare)命令 语法:cmp [-l] [-s] file1 file2 功能:显示两文件不同之处的信息。该命令的各选项及其功能见表 4-35。 表 4-35 cmp 命令的各选项及其功能 选项 功能 -l 给出两文件不同的字节数 -s 不显示两文件的不同处,给出比较结果 4.2.6 文件的链接 语法:ln [options] 源文件 [链接名] 功能:为文件建立在其他路径中的访问方法(链接)。该命令的各选项及其功能见表 4-36。 链接有两种:硬链接和符号链接,默认情况下,ln 命令产生硬链接。 1.硬链接(Hard Link) 硬连接是指通过索引节点来进行的连接。在 Linux 的文件系统中,保存在磁盘分区中的 文件不管是什么类型,都给它分配一个编号,称为索引节点号(Inode Index)。在 Linux 中, 多个文件名可以指向同一个索引节点,一般这种连接就是硬连接。硬连接的作用是允许一个 文件拥有多个有效的路径名,这样用户就可以建立硬连接到重要文件,以防止“误删”,因 为指向同一个索引节点的连接有一个以上时,删除一个连接并不影响索引节点本身和其他的
连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放,文件才会被 真正删除 注意 不能够对目录创建硬链接;只有在同_文件系统中的文件之间才能创建硬 2.符号链接( Symbolic Link 与硬连接相对应, Linux系统中还存在另一种连接,称为符号链接( Symbilc Link),也 称为软链接。软链接文件有点类似于 Windows的快捷方式。它实际上是特殊文件的一种, 在符号链接中,文件实际上是一个文本文件,其中包含有另一个文件的位置信息。符号链接 可以是链接任意的文件或目录,可以链接不同文件系统的文件。在对符号链接文件进行读写 操作时,系统会自动把该操作转换为对源文件的操作,但是删除链接文件时,系统仅仅删除 链接文件,而不删除源文件本身
连接,只有当最后一个连接被删除后,文件的数据块及目录的连接才会被释放,文件才会被 真正删除。 注意: 不能够对目录创建硬链接;只有在同一文件系统中的文件之间才能创建硬链接。 2.符号链接(Symbolic Link) 与硬连接相对应,Linux 系统中还存在另一种连接,称为符号链接(Symbilc Link),也 称为软链接。软链接文件有点类似于 Windows 的快捷方式。它实际上是特殊文件的一种。 在符号链接中,文件实际上是一个文本文件,其中包含有另一个文件的位置信息。符号链接 可以是链接任意的文件或目录,可以链接不同文件系统的文件。在对符号链接文件进行读写 操作时,系统会自动把该操作转换为对源文件的操作,但是删除链接文件时,系统仅仅删除 链接文件,而不删除源文件本身