linux搜索文件内容 linux基础知识点
linux下有哪些常用的命令呢
文件和目录管理
ls:列出当前目录中的文件和目录
mkdir:创建目录
cd:更改目录
rm:删除文件或目录
cp:复制文件或目录
mv:移动或重命名文件或目录
用户和组管理
useradd:创建新用户
groupadd:创建新组
userdel:删除用户
groupdel:删除组
passwd:更改密码
权限管理
chmod:更改文件或目录的权限
chown:更改文件或目录的所有者
chgrp:更改文件或命令的组
打包和解压
tar:打包或解压文件
gzip:使用Gzip压缩文件
bzip2:使用BZIP2压缩文件
zip:打包或解压ZIP存档
进程管理
ps:列出正在运行的进程
top:监控系统活动
kill:终止进程
网络管理
ping:测试到另一个主机的连接性
ifconfig:显示网络接口配置
netstat:显示网络连接和统计信息
信息查找
man:显示命令手册页
info:显示信息页面
grep:在文件中搜索文本
find:在文件系统中搜索文件
文件操作
cat:显示文件内容
more:逐屏显示文件内容
less:交互式文件查看器
head:显示文件开头部分
tail:显示文件末尾部分
linux下按文件名和文件内容查找文件
在当前目录下,查找所有内容包含‘abc'的文件
find.-type f| xargs grep-l'abc'
或
find.-type f-exec grep-l'abc'{} \;
扩展资料:
linux查找文件命令find
根据部分文件名查找方法:
这个方法和在WINDOWS中查找已知的文件名方法是一样的。不过在Linux中根据部分文件名查找文件的方法要比在WINDOWS中的同类查找方法要强大得多。
例如我们知道某个文件包含有srm这3个字母,那么要找到系统中所有包含有这3个字母的文件是可以实现的,输入:
find/etc-name'*srm*'
这个命令表明了Linux系统将在/etc整个目录中查找所有的包含有srm这3个字母的文件,比如 absrmyz, tibc.srm等等符合条件的文件都能显示出来。如果你还知道这个文件是由srm这3个字母打头的,那么我们还可以省略最前面的星号,命令如下:
find/etc-name'srm*'
这是只有像srmyz这样的文件才被查找出来,象absrmyz或者 absrm这样的文件都不符合要求,不被显示,这样查找文件的效率和可靠性就大大增强了。
Linux中使用grep命令搜索文件名及文件内容的方法
从文件中搜索并显示文件名
当你从不止一个的文件中搜索时,默认它将显示文件名:
代码如下:
grep"word"文件名
grep root/etc/*
示例输出:
代码如下:
/etc/bash.bashrc: See"man sudo_root" for details.
/etc/crontab:17**** root cd/ run-parts--report/etc/cron.hourly
/etc/crontab:25 6*** root test-x/usr/sbin/anacron||( cd/ run-parts--report/etc/cron.daily)
/etc/crontab:47 6** 7 root test-x/usr/sbin/anacron||( cd/ run-parts--report/etc/cron.weekly)
/etc/crontab:52 6 1** root test-x/usr/sbin/anacron||( cd/ run-parts--report/etc/cron.monthly)
/etc/group:root:x:0:
grep:/etc/gshadow: Permission denied
/etc/logrotate.conf: create 0664 root utmp
/etc/logrotate.conf: create 0660 root utmp
每行开始的第一个部分是文件名(如:/etc/crontab、/etc/group)。使用-l选项可以只显示文件名:
代码如下:
grep-l"string" filename
grep-l root/etc/*
示例输出:
代码如下:
/etc/aliases
/etc/arpwatch.conf
grep:/etc/at.deny: Permission denied
/etc/bash.bashrc
/etc/bash_completion
/etc/ca-certificates.conf
/etc/crontab
/etc/group
你也可以逆转输出;使用-L选项来输出那些不匹配的文件的文件名:
代码如下:
grep-L"word" filename
grep-L root/etc/*
示例输出:
代码如下:
/etc/apm
/etc/apparmor
/etc/apparmor.d
/etc/apport
/etc/apt
/etc/avahi
/etc/bash_completion.d
/etc/bindresvport.blacklist
/etc/blkid.conf
/etc/bluetooth
/etc/bogofilter.cf
/etc/bonobo-activation
/etc/brlapi.key
根据文件内容查找文件
输入以下命令:
代码如下:
grep'string'*.txt
grep'main('*.c
grep'#include'*.c
grep'getChar*'*.c
grep-i'ultra'*.conf
grep-iR'ultra'*.conf
其中
-i:忽略模式(匹配字符串 valid、 VALID、 ValID)和输入文件(匹配 file.c FILE.c FILE.C)的大小写。
-R:递归读取每个目录下的所有文件。
高亮匹配到的模式
在搜索大量文件的时候你可以轻松地高亮模式:
代码如下:
$ grep--color=auto-iR'getChar();'*.c
为查找到的模式显示文件名和行号
你也许需要显示文件名和行号:
代码如下:
$ grep--color=auto-iRnH'getChar();'*.c
其中,
-n:在输出的每行前面添加以 1开始的行号。
-H:为每个匹配打印文件名。要搜索多个文件时这是默认选项。(LCTT译注:-h选项强制隐藏文件名;另外-l和-L选项用于仅显示匹配/不匹配的文件名,而-H和-h用于控制在显示匹配行前显示/不显示文件名,注意区分。)
代码如下:
$grep--color=auto-nH'DIR'*
输出样例:
你也可以使用 find命令:
代码如下:
$ find.-name"*.c"-print| xargs grep"main("