今天在学习部署安装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. 项目总结笔记系列 Maven Session2

    主题:Maven插件 1.三个生命周期. 2.猛然间,一回首,竟然发现.之前的maven插件报错的原因,不是download的问题.是没有连接上网.在HP公司连接外网,用eclipse,是需要配置代理 ...

  2. collection中的retainAll()方法

    public class ArraylistDemo { public static void main(String[] args) { Collection list1 = new ArrayLi ...

  3. 「轉」Java的内存机制

    0.参考资料: http://www.j2megame.org/index.php/content/view/2246/125.html 1.Java的内存机制 Java 把内存划分成两种:一种是栈内 ...

  4. 系统配置文件的加载设置-以xml文件为例

    前言:开发中经常会遇到加载一些配置文件信息,这些信息变化的概率很小,不需要实时的更新.这样的信息放在数据库里自然是不合适的,所以最好的办法是写在配置文件中,在程序第一次运行的时候加载到内存,以后用到的 ...

  5. java内存模型-总结

    处理器内存模型 顺序一致性内存模型是一个理论参考模型,JMM 和处理器内存模型在设计时通常会把顺序一致性内存模型作为参照.JMM 和处理器内存模型在设计时会对顺序一致性模型做一些放松,因为如果完全按照 ...

  6. 解决MVC4发布在IIS7后,路径无法访问.apk文件的解决方法

    随着智能手机的普及,越来越多的人使用手机上网,很多网站也应手机上网的需要推出了网站客户端,.apk文件就是安卓(Android)的应用程序后缀名,默认情况下,使用IIS作为Web服务器的无法下载此文件 ...

  7. Welcome Phalcon

    Welcome! 欢迎来到 Phalcon 框架, 一种崭新的 PHP 框架.我们的使命是给开发者一个开发 web 站点和应用的高级工具,让开发者不用担心框架的性能问题. Phalcon 是什么? P ...

  8. 封装Nvelocity的渲染方法

    public class CommonHelper { /// <summary> /// 用data数据填充templatename模板,渲染返回html返回 /// </summ ...

  9. Autodesk 360 Viewer 已经发布到Autodesk 360平台

    我们之前已经在小范围内透露过,Autodesk 将发布一款完全无需插件的三维模型浏览器 Autodesk 360 Viewer,比如我们的Meetup线下小聚会,或者黑客马拉松(hackathon)的 ...

  10. Android之SeekBar定制

    1.SeekBar样式定制 xml文件中:  <SeekBar             android:id="@+id/seekbar_voice"             ...