PATH
shell使用$PATH的环境变量查找命令
在PATH中添加新路径 export PATH="目录路径":$PATH
全局变量:在shell和话和该shell任何子进程中可见。env查看
本地变量:只在创建他们的shell中可见,包含全局变量。set查看
unset 取消变量
readonly设置变量只读
重要的环境变量
PWD:记录当前的目录路径
OLDPWD:记录旧的目录。即用户所处的前一个目录
PATH:用于帮助shell找到用户输入的命令
HOME:记录当前用户的根目录
SHELL:默认shell
USER和UID:用户名和用户ID
PPID:当前进程的父进程号。 $$:自身进程号 PID
IFS:用于指定shell域分隔符,默认为空格、换行符和制表符。
IFS=$‘\n‘ IFS=: IFS=:;"
用户环境变量文件
/etc/profile 每个用户登入是都执行
/etc/bashr 每个用户打开shell时执行
.bash_profile 每次登录时执行
.bash_login 每次注册时执行
.bash_bashrc 当前用户打开shell时执行
关于引号
双引号:解释其中的特殊字符的特殊含义
单引号:以字面意思显示其中的特殊字符
反引号:执行其中的命令
定义变量
变量名不能以数字开头
等号左边不能有空格
不要使用关键字做变量名
例:
aa=123
bb=”123 456” 变量值中有空格必须使用双引号
cc=`ls`反引号用于引用命令
输出变量
echo $aa
echo ${aa}
echo ${#aa}输出变量长度
${A:(-1)} # 倒叙取最后一个字符
变量提取
file=/dir1/dir2/dir3/hello.txt
${file#*/}:从左到右数拿掉第一个 / 后的内容,dir1/dir2/dir3/hello.txt
${file##*/}:从左到右数拿掉最后一个 / 后的内容,hello.txt
${file%/*}:从右到左数拿掉第一个 / 后的内容,/dir1/dir2/dir3
${file%%/*}:从右到左数拿掉最后一个 / 后的内容,空值
注:
#从左边数,去掉左边的,一个是最小匹配,两个是最大匹配
%从右边数,去掉右边的
${file:0:5}:提取最左边的5个字节,/dir1
${file:5:5}:提取第5个字节右边的连续5个字节,/dir2
变量替换
${file/dir/path}:将第一个dir替换为path,/path1/dir2/dir3/hello.txt
${file//dir/path}:将全部dir替换为path,/path1/path2/path3/hello.txt
整数运算符
+ - * / % ** 加 减 乘 除 取余 次方
& | ^ ! 并且 或者 指数 非
$((a++)) $((a--)) 每次输出加1或减1
例:
echo $((1+2))
echo $[ 2 + 3 ]
使用let(只能进行整数运算)
var=1
let "var+=1"
echo $var
数组
q=(ab cd 1 2) #定义数组
${q[*]} # 数组所有元素,大字符串
${!q[@]} #创建数组索引
${#q[@]} #数组输出长度
十六进制转十进制
echo $((16#47))
二进制转十进制
echo $((2#1101101))
本文出自 “破浪Linux” 博客,请务必保留此出处http://plang.blog.51cto.com/9002142/1722595
原文地址:http://plang.blog.51cto.com/9002142/1722595