恭喜你,找到宝藏博主了,这里会分享shell的学习整过程。
shell 对于运维来说是必备技能之一,它可以提高很多运维重复工作,提高效率。
shell的专栏,我会详细地讲解shell的基础和使用,以及一些比较常用的shell技巧。
有需要的可以从这里开始,可以教会你如何去进行shell脚本的编写,提高你的工作效率。
从第一篇基础开始:
【shell脚本】shell脚本之概念、运行方式、变量的使用、交互式脚本、运算(shell脚本基础学习一)_向往风的男子的博客-CSDN博客
sed高级应用--- awk基本用法 ---
sed 选项 (定址符)指令 处理的文件
前置指令 | sed 选项 (定址符)指令
-n -r -i p d s
cat nssw.txt
Hello th6e World
ni ha7o ma beijing
删除文件中每行的第二个、最后一个字符
sed 's/.//2;s/.$//' u
将文件中每行的第一个、倒数第1个字符互换
( ) 保留(相当于复制) \1 \2 相当于粘贴
sed -r 's/^(.)(.*)(.)$/\3\2\1/' u
删除文件中所有的数字
sed 's/[0-9]//g' u
为文件中每个大写字母添加括号
sed -r 's/([A-Z])/(\1)/g' u
----------------------------------------------------------------------
a在行下追加 i在行上添加 c替换整行
sed 'i XXXX' a 所有行上添加XXXX
sed '1i XXXX' a 第一行上添加XXXX
sed '1,2i XXXX' a 1~2行上添加
sed '1a XXXX' a 第一行下追加
sed 'c XXXX' a 所有行替换为XXXX
sed '1c XXXX' a 第一行替换
sed '/abc/c XXXX' a 有abc的行替换
-----------------------------------------------------------------------
编写脚本,找出使用bash的用户,按照 名字 --> 密码 的格式输出:
#!/bin/bash
u=`sed -n '/bash$/s/:.*//p' /etc/passwd` 找到用bash的用户,并且把名字都存在变量u中
for i in $u 将变量u交给for循环处理
do
x=`grep $i: /etc/shadow` 第一次循环,变量i是第一个用户
a1=${x#*:} 掐头
a2=${a1%%:*} 去尾
echo "$i --> $a2" 输出
done
-------------------------------------------------------
"Open Source" is a good mechanism to develop programs.
apple is my favorite food.
Football game is not use feet only.
this dress doesn't fit me.
However, this dress is about $ 3183 dollars.
GNU is free air not free beer.
Her hair is very beauty.
I can't finish the test.
Oh! The soup taste good.
motorcycle is cheap than car.
This window is clear.
the symbol '*' is represented as start.
Oh! My god!
The gd software is a library for drafting programs.
You are the best is mean you are the no. 1.
The world <Happy> is the same with "glad".
I like dog.
google is the best tools for search keyword.
goooooogle yes!
go! go! Let's go.
# I am VBird
-----------------------------------------------
========================================
正则
grep 模糊搜索
sed 可以修改文档
awk 精确搜索
------------------------------------------------
awk使用方式:
1 , awk 选项 (条件)指令 被处理的文件
2 , 前置命令 | awk 选项 (条件)指令
选项:
-F 定义分隔符
指令
print 输出
内置变量:
列 $0 $1 $2 $3 ...... NF列 NR行
awk '{print}' u
awk '{print $2}' u
awk '{print $0}' u
awk '{print $1}' u
awk '{print $1 $3}' u
awk '{print $1,$3}' u
awk '{print $0,$3}' u
awk '/beijing/{print}' u
----------------------------------------------------
cat user 准备素材
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
awk -F: '{print $6}' user 修改分隔符为冒号, 显示第6列
/root
/bin
awk -F: '/root/{print $6}' user 配合正则匹配有root的行,显示第6列
/root
awk -F/ '/root/{print $3}' user 修改分隔符,显示第3列
bin
awk -F[:/] '/root/{print $9}' user 使用冒号或者斜杠做分隔符,显示第9列
awk -F: '{print $1"的解释器是"$7}' user 输出常量,需要使用引号
awk -F: '{print $1 abc $7}' user 不加引号,系统会识别为变量,如果变量没有定义,则输出的值为空
awk -F: '{print $1 "abc" $7}' user 加引号,变常量输出
awk -F: '{print NR,NF}' user 输出行号和列号
----------------------------------------------------------------------------------------
ifconfig eth0 |awk '/TX p/{print "当前主机eth0网卡的发送流量是"$5"字节"}'
ifconfig eth0 |awk '/RX p/{print "当前主机eth0网卡的接收流量是"$5"字节"}'


**网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。**
**了解详情》docs.qq.com/doc/DSlVlZExWQ0FRSE9H**