Skip to content

Latest commit

 

History

History
56 lines (46 loc) · 3.03 KB

shellEnvironment.md

File metadata and controls

56 lines (46 loc) · 3.03 KB

shell环境变量等相关环境问题。

目录

本课程主要是有几下知识点:

  • printenv 列表出环境变量。
  • set 设置shell选项
  • export 导出环境变量
  • alias 设置命令的别名。

set printenv

  • set 可以显示环境变量和shell变量
  • printenv只能显示环境变量。
  • printenv 还可以显示具体的命令
printenv USER

thomashuke
  • set显示很多东西例如环境变量,shell变量,shell定义的函数,并且set默认显示的内容按照首字母的顺序进行排序。
  • 也可以使用echo $USER这意义就不一样了,因为echo是输出流,使用$+具体的环境变量就不属于查询,算是直接输出了,之所以使用$是因为$代表了变量,也就是归于函数变量这个部分了

如果一个值不能使用printenv搞出来,也不能用set搞出来,那么它就是一个别名,这时候

alias

就可以将所有的别名给显示出来,这样我们就了解了这个变量的实质了。

常见的环境变量

变量 内容
DISPLAY 如果你正在运行图形界面环境,那么这个变量就是你显示器的名字。通常,它是 ":0", 意思是由 X 产生的第一个显示器。
EDITOR 文本编辑器的名字。
SHELL shell 程序的名字。
HOME 用户家目录。
LANG 定义了字符集以及语言编码方式。
OLD_PWD 先前的工作目录。
PAGER 页输出程序的名字。这经常设置为/usr/bin/less。
PATH 由冒号分开的目录列表,当你输入可执行程序名后,会搜索这个目录列表。
PS1 Prompt String 1. 这个定义了你的 shell 提示符的内容。随后我们可以看到,这个变量 内容可以全面地定制。
PWD 当前工作目录。
TERM 终端类型名。类 Unix 的系统支持许多终端协议;这个变量设置你的终端仿真器所用的协议。
TZ 指定你所在的时区。大多数类 Unix 的系统按照协调时间时 (UTC) 来维护计算机内部的时钟 ,然后应用一个由这个变量指定的偏差来显示本地时间。
USER 你的用户名

这些常见的环境变量我们都可以通过printenv来输出的。

终端启动的时候配置文件从

/etc/profile中获取应用于全局的配置文件,然后从每个用户的home目录中取得各自的配置文件。不过我在Mac中没有找到这个home配置文件。是什么问题呢?

所有的文本编辑器都可以通过终端输入名字直接打开的。

讨论 printenv export 和 set的区别

  • export命令用于将shell变量输出为环境变量,或者将shell函数输出为环境变量。 一个变量创建时,它不会自动地为在它之后创建的shell进程所知。而命令export可以向后面的shell传递变量的值

  • set可以输出shell变量和环境变量。shell变量跟用户无关,哪个用户都是这个shell变量,但是环境变量是跟用户有关的,shell变量跟用哪个版本的shell是有关系的

  • printenv(又叫 env)显示当前用户的环境变量