Linux - 命令的查找(一) which,whereis,locate的用法
// 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的用法相关推荐
- Linux系统下which, whereis, locate的用法
Linux系统下可以通过which, whereis, locate等命令来查找文件.程序的所在位置. 1 which 通过which命令查找可执行文件/命令的位置,比如 $ which ls 查找l ...
- Linux下的查找命令合集(which/whereis/locate/find)
Linux 下的查找命令有很多,常用的有which.whereis.locate.find.那么这4个命令之间各自有什么特点,又有什么区别,什么时候该用哪个才最合适呢?方便我们在开发和学习中能更加有效 ...
- Linux命令之查找文件locate
概述 locate命令主要是用来查找文件的,但它的速度比find命令快很多.因为它不是按路径进行搜索的,而是去搜索一个数据库,即/var/lib/mlocate/mlocate.db.这个数据库中含有 ...
- Linux命令之查找
在Linux中,有非常多方法能够做到这一点.国外站点LinuxHaxor总结了五条命令,你能够看看自己知道几条.大多数程序猿,可能常常使用当中的2到3条,对这5条命令都非常熟悉的人应该是不多的. 1. ...
- Linux命令之查找命令
慢慢的用到的linux命令多了起来,又开始慢慢收集一些自己用过的命令,纪念加总结一下,方便记忆. 首先说一下find命令: find ./ -name 文件或文件夹名*(*号表示可以模糊名称部分) 其 ...
- 【Linux命令】查找文件命令
文章目录 一.查找文件 locate updatedb find 测试条件 操作符 操作 预定义操作 自定义操作 find命令选项(常用) 一.查找文件 locate locate命令会查找其路径名数 ...
- Linux命令之查找文件find
概述 find 命令可以在目录层次结构中搜索符合指定条件的文件或目录,并且可以它们执行指定的操作.而搜索条件可以是文件权限.文件类型.日期.大小等. 语法 该命令的语法如下: # find 命令从指定 ...
- Linux - 命令的查找 find命令详解
find命令 * 可以查找文件和命令,可以模糊查找和精确查找,查找的范围是整个Linux系统 find命令是一条五星级命令,默认到 / 下面查找,因为linux所有文件都在 / 目录下面. 格式 : ...
- 每天一个linux命令(17):whereis 命令
whereis命令只能用于程序名的搜索,而且只搜索二进制文件(参数-b).man说明文件(参数-m)和源代码文件(参数-s).如果省略参数,则返回所有信息. 和find相比,whereis查找的速度非 ...
最新文章
- 关于未来的10点核心思考
- hdfs 数据迁移_基于JindoFS+OSS构建高效数据湖
- 浙江省团校计算机考试试题及答案,2001年秋浙江省高校计算机等级考试试卷(二级C)及答案..doc...
- Linux的Vi编辑器
- layui内置loading等待加载
- 串口字符传输时间计算
- linux启动php服务_群晖docker 实现nodejs为后端的简单web服务器 并连接数据库
- python字典文件,python-文件转字典,字典转文件
- css3宽度变大动画_【动画演示】流量计的工作原理,真涨见识!
- redis用zset做延时消息
- c#水晶报表连接mysql_C# 水晶报表打印 绑定数据库表
- oracle 批量生成约束,关于sql脚本导入Oracle时重复生成check约束的问题解决
- SpringCloud 微服务 (七) 服务通信 Feign
- eclipse必备的15的个快捷键
- main函数执行前后发生了什么
- HBase的安装和配置
- js drag拖动事件
- android模拟器电视,Android TV开发之模拟器的设置
- 2022年数字IC设计提前批笔试面试全流程分享(前期海投,后期顺利拿到Offer)
- 小白学习Java必练基础题(一)
热门文章
- Persistence Context
- Html如何触发闹铃,HTML5设置(控制)闹铃响声的动画
- How to build eMMC flash programmer MPRG7x30.hex and 7x30_msimage.mbn?
- show engine innodb status解读
- 镇远县“多规合一”推进智慧城市建设
- I2C协议靠这16张图彻底搞懂(超详细)
- alv回车_ALV捕捉回车键
- String.matches() 与 Matcher.matches() 的区别
- 听说,ChatGPT 要跟打工人们抢饭碗,是真的吗?
- C++随机马赛克图程序