今天在学习部署安装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       // 显示行号

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

   root@localhost:~# cat        // 直接输入cat命令回车

   hello

   hello

   world

   world

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

    (2)再看一个扩展的:

   root@localhost:~# cat > file.txt

   hello

   world

   ctrl + D   // 相当于EOF的符号

   root@localhost:~# cat file.txt  // 查看file.txt文件

   hello                           // 将从键盘输入的数据保存在了file.txt中

   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        // 合并2个文件, 多个文件也是一样的

   root@localhost:~# cat file3.txt

   hello

   world

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

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

   root@localhost:~# cat <<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

   > This is here doc.

   > Only used to display.

   > The third line.

   > EOF

   /* 查看 output.txt 文件 */

   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   // 实际操作中输入密码是不显示的

   Retype new UNIX password: 123456789

   passwd: password updated successfully

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

    (2) 使用cat <<EOF可以在方便实现(最重要的是可以在脚本中实现修改密码)

   root@localhost:~# cat <<EOF | passwd

   > 123456    // 输入的第一次密码

   > 123456    // 输入的第二次密码

   > EOF

   Enter new UNIX password: Retype new UNIX password: passwd: password updated successfully

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

  

Linux基础命令之cat使用方法大全的更多相关文章

  1. [转帖]linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令入门到精通+实例讲解+持续更新+命令备忘录+面试复习) https://www.cnblogs.com/caozy/p/9261224.html 总结的挺好的 ...

  2. linux常用命令大全(linux基础命令+命令备忘录+面试复习)

    linux常用命令大全(linux基础命令+命令备忘录+面试复习)-----https://www.cnblogs.com/caozy/p/9261224.html

  3. 第四节,Linux基础命令

    第四节,Linux基础命令 命令是系统操作员对系统传入的指令,传入指令后回车,系统接收到指令做出相应的行为 1.查看用户位于系统什么位置 [pmd]检查操作用户位于系统的什么位置 命令         ...

  4. 【Python之路】第一篇--Linux基础命令

    pwd 命令 查看”当前工作目录“的完整路径 pwd -P # 显示出实际路径,而非使用连接(link)路径:pwd显示的是连接路径 .   表示当前目录 ..  表示上级目录 /  表示根目录 ls ...

  5. linux基础命令一

    linux基础命令一 1.date命令 date命令介绍:显示或者设置系统日期 date命令的语法: 显示日期:date  [options...]  [+FORMAT] FORMAT:为显示日期的格 ...

  6. linux基础命令:

    linux基础命令: 显示 echo 输出我写的内容 ls 查看当前目录的文件 pwd 查看当前目录 ifconfig 查看网卡信息 grep 过滤 -v 取反 -n man 查看命令的帮助信息 md ...

  7. 常用的linux基础命令

    常用的linux基础命令 1.ls 显示目录属性 -l:(也可以简写成ll),列表显示权限等属性 -a:显示所有文件包括隐藏文件等 -d:只列出目录本身 2.chgrp 改变档案所属群组 eg:chg ...

  8. Linux基础命令-文件与目录

    Linux基础命令-文件与目录 参考:<鸟哥linux私房菜>五-七章,17/12/5复习,18/01/15复习 文件权限 rwx421:用户,用户组,其他 umask查看默认权限:000 ...

  9. Linux基础命令回顾

    前言 说到linux基础命令,网上一搜一箩筐,想学也有很多教程,如果你不幸看到此篇文章,想看就认真看完,毕竟你点进来了不是嘛? 我每次写的文章都是为了分享自己的学习成果或重要知识点,希望能帮助更多的人 ...

随机推荐

  1. redis主从 以及认证配置

    以前用redis用的很多,各种数据类型用的飞起,算是用得很溜了.不过那都是封装好的方法,自己直接调用.以前的公司比较规范,开发只是开发,很少去做跟运维相关的事情. 换了一份工作,不过这边项目刚开始起步 ...

  2. Twproject Gantt – 开源的 JavaScript 甘特图组件

    Twproject Gantt 是一款基于 jQuery 开发的甘特图组件,也可以创建其它图表,例如任务树(Task Trees).内置编辑.缩放和 CSS 皮肤等功能.更重要的是,它是免费开源的. ...

  3. 12款支持移动设备的响应式 WordPress 主题

    响应式和现代设计风格的多用途 WordPress 主题与能够非常灵活的适应所有设备.而高级主题能够更大可能性的轻松定制.所有的主题是完全响应式的,您可以从主题选项中启用响应模式. 今天,这个列表收集了 ...

  4. babel 无法解析jsx (webpack react )

    webpack.config.js的配置如下图: 报错: 修改webpack.config.js文件,如下即可:

  5. 【追寻javascript高手之路01】javascript参数知多少?

    前言 我最近在思考一个问题,我本身平时还是积累了不少东西,面试时候问的东西基本逃不出写的博客(当然,高级阶段的就不行了),但是真的被问到时我却不一定答得上来. 知道且能回答,回答的效果都不是很好... ...

  6. 制作CocoaPods依赖库最后步骤修改

    我是看这篇博客http://blog.csdn.net/wzzvictory/article/details/20067595 做的,但是CocoaPods 2015年4月份有了更新,出现了一个tru ...

  7. tableView的footerView下面的颜色修改、限制文本框的输入字数

  8. android加固系列—1.如何检验so文件是否加壳成功

    程序对so文件加壳后,如何验证是否加壳成功呢,首先除了能在应用中正常运行外,还要用IDA来检测: 绿色乱码表示rr这个函数成功加密: 工具下载,可支持动态调试版:

  9. Android studio 如何查看模拟器里面的文件

    1.查看SD卡里面的内容 2.看数据库

  10. 我的BluetoothChat示例源码阅读笔记

    BluetoothChat核心类BluetoothChatService,该类用于管理与其他设备的蓝牙连接和设置.该类包含AcceptThread.ConnectedThread.ConnectThr ...