【2024版】最新shell安装使用教程(非常详细)零基础入门到精通,收藏这一篇就够了_shell教程

还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!

王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。

对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!

【完整版领取方式在文末!!】

93道网络安全面试题

内容实在太多,不一一截图了

黑客学习资源推荐

最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

😝朋友们如果有需要的话,可以联系领取~

1️⃣零基础入门
① 学习路线

对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。

image

② 路线对应学习视频

同时每个成长路线对应的板块都有配套的视频提供:

image-20231025112050764

2️⃣视频配套工具&国内外网安书籍、文档
① 工具

② 视频

image1

③ 书籍

image2

资源较为敏感,未展示全面,需要的最下面获取

在这里插入图片描述在这里插入图片描述

② 简历模板

在这里插入图片描述

因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

  
cat >>b.txt<<EOF  
  
1|12|23|304|45|56|67|708|89|910|10  
  
EOF  


  
awk -F '|' 'BEGIN{ while(getline < "a.txt") { user\_map\[$1\] = $2; } }{  
  
if ($1 in user\_map) {if  (user\_map\[$1\] < $2) print $0; }}' b.txt  


注意:如果a.txt不存在,getline会返回-1,导致死循环。我以前曾经碰上过因为这个原因导致程序挂死,所以特别提出来让大家注意

tomcat并发数
  
netstat -an|grep 10050|awk '{count\[$6\]++} END{for (i in count) print(i,count\[i\])'  


sed

sed功能

  
Sed是Strem Editor(流编辑器)缩写,是操作、过滤和转换文本内容的强大工具。常用功能有增删改查,过滤,取行。  
  


参数

  
\-n #取消默认输出  
\-r #使用扩展正则  
\-i #刷到磁盘  
\-e #执行多条sed指令  
\-f #指令放在文件里  


指令

  
a 追加  
i 插入  
d 删除  
c 替换指定的行  
s 替换每一行匹配到的第一个字符  
g 替换每一行的全部  
p 输出  
w 另存文件    
e 执行bash命令  
q 不继续往下读取  


流程

sed 读取文件是逐行读取处理输出

增删改查

单行增加
  
sed '2a 106,dandan,CSO' person.txt  
  
sed '2i 106,dandan,CSO' person.txt  


多行增加
  
sed '2a 106,dandan,CSOn107,bingbing,CCO' person.txt  


例子
  
Port 52113  
  
PermitRootLogin no  
  
PermitEmptyPasswords no  
  
UseDNS no  
  
GSSAPIAuthentication no  
  
  


现在想一条命令增加5行文本到第13行前(地址用逗号分隔的,n1,n2可以用数字、正则表达式、或二者的组合表示)

  
sed -ir '13 i zbcdnPort 52113nPermitRootLogin nonPermitEmptyPasswords nonUseDNS nonGSSAPIAuthentication non#####--end--#######n' /etc/ssh/sshd\_config  


其他例
  • 10{sed-commands} 对第10行操作
  • 10,20{sed-commands} 对10到20行操作,包括第10,20行
  • 10,+20{sed-commands} 对10到30(10+20)行操作,包括第10,30行
  • 1~2{sed-commands} 对1,3,5,7,……行操作
  • 10,

s

e

d

c

o

m

m

a

n

d

s

10

到最后一行

