Linux之简易shell脚本的编写

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   #将错误信息传输到指定文件
相关推荐
MilesShi40 分钟前
从 scheduler_tick 到上下文切换:深入解析 Linux 内核的 TIF_NEED_RESCHED 标志设置流程
linux·运维·单片机
方渐鸿4 小时前
【2024】k8s集群 图文详细 部署安装使用(两万字)
java·运维·容器·kubernetes·k8s·运维开发·持续部署
晓衣4 小时前
2025“獬豸杯”全国电子数据取证竞赛-k8s服务器取证wp
服务器·经验分享·程序人生·网络安全·容器·kubernetes·学习方法
我爱云计算4 小时前
K8S详解(5万字详细教程)
linux·运维·云原生·容器·kubernetes
明明跟你说过4 小时前
【k8s】资源限制管理:Namespace、Deployment与Pod的实践
运维·docker·云原生·容器·kubernetes·k8s
2301_794333916 小时前
实验室服务器配置|通过Docker实现Linux系统多用户隔离与安全防控
linux·服务器·docker·实验室
打码人的日常分享6 小时前
运维服务方案,运维巡检方案,运维安全保障方案文件
大数据·运维·安全·word·安全架构
荣光波比7 小时前
Nginx 实战系列(一)—— Web 核心概念、HTTP/HTTPS协议 与 Nginx 安装
linux·运维·服务器·nginx·云计算
武文斌777 小时前
单片机:DS18B20测温度、74HC595扩展芯片、8*8LED矩阵
运维·服务器·单片机·嵌入式硬件
fengfuyao9857 小时前
诊断并修复SSH连接Github时遇到的“connection closed“错误
运维·ssh·github