Linux中grep常用命令学习总结 (linux中grep常用命令)

在Linux系统中,grep是一种非常实用的命令行工具,可以用来过滤和搜索文本内容。本文将系统地介绍grep的常用命令,以便Linux初学者快速学习和掌握。

一、grep命令的基本用法

grep命令的基本语法为:

“`

grep [options] pattern [files]

“`

其中,[options]表示grep的可选参数,[pattern]表示要查找的文本内容,[files]表示要在哪些文件中进行查找。

例如,在当前目录下查找所有包含“hello”关键字的文件,可以执行以下命令:

“`

grep “hello” *

“`

这条命令将在当前目录下查找所有文件,并输出包含“hello”关键字的行。

二、grep命令的常用选项

grep命令有许多选项,下面介绍一些常用的选项:

1. -i

忽略大小写。

例如:

“`

grep -i “hello” *

“`

这条命令将在当前目录下查找所有文件,并输出包含“hello”(不区分大小写)关键字的行。

2. -v

不包含关键字。

例如:

“`

grep -v “hello” *

“`

这条命令将在当前目录下查找所有文件,并输出不包含“hello”关键字的行。

3. -w

只匹配完整单词。

例如:

“`

grep -w “hello” *

“`

这条命令将在当前目录下查找所有文件,并输出包含“hello”作为完整单词的行。

4. -n

输出行号。

例如:

“`

grep -n “hello” *

“`

这条命令将在当前目录下查找所有文件,并输出包含“hello”关键字的行以及它们所在文件的行号。

5. -r

递归查找子目录。

例如:

“`

grep -r “hello” .

“`

这条命令将在当前目录及其子目录下查找所有文件,并输出包含“hello”关键字的行。

三、grep命令的高级用法

除了基本的选项,grep还支持一些更高级的用法,如正则表达式、多个关键字搜索等。

1. 正则表达式

grep支持基本的正则表达式语法,例如:

“`

grep -E “[0-9]+” *

“`

这条命令将在当前目录下查找所有文件,并输出包含至少一个数字的行。

2. 多个关键字搜索

可以通过使用管道符“|”来匹配多个关键字,例如:

“`

grep “hello\|world” *

“`

这条命令将在当前目录下查找所有文件,并输出包含“hello”或“world”关键字的行。

四、grep命令的实际应用场景

grep命令的实际应用场景非常广泛,例如:

1.查找文本文件中的关键字。

通过使用grep命令可以快速地查找大型文本文件中的特定内容,例如日志文件、配置文件等。

2.过滤输出。

通过使用grep命令可以快速过滤输出,例如在执行命令之后通过管道符“|”将输出传递给grep命令,对输出进行过滤。

3.统计关键字出现次数。

通过使用grep命令以及其他shell命令可以快速统计某个关键字在文件中出现的次数,例如:

“`

grep -c “hello” *

“`

这条命令将在当前目录下查找所有文件,并输出包含“hello”关键字的行数。

四、结论

grep命令在Linux系统中具有非常广泛的应用,可以用来查找文本内容、过滤输出、统计关键字出现次数等。本文介绍了grep命令的基本用法、常用选项以及高级用法,希望能够帮助Linux初学者快速学习和掌握grep命令的使用。

相关问题拓展阅读:

Linux文件相关命令

grep命令:

grep命令是非常重要的命令,可以对文本进行查找和搜索

常用参数如下:

常用实例:兆好

1、在多个文件中查找:

grep “file” file_1 file_2 file_3

2、输出除之外的所有行 -v 选项:

grep -v “file” file_name

3、标记匹配颜色 –color=auto 选项:

grep “file” file_name –color=auto

4、使用正则表达式 -E 选项:

grep -E “+”

egrep “+”

5、只输出文件中匹配到的部分 -o 选项:

echo this is a test line. | grep -o -E “+.”

line.

echo this is a test line. | egrep -o “+.”

line.

6、统计文件或者文本中包含匹配字符串的行数-c 选项:

grep -c “text” file_name

2

7、输出包含匹配字符串的行数 -n 选项:

grep “text” -n file_name

cat file_name | grep “text” -n

8、多个文件

grep “text” -n file_1 file_2

