环境变量

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