环境变量
1、系统环境变量:对所有的用户生效
2、用户环境变量:只对特定用户有效
3、永久:变量永久生效
4、临时:关闭Shell失效
5、系统读取环境变量顺序:/etc/profile -> /etc/profile.d/*.sh -> $HOME/.bash_profile -> $HOME/.bashrc
/etc/profile:系统环境变量,执行时从/etc/profile.d/目录配置文件找搜集Shell设置
/etc/bashrc:当用户Shell运行的是bash执行此文件
~/.bash_profile:当用户登录时,文件执行一次,默认设置了一些环境变量,并执行.bashrc文件
~/.bashrc:登录或每次打开一个新的Shell都会被读取
6、常见的环境变量
PATH:指定命令的查找路径
export PATH=$PATH:/bin/bash/
HOME:指定用户主目录
LOGNAME:指当前用户登录名
HOSTNAME:指定主机名称
SHELL:指定当前用户是哪种Shell
LANG:语言相关的环境变量
MAIL:指定用户的邮件存放目录
7、修改和查看环境变量
echo:显示某个环境变量值
export:设置一个新的临时环境变量
env:显示所有的环境变量
set:显示本地定义的shell变量
unset:清楚环境变量
readonly:设置只读环境变量
8、使用变量
变量名前加$
echo $hello
echo ${hello}
拼接字符串
str=”a b c”
strb=”$str d e f”
strc=’$str d e f’
语句直接给变量赋值
for file in `ls /home`;do echo $file;done
for file in $(ls /home);do echo $file;done
9、变量进阶使用
获取变量长度
echo ${#str}
提取变量的字符
echo ${str:1:1}
查找f或i字符位置,优先匹配f
echo `expr index "$str" fi`
10、字符串处理
str=’/etc/nginx/conf’
#去除最左边字符,%去除最右边字符
echo ${str#*/} -> etc/nginx/conf
echo ${str%/*} -> /etc/nginx
##去除最后左边的所有字符,%%去除最后右边所有字符
echo ${str##*/} -> conf
echo ${str%%/*} -> <空置>
echo ${str%%nx*} -> /etc/ngi
替换第一个nginx为httpd字符
echo ${str/nginx/http} -> /etc/httpd/conf
替换所有的nginx为httpd字符
echo ${str//nginx/http} -> /etc/httpd/conf