01.什么是shell?
在Linux内核与用户之间的解释器程序,通常指/bin/bash
负责内核翻译及传达用户/程序指令
相当于操作系统的“外壳”
02.shell的使用方式?
交互式-------命令行
人工干预,智能化程度高,逐条解释执行,效率低
非交互式---------脚本
需要提前设计,智能化难度大,批量执行,效率高
方便在后台静悄悄地执行
03.常见的shell程序种类?
如何切换shell环境,通过usermod,chsh更改登录shell
手动执行目标shell程序。
cat /etc/shells
/bin/sh #多数Unix默认的shell
/bin/bash #多数Linux默认的shell
/sbin/nologin #非登录shell
04.bash的基本特性,有哪些?
命令行环境回顾,快捷键,Tab键补全
命令历史,命令别名,标准输入输出,重定向,管道操作
05.什么是shell脚本?
提前写好可执行语句,能够完成特定任务的文件,能够安顺序,批量化处理,解释型程序
常见的脚本语言,bash shell 第二,Python/prel/ruby
06.shell版的chenhongju的诞生
创建脚本三步,第一:新创建文本文件,第二:添加可执行的脚本语句(命令行)
第三:给脚本添加x权限,下列示范
vim /root/chen.sh #创建文本文件
echo 'chenhongju' #echo出来
chmod +x /root/chen.sh #添加x权限
/root/chen.sh #执行脚本
07.脚本的主要构成?
首先:声明解释器
第二:添加注释(步骤,思路,用途,变量含义等)
第三:可执行信息
08.脚本的执行方式
方法一,作为“命令字”
指定脚本文件的路径,前提使用x权限
方法二,作为“参数”
sh 脚本文件路径
source 脚本文件路径
“.点” 脚本文件路径
09.脚本的变量?
以固定名称存放,可能会变化的值,提高脚本对任务需求,运行环境变化的适应能力
方便在脚本中的重复使用
比如:X=12,Y=34 那么Z就=46
09.定义/赋值/查看变量
定义/赋值变量
变量名=变量值 #x=12 //定义变量X,赋值12
相关注意事项:
1.如果指定的变量名已存在,相当于为此变量重新赋值
2.等号两边不能有空格
3.变量名由字母/数字/下划线组成,区分大小写
4.变量名不能以数字开头,不能使用关键字和特殊字符,变量容易混淆时用{}隔开
如何取消变量:
1.退出定义变量的shell环境时,变量自动失效
2.手动取消:unset 变量名
10.变量的分类角度
存储类型:整数型,浮点型,双精度浮点型,字符型
变量的类型有一下:
1.环境变量
变量通常都大写,由系统维护,用来设置工作环境,只有个别变量用户可以直接更改
2.位置变量
bash内置,存储执行脚本是提供的参数
3.预定义变量
bash内置,一类有特殊用途的变量,可直接调用,但不能直接赋值或修改
4.自定义变量
由用户自主设置,修改及使用
环境变量:配置文件 /etc/profile ~ /bash_profile
相关操作
env:列出所有的环境变量
set:列出所以变量
常用的环境变量
PWD PATH USER LOGNAME UID SHELL HOME PS1 PS2
预定义变量:
用来保存脚本程序的执行信息
直接使用这些变量
不能字节为这些变量赋值
$0:当前所在的进程或脚本名
$$:当前运行进程的PID号
$?:命令执行后的返回状态,0表示正常,1或其他数字表示异常
$#:以加载的位置变量的个数
$*所有位置变量的值