首页 > 其他分享 >四剑客第五关

四剑客第五关

时间:2024-03-14 18:34:05浏览次数:23  
标签:grep 第五 剑客 master file 80 txt root

四剑客第五关

1 查询file.txt 以abc结尾的行

grep 'abc$' file.txt


^ 开头
$ 结尾


[root@master ~]# cat file.txt
sdhfks
sdfsdg
sdkjfhsdjh

sdjfsdgf
abcklsdfjksegfeabc
ekhkeerjkgsekfiabc
ekfhkehhie
dfisdgjfsd
fsdfjsdfs
eiofhjeihfe
esjkfhekhfe
erjkhekfhie
asekfhiweh
ekhreuikehikfhabc

erjkfhei
ekrhksehfguiefg
agkhjdigrjkfthew
'esjfhe

ejnkrhehf
aejkthehfgwe
kwerjehuirhe
ejkrheukyruiew
abcxeklhrkehhabc

erkhef
wekrheh


erjkhekre
kwerhkweh

rjkheghuehjk
[root@master ~]# grep 'abc$' file.txt 
abcklsdfjksegfeabc
ekhkeerjkgsekfiabc
ekhreuikehikfhabc
abcxeklhrkehhabc

2 删除file.txt文件中的空行

sed '/^$/d' file.txt |sponge file.txt
或者
grep -v '^$' file.txt > tmp && mv tmp file.txt

命令解释

grep -v '^$' file.txt:

grep: 是一个强大的文本搜索工具,用于搜索与指定模式匹配的行。
-v: 是一个选项,表示选择不匹配指定模式的行。
'^$': 是一个正则表达式,表示空行。^ 表示行的开始,$ 表示行的结束,所以 ^$ 匹配没有任何字符的行,即空行。
file.txt: 是要搜索的文件名。综合来说,这个命令会从file.txt中选择所有非空行,并打印它们。
> tmp:

这个符号表示重定向输出。这里,grep命令的输出(即file.txt中的所有非空行)会被重定向到一个名为tmp的新文件中。
&&:

这是一个shell操作符,表示只有当左边的命令(在这里是grep -v '^$' file.txt > tmp)成功执行(返回值为0)时,才会执行右边的命令。
mv tmp file.txt:

mv: 是一个移动或重命名文件的命令。
tmp file.txt: 这表示将tmp文件重命名为file.txt。如果file.txt已经存在,它将被tmp的内容替换。

综合起来,这条命令组合的作用是:从file.txt中删除所有空行,并将结果保存回file.txt。这里使用了临时文件tmp来存储中间结果,以确保在替换原始文件之前,新内容已经正确生成。








[root@master ~]# cat file.txt 
sdhfks
sdfsdg
sdkjfhsdjh

sdjfsdgf
abcklsdfjksegfeabc
ekhkeerjkgsekfiabc
ekfhkehhie
dfisdgjfsd
fsdfjsdfs
eiofhjeihfe
esjkfhekhfe
erjkhekfhie
asekfhiweh
ekhreuikehikfhabc

erjkfhei
ekrhksehfguiefg
agkhjdigrjkfthew
'esjfhe

ejnkrhehf
aejkthehfgwe
kwerjehuirhe
ejkrheukyruiew
abcxeklhrkehhabc

erkhef
wekrheh


erjkhekre
kwerhkweh

rjkheghuehjk
[root@master ~]# sed -n '10p' file.txt 
fsdfjsdfs



[root@master ~]# grep -v '^$' file.txt > tmp && mv tmp file.txt 
mv: overwrite ‘file.txt’? y
[root@master ~]# cat file.txt
sdhfks
sdfsdg
sdkjfhsdjh
sdjfsdgf
abcklsdfjksegfeabc
ekhkeerjkgsekfiabc
ekfhkehhie
dfisdgjfsd
fsdfjsdfs
eiofhjeihfe
esjkfhekhfe
erjkhekfhie
asekfhiweh
ekhreuikehikfhabc
erjkfhei
ekrhksehfguiefg
agkhjdigrjkfthew
'esjfhe
ejnkrhehf
aejkthehfgwe
kwerjehuirhe
ejkrheukyruiew
abcxeklhrkehhabc
erkhef
wekrheh
erjkhekre
kwerhkweh
rjkheghuehjk


3 打印file.txt 文件中的第10行

sed -n '10p' file .txt

head -n 10 file.txt  |tail -n 1


[root@master ~]# sed -n '10p' file.txt 
eiofhjeihfe

root@master ~]# head -n 10 file.txt |tail -n 1
eiofhjeihfe

5 在11月份,每天的早上6点到12点中,每隔2个小时执行一次/usr/bin/httpd.sh 怎么实现

crontab -e

