shell介绍
1、shell种类
可以使用 cat /etc/shells 查看当前系统可以使用的shell
2、从用户的角度来看SHELL的类型
1>登陆式shell: 可以正常通过某终端登陆
su - USERNAME
su -l USERNAME
2>非登陆式shell:
su USERNAME /* su - 完全切换,su 不读取环境设定 */
3、bash的配置文件
全局配置: /etc/profile, /etc/profile.d/*.sh, /etc/bashrc
个人配置:~/.bash_profile, ~/.bashrc
profile类文件:设定环境变量、运行脚本或命令
bashrc类文件:设定本地变量、定义命令别名
登陆式shell如何读取配置文件:/etc/profile --> /etc/profile.d/*.sh --> ~/.bash_profile --> ~/.bashrc -->/etc/bashrc
非登陆式shell如何读取配置文件:~/.bashrc --> /etc/bashrc --> /etc/profile.d/*.sh
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------
编程语言 —> 编译器or解释器 —>机器语言
变量:命名的内存空间
类型:事先确定数据的存储格式和长度
1、字符型
2、数值型
整形
浮点型
3、布尔型
脚本:
命令的堆砌,按实际需要结合命令流程控制机制实现的源程序
bash变量类型:${}引用变量
环境变量:整个bash进程及其子进程
export VARNAME=VALUE
本地变量:整个bash进程
[set] VARNAME=VALUE
局部变量:代码块
local VARNAME=VALUE
位置变量:$1, $2,…
shift [n]:轮替,n默认为1
特殊变量:
$?:上个命令的执行返回状态
$#:参数的个数
$*:参数列表
$@:参数列表
变量撤销:unset VARNAME
查看当前shell中的变量:
set—>环境变量和本地变量
printenv/export查看环境变量
shell中如何进行算术运算
1、let算术运算表达式
2、$[算术运算表达式]
3、$((算术运算表达式))
4、expr 算术运算表达式,表达式中各操作数及运算符之间要有空格,而且要使用命令引用c=`expr $A + $B`
测试方法:
[ expression ] //命令测试法
[[ expression ]] //关键字测试法
test expression
bash中常见的条件测试有三种:
1、整数测试:
-gt
-le
...
2、文件测试:
-e FILE:测试文件是否存在
-f FILE:测试文件是否为普通文件
-d FILE:测试指定的路径是否为目录
-r FILE:测试当前用户对该文件是否有读权限
-w FILE:测试当前用户对该文件是否有写权限
-x FILE:测试当前用户对该文件是否有执行权限
...
3、字符串测试:
==
!=
-n string:测试指定字符串是否为空
-s string:测试指定的字符串是否非空
...
循环:进入条件,退出条件
for
while
until
###生成列表###
1、{起始数..结束数}
2、seq [起始数] [步长] 结束数
...
declare -i 声明为整数
-x声明为环境变量
for 变量 in 列表; do
循环体
done
bash -n:测试是否存在语法错误
bash -x:调试方式运行脚本