9、搜索多个文件并查找匹配文本在哪些文件中:

grep -l “text” file1 file2 file3…

10、grep递归搜索文件

在多级目录中对文本进行递归搜索:

grep “text” . -r -n

11、忽略匹配样式中的字符大小写:

echo “hello world” | grep -i “HELLO”

hello

12、选项 -e 指磨猜知定多个匹配样式:

echo this is a text line | grep -e “is” -e “line” -o

is

line

13、也可以使用

-f

选项来匹配多个样式,在样式文件中逐行写出需要匹配的字符。

cat patfile

aaa

bbb

echo aaa bbb ccc ddd eee | grep -f patfile -o

14、在grep搜索结果中包括或者排除指定文件:

只在目录中所瞎消有的.php和.html文件中递归搜索字符”main()”

grep “main()” . -r –include *.{php,html}

15、在搜索结果中排除所有README文件

grep “main()” . -r –exclude “README”

16、在搜索结果中排除filelist文件列表里的文件

grep “main()” . -r –exclude-from filelist

touch abc.txt 创建一个名为abc.txt的文件

touch -r 指定文件时间与参考文件相同

touch -t.55 abc.txt 更改文件为指定的时间

touch temp 创建一个名为temp的文件

vi编辑器有三种模式,命令行模式、编辑模式、底行模式。

vi 文件名进入命令行模式,Insert进入编辑模式,编辑完成Esc退出编辑模式,:wq进入底行模式并保存修改,:q直接退出保存。

tar命令用于打包压缩文件,常用的压缩命令还有bzip2,gzip

bunzip2 file1.bz2 解压一个叫做 ‘file1.bz2’的文件

bzip2 file1 压缩一个叫做 ‘file1’ 的文件

gunzip file1.gz 解压一个叫做 ‘file1.gz’的文件

gzip file1 压缩一个叫做 ‘file1’的文件

gzip -9 file1 更大程度压缩

rar a file1.rar test_file 创建一个叫做 ‘file1.rar’ 的包

rar a file1.rar file1 file2 dir1 同时压缩 ‘file1’, ‘file2’ 以及目录 ‘dir1’

rar x file1.rar 解压rar包

unrar x file1.rar 解压rar包

tar -cvf archive.tar file1 创建一个非压缩的 tarball

tar -cvf archive.tar file1 file2 dir1 创建一个包含了 ‘file1’, ‘file2’ 以及 ‘dir1’的档案文件

tar -tf archive.tar 显示一个包中的内容

tar -xvf archive.tar 释放一个包

tar -xvf archive.tar -C /tmp 将压缩包释放到 /tmp目录下

tar -cvfj archive.tar.bz2 dir1 创建一个bzip2格式的压缩包

tar -xvfj archive.tar.bz2 解压一个bzip2格式的压缩包

tar -cvfz archive.tar.gz dir1 创建一个gzip格式的压缩包

tar -xvfz archive.tar.gz 解压一个gzip格式的压缩包

zip file1.zip file1 创建一个zip格式的压缩包

zip -r file1.zip file1 file2 dir1 将几个文件和目录同时压缩成一个zip格式的压缩包

unzip file1.zip 解压一个zip格式压缩包

which命令用于用户查找命令所有路径

命令格式

file命令用于获取文件属性

命令格式

file 文件名或目录名

命令示例:

使用说明

命令格式:cat fileName

cat file1 从之一个字节开始正向查看文件的内容

-n 或 –number:由 1 开始对所有输出的行数编号。

-b 或 –number-nonblank:和 -n 相似,只不过对于空白行不编号。

-s 或 –squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。

-v 或 –show-nonprinting:使用 ^ 和 M- 符号,除了 LFD 和 TAB 之外。

-E 或 –show-ends : 在每行结束处显示 $。

-T 或 –show-tabs: 将 TAB 字符显示为 ^I。

-A, –show-all:等价于 -vET。

-e:等价于”-vE”选项;

-t:等价于”-vT”选项;

使用示例

把 textfile1 的文档内容加上行号后输入 textfile2 这个文档里

cat -n textfile1 > textfile2

把 textfile1 和 textfile2 的文档内容加上行号(空白行不加)之后将内容附加到 textfile3 文档里

