zoukankan      html  css  js  c++  java
  • Centos常用命令之:搜索

    在linux中,所有的文件都是以目录树的形式存在的。而每个发行版的文件存放之间又会有些差别。

    这时候,如果我们想看某个命令或者文档的时候就必须先通过某种方式找到改文档的所在位置。

    在linux中提供了以下几种方式来查找

    which:查找命令

    whereis:寻找特定文件

    locate:寻找特定文件

    find:查找文件

    grep:查找文件内容(重要)

    which

    which默认是根据[$PATH]这个环境变量中设置的路径去查找,并且只查找第一个

    使用方式:which [-a] 命令,-a :表示列出所有的,而不是仅仅第一个

    使用例

    [fuwh@localhost ~]$ which ifconfig
    /sbin/ifconfig
    [fuwh@localhost ~]$ which which
    alias which='alias | /usr/bin/which --tty-only --read-alias --show-dot --show-tilde'
            /usr/bin/which
    [fuwh@localhost ~]$ which cd
    /usr/bin/which: no cd in (/usr/lib/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin:/home/fuwh/bin)
    [fuwh@localhost ~]$

    可以看到,上面的查找结果中,有出现alias,这表示别名。

    还有,cd这个命令居然找不到,这是因为cd是系统内建的命令,而不在PATH中。

    [fuwh@localhost ~]$ type cd
    cd is a shell builtin
    [fuwh@localhost ~]$

    whereis

    在linux中,有一个数据库是用来维护所有的文件系统信息的。就是/var/lib/mlocate/mlocate.db。

    而whereis和locate命令都是从这个数据库中去查找,所以非常的快速。但是这个数据库默认是每天升级一次,所以

    新建的文件可能不能及时在数据库中反应,会出现查找不到的现象。当然也可以使用[updatedb]来手动更新数据库。

    使用方法:where  [-bmsu] 文件或目录

    -b:只查找binary格式的文件

    -m:只查找在说明当manual路径下的文件

    -s:只查找source来源文件

    -u:查找不再上诉三哥项目当中的其他特殊文件

    locate

    使用方式:locate [-ir] 关键字

    -i:表示忽略大小写

    -r:后面可以接正规表示法的显示方式

    find

    使用方式: find [PATH] [option] [action]

    选项与参数:
    1. 与时间有关的选项:共有 -atime, -ctime 与 -mtime ,以 -mtime 说明
       -mtime  n :n 为数字,意义为在 n 天之前的『一天之内』被更动过内容的文件;
       -mtime +n :列出在 n 天之前(不含 n 天本身)被更动过内容的文件档名;
       -mtime -n :列出在 n 天之内(含 n 天本身)被更动过内容的文件档名。
       -newer file :file 为一个存在的文件,列出比 file 还要新的文件档名

    grep

    grep主要用来查找文件的内容。在shell编程中也非常重要,还支持正则表达的查找方式。


    使用方式:grep [-acinv] [--color=auto] '搜寻字符串' 文件名
    -a:将binary文件以text文件的方式搜寻数据
    -c:计算找到的总次数

    -i:忽略大小写

    -n:表示顺道输出行号

    -v:反向选择,也就是显示出没有搜寻字符串的那一行

    --color=auto:可以将找到的关键字部分加上颜色的显示

    主要正则表达式参数:

    :表示转义字符

    ^:匹配以某个字符开始的行

    $:匹配以某个字符结束的行

    <:从匹配正则表达式的行开始

    >:到匹配正则表达式的行结束

    [ ]:在[]内的某单个字符

    [ - ]:属于-前后的字符,比如[a-g],则表示a到g之间的字符

    .:表示一定有一个任意字符

    *:表示前面0个或多个字符

    实例: 

    [fuwh@localhost stu]$ cat t
    this is the first line
    this is the second line
    what is this
    how can i konw
    [fuwh@localhost stu]$ grep $"line" --color=auto t
    this is the first line
    this is the second line
    [fuwh@localhost stu]$ grep ^"wh" --color=auto t
    what is this
    [fuwh@localhost stu]$ cat t|grep [t] --color=auto t
    this is the first line
    this is the second line
    what is this
    [fuwh@localhost stu]$
  • 相关阅读:
    LINUX VNC配置[转]
    win7下,两台笔记本内置的无线局域网卡共享上网
    修改Linux和aix系统为北京时区
    ubuntu 9.10 下安装ORACLE 出错SP20750: You may need to set ORACLE_HOME to your Oracle software directory
    安装vim7.1
    select 语句的处理顺序
    批量从数据库是提取数据,并显示出来。
    输入四个字符串然后按大到后输出。
    shell 批量修改指定的文件。
    unix自动登录Telnet,实现查看多台服务器硬盘及数据表空间使用情况
  • 原文地址:https://www.cnblogs.com/zerotomax/p/7232744.html
Copyright © 2011-2022 走看看