3.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——less即more
Unix提供了两个工具查看不止文件的头部和尾部。这个功能程序叫做more,但有种更强大的变异体叫做less(起初我认为这是玩笑)。less这个程序是交互性地,所以很难在输出时捕获,但是仍然为大家提供了粗略地样本如下:
$ less sonnets.txt
Shake-speare's Sonnets
I
From fairest creatures we desire increase,
That thereby beauty's Rose might never die,
But as the riper should by time decease,
His tender heir might bear his memory:
But thou contracted to thine own bright eyes,
Feed'st thy light's flame with self-substantial fuel,
Making a famine where abundance lies,
Thy self thy foe, to thy sweet self too cruel:
Thou that art now the world's fresh ornament,
And only herald to the gaudy spring,
Within thine own bud buriest thy content,
And tender churl mak'st waste in niggarding:
Pity the world, or else this glutton be,
To eat the world's due, by the grave and thee.
II
When forty winters shall besiege thy brow,
And dig deep trenches in thy beauty's field,
sonnets.txt
less程序地关键点在于它提供了几种有用的方法让你到文件的指定位置,例如使用箭头向上或向下移动整行内容,按空格键移到页面底部,按^F向前移一页(例如,)或者 ^B向后移一页。退出less, 输入q(‘quit’简写)。
插图18: 莎士比亚时期著名的玫瑰
或许,less最强大的能力是斜杠键/了,它能让你从文件开始一直搜索到结尾。例如,假设我们要在sonnets.txt文件中搜索'玫瑰'(插图18),十四行诗里最常用的意象之一。用less来做就是输入 /rose(读作“斜杠玫瑰”), 如Listing 15:
Listing 15:使用
less搜索字符串'rose'Shake-speare's Sonnets
I
From fairest creatures we desire increase,
That thereby beauty's Rose might never die,
But as the riper should by time decease,
His tender heir might bear his memory:
But thou contracted to thine own bright eyes,
Feed'st thy light's flame with self-substantial fuel,
Making a famine where abundance lies,
Thy self thy foe, to thy sweet self too cruel:
Thou that art now the world's fresh ornament,
And only herald to the gaudy spring,
Within thine own bud buriest thy content,
And tender churl mak'st waste in niggarding:
Pity the world, or else this glutton be,
To eat the world's due, by the grave and thee.II
When forty winters shall besiege thy brow,
And dig deep trenches in thy beauty's field,
/rose
Listing 15中输入/rose后结果就是在该文件中高亮显示第一次出现'rose'。你可以接着输入n指引程序搜索下一个匹配,或者N搜索上一个匹配。
最后两个必会的less命令是G,和1G(1后面接G),分别地作用是移到文件末尾,和返回到开始。Table 4总结了我认为最重要的键组合(即:我认为你需要它才能变得厉害),但是如果你对其他命令也很感兴趣,请查看wiki对less的介绍
我很鼓励你习惯使用less工具查看文件。解锁的新技能同样适用于其他应用;例如:手册页(1.3章)用的less来做操作交互界面,所以通过学习less你也可以更好的在手册页中自由移动。
| 命令 | 描述 | 示例 |
|---|---|---|
up & down arrow keys |
向上或向下移动一行 | |
空格键 |
移至上一页 | |
⌃F |
移至上一页 | |
⌃B |
移至下一页 | |
G |
移至文件末尾 | |
1G |
回到文件开始 | |
/<string> |
在文件中搜索字符串 | /rose |
n |
移到下个匹配的搜素结果 | |
N |
移到上个匹配的搜索结果 | |
q |
退出less |
Table 4: `less` 最重要的命令
练习
1.对sonnets.txt文件运行less。向后移动3页再向前移动3页。移到文件末尾,在回到开始,最后退出。
2.搜索字符串All(区分大小写)。查找前面几个匹配项,再查找后面几个匹配项。接着移至文件的开始,数匹配项,一直数到结尾。最后比较你数的结果和运行grep All sonnets.txt | wc的结果是否相同。(我们将在3.4章节中学习grep)
3.使用less和/(斜杠),找到诗中'Let me not'开始的行。这首诗中有匹配的吗?备注:按n寻找下个匹配项(如果有的话)。附加题:听听这首诗的现代版和原始版,哪个版本的韵律更好?
4. 因为man使用了less,我们现在可以搜索手册页了。在ls的手册页中搜索'sort'字符串,发掘通过文件大小排序的选项操作。什么命令可以让文件以长表的形式列出,并且越大的文件显示在底部?备注: ls -rtl作为模型。
3.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——less即more的更多相关文章
- 4.3《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—链接到目录
在4.2章中我们已经会用cd进入到指定的目录中.这是导航最常见的用途之一,但是它还有几个值得关注的用途.第一个是使用cd ..(读作'see-dee 点点')返回当前目录级别的上一级: $ pwd / ...
- 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'的简写).它的参数是 ...
- 3.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)——下载文件
首先,为了不手动创建一个长文件(这太麻烦了),我们将使用强大的curl(有时也写作"cURL")工具从网上下载一个文件,这个命令可以让命令行与URL交互.尽管这不是Unix核心命令 ...
- 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> ...
- 4.1《想成为黑客,不知道这些命令行可不行》(Learn Enough Command Line to Be Dangerous)—目录结构
Unix风格的目录结构通常使用一个目录名列表并用正斜杠分隔来表示,这样我们可以结合ls命令: $ ls /Users/mhartl/ruby 或者 $ ls /usr/local/bin 正如图20, ...
随机推荐
- python之数据类型
1.整数(int)integer 直接写出数字就是整数例: a = 0#查看变量的数据类型 type() -> #<class 'int'> class类,类型,类别print(10 ...
- “一切都是消息”--iMSF(即时消息服务框架)入门简介
“一切都是消息”--这是iMSF(即时消息服务框架)的设计哲学. MSF的名字是 Message Service Framework 的简称,由于目前框架主要功能在于处理即时(immediately) ...
- Ubuntu 16.04.4 LTS + Ambari 2.6.1.5 + HDP 2.6.4.0 安装部署
服务器 主机名 master slave1 slave2 slave3 IP 192.168.1.40 192.168.1.41 192.168.1.42 192.168.1.43 离线包服务器: 1 ...
- 安卓开发_计时器(Chronometer)的简单使用
计时器控件(Chronometer)是一个可以显示从某个起始时间开始一共过去多长时间的本文. 继承自TextView,以文本的形式显示时间内容 该组件有五个方法 1.setBase(): \\用于设置 ...
- 《数据库系统概念》1-数据抽象、模型及SQL
DBMS(database-management system)包括数据库和用于存取数据的程序,DBMS的基本目标是为数据的存取提供方便.高效的方式,此外对大多数企业来说,数据是非常重要的,所以DB ...
- Web API的参数、多版本和Filter
一.关于API的参数a) Web API在WebApiConfig.cs中配置了路由模板,默认为"api/{controller}/{id}",这与MVC路由模板的区别在于没有{a ...
- MagicApp说明
title: MagicApp说明 date: 2017-12-06 05:41:00 tags: IT 技术 MagicApp是日常处理的程序,协助进行日常工作处理 批量重命名模块 说明 该模块是根 ...
- 慕学在线网0.3_四个model
1.四个model完整代码: # users/models.py from datetime import datetime from django.db import models from dja ...
- [20170705]diff比较执行结果的内容.txt
[20170705]diff比较执行结果的内容.txt --//有时候需要比较2个命令输出的结果进行比较,比较笨的方法如下,例子: $ lsnrctl status LISTENER_SCAN2 & ...
- 基于VMware Workstation在Windows Server 2008 R2上搭建SQL Server 2012高可用性组(AlwaysOn Group)测试环境(二)
接上篇: 以SERVER02为例,将服务器加入域,并安装故障转移群集:(SERVER02-SERVER-04操作相同)