0 6-11/2 * 11 * /usr/bin/httpd.sh






 chmod +x /usr/bin/httpd.sh


使用 crontab -e 命令编辑了cron任务,并添加了一个新的定时任务。这个任务的配置如下:

0 6-11/2 * 11 * /usr/bin/httpd.sh

 chmod +x /usr/bin/httpd.sh 来给脚本添加执行权限(如果它还没有的话)









*             *        *       *     *  
  
  含义
  
 分钟        时        日       月    周 
 
 
 
  分钟 0-59
  时 0-23
  日 1-31
  月 1-12
  周 1-7





6 iptables和firewalld 都学习下 禁止 ip 10.10.10.1 访问本地80端口
iptables -I INPUT -s 10.10.10.1/32 --dport 80 -j DROP



方法一
使用 firewalld
首先,您需要确认 firewalld 是否正在运行,并且是否是当前活动的防火墙管理工具。您可以使用以下命令来检查:


systemctl status firewalld
如果 firewalld 没有运行,您可以使用以下命令来启动它:

systemctl enable firewalld
systemctl start firewalld

下一步禁止ip设置


临时生效
firewall-cmd  --zone=public --add-rich-rule='rule family="ipv4" source address="10.10.10.1" port protocol="tcp" port="80" reject'

永久生效
firewall-cmd  --zone=public --add-rich-rule='rule family="ipv4" source address="10.10.10.1" port protocol="tcp" port="80" reject' --permanent

这个命令会在 public 区域中添加一个规则,拒绝来自 10.10.10.1 的所有 TCP 流量到端口 80。--permanent 参数表示规则是持久的,会在系统重启后仍然生效。



重启
firewall-cmd --reload







方法二 iptables


iptables -A INPUT -p tcp -s 10.10.10.1 --dport 80 -j DROP
这条命令会在 INPUT 链中添加一条规则,丢弃来自 10.10.10.1 的所有到端口 80 的 TCP 流量。





service iptables save  
service iptables restart

systemctl restart iptables




7 查看http的并发请求数及其tcp连接数

netstat -tna |grep ':80' |wc -l


netstat -an | grep tcp
netstat -an | grep :80 | wc -l
ss -tan  看所有tcp连接

ss -tan | grep :80 | wc -l





[root@master ~]# netstat -tna |grep ':80' |wc -l
0


[root@master ~]# netstat -an | grep tcp
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN     
tcp        0     36 10.0.0.164:22           10.0.0.1:13642          ESTABLISHED
tcp6       0      0 :::22                   :::*                    LISTEN     
[root@master ~]# netstat -an |grep :80 |wc -l
0
[root@master ~]# ss -tan
State       Recv-Q Send-Q                     Local Address:Port                       Peer Address:Port 
LISTEN      0      128                                    *:22                                    *:*     
ESTAB       0      36                            10.0.0.164:22                             10.0.0.1:13642 
LISTEN      0      128                                   :::22                                   :::*     
[root@master ~]# ss -tan | grep :80 |wc -l
0


8 统计80端口连接数

netstat -ant |grep ':80' |wc -l
ss -tn state established '(sport = :80 or dport = :80)' |wc -l


9 统计已经链接上的,状态为established

ss -t state established


ss -tan state established | wc -l

[root@master ~]# ss -tan state established | wc -l
2




[root@master ~]# ss -t
State       Recv-Q Send-Q                   Local Address:Port                       Peer Address:Port   
ESTAB       0      36                          10.0.0.164:ssh                            10.0.0.1:13642   
[root@master ~]# ss -t state established
Recv-Q Send-Q                        Local Address:Port                            Peer Address:Port   
0      36                               10.0.0.164:ssh                                 10.0.0.1:13642   
[root@master ~]# ss -t state established
Recv-Q Send-Q                        Local Address:Port                            Peer Address:Port   
0      36                               10.0.0.164:ssh                                 10.0.0.1:13642   


10 查出哪个IP地址连接最多

netstat -ntua |grep ESTABLISHED |awk '{print $5}' |cut -d: -f1 |sort |uniq -c| sort -nr

netstat -ntu |awk '{print $5}' |cut -d: -f1 |sort |uniq -c |sort -nr |head -n 1

ss -ntu |awk '{print $5}' |cut -d: -f1 |sort |uniq -c| sort -nr|head -n 1

netstat -ntu |awk '{print $5}' |cut -d: -f1 |sort |uniq -c|sort -nr |grep -vE "127.0.0.|10.|192.168." | head -n 1









[root@master ~]# netstat -ntu |awk '{print $5}' |cut -d: -f1 |sort |uniq -c |sort -nr |head -n 1
      1 servers)
