一、文件

1、定义

文件是被命名的相关信息的集合体。

2、组成

  • 索引节点(I节点)

系统利用其中的信息对相应文件实施控制和管理,这些信息包括:文件权限、文件主、文件大小、存放位置、创建日期等。

  • 数据

存放文件的实际内容

3、命名

Linux的文件名几乎可以由ASCII字符的任意组合构成,最长可达255个字符。

  • 应避免使用/、空格、制表符或其它控制字符

  • 应避免使用有特殊含义的字符,例如:;、|、<、>、$、!、%、(、)、[、]

  • 文件名区分大小写

  • 以点(.)开头的是隐藏文件

4、通配符

  • *

    • 匹配0个或多个任意字符(不包括以.开头的隐藏文件)

    • .*只匹配隐藏文件

  • ?

    匹配任意单个字符,可以使用多个?

  • []

    匹配括号中列出的字符之一,如果[]中是以!^开头,表示匹配不在括号中出现的字符

二、查看与创建

1、cat

经常用来显示文件的内容,也可以连接两个或多个文件。

  • 格式:cat [OPTION] [FILE]

  • 常用选项

    • -b(–number-noblank)

      从1开始对所有非空输出行进行编号

    • -n(–number)

      从1开始对所有输出行编号

    • -s(–squeeze-blank)

      将多个相邻的空行合并成一个空行

    • -help

      显示该命令的用法

    • 如果没有指定文件或用-代替文件,该命令就读取标准输入

2、more

显示文件内容,每次显示一屏。

  • more -dc file

清屏后显示file的内容,并在屏幕下方显示百分比。

  • more -c -5 file

清屏后显示file的内容,每5行显示一次,使用空格键显示后面的5行,使用回车键单行显示后面的内容。

3、less

分屏显示文件的内容,允许用户向前或向后查看文件。

  • 用法

    less file

  • 翻页

    PageUp:向上;PageDown:向下。

  • 退出

    q、Q、:q、:Q或ZZ

4、head

指定显示文件的前n行,默认显示10行。

常用格式:

  • head -15 file

显示file的前5行

  • head --bytes=- 10 file

显示file文件中去掉最后10个字节后的内容

  • head -v file

同时显示文件名标题

  • head -q file

只显示文件内容,不显示文件名标题

5、tail

指定显示文件的末尾n行,默认显示10行。

常用格式:

  • tail -5 file

显示file的最后5行

  • tail -n +3 file

显示file中第3行到末尾的内容

6、touch

创建一个空文件或修改文件的”修改时间”。

  • touch test.txt

在当前目录下创建一个名为test.txt的空文件

  • touch -m test.txt

将test.txt文件的修改时间改为系统当前时间

7、file

三、统计与查找

1、wc

统计文件中的字节数、字数和行数

  • 格式

wc [选项] [文件]

  • 输出格式

行数 字数 字节数 文件名

  • 常用选项

2、grep

在文本文件中查找并显示包含指定模式的词或短语的所有行,一次只能搜索一个指定的模式。

  • 格式

    • grep [选项] 模式 [文件]

    • grep [选项] [-e模式] [文件]

    • grep [选项] [-f文件] [文件]

      从文件中取模式

  • 常用选项

    • -E:使用正则表达式

      egrep命令等同于grep -E

    • -F

      fgrep命令等同于grep -F,是快速搜索命令,检索固定字符串。

    • -c,--count:只显示文件中包含匹配字符串的行数

    • -i,--ignore-case:匹配时不区分大小写

    • -R,-r,--recursive:以递归方式查找目录下的所有子目录中的文件

    • -n:显示行号

    • -v:显示不包含匹配字符串的行

    • -x:显示整行都严格匹配的行

    • -f,--file=FILE:从文件FILE中获取模式,每行一个

  • 示例

3、sort

对指定文件中的行进行排序,将结果显示在标准输出上。

sort [OPTION]... [FILE]...

  • 常用选项

    • -m,--merge

      对已排好序的文件统一合并,但不排序

    • -c,--check

      检查指定的文件是否已排序,如果没有,则显示错误信息

    • -u,--unique

      -c连用时,严格地按顺序检查;不与-c连用时,对指定文件排序后重复的内容只输出一行

    • -o,--output=FILE

      将排序结果输出到FILE中,如果该文件不存在则创建。

4、uniq

读取输入文件,比较相邻的行,去掉重复的行(保留一行)。

uniq [OPTION]... [INPUT [OUTPUT]]

  • 常用选项

    • -c,--count

      在显示输出时,在行首显示该行在文件中出现的次数

    • -d,--repeated

      只显示重复行

    • -u,--unique

      只显示文件中不重复的行

四、内容比较

1、comm

对两个已排序的文件进行逐行比较

comm [OPTION]... FILE1 FILE2

  • 常用选项

    • -1:不输出仅在FILE1中出现的行

    • -2:不输出仅在FILE2中出现的行

    • -3:不输出在两个文件中都出现的行

    • --help:显示帮助信息并退出

2、diff

逐行比较两个文件,列出它们的不同之处,并且告诉用户,为了使两个文件一致,需要修改哪些行。

  • 常用格式

diff [OPTION]... FILE1 FILE2

  • 输出形式

    其中字母adc之前的行号(n1, n2)是针对FILE1的;之后的行号(n3, n4)是针对文件2的;a表示添加,d表示删除,c表示修改。

    • n1 a n3, n4

      把FILE1的n1行添加到FILE2的n3~n4行,则两个文件内容相同

    • n1, n2 d n3

      把FILE1的n1~n2行以及FILE2的n3行删除,则两个文件内容相同

    • n1, n2 c n3, n4

      把FILE1的n1~n2行改为FILE2的n3~n4行,则两个文件内容相同