cat -b textfile1 textfile2 >> textfile3

清空 /etc/test.txt 文档内容

cat /dev/null > /etc/test.txt

tac

从最后一行开始反向查看一个文件的内容,ac与cat命令刚好相反,文件内容从最后一行开始显示,可以看出 tac 是 cat 的倒着写。

nl 文件

选项与参数:

-b: 指定行号指定的方式,主要有两种:

-b a :表示不论是否为空行,也同样列出行号(类似 cat -n);

-b t :如果有空行,空的那一行不要列出行号(默认值);

-n :列出行号表示的方法,主要有三种:

-n ln :行号在荧幕的最左方显示;

-n rn :行号在自己栏位的最右方显示,且不加 0 ;

-n rz :行号在自己栏位的最右方显示,且加 0 ;

-w :行号栏位的占用的位数。

more file1 查看一个长文件的内容,支持一页一页翻动

运行的时候,支持以下几个按键:

空白键 (space):代表向下翻一页;

Enter:代表向下翻『一行』;

/字串:代表在这个显示的内容当中,向下搜寻『字串』这个关键字;

:f:立刻显示出档名以及目前显示的行数;

q:代表立刻离开 more ,不再显示该文件内容。

b 或 -b :代表往回翻页,不过这动作只对文件有用,对管线无用。

less file1 类似于 ‘more’ 命令,但是它允许在文件中和正向操作一样的反向操作

less运行时可以输入的命令有:

空白键 :向下翻动一页;

:向下翻动一页;

:向上翻动一页;

/字串 :向下搜寻『字串』的功能;

?字串 :向上搜寻『字串』的功能;

n:重复前一个搜寻 (与 / 或 ? 有关!)

N:反向的重复前一个搜寻 (与 / 或 ? 有关!)

q:离开 less 这个程序;

head

head -2 file1 查看一个文件的前两行

tail

tail -2 file1 查看一个文件的最后两行

tail -f /var/log/messages 实时查看被添加到一个文件中的内容

文件权限列中三位为一组,分别代表相关的用户、组、其它用户的权限

权限列中三位为一组,分别代表相关的用户、组、其它用户的权限

所以修改权限可以分别修改或一同修改,系统中权限分为数字权限与字符权限

数字权限:r=4,w=2,x=1

字符权限:+ 增加 -去除 a取消所有加上给定的

修改权限的命令chmod,命令格式:

chmod 权限 文件名或目录名 修改权限格式

chmod -R 权限 目录名 递归将目录及其下面所有内容权限全部修改

chown 改变文件或目录的属主(所有者)

chown 用户名 文件名或目录名

chown 用户名.组名 文件名或目录名

修改所属组也可用chgrp 命令来完成

当你用ls -l 查看到文件的属主、属组为数字时,就表明该文件的创建用户已被删除。

文件的特殊权限

chattr +i(-i) 文件名 锁定文件(取消锁定)不可删除与清空

chattr +a(-a) 文件名 添加内容(只可添加内容)

使用lsattr 文件名 查看文件的特殊权限

由此可以看出

root用户默认创建的目录权限是755,文件权限是644

普通用户默认创建的目录权限是775,文件权限是664

这也是系统默认的比较安全的权限分配,其实这些默认权限全部都是由umask值来决定的

系统规定了

文件的权限值是从666开始计算(默认权限=权限值-umask值)

目录的权限值是从777开始计算(默认权限=权限值-umask值)

Linux命令大全

linux命令格式:

说明:command: 命令名,相应功能的英文单词或单词的缩写 :选项,可用来对命令进行控制,也可以省略,或激携代表可选 parameter1 …:传给命令的参数:可以是零个一个或多个

一般是linux命令自带的帮助信息

如:

man是linux提供的一个手册,包含了绝大部分的命令、函数使用说明

该手册分成很多章节(section),使用man时可以指定不同的章节来浏览。

例:man ls ; man 2 printf

man中各个section意义如下:

man是按照手册的章节号的顺序进行搜索的。

man设置了如下的衫伏功能键:

在敲出命令的前几个字母的同时,按下tab键,系统会自动帮我们补全命令

当系统执行过一些命令后,可按上下键翻看以前的命令,history将执行过的命令列举出来

