linux搜索命令有哪些,linux 中的搜索命令
which 查看可执行文件的位置。
whereis 查看文件位置。
locate 配合数据库查看文件位置。
find 实际搜索硬盘查询文件名称。
grep 查找文件内容
一般不常用find命令,因为find命令比较庞大,搜索范围太大了,耗时长。
对于which,它是根据PATH环境变量到该路径寻找可执行文件,所以它基本上就是“寻找可执行文件”命令。
whereis呢?这个比较灵活了,可以加上参数来锁定精确的搜索一下,比如-b参数,就是只找二进制文件;-u参数,找没有说明文档的文件……等等。
locate就更好了,它是这里最快的命令。可是有个缺点,它为什么快呢?因为locate是从本地的数据库文件中找(好像WINDOWS里的注册表)文件位置的,这就有缺点了,数据库文件没有更新的时候,某些没在数据库中的“文件位置”就会找不到了,呵呵。但是没关系,你可以在用locate之前先用“updatedb”命令更新一下数据库再找。
grep 的作用通常是在一个文件中查找某个关键字
命令的具体用法:
1、find
格式: find [dir] [expression]
例如:在/etc中搜索vsftpd.conf文件2.grep: 差找文件内容
[root@localhost ~]# find /etc -name vsftpd.conf
2、locate
使用该命令要先运行updatedb;
[root@localhost ~]# updatedb
例如: 要找vsftpd.conf文件都位于哪个位置;
[root@localhost ~]# locate vsftpd.conf
3、whereis
比如我们不知道fdisk工具放在哪里,我们就可以用whereis fdisk 来查找;
[root@localhost ~]# whereis fdisk
4、which
which 和where 相似,只是which是在我们所设置的环境变量中设置好的路径中寻找;比如;
[root@localhost ~]# which fdisk
5、grep
格式:grep [option] pattern file
例如:a. grep test *
在当前目录中查找 含有字符串 test 文件的行
b. #find dir -name "file-patten" | xargs grep "patten"
在某个文件夹内的特定类型的文件中查找特定字符串
#find /usr/src/linux "*.[ch]" | xargs grep "include"
在/usr/src/linux文件夹内的所有.c和.h文件中查找字符串include
应用场景实例:
有时我们为了管理服务器,可能要查看一些日志文件或管理指令的输出,并抽取出来;这时我们要用到more和grep、egrep、|(管道),如果要输出到一个文件中, 还要用到 > 。
比如我们查看/var/log/message 文件,并查找5月8号的日志;我们应该用如下的命令组合;
[root@localhost ~]# cat /var/log/messages |grep 'May 8' |more
注意:因为May和8之间有两个空格,所以得用''号括起来。
如果我们想把查看到的结果输出到一个文件中,应该用 > 输出到文件;
[root@localhost ~]# cat /var/log/messages |grep 'May 8' > ~/message0508.txt
[root@localhost ~]# more ~/message0508.txt
上面的例子,是我们首先用 cat 来查看/var/log/message 的内容,然后抽取带有 May 8字样的行,然后输出到用户家目录下的 message0508.txt文件中,然后再用more来查看message0508.txt文件内容;
从一个输出结果中查找
我们也可以从一个输出的结果中查找所需要的内容,请看下面的例子;
[root@localhost ~]# ls -lh
总计 24M
-rwxr-xr-x 1 root root 545 04-25 11:21 adduml02.sh
-rwxr-xr-x 1 root root 545 2004-01-18 adduml.sh
-rw-rw-rw- 1 root root 0 04-25 14:26 dood
drwxr-xr-t 2 root root 4.0K 04-24 21:59 googledir
-rwxr-xr-x 1 root root 7 04-21 12:47 lsfile.sh
-rw-r--r-- 1 root root 31K 05-08 13:47 message0508.txt
drwxr-xr-x 2 root root 4.0K 04-21 12:46 mkuml-2004.07.17
-rwxr-xr-x 1 root root 67K 04-22 14:13 mkuml-2004.07.17-ananas.tar.bz2
drwxr-xr-x 2 root 502 4.0K 04-25 09:08 mydir
-rw-r--r-- 1 root root 7.9M 04-27 20:35 myfile.img
-rw-r--r-- 1 root root 4.0M 04-27 20:37 myfileSpaa
-rw-r--r-- 1 root root 3.9M 04-27 20:37 myfileSpab
-rw-r--r-- 1 root root 7.9M 04-27 20:38 newmyfile.img
drwxrw-rw- 2 root root 4.0K 04-25 14:22 sundir
drwxr-xr-x 2 root root 4.0K 04-25 09:20 testdir
-rwxr-xr-x 1 root root 613 03-26 18:41 upgrade.log
-rw------- 1 root root 4.0K 04-29 20:12 vsftpd.conf
-rw-r--r-- 1 root root 4.0K 04-29 20:23 vsftpd.config
-rw-r--r-- 1 root root 100 04-27 16:14 xaa
在ls -lh 的输出结果中,查看带有04-27字样的行,我们看到带有04-27字样的行都出来了。04-27在这里表示文件创建或最后修改(访问)的时间。符合这一特征的都在里面。
[root@localhost ~]# ls -lh |grep '04-27' |more
-rw-r--r-- 1 root root 7.9M 04-27 20:35 myfile.img
-rw-r--r-- 1 root root 4.0M 04-27 20:37 myfileSpaa
-rw-r--r-- 1 root root 3.9M 04-27 20:37 myfileSpab
-rw-r--r-- 1 root root 7.9M 04-27 20:38 newmyfile.img
-rw-r--r-- 1 root root 100 04-27 16:14 xaa
查找正在运行的程序:
这也是从一个输出中查找的例子,先用ps 来列出所有正在运行中的进程,然后通过grep 来提取。下面的例子中查找是否有gaim程序在运行;
[root@localhost ~]# ps -aux |grep gaim
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.6/FAQ
beinan 2682 0.0 4.0 152644 30188 ? S 08:59 0:16 gaim
root 5660 0.0 0.0 5160 720 pts/1 S+ 13:58 0:00 grep gaim
从上面的例子,我们可以看到的确有gaim运行,进程号是2682 。如果想杀掉gaim怎么办?应该有kill 2682 或killall gaim
[root@localhost ~]# kill 2682
或
[root@localhost ~]# killall gaim
对于进程的查找,也可以用pgrep 来进行;比如我们查找gaim;
[root@localhost ~]# pgrep gaim
2682
等价于
[root@localhost ~]# ps -aux |grep gaim
Warning: bad syntax, perhaps a bogus '-'? See /usr/share/doc/procps-3.2.6/FAQ
beinan 2682 4.4 2.3 105000 17504 ? S 14:05 0:02 gaim
root 5716 0.0 0.0 5156 712 pts/1 R+ 14:06 0:00 grep gaim
linux搜索命令有哪些,linux 中的搜索命令相关推荐
- linux nslookup命令安装,在CentOS中安装nslookup命令
域名查询工具nslookup并不是Win系统的专利,Linux系统中也可以使用,不过要安装,默认没有. 在CentOS中安装nslookup命令: $ sudo yum install bind-ut ...
- 解压命令linux tgz,tar 解压_linux中的“tar命令”怎么解压“.tgz”与“.tar.gz”文件?...
在LINUX下如何将tar压缩文件解压到指定的目录下 一.解压.tar.gz格式到指定的目录下: 命令格式为:tar -zxvf [压缩包文件名.tar.gz] -C [路径]/ 例如:tar -z ...
- python运行命令_对python中执行DOS命令的3种方法总结
1. 使用os.system("cmd") 特点是执行的时候程序会打出cmd在Linux上执行的信息. import os os.system("ls") 2. ...
- qt执行命令行失败_QT中QProcess调用命令行的痛苦经历
在QT程序中需要将某些目录和文件压缩为一个rar的压缩包,于是想到了在QT中通过QProcess类调用命令行的rar.exe来达到效果,但是没想到QProcess类用起来很麻烦,而且达不到效果,折腾了 ...
- win7计算机搜索记录,怎样消除Windows7中的搜索记录
大家如果在查找文件的时候可能最直接的方法就是使用电脑中的搜索功能进行直接搜索.而且这些搜索记录都会保存,如果我们不想让人看到的话,就需要进行删除其中的搜索记录,具体的操作方法可见下方. 方法/步骤: ...
- python执行shell命令行_python执行命令行:python中执行shell命令行read结果
+++++++++++++++++++++++++++++ python执行shell命令 1 os.system (只有这个方法是边执行边输出,其他方法是最后一次性输出) 可以返回运行shell命 ...
- html 手机输入法 搜索引擎,解决网页搜索框无法使用手机输入法中的“搜索”按钮的问题...
先森之前就发现,"成航先森"在手机上访问使用搜索时,无法使用键盘上的"前往/搜索"按钮.点击没有反应,必须要点击网页中的搜索按钮才行.之前因为懒得管,就一直没有 ...
- linux mv 保持目录结构_Linux中的mv命令详解
mv命令是move的缩写,可以用来移动文件或者将文件改名(move (rename) files),是Linux系统下常用的命令,经常用来备份文件或者目录. 1.命令格式: mv [选项] 源文件或目 ...
- linux centos 回收站,详解CentOS中使用rm命令将文件移到回收站的方法
今天在终端下,看到我的用户目录下有个-的文件夹(maven生成),相要删除收回点空间,习惯性的用命令 rm -rf ~ ,一回车,猛然想起的时候已经来不及了,世界一下子清静了,想死的心都有了! 没错, ...
- 如何在linux编写perl脚本,关于linux:如何在perl脚本中插入awk命令?
我想在脚本中添加此awk命令,但始终出现错误. 我已放入"",但仍然出现错误. system("awk -F"\t" '{ for ( i=1; i& ...
最新文章
- Centos 7 yum 安装php
- error MSB8008: 指定的平台工具集(v110)未安装或无效。请确保选择受支持的 PlatformToolset 值...
- 如何解决游戏延迟,增强用户体验? 几种可行方案分享
- artTemplate的使用总结
- linux内核中分配4M以上大内存的方法
- mysql+nest+嵌套事务_MySQL——事务
- 字节跳动AI-Lab算法实习生-敏感文字方向
- L1-040 最佳情侣身高差-PAT团体程序设计天梯赛GPLT
- matlab 排列组合
- 何建坤:实施能源革命战略 促绿色低碳发展
- 利用python将图片版PDF转文字版PDF
- 即刻VR 唯快不破——2021服贸会的黑科技应用侧记
- 瑞盟国产MS523非接触式高集成读写卡芯片,PIN对PIN兼容替换RC522/RC523/CV520/PN512/FM17550/FM17520/FM17522/MH1608/NZ3801A/ZS3
- Google Earth Engine个人笔记:2 计算植被覆盖度
- 计算机进入安全模式的原因,电脑只能进入安全模式的原因及处理方法
- 梦幻西游修炼金钱计算器
- 金蝶mysql_金蝶财务软件中的数据库在哪里?
- 信用的“刚柔并进”大家信夫的普惠信用
- Unity3d 2019.3 通过 Ctrl 键让移动是固定步距
- 阴阳师哪些服务器可以跨系统转移,阴阳师怎么跨系统角色转移_阴阳师跨系统角色转移流程攻略_玩游戏网...
热门文章
- 光纤:光纤和光纤布线
- [网络安全]实操DVWS靶场复现CSRF漏洞
- 数据结构—— 一元多项式的运算(相加,相减,相乘)【C语言实现】
- 【主色提取】模糊C均值(FCM )聚类算法和彩色图像快速模糊C均值( CIQFCM )聚类算法
- 词袋模型和空间金字塔模型
- 醉后不知天在水 满船清梦压星河。—第二十一天
- ProGet 22.0 Enterprise Crack by Xacker
- Android 系统内的守护进程 - main类服务(1) : netd
- $.ajax传递数组的两种方式
- Java程序员学习Rust编程