(

{sed-commands} 对10到最后一行(

sed−commands对10到最后一行(代表最后一行)操作,包括第10行

  • /oldboy/{sed-commands} 对匹配oldboy的行操作
  • /oldboy/,/Alex/{sed-commands} 对匹配oldboy的行到匹配Alex的行操作

*

  • /oldboy/,${sed-commands} 对匹配oldboy的行到最后一行操作
  • /oldboy/,10{sed-commands} 对匹配oldboy的行到第10行操作,注意:如果前10行没有匹配到oldboy,sed软件会显示10行以后的匹配oldboy的行,如果有1,/Alex/{sed-commands} 对第1行到匹配Alex的行操作

*

  • /oldboy/,+2{sed-commands} 对匹配oldboy的行到其后的2行操作
删除
删除指定的行
  • sed ‘d’ person.txt #删除全部
  • sed ‘2d’ person.txt #删除第二行
  • sed ‘2,5d’ person.txt #删除2到5行
  • sed ‘3,$d’ person.txt #删除3到结尾
  • sed ‘1~2d’ person.txt #删除1,3,5行
  • sed ‘1,+2d’ person.txt #删除1,2,3
  • sed ‘/zhangyao/d’ person.txt #删除匹配的zhangyao行
  • sed ‘/oldboy/,/Alex/d’ person.txt #删除匹配oldboy到Alex行
  • sed ‘/oldboy/,3d’ person.txt #删除从匹配oldboy的3行
打印文件内容但不包含oldboy
  
sed '/oldboy/d' person.txt #删除包含"oldboy"的行  


更改
按行替换c 用新行取代旧行
  
sed '2c 106,dandan,CSO' person.txt #替换第2行的内容  


文本替换s:单独使用,将每一行中第一处匹配的字符串进行替换
  • g:每一行进行全部替换
  • -i:修改文件内容
sed软件替换模型(方框▇被替换成三角▲)
  
sed -i 's/▇/▲/g' oldboy.log  
  
sed -i 's#▇#▲#g' oldboy.log

指定行修改配置文件

指定行精确修改配置文件,这样可以防止修改多了地方。

  
sed '3s#0#9#' person.txt

变量替换
  
x=a  
  
y=b  
  
echo $x $y  
  
sed s#$x#$y#g test.txt

分组替换( )和1的使用说明

sed软件的( )的功能可以记住正则表达式的一部分,其中,1为第一个记住的模式即第一个小括号中的匹配内容,2第二记住的模式,即第二个小括号中的匹配内容,sed最多可以记住9个。

例:echo I am oldboy teacher.如果想保留这一行的单词oldboy,删除剩下的部分,使用圆括号标记想保留的部分。
  
echo I am oldboy teacher. |sed 's#^.\*am (\[a-z\].\*) tea.\*$#1#g'  
echo I am oldboy teacher. |sed -r 's#^.\*am (\[a-z\].\*) tea.\*$#1#g'  
echo I am oldboy teacher. |sed -r 's#I (.\*) (.\*) teacher.#12#g'

命令说明

思路:用oldboy字符替换I am oldboy teacher.

下面解释用□代替空格

  
^.\*am□ –>这句的意思是以任意字符开头到am□为止,匹配文件中的I am□字符串;  
(\[a-z\].\*)□–>这句的外壳就是括号(),里面的\[a-z\]表示匹配26个字母的任何一个,\[a-z\].\*合起来就是匹配任意多个字符,本题来说就是匹配oldboy字符串,由于oldboy字符串是需要保留的,因此用括号括起来匹配,后面通过1来取oldboy字符串。  
□tea.\*$–>表示以空格tea起始,任意字符结尾,实际就是匹配oldboy字符串后,紧接着的字符串□teacher.;  
后面被替换的内容中的1就是取前面的括号里的内容了,也就是我们要的oldboy字符串。  
()是扩展正则表达式的元字符,sed软件默认识别基本正则表达式,想要使用扩展正则需要使用转义,即()。  
sed使用-r选项则可以识别扩展正则表达式,此时使用()反而会出错。  


#####系统开机启动项优化

  
chkconfig --list|grep "3:on"|grep -vE "sshd|crond|network|rsyslog|sysstat"|awk '{print $1}'|sed -r 's#^(.\*)#chkconfig 1 off#g'|bash  
  
chkconfig --list|grep "3:on"

特殊符号&代表被替换的内容#→将1到3行的C替换为–C–
  
sed '1,3s#C#--&--#g' person.txt         #→此处&等于C

批量重命名文件
  
for i in \`seq 5\`;do touch stu\_102999\_${i}\_finished.jpg;done  
  
ls |sed -r 's/(.\*)\_finished(.\*)/mv & 1\_finish2/e'

p 输出指定内容,但默认会输出2次匹配的结果,因此使用n取消默认输出

按行查询
  
sed '2p' person.txt  
sed -n '2p' person.txt  
sed -n '2,3p' person.txt  
sed -n '1~2p' person.txt  
sed -n 'p' person.txt

按字符串查询
  
sed -n '/CTO/p' person.txt  
  
sed -n '/CTO/,/CFO/p' person.txt

混合查询
  
sed -n '2,/CFO/p' person.txt  
  
sed -n '/feixue/,2p' person.txt

特殊情况,前两行没有匹配到feixue,就向后匹配,如果匹配到feixue就打印此行

其他功能
备份功能
  
sed -i.bak '$a 1111111111' xxx.txt  


备份xxx.txt文件为xxx.txt.bak,修改源文件,最后一行添加111111111

另存功能
  
sed 's/sb/SB/g w new.txt' xxx.txt  


把sb替换成SB的整行输出到new.txt中

大小写转换
  
L    #全部转换成小写  
l     #单个转换成小写  
U   #全部转换成大写  
u    #单个转换成大写  
E    #需要和U和L一起使用,关闭U和L的功能  
sed -r 's/(.\*),(.\*),(.\*)/L3,E1,U2/g' xxx.txt

执行多条sed指令
  
sed -e '3,$d' -e 's#10#01#g' xxx.txt  
  
sed '3,$d; s#10#01#g' xxx.txt

打印不可见字符l
  
sed -n 'l' xxx.txt

abc替换ABC(一一对应)
  
tr 'abc' 'ABC' xxx.txt  
  
sed 'y#abc#ABC#' xxx.txt  


可以操作多个文件
  
sed 'y#abc#ABC#' xxx.txt 222.txt  


模拟其他命令
创建svn库的时候自动取消#号和修改路径
  
sed -i -r '12,13s/# //g' svnserve.conf  
sed -i -r '20s/^# (.\*)/1/g' svnserve.conf  
sed -i -r '27s/^# (.\*)/1/g' svnserve.conf  
sed -i -r '12,13s/^# (.\*)/1/g' svnserve.conf  
sed -i -r '32s/# (.\*=)(.\*)/1 /usr/svnData//' svnserve.conf  


一条命令执行(加传参)

  
SvnPath='zhangzhicheng'sed -i -r -e '20s/^# (.\*)/1/g' -e '27s/^# (.\*)/1/g' -e '12,13s/^# (.\*)/1/g' -e "32s/# (.\*=)(.\*)/1 /usr/svnData/$SvnPath/" svnserve.conf  


grep

grep功能

搜索文本,过滤文本字符串 –v取反

选项

参数选项

| 参数选项 |解释说明(带※的为重点) |

| — | — |

| -V|取反,读出指定的内容之外的内容 |

| -A | 打印后面n行的内容 |

| -B| 打印前面n行的内容 |

| -C|打印前后各n行的内容 |

| -n|输出行行号 |

| -E(egrep)|使用扩展正则表达式 |

| -o |只输出匹配到的结果 |

|-i|忽略大小写|

|-a|当grep认为是二进制文件的时候加-a|

基础例子

已知文件 test.txt 内容为xxx 请给出输出 test.txt 文件内容时,不包含 oldboy 字符串的命令。
  
test  
  
liyao  
  
oldboy

  
grep –v oldboy test.txt  


过滤出/etc/services 文件包含 3306 或 1521 两数据库端口的行的内容

  
grep –E “3306|1521” /etc/services  


技巧例子

消除文件空行:
  
grep -v '^$' test.txt  
  
egrep -o "^\[^:\]+" xxx.txt       #匹配开头以非:的行,并输出匹配的内容(-o不是整行输出)  


为了帮助大家更好的学习网络安全,我给大家准备了一份网络安全入门/进阶学习资料,里面的内容都是适合零基础小白的笔记和资料,不懂编程也能听懂、看懂这些资料!

因篇幅有限,仅展示部分资料,需要点击下方链接即可前往获取

CSDN大礼包:《黑客&网络安全入门&进阶学习资源包》免费分享

在这里插入图片描述

写在最后

在结束之际,我想重申的是,学习并非如攀登险峻高峰,而是如滴水穿石般的持久累积。尤其当我们步入工作岗位之后,持之以恒的学习变得愈发不易,如同在茫茫大海中独自划舟,稍有松懈便可能被巨浪吞噬。然而,对于我们程序员而言,学习是生存之本,是我们在激烈市场竞争中立于不败之地的关键。一旦停止学习,我们便如同逆水行舟,不进则退,终将被时代的洪流所淘汰。因此,不断汲取新知识,不仅是对自己的提升,更是对自己的一份珍贵投资。让我们不断磨砺自己,与时代共同进步,书写属于我们的辉煌篇章。

需要完整版PDF学习资源私我

网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。

需要这份系统化资料的朋友,可以点击这里获取

一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值