grep命令选项 | 说明 |
---|---|
-i | ignorecase过滤的时候不区分大小写 |
-n | line number过滤出内容并显示行号 |
-o | 只输出匹配的内容,显示匹配的过程 |
-v | 取反 |
-r | 递归过滤文件内容 |
-w | 精准匹配 |
-c | 统计字符串次数 |
grep 'Failed password' /var/log/secure
grep 'root' /var/log/secure
grep -i 'failed password' /var/log/secure
less/more命令查询日志,然后通过grep过滤
grep -ni 'ipaddr' /etc/sysconfig/network-scripts/ifcfg-ens33
注意:grep的作用是从文件中(而非文件夹)匹配出存在该关键字的那一行信息
wc命令的选项 | 说明 |
---|---|
-l | line只显示行数 |
-c | 统计全文的字符数 |
案例09:统计文件一共多少行
[root@kylin-ren-class /]# wc -l /etc/sysconfig/network-scripts/ifcfg-ens33
21 /etc/sysconfig/network-scripts/ifcfg-ens33
案例10:统计/var/log/secure文件中failure 或者 Failed password出现的次数
第1个里程碑:过滤
grep -i 'failed password' /var/log/secure
第2个里程碑 + 第3个里程碑:管道 + 统计次数
grep -i 'failed password' /var/log/secure | wc -l
第2个里程碑 + 第3个里程碑:管道 + 管道 + 统计次数
grep -E -i 'failed password | auth' /var/log/secure | wc -l
grep -E -i '(failed password | auth)' /var/log/secure | wc -l
案例11:统计/etc/目录下第一层一共有多少文件和目录
流程:
1.显示/etc/目录下的内容:ls
2.交给管道 + wc -l
ll /etc/ | wc -l
ls /etc/ | wc -l
案例12:在/etc/passwd文件中统计包含/bin/bash的行数
流程:
1.在/etc/passwd中过滤/bin/bash
2.管道 + wc -l
grep '/bin/bash' /etc/passwd
grep '/bin/bash' /etc/passwd | wc -l
head
开头tail
结尾head -n5
head -5
# 查看最后10行
tail /etc/passwd
tail /var/log/secure
#查看最后5行
tail -n5 /etc/passwd
tail -5 /etc/passwd
# -f 循环读取
tail -f /var/log/secure
less
:less是一个更为强大的工具,它支持向前和向后翻页,并且可以进行搜索。less
还支持显示行号,这对于查看日志文件等非常有用下一页:space 或 Ctrl + f
上一页:Ctrl + b
搜索:/ + 内容
G:最后一行
g:第一行
100g:第100行
q:退出
less -N:查看行号
more
:more
是一个简单的分页程序,它允许用户逐页查看文件内容,但不支持向后翻页。more
只能向前翻页sort
:文件内容排序sort file
#输出到屏幕上的内容使用管道交给sort处理
其他命令的输入结果 | sort
命令 | 说明 |
---|---|
-r | 逆序排列 |
-n | 按照数字进行排序 |
-k | 指定列进行排序 |
-t + '[分隔符]' | 指定分隔符 |
案例13:对文件中的数字继续排序,默认按照字符第一列进行排序
[root@kylin-ren-class ren]# sort sort1.txt
1143124
14124
154
26
341445
351
4
案例14:按照数字的正序进行排序
[root@kylin-ren-class ren]# sort -n sort1.txt
4
5
26
53
154
351
526
5342
案例15:按照数字的逆序排序
[root@kylin-ren-class ren]# sort -rn sort1.txt
625465347
9867898
4543154
4124265
1143124
案例16:按照文件中的第二列进行正序排序,默认以空格分隔
[root@kylin-ren-class ren]# sort -nk2 sort2.txt
devlop 22
C# 23
jiqun 79
kebernets 87
mysql 100
java 273
C 283
C++ 293
python 384
nginx 1299
docker 7128
案例17:按照第二列的数字逆序排序
[root@kylin-ren-class ren]# sort -rnk2 sort2.txt
docker 7128
nginx 1299
python 384
C++ 293
C 283
java 273
mysql 100
kebernets 87
jiqun 79
C# 23
devlop 22
案例18:取出Top10的同学以及成绩
[root@kylin-ren-class ren]# sort -rnk2 sort2.txt | head
docker 7128
JS 2234
nginx 1299
python 384
GPW 324
HP 293
C++ 293
C 283
java 273
keybroad 245
案例19:取出文件中的成绩倒数1~3名
[root@kylin-ren-class ren]# sort -rnk2 sort2.txt | tail -3
jiqun 79
C# 23
devlop 22
案例20:按照第二个字符排序,域的使用
[root@kylin-ren-class ren]# sort -k1.2 sort2.txt #第一列第二个字符进行排序
C# 23
C 283
C++ 293
java 273
kebernets 87
devlop 22
keybroad 245
nginx 1299
jiqun 79
案例21:指定分隔符排序
[root@kylin-ren-class ren]# sort -t ':' -rnk3 sort3.txt
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
cockpit-ws:x:993:990:User for cockpit-ws:/nonexisting:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
pesign:x:991:987:Group for the pesign signing daemon:/var/run/pesign:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
案例22:将排序后的内容写入到源文件
[root@kylin-ren-class ren]# touch sort4.txt
[root@kylin-ren-class ren]# sort -t ':' -rnk3 sort3.txt > sort4.txt
[root@kylin-ren-class ren]# cat sort4.txt
setroubleshoot:x:994:991::/var/lib/setroubleshoot:/sbin/nologin
cockpit-ws:x:993:990:User for cockpit-ws:/nonexisting:/sbin/nologin
chrony:x:992:989::/var/lib/chrony:/sbin/nologin
pesign:x:991:987:Group for the pesign signing daemon:/var/run/pesign:/sbin/nologin
dhcpd:x:177:177:DHCP server:/:/sbin/nologin
abrt:x:173:173::/etc/abrt:/sbin/nologin
sshd:x:74:74:Privilege-separated SSH:/var/empty/sshd:/sbin/nologin
tcpdump:x:72:72::/:/sbin/nologin
apache:x:48:48:Apache:/usr/share/httpd:/sbin/nologin
rpcuser:x:29:29:RPC Service User:/var/lib/nfs:/sbin/nologin
如果是写入源文件是-o,慎用,在后面加一个-o即可
命令 | 说明 |
---|---|
-c | --count在每列旁边显示该行重复出现的次数,不能有空字符 |
-d | --repeated仅显示重复出现的行列 |
-u | --unique仅显示出一次的行列 |
案例23:统计文件中各个相同行出现的重复出现的次数
[root@kylin-ren-class ren]# uniq -c sort5.txt
3 test 30
4 Hello 95
2 Linux 85
案例24:将文件中的字符进行排序并统计单词出现的次数
[root@kylin-ren-class ren]# cat sort5.txt | sort | uniq -c
4 Hello 95
2 Linux 85
3 test 30
案例25:按照字符出现的次数进行逆序排序
[root@kylin-ren-class ren]# cat sort5.txt | uniq -c | sort -rk1
4 Hello 95
3 test 30
2 Linux 85
特点:
1.安装简单方便
2.可以自动解决依赖问题
3.类似于直接通过软件商店进行意见傻瓜式安装
4.默认安装,不能选择位置,不能自定义安装
麒麟,红帽系统:
1.安装软件:
yum -y install [包名称]
yum- y install [包名称1] [包名称2] [包名称3]
2.卸载软件:
yum -y remove [包名称]
3.查看yum仓库中所有的软件:
yum list
4.清理yum缓存:
yum clean all
Ubuntu,Debian系统
1.软件安装:
apt -y install [包名称]
2.卸载软件
apt -y remove [包名称]
3.查看apt仓库中的所有软件:
apt list
特点:
1.必须先下载rpm包
2、rpm不支持自动解决依赖问题,需要手动安装,缺什么手动安装什么
3.支持无网络安装(企业需求)
4.不支持自定义安装,例如路径选择,功能选择
5.yum无法安装软件,或者yum安装的版本过低,第三方软件提供rpm包安装
rpm参数 | 说明 |
---|---|
-i | 安装软件 |
reinstall | 覆盖安装 |
-v | 显示安装过程 |
-h | 显示安装进度 |
-qa | 查看所有已经安装的软件 |
-qa + [包名字] | 指定查看某个软件是否安装 |
-qc | 查看软件的配置文件的位置 |
-ql | 查看安装了哪些文件 |
-e | 卸载软件 |
--downloaddir [路径] | 下载文件到存放的路径 |
--downloadonly | 只下载包,不安装 |
repolist | 查看有哪些yum仓库 |
dpkg参数 | 说明 |
---|---|
-i | 安装软件 |
-l | 列出当前系统中已经安装的所有包 |
-s | 查询已安装的包的详细信息 |
-L | 查询系统中已经安装的软件包所安装的位置 |
-r | 卸载软件包,不是完全卸载,它的配置文件还存在 |
-p | 全部卸载,但是还是不能解决软件包的依赖性问题 |
1> #标准正确输出重定向,先清空空写入,写时可以省略'1'直接写'>',只接收正确的执行结果
1>> #标准正确追加输出重定向,只接收正确的结果
2> #标准错误输出重定向,先清空后写入,只要错误的结果
2>> #标准错误追加输出重定向,追加写入内容,只要错误的结果
案例26.将内容重定向到1.txt中
echo 任鹏宇 > 1.txt
案例27.如果结果错误会清空文件内容
[root@kylin-ren-class ren]# ech renpengyu > 1.txt
-bash: ech:未找到命令
[root@kylin-ren-class ren]# cat 1.txt
[root@kylin-ren-class ren]#
案例28.清空文件内容
> 1.txt
案例29.追加重定向
[root@kylin-ren-class ren]# echo 计算机 >> 1.txt
[root@kylin-ren-class ren]# cat 1.txt
计算机
[root@kylin-ren-class ren]# echo 运维 >> 1.txt
[root@kylin-ren-class ren]# cat 1.txt
计算机
运维
案例30. 2>
接收错误的结果
[root@kylin-ren-class ren]# ech 云计算 2> 1.txt
[root@kylin-ren-class ren]# cat 1.txt
-bash: ech:未找到命令
案例31. 2>>
追加错误的结果
[root@kylin-ren-class ren]# apt install telnetd -y 2>> 1.txt
[root@kylin-ren-class ren]# cat 1.txt
-bash: ech:未找到命令
-bash: apt:未找到命令
案例32. 保留命令的正确和错误的结果,正确的写入到OK.txt,错误的写入到error.txt
# 正确:
[root@kylin-ren-class ren]# echo 运维 >> OK.txt 2>> error.txt
[root@kylin-ren-class ren]# cat OK.txt
运维
[root@kylin-ren-class ren]# cat error.txt
[root@kylin-ren-class ren]#
# 错误:
[root@kylin-ren-class ren]# apt -y install wget >> OK.txt 2>> error.txt
[root@kylin-ren-class ren]# cat OK.txt
运维
[root@kylin-ren-class ren]# cat error.txt
-bash: apt:未找到命令
[root@kylin-ren-class ren]#
参与评论
手机查看
返回顶部