一、查看环境变量
echo $PATH
echo有“显示、印出”的意思,而 PATH 前面加的 $ 表示后面接的是变量,所以会显示出目前的 PATH.
PATH(一定是大写)这个变量的内容是由一堆目录所组成的,每个目录中间用冒号(:)来隔开, 每个目录是有“顺序”之分的。
二、添加环境变量
方法1:shell中用export 声明
PATH=$PATH:/home/jianwang16/work/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
export PATH=$PATH:/home/jianwang16/work/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
只是对于当前shell有效。
再开一个shell,发现没有该环境变量。
方法2:全局永久有效
在/etc/profile 最后添加PATH=$PATH:/home/jianwang16/work/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin
sudo vi /etc/profile
重启生效,可以看到变量配置成功
三、profile和bshrc的差别
1、/etc/profile:
设置系统环境参数,比如$PATH,全局有效,所有用户均可访问,属于父层。包含其他的全局参数如:
- PATH:会依据 UID 决定 PATH 变量要不要含有 sbin 的系统指令目录;
- MAIL:依据帐号设置好使用者的 mailbox 到 /var/spool/mail/帐号名;
- USER:根据使用者的帐号设置此一变量内容;
- HOSTNAME:依据主机的 hostname 指令决定此一变量内容;
- HISTSIZE:历史命令记录笔数。CentOS 7.x 设置为 1000 ;
- umask:包括 root 默认为 022 而一般用户为 002 等。
2、/etc/bashrc:
设置系统bash shell,对系统内所有用户生效。
3、~/.bash_profile:
用来设置一些环境变量,功能和/etc/profile 类似,属于用户自定义,只针对这个用户生效。
4、~/.bashrc:
作用类似于/etc/bashrc, 只对该用户生效。
四、其他
- login shell:取得 bash 时需要完整的登陆流程。例如由 tty1 ~ tty6 登陆,需要输入使用者的帐号与密码,此时取得的 bash 就称为“ login shell ”。
-
non-login shell:取得 bash 接口的方法不需要重复登陆的举动。
~/.bash_profile 是交互式、login 方式进入 bash 运行的,只有用户登录时才会生效。
~/.bashrc 是交互式 non-login 方式进入 bash 运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。