[root@master ~]# ss -ntu |awk '{print $5}' |cut -d: -f1 |sort |uniq -c| sort -nr|head -n 1
      1 Local
[root@master ~]# netstat -ntu |awk '{print $5}' |cut -d: -f1 |sort |uniq -c|sort -nr |grep -vE "127.0.0.|10.|192.168." | head -n 1
      1 servers)


11 统计apache的access.log中访问量最多的ip

cat access.log |awk '{print $1}' |sort |uniq -c |sort -nr |head -n 1

12 如何查看占用端口8080的进程

lsof -i :8080





标签:grep,第五,剑客,master,file,80,txt,root
From: https://www.cnblogs.com/nwq1101/p/18073667

相关文章

  • 四剑客第四关
    四剑客第四关1、说一些你比较常用linux指令lsls-llsblkcatechottyhostnamehostnamectl-set-nameipapingifconfignetstat-tulpnss-tulpnpsauxkillkill-9lsofcdmkdirrm-rfrm-fcpmvfindgreppspaa......
  • 四剑客第三关
    四剑客第三关1find使用方法:根据文件大小查找命令:根据文件权限查找数据:find/etc/passwd-typef-size+10Mfind/etc/passwd-perm755[root@master~]#find/etc/passwd-typef-size+10M[root@master~]#find/etc/passwd-perm7552把abc压缩成格式......
  • 第二章投资技术《第五节 背离》
    1.走势晴雨表背离(也叫背驰):背道而驰股价与下方的指标背道而驰2.背离形态2.1顶背离走势上行,指标下行,上涨力度减弱,构成顶背离出现时机:上涨过程达到阶段性新高不破不立:股价创阶段性新高的过程中,没有出现顶背离,下跌趋势就不会确立,就可以一直持股2.2底背离走势下行,指标上行,下......
  • 四剑客第一关
    四剑客第一关1.修改当前时间为明天日期date-s"2024-03-14"date-s"$(date-dtomorrow+%Y-%m-%d)"修改date-s"$(date-dtomorrow+%Y-%m-%d)"[root@master~]#date-s"2024-03-13"WedMar1300:00:00CST2024[root@master~]#d......
  • kettle从入门到精通 第五十课 ETL之kettle 课程源文件分享
    Kettle是一款功能强大的开源ETL工具,被广泛应用于数据集成、数据转换和数据加载等领域。随着数据量和多样性的不断增加,使用Kettle进行数据处理已成为许多企业和数据工程师的首选。在过去的几个月里,我已经撰写了将近50篇关于Kettle的文章,涵盖了各种主题和用例,如数据抽取、数......
  • 第五十六回 徐宁教使钩镰枪 宋江大破连环马-飞桨图像分类套件PaddleClas初探
    宋江等人学会了钩镰枪,大胜呼延灼。呼延灼损失了很多人马,不敢回京,一个人去青州找慕容知府。一天在路上住店,马被桃花山的人偷走了,于是到了青州,带领官兵去打莲花山。莲花山的周通打不过呼延灼,于是李忠去请二龙山的来帮忙。杨志、鲁智深和武松三个都来帮忙,呼延灼打不过,只好退回青......
  • 第五节:二叉树相关(反转二叉树[递归/栈]、最大路径和)
    一.反转二叉树一.题目描述  给你一棵二叉树的根节点root,反转这棵二叉树,并返回其根节点。  示例:  leetcode:https://leetcode.cn/problems/invert-binary-tree/description/  难度:【简单】二.思路分析1-递归 1.首先要有递归结束的条件 2.先写......
  • 3月11号(工程日志第五天)
    所学时间:4小时代码行数:413行博客园数:1篇所学知识:今天将学习了安卓开发对于数据库sqlite的增删改查操作,并学会了部分的试图修改操作。MainActivitypackagecom.example.myapplication;importandroidx.appcompat.app.AppCompatActivity;importandroid.annotation.Suppre......
  • 程序是怎样跑起来的第五章有感
    读完第五章后,我对程序的控制流程有了更清晰的认识。这一章主要介绍了程序中的条件判断和循环结构,以及它们如何影响程序的执行。我了解到条件判断语句(如if-else)和循环语句(如for、while)是控制程序逻辑的重要工具。它们允许程序根据不同的条件执行不同的操作,或者重复执行特定的代......
  • PARA第五部分:如何制作项目清单(Part5.The Project List Mindsweep)
    内容简介: 本文介绍了如何通过制作项目清单,掌控日常工作生活中的所有项目,不再为事情太多、难以分辨轻重缓急、遗漏重要的事情而抓狂。我们大多数人都认同:重要的事情要优先做。但实际上是:因为各种原因,总是先做 催的紧、容易做的事情。而且,可能会有这种感觉:要做的事情太多,好累;......