1.变量的分类
1)用户自定义变量
2)环境变量: 这种变量中主要保存的是和系统操作环境相关的数据
3)位置参数变量: 这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是用来固定的
4)预定义变量: 是bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
2.自定义变量
名称由数字、下划线、字母组成,但是开头不能用数字,如”2Name”
注意:
1)变量等号两边不能有空格
2)若有空格,则用 ” “” 括起来
3)用”\”转义符,可使特殊符号失效如: “\$name”
4)如果要进行变量叠加,可用”$变量名” 或者 ${变量名}
5)若把命令结果作为变量值,则用反引号(不推荐) 或者 \$()包名命令
6)环境变量名建议大写
举例:
aa=”test” echo $aa 就是输出test
aa=123 aa=”$aa”456 输出什么呢?
set 变量查看命令
unset + 变量名 删除变量命令
3.环境变量
exprot 变量名=变量值 申请变量
env 查询变量
unset 删除变量名
PATH: 系统查找命令路径(系统查找命令是有默认排序和路径)
PATH=”$PATH”:/root 变量叠加(临时)
环境变量的PS1:
定义系统提示符的变量,也就是[主机名@……]# 那个东西
查询显示当前的配置命令: echo $PS1
更换的格式为:PS1=’[ …… ]$ ’ (记得最后留个空格,更好输入命令)
选项包括:
\d 显示日期,格式为”星期 月 日”
\h 显示简写主机名,如默认主机名为”localhost”
\t 显示24小时制时间,格式为”HH:MM:SS”
\T 显示12小时制时间,格式为”HH:MM:SS”
\A 显示24小时制时间,格式为”HH:MM”
\u 显示当前用户名
\w 显示当前所在的目录的完整名称
\W 显示当前所在的目录的最后一个目录
\# 执行的第几条命令
\$ 提示符,如果是root用户则会显示”#”,如果是普通用户则显示”$”
4.位置参数与预定义
位置参数一般在shell里使用
$n n为数字,0代表命令本身,十以上参数用大括号括起来
$* 代表把命令行所有参数,$*都看作一个整体
$@ 表示所有参数,但是每个参数区别对待
$# 代表命令行、参数的个数预定义可与echo一起使用
$? 判断上一个命令,为0则为正确执行,非0则为错误(具体数,由命令决定)
$$ 当前进程号
$! 后台运行最后一个进程号
5.declare 声明变量类型
declare [+/-] [选项] 变量名
- : 给变量设定类型属性
+: 取消给变量设定类型属性
-i 将变量声明为整数型
-x 将变量声明为环境变量 =>exprot
-p 显示指定变量的被声明类型
6.expr 或 let 数值运算工具
如:
aa=11 bb=22
dd=$(expr $aa + $bb) 注意!+号两边必须要有空格
常用 “ $((运算)) ” 或者 “$[运算]”
如: ff=$(($aa + $bb))
运算符的优先级:
变量测试与内容替换: 测试变量内容或者是否替换,从输出x看结果
7.环境变量配置
source 配置文件 和 . 配置文件
上面两种配置文件直接生效,不用重启(注意有个点)
下面是五个默认配置文件:
/etc/profile
/etc/profile.d/*.sh (所有以.sh结尾)
/etc/bashrc
这三个对所有用户都有效
~/.bash_profile
~/.bashrc
用户命令下,这两个对特定的用户有效
注销时生效的环境变量配置文件:
~/.bash_logout
~/.bash_history
8.shell登陆信息
(登陆之前)
/etc/issue (本地登录)
/etc/issue.net (在远程终端欢迎信息)
Ps.需在ssh配置文件/etc/ssh/sshd_config中
#Banner ………… 下,加入Banner /etc/issue.net
再重启,service sshd restart
/etc/motd 直接vim操作,可以显示(登陆之后的提示信息)
变量这一块确实是个难点,不仅仅很多配置文件,更是要熟记于心,加油。
(责任编辑:IT) |