//   which 命令

查找可执行文件并显示所在的位置。
            格式 :which 命令或者程序名。
            which是Linux里面用来查找命令的存放路径。

注意:
            which只会到PATH 变量下定义的路径下查找,
            如果不是在PATH变量定义的路径里,which找不到。

which 很迟钝,只会到/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin 去寻找

env命令

env 是查看Linux里的环境变量的命令 environment

环境变量=全局变量 所有的命令都可以使用的

如何让which命令可以找到我们自己编译的hello二进制程序?

1.修改PAth变量的内容。   例如 :添加 /lianxi/cmd到PATH里面去。
      PATH=$ PATH:/lianxi/cmd
    2.顺应PATH变量,将你的程序放到PATH的目录下
    使用mv命令。例如将你的出现cp到/usr/bin目录下面

如果要让Linux系统找到我们自己编译安装的软件,就需要去修改PATH变量,或者将程序放到PATH变量里。

linux命令的分类:

内部命令:属于shell解释器的一部分,安装好bash就自动有的命令就是内部命令

外部命令:一切需要安装的命令都是外部命令

永久修改PATH变量:

进入 ~/.bash_profile然后修改path变量的值。

然后重新加载或者重新登录一下,讲究永久修改了PATH变量

[root@localhost ~]# ls -a
.   anaconda-ks.cfg  .bash_logout   .bashrc  .cshrc    .lesshst  .python_history  .viminfo
..  .bash_history    .bash_profile  .cache   .ipython  .pki      .tcshrc
[root@localhost ~]# vim .bash_profile # .bash_profile# Get the aliases and functions
if [ -f ~/.bashrc ]; then. ~/.bashrc
fi# User specific environment and startup programsPATH=$PATH:$HOME/bin:/sanchuang:/hunan_scexport PATH

##################################

没有可执行的权限的脚本或者命令,如果复制到PATH变量对应的目录下,是否可以使用which去查找到?
不能,which只能找到可执行文件

//   whereis 命令

用途:查找文件的路径,该文件的帮助文件路径,原理和which类似。

whereis 也只到PATH变量定义下的路径下查找。

不同点:whereis除了会显示命令的所在路径,还会显示其使用手册的所在路径。

whereis 查询会先显示命令的路径在哪里,然后显示该命令的使用手册的路径。
    /usr  是Linux存放系统资料文件的文件夹,相当于windows里面的programfile文件夹
    unix system resource

//   locate 命令

格式:locate 文件名
    根据每天更新的数据库(/var/lib/mlocate)查找,速度快。
which 。whereis locate 的差异
1.which和whereis 是查找Linux命令的工具,只能到PATH变量定义的路径下查找
只能找到命令,只到PATH变量目录下找,精确查找
2.locate 是从整个Linux系统里面找,能查找文件和命令,但是优缺点是查找新的文件,有时候找不到,
需要更新数据库,能找文件和命令,模糊查找,到mlocate.db里查找
优点是查找的速度特别快。因为是直接到数据库里查找。

因为我的虚拟机是最小安装,所以没有locate这个软件,我们先查一下locate是在通过哪个软件包下载的,可以使用  yum provides locate 查询

然后安装 mlocate就行了 使用命令  yum install mlocate -y 进行安装

等待安装完毕就行了。

现在我们试着使用locate命令来查找mkdir 所在路径

可以看到并没有直接显示mkdir的路径,而是显示没有那个文件或目录,

这个目录指的就是/var/lib/mlocate/mlocate.db 这个数据库

因为locate查找的过程是直接到数据库里查找的,使用cd 进入/var/lib/mlocate发现并没有内容

所以locate无法查找到。

解决方法:

手动更新一下数据库 使用  updatedb  命令

然后就可以使用locate命令了

缺点:

因为locate是到mlocate.db这个数据库里面来查询的,所以只能查询数据库更新后的内容。

如果在数据库更新以后再增加的内容locate就查询不到了,这个时候我们只有再次手动更新数据库

updatedb以后才能查找到。

查找的概念

1.精确查找  --》which

2.模糊查找  --》locate

mlocate.db是根据Linux系统里所有的文件和文件夹建立了一个索引

索引:相当于书的目录。方便查询的一个东西。

索引是用来快速查询的一种数据,它描述其他数据存放在哪里

