TMUX天下第一

全世界所有用CLI Linux的人都应该用TMUX,我爱它!

======================== 以下是正文 ========================

Linux下面常用的搜索命令有这些:find locate grep which whereis。其中在我用的SuSE上,并没有locate,所以也不能用它神奇的手动更新数据库和"高速"索引查找,而grep是文字查找命令(但是配合某些命令共同执行有奇效)。下面我们来看一看他们都是干嘛的

上面四个窗格对应了四个不同的查找命令

grep:

grep命令用于在文本文件中查找字符串,可以理解为不用打开文件就能找到文件里有没有某些内容。由于linux一切皆文件的特性,在输入某些带有返回值的命令(比如你用ls的时候他就返回给你很多内容,这个内容就是返回值)时,可以通过管道(就是上面命令里面的‘|’)把前一个命令的输出作为后一个命令的输入,于是乎grep就可以帮你“查找文件”了

用的时候:

<command a> | grep [-P] '[Regular Expression]'  其中-P调用perl进行高级正则表达式调用,正则表达式外的单引号不可以缺少

which:

which命令相对比较专一,所以也就比较菜。他只查找在环境变量里面的可执行文件(Linux Man Page里面讲它是用来搜索“Program”也就是“程序”的)。Linux不像Windows,它的环境变量真的长得像环境变量,查看则是输入“echo $PATH”,所以只有放在各种bin目录,并且这个bin目录被添加进path里面的程序才能被which命令找到。

注意,这个命令并不支持正则表达式,也不支持通配符*或是?,也就是说你得知道你要找的程序的全名

find:

这个命令是linux通用搜索命令,他会直接检索整个磁盘来找你输入的东西,支持的参数超过二十个,非常非常强大的同时,也非常非常慢,海峡对岸某些朋友称这个命令“操硬碟”。在此处我不打算讨论它,毕竟如上图所示我都完成剩下三个命令的实例加上截图操作,他都没有运行完……

whereis:

个人感觉比较鸡肋的一个命令……希望有识之士告诉小弟这个命令的独到之处。

如图所示他只能查找二进制bin、源代码src和帮助man这几个目录下面的东东,具体他检索那些目录,请使用whereis * 来查询

FIND 命令踩坑合集:

2019.03.25 update:

-name可以用通配符*,要使用正则表达式请使用-regex

——某些网站的教程是有Bug的,他们把所有的参数都标成了<范本样式>然而……大部分的“范本样式”不可以使用正则

2019.03.28 update:

-regex匹配的是全路径,也就是说针对一个存放在/a/b/c/路径下面的文件dashboard.sh,针对它的文件名写find,如果用regex,写法是:

√:find / -regex ".*/dashboard.*"

×:find / -regex "dashboard.*"  #实质上在找根目录下的dashboard

你也可以写成:

√:find / -name "dashbo*.sh"  #适用于你真的记不起来全名了

2019.04.02 update:

虽然shell或是bash中允许你把 find / -name "dashbo*.sh"  写成 find / -name dashbo*.sh ,但是这样查找结果会不准确。原因是对于通配符,shell会将他展开。

参见:https://segmentfault.com/q/1010000003090158 此链接中 kemad 大神的解释。

其原理和:https://www.cnblogs.com/jackablack/p/10637181.html 中第一个坑的原理相同。

以上就是我的一些拙见,说实话find真的……学了用了快一个月还没搞明白具体如何运作的……惭愧

学明白了在把一些想法放上来吧!可怜的硬碟,要被 /usr/bin/find 艹啦!

