Linux基础命令之cat使用方法大全

今天在学习部署安装openstack的时候,看到一个关于cat的奇怪用法,可能是本人的才疏学浅没见过这种写法,于是乎查阅资料了一番,并进行了总结,希望也能够帮助有需要的朋友。

以下是我总结的几种常用方式:

1. 最普通用法

   cat /proc/version
   Linux version 2.6.32-5-686 (Debian 2.6.32-38)

等价于:

   cat < /proc/version
   cat /proc/version -n       // &#x663E;&#x793A;&#x884C;&#x53F7;

2. 从键盘创建一个文件
(1)先看个简单的:

   root@localhost:~# cat        // &#x76F4;&#x63A5;&#x8F93;&#x5165;cat&#x547D;&#x4EE4;&#x56DE;&#x8F66;
   hello
   hello
   world
   world

ctrl + D // 结束输入
解释:cat命令从标准输入中读取数据并打印到标准输出, 因此屏幕上看到的2次信息

(2)再看一个扩展的:

   root@localhost:~# cat > file.txt
   hello
   world
   ctrl + D   // &#x76F8;&#x5F53;&#x4E8E;EOF&#x7684;&#x7B26;&#x53F7;
   root@localhost:~# cat file.txt  // &#x67E5;&#x770B;file.txt&#x6587;&#x4EF6;
   hello                           // &#x5C06;&#x4ECE;&#x952E;&#x76D8;&#x8F93;&#x5165;&#x7684;&#x6570;&#x636E;&#x4FDD;&#x5B58;&#x5728;&#x4E86;file.txt&#x4E2D;
   world

解释:cat命令从标准输入读取数据,并未打印到标准输出,而是通过>重定向到文件file.txt,达到了从键盘创建文件的效果
扩展:>符号会将原来文件覆盖(如果存在) 如果想要追加键盘输入的内容, 需要将”>” -> “>>”即可

3. 合并多个文件内容

   root@localhost:~# ls
   root@localhost:~# file1.txt file2.txt
   root@localhost:~# cat file1.txt
   hello
   root@localhost:~# cat file2.txt
   world
   root@localhost:~# cat file1.txt file2.txt > file3.txt        // &#x5408;&#x5E76;2&#x4E2A;&#x6587;&#x4EF6;, &#x591A;&#x4E2A;&#x6587;&#x4EF6;&#x4E5F;&#x662F;&#x4E00;&#x6837;&#x7684;
   root@localhost:~# cat file3.txt
   hello
   world

注:同理可以合并多个文件

4. Here文档
(1) 打印到屏幕

   root@localhost:~# cat <<eof < code></eof>
   > This is here doc.

   > Only used to display.

   > The third line.

   > EOF
   This is here doc.

   Only used to display.

   The third line.

解释:这种方式是将EOF标识符中间的内容输出的标准输出.

(2) 输出到文件(>>可以追加)

   root@localhost:~# cat <<eof> output.txt
</eof>
   > This is here doc.

   > Only used to display.

   > The third line.

   > EOF
   /* &#x67E5;&#x770B; output.txt &#x6587;&#x4EF6; */
   root@localhost:~# cat output.txt
   This is here doc.

   Only used to display.

   The third line.

解释:”EOF”只是个标识符号, 没有特殊意义, 替换为其它都行.

5. 与管道符”|”符合的结合使用
(1) 先看个示例

   root@localhost:~# passwd
   Enter new UNIX password: 123456789   // &#x5B9E;&#x9645;&#x64CD;&#x4F5C;&#x4E2D;&#x8F93;&#x5165;&#x5BC6;&#x7801;&#x662F;&#x4E0D;&#x663E;&#x793A;&#x7684;
   Retype new UNIX password: 123456789
   passwd: password updated successfully

解释:这里需要分2次输入要设置的密码

(2) 使用cat <

   root@localhost:~# cat <<eof | passwd < code></eof>
   > 123456    // &#x8F93;&#x5165;&#x7684;&#x7B2C;&#x4E00;&#x6B21;&#x5BC6;&#x7801;
   > 123456    // &#x8F93;&#x5165;&#x7684;&#x7B2C;&#x4E8C;&#x6B21;&#x5BC6;&#x7801;
   > EOF
   Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully

解释:其它需要动态输入数据的脚本同理可操作.

