前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux文件管理(下)

Linux文件管理(下)

原创
作者头像
reload
发布2024-01-29 14:28:16
3160
发布2024-01-29 14:28:16
举报
文章被收录于专栏:Linux运维

上上篇介绍了Linux文件管理的上部分内容,这次继续将 Linux文件管理的剩余部分说完。内容如下。

一、查看文件内容

1、cat 命令

1.1 输出文件内容

基本语法:

代码语言:shell
复制
cat 文件名称

主要功能:正序输出文件的内容。

eg:输出 readme.txt文件的内容(正序)

1.2 合并多个文件内容

基本语法:

代码语言:shell
复制
cat 文件名称1 文件名称2 ... > 合并后的文件名称

主要功能:把文件名称1、文件名称2、...中的内容合并到一个文件中

案例:将1.txt和 2.txt文件内容合并后,输出到 3.txt

代码语言:shell
复制
cat 1.txt 2.txt > 3.txt

特别注意:cat 命令用于查看文件内容时,不论文件内容有多少,都会一次性显示。如果文件非常大,那么文件开头的内容就看不到了。cat 命令适合查看不太大的文件

2、tac 命令

基本语法:

代码语言:shell
复制
tac 文件名称

主要功能:倒序输出文件的内容

eg:输出 readme.txt文件的内容(倒序)

3、head 命令

基本语法:

代码语言:shell
复制
head -n 文件名称

功能:查看一个文件的前n行,如果不指定n ,则默认显示前10行

案例1:查询 readme.txt 文件中的前10行

代码语言:shell
复制
head readme.txt

案例2:查询 readme.txt 文件中的前3行

代码语言:shell
复制
head -3 readme.txt

4、tail 命令

基本语法:

代码语言:shell
复制
tail -n 文件名称

主要功能:查看一个文件的最后n行,如果不指定n ,则默认显示最后10行

案例1:查询 linux.txt文件的最后10行

代码语言:shell
复制
tail linux.txt

案例2:查询 linux.txt文件的最后3行

代码语言:shell
复制
tail -3 linux.txt

5、tail -f 命令

基本语法:

代码语言:shell
复制
tail -f 文件名称

主要功能:动态查看一个文件内容的输出信息 (主要用于将来查询日志文件的变化)

案例:查询系统的 /var/log/messages文件的日志信息

代码语言:shell
复制
tail -f /var/log/messages

注:退出方式可以直接按快捷键: Ctrl+C ,中断操作

6、more分屏显示文件内容(了解)

基本语法:

代码语言:shell
复制
more 文件名称

eg:分屏显示 anaconda-ks.cfg文件内容

代码语言:shell
复制
more anaconda-ks.cfg

more命令拥有一些交互功能,可以通过快捷键来操作这个more的阅读器。

特别注意: more命令在加载文件时并不是一点一点进行加载,而是打开文件时就已经把文件的全部内容加载到内存中了。如果打开文件较大,则可能会出现卡顿情况。

more在读取文件时,默认已经加载文件的全部内容。

早期more命令没有现在这么强大,其只能前进不能后退。

7、less分屏显示文件内容(重点)

基本语法:

代码语言:shell
复制
less 文件名称

特别注意:less命令不是加载整个文件到内存,而是一点一点进行加载,相对而言,读取大文件时,效率比较高

另外: less可以通过上下方向键显示上下内容,退出时不会在Shell中留下刚显示的内容

less 命令的执行也会打开一个交互界面(常用交互命令和more类似)

cat、more、less三者的对比

二、统计文件信息

1、wc命令

基本语法:

代码语言:shell
复制
wc [选项] 文件名称
选项说明:
-l :表示lines, 行数(以回车/换行符为标准)
-W :表示words, 单词数依照空格来判断单词数量
-C :表示bytes, 字节数〈空格,回车,换行)

案例1 : 统计 linux.txt文件的总行数

代码语言:shell
复制
wc -l linux.txt

案例2 : 统计 linux.txt文件中的单词数

代码语言:shell
复制
wc -w linux.txt

案例3 : 统计文件的字节数(注意包括 空格,回车,换行)

代码语言:shell
复制
wc -c linux.txt

扩展: wc 选项 文件的名称,可以统计一个文件的信息,实际情况下,选项还可以一起使用

案例4 : 统计一个文件的总行数、总单词数以及总字节数

代码语言:shell
复制
wc -wlc linux.txt
或
wc -lwc linux.txt
或
wc -clw linux.txt

2、du 命令

基本语法:

代码语言:shell
复制
du [选项] 统计的文件或文件夹
选项说明:
-s : summaries, 只显示汇总的大小,统计文件夹的大小
-h : 以较高的可读性显示文件或文件夹的大小 (KB/MB/GB/TB)

主要功能 : 查看文件或目录(会递归显示子目录) 占用磁盘空间大小

案例1 : 显示 readme.txt文件的大小 (占用磁盘空间,不显示文件大小的单位)

代码语言:shell
复制
du readme.txt

案例2 : 显示 readme.txt文件的大小(占用磁盘空间,显示文件大小的单位)

代码语言:shell
复制
du -h readme.txt

案例3 : 统计 wechat文件夹的大小

代码语言:shell
复制
du -sh wechat

案例4 : 统计 /etc目录的大小

代码语言:shell
复制
du -sh /etc

三、文件处理命令

1、find 命令

基本语法:

代码语言:shell
复制
find 搜索路径 [选项]
选项说明:
-name:指定要搜索文件的名称,支持*星号通配符
-type:代表搜索的文件类型,f代表普通文件,d代表文件夹=>加快检索速度

功能:当我们查找一个文件时,必须使用的一个命令。

案例1:搜索 /var目录中 boot.log文件(普通文件)

代码语言:shell
复制
find /var -name "boot.log" -type f

案例2:全盘搜索ssh目录

代码语言:shell
复制
find / -name "ssh" -type d 

当出现与查找条件相符合的结果不止一个时,可以采用全盘搜索,以查找出所有符合条件的结果。

注:实际工作时,尽量减少全盘检索,因为全盘搜索比较消耗资源

扩展:find实现模糊查询(必须结合通配符)

案例3:搜索 /var/log目录下的所有的以".log"结尾的文件信息

代码语言:shell
复制
find /var/log -name "*.log" -type f

* :通配符,代表任意个任意字符。如*.log代表以.log结尾的文件,apache*代表搜索以apache开头的文件信息。

2、grep命令

基本语法:

代码语言:shell
复制
grep [选项] 要搜索的关键词 搜索的文件名称
选项说明:
-n :代表显示包含关键词的行号信息

单位:行

主要功能:在文件中直接找到包含指定关键词的那些行,并把这些信息高亮显示出来

案例1:在initial-setup-ks.cfg文件中搜索包含关键词"network"的行

代码语言:shell
复制
grep network initial-setup-ks.cfg

案例2:在 initial-setup-ks.cfg文件中搜索包含关键词"network"的行,然后显示行号信息

代码语言:shell
复制
grep -n network initial-setup-ks.cfg

扩展语法:

代码语言:shell
复制
grep 要搜索的关键词 多个文件的名称

主要功能:在多个文件中查找包含指定关键词的那些行,并高亮显示出来

案例3:搜索 /var/log目录下所有文件,找到包含关键词"network"的所有行信息

代码语言:shell
复制
grep network /var/log/*

3、echo命令

基本语法:

代码语言:shell
复制
echo "文本内容"

主要功能:在终端中输入指定的文本内容

案例:在终端中,输出hello world字符串

代码语言:shell
复制
echo "hello world"

4、输出重定向

场景:一般命令的输出都会显示在终端中,有些时候需要将一些命令的执行结果想要保存到文件中进行后续的分析/统计,则这时候需要使用到的输出重定向技术。

> :标准输出重定向 : 覆盖输出,会覆盖掉原先的文件内容

>>:追加重定向 : 追加输出,不会覆盖原始文件内容,会在原始内容末尾继续添加

案例1:把 echo输出的 "hello world"写入到 readme.txt文件中

代码语言:shell
复制
echo "hello world" > readme.txt

以上程序的主要功能代表把echo命令的执行结果,输出写入到 readme.txt文件中,如果 readme.txt文件中存在内容,则首先清空,然后再写入hello world

案例2:把 echo输出的"hello linux"写入到 readme.txt,要求不能覆盖原来的内容

代码语言:shell
复制
echo "hello linux" >> readme.txt

我正在参与2024腾讯技术创作特训营第五期有奖征文,快来和我瓜分大奖!

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 一、查看文件内容
    • 1、cat 命令
      • 1.1 输出文件内容
      • 1.2 合并多个文件内容
    • 2、tac 命令
      • 3、head 命令
        • 4、tail 命令
          • 5、tail -f 命令
            • 6、more分屏显示文件内容(了解)
              • 7、less分屏显示文件内容(重点)
              • 二、统计文件信息
                • 1、wc命令
                  • 2、du 命令
                  • 三、文件处理命令
                    • 1、find 命令
                      • 2、grep命令
                        • 3、echo命令
                          • 4、输出重定向
                          领券
                          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档