今天在学习部署安装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. Java--如何使用sun.misc.Unsafe完成compareAndSwapObject原子操作

    package com; import sun.misc.Unsafe; import java.lang.reflect.Field; /** * Created by yangyu on 16/1 ...

  2. mongodb数据库备份导入导出数据

    备份数据: mongodump -h 192.168.2.20 -u game -p 12345678 -d dbname -o /data/test/ --excludeCollection=use ...

  3. Guava学习笔记:简化异常处理的Throwables类

    有时候, 当我们我们捕获异常, 并且像把这个异常传递到下一个try/catch块中.Guava提供了一个异常处理工具类, 可以简单地捕获和重新抛出多个异常.例如: import java.io.IOE ...

  4. 由一条Linux的grep命令说起

    今天在开发的时候,看到同事使用了这样的一条linux命令 grep 'class YourClass' -rwi * |grep -v svn 想到了 grep命令的,几个参数. -r 明确要求搜索子 ...

  5. B树详解

    B树 具体讲解之前,有一点,再次强调下:B-树,即为B树.因为B树的原英文名称为B-tree,而国内很多人喜欢把B-tree译作B-树,其实,这是个非常不好的直译,很容易让人产生误解.如人们可能会以为 ...

  6. Voix.js – 使用声音来控制和操纵你的网站

    我们通常使用鼠标和键盘(在移动端使用触摸)来操作网站,如今 Voix.js 能够让我们使用声音控制网站,很酷吧?它可以启动和停止侦听麦克风,在检测到一个给定的关键字时触发绑定的特定事件.Voix.js ...

  7. jQuery 重要的知识点归纳

    jQuery 对象 jQuery 对象就是通过 jQuery 包装 DOM 对象后产生的对象. jQuery 对象是 jQuery 独有的. 只有 jQuery 对象才能使用 jQuery 的方法,在 ...

  8. sharepoint2010升级到sharepoint2013的升级步骤和过程

  9. Visual Studio将Delop之后生成的dll或者wsp复制到指定目录

    用VS开发sharepoint项目的时候,有很多个project,每个project都会生成一个wsp包,如果手工把wsp文件找到,复制出来,拷贝到服务器上,再部署,就有点麻烦. 所以写了个批处理命令 ...

  10. 什么时候用Application的Context,什么时候用Activity的Context

    单例模式用application的context 如果我们在Activity A中或者其他地方使用Foo.getInstance()时,我们总是会顺手写一个『this』或者『mContext』(这个变 ...