5.less和more
那么很长的文件内容呢?
这里就要说一下more(现在已经不常用了)和less了
补充内容
为了写出很长的文件内容,我们介绍一行命令行的shell脚本(先用一下)
i=0; while [ $i -le 10 ]; do echo "hello $i";touch $i.txt; let i++;done 这里的le:小于等于的意思 i是变量,从0一直++到10
打印了11行信息 并且 创建了11个文件,(这个命令可以跟多条)
介绍完了之后,我们用一下这个命令
i=0; while [ $i -le 1000 ]; do echo "hello $i"; let i++;done > HelpFile.txt
制造了一个大文件
这是我们cat之后的一部分
很显然这么大的文件用cat去查看内容真的很不方便
所以我们要用到less
回到less
讲解less前,我们先说一下more
more HelpFile.txt(按q退出)
然后我们可以按回车键来逐行往下翻
但是按上,按下是没有反应的(所以more现在很少用)
而我们查文件的时候应该是也可以往上翻,也可以往下翻,所以我们要重点推荐less
less HelpFile.txt(按q退出) • 1
我们可以回车往下翻,也可以按上,按下
还可以这样
我们输入了927
然后它就帮助我们查找到了927
所以这个less的主要用途
1.可以让我们在不打开某个代码文件的情况下查看该文件的源代码
2.可以查看一些简单的日志文件
比方说我们想要查看一个四五百行的代码,可以不用vim或者nano,直接用less就行
6.head和tail
如果我们指向查看一个文件的开头位置若干行或者结尾位置若干行呢?
就需要用到head和tail了
默认是显示前10行
tail也是如此
补充知识:命令行管道
那么如果我们想要提取一个大文件的任意一个中间部分呢?(刚才那个文件一共1001行)
比方说我们想要提取这个文件的第800行到第810行呢?
第一种做法:
先提取头部的810行,再提取尾部的10行
第二种做法:
先提取尾部的201行,在提取头部的10行
我们可以先把第一步得到的结果重定向到一个临时文件中
然后再在临时文件中执行第二部操作
这里以第一种做法为例:
第一步:把HelpFile.txt的前810行重定向到临时文件temp.txt中
第二步:提取后10行
这样的做法可以,但是毕竟要形成临时文件,太不优雅了
并且很明显的是:
head -810 HelpFile.txt 的输出作为了tail -10的输入
所以我们用到了命令行管道
这个|(就是连接两个指令的这个竖划线)就是命令行管道,也就是将
head -810 HelpFile.txt 的输出作为了tail -10的输入
管道中流动的是上一条指令的输出数据,这个数据被上一条指令交给了管道 管道在把这个数据作为下一条指令的输入 这就是一个流水线作业
那么如果我们想要局部性的逆置一下呢?
我要是逆置完了之后在想提取前三行呢?
很像一条流水线
先tail,后head:
以上就是Linux常见指令2,希望能对大家有所帮助!