还有兄弟不知道网络安全面试可以提前刷题吗?费时一周整理的160+网络安全面试题,金九银十,做网络安全面试里的显眼包!
王岚嵚工程师面试题(附答案),只能帮兄弟们到这儿了!如果你能答对70%,找一个安全工作,问题不大。
对于有1-3年工作经验,想要跳槽的朋友来说,也是很好的温习资料!
【完整版领取方式在文末!!】
93道网络安全面试题
内容实在太多,不一一截图了
黑客学习资源推荐
最后给大家分享一份全套的网络安全学习资料,给那些想学习 网络安全的小伙伴们一点帮助!
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
😝朋友们如果有需要的话,可以联系领取~
1️⃣零基础入门
① 学习路线
对于从来没有接触过网络安全的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,大家跟着这个大的方向学习准没问题。
② 路线对应学习视频
同时每个成长路线对应的板块都有配套的视频提供:
2️⃣视频配套工具&国内外网安书籍、文档
① 工具
② 视频
③ 书籍
资源较为敏感,未展示全面,需要的最下面获取
② 简历模板
因篇幅有限,资料较为敏感仅展示部分资料,添加上方即可获取👆
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事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行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!