RHEL查找定位文件命令

简介: 1.pwd命令2.cd命令3.ls命令4.tree命令5.find命令6.locate命令7.whereis命令8.which命令

工作目录指的是用户当前在系统中所处的位置。

1.pwd命令

pwd 命令用于显示用户当前所处的工作目录,英文全称为“print working directory”,输 入该命令后按回车键执行即可。

使用 pwd 命令查看当前所处的工作目录:

[root@rhel-8 ~]# pwd/root

2.cd命令

cd 命令用于切换当前的工作路径,英文全称为“change directory”,语法格式为“cd [参 数] [目录]”。

使用“cd -”命令返回到上一次所处的目录, 使用“cd ..”命令进入上级目录,以及使用“cd ~”命令切换到当前用户的家目录,抑或使用 “cd ~username”命令切换到其他用户的家目录

使用下述的 cd 命令切换进/etc 目录中:

[root@rhel-8 ~]# cd /etc

同样的道理,可使用下述命令切换到/bin 目录中:

[root@rhel-8 etc]# cd /bin

此时,要返回到上一次的目录(即/etc 目录),可执行如下命令:

[root@rhel-8 bin]# cd -/etc

还可以通过下面的命令快速切换到用户的家目录:

[root@rhel-8 etc]# cd ~[root@rhel-8 ~]#

3.ls命令

ls 命令用于显示目录中的文件信息,英文全称为“list”,语法格式为“ls [参数] [文件名称]”。

使用 ls 命令的-a 参数 可以看到全部文件(包括隐藏文件),使用-l 参数可以查看文件的属性、大小等详细信息。将 这两个参数整合之后,再执行 ls 命令即可查看当前目录中的所有文件并输出这些文件的属性信息:

image.png

4.tree命令

tree 命令用于以树状图的形式列出目录内容及结构,输入该命令后按回车键执行即可。

虽然 ls 命令可以很便捷地查看目录内有哪些文件,但无法直观地获取到目录内文件的层 次结构。

tree 命令则能够以树状图的形式列出目录内所有文件的结构。

使用 ls 命令查看目录内的文件:

[root@rhel-8 ~]# lsa  anaconda-ks.cfg  hello.c  initial-setup-ks.cfg

使用 tree 命令查看目录内文件名称以及结构:

[root@rhel-8 ~]# tree.
├── a
│   └── b
│       └── c
├── anaconda-ks.cfg
├── hello.c
└── initial-setup-ks.cfg
3 directories, 3 files

5.find命令

find 命令用于按照指定条件来查找文件所对应的位置,语法格式为“find [查找范围] 寻 找条件”。

在 Linux 系统中,搜索工作一般都是通过 find 命令来完成的,它可以使用不同的文件特性作 为寻找条件(如文件名、大小、修改时间、权限等信息),一旦匹配成功则默认将信息显示到 屏幕上。find 命令的参数以及作用如表

image.png

-exec用于把 find 命令搜索到的结果交由紧 随其后的命令作进一步处理。

如果要想获取该目录中所有以 host 开头的文件列表,可 以执行如下命令:

[root@rhel-8 ~]# find /etc -name "host*"/etc/host.conf
/etc/hosts
/etc/hosts.allow
/etc/hosts.deny
/etc/avahi/hosts
/etc/hostname

如果要在整个系统中搜索权限中包括 SUID 权限的所有文件,只需使用 -4000 即可:

[root@rhel-8 ~]# find / -perm -4000 -print/usr/bin/fusermount
/usr/bin/chage
/usr/bin/gpasswd
/usr/bin/newgrp
/usr/bin/umount
/usr/bin/mount
/usr/bin/su

进阶实验: 在整个文件系统中找出所有归属于 charlie 用户的文件并复制到/root/findresults 目录中。

该实验的重点是“-exec {} \;”参数,其中的{}表示 find 命令搜索出的每一个文件,并且 命令的结尾必须是“\;”。完成该实验的具体命令如下:

[root@rhel-8 ~]# find / -user charlie -exec cp -a {} /root/findresults/ \;

6.locate命令

locate 命令用于按照名称快速搜索文件所对应的位置,语法格式为“locate 文件名称”。

使用 find 命令进行全盘搜索虽然更准确,但是效率有点低。如果仅仅是想找一些常见的 且又知道大概名称的文件,不如试试 locate 命令。在使用 locate 命令时,先使用updatedb 命令生成一个索引库文件,这个库文件的名字是/var/lib/mlocate/mlocate.db,后续在使用 locate 命令搜索文件时就是在该库中进行查找操作,速度会快很多。

第一次使用locate 命令之前,记得先执行updatedb 命令来生成索引数据库,然后再进行查找:

[root@rhel-8 ~]# updatedb[root@rhel-8 ~]# ls -l /var/lib/mlocate/mlocate.db-rw-r-----. 1 root slocate 4201248 Nov 1114:05 /var/lib/mlocate/mlocate.db

