Linux 下的环境变量------etc/profile
一、此文件涉及系统的环境,即环境变量相关。这里修改会对所有用户起作用。/etc/profile会首先执行/etc/profile.d/目录下的所有*.sh文件。
1. Linux是一个多用户操作系统。用户登录或切换(即Login shell 启动)时都有一个专用的运行环境,但首先执行 /etc/profile 。而Non-login shell 不会调用这个脚本。各用户的默认环境(一组环境变量的定义)一般相同。用户也可以自行配置运行环境,即修改相应的系统环境变量。
2. 在 /etc/profile 文件中设置的变量是全局变量。而 .bashrc文件(在用户的家目录下)则只对当前用户有用。~/.bashrc、~/.bash_file 是当前用户目录下的配置信息。修改后用 source 命令更新。
3. 操作环境变量:(在profile文件添加或修改的内容需要注销系统才能生效。同名的环境变量,后写入的起作用)
Ⅰ.在文件末尾添加环境变量(引号可省略):"NAME=<name>"
Ⅱ.添加一个customer.sh文本文件到 /etc/profile.d/目录。
写入环境变量:export PATH=$PATH:/opt/lamp/mysql/bin
立即生效:source /etc/profile(下一次登陆也会生效)。
4. 常见的环境变量:(最好通过在/etc/profile.d/路径下新建脚本,修改环境变量)
PATH: 预设可执行文件或命令的搜索路径。env命令显示所有的环境变量 。环境变量以" : "分开。环境变量名前" $ "符号表示该变量本次定义之前的值。
USER: 用户登录时使用的用户名。
HOME:当前用户主目录
SHELL:是指当前用户用的是哪种Shell。set命令显示所有本地定义的Shell变量。
LOGNAME:指当前用户的登录名。其值为$USER。
HOSTNAME:所使用的主机名。供应用程序使用。
PS1:基本提示符(格数如下,用法如右):export PS1="[\u@\h \w]\$"
\d :代表日期,格式为weekday month date,例如:Wed Dec 12
\H :完整的主机名称。例如:hostname是debian.linux
\h :仅取主机的第一个名字,如上例,则为debian,.linux则被省略
\t :显示时间为24小时格式,如:HH:MM:SS
\T :显示时间为12小时格式
\A :显示时间为24小时格式:HH:MM
\u :当前用户的账号名称 如:root
\v :BASH的版本信息 如:3.2
\w :完整的工作目录名称。家目录会以 ~代替 如显示/etc/default/
\W :利用basename取得工作目录名称,只会列出最后一个目录。如上例则只显示default
\# :下达的第几个命令
\$ :提示字符,如果是root时,提示符为:# ,普通用户则为:$
PS2:附属提示符,默认为“>”。 具体参考 http://os.51cto.com/art/201205/334954.htm
MAIL: 存放用户电子邮件的邮箱(ASCII码文件)。
HISTSIZE: 保存的历史记录数。
INPUTRC: 存放的是针对键盘热键的信息(ASCII码文件)。
LANG/LANGUGE:语言相关的环境变量,多语言用户可以修改。
5. 使环境变量生效:source /etc/profile 或者 ./profile,执行一下文件。但不能用 sh /etc/profile。sh 是在子 shell 进程中执行的,即使PATH改变了也不会反应到当前环境中。而 source 是在当前 shell 进程中执行的,所以我们能看到PATH的改变。
6. export 相当于导出变量。" = "赋值符号定义的变量只在当前shell中可用,外部(子shell中)使用时,定义时需要用export A=“xxx”,或在使用时 使用export A。 如果希望下载软件后不加入路径就能启动该程序,要把可执行程序的路径加入 PATH 中。