shell环境变量

1.环境变量的定义:

环境变量一般是指在操作系统中用来指定操作系统运行环境的一些参数,如PATH,PWD,USER,当前使用的shell名称。系统启动后,会产生许多环境变量,用户可以用set命令查看:

Shell实例1:

[root@ChangerLee 环境变量的定义]# set

ABRT_DEBUG_LOG=/dev/null

BASH=/bin/bash

BASHOPTS=checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath

BASH_ALIASES=()

BASH_ARGC=()

BASH_ARGV=()

BASH_CMDS=()

BASH_COMPLETION_COMPAT_DIR=/etc/bash_completion.d

BASH_LINENO=()

BASH_REMATCH=()

BASH_SOURCE=()

BASH_VERSINFO=([0]="4" [1]="2" [2]="46" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")

BASH_VERSION='4.2.46(1)-release'

COLUMNS=96

......

 

2.常见的环境变量:

PATH:系统路径

HOME:当前用户家目录路径

HISTSIZE:保存历史记录的条数

LOGNAME:当前登陆用户名称

HOSTNAME:主机名称,如果应用程序往往从这个环境变量查取主机名称

SHELL:当前用户使用的是交互程序shell

PS1:主提示符,通常使用了一个字符串表达式

LANG/LANGUAGE:和语言相关的环境变量

shell实例2:

[root@ChangerLee 环境变量的定义]# cat envin.sh 

#!/bin/bash

#常用环境变量实例

 

echo  "系统路径'PATH':${PATH}"

echo  "当前用户家目录'HOME':${HOME}"

echo  "保存历史记录的条数'HISTSIZE':$HISTSIZE"

echo  "当前登陆用户名'LOGNAME':$LOGNAME"

echo  "主机名'HOSTNAME':$HOSTNAME"

echo  "当前用户使用的交互shell'SHELL':$SHELL"

echo  "当前用户使用的语言'LANG':$LANG"

echo  "当前用户使用的邮件存放目录路'MAIL':$MAIL"

 

[root@ChangerLee 环境变量的定义]# sh envin.sh 

系统路径'PATH':/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin

当前用户家目录'HOME':/root

保存历史记录的条数'HISTSIZE':1000

当前登陆用户名'LOGNAME':root

主机名'HOSTNAME':ChangerLee

当前用户使用的交互shell'SHELL':/bin/bash

当前用户使用的语言'LANG':en_US.UTF-8

当前用户使用的邮件存放目录路'MAIL':/var/spool/mail/root

 

shell实例3:

[root@ChangerLee 环境变量的定义]# echo $PS1

[\u@\h \W]\$

以上命令输出了当前用户的主提示符表达式,用户可以通过修改变量PS1的方式来自定义主提示符表达式,表达式含义如下:

\u:当前使用系统的用户

\h:当前计算机名称

\w:当前工作路径

\d:当前系统的日期

\$:提示符

\H:完整的计算机名称

\t:24小时制的时间格式

\v:当前Bash版本

Shell实例4:

[root@ChangerLee 环境变量的定义]# PS1='\d \H \t \v \$'

Sun Jul 31 ChangerLee 22:40:14 4.2 #

Sun Jul 31 ChangerLee 22:41:20 4.2 #PS1='[\u@\h \W]\$'

[root@ChangerLee 环境变量的定义]#

Shell实例5:

[root@ChangerLee 环境变量的定义]#echo $PS2

>

以上为辅助提示符变量,一般用于强制换行,修改如下

 

[root@ChangerLee 环境变量的定义]#PS2='#'

[root@ChangerLee 环境变量的定义]#\

#

[root@ChangerLee 环境变量的定义]#PS2='>'

[root@ChangerLee 环境变量的定义]#\

>

 

以上修改都是临时修改,要想永久修改须通过修改配置文件的方法:

/etc/profile:全局用户配置文件。修改此文件,生效全系统用户

~/.bash_profile:用户个人配置文件。修改此文件,生效当前用户

/etc/bashrc:全局环境变量配置文件。此文件定义了所有用户的配置文件

~/.bashrc:个人环境变量配置文件。此文件定义了用户的环境变量

修改该后只需重新登陆文字终端即可生效

3.只读环境变量:

只读环境变量都是一些非常重要的环境变量,其值是无法修改

查看如下:

Shell实例6:

 

[root@ChangerLee 环境变量的定义]#readonly 

declare -r BASHOPTS="checkwinsize:cmdhist:expand_aliases:extglob:extquote:force_fignore:histappend:interactive_comments:login_shell:progcomp:promptvars:sourcepath"

declare -ir BASHPID

declare -r BASH_COMPLETION_COMPAT_DIR="/etc/bash_completion.d"

declare -ar BASH_REMATCH='()'

declare -ar BASH_VERSINFO='([0]="4" [1]="2" [2]="46" [3]="1" [4]="release" [5]="x86_64-redhat-linux-gnu")'

declare -ir EUID="0"

declare -ir PPID="6312"

declare -r SHELLOPTS="braceexpand:emacs:hashall:histexpand:history:interactive-comments:monitor"

declare -ir UID="0"

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JaysenLeo

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值