在日常工作中,我们常常会在自己的电脑寻找某些不知道放在哪里的私密文件,通常我们会在资源管理器的搜索栏里输入一些关键字去帮助我们快速去定位查找该文件。在linux系统中也有这样的功能,只不过在linux中我们需要输入命令去查找(对于没有图形界面来说),下面介绍两个有用且有趣的命令。
----grep:
grep命令是用来查看文本文件内容,并显示包含指定“字符串”的行,其基本用法是
grep [选项] '匹配字符串' 文本文件
1 grep –i '匹配字符串' 文本文件 #忽略需要匹配字符串中的大小写
例如:[root@localhost ~]# grep -i 'Root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
operator:x:11:0:operator:/root:/sbin/nologin
这条命令就是在/etc下的passwd文本文件中将含有root(不管大小写)匹配字符的行全部显示出来
2 grep -v '匹配字符串' 文本文件 #取反,将不含匹配的字符串的行全部显示出来
例如:[root@localhost ~]# grep -v 'root'/etc/passwd
这条命令就是将passwd文本文件中不含root字符的行显示出来
3 grep ‘^word‘ 文本文件 #将以word开头的行全部显示出来
例如:[root@localhost~]# grep '^root' /etc/passwd
root:x:0:0:root:/root:/bin/bash
这条命令就是将以root开头的行显示出来
4 grep ‘word$‘ 文本文件 #将以word结尾的行全部显示出来
例如:[root@localhost~]# grep 'bash$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
amandabackup:x:33:6:Amandauser:/var/lib/amanda:/bin/bash
hentai:x:1000:1000:hentai:/home/hentai:/bin/bash
这条命令就是将passwd中以bash结尾的行全部显示出来
既然“ ^ $ “字符串分别表示以某开头与以某结尾,那么,将这两个字符串结合起来用会怎样呢
[root@localhost~]# grep '^$' /etc/default/useradd
(空行)
[root@localhost~]#
从结果来看,就是将useradd文本中的含有的空行显示出来
那么 grep –v '^$' /etc/default/useradd又表示什么呢
前面说到-v表示取反,那么这条命令就是将文本中的空行去除,显示出文本所有内容
有时候在linux中某些文件中有很多空行,不方便查看内容,这时就可以用这条命令
-----find
find命令相比于grep,要更强大一些,它后面可以接各种各样的条件,精确的查找出所需要的内容
基本用法 find [目录] [条件1] [条件2] [条件3]……
–常用条件有:
-type类型(f 文件、d目录、l 快捷方式)
-name "文档名称"
-user 用户名
1 find 【目录】-type 【f ,d, l】
例如 [root@localhost~]# find /boot/ -type l
/boot/grub/menu.lst #boot目录下的快捷方式
[root@localhost~]# find /opt/ -type f
/opt/123.txt #opt下的文本文件
[root@localhost~]# find /boot/ -type d
/boot/
/boot/efi
/boot/efi/EFI
/boot/efi/EFI/centos
/boot/grub2
/boot/grub2/i386-pc
/boot/grub2/locale
/boot/grub2/fonts
/boot/grub #查找boot目录下的子目录
2 find 【目录】-name 【文件名】
[root@localhost~]# find /etc/ -name passwd
/etc/pam.d/passwd
/etc/passwd #找出etc目录下所有以passwd命名的文件夹及文本文件
3 find / -user 【用户名】【条件】 -exec cp -r {} 【文件名】 \;
例如:[root@localhost~]# find / -user student –type l -execcp -r {} /root/abc/ \;
这条命令表示的是将student用户下所有快捷方式复制到root下的abc文件下,其中
-user student –type是你查找的条件
中间的“ | “在linux中表示管道,作用是将不同命令的结果结合在一起输出,管道可以配
和各种命令一起使用,达到惊奇的效果
-exec是固定字符,记住就可以了
cp -r {} /root/abc/ 表示将find找到的内容复制到abc目录下,{}就是代表前面find知道的内容
\;反斜杠加分隔符表示命令结束
这个命令可以将各种想要的内容作各种处理,不妨将各种命令结合在一起试下,会有意想不到的效果
以上就是关于查找grep与find的一些简单应用