linux
一.shell基础
1.什么是shell
在linux内核与用户之间的解释器程序,通常指/bin/bash
2.shell的使用方式
1.交互式
2.非交互式
3.Bash基本特征
1.快捷键
2.历史命令
3.重定向
4.管道
5.别名
4.shell脚本
1.规范脚本构成
(1) #!指定解释器
(2) # 注释信息(作者信息,步骤,思路,用途,变量等)
(3)可执行语句
2.执行脚本
(1)直接执行:/脚本路径/脚本名,前提是有x权限
(2)没有权限,使用解释器执行(解释器有权限)
解释器 + 脚本
bash执行脚本:开子进程执行,bash-bash
source执行脚本:不开子进程执行
3.排错模式
解释器 -x
二.变量
1.变量分类
1.环境变量:变量名通常都大写,由系统维护,用来设置工作缓解,只有个别变量用户可以直接更改
(1)配置文件
/etc/profile ~/.bash_profile
(2)相关操作
env:列出所有的环境变量
set:列出所有变量
(3)常见的环境变量
PWD,PATH,USER,HOSTNAME...
PATH:命令的搜索路径
2.位置变量:bash内置,用来存储执行脚本是提供的参数,类似于传参
(1)表示位$n,n为序号:$1,$2,...,${10}
3.预定义变量:bash内置,存一类有特殊用途的变量,可直接调用但是不能直接修改赋值
(1)用来保存脚本程序的执行信息
(2)直接使用这些变量
(3)不能直接为这些变量赋值
$0:当前所在的进程或脚本名
$$:当前运行进程的PID号
$?:命令执行后的返回状态,0表示正常,1或其它值表示异常
$#:已加载的位置变量的个数
$*或$@:所有位置变量的值
$!:后台最后一个进程的PID号
4.自定义变量:用户自主设置,修改及使用
(1)数字字母下划线组成,不能以数字,特殊符号开头,等号两边不能有空格
(2)区分变量名用{a}分隔
2.变量值及范围控制
1.扩展赋值操作
(1)双引号"":允许扩展,以$引用其它变量
(2)单引号'':禁止扩展,即便$也视为普通字符
(3)反撇号``=$(命令):将`命令`的执行输出
2.read标准输入取值(自己输入数据给变量赋值)
read:从键盘读入变量值完成赋值
read [-p "提示信息"] 变量名
3.stty终端显示
(stty -echo):不显示信息
(stty echo):显示信息
4.变量的作用范围
(1)局部变量:只在当前的shell环境有效(bash进程)
export -n 名,取消全局变量
(2)全局变量:在所有shell环境中均有效
export 名,设置全局变量
三.数值运算
1.计算符号
+,-,*,/(取整),%(取余)
2.计算格式
(1)整数计算
1.$[]或者$(()):如果括号里面有变量,变量的$取值可以省略
2.let:只算不显示,i=1 ,let i+=1,echo $i=2
(2)小数计算:bc
echo "scale=2;10.0/3" | bc :sacle表示保留小数点后几位
- 一.shell基础
- 1.什么是shell
- 在linux内核与用户之间的解释器程序,通常指/bin/bash
- 4.shell脚本
- 1.规范脚本构成
- (2) # 注释信息(作者信息,步骤,思路,用途,变量等)
- 2.执行脚本
- (1)直接执行:/脚本路径/脚本名,前提是有x权限
- (2)没有权限,使用解释器执行(解释器有权限)
- bash执行脚本:开子进程执行,bash-bash
- 二.变量
- 1.变量分类
- 1.环境变量:变量名通常都大写,由系统维护,用来设置工作缓解,只有个别变量用户可以直接更改
- (1)配置文件
- /etc/profile ~/.bash_profile
- (3)常见的环境变量
- PWD,PATH,USER,HOSTNAME...
- 2.位置变量:bash内置,用来存储执行脚本是提供的参数,类似于传参
- (1)表示位$n,n为序号:$1,$2,...,${10}
- 3.预定义变量:bash内置,存一类有特殊用途的变量,可直接调用但是不能直接修改赋值
- (3)不能直接为这些变量赋值
- $?:命令执行后的返回状态,0表示正常,1或其它值表示异常
- 4.自定义变量:用户自主设置,修改及使用
- (1)数字字母下划线组成,不能以数字,特殊符号开头,等号两边不能有空格
- 2.变量值及范围控制
- 1.扩展赋值操作
- (3)反撇号``=$(命令):将`命令`的执行输出
- 2.read标准输入取值(自己输入数据给变量赋值)
- 4.变量的作用范围
- (1)局部变量:只在当前的shell环境有效(bash进程)
- 三.数值运算
- 2.计算格式
- (1)整数计算
- 1.$[]或者$(()):如果括号里面有变量,变量的$取值可以省略
- 2.let:只算不显示,i=1 ,let i+=1,echo $i=2
- (2)小数计算:bc
- echo "scale=2;10.0/3" | bc :sacle表示保留小数点后几位