1、查看shell版本命令
bash --version
2、查看别名
alias
3、查看命令的类型
type + 命令
4、删除别名
unalias, 暂时不想使用别名,使用\,例子:\ls
5、如何执行一个shell脚本
6、shell变量
本地变量,只在创建它的shell中有效,
赋值 ------ 变量名=值 (等号两边不可以有空格,如果赋值包括空格,空格必须用引号引起来)
shell变量对大小写敏感的,必须以字母和下划线开头。
清除变量------unset +变量名(例子 unset name)
使用set命令可以查看当前本地定义的所有shell变量
7、shell变量的扩展应用
${name:-word}---------------- 当变量name已被设置且非空,这显示name的值,否则显示word
${name:+word} ----------------当变量name已被设置且非空,这显示word的值,否则什么都不显示,代入空的值
${name:=word}---------------- 当变量name已被设置且非空,这显示name的值,否则显示word的值,且变量name始终赋值为word
${name:?word}}---------------- 当变量name已被设置且非空,这显示name的值,否则显示word的值,并且从shell退出
${name:offset} 或${name:offset:length} ---------获取变量name值中从offset开始的子串,或者获取从offset开始长度为length的子串。
例子:name="what is your name?" echo ${name:3} ------输出:t is your name?
${var/parten/replacement}----------用replacement来替换变量var中第一个与parten匹配的串,局部匹配
例子:echo ${name/is/IS} --------what IS your name?
${var//parten/replacement}----------用replacement来替换变量var中所有与parten匹配的串,全局匹配
例子:echo ${name/a/A} --------whAt IS your nAme?
8、变量设置成为只读的
变量赋值后,就不在赋值,只能读,例子:name="welcome shell word!" readonly name ,注意只读的变量不能用unset命令清除。
9、环境变量
1、环境变量全局可以调用。2、环境变量可以自己定义,但必须大写,用export导出,但用户注销后这些值就丢失,
例子:NAME=shell export NAME , 自定义一个NAME环境变量。显示环境变量:$NAME
如果想要保证NAME在用户注销后不被清除,可以在系统初始化文件中编写。
10、变量的长度
${#name} 可以得出name变量的长度,注意:如果name是个数组,那么${#name}是数组第一个元素的长度
例子:name=(a bb ccc ddd) echo ${#name} ----输出:1
${#name[*]} --输出:4(即数组namde的元素个数),${name[2]}------输出:ccc
11、指定类型的变量
格式:关键字declare 或者typeset +[-option] +变量名
-option -i 整数,-r只读,-a数组,-x export ,-f函数
例子: declare -r var 等同于 readonly var
declare -i number
12、变量间接引用
例子 admin=willson
willson=myname
echo ${admin}---------willson
eval admin=\$$admin !--变量间接引用
echo ${admin}-------myname
13、随机数
$RANDOM
14、位置变量
$0 ,$1,$2,$3......................................¥9 $0是脚本名称,$1是第一个参数,$2是第二个参数。。。。。。。。。。。。
15、特定变量参数
$#---------传递到脚本的参数个数
$*---------以一个单字符串显示所有向脚本传递的参数
$!---------后台运行的最后一个进程的进程ID
$$--------脚本运行的当前进程ID
$- ---------显示脚本shell使用的当前选项,与set命令功能相同
$@--------与$#相同,但是在使用中加引号,并在引号中返回每个参数
$?---------显示最后命令退出的状态,0表示没有错误,其他值表示异常 例如:mkdir adc echo $? ----输出:0
16、引用
""--双引号:可以引号除$,`,\外的任意字符或字符串
`` ---反引号 :引用命令 例如 name="你所在的目录`pwd`" ----你所在的目录/root/shell"
''--单引号 :变量原样输出
\---反斜杠 :转义符 例如:echo $$ ---输出当前进程的ID ,echo \$$---- $$
17、 echo "$name" name原样输出 例如 name="a b c d" echo "$name"