Linux Command Line and....ch6(使用linux环境变量)

本章主要内容:

  • 环境变量
  • 创建自己的局部变量
  • 删除环境变量
  • 默认shell环境变量
  • 设置PATH环境变量
  • 定位环境文件
  • 数组变量

Linux环境变量能帮助提升Linux shell体验。很多程序和脚本都通过环境变量还获取系统信息、存储临时数据和配置信息。


6.1 什么是环境变量

环境变量允许用户在内存中存储数据。是存储永久数据的简便方法。
环境变量分为全局和局部两种。

全局环境变量对于shell会话和所有生成的子shell都是可见的。局部变量只对创建它们的shell可见。

===
6.1.1 全局环境变量

printenv [ Name ]
描述
printenv 命令显示环境变量的值。如果您指定 Name 参数,那么系统将只显示与 Name 参数相关联的值。如果不设置 Name 参数,printenv 命令显示当前环境,每行显示一个 Name=Value 序列
(env :environment)

也可以用echo显示变量的值
echo $HOME

===
6.1.2 局部环境变量

利用set命令,但set命令会显示全局变量,局部变量以及用户的自定义变量


6.2 设置用户定义变量

6.2.1设置局部用户自定义变量

$echo $my_variable
$my_variable=Hello
$echo $my_variable
Hello

主要赋值的等号两边不能有空格,如果出现空格,bash shell会把空格后的值当成一个单独的命令。

如果要给变量赋值一个有空格的字符串,则必须用单引号来界定字符串的首和尾。

命名规则:因为系统变量都是大写字母,所以自定义变量都用小写的。

===
6.2.2 设置全局用户自定义变量

$ my_variable=”I am Global now”
$ export my_variable
$ echo $my_variable
I am Global now

进入一个子shell,验证是否是全局变量
$ \bin\bash
$ echo $my_variable
I am Global now


6.3 删除环境变量

$ echo $my_variable
Hello
$ unset my_variable
$ echo $my_variable

注意unset后面的变量名不要跟$符号


6.4 默认的shell环境变量
这里写图片描述


6.5 设置PATH环境变量

当你想要执行某个外部命令时,shell必须搜索系统来找到对应的程序。PATH环境变量定义了用于进行命令和程序查找的目录。

将应用文件放置可执行文件的目录添加到PATH环境变量中,可以直接键入可执行文件来运行,而不需要使用绝对路径。

$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/games:/usr/local/games
$
$ PATH=$PATH:/home/christine/Scripts
$
$ echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/
usr/games:/usr/local/games:/home/christine/Scripts
$
$ myprog
The factorial of 5 is 120.

程序员通常的办法是将单点符也加入PATH环境变量。单点符代表当前路径。
$ PATH=$PATH:.


6.6 定位系统环境变量

当你登陆Linux系统并启动一个bash shell时,默认情况下bash会在几个文件下查找命令。这些文件叫做启动文件或环境文件。

启动bash shell有3种方式:

  • 登录时作为默认登陆shell
  • 作为非登陆的交互式shell
  • 作为运行脚本的非交互shell

===
6.6.1 登陆shell
这里写图片描述

6.6.2 交互式shell进程
不是在登陆系统时启动的(如在命令提示符下敲入bash启动时),那么你的启动的shell叫做交互式shell。

如果作为交互式shell启动,只会检查用户HOME目录下的.bashrc文件

.bashrc文件有两个作用:一是查看/etc下通用的bashrc文件,二是为用户提供一个定制自己的命令和私有脚本函数的地方。

===
6.6.3 非交互式shell

没有命令提示符。

如果想要运行一些特定启动的命令。

为了处理这种情况,bash shell提供了BASH_ENV环境变量。当shell启动一个交互式shell进 程时,它会检查这个环境变量来查看要执行的启动文件。如果有特定的文件,shell会该文件里的命令,这通常包括shell脚本变量设置。

子shell可以继承父shell的全局变量。

===
6.6.4 环境变量持久化

最好在/etc/profile.d目录中传建一个以.sh结尾的文件,把所有新的或修改过的全局环境变量设置放在这个文件中。


6.7 数组变量

$ echo $my_a
$ my_a=(a,b,c)
$ echo ${my_a[0]}
a,b,c

注意这里用逗号分隔,shell还是把它认定为同一个元素,要用空格分隔才行

$ my_a=(a b d)
$ echo ${my_a[2]}
d

$ unset my_a[2]
$ unset my_a

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值