环境变量的修改方法
1、/etc/profile:在登录时,操作系统定制用户环境时使用的第一个文件,此文件为系统的每个用户设置环境信息,当用户第一次登录时,该文件被执行。
2、/etc/environment:在登录时操作系统使用的第二个文件,系统在读取你自己的profile前,设置环境文件的环境变量。
3、~/.bash_profile:在登录时用到的第三个文件是.bash_profile文件,每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该文件仅仅执行一次!默认情况下,他设置一些环境变量,执行用户的.bashrc文件。/etc/bash.bashrc:为每一个运行bash shell的用户执行此文件,当bash shell被打开时,该文件被读取。
4、~/.bashrc:该文件包含专用于你的bash shell的bash信息,当登录时以及每次打开新的shell时,该该文件被读取。
几个文件的优先级:1>2>3在linux下,如果是bash环境,用户登录时读取设置文件的顺序是:
/etc/profile --> ~/.bash_profile --> ~/.bashrc --> /etc/bash.bashrc。
注意在~/.bash_profile这一步,如果没有~/.bash_profile ,则默认读取~/.bash_login,如果没有~/.bash_login 才读取~/.profile。根据发行版本的情况,有两个基本的系统级配置文件:/etc/bash.bashrc和/etc/profile。这些配置文件包含两组不同的变量:shell变量和环境变量。前者只是在特定的shell中固定(如bash),后者在不同shell中固定。shell变量是局部的,而环境变量是全局的。
注意:尽量避免修改root用户的环境变量配置文件,因为那样可能会造成潜在的危险。最好不要把当前路径”./”放到PATH里,这样可能会受到意想不到的攻击。
使用:
把设置的环境变量给所有用户使用:/etc/bashrc;/etc/profile
修改全局的环境变量在/etc/profile
修改某个用户的环境变量在/home/用户名/.bash_profile
引:
用sh执行脚本*.sh文件,其中文件*.sh中包含declare的变量声明,但这样却现实not found declare,用chmod 755 *.sh,然后./*.sh脚本运行正常,或者直接bash *.sh也能运行,这是因为sh是链接的是dash,不是bash。
Ubuntu安装的时候使用了dash,dash比bash体积小速度快,兼容性高!但是在bash下可以正常运行的一些sh在dash下不能使用,造成了一些麻烦。为了解决之,键入sudo dpkg-reconfigure dash,重新配置dash,并选择“no”,即不使用dash。
查看dash还是bash用一下命令:
ls -al /bin/sh #将会显示是否是bash还是dash
如果是bash:
lrwxrwxrex 1 root root 4 xxxx-xx-xx xx:xx /bin/sh->bash #一个软链接指向bash
如果是dash:
lrwxrwxrex 1 root root 4 xxxx-xx-xx xx:xx /bin/sh->dash #一个软链接指向dash