新手看招:简述Linux操作系统文件搜索

   关于搜索

  在Linux文件系统中搜索概念有两种一种是搜索文件名另一种是在一个文件中搜索指定的内容这两种搜索我们都简要的介绍一下但不一定极为专业想到哪写到哪

  通过搜索文件名来查找文件

  有的弟兄经常会说文件都放在哪里了我怎么查找文件?其实这里说的意思就是通过文件名来查找文件所处的位置搜索文件名我们常用的工具有findlocatewhere等现在我们简单的说一说这几个工具在文件系统中通过查找文件名的方法来查看其所在的位置

   find

  find 路径 name 文件名

  举例比如在/etc中搜索vsftpdconf文件

  [root@localhost ~]# find /etc name vsftpdconf

  find 更为详细的说明请参考 《Linux文件查找命令findxargs详述》

  find 是最强劲的搜索工具用法也比较灵活而不是仅仅找一个文件名这个功能

   locate

  locate 是用来通过文件名搜索文件的工具它的用法也比较简单locate 的应用首先要通过updatedb建立索引数据库然后才能应用如果您新安装了软件或者存放了新的文件也要先运行updatedb命令以生成最新索引库

  用法

  locate 文件名

  我们要先运行updatedb

  [root@localhost ~]# updatedb

  举例 我们要找vsftpdconf文件都位于哪个位置

  [root@localhost ~]# locate vsftpdconf

  /etc/vsftpd/vsftpdconf

  /home/beinan/vsftpdconf

  /root/vsftpdconfswp

  /root/vsftpdconf

  /root/vsftpdconfig

  /usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE/vsftpdconf

  /usr/share/doc/vsftpd/EXAMPLE/INTERNET_SITE_NOINETD/vsftpdconf

  /usr/share/doc/vsftpd/EXAMPLE/VIRTUAL_USERS/vsftpdconf

  /usr/share/logwatch/defaultconf/logfiles/vsftpdconf

  /usr/share/logwatch/defaultconf/services/vsftpdconf

  /usr/share/man/man/vsftpdconfgz

   whereis 和which

   where

  whereis 是来寻找命令的二进制文件同时也会找到其帮助文件

  比如我们不知道fdisk工具放在哪里我们就可以用whereis fdisk 来查找

  [root@localhost ~]# whereis fdisk

  fdisk: /sbin/fdisk /usr/share/man/man/fdiskgz

  如果我们寻找grub在哪里应该用如下命令说明grub位于/sbin目录他的帮助文件是grubgz 也就是man grub

  [root@localhost ~]# whereis grub

  grub: /sbin/grub /etc/grubconf /usr/share/grub /usr/share/man/man/grubgz

   which

  which 和where 相似只是我们所设置的环境变量中设置好的路径中寻找比如

  [root@localhost ~]# which fdisk

  /sbin/fdisk

  在一个文件或输出中查找

  有时我们为了管理服务器可能要查看一些日志文件或管理指令的输出并抽取出来这时我们要用到more和grepegrep|(管道)如果要输出到一个文件中 还要用到 >

  比如我们查看/var/log/message 文件并查找月号的日志我们应该用如下的命令组合

  [root@localhost ~]# cat /var/log/messages |grep May |more

  注意因为May和之间有两个空格所以得用号括起来

  如果我们想把查看到的结果输出到一个文件中应该用 > 输出到文件

  [root@localhost ~]# cat /var/log/messages |grep May > ~/messagetxt

  [root@localhost ~]# more ~/messagetxt

  上面的例子是我们首先用 cat 来查看/var/log/message 的内容然后抽取带有 May 字样的行然后输出到用户家目录下的 messagetxt文件中然后再用more来查看messagetxt文件内容

  从一个输出结果中查找

  我们也可以从一个输出的结果中查找所需要的内容请看下面的例子

  [root@localhost ~]# ls lh

  总计 M

  rwxrxrx root root : addumlsh

  rwxrxrx root root addumlsh

  rwrwrw root root : dood

  drwxrxrt root root K : googledir

  rwxrxrx root root : lsfilesh

  rwrr root root K : messagetxt

  drwxrxrx root root K : mkuml

  rwxrxrx root root K : mkumlananastarbz

  drwxrxrx root K : mydir

  rwrr root root M : myfileimg

  rwrr root root M : myfileSpaa

  rwrr root root M : myfileSpab

  rwrr root root M : newmyfileimg

  drwxrwrw root root K : sundir

  drwxrxrx root root K : testdir

  rwxrxrx root root : upgradelog

  rw root root K : vsftpdconf

  rwrr root root K : vsftpdconfig

  rwrr root root : xaa

  在ls lh 的输出结果中查看带有字样的行我们看到带有字样的行都出来了在这里表示文件创建或最后修改(访问)的时间符合这一特征的都在里面

  [root@localhost ~]# ls lh |grep |more

  rwrr root root M : myfileimg

  rwrr root root M : myfileSpaa

  rwrr root root M : myfileSpab

  rwrr root root M : newmyfileimg

  rwrr root root : xaa

  查找正在运行的程序

  这也是从一个输出中查找的例子先用ps 来列出所有正在运行中的进程然后通过grep 来提取下面的例子中查找是否有gaim程序在运行

  [root@localhost ~]# ps aux |grep gaim

  Warning: bad syntax perhaps a bogus ? See /usr/share/doc/procps/FAQ

  beinan ? S : : gaim

  root pts/ S+ : : grep gaim

  从上面的例子我们可以看到的确有gaim运行进程号是 如果想杀掉gaim怎么办?应该有kill 或killall gaim

  [root@localhost ~]# kill

  或

  [root@localhost ~]# killall gaim

  对于进程的查找也可以用pgrep 来进行比如我们查找gaim

  [root@localhost ~]# pgrep gaim

  

  等价于

  [root@localhost ~]# ps aux |grep gaim

  Warning: bad syntax perhaps a bogus ? See /usr/share/doc/procps/FAQ

  beinan ? S : : gaim

  root pts/ R+ : : grep gaim

  关于本文

  关于查找的命令和工具说起来比较复杂本文也仅仅是一个入门性的文档如果只是通过文件名来查找到他位置我感觉还是用locate好一点有时find太费时间

  这篇文章本来仅仅是写文件和目录的搜索的后来我想到可能有的弟兄要学一点指定关健字在一个文件或输出中查找所以又写了一点在一个文件或输出中查找所需要的内容看上去本文有点拼凑的感觉是不是太随意了?

  参考文档

  man 和help

  相关文档

  《Linux 文件内容查看工具介绍》

  《关于Linux 文件系统中路径的理解》

  《Linux 文件和目录管理之列出删除复制移动及改名》

  《Linux 文件类型 及文件的扩展名》

  《简述Linux 文件系统的目录结构》

  《Linux 用户(user)和用户组(group)管理概述》

  《Linux 文件和目录的属性》

才能做到人在旅途,感悟人生,享受人生。

新手看招:简述Linux操作系统文件搜索

相关文章:

你感兴趣的文章:

标签云: