姓名:宋子璇
学号:16020199060
转载自:https://zhuanlan.zhihu.com/p/34603857
【嵌牛导读】:Linux进阶命令详解
【嵌牛鼻子】:Linux
【嵌牛提问】:Linux有哪些更复杂的命令?
【嵌牛正文】
第001节_ find查找文本
我们在Windows中搜索文件,一般查找文件需要传入两个条件:
1)在那些目录中查找;
2)查找的内容;
在Linux中,查找文件的也需要这两个条件,不同于Windows使用搜索框查找,Linux中使用 find 命令查找文件。
find 命令:
*目的:查找符合条件的文件
*格式: find 目录名 选项 查找条件
举例1:
find /work/001_linux_basic/dira/ -name "test1.txt"
说明:
a)/work/001_linux_basic/dira/指明了查找的路径
b)-name 表明以名字来查找文件
c)"test1.txt" 指明查找名为test1.txt的文件
举例2:
find /work/001_linux_basic/dira/ -name "*.txt"
说明:
a)查找指定目录下面所以以.txt结尾的文件,其中*是通配符。
举例3:
find /work/001_linux_basic -name "dira"?
说明:
a)查找指定目录下面是否存在dira目录,dira是目录名。
注意:
1)如果没有指定查找目录,则为当前目录。
find . -name "*.txt" 其中.代表当前路径
find -name "*.txt" 没加路径,默认是当前路径下查找
2)find还有一些高级的用法,如查找最近几天(几个小时)之内(之前)有变动的文件
find /home -mtime -2 查找/home目录下两天内有变动的文件
第002节__grep查找字符串
grep 命令:
目的:使用grep命令来查找文件中符合条件的字符串
格式:grep [选项] [查找模式] [文件名]??
假设dira目录的test1.txt 和 dirb目录的test1.txt都含有如下内容:
aaa
AAAAAA
abc
abcabcabc
cbacbacba
match_pattern
nand->erase
通过查找字符串,希望显示如下内容:
所在的文件名—-grep查找时默认已经显示目标文件名
所在的行号——使用-n选项
可以使用以下命令:
grep -rn “字符串” 文件名
r(recursive):递归查找
n(number):显示目标位置的行号
字符串: 要查找的字符串
文件名: 要查找的目标文件,如果是*则表示查找当前目录下的所有文件和目录
举例:
grep -n "abc" test1.txt 在test1.txt中查找字符串abc
grep -rn "abc" * 在当前目录递归查找字符串abc
注意:
1)可以加入-w全字匹配。
第003节__file查看文件类型
file 命令:
目的:识别文件类型
格式: file 文件名
在Linux中有一个非常重要的观点:”’Linux下一切皆文件”’。
举例:
file ~/.bashrc 为ASCII 编码的text类型
file ~/.vimrc 为UTF-8 Unicode 编码的text类型
file ~/Pictures/* 如图形文件JPEG/PNG/BMP格式
file ~/100ask/ 为directory表明这是一个目录
file /bin/pwd 出现 ELF 64-bit LSB executable,即为ELF格式的可执行文件