据说会shell 脚本的运维,都月薪上万了!!!
2021/7/2 7:21:45
本文主要是介绍据说会shell 脚本的运维,都月薪上万了!!!,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
@[TOC](文章目录) # 前言 Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。 Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。 Ken Thompson 的 sh 是第一种 Unix Shell,Windows Explorer 是一个典型的图形界面 Shell。 # 一、Shell变量 规则: · 命名只能使用英文字母、数字和下划线,首个字符不能以数字开头。 · 中间不能有空格,可以使用下划线(_) · 不能使用标点符号 · 不能使用bash里的关键字(可用help命令查看保留关键字) ### 1、自定义变量 定义变量的格式: 变量名=变量值 取消变量的格式: unset 变量名 注意事项: √ =两边不能有空格,不要使用关键字做变量名,如:ls 、 cd等; √ 如果变量名已经存在则覆盖之前的变量值 √ 变量名称有:字母/数字/下划线,不能以数字开始 ### 2、系统预设变量 ##### ① 环境变量(变量名通常大写,有操作系统维护) 存储在/etc/profile或~/.bash_profile 常见的环境变量有:PATH \ PWD \ USER \ UID \ HOME \ SHELL ##### ② 位置变量(bash内置变量,存储脚本执行时的参数) 存储脚本执行时的参数 使用$n表示,n为数字序列号 通过位置变量创建系统帐户,配置密码 ```powershell [root@localhost ~]# vim /root/user.sh #!/bin/bash useradd "$1" //创建用户 echo "$2" | passwd --stdin "$1" //给用户设置密码 [root@localhost ~]# sh /root/user.sh abc 123 ``` ##### ③ 预定义变量(bash内置变量,可以调用但是不能赋值或修改) 用来保存脚本程序的执行信息 直接使用这些变量,不能直接为这些变量赋值 |变量名| 含义 | |--|--| | $0 | 当前所在的进程或脚本名 | | $$ | 当前运行进程的PID号 | | $? | 命令执行后的返回状态,0表示正常,1或其他值表示异常 | | $# | 已加载的位置变量的个数 | | $* | 所有位置变量的值 | ### 3、变量中引号的区别 ##### ① 多种引号的区别 |引号| 区别 | |--|--| | 双引号“” | 允许扩展,以$引用其他变量 | | 单引号‘’ | 禁用扩展,即便$也视为普通符号 | | 反引号`` | 将命令的执行输出作为变量值,$()与反引号等效 | ##### ② 全局变量与局部变量 局部变量:新定义的变量默认只是在当前shell环境中有效,无法在子shell环境中使用 全局变量:系统中的任何shell环境中都有效 # 二、Shell语句 ### 1、条件测试 ##### ①比较操作符介绍 |操作符| 含义 | |--|--| | -eq | 等于(equal) | | -ne | 不等于(not equal) | | -ge | 大于或等于(greater or equal) | | -le | 小于等于(less or equal) | | -gt | 大于(greater than) | | -lt | 小于(less than) | ##### ②文件状态操作符介绍 |操作符| 含义 | |--|--| | -e | 判断对象是否存在(exist),若存在则结果为真 | | -d | 判断对象是否为目录(directory),是则为真 | | -f | 判断对象是否存在为一般文件(file),是则为真 | | -r | 判断对象是否有可读权限(read),是则为真 | | -w | 判断对象是否有可写权限(write),是则为真 | | -x | 判断对象是否有可执行权限(excute),是则为真 | ##### ③控制操作符介绍 |操作符| 含义 | |--|--| | ; | 分隔多个命令。执行时互不干扰 | | && | 前后的两个命令都执行成功,整条命令才是正确的,否则是错误 | | II | 前后的两条命令,任何一条执行成功,整体命令都是正确 | ### 2、if判断语句 ##### ①if单分支语句 语法格式: if 条件;then 命令 fi 实例: ```powershell [root@localhost ~]# vim /root/shell/user.sh #!/bin/bash read -p "请输入用户名:" user read -s -p "请输入密码:" pass if [ ! -z "$user"] && [ ! -z "$pass"];then useradd "$user" echo "$pass" | passwd --stdin "$user" fi ``` ##### ②if双分支语句 if 条件;then 命令1 else 命令2 fi ##### ③if多分支语句 语法格式: if 条件1;then 命令1 elif 条件2;then 命令2 else 命令3 fi 实例: ```powershell [root@localhost ~]# vim /root/shell/number.sh #!/bin/bash clear num=$[RANDOM%10+1] read -p "请输入10以内的随机整数:"guess if [ $guess -gt $num ];then echo "Oops,猜大了" elif [ $guess -lt $num ];then echo "Oops,猜小了" else echo "恭喜,猜对了,就是:$num" fi ``` ### 3、while循环 √ 反复测试条件,只要成立就执行命令 语法格式: while 条件 do 命令 done 实例: ```powershell [root@localhost ~]# vim /root/while.sh #!/bin/bash i=1 while [ $i -le 5 ] do echo $i done ``` ### 4、for循环 作用:减少代码的冗余和重复 语法格式1: for 变量 in 值列表 do 命令 done 语法格式2: for (初值;条件;步长) do 命令序列 done 实例: ```powershell [root@localhost ~]# vim /root/for.sh for i in 1 2 3 4 5 do echo "this is a number $i" done ```这篇关于据说会shell 脚本的运维,都月薪上万了!!!的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23Springboot应用的多环境打包入门
- 2024-11-23Springboot应用的生产发布入门教程
- 2024-11-23Python编程入门指南
- 2024-11-23Java创业入门:从零开始的编程之旅
- 2024-11-23Java创业入门:新手必读的Java编程与创业指南
- 2024-11-23Java对接阿里云智能语音服务入门详解
- 2024-11-23Java对接阿里云智能语音服务入门教程
- 2024-11-23JAVA对接阿里云智能语音服务入门教程
- 2024-11-23Java副业入门:初学者的简单教程
- 2024-11-23JAVA副业入门:初学者的实战指南