1为什么要学shell编程,?
linux系统中会大量的使用shell,工作中我们也需要自动化实现业务,列如自动备份,监控,安装服务
shell编程是linux运维人员必须要会的而且是最简单的编程语言
编程也是运维人员 必须具备的本领
shell 和python是运维人员必须具备的本领
2,shell是什么?
就是一个解释器(翻译官),命令行的命令以及脚本都会通过shell解释,处理后输出给 用户
创建用户的时候系统指定的,
3 shell的分类
cat /etc/shells这是c7支持的解释权
1
2 c shell包括csh tcsh
4 c7 echo $SHELL这是基本介绍
[root@oldboy-58 ~]# echo$SHELL /bin/bash
5 什么是shell脚本?
程序,命令放入文件里执行,这个文件称为shell
工作中最多的编程写脚本,存放在文件里 、/server/scistys
6 shell的变量
全局变量(环境变量)
整个系统中生效,一般是大写,系统中默认就会存在这样一些变量,满足系统和程序运行的需求。
比如 echo $PSI $PATH $UID $SHELL
自定义环境变量的命令
1 export OLDBOY="l am oldboy"
2 OLDBOY="l am oldboy" 再 export=OLDBOY
生效方式
/etc/profile 会被 /.bash_porfile会被/.bashrc会被/etc/bashrc覆盖 所以直接放/etc/bashrc里就ok了(老师推荐的)
这是永久生效的办法放进去之后 ,./etc/bashrc 运行一下再玩就好了
环境变量 一般安装软件的时候要用,比如安装java环境的时候
打印输出的时候:输出一个变量的时候加$
局部变量(自定义变量)
一般在安装
局部变量(普通变量)
咱们编写shell脚本最常用的变量
变量名=值
a =1
要求是:数字 字母 下划线 不能是数字开头
=等号:赋值符,把什么东西给谁
值:东西,变成内容。
引用内容的符号
单引号 所见即收到
双引号 解析变量
反引号 解析命令
不加引号 与双引号基本相同,但是不能是一个整体
所有特殊符号都是bs的功能
[root@oldboy-58 ~]# a=1
[root@oldboy-58 ~]# echo $a
1 [
root@oldboy-58 ~]# a=oldboy
[root@oldboy-58 ~]# echo $a
oldboy
let可以计算内容
[root@oldboy-58 ~]# a=1 [root@oldboy-58 ~]# y=$a+1 [root@oldboy-58 ~]# echo $y 1+1 [root@oldboy-58 ~]# let y=$a+1 [root@oldboy-58 ~]# echo $y 2
7表达式
[ 表达式 ]中括号表达式,两边必须有空格