ls是英文单词list的简写,其功能为列出目录的内容,是用户最常用的命令之一,它类似于DOS下的dir命令。

Linux文件或者目录名称最长可以有265个字符,“.”代表当前目录,“..”代表上一级目录,以“.”开头的文件为隐藏文件,需要用 -a 参数才能显示。

ls常用参数:

Linux允许将命令执行结果重定向到一个文件,本应显示在终端上的内容保存到指定文件中。

如:ls > test.txt ( test.txt 如果不存在,则创建,存在则覆盖其内容 )

注意: >输出重定向会覆盖原来的内容,>>输出重定向则会追加到文件的尾部。

查看内容时,在信息过长无法在一屏上显示时,会出现快速滚屏,使得用户无法看清文件的内容,此时可以使用more命令,每次只显示一页,按下空格键可以显示下一页,按下q键退出显示,按下h键可以获取帮助。

管道:一个命令的输出可以通过管道做为另一个命令的输入。

管道我们可以理解现实生活中的管子,管子的一头塞东西进去,另一头取出来,这里“ | ”的左右分为两端,左端塞东西(写),右端取东西(读)。

clear作用为清除终端上的显示(类似于DOS的cls清屏功能),也可使用快捷键:Ctrl + l ( “l” 为字母 )。

在使用Unix/Linux的时候,经常需要更换工作目录。cd命令可以帮助用户切换工作目录。Linux所有的目录和文件名大小写敏感

cd后铅弊面可跟绝对路径,也可以跟相对路径。如果省略目录,则默认切换到当前用户的主目录。

使用pwd命令可以显示当前的工作目录,该命令很简单,直接输入pwd即可,后面不带参数。

通过mkdir命令可以创建一个新的目录。参数-p可递归创建目录。

需要注意的是新建目录的名称不能与当前目录中已有的目录或文件同名,并且目录创建者必须对当前目录具有写权限。

可使用rmdir命令删除一个目录。必须离开目录,并且目录必须为空目录,不然提示删除失败。

可通过rm删除文件或目录。使用rm命令要小心,因为文件删除后不能恢复。为了防止文件误删,可以在rm后使用-i参数以逐个确认要删除的文件。

常用参数及含义如下表所示:

Linux链接文件类似于Windows下的快捷方式。

链接文件分为软链接和硬链接。

软链接:软链接不占用磁盘空间,源文件删除则软链接失效。

硬链接:硬链接只能链接普通文件,不能链接目录。

使用格式:

如果没有-s选项代表建立一个硬链接文件,两个文件占用相同大小的硬盘空间,即使删除了源文件,链接文件还是存在,所以-s选项是更常见的形式。

注意:如果软链接文件和源文件不在同一个目录,源文件要使用绝对路径,不能使用相对路径。

Linux系统中grep命令是一种强大的文本搜索工具,grep允许对文本文件进行模式查找。如果找到匹配模式, grep打印包含模式的所有行。

grep一般格式为:

在grep命令中输入字符串参数时,更好引号或双引号括起来。例如:grep‘a ’1.txt。

常用选项说明:

find命令功能非常强大,通常用来在特定的目录下搜索符合条件的文件,也可以用来搜索特定用户属主的文件。

常用用法:

cp命令的功能是将给出的文件或目录复制到另一个文件或目录中,相当于DOS下的copy命令。

常用选项说明:

用户可以使用mv命令来移动文件或目录,也可以给文件或目录重命名。

常用选项说明:

计算机中的数据经常需要备份,tar是Unix/Linux中最常用的备份工具,此命令可以把一系列文件归档到一个大文件中,也可以把档案文件解开以恢复数据。

tar使用格式 tar 打包文件名 文件

tar命令很特殊,其参数前面可以使用“-”,也可以不使用。

常用参数:

tar与gzip命令结合使用实现文件打包、压缩。 tar只负责打包文件,但不压缩,用gzip压缩tar打包后的文件,其扩展名一般用x.tar.gz。

gzip使用格式如下:

gzip 被压缩文件

常用选项:

tar与bzip2命令结合使用实现文件打包、压缩(用法和gzip一样)。

