shell环境变量以及set,env,export的区别

一.shell环境变量的分类以及set env export的区别:

 

set:显示(设置)shell变量 包括的私有变量以及用户变量,不同类的shell有不同的私有变量 bash,ksh,csh每中shell私有变量都不一样

env:显示(设置)用户变量变量

export:显示(设置)当前导出成用户变量的shell变量。

 

举个例子来讲:

  

 

总结:linux 分 shell变量(set),用户变量(env), shell变量包含用户变量,export是一种命令工具,是显示那些通过export命令把shell变量中包含的用户变量导入给用户变量的那些变量.

 

二:使用unset命令来清除环境变量,注意set env  export设置的变量,都可以用unset来清除的

 

三:使用readonly命令设置只读变量

 

四:最根本的设置、更改变量的配置文件 ~/.bash_profile   ~/.bashrc   ~/.bash_logout

~/.bash_profile  用户登录时被读取,其中包含的命令被执行

~/.bashrc  启动新的shell时被读取,并执行

~/.bash_logout  shell 登录退出时被读取

 

此外,shell(这里指bash)的初始化过程是这样的:

1.bash 检查文件/etc/profile 是否存在

2. 如果存在,bash 就读取该文件,否则,跳过

3.bash 检查主目录下的文件.bash_profile 是否存在。

4. 如果存在,bash 就读取該文件,否则,跳过

5.bash 检查主目录下的.bash_login 是否存在。

6. 如果存在,bash 就读取该文件,否则,跳过

7.bash 检查主目录下的文件.profile 是否存在

8. 如果存在, bash 就读取该文件,否则,跳过。

这些步骤都执行完后,就出现提示符了, ksh 默认提示符是 $.

 

 

五:常见的shell变量

PATH 这个变量包含了一系列由冒号分隔开的目录,系统就从这些目录里寻找可执行文件。如果你输入的可执行文件(例如ls、rc-update或者emerge) 不在这些目录中,系统就无法执行它(除非你输入这个命令的完整路径,如/bin/ls)。 
ROOTPATH 这个变量的功能和PATH相同,但它只罗列出超级用户(root)键入命令时所需检查的目录。 
LDPATH 这个变量包含了一系列用冒号隔开的目录,动态链接器将在这些目录里查找库文件。
MANPATH 这个变量包含了一系列用冒号隔开的目录,命令man会在这些目录里搜索man页面。 
INFODIR 这个变量包含了一系列用冒号隔开的目录,命令info将在这些目录里搜索info页面。 
PAGER 这个变量包含了浏览文件内容的程序的路径(例如less或者more)。 
EDITOR 这个变量包含了修改文件内容的程序(文件编辑器)的路径(比如nano或者vi)。 
KDEDIRS 这个变量包含了一系列用冒号隔开的目录,里面放的是KDE相关的资料。
CONFIG_PROTECT 这个变量包含了一系列用空格隔开的目录,它们在更新的时候会被Portage保护起来。
CONFIG_PROTECT_MASK 这个变量包含了一系列用空格隔开的目录,它们在更新的时候不会被Portage保护起来。

 

 

PATH:决定了shell将到哪些目录中寻找命令或程序
HOME:当前用户主目录
MAIL:是指当前用户的邮件存放目录。
SHELL:是指当前用户用的是哪种Shell。
HISTSIZE:是指保存历史命令记录的条数
LOGNAME:是指当前用户的登录名。
HOSTNAME:是指主机的名称,许多应用程序如果要用到主机名的话,通常是从这个环境变量中来取得的。
LANG/LANGUGE:是和语言相关的环境变量,使用多种语言的用户可以修改此环境变量。
PS1:是基本提示符,对于root用户是#,对于普通用户是$。
PS2:是附属提示符,默认是“>”。可以通过修改此环境变量来修改当前的命令符,比如下列命令会将提示符修改成字符串“Hello,My NewPrompt :) ”。
# PS1=" Hello,My NewPrompt :) "

 

 

声明:本文档可以随意更改,但必须署名原作者

