shell的使用
shell脚本是Linux系统运维时必不可少的一个技能脚本的实质就是将需要执行的命令封装在一个文件内给其赋予执行权限或者使用bash或sh等解释器来执行。shell脚本的编写其实十分简单懂得需要的命令和任务的执行逻辑即可。
常见解释器
sh解释器
ksh解释器
bash
脚本规范
下面是脚本的基本格式首先第一行要写脚本的解释器路径,这一行所有脚本都必须要写,下面可以写一些注释例如这个脚本的信息作用之类的可以不写。接下来就是写自己要执行的命令
解释器脚本声明
#!/bin/bash
注释描述脚本功能作者信息变量等等...
任务指令
执行脚本
执行方法答题分为两类,添加执行权限然后是直接输入脚本的绝对或相对路径执行,第二种就是使用解释器执行
添加X权限,权限的添加可以看我之前的文章 权限介绍
使用bash执行,执行时开启子进程执行完后进程杀死在原来界面不会发生改变
使用source或.执行,执行时不开启子进程,执行完后界面发生改变
shell
搭建yum脚本
cp /etc/yum.repos.d/myyum.repo /opt #可以先备份原有yum配置文件
[root@svr5 ~]# vim /opt/myyum.sh
#!/bin/bash
rm -rf /etc/yum.repos.d/*.repo
echo "[abc]
name=abc
baseurl=file:///misc/cd
gpgcheck=0" > /etc/yum.repos.d/abc.repo
脚本信息的输出
我们在执行脚本的时可能会遇到输出大量的回写,不方便观看和判断脚本是否执行成功,下面为大家介绍将脚本的执行之后的信息写入到指定文件的方法
>
:重定向标准输出
2>
:重定向错误输出
&>
:重定向所有输出
vb
[root@svr5 ~]# vim /opt/ftpon.sh
#!/bin/bash
yum -y install vsftpd &> /dev/null #将不需要的信息扔黑洞
systemctl start vsftpd > /var/log/ftp_start.log #将所有信息传入到指定文件
systemctl enable vsftpd 2> /var/log/ftp_enabled.log #将错误信息传输到指定文件