Original: https://www.cnblogs.com/chenliyang/p/6633749.html
Author: 陈立扬
Title: Linux基础命令之cat使用方法大全

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/18186/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • Java系列 | Linux系统中运行JMeter脚本

    需求场景 在Windows环境下测试,并发数过大,整个主机直接崩掉 依赖说明 在Linux系统中运行JMeter脚本,需要有两个前提 1、Linux系统中配置好Java环境 2、L…

    Linux 2022年8月24日
    084
  • Ubuntu 20.04 LTS安装优麒麟软件中心

    软件中心下载地址:https://www.ubuntukylin.com/applications/41-cn.html bash;gutter:true; smoke@smoke…

    Linux 2022年8月26日
    0206
  • 【亲测有效】Tecnomatix PDPS 软件安装及常见问题!附授权文件

    据说,每个学习 Siemens PLM 仿真的同学,都要先被 TecnoMatix PDPS 软件的安装给折磨过! 经过几天的安装过程,果然,此话不虚~~~ 把自己的安装步骤贴出来…

    Linux 2022年10月18日
    0156
  • [Git系列] 前言

    Git 简介 Git 是一个重视速度的分布式版本控制和代码管理系统,最初是由 Linus Torvalds 为开发 Linux 内核而设计并开发的,是一款遵循二代 GUN 协议的免…

    Linux 2022年9月10日
    0128
  • linux 挂载ntfs usb 出现mount: unknown filesystem type ‘ntfs’

    参考文章 posted @2017-12-19 23:37 ArcerZhang 阅读(499 ) 评论() 编辑 Original: https://www.cnblogs.co…

    Linux 2022年8月20日
    0137
  • linux > 和 >> 、< 区别

    linux中经常会用到将内容输出到某文件当中,只需要在执行命令后面加上>或者>>号即可进入操作。 大于符号:将命令执行的结果(标准输出或错误输出,否则将打印到屏幕…

    Linux 2022年8月8日
    0206
  • Linux-linux 添加命令到bin下面

    # ln -s /usr/local/php7.3/bin/php /usr/bin/php73 Original: https://www.cnblogs.com/jiqing9…

    Linux 2022年8月8日
    0175
  • ubuntu 增加 用户

    1、新建用户user1 sudo useradd -r -m -s /bin/bash user12、设置user1的密码 sudo passwd user1 3、给user1管理…

    Linux 2022年8月26日
    0157
  • qt学习:信号,槽

    [C.GUI.Qt.4编程(第二版)](加)布兰切特,(英)萨默菲尔德.扫描版[学习库www.xuexi111.com].pdf 信号和槽是Qt编程的基础,它可以让各种对象联系在一…

    Linux 2022年8月24日
    0150
  • git常用指令汇总

    注意 : (1) 本地分支默认与远程同名分支建立追踪关系,平时尽量让远程分支名和本地分支名相同; (2) 使用git add 和git commit 后才会创建本地分支 命令汇总 …

    Linux 2022年8月30日
    0159
  • redis 开机启动安装

    先make把环境装上,然后可以选择用utils文件夹下的./install_server.sh命令进行开机启动安装 1、编写redis.conf配置文件 1)、 设置密码,打开re…

    Linux 2022年9月14日
    0126
  • Windows下PowerShell监控Keepalived

    一、 背景 某数据库服务器为CentOS,想要监控Keepalived的VIP是否有问题,通过邮件进行报警,但这台机器不能上外网,现在只能在Windows下通过PowerShell…

    Linux 2022年9月14日
    088
  • 重磅!微信官方恢复了个人红包封面的制作入口,限时开放!!.md

    前两天微信开放了个人红包封面,引起了大家欢呼雀跃~ 可惜……没几个小时,因为一个不可描述的原因,官方小程序下架了…… 但是, 现在好…

    Linux 2022年11月8日
    0111
  • Spring Session Redis

    http://www.infoq.com/cn/articles/Next-Generation-Session-Management-with-Spring-Session Or…

    Linux 2022年9月14日
    0112
  • Linux下对inode和块的理解

    转载https://www.cnblogs.com/whych/p/9315723.html 基本概念 首先讲下inode和块的基本概念。在Linux系统中,文件由元数据和数据块组…

    2022年8月13日
    0146
  • 当保存参数使用结构体时必备的开发技巧方式

    1、前言 想必做嵌入式产品开发都遇到过设备需要保存参数,常用的方式就是按照结构体的方式管理参数,保存时将整个结构体数据保存在 Flash 中,方便下次读取。 1.1、目的 本文时分…

    Linux 2022年10月19日
    0146
最近整理资源【免费获取】:   👉 程序员最新必读书单  | 👏 互联网各方向面试题下载 | ✌️计算机核心资源汇总