zoukankan      html  css  js  c++  java
  • Linux搜索命令

    LINUX 搜索命令

    1:whereis

    whereis 是搜索系统命令的命令(像绕口令一样),也就是说,whereis 命令不能搜索普通文件.

    而只能搜索系统命令。whereis 命令的基本信息如下。

    命令名称:whereis。

    英文原意:locate the binary, source, and manual page files for a command。

    所在路径:/usr/bin/whereis。

    执行权限:所有用户。

    功能描述:查找二进制命令、源文件和帮助文档的命令。

    2:which  命令

    which 也是搜索系统命令的命令。和 whereis 命令的区别在于:

    whereis 命令可以在查找到二进制命令的同时,查找到帮助文档的位置;

    而 which 命令在查找到二进制命令的同时,如果这个命令有别名,则还可以找到别名命令。

    which 命令的基本信息如下:

    命令名称:which。

    英文原意:shows the full path of (shell) commands。

    所在路径:/usr/bin/which。

    执行权限:所有用户。

    功能描述:列出命令的所在路径。

    3 :locate  命令

    3.1 基本用法

    locate 命令才是可以按照文件名搜索普通文件的命令。

    优点:按照数据库搜索,搜索速度快,消耗资源小。数据库位置/var/lib/mlocate/mlocate.db,

    可以使用 updatedb 命令强制更新数据库。

     缺点:只能按照文件名来搜索文件,而不能执行更复杂的搜索,比如按照权限、大小、修改

    时间等搜索文件。

    locate 命令的基本信息如下。

    命令名称:locate。

    英文原意:find files by name。

    所在路径:/usr/bin/locate。

    执行权限:所有用户。

    功能描述:按照文件名搜索文件。

    Updatedb //强制更新数据库

    4:find

    功能描述:在目录中搜索文件。

    4.1 按照文件名搜索

    [root@localhost ~]# find 搜索路径 [选项] 搜索内容

    选项:

    -name: 按照文件名搜索

    -iname: 按照文件名搜索,不区分文件名大小写

    -inum: 按照 inode 号搜索

    4.2.按照文件大小搜索

    find 搜索路径 [选项] 搜索内容

    选项:-size [+|-]大小:  按照指定大小搜索文件

    4.3 按照修改时间搜索

    Linux 中的文件有访问时间(atime)、数据修改时间(mtime)、状态修改时间(ctime)这三个时间,我们也可以按照时间来搜索文件。

    -atime [+|-]时间:  按照文件访问时间搜索

    -mtime [+|-]时间:  按照文件数据修改时间搜索

    -ctime [+|-]时间:  按照文件状态修改时间搜索

    -5:代表 5 天内修改的文件。

    5:代表前 5~6 天那一天修改的文件。

    +5:代表 6 天前修改的文件。

     

    4.4 按照权限搜索

    -perm 权限模式: 查找文件权限刚好等于“权限模式”的文件

    -perm -权限模式: 查找文件权限全部包含“权限模式”的文件

    -perm +权限模式: 查找文件权限包含“权限模式”的任意一个权限的文件.

    +444 只要有一个比4打就能查到

    -444  所有的都要比4大

    4.5 按照所有者和所属组搜索

    find 搜索路径 [选项] 搜索内容

    选项:

    -uid 用户 ID:  按照用户 ID 查找所有者是指定 ID 的文件

    -gid 组 ID: 按照用户组 ID 查找所属组是指定 ID 的文件

    -user 用户名:  按照用户名查找所有者是指定用户的文件

    -group 组名:  按照组名查找所属组是指定用户组的文件

    -nouser:  查找没有所有者的文件

    按照所有者和所属组搜索时,“-nouser”选项比较常用,主要用于查找垃圾文件。

    4.6 按照文件类型搜索

    -type d:  查找目录

    -type f:  查找普通文件

    -type l:  查找软链接文件

    find . –type d

    4.7  逻辑运算符

    -a: and 逻辑与

    -o: or 逻辑或

    -not: not 逻辑非

    (1)-a:and 逻辑与

    find 命令也支持逻辑运算符选项,其中-a 代表逻辑与运算,也就是-a 的两个条件都成立,find 搜

    索的结果才成立。举个例子:

    [root@localhost ~]# find . -size +2k -a -type f

    # 在当前目录下搜索大于 2KB ,并且文件类型是普通文件的文件

    (2)-o:or 逻辑或

    -o 选项代表逻辑或运算,也就是-o 的两个条件只要其中一个成立,find 命令就可以找到结果。例

    如:

    [root@localhost ~]# find . -name cangls -o -name bols

    ./cangls

    ./bols

    # 在当前目录下搜索文件名要么是 cangls 的文件,要么是 bols 的文件

    (3)-not:not 逻辑非

    -not 是逻辑非,也就是取反的意思。举个例子:

    [root@localhost ~]# find . -not -name cangls

    # 在当前目录下搜索文件名不是 cangls 的文件

    4.8 grep(正则表达式)

    grep在文件中搜索字符串.

    [root@localhost ~]# grep [选项] "搜索内容" 文件名

    选项:-i: 忽略大小写

    -n: 输出行号

    -v: 反向查找

    --color=auto:  搜索出的关键字用颜色显示

    grep --color=auto EXEC con.sqx

    4.9  find与grep的区别

    find 也是搜索命令,那么 find 命令和 grep 命令有什么区别呢?

    (1)find 命令

    find 命令用于在系统中搜索符合条件的文件名,如果需要模糊查询,则使用通配符进行匹配,通配符

    是完全匹配(find 命令可以通过-regex 选项,把匹配规则转为正则表达式规则,但是不建议如此)。

    (2)grep 命令

    grep 命令用于在文件中搜索符合条件的字符串,如果需要模糊查询,则使用正则表达式进行匹配,

    正则表达式是包含匹配。

    (3)通配符与正则表达式的区别

    通配符:用于匹配文件名,完全匹配

    通 配 符  作 用

    ?  匹配一个任意字符

    *  匹配 0 个或任意多个任意字符,也就是可以匹配任何内容

    []  匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c

    [-]  匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母

    [^]  逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符

    正则表达式:用于匹配字符串,包含匹配

    正 则 符  作 用

    ?  匹配前一个字符重复 0 次,或 1 次(?是扩展正则,需要使用 egrep 命令)

    *  匹配前一个字符重复 0 次,或任意多次

    []  匹配中括号中任意一个字符。例如,[abc]代表一定匹配一个字符,或者是 a,或者是 b,或者是 c

    [-]  匹配中括号中任意一个字符,-代表一个范围。例如,[a-z]代表匹配一个小写字母

    [^]  逻辑非,表示匹配不是中括号内的一个字符。例如,[^0-9]代表匹配一个不是数字的字符

    ^  匹配行首

    $  匹配行尾

    4.10 管道的用法 |

    命令格式: 命令1 | 命令2

    命令 1 的正确输出作为命令 2 的操作对象

    find . –name “*.h”|xargs grep “abc”

    find . –name “*.h” -> | 管道运算符查找结果为字符串放入,后面命令的缺失选项中。

    [root@localhost ~]# ll -a /etc/ > /root/testfile

    # 用输出重定向,把 ll 命令的输出保存到 /root/testfile 文件中

    ll -a /etc/ | more  显示/etc下面所有文件 | more显示出来

    4.11:网络状态命令

    netstat [选项]

    选项:

    -a: 列出所有网络状态,包括 Socket 程序

    -c 秒数:  指定每隔几秒刷新一次网络状态

    -n: 使用 IP 地址和端口号显示,不使用域名与服务名

    -p: 显示 PID 和程序名

    -t: 显示使用 TCP 协议端口的连接状况

    -u: 显示使用 UDP 协议端口的连接状况

    -l: 仅显示监听状态的连接

    -r: 显示路由表

    netstat -an | grep "ESTABLISHED" | wc -l

    统计网络连接的数量

  • 相关阅读:
    web.xml+spring mvc基本配置
    REST服务安全-双向认证
    thymeleaf 配置
    jenkins
    linux下ssh/scp无密钥登陆方法
    java编译 Error: Could not find or load main class java执行包main方法
    文本按列导入excel
    linux脚本-判断进程是否存在,从而可以做预警处理..
    Linux中顿号
    >/dev/null 2>&1
  • 原文地址:https://www.cnblogs.com/love-life-insist/p/11373092.html
Copyright © 2011-2022 走看看