linux中的环境

1. 简介

登陆Shell维护着你所处的环境——一套每个用户各不相同的配置。该环境从用户登陆开始一直持续维护,到登出系统为止。

2. 局部变量和子Shell

子Shell实际就是一个全新的Shell,用于执行要求的程序,当登陆Shell执行新的命令时,他会启动一个新Shell来执行该程序。只要新Shell一启动,就会拥有自己的环境以及一组局部变量,当子程序执行完毕,子Shell以及由程序所创建的所有变量都会被销毁

3. export导出变量

export可以让子Shell获得登陆Shell的值

export variables

variables是要导出的变量名列表,已导出变量的值会传到export命令之后的所有子Shell中。需要注意的是子Shell既不能修改局部变量,也不能修改导出变量。

3.1 导出变量列表

export -p

会得到一个列表,包含了Shell所导出的变量及其值。

4. 设置当前Shell值

4.1 .命令

. file

.命令将file的内容设置成当前Shell的值,就像直接输入一样,由当前Shell执行而不是子Shell。

4.2 source、sh、.命令的区别

  1. 当shell脚本具有可执行权限时,用sh filename与./filename执行脚本是没有区别。./filename是因为当前目录没有在PATH中,所有”.”是用来表示当前目录的。
  2. sh filename重新建立一个子shell,在子shell中执行脚本里面的语句,该子shell继承父shell的环境变量,但子shell新建的、改变的变量不会被带回父shell,除非使用export。
  3. source filename这个命令只是简单地读取脚本里面的语句依次在当前shell里面执行,没有建立新的子shell。那么脚本里面所有新建、改变变量的语句都会保存在当前shell里面。

5. (…)和{…;}

可以将命令放在一对小括号或花括号中,形成一个命令组。第一种形式会在子Shell中运行组中的命令,而后一种形式则是在当前Shell中。

6. HOME

PATH变量存储主目录,表示用户登陆后所处的位置。

7. PATH

在输入程序名时,Shell会在PATH中搜索。需要注意到目录之间以冒号(:)分隔,Shell会从左到右,依次在目录中查找指定的命令或程序。

8. .profile文件

登陆Shell会在系统中查找并读取两个特殊文件

  • 系统管理员设置的/etc/profile,里面包含系统默认设置。
  • 用户主目录下的.profile文件,在系统创建账号时会设置一个默认的.profile,用户可以在里面配置登陆时要执行的命令,并且可以覆盖/etc/profile中的设置。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值