1 、關(guān)于搜索;
在Linux文件系統(tǒng)中,搜索概念有兩種,一種是搜索文件名,另一種是在一個文件中搜索指定的內(nèi)容;這兩種搜索,我們都簡要的介紹一下,但不一定極為專業(yè)。想到哪寫到哪;
2、通過搜索文件名來查找文件;
有的弟兄經(jīng)常會說文件都放在哪里了,我怎么查找文件?其實這里說的意思就是通過文件名來查找文件所處的位置;搜索文件名,我們常用的工具有find、locate、where等。現(xiàn)在我們簡單的說一說這幾個工具在文件系統(tǒng)中,通過查找文件名的方法來查看其所在的位置;
2.1 find ;
find 路徑 -name 文件名
舉例:比如在/etc中搜索vsftpd.conf文件;
[root@localhost ~]# find /etc -name vsftpd.conf
find 更為詳細的說明請參考: 《Linux文件查找命令find,xargs詳述》
find 是最強勁的搜索工具,用法也比較靈活,而不是僅僅找一個文件名這個功能。
2.2 locate
locate 是用來通過文件名搜索文件的工具,它的用法也比較簡單。locate 的應(yīng)用,首先要通過updatedb建立索引數(shù)據(jù)庫,然后才能應(yīng)用;如果您新安裝了軟件或者存放了新的文件,也要先運行updatedb命令,以生成最新索引庫。
用法:
locate 文件名
我們要先運行updatedb;
[root@localhost ~]# updatedb
舉例: 我們要找vsftpd.conf文件都位于哪個位置;
[root@localhost ~]# locate vsftpd.conf
/etc/vsftpd/vsftpd.conf
/home/beinan/vsftpd.conf
/root/.vsftpd.conf.swp
/root/vsftpd.conf
/root/vsftpd.config
/usr/share/doc/vsftpd-2.0.4/EXAMPLE/INTERNET_SITE/vsftpd.conf
/usr/share/doc/vsftpd-2.0.4/EXAMPLE/INTERNET_SITE_NOINETD/vsftpd.conf
/usr/share/doc/vsftpd-2.0.4/EXAMPLE/VIRTUAL_USERS/vsftpd.conf
/usr/share/logwatch/default.conf/logfiles/vsftpd.conf
/usr/share/logwatch/default.conf/services/vsftpd.conf
/usr/share/man/man5/vsftpd.conf.5.gz
2.3 whereis 和which
2.3.1 where
whereis 是來尋找命令的二進制文件,同時也會找到其幫助文件;
比如我們不知道fdisk工具放在哪里,我們就可以用whereis fdisk 來查找;
[root@localhost ~]# whereis fdisk
fdisk: /sbin/fdisk /usr/share/man/man8/fdisk.8.gz
如果我們尋找grub在哪里,應(yīng)該用如下命令,說明grub位于/sbin目錄,他的幫助文件是grub.8.gz ,也就是man grub;
[root@localhost ~]# whereis grub
grub: /sbin/grub /etc/grub.conf /usr/share/grub /usr/share/man/man8/grub.8.gz
2.3.2 which
which 和where 相似,只是我們所設(shè)置的環(huán)境變量中設(shè)置好的路徑中尋找;比如;
[root@localhost ~]# which fdisk
/sbin/fdisk
3、在一個文件或輸出中查找;
有時我們?yōu)榱斯芾矸?wù)器,可能要查看一些日志文件或管理指令的輸出,并抽取出來;這時我們要用到more和grep、egrep、|(管道),如果要輸出到一個文件中, 還要用到 > 。
比如我們查看/var/log/message 文件,并查找5月8號的日志;我們應(yīng)該用如下的命令組合;
[root@localhost ~]# cat /var/log/messages |grep 'May 8' |more
注意:因為May和8之間有兩個空格,所以得用''號括起來。
如果我們想把查看到的結(jié)果輸出到一個文件中,應(yīng)該用 > 輸出到文件;
[root@localhost ~]# cat /var/log/messages |grep 'May 8' > ~/message0508.txt
[root@localhost ~]# more ~/message0508.txt