ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux重度使用命令详解(科普cat,echo命令)四

2021-10-02 18:59:20  阅读:157  来源: 互联网

标签:文件 Linux echo 命令 gsenterprise cat root


cat和echo命令的使用频率非常高,但有一点需要注意,这两个命令通常是需要结合管道符配合其它的命令才可以体现出这两个命令的强大的哦,说通俗点,也就是这两个命令是基础的命令,并且具有极高的扩展性。

一,cat 命令

cat命令是查看文本文档的命令,这里需要啰嗦一下啦,请注意是文本文档,如果你想使用cat命令打开二进制文件,那么,不好意思,会是乱码哦。二进制文件的查看通常是反编译或者使用strings命令查看二进制文件的某些细节。

cat命令的用途:查看各类配置文件,日志文件获取到有用的信息,通过管道符,将原有文本文件或者新文本内容追加,在脚本内生成指定的配置文件。

如果是单独使用cat命令,那么,我们通常将该命令用在查看某些配置文件,某些服务的日志方面。而对于日志文件,有些时候会是十分巨大的文本文件,如果直接使用cat命令并不是一个好的主意(cat命令逐行读取文件并打印在屏幕上,文件如果很大,会耗费非常多的时间,并且对CPU等硬件也是一个考验啦,因此,大文件的查看通常并不是cat命令而是tail命令哦)。

小结:

别嫌弃我啰嗦,这里做一个简单总结,1,cat命令只是看文本文档文件的命令,二进制文件对于cat命令并不适用(会造成乱码)。

2,cat命令并不适合查看大的文本文件,比如,超过200M大小的日志文件(打开文件会需要非常多的时间,对CPU也是一个极大的考验,因此,大文件的查看通常是用tail 查看最后几行,大概看看得了)



cat命令和管道符的联合应用:

(1)重定向符 > 和>>联合结束分解符EOF(EOF是结束分解符,可以自定义)将全部或者部分文档写入指定文件。例如:

[root@gsenterprise ~]# cat >aaa <<EOF
> wo ai beijing
> beijing bu ai wo
> EOF
[root@gsenterprise ~]# cat aaa
wo ai beijing
beijing bu ai wo

新建一个文本文件名称为aaa,将wo ai beijing beijing bu ai 我 写在这个文件内。如果重定向符更改为 >> 那么,在执行上次的两行内容会保留。

[root@gsenterprise ~]# cat >>aaa <<EOF
wo ai beijing
beijing bu ai wo
EOF

[root@gsenterprise ~]# cat aaa
wo ai beijing
beijing bu ai wo
wo ai beijing
beijing bu ai wo

这一使用方式通常用在脚本内,自动生成配置文件而使用的,比如,某些服务的自启脚本,可以写在安装部署脚本内,通过cat 重定向自动生成。

[root@gsenterprise ~]# cat <<AAAA >aaa 
> bbbbdsfdsfsd
> dsfdsfewwerf
> dwfwefew
> AAAA
[root@gsenterprise ~]# cat > aaa <<BBBB
> 123213213
> 1234325325
> 12443434343434343454
> BBBB
[root@gsenterprise ~]# cat aaa 
123213213
1234325325
12443434343434343454

 注意,一定要注意,EOF只是约定俗成,可以任意自定义的哦,比如,我可以定义AAAA,也可以定义成BBBB,也可以是小写,这些都无所谓,但最好定义成你自己明白的东西,并且必须是一对的。

(2)通过>或者>> 合并文件

这里需要明确一点,任意的文件都可以合并,即使cat后内容我们并不认识,但不影响我们合并文件(虽然这样很可能会无意义)。此种使用方式通常用在合并zip或者rar的分片文件合并成一个完整压缩文件时使用。例如,我在Windows下利用WinRAR切割了一个比较大的rar文件为2份,那么,cat 分文件1,分文件2>总文件。然后再rar x 总文件就可以使用啦。(>> 是覆盖重定向,>是全新重定向,这里在强调一次)

(3)脚本内的逻辑编写纽带

cat命令什么都可以看,虽然有些文件用cat后,它输出的并不是我们能理解的内容,但不影响cat命令的查看功能完成。

比如,我们需要知道现有系统到底是什么系统?

[root@gsenterprise ~]# cat /etc/os-release | grep ^PRETTY |awk -F= '{print $2}'
"CentOS Linux 7 (Core)"

小总结:

cat命令在实际工作中,主要的应用在编辑,生成配置文件,查看配置文件,通过管道符 |grep  提取关键的有用信息,合并分片文件,以及在脚本内传递参数变量这些功能,本文写的十分简单,实际的工作生产中,会由于管道符的配合加入,使得cat命令的应用极为灵活多变,本文只是讲述了一小点内容。

二,echo

echo 是一个专门输出自定义内容以及自定义和内置变量的值的命令,这么说好像有点绕口,不过有过编程学习,就会知道,这个是类似于Python,java这样的编程语言的内置函数print的简化版命令。

(1)echo 自定义内容

[root@gsenterprise ~]# echo 123abc
123abc
[root@gsenterprise ~]# echo '123 abc'
123 abc
[root@gsenterprise ~]# echo "123 {abc}"
123 {abc}

在Linux中,其实自定义内容也就是等于java的字符串,通常加单引号或者双引号,命令执行后返回字符串。在脚本编写进入调试阶段时,通常需要在脚本内echo特定内容以判定脚本是否执行正确。

(2)echo Linux内系统变量

在安装部署时,通常,echo $? 会返回上一条命令执行是否成功,通常,编译安装时,仅凭经验不好判断是否编译正确,比如,make 后,通过echo $? 如果返回数字0表示make 成功,否则失败。

未完待续~~

标签:文件,Linux,echo,命令,gsenterprise,cat,root
来源: https://blog.csdn.net/alwaysbefine/article/details/120583104

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有