【●】Shell脚本编辑
一、shell环境及特性
1.shell
●在linux内核与用户之间的解释器程序
—通常指 /bin/bash
—负责向内核翻译及传送用户/程序指令
—相当于系统的“外壳”
2.shell的使用方式
●交互式 ——命令行
—人工干预、智能化程度高
—逐条解释执行、效率低
●非交互式 ——脚本
—需要提前设计、智能化难度大
—批量执行、效率高
—方便在后台静悄悄地运行
3.常见的shell程序种类
如何切换shell环境
—通过usermod、chsh更换登录shell
—手动执行目标shell程序
用户(root)---bash---sh
●cat /etc/shells # 查看系统中所有的解释器
[root@svr7 ~]# cat /etc/shells
/bin/sh #多数Unix默认的shell
/bin/bash #多数linux默认使用的shell
/sbin/nologin #非登录shell
/usr/bin/sh
/usr/bin/bash
/usr/sbin/nologin
/bin/tcsh
/bin/csh
4.Bash基本特性
●命令行环境回顾
—tab键补全、历史命令、 快捷键、别名、重定向、管道符(管道操作)
二、脚本构成及执行
1.shell脚本
●提前写好可执行语句,能够完成特定任务的文件
—顺序、批量化处理
—解释型程序
2.规范的脚本构成
—声明解释器
# !/bin/bash(使用哪种解释器 、写在脚本第一行)
—编写注释
#编写步骤、思路、脚本功能、作者信息、变量作用等内容
—执行指令
[root@svr7 ~]# vim /root/first.sh
#!/bin/bash
#这是第一个测试脚本
echo "Hellow World"
echo "abc"
3.脚本创建“三步走”
—1. 新建文本文件
—2. 添加可执行的脚本语句(命令行)
—3. 添加 x 执行权限
[root@svr7 ~]# vim /root/first.sh #1.建文件
echo "Hello World" #2.写脚本语句
[root@svr7 ~]#chmod u+x /root/first.sh #3.加执行权限
[root@svr7 ~]# /root/first.sh
Hello World
4.shell脚本执行方式
—1. 添加x权限 ,使用绝对路径或相对路径执行
[root@svr7 opt]# chmod u+x test01.sh
[root@svr7 opt]# /opt/test01.sh
—2. 使用解释器执行脚本,无需x权限(开启子进程,父进程不作任何操作)
[root@svr7 opt]# bash test01.sh
—3.使用source 命令执行脚本,无需x权限(不开启子进程,父进程进行操作)
[root@svr7 opt]# source test01.sh
三、简单脚本应用
1.快速配置yum仓库
[root@svr7 opt]# vim test03.sh
#!/bin/bash
#部署yum仓库
mount /dev/cdrom /mydvd
rm -rf /etc/yum.repos.d/*.repo
echo "[abc]
name=xxx
baseurl=file:///mydvd
enabled=1
gpgcheck=0 " > /etc/yum.repos.d/abc.repo
[root@svr7 opt]# bash test03.sh
[root@svr7 opt]# yum repolist
2.编写脚本,安装http服务,需要开机自启并且主页显示内容为“web-test~~~”
[root@svr7 opt]# vim /opt/test04.sh
#!/bin/bash
yum -y install httpd
echo "web-test~~~" > /var/www/html/index.html #定义主页内容
systemctl restart httpd #开服务
systemctl enable httpd #设置开机自启
之后使用 bash test04.sh 执行脚本
curl 192.168.4.7 可以看到页面内容
◆ 编写脚本,开启ftp服务,并实现开机自启
yum -y install vsftpd &> /dev/null //安装ftp,不显示任何信息,dev下
的null相当于黑洞,不需要的信息都可以扔到里面让其消失。
[root@svr7 opt]# vim test05.sh
#!/bin/bash
yum -y install vsftpd &> /dev/null #装包,忽略输出
systemctl restart vsftpd #起服务
systemctl enable vsftpd #设为开机自运行
[root@svr7 opt]# bash test05.sh
> 正确信息重定向
2> 错误信息重定向
&> 所有信息重定向
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。