[2019.03.25]Linux中的查找的更多相关文章

  1. [转帖]Linux教程(14)- Linux中的查找和替换

    Linux教程(14)- Linux中的查找和替换 2018-08-22 07:03:58 钱婷婷 阅读数 46更多 分类专栏: Linux教程与操作 Linux教程与使用   版权声明:本文为博主原 ...

  2. 25 Linux中的信号

    Linux中的信号 信号是进程在运行过程中,由自身产生或由进程外部发过来的消息(事件).每个信号用一个整型常量宏表示,以SIG开头,比如SIGCHLD.SIGINT等,它们在系统头文件中定义,也可以通 ...

  3. linux中的查找命令

    which命令:使用which命令可以看到某个系统命令是否存在,以及执行的到底是哪一个位置上的命令.在PATH指定的路径中进行搜索, 返回第一个搜索结果. which grep /bin/grep   ...

  4. Linux中的查找命令find

    原文:http://blog.csdn.net/windone0109/article/details/2817792 查找目录:find /(查找范围) -name '查找关键字' -type d ...

  5. linux中的查找命令find,locate,which,whereis

    我们经常在linux要查找某个文件,但不知道放在哪里了,可以使用下面的一些命令来搜索.这些是从网上找到的资料,因为有时很长时间不会用到,当要用的时候经常弄混了.  which       查看可执行文 ...

  6. linux中快速查找文件

    在使用linux时,经常需要进行文件查找.其中查找的命令主要有find和grep.两个命令是有区的. 区别:(1)find命令是根据文件的属性进行查找,如文件名,文件大小,所有者,所属组,是否为空,访 ...

  7. Linux中文件查找,压缩和打包指令

    1.文件的查找和搜索 可执行文件的搜索:which .whereis locate搜索文件 find搜索文件       1.1可执行文件的搜索       在Linux系统中,有成百上千个指令,不同 ...

  8. [2019.03.22] Linux 学习心得(1)

    本文关键词:shell 判断.grep正则表达式使用和贪婪匹配理解 1. if [ $a -le $b ], 一开始自学的时候我以为 [ ... ] 就是普通的,语法规定的结构,结果其实人家是&quo ...

  9. 2019.03.25 git

    Git简介: Git是一个分布式版本控制软件. 背景故事: Linus在1991年创建了开源的Linux. 在2002年以前:世界各地的志愿者把源代码文件通过diff的方式发给Linus,然后Linu ...

随机推荐

  1. 事件Event一

    事件(Event)例如:最近的视觉中国'黑洞事件'.我们大多数人(订阅者)是通过XX平台(发布者)得知的这一消息,然后订阅者A出售视觉中国的股票(触发的方法),订阅者B买入视觉中国的股票. using ...

  2. 基于vue.js的简单用户管理

    功能描述:添加.修改.搜索过滤 效果图: <!DOCTYPE html> <html lang="en"> <head> <title&g ...

  3. Raptor井字棋游戏

    作为大学第一个小作品,记录一下,也给那些想接触到Raptor游戏的人一个小小的参考QAQ至于Raptor的语法和使用,可以参考一下他的帮助手册,看不懂英文的话可以复制放到翻译上看. 以上是主函数 以下 ...

  4. ABAP案例:灵活读取SAP各表的数据

    案例说明     RFC读取表中数据. Import 参数名称 Type spec. 参考打印 FIELDS_NAME1 TYPE CHAR25 TABLE_NAME1 TYPE CHAR25 WHE ...

  5. 使用C# 操作存储过程,执行sql语句通用类

    如何使用C# 操作存储过程,执行sql语句? 闲话不多说,直接上代码:     /// <summary>    /// Sql通用类    /// </summary>    ...

  6. Spring 中 IoC 容器简介

    IoC 是一种通过描述来生成或者获取对象的技术,可以说 Spring 是一种基于 IoC 容器编程的框架 在一个系统中可以生成各种对象,并且这些对象都需要进行管理.为了描述这些对象关系,我们需要一个容 ...

  7. div在另一个div居中对齐

    position:fixed; top:0; right:0; left:0; bottom:0; margin:auto;

  8. 山西大同大学教务处学生端--送给学弟,学妹的礼物,可在PC端,手机端操作

    解决问题:大同大学教务处官网学生端口一进去就卡住了,点上面一行的菜单无响应 转眼已是四年,想想自己大学即将结束,不由得让人感慨啊.这才刚开学几天,我就听到有同学在因为补考,选课的事情发愁.学校官方的教 ...

  9. (办公)springboot配置表单验证@Valid

    项目用到了springboot,本来很高兴,但是项目里什么东西都没有,验证,全局异常这些都需要自己区配置.最近springboot用的还是蛮多的,我还是做事情,把经验发表一下. SpringBoot提 ...

  10. C#的扩展方法(this)

    先在StringLibrary类中定义一个静态方法,如下: public static class StringLibrary { //第一个参数指定该方法作用于哪个类型,并且该参数以 this 修饰 ...