你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

Linux——环境变量

[复制链接]
gaosmile 发布时间:2021-2-23 12:05
Linux是一个多用户的操作系统。多用户意味着每个用户登录系统后,都有自己专用的运行环境。而这个环境是由一组变量所定义,这组变量被称为环境变量。用户可以对自己的环境变量进行修改以达到对环境的要求。
设置环境变量的方法' s1 E" j+ A. ]( P# d$ g$ d
  • 对所有用户生效的永久性变量- ?9 F" n" N* W( P. a2 X* u
这类变量对系统内的所有用户都生效,所有用户都可以使用这类变量。作用范围是整个系统。
此文件只在root下才能修改。
# vi /etc/profile1 f3 l9 V3 Z# F5 j
export CLASSPATH=./JAVA_HOME/libJAVA_HOME/jre/lib
9 |9 v* f" X' _; M
添加完成后新的环境变量不会立即生效,立即生效需要运行 source /etc/profile ,否则只能在下次重进此用户时才能生效。
  • 对单一用户生效的永久性变量$ Z- b; c- p( J) ]- k: |
在用户目录下的.bash_profile 文件中添加变量,该文件是隐藏文件,可使用ll -a查看:
微信图片_20210223120450.jpg
$ whoami 3 Y5 d& B- ~" y; k4 J9 I: y1 K
rethink
2 D" G% K$ O5 b4 Q5 m" C  m4 u
& V5 f  f! T" w6 J$ p0 @$ vi /home/rethink/.bash_profile+ |. y5 c0 o2 {0 ?5 J9 j
export CLASSPATH=./JAVA_HOME/libJAVA_HOME/jre/lib
8 K+ Z2 U3 k9 Y0 B' Z
4 }& s8 {, }; Q* M. B7 }+ S$ source /home/rethink/.bash_profile
4 Y" t0 }: q( H# Z/ k0 y' k
在上图中用红框框住了两个文件:.bashrc 和.bash_profile ,原则上讲设置此类环境变量时在这两个文件任意一个里面添加都是可以的,这两个文件的区别为:.bash_profile是交互式login方式进入bash shell运行,.bashrc是交互式non-login方式进入bash shell运行。
可以理解为.bash_profile文件只会在用户登录的时候读取一次,而.bashrc在每次打开终端进行一次新的会话时都会读取。
临时有效的环境变量(只针对当前shell有效)
此类环境变量只对当前的shell有效。当我们退出登录或者关闭终端再重新打开时,这个环境变量就会消失。是临时的。
设置方法:命令行下直接使用[export 变量名=变量值] 定义变量。
$ export NAME="rethink"
. o5 G" ^7 n$ u2 D0 b$ echo $NAME( {& ]4 H/ s7 U4 B  t5 F3 K; p
rethink9 R" `: B. g7 A) s) l( u
设置环境变量常用命令
  • echo 用于打印显示环境变量,如:echo $NAME;
  • export 用于设置新的环境变量,如:export NAME='rethink';

    3 z  w; H' E0 Y0 `
更新环境变量 更新环境变量直接重新赋值即可:NAME='test'   (注意:变量名前不需要加$);
  • env 显示当前用户的变量;
  • set 显示当前shell变量,shell变量包含用户变量;
  • unset 删除一个环境变量,如:unset NAME;
  • readonly 设置环境变量只读,如:readonly NAME  ,只读变量unset无效。
    # u! s9 E2 b: N* Z/ T
常用环境变量PATH- H: [8 R/ {8 {
# echo $PATH/ o& |  ~6 V1 u4 F* n3 e) h
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin
, ]( F' L! {! F% B
路径之间用冒号分隔,这些路径都是一些可以找到可执行程序的目录列表。当我们输入一个指令时,shell会先检查命令是否是系统内部命令,如果不是则会再去检查此命令是否是一个应用程序,shell会试着从PATH中寻找这些应用程序。
如果shell在这些路径目录里没有找到可执行文件,就会报错;若找到,系统将调用执行应用程序。通过设置PATH ,可以让我们运行程序或指令更加方便。
将某个目录路径加入到PATH中,可以这样写:
$ pwd
+ b! z. i, I0 [* X6 f: \/root/docker/httpd& C9 w1 z+ Y1 [" p0 c2 Q5 w. T
$ export PATH=$PATHPWD1 V5 t$ v2 z3 L  n2 S
$ echo $PATH- W% ~6 Q7 {9 u! i' C
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin:/root/docker/httpd1 M4 K( q( S) |0 _( M
`可以看到在PATH后面已经加上了我们当前所处目录的路径`
& f3 X5 S! |! h4 t
  • HOME8 ^7 R. T) x; Q
用户的主工作目录,即为用户登录到Linux系统中时的默认目录。
$ whoami
* ?3 v. T+ H& ?. s1 Arethink& i% m) O- j( U* M( o
$ echo $HOME4 d0 v; N2 c$ J
/home/rethink
+ x8 ]2 r& z# G2 Q
  • HISTSIZE. j% `% R& G, B6 H0 p7 V3 v
保存历史命令的条数。我们输入的指令都会被系统保存下来,这个环境变量记录的就是保持指令的条数。一般为1000。
$ echo $HISTSIZE/ V7 c% H2 @- s5 m
10005 ]: [+ T9 T, `
$ HISTSIZE=1001
5 F: K: H9 O( c9 v8 V" x$ echo $HISTSIZE  J: i9 ]; H7 i
1001
4 l* L; o7 `; R
历史命令是被保存在内存中的,当退出或者登录shell时,会自动保存或读取我们可以通过history命令来查看。可以使用符号 ! 执行指定序号的历史命令。例如,要执行第2个历史命令,则输入!2。; ?# U/ C* G8 @0 ~
$ history 51 ^& u* [- T0 i- I; y. ?4 p' y
   59  ls
# ~7 c. S# g. [7 p$ r2 B   60  who+ g- |& Q( G0 E% Y; _
   61  history | head -n 5
  z* P# F. \8 j1 ~! x* o   62  who am i
  ]4 w9 r3 p$ X8 K" t. z5 d! S   63  history 5) w: e, ^5 p' r. Q
$ !62& w9 c. P; A7 j
who am i
1 ]8 G0 d5 u, R! B% {  a, x  ^root     pts/0        2018-04-04 11:00 (101.81.92.18)
/ Y# }( B0 a& g8 u
  • LOGNAME% u; C# R& {5 l. O
当前用户登录名。
$ echo $LOGNAME" O$ q/ ~: E8 v
rethink0 ?& [1 \( r. {
  • HOSTNAME 主机名称。: F; P$ x5 B' ~8 G, s" s7 o2 R  j
$ echo $HOSTNAME
! Q: ]6 k! B) G: U* ~/ TJDu4e00u53f74 \& Y8 s& P* M' \
  • SHELL
    ; v, n) ?0 t8 B: G8 _
当前用户使用的shell种类。
$ echo $SHELL4 Y2 ?- O/ g7 Z- l# ?
/bin/bash
$ y/ u9 _7 T& {4 |# u5 U+ c
赞 收藏 评论0 发布时间:2021-2-23 12:05

举报

0个回答
关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版