使用 locate 命令搜索出所有包含“whereis”名称的文件所在的位置:

[root@rhel-8 ~]# locate whereis/usr/bin/whereis
/usr/share/bash-completion/completions/whereis
/usr/share/man/man1/whereis.1.gz

7.whereis命令

whereis 命令用于按照名称快速搜索二进制程序(命令)、源代码以及帮助文件所对应的 位置,语法格式为“whereis 命令名称”。

简单来说,whereis 命令也是基于 updatedb 命令所生成的索引库文件进行搜索,它与 locate 命令的区别是不关心那些相同名称的文件,仅仅是快速找到对应的命令文件及其帮助文件所 在的位置。

下面使用 whereis 命令分别查找出 ls 和 pwd 命令所在的位置:

[root@rhel-8 ~]# whereis lsls: /usr/bin/ls /usr/share/man/man1/ls.1.gz /usr/share/man/man1p/ls.1p.gz
[root@rhel-8 ~]# whereis pwdpwd: /usr/bin/pwd /usr/share/man/man1/pwd.1.gz /usr/share/man/man1p/pwd.1p.gz

8.which命令

which 命令用于按照指定名称快速搜索二进制程序(命令)所对应的位置,语法格式为 “which 命令名称”。

which 命令是在 PATH 变量所指定的路径中,按照指定条件搜索命令所在的路径。也就是 说,如果我们既不关心同名文件(find 与 locate),也不关心命令所对应的源代码和帮助文件 (whereis),仅仅是想找到命令本身所在的路径,那么这个 which 命令就太合适了。下面查找 一下 locate 和 whereis 命令所对应的路径:

[root@rhel-8 ~]# which locate/usr/bin/locate
[root@rhel-8 ~]# which whereis/usr/bin/whereis


相关文章
|
缓存 开发工具
RedHat8.4配置本地yum软件仓库(RHEL8.4)
RedHat8.4配置本地yum软件仓库(RHEL8.4)
2501 0
RedHat8.4配置本地yum软件仓库(RHEL8.4)
|
机器学习/深度学习 存储 算法
竞争学习原理与策略| 学习笔记
快速学习竞争学习原理与策略。
竞争学习原理与策略| 学习笔记
|
9月前
|
机器学习/深度学习 缓存 人工智能
《DeepSeek在高并发下的性能秘籍:稳定性与速度保障》
DeepSeek是一款基于Transformer架构的大语言模型,专为高并发场景设计。通过自注意力机制、分布式系统和负载均衡技术,DeepSeek能高效处理多请求,确保稳定性和快速响应。其缓存机制加速数据获取,模型优化提升计算效率,动态资源调配灵活应对流量波动。这些技术共同作用,使DeepSeek在智能客服、内容推荐等场景中表现出色,成为高并发应用的理想选择。
968 10
|
运维 JavaScript Linux
容器内的Nodejs应用如何获取宿主机的基础信息-系统、内存、cpu、启动时间,以及一个df -h的坑
本文介绍了如何在Docker容器内的Node.js应用中获取宿主机的基础信息,包括系统信息、内存使用情况、磁盘空间和启动时间等。核心思路是将宿主机的根目录挂载到容器,但需注意权限和安全问题。文章还提到了使用`df -P`替代`df -h`以获得一致性输出,避免解析错误。
485 1
|
Prometheus 监控 Cloud Native
使用Spring Boot和Prometheus进行监控
使用Spring Boot和Prometheus进行监控
|
机器学习/深度学习 人工智能 算法
【机器学习】机器学习与AI大数据的融合:开启智能新时代
【机器学习】机器学习与AI大数据的融合:开启智能新时代
660 1
|
存储 安全 算法
Java中的LinkedBlockingQueue:原理、应用与性能深入剖析
Java中的LinkedBlockingQueue:原理、应用与性能深入剖析
|
关系型数据库 MySQL
MySQL的5种时间类型的比较
MySQL的5种时间类型的比较
|
Kubernetes 网络协议 应用服务中间件
kubernetes核心技术之Service知识点总结
kubernetes核心技术之Service知识点总结
306 0
|
Java 测试技术 开发者
Java线程池ThreadPoolExcutor源码解读详解09-4种拒绝策略
本文介绍了线程池的四种拒绝策略:AbortPolicy、DiscardPolicy、DiscardOldestPolicy和CallerRunsPolicy,并通过代码示例展示了它们在任务过多时的不同处理方式。AbortPolicy会抛出异常并停止主线程;DiscardPolicy会默默丢弃新任务;DiscardOldestPolicy会抛弃队列中最旧的任务来接纳新任务;而CallerRunsPolicy则是由调用者线程执行被拒绝的任务,以减缓新任务的提交速度。这四种策略适用于不同的场景,开发者可以根据需求选择合适的策略。
1641 5
下一篇
oss云网关配置