前面对文件常见的一些操作,可以对文件进行所有几乎所有的操作了,但是linux还是有其他的一些操作或者常见的符号可以提高一些优化或者说方便的操作。
常用符号
常用的符号有|,>,>>这三个常用符号,这三个符号的存在,让很多Linux命令变得很方便
-
管道符(|):简单的说就是将前面的内容,作为后面的的源头。
这个在前面演示过了,尤其在find命令中,例子:
# 要求,查询test.txt文件中是否含有字符串“我”。
cat test.txt | grep 我
grep,是查询文档内容的命令,后面在简单的说。
这个可以看出cat 看到的文档的内容,然后通过管道符将其作为一个文件源头,然后让grep搜索test.txt的内容。而且管道流可以依次使用,也就是可以使用多个。
# 要求,查询test.txt文件中是否含有字符串“我”。在搜索前面中的内容中是否有“火”。
cat test.txt | grep "我" | grep "火"
-
重定向(>):就是将前面内容重定向其他的地方。
# 要求,查询test.txt文件中是否含有字符串“我”,然后将包含我的每行,保存到目前目录下的test1.txt文件中 cat test.txt | grep "我" > test1.txt
-
内容追加(>>):将内容追加后面。
# 要求,查询test.txt文件中是否含有字符串“你”,然后将包含我的每行,追加到到目前目录下的test1.txt文件中。(在test1.txt文件内容的后面添加,而不是覆盖。) cat text.txt | grep "你" >> test1.txt
作用:重定向和追加,方便用户将命令窗口得到的结果保存在本地硬盘中。
more和less
在使用cat查看的时候几乎可以完成用户的很多查看的操作了,但是有时候会出现一个问题,就是如果用户看一个很长的文档的时候会出现一个问题,因为窗口一共就那样大,我们不方便查看如下:
cat -n test.txt
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-scCJTNJa-1631087422763)(C:\Users\jhfan\AppData\Roaming\Typora\typora-user-images\image-20210907170713022.png)]
比如小说用户只看见的最后的行数,这样很不爽,所以有了more 这个操作。
more
这个命令可以让查看的内容分页,然后敲击空格键就可以翻页,不过这个需要用的管道流符号或者直接: more 文件
使用more 之后虽然可以通过鼠标滑动,可以看让分页的内容在窗口来回走动,但是无法进行翻页。敲到其他的键也会退出浏览模式。只能通过空格进行翻页或用Enter键进行翻行。(会自动适配其窗口的大小,显示内容)
less
less 也是一个可以分屏查看文内容,它的功能和more类似,但是比more增加很多功能。支持各自终端显示。而且其指令在显示文件内容的时候,不是一次性将文件加载后再显示,而是根据显示需要加载的内容,对于显示大型文件有恨到的效率。
less [参数] 文件
参数 | 作用 |
---|---|
-b | 设置缓存区的大小 |
-e | 默认是查看文件后需要在less打开的窗口输入q退出,而-e可以结束后自动退出 |
-f | 强迫打开任何文件 |
-N | 每行显示行号 |
-m | 类似显示more中百分比的 |
-i | 在打开文件后通过搜索的文件中忽略大小写 |
然后看一下其打开文件后,用户又可以进行哪些操作
操作 | 作用 |
---|---|
空格 | 向下翻页 |
↓ | 向下翻页 |
↑ | 向上翻页 |
/{字符串} | 向下搜索字符串(以窗口显示内容然后搜索前后,如过显示的没有此字符串会搜索后面有的,但只会显示包含字符串的行) |
?{字符串} | 向上搜索字符串(以窗口显示内容然后搜索前后) |
q | 退出less窗口 |
locate
前面使用find 可以查询文件或文件夹了,但是如果在搜索在一个大的目录下,然后进行不同的搜索,会发现有时候会很慢,比如: find / -name test.txt
遍历linux中所有test.txt 文件,从根目录下开始搜索,肯定会很慢,所以有了这个命令 locate。
locate指令可以快速得定位文件路径,为什么呢?
locate 指令利用事先建立的系统中所有文件名称及路径的locate数据(/var/lib/slocate)库实现快速定位文件。
因此其不需要再遍历整个文件系统,所以其查询速度较快。
为了查询结果的准确度,所以管理员定期更新locate数据库
由于locate指令是基于数据库查询的,所以在第一次运行的时候,需要使用updatedb指令创建locate数据库。
第一步: 如果第一次使用locate命locate [参数] 需要查找的文件令,需要先创建locate的数据库,当然也可以定期更新
undatedb
第二步:
locate [参数] 需要查找的文件
# 搜索包含test的文件或文件夹
locate test #locate 直接就类似与正则表达式了
# 搜索包含test的文件或文件夹忽略大小写
locate -i test # 当然也可以指定某些路径进行匹配 /opt/test
# 搜索以txt为后缀的文件(可以直接使用正则表达式有的Linux版本需要 -r 参数)
locate *.txt
# 搜索包含test的文件或文件夹 一共有多少个
locate -c test #会输出一个数字
grep
grep 命令用户查找文件里符合条件的字符串。或者对管道流的内容进行查找。一般方便用户查询:某路径下其内容包含某字符串的文件
# 查询当前.txt后缀的文件中还有test
grep test *.txt
这个搜索会显示所有txt文件中含有test字符串的行
#忽略大小写
grep -i test *.txt
# 查询当前.txt后缀的文件中还有test,各自有多少行
grep -c test *.txt
# 递归查询 在某文件下包含test的文件
grep -r test 路径
其他的一些常用命令
echo
echo 在控制端打印字符串
# echo test
这样在控制台就会显示
test
which
which查询某个指令在那个文件夹下
#查询ls 命令所在的文件
which ls