第5章 使用Linux环境变量

来源:互联网 发布:美工使用的软件 编辑:程序博客网 时间:2024/06/15 13:37

bash shell 用一个称作环境变量的特性存储有关shell会话和工作环境的信息。
这也是他们为什么被称作环境变量的原因,它允许你在内存中存储数据,以便在运行在shell上的程序和脚本访问。

这也是存储永久数据的一种简便方法,这些数据可以使用来识别用户账户、系统、shell的特性以及任何其他你需要存储的数据。

p101

全局环境变量和局部环境变量。
全局:哪都可见,在进入bash之前就已经存在了。 printenv 查看全局环境变量。
局部:只有当前shell进程可见。
Linux系统中,并没有这样一个命令只显示局部环境变量。
set命令:会显示为某个特定进程设置的所有环境变量。当然,也包括全局环境变量。

设置环境变量

[root@localhost bin]# test=hellogood
[root@localhost bin]# echo $test
hellogood
警告:在环境变量名称、等号和值之间没有空格,这一点非常重要。
如果你在赋值表达式中放了空格,bash shell就会把值当做一个单独的命令。

在另一个进程(包括子进程)中,是无法访问的。

export :设置全局环境变量: export test
删除环境变量: unset test,在处理全局环境变量时,如果你是在子进程里面删除了一个全局环境变量,它只对子进程有效。

有一些默认的shell环境变量。

PATH 变量同时显示了shell查找命令的顺序。

修改PATH: $PATH:bin/..

登陆shell会从4个不同的启动文件里读取命令:
/etc/profile
HOME/.bashprofileHOME/.bash_login
$HOME/.profile
第一个是主启动文件,系统上的每个用户登陆都会执行这个启动文件,另外三个启动文件是用户专有的,可以定制。

只要你登陆了Linux系统,bash就会执行/etc/profile文件中的命令。具体见 p115

交互式shell:
如果你的bash shell不是登录时启动的(比如你在命令行提示符下敲入bash启动),你启动的shell称作交互式的shell。不会去访问/etc/profile的,而是去HOME目录查看.bashrc是否存在。

非交互式shell:系统执行shell脚本时用的就是这种shell。你不用担心它没有命令行提示符,但当你每次在系统上运行时仍要运行特定的启动命令。(没读懂)

支持数组。但是不常用。

别名:alias -p

可以用alias 来创建自己的别名:
例如:alias li=‘ls -il’
命令别名的行为和局部变量差不多,他们通常只在定义他们的shell进程中有效。

$HOME/.bashrc 是命名别名的好地方,因为bash shell在启动交互式shell时总是会读取位于该地方的启动文件。

看到了 P122 文件权限

0 0
原创粉丝点击