专栏首页Java识堂Linux下的五个查找命令,有什么区别?

Linux下的五个查找命令,有什么区别?

man

学习Linux命令,就得会看帮助文档,不然选项太多,根本记不住。常用的帮助文档命令有man,info,--help。一般用man比较多,比help命令细,比info命令简单。输入 man 命令,即可进入man page(手册页面)。

man page常用的部分如下

块名

介绍

NAME

命令的名称和简要介绍

SYNOPSIS

命令的基本格式

DESCRIPTION

命令功能的概要介绍

OPTIONS

man命令最基本的部分,命令的各种选项,以及对选项的简要介绍


man java

Java命令的基本格式如下

Java命令的选项

可以看到Java支持很多参数,参数的类型就有标准参数,非标准参数多种。每个参数类型下面又包含许多参数。

man page下的常命令如下

命令

解释

向上移动一行

向下移动一行

空格或者 f [ forward(向前) ]

向下翻动一页

b [backward(前后)]

向上翻动一页

/ 搜索词 回车

在man page中查找指定内容,从上往下搜,n下一个,N上一个

? 搜索词 回车

在man page中查找指定内容,从下往上搜,n下一个,N上一个

find

find 是最常用和最强大的命令,实时遍历磁盘文件 find命令的基本语法如下

find [查找目录] [查找条件] [查找完成后的操作]

查找条件相当多,名字,类型,权限,用户,修改时间,大小,举几个例子

# 当前目录下(含子目录)以apache开头的文件
find -name "apache*"
./apache-tomcat-8.5.34
./zookeeper-3.4.12/docs/skin/images/apache-thanks.png
./zookeeper-3.4.12/docs/api/org/apache

# maxdepth可以设置查找的深度
# 查找的深度为1,即只查找当前文件夹
find -maxdepth 1 -name "apache*"
./apache-tomcat-8.5.34

# 显示/etc目录下的文件夹
find /etc -type d

# 查找权限为777的文件
find / -perm 777

文件类型有如下几种

字符

解释

d

目录

l

符号链接(指向另一个文件)

s

套接字文件

b

块设备文件

c

字符设备文件

p

命名管道文件

-

普通文件

locate

locate命令其实是"find -name"的另一种写法,但是要比后者快得多,原因在于它不搜索具体目录,而是搜索一个数据库(/var/lib/mlocate,cenos7的路径),这个数据库中含有本地所有文件信息。

cenos7上没有locate,需要手动安装

# 安装包
yum -y install mlocate
# 更新数据库
updatedb 

这个数据库每天自动更新一次,所以使用locate命令查不到最新变动过的文件。为了避免这种情况,可以在使用locate之前,先使用updatedb命令,手动更新数据库。

# 查看etc目录下的脚本
locate /etc/*.sh
/etc/dhcp/dhclient.d/chrony.sh
/etc/dhcp/dhclient.d/ntp.sh
/etc/kernel/postinst.d/51-dracut-rescue-postinst.sh

# 查看etc目录下以a开头的文件
locate /etc/a
/etc/adjtime
/etc/aliases
/etc/aliases.db

which

在PATH变量指定的路径中,搜索某个系统命令的位置,并且返回第一个搜索结果。也就是说,使用which命令,就可以看到某个系统命令是否存在,以及执行的到底是哪一个位置的命令。

看一下我的环境变量

echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/usr/lib/jdk1.8.0_191/bin:/usr/local/maven/apache-maven-3.6.1/bin

which java
/usr/lib/jdk1.8.0_191/bin/java

which grep
alias grep='grep --color=auto'
    /usr/bin/grep

whereis

显示出命令的可执行程序, 源文件(如果存在的话)以及man page的路径

whereis ls
ls: /usr/bin/ls /usr/share/man/man1/ls.1.gz

whereis java
java: /usr/lib/jdk1.8.0_191/bin/java

type

查看命令类型,常见的类型有如下几种

命令

类型

alias

别名

keyword

关键字,shell保留字

builtin

shell内置命令

file

外部命令


type ls
ls is aliased to `ls --color=auto'、

type cd
cd is a shell builtin

推荐阅读:

把Maven的架构,用法,坑点介绍的清清楚楚

Maven jar包冲突如何解决?

Java识堂

一个有干货的公众号

本文分享自微信公众号 - Java识堂(erlieStar),作者:李立敏

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-05-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 二进制的骚操作,省字段,省带宽,提效率...

    上一个礼拜和一个同事对接口,前端同事问我是不是接口文档写错了,一个订单的异常标签有多个,不应该返回一个数组吗?为啥只返回了一个数字。

    Java识堂
  • 系统总结一波Linux下find命令,查找就是这么清晰

    Linux系统中的 find 命令在查找文件时非常有用而且方便。它可以根据不同的条件来查找文件,例如权限、拥有者、修改日期/时间、文件大小等等。

    Java识堂
  • IDEA下用图形界面操作Git,节省一半以上工时

    Git的很多命令在IDEA中不用命令行也能实现,这里演示一下用图形界面可以提高效率的部分,用的是IDEA 2019,如果有更好的技巧,欢迎留言,如果对Git命令...

    Java识堂
  • 【数说君的自白】一、人口数据分析

    数说工作室之前写过一个系列《大数据与金融业》,主要搜集了数据分析挖掘在金融领域的应用和最新动态。 很多人问能不能写一下其他各领域的情况。在之前写的SVM系列中,...

    数说君
  • EntityFramework使用总结(与MVC4.0实现CURD操作)

    本篇文介绍一下Entity Framework Code First的简单用法,通过一个学生信息的增删查改来学习Entity Framework的使用及与存储过...

    写代码的猿
  • ASP.NET Web API 接口执行时间监控

    软件产品常常会出现这样的情况:产品性能因某些无法预料的瓶颈而受到干扰,导致程序的处理效率降低,性能得不到充分的发挥。如何快速有效地找到软件产品的性能瓶颈,则是我...

    张善友
  • 小文’s blog – 论坛搭建教程-附源码-直播搭建

    神无月
  • 设计模式学习(四): 1.简单工厂 (附C#实现)

    New ? ? 这是一个典型的情况, 我们需要在运行时来实例化一些具体的类. 在需要修改或者扩展的时候我们就需要改这段代码. 一个程序中可能会多次出现类似的代码...

    solenovex
  • Loadrunner中web_find和web_reg_find函数的使用与区别

    总结一下Loadrunner中的检查点函数,主要介绍两个函数:web_find()和web_reg_find();这两个函数均用于内容的查找,但两者也有本质的区...

    流柯
  • 静态逆向反汇编获取函数调用关系链

    本文提出一种通过逆向二进制文件的方式,通过反汇编的指令获取函数之间的调用关系。

    熊彪

扫码关注云+社区

领取腾讯云代金券