当前位置: 首页 > news >正文

命令行快速进阶(二)Redirection:通过文件来输入/输出

Redirection:通过文件来输入/输出

命令的输入和输出都是在标准的地方,这被称为标准输入和标准输出。通常情况下,标准输入被设置为键盘输入,标准输出被设置为屏幕。标准输入和输出可以被redirected

重定向输出,命令行使用符号>。(被读作in to)。举个简单的例子:

cat /proc/cpuinfo > file.txt

我们知道这个命令行的前一部分的意思是从文件cpuinfo读取cpu信息。通常情况下会打印/输出到屏幕,但是这里我们通过重定向输出符号>输出到文件file.txt,创建在用户的当前目录。现在用户可以读/编辑/使用这个文件了。

需要注意的一点是,通过重定向输出可以覆盖一些文件,因此使用这个命令时,需要保证当前目录中没有文件与该文件重名,或者重名的文件的内容已经不再被需要。

重定向输入的符号是<,这个时候,命令从文件输入,而不再是从键盘获得输入。例如:

cat < file.txt

这个命令是获取file.txt的内容并把它输出到屏幕。我们来举例说明重定向输入/输出的作用。Ubuntu中有一个软件包叫做apt,我们在软件管理中提到过它。使用一个apt中的dpkg命令,我们可以快速的列出Linux系统中所有使用apt安装的软件,并把信息记录在用重定向输出记录在一个文件中。命令如下:sudo dpkg --get-selections>pkg.list。现在我们可以使用这个文件作为dpkg的输入,也许是在另外一个Linux系统上,我们希望这个Linux系统安装和之前的linux系统相同的软件:

sudo dpkg --set-selections < pkg.list

这条命令告诉dpkg标注出来pkg.list文件中没有被安装的软件。也就是系统1安装了系统2没有安装的软件。我们可以通过一个简单的命令,将这些没有被安装在系统2的软件安装了:

sudo apt-get -u dselect-upgrade

之前我们曾经举例子使用cat来同时显示多个文件。这个例子可以使用重定向稍加修改,用来将两个文件的内容合并后保存在第3个文件中。命令如下:

cat myfile.txt myotherfile.txt > combinedfile.txt


相关文章:

  • 命令行快速进阶(三)将命令结合使用combining commands
  • 命令行快速进阶(四)使用环境变量
  • 命令行快速进阶(五)Ubuntu下常用文本编辑器
  • 命令行快速进阶(六)Ubuntu中对压缩文件的操作和处理
  • 命令行快速进阶(七)通过byobu使用多个命令终端
  • Ubuntu中的用户管理(一)用户账户
  • Ubuntu中的用户管理(二)群组管理
  • Ubuntu中的用户管理(三)用户管理
  • Ubuntu中的用户管理(四)密码管理
  • Ubuntu中的用户管理(五)授予常规用户系统管理员权限
  • Ubuntu中的用户管理(六)硬盘配额
  • Ubuntu中的用户管理(七)相关Ubuntu命令
  • Windows下Ubuntu 12.04 LTS 的安装(双系统使用EasyBCD)
  • Ubuntu 12.04下安装QQ2012Beta3
  • Ubuntu 12.04 中文输入法
  • 《Java8实战》-第四章读书笔记(引入流Stream)
  • 11111111
  • 2018天猫双11|这就是阿里云!不止有新技术,更有温暖的社会力量
  • Apache Spark Streaming 使用实例
  • CSS 提示工具(Tooltip)
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • JavaScript HTML DOM
  • Mysql优化
  • PAT A1120
  • PHP 小技巧
  • supervisor 永不挂掉的进程 安装以及使用
  • 极限编程 (Extreme Programming) - 发布计划 (Release Planning)
  • 检测对象或数组
  • 前端技术周刊 2019-01-14:客户端存储
  • 如何选择开源的机器学习框架?
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 云栖大讲堂Java基础入门(三)- 阿里巴巴Java开发手册介绍
  • 正则学习笔记
  • UI设计初学者应该如何入门?
  • zabbix3.2监控linux磁盘IO
  • 选择阿里云数据库HBase版十大理由
  • #每日一题合集#牛客JZ23-JZ33
  • #使用清华镜像源 安装/更新 指定版本tensorflow
  • #我与Java虚拟机的故事#连载10: 如何在阿里、腾讯、百度、及字节跳动等公司面试中脱颖而出...
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • $GOPATH/go.mod exists but should not goland
  • (¥1011)-(一千零一拾一元整)输出
  • (02)vite环境变量配置
  • (js)循环条件满足时终止循环
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)ssm码农论坛 毕业设计 231126
  • (每日持续更新)信息系统项目管理(第四版)(高级项目管理)考试重点整理 第13章 项目资源管理(七)
  • (五)c52学习之旅-静态数码管
  • (一)80c52学习之旅-起始篇
  • (一)ClickHouse 中的 `MaterializedMySQL` 数据库引擎的使用方法、设置、特性和限制。
  • (转)es进行聚合操作时提示Fielddata is disabled on text fields by default
  • (转)德国人的记事本
  • (转)总结使用Unity 3D优化游戏运行性能的经验
  • (转载)PyTorch代码规范最佳实践和样式指南
  • .NET 8.0 中有哪些新的变化?