Linux - 命令的查找(一) which,whereis,locate的用法相关推荐

  1. Linux系统下which, whereis, locate的用法

    Linux系统下可以通过which, whereis, locate等命令来查找文件.程序的所在位置. 1 which 通过which命令查找可执行文件/命令的位置,比如 $ which ls 查找l ...

  2. Linux下的查找命令合集(which/whereis/locate/find)

    Linux 下的查找命令有很多,常用的有which.whereis.locate.find.那么这4个命令之间各自有什么特点,又有什么区别,什么时候该用哪个才最合适呢?方便我们在开发和学习中能更加有效 ...

  3. Linux命令之查找文件locate

    概述 locate命令主要是用来查找文件的,但它的速度比find命令快很多.因为它不是按路径进行搜索的,而是去搜索一个数据库,即/var/lib/mlocate/mlocate.db.这个数据库中含有 ...

  4. Linux命令之查找

    在Linux中,有非常多方法能够做到这一点.国外站点LinuxHaxor总结了五条命令,你能够看看自己知道几条.大多数程序猿,可能常常使用当中的2到3条,对这5条命令都非常熟悉的人应该是不多的. 1. ...

  5. Linux命令之查找命令

    慢慢的用到的linux命令多了起来,又开始慢慢收集一些自己用过的命令,纪念加总结一下,方便记忆. 首先说一下find命令: find ./ -name 文件或文件夹名*(*号表示可以模糊名称部分) 其 ...

  6. 【Linux命令】查找文件命令

    文章目录 一.查找文件 locate updatedb find 测试条件 操作符 操作 预定义操作 自定义操作 find命令选项(常用) 一.查找文件 locate locate命令会查找其路径名数 ...

  7. Linux命令之查找文件find

    概述 find 命令可以在目录层次结构中搜索符合指定条件的文件或目录,并且可以它们执行指定的操作.而搜索条件可以是文件权限.文件类型.日期.大小等. 语法 该命令的语法如下: # find 命令从指定 ...

  8. Linux - 命令的查找 find命令详解

    find命令 * 可以查找文件和命令,可以模糊查找和精确查找,查找的范围是整个Linux系统 find命令是一条五星级命令,默认到 / 下面查找,因为linux所有文件都在 / 目录下面. 格式 : ...

  9. 每天一个linux命令(17):whereis 命令

    whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非 ...

最新文章

  1. 关于未来的10点核心思考
  2. hdfs 数据迁移_基于JindoFS+OSS构建高效数据湖
  3. 浙江省团校计算机考试试题及答案,2001年秋浙江省高校计算机等级考试试卷(二级C)及答案..doc...
  4. Linux的Vi编辑器
  5. layui内置loading等待加载
  6. 串口字符传输时间计算
  7. linux启动php服务_群晖docker 实现nodejs为后端的简单web服务器 并连接数据库
  8. python字典文件,python-文件转字典,字典转文件
  9. css3宽度变大动画_【动画演示】流量计的工作原理,真涨见识!
  10. redis用zset做延时消息
  11. c#水晶报表连接mysql_C# 水晶报表打印 绑定数据库表
  12. oracle 批量生成约束,关于sql脚本导入Oracle时重复生成check约束的问题解决
  13. SpringCloud 微服务 (七) 服务通信 Feign
  14. eclipse必备的15的个快捷键
  15. main函数执行前后发生了什么
  16. HBase的安装和配置
  17. js drag拖动事件
  18. android模拟器电视,Android TV开发之模拟器的设置
  19. 2022年数字IC设计提前批笔试面试全流程分享(前期海投,后期顺利拿到Offer)
  20. 小白学习Java必练基础题(一)

热门文章

  1. Persistence Context
  2. Html如何触发闹铃,HTML5设置(控制)闹铃响声的动画
  3. How to build eMMC flash programmer MPRG7x30.hex and 7x30_msimage.mbn?
  4. show engine innodb status解读
  5. 镇远县“多规合一”推进智慧城市建设
  6. I2C协议靠这16张图彻底搞懂(超详细)
  7. alv回车_ALV捕捉回车键
  8. String.matches() 与 Matcher.matches() 的区别
  9. 听说,ChatGPT 要跟打工人们抢饭碗,是真的吗?
  10. C++随机马赛克图程序