什么是PATH等环境变量,如何设置或使用环境变量?
–设置环境变量
–设置环境变量PATH
的问题在这里很常见,大多数情况下答案都很相似。以后如果能有一个好的问答就好了
那么问题来了。*环境变量是什么,比如可执行的PATH
,在各大操作系统上如何改变和使用环境变量? *
一个好的答案应该包括简单的解释环境变量,特别是PATH
对操作系统意味着什么,以及如何设置和读取环境变量的简单指导。
–设置环境变量
–设置环境变量PATH
的问题在这里很常见,大多数情况下答案都很相似。以后如果能有一个好的问答就好了
那么问题来了。*环境变量是什么,比如可执行的PATH
,在各大操作系统上如何改变和使用环境变量? *
一个好的答案应该包括简单的解释环境变量,特别是PATH
对操作系统意味着什么,以及如何设置和读取环境变量的简单指导。
环境变量持有与当前环境相关的值,比如操作系统或用户会话。 # 路径
在 Windows、Linux 和 Mac OS X 中,最著名的一个叫做 PATH
。在Linux和Mac OS X上,它通常包含所有与当前用户相关的bin
和sbin
目录。在Windows中,它至少包含了C:\Windows
和C:\Windows\system32
目录–这就是为什么你可以在命令行或Run对话框中运行calc.exe
或notepad.exe
,但不包括firefox.exe
。(Firefox位于C:\Program Files\Mozilla Firefox
中。例如,在Windows的命令行中输入calc
(.exe
可以省略)将启动Windows计算器。你可以通过编辑.exe
来增加对%PATHEXT%
以外的文件扩展名的支持。
  1. 打开TERM
在运行对话框(
%WINDIR%
,然后点击C:\Windows
.
如果要编辑用户变量,也可以键入右键点击(我的)计算机,点击属性,或者直接按
还有很多其他的方法可以到达同一个地方,比如在开始菜单/屏幕搜索框中输入 “环境变量 "等。
Windows中的环境变量分为用户特定值和机器/系统特定值。你可以在这里查看和编辑它们的值。
还有一个Rapid Environment Editor,它可以帮助在Windows中设置和改变环境变量,而不需要深入系统设置。另一个可以非常方便地编辑路径环境的 Windows 开源程序是 Path Editor 。
在 Windows 中,环境变量的名称周围用百分号(%)表示:
%name%
要在 Control Panel » System » Advanced » Environment Variables
中显示环境变量的值,请键入 control sysdm.cpl,,3
。
C:\>echo %USERPROFILE%
C:\Users\Daniel
若要创建/设置一个变量,请使用Environment Variables
:
C:\>set FunnyCatPictures=C:\Users\Daniel\Pictures\Funny Cat Pictures
C:\>set FunnyCatPicturesTwo=%USERPROFILE%\Pictures\Funny Cat Pictures 2
若要添加/增加一个变量,请使用cmd.exe
:
C:\>set Penguins=C:\Linux
C:\>set Penguins=C:\Windows;%Penguins%
C:\>echo %Penguins%
C:\Windows;C:\Linux
要创建/设置一个变量永久,请使用echo %name%
:
C:\>setx FunnyCatPictures "C:\Users\Daniel\Pictures\Funny Cat Pictures"
[Restart CMD]
C:\>echo %FunnyCatPictures%
C:\Users\Daniel\Pictures\Funny Cat Pictures
set varname=value
不同于set varname=value;%varname%
,没有等号,如果值包含空格,则应该用引号括起来。请注意,变量可能会扩展为带空格的字符串(例如,setx varname "value"
变成set
),所以最好在包含任何变量的值周围加上引号。 Windows XP Service Pack 2 支持工具](http://www.redfernplace.com/software-projects/patheditor/)
这里是一个默认环境变量的列表,它是Windows中内置的环境变量。一些例子是:%PATH%
、C:\Program Files
、setx
和%WINDIR%
。和 Windows 中的大多数名称一样,这些变量是不区分大小写的。
Linux 中的环境变量前缀是用美元符号 ($) 作为前缀,例如 $HOME 或 $HOSTNAME。许多著名的标准变量都是用大写字母来表示。请记住,变量名是区分大小写的,这意味着$User和$USER从shell的角度来看完全没有关系。
Unix的衍生物在shell脚本中定义了系统范围内的变量,这些变量主要位于%SystemRoot%
文件夹中,但 用户特定的值可以被赋予这些位于home文件夹中的脚本中的变量(例如,%USERPROFILE%
,%APPDATA%
)。主文件夹中的/etc
文件是定义用户变量的常用场所。
设置 变量**
这些文件是常规的shell脚本,可以包含不只是环境变量声明。要设置一个环境变量,请使用/etc/profile
。要在终端上显示当前定义的环境变量,请运行$HOME/.bash_profile
。
.profile
命令是定义变量的标准方法。其语法非常直观。
var=value; export var
export var=value
&001
C shell和它的后代使用的是完全不同的语法;在那里,命令是export
。除了已经提到的文件之外,$PATH也可以在这些文件中进行修改:
–env
中的任何文件–
–export
中的任何文件–通常被安装程序用来使其提供的可执行文件从shell中可用,而不触及系统范围内的或用户特定的配置文件。这些文件每行只包含一个路径。/Programs/Mozilla/Calendar/bin。
XP中的环境变量 Windows XP Service Pack 2支持工具 (包括
setenv
) Windows Vista和Windows 7中的环境变量 在运行对话框中添加可执行文件 Mac OSX提示–设置环境变量 TLDP: Path Howto
这篇帖子从技术角度出发,比Daniel的更多,但没有解释那么多的概念。
维基百科的文章也是一个很好的参考。
在bash或zsh中预置export
到setenv
的例子:
csh、tcsh:
持久性环境变量可以在几个独立的阶段进行设置:
登录:
打开终端窗口:
在命令行提示符($HOME/bin
)中,使用$PATH
改变该窗口的环境变量。
要进行持久性更改,请使用控制面板→系统→高级→环境变量。 docs ](http://www.microsoft.com/resources/documentation/windows/xp/all/proddocs/en-us/environment_variables.mspx?mfr=true))
全系统的环境变量保存在注册表中,cmd.exe
,并在系统启动时加载。
默认情况下,系统也会在set name=value
文件中寻找HKLM\SYSTEM\CurrentControlSet\Control\Session Manager\Environment
命令。
要进行持久性修改,在set
中添加或编辑适当的AUTOEXEC.NT
行,然后重启。
(忍不住了。)
DCL没有 “路径 "的概念,但各种符号和命令定义可以放在command.com
中。
对于bash
shell的PATH
全局(非终端)环境变量,我是按照我的Ubuntu VM安装中使用的惯例–其他的shell会有不同:
注意事项:整个shell的启动顺序,.bashrc
、.profile
等文件是按照哪个顺序来的? 什么时候需要重新登录才能获得新定义的变量、别名等的可见性?登录、交互式和非交互式shell有什么区别–我确实用的是cron
,为什么当我做. ~/.bashrc
的时候,我的愚蠢的PATH
变量会越来越长,这些都是我在思考PATH
变量的时候想到的关键问题。
事实上,我刚刚从Ubuntu和cygwin的骨架文件中吸取了一些想法,完全重写了我的整个bash启动文件集,以下是我的一些in站:
PATH
中的LD_LIBRARY_PATH
和其他全局环境变量(即.profile
)变量;~/.profile
中的逻辑,将$HOME/.bashrc
中的逻辑源码~/.bashrc
如果存在的话;shopt
的执行与交互式执行的测试进行栅栏化,否则退出;~/.bashrc
的、提示符设置、历史记录控制、终端设置、功能定义等都放在.profile
的部分(交互式相关设置)。交互式相关的设置)放在.bashrc
中被保护的部分,使其只在交互式模式下运行;
5.去掉其他的bash启动文件,因为它们的存在决定了通过~/.bash_profile
和~/.bash_login
的控制路径是否能按预期的方式运行。也就是说,除非有特殊的要求,否则就把~/.bashrc
去掉;
6.当我在bash提示符下,需要更新一些默认设置时,我就会编辑我的. ~/.bashrc
文件,然后用PATH
简单的源码来获取我当前shell中的这些修改。
7.当我对环境变量进行修改时,比如~/.profile
,我需要修改.profile
,并将其源码化;
8.我把我对fink、port和brew的特定设置的调用放在&007中。Q:* **环境变量是什么? **
A:环境变量类似于任何编程语言中的变量。在Windows或Unix系统中,它们存储各种值,以便程序和任务获得必要的操作系统信息或 “环境 "信息。例如:
USERPROFILE:操作系统文件中的用户目录;
MAIL:在操作系统文件中可以找到用户的邮件。这可以防止程序在调用其他可执行进程时不需要知道自己的安装位置。
它查找Windows环境系统的PATH变量,并对给定的可执行程序的每个位置进行测试。因此,在PATH变量中添加一个位置就可以直接调用一个可执行程序。
根据这篇维基百科的文章:
当在命令shell中输入命令或系统调用程序执行程序时,系统首先搜索当前工作目录,然后搜索路径,从左至右检查每个目录
**
*问:如何在PATH变量中添加位置? *
A:你需要编辑环境变量PATH变量的变量字符串,以包含你的可执行文件的位置。打开 "开始 "菜单,右击 "计算机",选择 "属性"。选择属性
2. 选择 "高级系统设置”
3.
3. 在 “高级 "选项卡中,选择 "环境变量"。选择 "编辑 "或 "新建"。例如: C:\wamp\bin\php\php5.5.12;
5.添加你的位置路径。