tar只负责打包文件,但不压缩,用bzip2压缩tar打包后的文件,其扩展名一般用x.tar.gz2。

在tar命令中增加一个选项(-j)可以调用bzip2实现了一个压缩的功能,实行一个先打包后压缩的过程。

压缩用法:tar -jcvf 压缩包包名 文件…(tar jcvf bk.tar.bz2 *.c)

解压用法:tar -jxvf 压缩包包名 (tar jxvf bk.tar.bz2)

通过zip压缩文件的目标文件不需要指定扩展名,默认扩展名为zip。

压缩文件:zip 目标文件(没有扩展名) 源文件

解压文件:unzip -d 解压后目录文件 压缩文件

whoami该命令用户查看当前系统当前账号的用户名。可通过cat /etc/passwd查看系统用户信息。

由于系统管理员通常需要使用多种身份登录系统,例如通常使用普通用户登录系统,然后再以su命令切换到root身份对传统进行管理。这时候就可以使用whoami来查看当前用户的身份。

who命令用于查看当前所有登录系统的用户信息。

常用选项:

如果是图形界面,退出当前终端;

如果是使用ssh远程登录,退出登陆账户;

如果是切换后的登陆用户,退出则返回上一个登陆账号。

在Unix/Linux中添加用户账号可以使用adduser或useradd命令,因为adduser命令是指向useradd命令的一个链接,因此,这两个命令的使用格式完全一样。

useradd命令的使用格式如下:

useradd 新建用户账号

在Unix/Linux中,超级用户可以使用passwd命令为普通用户设置或修改用户口令。用户也可以直接使用该命令来修改自己的口令,而无需在命令后面使用用户名。

可以通过su命令切换用户,su后面可以加“-”。su和su –命令不同之处在于,su -切换到对应的用户时会将当前的工作目录自动转换到切换后的用户主目录:

注意:如果是ubuntu平台,需要在命令前加“sudo”,如果在某些操作需要管理员才能操作,ubuntu无需切换到root用户即可操作,只需加“sudo”即可。sudo是ubuntu平台下允许系统管理员让普通用户执行一些或者全部的root命令的一个工具,减少了root 用户的登陆和管理时间,提高了安全性。

方法一:

方法二:

groupadd 新建组账号 groupdel 组账号 cat /etc/group 查看用户组

使用方法:usermod -g 用户组 用户名

新创建的用户,默认不能sudo,需要进行一下操作

-g用来制定这个用户默认的用户组

-G一般配合’-a’来完成向其它组添加

chmod 修改文件权限有两种使用格式:字母法与数字法。

字母法:chmod u/g/o/a +/-/= rwx 文件

cal命令用于查看当前日历,-y显示整年日历

设置时间格式(需要管理员权限):

date YY>> +format

CC为年前两位yy为年的后两位,前两位的mm为月,后两位的mm为分钟,dd为天,hh为小时,ss为秒。如: date.55。

显示时间格式(date ‘+%y,%m,%d,%H,%M,%S’):

进程是一个具有一定独立功能的程序,它是操作系统动态执行的基本单元。

ps命令可以查看进程的详细状况,常用选项(选项可以不加“-”)如下:

top命令用来动态显示运行中的进程。top命令能够在运行后,在指定的时间间隔更新显示信息。可以在使用top命令时加上-d 来指定显示信息更新的时间间隔。

在top命令执行后,可以按下按键得到对显示的结果进行排序:

kill命令指定进程号的进程,需要配合 ps 使用。有些进程不能直接杀死,这时候我们需要加一个参数“ -9 ”,“ -9 ” 代表强制结束.

使用格式:

kill pid

df命令用于检测文件系统的磁盘空间占用和空余情况,可以显示所有文件系统对节点和磁盘块的使用情况。

du命令用于统计目录或文件所占磁盘空间的大小,该命令的执行结果与df类似,du更侧重于磁盘的使用状况。

du命令的使用格式如下: du 目录或文件名linux中grep常用命令的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于linux中grep常用命令,Linux中grep常用命令学习总结,Linux文件相关命令,Linux命令大全的信息别忘了在本站进行查找喔。


数据运维技术 » Linux中grep常用命令学习总结 (linux中grep常用命令)