zoukankan      html  css  js  c++  java
  • Linux 操作系统(二)搜索文件命令find、locate、which、whereis、grep、wc

    以下命令均已在 Kali Linux 下验证。

    1.find 命令

    --1--

    find /usr/share -name test.lst //精准搜索,文件名需要与-name后的内容一模一样包括后缀

    --2--

    find /usr/share -name "tes*//通配符* 表示匹配所有

    find /usr/share -name "test.???" //通配符? 表示匹配单个字符

    --3--

    find /usr/share -iname "test.lst" // -iname 参数,不区分文件名大小写

    --4--

    find /usr/share -size +1024   //按照文件大小查找; -size 参数 +n大于 -n小于 n等于; 1块=512k, 2048块=10M;

    --5--

    find /home -user root  //按照所有者查找;

    --6--

    find /etc -mmin -30  //按时间属性查找,-amin访问时间

    find /etc -cmin -30  //按时间属性查找,-cmi改变文件属性

    find /etc -amin -30  //按时间属性查找,-amin改变文件内容

    --7--

    find /usr/share 条件1 -a 条件2 // -a 两个条件都需要满足

    find /usr/share 条件1 -o 条件2 // -o 满足一个就可

    如:

    find /usr/share -name "test*" -a -type f  //其中-type f文件 -type d 目录 -type l 软连接文件

    --8--

    find /usr/share -name "test.lst" -exec ls -l {} ;  // -exec/-ok 把find命令的结果 用-exec/ok调用的命令2来处理;"{}"相当于占位符,作为find的查找结果。

    注:

    find 命令是直接在硬盘中进行搜索,如果指定的搜索范围过大,find命令就会消耗较大的系统资源,

    导致服务器压力过大。所以,在使用 find 命令搜索时,尽量更精准的查找,这样消耗系统的资源少,

    查找的速度快。命令所在路径:/bin/find.

    示例:

    --1--
    root@hugboy:/home/hugboy# find /usr/share -name test.lst
    /usr/share/john/test.lst
    --2--
    root@hugboy:/home/hugboy# find /usr/share -name tes*
    /usr/share/postgresql-common/testsuite
    /usr/share/automake-1.16/test-driver
    /usr/share/icons/Flat-Remix-Blue-Dark/apps/scalable/teslagrad.svg
    /usr/share/perl5/Mail/Mailer/testfile.pm
    /usr/share/perl5/Sys/Hostname/testall.pl
    /usr/share/sqlmap/lib/core/testing.py
    /usr/share/sqlmap/lib/techniques/union/test.py
    ...
    
    root@hugboy:/home/hugboy# find /usr/share -name test.???
    /usr/share/john/test.lst
    /usr/share/wfuzz/wordlist/general/test.txt
    /usr/share/doc/node-normalize.css/examples/test.svg
    /usr/share/doc/p7zip/DOC/MANUAL/cmdline/commands/test.htm
    --3--
    root@hugboy:/home/hugboy# find /usr/share -iname test.lst
    /usr/share/john/TesT.lst
    /usr/share/john/test.lst
    --4--
    root@hugboy:/home/hugboy# find /usr/share -size +9999
    /usr/share/exploitdb/files_exploits.csv
    /usr/share/sqlmap/data/txt/wordlist.tx_
    /usr/share/proj/proj.db
    /usr/share/john/latin1.chr
    /usr/share/john/utf8.chr
    /usr/share/john/ascii.chr
    /usr/share/basemap/data/UScounties.shp
    /usr/share/basemap/data/shadedrelief.jpg
    ...
    --5--
    root@hugboy:/home/hugboy# find -user hugboy
    .
    ./.bash_logout
    ./.Xauthority
    ./CTF/sm.txt
    ./.msf4
    ./.msf4/plugins
    ./.msf4/logos
    ./.msf4/history
    ./.msf4/logs
    ./.msf4/logs/sessions
    ./.msf4/logs/scripts
    ./.msf4/logs/scripts/scraper
    ...
    --6--
    
    root@hugboy:/home/hugboy# find /usr/share -amin -30
    /usr/share
    /usr/share/mime/image/jpeg.xml
    /usr/share/mime/application/pdf.xml
    /usr/share/icons/Adwaita/cursors/col-resize
    /usr/share/icons/Adwaita/cursors/watch
    /usr/share/icons/Flat-Remix-Blue-Dark/apps/scalable/vulnhub.svg
    /usr/share/icons/Flat-Remix-Blue-Dark/apps/scalable/kali-web-application-trans.svg
    /usr/share/icons/Flat-Remix-Blue-Dark/apps/scalable/devhelp.svg
    /usr/share/icons/Flat-Remix-Blue-Dark/apps/scalable/accessories-text-editor.svg
    ...
    --7--
    root@hugboy:/home/hugboy# find /usr/share -name test.lst -a -type f
    /usr/share/john/test.lst
    
    
    --8--
    root@hugboy:/home/hugboy# find /usr/share -name test.lst -exec ls -l {} ;
    -rw-r--r-- 1 root root 85 4月  27 21:19 /usr/share/john/test.lst
    View Code

     

    2.locate 命令

    --1--

    locate test.lst //从数据库中搜索文件名

    --2--

    updatedb // 更新数据库

    --3--

    locate -i test.lst

    注:

     

    1) locate相比find速度更快,因为它是从已经建立好的数据库中搜索文件,消耗系统资源非常小。

    2) 但是locate不会实时更新数据库,新建的文件会搜索不到,需要手动更新。(updatadb)

    3) locate不收录临时目录tmp下的文件。

    4) 命令所在路径:/usr/bin/locate.

    示例:

    root@hugboy:/usr# touch ilovelisa
    root@hugboy:/usr# locate ilovelisa
    root@hugboy:/usr# updatedb
    root@hugboy:/usr# locate ilovelisa
    /usr/ilovelisa
    View Code

    3.which 命令

    --1--

    which cp  //列出命令cp所在路径,和命令的别名(如果存在的话)

    注:

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

     示例:

    root@hugboy:/usr# which find
    /usr/bin/find
    root@hugboy:/usr# which cp
    /usr/bin/cp
    root@hugboy:/usr# 
    View Code

    4.whereis 命令

    --1--

    whereis cp //查找二进制命令,源文件和帮助文档的命令

    注:

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

    示例: 

    root@hugboy:/usr# whereis cp
    cp: /usr/bin/cp /usr/share/man/man1/cp.1.gz
    View Code

    5.grep 命令

    --1--

    grep "this" test.lst  //存在内容"test"的行

    --2--

    grep -i "this" test.lst  //忽略大小写

    --3--

    grep -v "this" test.lst  //反转查找,不存在内容"test"的行

    --4--

    grep "^string" test.lst  //以string开头

    grep "string$" test.lst  //以string结尾

    grep "^$" test.lst //空行

    注:

    所在路径:/bin/grep.

    示例:

    root@hugboy:/usr/share/john# cat test.lst
    This a test to proof linux order.
    
    and my love Godness is Lisa hahah...
    Just a Test.
    this all,Bye~
    --1--
    root@hugboy:/usr/share/john# grep "this" test.lst
    this all,Bye~
    
    --2--
    root@hugboy:/usr/share/john# grep -i "this" test.lst
    This a test to proof linux order.
    this all,Bye~
    
    --3--
    root@hugboy:/usr/share/john# grep -v "this" test.lst
    This a test to proof linux order.
    
    and my love Godness is Lisa hahah...
    Just a Test.
    
    --4--
    root@hugboy:/usr/share/john# grep "...$" test.lst
    This a test to proof linux order.
    and my love Godness is Lisa hahah...
    Just a Test.
    this all,Bye~
    
    root@hugboy:/usr/share/john# grep "^$" test.lst
    
    root@hugboy:/usr/share/john# grep -n "^$" test.lst
    2:
    View Code

    6.wc 统计

    --1--

    wc -l test.lst // 行数

    wc -w test.lst // 单词数

    wc -c test.lst // 字节数

    注:

    命令所在路径:/usr/bin/wc.

    示例:

    root@hugboy:/usr/share/john# wc -l test.lst
    5 test.lst
    root@hugboy:/usr/share/john# wc -w test.lst
    19 test.lst
    root@hugboy:/usr/share/john# wc -c test.lst
    99 test.lst
    root@hugboy:/usr/share/john# 
    View Code

    7.参考文章

    Linux常用命令...


    ________________________________________________________

    Every good deed you do will someday come back to you.

    Love you,love word !
  • 相关阅读:
    架构设计:系统存储(1)——块存储方案(1)
    《Linux设备节点创建》用户空间ueventd创建设备节点规则
    架构设计:系统间通信(45)——阶段性问题记录
    队列
    链栈
    顺序栈
    入栈问题
    队列
    数学表达式配对栈
    链表设置
  • 原文地址:https://www.cnblogs.com/hugboy/p/14711013.html
Copyright © 2011-2022 走看看