前言

环境变量控制你在Linux工作环境中的外观、行为和感觉。一共有两种类型的变量:

  • 环境变量:这些是内置于系统中的进程范围的变量,控制着系统的外观和行为。因为是进程范围的,所以它们被任何子shell或进程所继承。
  • shell变量:通常以小写字母列出,并且只在它们被设置的shell中有效。

查看和修改环境变量

使用env命令来查看所有的默认环境变量:

环境变量总是大写的,正如我们所看到的SHELLWINDOWID 以及 COLORTERM

为了查看所有的环境变量,包括shell变量、本地变量,以及shell函数:比如说任何用户定义的变量和命令别名,我们可以使用set命令。我会把它和more一起使用,这样它看起来更容易管理

set | more

改变变量值

我们可以通过提供变量名来更改变量,后面跟着相等符号以及新值:

HISTSIZE=200

我们改变了变量HISTSIZE的值,但只在我们特定的环境中生效。如果我们想将此更改持久化,我们可以使用export命令。export将会把你当前的环境中的新值,设置到任何新fork的子进程中,允许新进程继承导出的变量。

export HISTSIZE

注意:进行任何更改之前,你也许想要保存一份当前值的副本echo $VARIABLE> ~/valueOfVARIABLE.txt,或者你甚至可能想保留一份所有当前变量值副本set> ~/valueofALLon02252020.txt

你可能需要修改的另一个变量是PS1变量。它有一组占位符,用于显示你想在shell提示符中显示的信息:

  • \u 当前用户的名字
  • \h 主机名
  • \w 当前工作目录的基本名称

PATH变量

PATH变量控制shell在系统中的何处查找命令。如果bash shell在你的PATH变量中的某个目录中没有找到该命令,将会返回command not found错误。

让我们来看看哪个目录存储着环境变量:

echo $PATH

这是我的终端来搜寻任意命令的所有目录。每个目录通过冒号(:)进行分隔。

假如说我有某些命令存在于/home/azureuser/gpstools目录下,我想将该目录添加到PATH中。我们可以通过输入以下内容将一个目录添加到PATH变量中:

PATH=$PATH:/directory/to/add

这将会在原来的PATH基础上,加上/directory/to/add/目录。

请注意:不要执行PATH=/directory/to/add,那会替换所有原有的目录并添加新的目录,你想要的是追加,而不是替换。

创建用户自定义变量

我们可以通过以下语法来创建属于我们自己的变量:

MYVARIABLE="VALUE"

如果你需要让它持久化,别忘了导出它:export MYVARIABLE。如果你想删除任何变量,使用unset命令:unset MYVARIABLE,该命令只是在删除任何东西之前进行仔细检查。

最新文章

  1. sqoop:Failed to download file from http://hdp01:8080/resources//oracle-jdbc-driver.jar due to HTTP error: HTTP Error 404: Not Found
  2. 如何用fiddler对ios抓包
  3. 瀑布流布局(jq实现)
  4. JavaScript去除数组中的重复性
  5. iOS开发——实战OC篇&环境搭建之Xib(玩转UINavigationController与UITabBarController)
  6. PCB编辑快捷键
  7. 【ios开发】iOS App测试方案
  8. zip error: Invalid command arguments
  9. 老李分享:pep8 python代码规范
  10. 编程&blog处女篇-用C#求100以内的质数
  11. Tensorflow实战系列之四:
  12. Javascript 2.3
  13. 【转】linux 查看进程启动路径
  14. 部署DTCMS到Jexus遇到的问题及解决思路--验证码
  15. 【PAT】B1070 结绳(25 分)
  16. 深度学习Bible学习笔记:第二、三章 线性代数 概率与信息论
  17. 《Android进阶之光》--注解与依赖注入框架
  18. R语言reads.table 自动将字符串变成了逻辑值
  19. bind的封装
  20. DBCC维护语句语法

热门文章

  1. linux篇-Linux逻辑卷详解总结
  2. python之数据类型的内置方法(set、tuple、dict)与简单认识垃圾回收机制
  3. 【Unity Shader】syntax error: unexpected token 'struct' at line x 错误解决办法
  4. Educatinal CF #122(Div. 2) E . Spanning Tree Queries
  5. jeecgboot-vue3笔记(三)弹窗的使用
  6. SQL年龄计算方法
  7. Spring Security整合企业微信的扫码登录,企微的API震惊到我了
  8. Hyperledger Fabric 智能合约开发及 fabric-sdk-go/fabric-gateway 使用示例
  9. NODE.JS exports require理解
  10. 离线环境使用NuGet