#环境变量
echo $HOSTNAME #主机名
echo $SHELL #目前用的哪个解释器
echo $PATH #命令搜索路径
echo $USER #使用的哪个用户
echo $PWD #当前目录
echo $HOME #家目录是哪个
echo $LOGNAME #哪个用户
# 位置变量
echo $0
echo $1
echo $2
echo $3
echo $* #显示所有位置值
echo $# #显示位置值的总数量
echo $$ # 当前进程的进程号PID
echo $? #判断上一条是否成功,0成功,其他是不成功
echo $! #Shell最后运行的后台进程的PID
#特殊符号
"$abc" #双引 (引用整体)
'$abc' #单引 (引用整体,特殊符号不起作用)
`date +%Y%n%d` #反引 (放可执行的命令,返回命令的结果) $(date) = `date`
{变量名}参数 #{}中为变量名,若不加可能无法识别 echo ${a}b
#read配置
read -p "提示信息" 变量名 #定义变量名,但不给值
useradd $变量值 #给变量值
-s #输入的数值不可见
-t 3 #设置时间秒,超过值为空
-n 3 #设置字符数量,达到立刻执行
#历史命令使用
history
!cat #执行cat开头的最近那条历史命令
!100 #执行第100条历史命令
stty echo #开启显示
stty -echo #关闭显示
export 变量 #将局部变成全局(定义系统变量) 全局变量最好大写
export -n 变量名 #取消全局属性 局部变量最好小写
env #列出环境变量
set #列出所有变量
unset #取消定义的变量
#脚本执行3种方式
./脚本
bash 脚本
source 脚本所在的文档
#运算
% 取余数 余数永远小于被除的数字 echo $[26%4]
expr 数值 符号 数值
\* 需要用\屏蔽,不然表示为所有
echo $[数值*数值] #数值为变量不用加$
echo $((数值*数值))
** #第二个数值为指数
#let 不显示结果
i=1 #给值
i++ i=i+1 #i值+1
i-- i=i-1 #i值-1
i+=2 i=i+2 #i值+2
i/=2 i=i/2 #i值/2
x=43 ; y=21 ;echo $[++x],$[--y]
44 20
x=43 ; y=21 ;echo $[x++],$[y--]
43 21
#bc
scale=3 #小数点留3位
echo "scale=2;10/3" |bc #非交互,;多个结果
echo "3>2" |bc #返回0和1真假
A;B #单独执行
A&&B #A成功,才执行B
A||B #A失败,才执行B
[ "a" == "a" ]&&echo Y||echo N
test "abc" == "abc" 等于 [ "abc" == "abc" ]
man test
[ -e /etc ]
-e 判断文件或目录是否存在
-d 判断是否是目录且存在
-f 判断是否是文件且存在
-r 是否有读权限
-w
-x
-s 看是否有东西,
echo $RANDOM 随机数
echo $[RANDOM%10] 10以下
ping -c(次数) 2 -i(ping的速度) 0.1 -w(超出时间) 3