Linux查询相关命令

查询相关命令

1.which:

  • 功能描述:显示命令的绝对路径
  • 命令格式:which [commands]

2.whereis:

  • 功能描述:显示命令的绝对路径、帮助手册路径、命令的源码文件路径。
  • 命令格式:whereis [commands]
  • 常用选项:
    • -b:定位指定命令的绝对路径
    • -m:定位指定命令的帮助手册路径(即man帮助手册文档位置)
    • -s:定位指定命令的源码文件路径

3.locate:

  • 功能描述:通过文件名进行文件位置查询 {locate命令进行文件查询并不是使用遍历的方式进行查找,而是事先创建好一个数据库,将所有文件的名称和对应路径保存在了其中,当查询文件时,只需要对数据库查询即可,速度上来说更迅速}
  • 格式:locate + 关键字(会尽可能搜索出所有带关键词的文件)
  • 数据库文件:/var/lib/mlocate/mlocate.db
  • 数据库更新:updatedb
    建议每次查询前先更新下数据库
  • 更新规则文件:/etc/updatedb.conf
    配置文件中记录了一些忽略不更新的文件类型和目录。

查询方式:

  • 数据库方式查询:
    在已经创建好的数据库内查询(不一定准确,因为数据库可能不是最新版)
  • 遍历式查询:
    所有目录,每一个文件都去查看,是否符合查询条件(结果100%准确,查询相对较慢)

4.find

  • 功能描述:与locate功能一样,但find不是通过数据库查,而是使用遍历查询。
    find遍历式查询:挨个将每一个文件查看,确定其是否符合条件。
  • 格式:
    find + 查询位置 + 条件
按照文件名:

默认精准查询,若模糊查询需使用通用匹配符号(通配符)。
通配符号:

  • *:代表任意长度的任意字符(包括空,即没有)
  • ?:代表一个任意字符(长度为一)
  • []:每个中括号只能代表一个字符,而字符范围取决于括号内指定的范围。
    • [a-z]:字符范围a-z
    • [a,x,v]:字符中有a、o、v的
    • [^a]:逻辑非,取反,即除了括号中内容。匹配指定范围内某一个字符

-name选项后的关键词必须使用双引号

$ find /etc -name "*.txt"

在这里插入图片描述

按照大小:
$ find  /etc  -size  +5M
$ find  /etc  -size  -5M
$ find  /etc  -size  +3M  -a  -size  -5M
# -a 要求两个条件同时生效(and)
按归属查询:
# 查询文件所有者是指定用户的文件
$ find  /  -user  laow

# 查询文件所有者是指定组的文件
$ find  /  -group  laow

# 无效文件查询:
# 查询文件没有所有者的文件
$ find / -nouser

# 查询文件没有所属组的文件
$ find  /  -nogroup

将用户删除后,被删除用户之前创造的文件就会没有所有者、所属组。

按权限查询:
$ find /etc -perm 777
按类型查询:
$ find  /etc  -type  f/d/l/b......

# 查询系统内权限过大的普通文件
$ find  /  -perm  777  -a  -type  f
根据inode号查询:
$ find / -inum + inode号

若根据同一个inode号查询出多个文件,则多个文件之间互为硬链接。

根据时间查询:
  • 按文件访问时间(-atime/天,-amin/分钟):用户最近一次访问时间。
  • 按内容修改时间(-mtime/天,-mmin/分钟):文件最后一次内容修改时间。
  • 按属性修改时间(-ctime/天,-cmin/分钟):文件数据元(权限等)的最后一次修改时间。
  • -N:N天内或N分钟内访问过的文件
  • N:恰好在第N天或第N分钟访问过的文件
  • +N:N天前或N分钟前被访问过的文件
# 查询根下的etc下,在9小时内被修改过文件内容的文件。
$ find  /etc  -mmin  -540
多条件同时查询:
# 查询根下权限为777且文件类型是普通类型的文件。
$ find  /  -perm  777  -a  -type  f

# 查询根下的etc下的普通文件并且大小小于1MB或者大于5MB。
$ find /etc -type f -a -size -1M -o -size +5M
  • -a:and的意思,将两个或两个以上的查询条件结合在一起进行文件查询(必须同 时符合所有条件)
  • -o:or的意思,多个条件结合后,其中一条条件符合就算符合查询要求,然后列出

将find查询到的结果二次处理

命令连接符
方法一:-exec
# 将查询到的符合条件的文件用-exec转交给命令2进行处理。
$ find + 查询位置 + 查询条件 + -exec + 命令2 + 选项 + {} + \;
$ find /root -name "*.txt" -exec ls -l {} \;
  • {} 保存了find命令的结果
  • \ 当命令前有反斜杠时。执行的是命令本意,而不是命令的别名(取消了命令的别名)
    这里虽然出现在后面,但是作用一样。
  • ; 命令结束符号

补充:-ok可以替换-exec,作用是每一次命令2的执行都会询问。

方法二:独立的命令连接方式 |xargs
# find每查询到符合条件的文件,就立刻传给xargs后的命令2上。
$ find + 查询位置 + 查询条件 + | xargs + 命令2

拓展:

  • 管道符“|”:将前一个命令的执行的结果,作为后一个命令的执行对象。
# 分页显示etc目录下所有文件的长格式信息
$ ls  -l  /etc  |  more


# 分页显示etc目录下每一个文件的内容(依次显示)
$ ls  -l  /etc  | xargs  more

5.grep:查询文件内的关键词

选项:

  • -i:查询时忽略大小写
  • -n:列出查询到的信息时,标注它在自己文件中的行号。
  • -v:查询时将条件反转,即查询不包含xx的文件。
  • –color=auto:将符合条件对象高亮显示。

grep别名为grep --color=aotu。CentOS6中没有别名,需要手动添加。

组合使用:

  • 格式1:
# 将指定文件中包含关键词的行列出
$ grep + “关键词” + 文件名
  • 格式2:
# 命令|grep “关键词”

# 将etc目录下普通文件以长格式列出后,查询其中带有rwx的文件并显示出来。
$ find /etc -type f|xargs ls -l | grep "rwx"

# 将etc目录下所有文件以长格式列出后,查询其中带有rwx的文件并显示出来。
$ ls -l /etc | grep "rwx"

#查看是否开放了80端口。
$ netstat -antp | grep ":80"
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值