在Linux的日常维护中,shell脚本是我们必不可少的日常管理之一;其作用是解决服务器的自动化维护工作,减轻管理员的工作量;如果想提高shell脚本的编写速度,必须要熟练使用vi编辑器的各种快捷键。
【什么是shell】
Shell Script,Shell脚本与Windows/Dos下的批处理相似,也就是用各类命令预先放入到一个文件中,方便一次性执行的一个程序文件,主要是方便管理员进行设置或者管理用的。但是它比Windows下的批处理更强大,比用其他编程程序编辑的程序效率更高,毕竟它使用了Linux/Unix下的命令。
【我的第一个脚本】
首先创建一个vim脚本文件,本例为创建一个以.sh结尾的test1测试文件
在文件内出入以下内容
其中echo为注释内容输出到屏幕,让使用者更容易读懂
添加权限并执行:
常用的执行方式:#sh 脚本路径与名称
#source 脚本路径与名称
#直接输入脚本路径或名称(需要给脚本添加执行权限)
【重定向操作】
用户通过操作系统出了信息的过程中,包括以下几类交互设备文件
- 标准输入(STDIN):默认的设备是键盘,文件编号为0,命令将从标准输入文件中读取在执行过程中需要的输入数据。
- 标准输出(STDOUT):默认的设备是显示器,文件编号为1,命令将执行后的输出结果发送到标准输出文件。
- 标准错误(STDERR):默认的设备是显示器,文件编号为2,命令将执行期间的各种错误信息发送到标准错误文件
(1)重定向输出:将命令的正常输出结果保存到指定的文件中,而不是显示在显示器上
“>”表示重定向输出(如果文件存在则会覆盖)
>>表示重定向追加
(2)重定向输入:将命令中接收输入的途径有默认的键盘改为指定的文件,而不是等待从键盘输入,重定向输入使用“<”操作符。
使用vim在pass.txt文件中添加123456
然后执行passwd --stdin jerry < pass.txt
(3)错误重定向:将执行命令的过程中出现的错误信息保存到指定的文件,而不是直接显示在屏幕上;错误重定向使用“2>”操作符,其中 2 是指错误文件的编号
(4)使用“&>”操作符将两类输出信息保存到统一目录。例如,在编译源码包的自动化脚本中,若要忽略make,make install等操作过程信息,可以将其定向到空文件/dev/null
创建一个脚本文件:vim httpd_install.sh
添加权限并执行:chmod +x httpd_install.sh
【管道操作】
管道操作作为不同命令之间的协同工作提供了一种机制,位于管道符号“|”左侧的命令输出的结果,将作为右侧命令的输入(处理对象),同一行命令中可以使用多个管道。
(1)提取之前的结果
(2)提取之后的效果,只显示用户名和shell列
(3)在例如显示磁盘已用百分比