作者:凤凰舞者 qq:578989855

 

  • 7
    点赞
  • 46
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 在Nginx中设置环境变量需要使用Nginx的njs模块,具体步骤如下: 1. 在Nginx的配置文件中启用njs模块,例如: ``` load_module modules/ngx_http_js_module.so; ``` 2. 在Nginx中使用njs模块定义环境变量,例如: ``` http { # ... server { # ... js_set $my_var "my_value"; # ... } } ``` 3. 在Nginx中使用njs模块获取和使用环境变量,例如: ``` http { # ... server { # ... location /test { js_content my_handler; # ... } # ... } } function my_handler(r) { var my_var = r.variables.my_var; r.headersOut['X-My-Var'] = my_var; # ... return njs.OK; } ``` 在上述示例中,我们在server块中使用`js_set`指令定义了一个名为`my_var`的环境变量,并在location块中使用`js_content`指令执行一个njs脚本,在脚本中获取环境变量的值,并将其添加到响应头中。 注意,njs脚本中可以使用`r.variables`对象访问所有定义的环境变量。 希望这些信息能对你有所帮助! ### 回答2: 在Node.js中设置环境变量是非常简单的。我们可以使用`process.env`对象来直接访问和修改环境变量。 要设置一个环境变量,只需在启动程序之前通过命令行或脚本设置`process.env`对象的属性即可。例如,我们可以通过以下方式将名为`ENV_VARIABLE`的环境变量设置为`Hello World`: ```javascript process.env.ENV_VARIABLE = 'Hello World'; ``` 如果我们使用命令行启动程序,可以在运行命令时指定环境变量。在Windows系统中,使用`set`命令来设置环境变量,例如: ``` set ENV_VARIABLE=Hello World ``` 在Linux或Mac系统中,使用`export`命令: ``` export ENV_VARIABLE=Hello World ``` 当设置了一个环境变量后,我们可以在代码中访问它。例如,我们可以这样输出名为`ENV_VARIABLE`的环境变量的值: ```javascript console.log(process.env.ENV_VARIABLE); ``` 需要注意的是,设置的环境变量在程序运行期间是持久有效的,直到程序结束或修改环境变量的值。如果需要在不同的程序或脚本中共享环境变量,可以将它们设置在操作系统的环境变量中。这样,所有使用该操作系统的程序都可以访问到这些共享的环境变量。 总之,通过使用`process.env`对象,我们可以方便地设置和获取环境变量,为程序的运行提供所需的配置和参数。 ### 回答3: njs 是一种 JavaScript 引擎,它可以与 Nginx 集成,用于处理和响应网络请求。要设置 njs 的环境变量,需要按照以下步骤操作: 1. 打开 Nginx 的配置文件,通常位于 `/etc/nginx` 目录下,可以使用文本编辑器打开,如 `vi` 或 `nano`。 2. 在配置文件中找到 `http` 部分,这是 njs 的配置所在的位置。如果找不到该部分,可以在文件中添加以下行来创建: ```nginxconf http { ... } ``` 3. 在 `http` 部分内添加 `env` 指令,并在该指令下设置环境变量,语法如下: ```nginxconf env <variable_name> <variable_value>; ``` 其中 `<variable_name>` 为要设置的环境变量的名称,`<variable_value>` 为要设置的值。可以设置多个环境变量,每个变量占一行。 例如,要设置名为 `MY_VARIABLE` 的环境变量,并为其赋值为 `my_value`,可以添加以下行: ```nginxconf env MY_VARIABLE my_value; ``` 4. 保存并关闭配置文件。 5. 重新加载或重启 Nginx 服务,以使环境变量生效。可以使用以下命令来重新加载或重启 Nginx: ```shell sudo systemctl reload nginx ``` 或 ```shell sudo systemctl restart nginx ``` 完成这些步骤后,设置的环境变量将在 njs 的 JavaScript 代码中可用。可以使用 `process.env` 对象来访问这些环境变量,如: ```javascript if (process.env.MY_VARIABLE === "my_value") { // 执行某些操作 } ``` 这样,njs 就可以读取和使用设置的环境变量了。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值