第三章-第2讲 掌握文件与目录的操作(part2)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
6
第2讲
子任务4、排序、比较与处理文本内容
ü1.对文件内容进行排序
u把文件中的内容排序输出使用sort命令,其格式为: “sort [-t 分隔符] [-kn1,n2] [-nru] [文件列表]” ,这里的n1 < n2。
7
第2讲
子任务4、排序、比较与处理文本内容
8
第2讲
子任务4、排序、比较与处理文本内容
uuniq命令用于比较同一个文本文件中是否有相邻的行是 重复的,在相邻的重复行中,只显示其中的一行。
u格式为:“uniq [-c] 文件名”,选项-c用来显示该 行重复出现的次数。
17
第2讲
子任务4、排序、比较与处理文本内容
ü6.替换删除字符
utr命令用于替换字符,常用来处理文档中出现的特殊符 号,如^M符号。
22
第2讲 子任务5、查找文件或字符串
23
第2讲 子任务5、查找文件或字符串
u还可以根据文件时间戳进行搜索:“find 路径 -type f 时间戳”。Linux系统的每个文件都有3种时间戳。 v(1)访问时间(-atime/天,-amin/分钟):用户最 近一次访问时间。 v(2)修改时间(-mtime/天,-mmin/分钟):文件最 后一次修改时间。 v(3)变化时间(-ctime/天,-cmin/分钟):文件数 据元(如权限等)最后一次修改时间。
19
第2讲 子任务5、查找文件或字符串
ü1.使用find命令查找文件
ufind命令用来在指定目录下查找文件。其格式为: “find [路径] [选项]”。路径可以是多个,路径之间 用空格隔开。
u查找时,如果不设置任何参数,会递归到子目录。
20
第2讲 子任务5、查找文件或字符串
21
第2讲 子任务5、查找文件或字符串
u这意味着,文件A依赖于文件B而存在,如果删除了文件 B,打开文件A就会报错:“No such file or directory”。这是软链接与硬链接最大的不同:文件A 指向文件B的文件名,而不是文件B的inode号码,文件B 的inode链接数不会因此发生变化。
5
第2讲
子任务3、创建和使用链接文件
u常用的选项有两个:-d,删除某个字符,-d后面跟要删 除的字符;-s,把重复的字符去掉。最常用的就是把小 写变为大写:“tr '[a-z]' '[A-Z]'”。
u替换、删除及去重复都是针对一个字符来讲的,有一定 的局限性;如果针对一个字符串,它们就不再管用了。
18
第2讲
子任务4、排序、比较与处理文本内容
24
第2讲 子任务5、查找文件或字符串
25
第2讲 子任务5、查找文件或字符串
ü2.使用grep命令在文件中查找字符串
ugrep查找文件中包含指定字符串的行,其格式为: “grep [选项] 字符串 文件名”。
u文件名可以使用通配符“*”和“?”,如果要查找的字 符串带空格,可以使用单引号或双引号括起来。
uUNIX/Linux系统允许多个文件名指向同一个inode号码 。这意味着,可以用不同的文件名访问同样的内容;对 文件内容进行修改,会影响到所有文件名;但是删除一 个文件名不影响另一个文件名的访问。这种情况就被称 为“硬链接”(hard link)。
uln命令可以创建硬链接,其格式为:“ln 源文件 目 标文件”。
2
第2讲
子任务3、创建和使用链接文件
u运行上面这条命令以后,源文件与目标文件的inode号 码相同,都指向同一个inode。inode信息中有一项叫作 “链接数”,记录指向该inode的文件名总数,会增加1 。反过来,删除一个文件名,就会使得inode节点中的 链接数减1。当这个值减到0时,表明没有文件名指向这 个inode,系统就会回收这个inode号码,以及其所对应 的block区域。
11
第2讲
子任务4、排序、比较与处理文本内容
12
第2讲
子任务4、排序、比较与处理文c命令用于统计文件的行数、字数和字节数,其使用格 式为:“wc [选项] [文件]”。不带选项的命令将依 次显示统计的行数、字数、字节数和文件名。
13
第2讲
子任务4、排序、比较与处理文本内容
ü4.字符串的截取
ucut 命令从文件的每一行剪切字节、字符和字段并将这 些字节、字符和字段写至标准输出。
u其语法格式为:“cut [-bn] [file]”、“cut [-c] [file]”或“cut [-df] [file]”。
u如果不指定 file 参数,cut 命令将读取标准输入;必 须指定 -b、-c 或 -f 标志之一。
14
第2讲
子任务4、排序、比较与处理文本内容
ü4.字符串的截取
15
第2讲
ü上面的例子中,-b和-c看起来效果一样,这 是为什么?
ü如果遇到双字节字符或多字节字符,使用-n 来和不适用-n显示效果是否有什么不同?请 自行通过实验验证。
16
第2讲
子任务4、排序、比较与处理文本内容
ü5.去除重复的行
9
第2讲
子任务4、排序、比较与处理文本内容
10
第2讲
子任务4、排序、比较与处理文本内容
ü2.比较文本文件的内容
ucmp命令用于比较两个文件的内容是否不同,其格式为 :“cmp [选项] 文件1 文件2”。选项-1用于列出 两个文件的所有差异。默认情况下,在发现第一处差异 后就停止,如果文件相同,则没有反应。
第2讲
第2讲
Linux文件与
目录的创建与管理
(Part 2)
n 创建和使用链接文件(难点) n 文本内容排序、比较与处理(难点) n 查找文件或字符串(重点)
1
第2讲
子任务3、创建和使用链接文件
ü1.创建硬链接
u一般情况下,文件名和inode号码是一一对应的关系, 每个inode号码对应一个文件名。
3
第2讲
子任务3、创建和使用链接文件
4
第2讲
子任务3、创建和使用链接文件
ü2.创建软链接
u除了硬链接以外,还有一种特殊情况,即文件A和文件B 的inode号码虽然不一样,但是文件A的内容是文件B的 路径。读取文件A时,系统会自动将访问者导向文件B。 因此,无论打开哪一个文件,最终读取的都是文件B。 这时,文件A就称为文件B的“软链接”(soft link) 或“符号链接”(symbolic link)。
27
第2讲 子任务5、查找文件或字符串
u用好grep这个工具,其实就是写好正则表达式,精确地 表述要查找的字符串。
28
第2讲 子任务5、查找文件或字符串
29
第2讲 子任务5、查找文件或字符串
ü3.查找指定命令文件的位置
uwhereis命令只能用于程序名的搜索,而且只搜索二进 制文件(参数-b)、man说明文件(参数-m)和源代码 文件(参数-s)。如果省略参数,则返回所有信息。
u创建目录时,默认会生成 “.”和“..”。前者的 inode号码就是当前目录的inode号码,等同于当前目录 的硬链接;后者的inode号码就是父目录的inode号码, 等同于父目录的硬链接。因此,任何一个目录的硬链接 总数总是等于2加上它的子目录总数(含隐藏目录), 这里的2是父目录的硬链接和当前目录的硬链接。
u在使用locate之前先使用“updatedb -v”命令,手动 更新数据库,使用选项-v可以显示数据库更新的过程。
31
第2讲 子任务5、查找文件或字符串
ü4.使用locate命令查找文件
32
第2讲 云架构操作系统基础(李贺华、李腾) 33
udiff命令也用于比较两个文件内容的不同,其格式为: “diff [选项] 源文件 目标文件”。选项-q,仅报 告是否相同,不报告详细的差异;选项-i,忽略大小写 的差异。
udiff命令和cmp命令的区别在于两者比较文件的方式不 同:diff逐行比较,而cmp是以字符为单位进行比较的 。cmp命令在比较二进制文件时更实用。
26
第2讲 子任务5、查找文件或字符串
u在关键字的显示方面,grep可以使用 --color=auto 来 将关键字部分使用颜色显示出来。这是一个很不错的功 能。
u可以在~/.bashrc 内加上这行:“alias grep='grep -color=auto'”,再通过“source ~/.bashrc”来立即 生效,这样每次运行grep都会自动加上颜色显示了。
u命令格式:“whereis [-bms] 文件名”。
30
第2讲 子任务5、查找文件或字符串
ü4.使用locate命令查找文件
u在locatedb数据库文件中搜索满足查询条件的文件,其 格式为:“locate [匹配字符串]”。
ulocate搜索一个数据库(/var/lib/locatedb),这个 数据库中含有本地的所有文件信息。Linux系统自动创 建这个数据库,并且每天自动更新一次,因此使用 locate命令查不到最新变动过的文件。
第2讲
子任务4、排序、比较与处理文本内容
ü1.对文件内容进行排序
u把文件中的内容排序输出使用sort命令,其格式为: “sort [-t 分隔符] [-kn1,n2] [-nru] [文件列表]” ,这里的n1 < n2。
7
第2讲
子任务4、排序、比较与处理文本内容
8
第2讲
子任务4、排序、比较与处理文本内容
uuniq命令用于比较同一个文本文件中是否有相邻的行是 重复的,在相邻的重复行中,只显示其中的一行。
u格式为:“uniq [-c] 文件名”,选项-c用来显示该 行重复出现的次数。
17
第2讲
子任务4、排序、比较与处理文本内容
ü6.替换删除字符
utr命令用于替换字符,常用来处理文档中出现的特殊符 号,如^M符号。
22
第2讲 子任务5、查找文件或字符串
23
第2讲 子任务5、查找文件或字符串
u还可以根据文件时间戳进行搜索:“find 路径 -type f 时间戳”。Linux系统的每个文件都有3种时间戳。 v(1)访问时间(-atime/天,-amin/分钟):用户最 近一次访问时间。 v(2)修改时间(-mtime/天,-mmin/分钟):文件最 后一次修改时间。 v(3)变化时间(-ctime/天,-cmin/分钟):文件数 据元(如权限等)最后一次修改时间。
19
第2讲 子任务5、查找文件或字符串
ü1.使用find命令查找文件
ufind命令用来在指定目录下查找文件。其格式为: “find [路径] [选项]”。路径可以是多个,路径之间 用空格隔开。
u查找时,如果不设置任何参数,会递归到子目录。
20
第2讲 子任务5、查找文件或字符串
21
第2讲 子任务5、查找文件或字符串
u这意味着,文件A依赖于文件B而存在,如果删除了文件 B,打开文件A就会报错:“No such file or directory”。这是软链接与硬链接最大的不同:文件A 指向文件B的文件名,而不是文件B的inode号码,文件B 的inode链接数不会因此发生变化。
5
第2讲
子任务3、创建和使用链接文件
u常用的选项有两个:-d,删除某个字符,-d后面跟要删 除的字符;-s,把重复的字符去掉。最常用的就是把小 写变为大写:“tr '[a-z]' '[A-Z]'”。
u替换、删除及去重复都是针对一个字符来讲的,有一定 的局限性;如果针对一个字符串,它们就不再管用了。
18
第2讲
子任务4、排序、比较与处理文本内容
24
第2讲 子任务5、查找文件或字符串
25
第2讲 子任务5、查找文件或字符串
ü2.使用grep命令在文件中查找字符串
ugrep查找文件中包含指定字符串的行,其格式为: “grep [选项] 字符串 文件名”。
u文件名可以使用通配符“*”和“?”,如果要查找的字 符串带空格,可以使用单引号或双引号括起来。
uUNIX/Linux系统允许多个文件名指向同一个inode号码 。这意味着,可以用不同的文件名访问同样的内容;对 文件内容进行修改,会影响到所有文件名;但是删除一 个文件名不影响另一个文件名的访问。这种情况就被称 为“硬链接”(hard link)。
uln命令可以创建硬链接,其格式为:“ln 源文件 目 标文件”。
2
第2讲
子任务3、创建和使用链接文件
u运行上面这条命令以后,源文件与目标文件的inode号 码相同,都指向同一个inode。inode信息中有一项叫作 “链接数”,记录指向该inode的文件名总数,会增加1 。反过来,删除一个文件名,就会使得inode节点中的 链接数减1。当这个值减到0时,表明没有文件名指向这 个inode,系统就会回收这个inode号码,以及其所对应 的block区域。
11
第2讲
子任务4、排序、比较与处理文本内容
12
第2讲
子任务4、排序、比较与处理文c命令用于统计文件的行数、字数和字节数,其使用格 式为:“wc [选项] [文件]”。不带选项的命令将依 次显示统计的行数、字数、字节数和文件名。
13
第2讲
子任务4、排序、比较与处理文本内容
ü4.字符串的截取
ucut 命令从文件的每一行剪切字节、字符和字段并将这 些字节、字符和字段写至标准输出。
u其语法格式为:“cut [-bn] [file]”、“cut [-c] [file]”或“cut [-df] [file]”。
u如果不指定 file 参数,cut 命令将读取标准输入;必 须指定 -b、-c 或 -f 标志之一。
14
第2讲
子任务4、排序、比较与处理文本内容
ü4.字符串的截取
15
第2讲
ü上面的例子中,-b和-c看起来效果一样,这 是为什么?
ü如果遇到双字节字符或多字节字符,使用-n 来和不适用-n显示效果是否有什么不同?请 自行通过实验验证。
16
第2讲
子任务4、排序、比较与处理文本内容
ü5.去除重复的行
9
第2讲
子任务4、排序、比较与处理文本内容
10
第2讲
子任务4、排序、比较与处理文本内容
ü2.比较文本文件的内容
ucmp命令用于比较两个文件的内容是否不同,其格式为 :“cmp [选项] 文件1 文件2”。选项-1用于列出 两个文件的所有差异。默认情况下,在发现第一处差异 后就停止,如果文件相同,则没有反应。
第2讲
第2讲
Linux文件与
目录的创建与管理
(Part 2)
n 创建和使用链接文件(难点) n 文本内容排序、比较与处理(难点) n 查找文件或字符串(重点)
1
第2讲
子任务3、创建和使用链接文件
ü1.创建硬链接
u一般情况下,文件名和inode号码是一一对应的关系, 每个inode号码对应一个文件名。
3
第2讲
子任务3、创建和使用链接文件
4
第2讲
子任务3、创建和使用链接文件
ü2.创建软链接
u除了硬链接以外,还有一种特殊情况,即文件A和文件B 的inode号码虽然不一样,但是文件A的内容是文件B的 路径。读取文件A时,系统会自动将访问者导向文件B。 因此,无论打开哪一个文件,最终读取的都是文件B。 这时,文件A就称为文件B的“软链接”(soft link) 或“符号链接”(symbolic link)。
27
第2讲 子任务5、查找文件或字符串
u用好grep这个工具,其实就是写好正则表达式,精确地 表述要查找的字符串。
28
第2讲 子任务5、查找文件或字符串
29
第2讲 子任务5、查找文件或字符串
ü3.查找指定命令文件的位置
uwhereis命令只能用于程序名的搜索,而且只搜索二进 制文件(参数-b)、man说明文件(参数-m)和源代码 文件(参数-s)。如果省略参数,则返回所有信息。
u创建目录时,默认会生成 “.”和“..”。前者的 inode号码就是当前目录的inode号码,等同于当前目录 的硬链接;后者的inode号码就是父目录的inode号码, 等同于父目录的硬链接。因此,任何一个目录的硬链接 总数总是等于2加上它的子目录总数(含隐藏目录), 这里的2是父目录的硬链接和当前目录的硬链接。
u在使用locate之前先使用“updatedb -v”命令,手动 更新数据库,使用选项-v可以显示数据库更新的过程。
31
第2讲 子任务5、查找文件或字符串
ü4.使用locate命令查找文件
32
第2讲 云架构操作系统基础(李贺华、李腾) 33
udiff命令也用于比较两个文件内容的不同,其格式为: “diff [选项] 源文件 目标文件”。选项-q,仅报 告是否相同,不报告详细的差异;选项-i,忽略大小写 的差异。
udiff命令和cmp命令的区别在于两者比较文件的方式不 同:diff逐行比较,而cmp是以字符为单位进行比较的 。cmp命令在比较二进制文件时更实用。
26
第2讲 子任务5、查找文件或字符串
u在关键字的显示方面,grep可以使用 --color=auto 来 将关键字部分使用颜色显示出来。这是一个很不错的功 能。
u可以在~/.bashrc 内加上这行:“alias grep='grep -color=auto'”,再通过“source ~/.bashrc”来立即 生效,这样每次运行grep都会自动加上颜色显示了。
u命令格式:“whereis [-bms] 文件名”。
30
第2讲 子任务5、查找文件或字符串
ü4.使用locate命令查找文件
u在locatedb数据库文件中搜索满足查询条件的文件,其 格式为:“locate [匹配字符串]”。
ulocate搜索一个数据库(/var/lib/locatedb),这个 数据库中含有本地的所有文件信息。Linux系统自动创 建这个数据库,并且每天自动更新一次,因此使用 locate命令查不到最新变动过的文件。