对话 UNIX,第 13 部分: 另外十种命令行组合( 五 )


export LESS="-Nmsx4"
-N 可以显示行号 。
-m 能够以百分比的形式显示在文件的当前位置 。
-s 可以将多个空行“压缩或者减少为单个空行 。
-x4 可以将制表位设置为四个空格 。
请仔细地阅读 less 的 man 页面,以便找到对您最有帮助的选项 。
从下到上阅读文件
在 UNIX 系统中,许多文件会不断地增大,直到被截断或者进行存档 。例如,最重要的一些系统处理,如电子邮件传输和远程访问、持续日志记录活动,都会在文件的末尾添加新的条目 。并且是最感兴趣的日志文件的末尾 。如果某个服务崩溃了,那么最后发生的事件将提供最有价值的线索 。
有两种方法可以逆序显示文件中的行:tac(将 cat 反过来)和 tail -r 命令 。
$ cat smallfile
a
b
c
$ tac smallfile
c
b
a
$ tail -r smallfile
c
b
a
您可能会发现 tac 更加实用一些,因为它将显示整个文件,这与 tail 是不同的,后者将对输出进行截断,只显示若干行的内容 。例如,您可以组合使用 tac 和 less 以创建一个别名,用于对文件进行逆序分页:
$ alias rless="LESSOPEN='|tac %s' less"
$ rless smallfile
c
b
a
rless 别名临时地将 LESSOPEN 设置为 |tac %s,这是特定于 less 的一个环境变量 。这样可以强制使用 tac 对每个文件(%s 是文件名的占位符)进行预处理(所以使用了管道 |) 。
下面提供了这个相同技巧的另一种变体,但是它使用了 perl 而不是 tac,在您的系统中可能无法使用这个命令:
LESSOPEN="|perl -e 'print reverse (<>)' %s" less small
包含 perl 的那行命令表示“将所有的输入行读入一个匿名数组 ((<>)),颠倒元素的顺序,并打印这个新的数组 。
进行新的数学运算
如果您需要计算一个结果,那么并不需要转到一个新的应用程序 。您可以继续在命令行中完成这项任务 。您可以使用 dc(这是一种逆波兰式计算器),或者 bc(这是一种用于数学运算的完整的脚本编程语言) 。或者,如果您需要马上获得答案,那么可以使用命令行和 $(( )) 操作符 。
$ echo $(( 100 / 10 ))
10
$ echo $(( 10 ** 2 ))
100
Shell 并没有提供大量的算术操作符,但是已经足以完成大多数编程任务,包括移位、求余和比较 。
还有很多的内容需要学习
“对话 Unix已经是第 13 部分了,但是仍然有许多内容需要介绍 。我们需要学习更多的命令和技巧、研究各种各样的相关概念,当然还包括大量的开放源代码软件,以便提高您的工作效率 。
还有一点就是,必须克服各种困难 。高年级学生有时会捉弄人,有时的确令人尴尬,但他们相处融洽 。也许我看起来像是在倚老卖老了!. . 孩子们相处很融洽,是吧!
感谢您的阅读!我希望您能够喜欢本专栏 。

推荐阅读