Shell是什么?shell介于人和计算机内核之间
Shell的类型 用命令查看

/bin/sh 已经淘汰
/bin/bash 现在常用的也是Linux默认的shell 管理员
/sbin/nologin
/usr/bin/sh
/usr/bin/bash 现在常用的也是Linux默认的shell 普通用户
/usr/sbin/nologin
/bin/tcsh 基于tcsh 提供更多的扩展功能
/bin/csh 类C语言shell
默认使用的shell就是bash
查看用户使用的shell

Shell脚本:脚本语言 扩建语言 动态语言 也是编程语言的一种 主要用来控制软件应用程序
都是以文本形式保存 只有被调用的时候 文本代码才会被解释或编译 执行
默认.sh结尾
Shell脚本的作用
- 自动化运维(配合定时任务)
- 批量化重复操作可以通过脚本执行 减少人工的重复输入
- 减轻管理员的工作量
- 提高处理文件的速度
- 避免配置出错
只要是Linux可以执行的 都可以写进脚本里
Shell的组成结构:
- 声明解释器
- #代表注释 注释掉的代码不会执行 而且是按行执行
- 脚本当中的语句 Linux可执行命令都可以作为shell脚本的语句
- 脚本执行语句执行顺序是从上到下 依次按行执行
Shell的执行方式:
- 赋权执行 执行权限
- 不赋权执行(脚本调试) sh 脚本名 cource 脚本名
Source命令:点命令 . 对于刚刚修改的文件进行初始化操作(文件的内容都是shell语句 都是可执行的命令)执行source可以不需要重启 使更改内容直接生效
Sh:只在当前环境运行 并不涉及子shell环境的切换
Source:新建一个shell 继续执行 所有的执行结果都会保存在这个shell里面

赋权执行
Chomd 777 文件名 ./可执行文件 在当前目录可以直接执行
/opt/可执行文件名 绝对路径来写
需要执行的脚本不能放在用户的家目录 最好放在/opt目录中
标准输入 键盘 文件编号是0 正常执行的命令结果
标准输出 显示器 显示输出的结果
标准错误 显示器 显示错误的输入信息
重定向 echo 123 > 123
将标准输出的内容保存到指定的文件
重定向错误输出 2> 2>> 正确输出不会保存
混合输出 &> 会覆盖原有内容 &>> 不会覆盖
重定向输入

定时任务必须绝对路径
怎么在shell脚本中定义变量 已经shell脚本的变量类型 shell的运算符
变量:面向对象 对象的名称 对象的属性
变量名
属性:变量的值 对象的描述信息
变量属性 值的类型 int string
变量名=属性值
打印变量值
echo $变量名
变量的命名规范 自定义变量:不要使用Linux系统命令作为变量名
不要使用中文
不要试图特殊符号作为开头
默认加注释 变量名引用保持前后一致
自定义变量”” ‘’ ``(命令替换)
Read -p “提示信息” 变量名
变量的作用范围
默认情况 新定义的变量只在当前的shell环境中有效
全局变量:
Export 变量名=变量值 /etc/profile 需要在一整套环境中引用唯一且不需要变化的变量时 才会声明全局变量
环境变量 由系统提前创建 用户也可以添加设置用户的工作环境 配置系统行为 控制程序执行 特殊的全局变量
用户级环境变量 env查看全部 echo $PATH查看用户的
添加用户变量 只对当前用户可见
预定义环境变量 系统预设 所有人都可见 相当于全局变量
自定义环境变量 特殊的全局变量 只对设置用户有效
$USER显示用户的名称
$HOME 用户的家目录
$PWD:表示当前所在的工作目录
$PATH:可执行用户程序的默认路径
位置变量:
命令行参数 在脚本或者程序运行时传递给他们的值 而且位置变量在脚本外部传递变量值
$n 1-9
外部传参
预定义变量:
编程语言或脚本解释器提供的 不能修改 只能根据需要进行自动设置或更新
$*和$@ 表示命令或脚本需要处理的参数
$*和$@不加引号时表现一致 都会把参数分行处理
“$*”会把参数当成一行处理
$@加不加都会分行处理
$# 显示需要处理的参数个数
$? 表示前一条命令或者脚本执行之后的返回状态码 只有返回0才是执行成功 所有非0全部执行失败 也可以用在函数中作为return的返回值
Shell脚本整数的运算方式
{C=$(($a+$b))
C=$[12+5]
Let c=12*5
C=$(expr 12 + 5)}只能用于整数
本文介绍了Shell在操作系统中的作用,包括不同类型的Shell如bash和tcsh,Shell脚本的编写、自动化运维的应用,以及Shell的执行方式、变量管理、环境变量和运算符。
2311

被折叠的 条评论
为什么被折叠?



