2.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重定向文件和添加文件
回忆第一章节的内容,我们用echo命令输出莎士比亚的第一首十四行诗的第一行(Listing 6):
$ echo "From fairest creatures we desire increase,"
From fairest creatures we desire increase,
我们现在的任务是创建一个包含此内容的文件。即使没有文本编辑器便捷,但还是可以使用重定向操作符 >:
$ echo "From fairest creatures we desire increase," > sonnet_1.txt
(你可以使用向上箭头找到之前的命令,这样比重新输入更好。)这里右尖括号>将echo的输出内容重定向到sonnet_1.txt文件里。
怎么才算是重定向内容成功了呢?我们将在第三章节中学习更多高级的命令行工具来检查文件,但现在暂时使用cat命令,它可以简单地将文件内容输出到屏幕上:
$ cat sonnet_1.txt
From fairest creatures we desire increase,
cat这个名字是[连接(concatenate)](http://www.dictionary.com/browse/concatenate)的简写,从名字也能看出是用于组合多个文件内容,但是上面的用法(即单独将单个文件内容显示到屏幕上)是极常见的。试想cat用一个"快而脏"的方式显示一个特殊文件内容。(插图14)

插图14: 用`cat`查看文件
为了添加这首十四行诗(现代说法)的第二行到文件中,我们可以像下面这样使用操作符>>:
$ echo "That thereby beauty's Rose might never die," >> sonnet_1.txt
这仅仅是将这行添加到指定文件的末尾。老规矩,我们来看看使用cat的结果:
$ cat sonnet_1.txt
From fairest creatures we desire increase,
That thereby beauty's Rose might never die,
(这行命令,我希望你只用了两次向上箭头,而不是又重新输入,如果真是这样,那毫无疑问你已经掌握了之前的学习内容。) 以上展示了预期右尖括号>>添加字符串并输出到sonnet_1.txt文件中的结果。
现代对十四行诗的处理,有时会将玫瑰改为玫瑰花(从而掩盖了可能的含义),而我们也可以调用两个echo创建第二个文件:
$ echo "From fairest creatures we desire increase," > sonnet_1_lower_case.txt
$ echo "That thereby beauty's rose might never die," >> sonnet_1_lower_case.txt
为了便于比较两个相似但不相同的文件,Unix系统有个非常有用的命令diff:
$ diff sonnet_1.txt sonnet_1_lower_case.txt
< That thereby beauty's Rose might never die,
---
> That thereby beauty's rose might never die,
当谈及电脑文件时,diff通常既是个名词(这些文件间的差别)也是个动词(你应该比较两个文件的差异,看什么被改变了)。又如许多技术术语里提到的,这些说法有时候会融入到常用语中,例如''比较现有想法和过去的文化差异,看能从中学到什么".
练习
在每个练习之后,使用cat命令验证操作是否成功。
- 使用
echo和>,创建文件line_1.txt和line_2.txt分别包含十四行诗的第一和第二行。
2.通过先重定向line_1.txt的内容,再添加line_2.txt文件内容,复制原来的sonnet_1.txt文件(包含十四行诗的前两行)。并把新文件命名为sonnet_1_copy.txt,使用diff命令确认它是否与sonnet_1.txt文件相同。备注:当两个文件没有不同之处时,diff什么也不输出。
3.使用cat以相反的顺序使用一个命令组合line_1.txt和line_2.txt文件内容,并将内容产出到sonnet_1_reversed.txt文件中。备注:cat命令可以有多个参数。
2.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重定向文件和添加文件的更多相关文章
- 4.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—链接到目录
在4.2章中我们已经会用cd进入到指定的目录中.这是导航最常见的用途之一,但是它还有几个值得关注的用途.第一个是使用cd ..(读作'see-dee 点点')返回当前目录级别的上一级: $ pwd / ...
- 3.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——下载文件
首先,为了不手动创建一个长文件(这太麻烦了),我们将使用强大的curl(有时也写作"cURL")工具从网上下载一个文件,这个命令可以让命令行与URL交互.尽管这不是Unix核心命令 ...
- 2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——操作文件
已经学习了基本的命令,现在是时候学习操作文件了,这也是命令行的重要任务.还是基于本教程的事先规定,本教程是入门级的,不要求熟悉类似编辑文本的程序(这些文本编辑程序,将在下个系列教程中介绍, Learn ...
- 1.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——运行终端
终端是个允许我们运行命令行的程序,运行命令前,先打开它.在MacOS系统上,可以使用macOS应用 Spotlight来打开终端窗口,Spotlight也有其他两种方式触发,一种是键入⌘␣(comma ...
- 1.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——手册页
我们运行的命令行程序,通常在技术上称作shell, 它包含了一个非常强大(也很神秘)的工具,我们将用它来学习更多可用的命令.这个工具本身就是个称作'man'的命令('manual'的简写).它的参数是 ...
- 2.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——重命名,复制,删除
最常用的文件操作除了将文件列出来外,就应该是重命名,复制,删除了.正如将文件列出来一样,大多数现代操作系统为这些任务提供了用户图形界面,但是在许多场景中,用命令行还是会更方便. 使用mv命令重命名一个 ...
- 1.2《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——开始第一条命令
现在开始准备运行我们的第一条命令了,在屏幕上打印'hello'.(字符打印的地方被称为'标准输出',通常指的是屏幕,很少指真的物理打印机设备).这条命令就是echo,这条命令的参数是想要输出的字符串或 ...
- 1.4《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——编辑命令
在编辑模式中,命令行包括几个重复之前命令的功能.这些以及其他很多命令功能时常设计键盘上的特殊键,所以给出Table 1作为参考,给出了许多键在典型的Macintosh键盘上的标记符号.若你的键盘不太一 ...
- 4.5《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—第四章小结
本章相关重要命令总结在Table 6. 命令 描述 示例 mkdir <name> 创建某目录 $ mkdir foo pwd 显示当前所在目录 $ pwd cd <dir> ...
随机推荐
- 【读书笔记】iOS-网络-三种错误
一,操作系统错误. iOS人机界面指南中,Apple建议不要过度使用AlertViews,因为这会破坏设备的使用感受. 操作系统错误: 1,没有网络. 2,无法路由到目标主机. 3,没用应和监听目标端 ...
- 转 Fira Code | 为写程序而生的字体
原文:Fira Code | 为写程序而生的字体 Fira Code | 为写程序而生的字体 己短不可藏 6月前 · 1199 人阅读 关注TA 程序员福利!!!今天为大家带来一个专为程序员写程序设计 ...
- 活字格Web应用平台学习笔记 6 - 使用公式
发现学起来其实也花不了多少时间.继续学习下一节课:使用公式. 这应该会是高级一点的操作了吧,前面的几节课真是好简单好简单,简单到怀疑这是不是个技术人员该干的活,简单到怀疑人生~~ 这节课的目标: 好吧 ...
- 大数据【二】HDFS部署及文件读写(包含eclipse hadoop配置)
一 原理阐述 1' DFS 分布式文件系统(即DFS,Distributed File System),指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连.该系统架构 ...
- Expo大作战(二十)--expo中的Release channels(不重要*)
简要:本系列文章讲会对expo进行全面的介绍,本人从2017年6月份接触expo以来,对expo的研究断断续续,一路走来将近10个月,废话不多说,接下来你看到内容,讲全部来与官网 我猜去全部机翻+个人 ...
- 类与接口(三)java中的接口与嵌套接口
一.接口 1. 接口简介 接口: 是java的一种抽象类型,是抽象方法的集合.接口比抽象类更加抽象的抽象类型. 接口语法: [修饰符] [abstract] interface 接口名 [extend ...
- su、sudo、su - root的区别
su和sudo的区别 共同点:都是root用户权限: 不同点:su只获得root权限,工作环境不变,还是在切换之前用户的工作环境:sudo是完全获得root的权限和root的工作环境. sudo:表示 ...
- LeetCode题解之Find All Numbers Disappeared in an Array
1.题目描述 2.问题分析 使的 A[i] = i+1 ,最后检查不满足这个条件的i+1 .即为缺失的值. 3.代码 vector<int> findDisappearedNumbers( ...
- 【SPL标准库专题(8)】 Datastructures:SplFixedArray
SplFixedArray主要是处理数组相关的主要功能,与普通php array不同的是,它是固定长度的,且以数字为键名的数组,优势就是比普通的数组处理更快. 类摘要 SplFixedArray im ...
- FTP 服务搭建后不能访问问题解决
主要是需要启动身份验证功能