在网上找到很多关于ubuntu的配置文件的文章,大部分为转载,而且错误很多,为了确认真正的情况,做了一个实验。
2.在实验文件最后分别增加自定义变量,并增加echo显示文件名。
3.CTL+ALT+F1方式切换到BASH方式登录
4.查看echo显示结果,echo $自定义变量
5.执行bash,免登录方式打开子bash shell。
6.重复第4步过程。
7.exit,退出子bash shell
8.exit,退出登录
实验结果如下:
1./etc/environment中的echo没有显示,但是定义的变量可以在父/子bash shell中使用,调用export发现,该变量被自动的export。
2.密码登录父bash shell时,显示结果如下:
bash.bashrc
profile
.bashrc
.profile
定义的变量可以使用,但没有被自动export。
3.bash命令免登录进入子bash shell时,显示结果如下:
bash.bashrc
.bashrc
定义的变量可以使用,但没有被自动export。
4.exit命令退出子bash shell时,无显示
5.exit命令退出父bash shell时,显示:
.bash_logout
实验结果分析:
1. /etc/environment 设置整个系统的环境【主要PATH,初始语言LANG】,由kernel加载(第一个bash shell执行前),里面定义的变量将作用于所有的子bash shell(自动export),此时bash shell尚未就位,最好不要修改。
2. /etc/bash.bashrc 相当于很多linux下的/etc/bashrc,用来设置bash的变量【sudo,xterm等】,所有bash shell创建的时候加载,里面定义的变量将作用于本bash session。一般情况下不需要修改。
3. /etc/profile 设置全部用户的配置信息【PS1等】,在任何用户密码登录后,该文件执行,非密码登录时,不再调用。该文件会自动调用/etc/bash.bashrc。此文件会自动调用/etc/profile.d/目录下的所有shell脚本,如果有全部用户都需要的变量,比如JAVA_HOME,可以考虑创建一个脚本放到该目录下。另外,如果变量需要在子shell中使用,需要自行添加export。
7. 登录和免登录bash方式都会调用/etc/bash.bashrc和~/.bashrc。只有登录方式bash才会调用/etc/profile和~/.profile(包括su)。调用顺序为全局配置操作完之后执行个人配置。
8. ~/.bash_history 用来记录用户上一次登录的命令记录(默认1000条)。黑客的最爱。想读本次命令记录用history。
测试环境ubuntu 11.10
实现过程如下:
1.实验文件 /etc/environment, /etc/bash.bashrc, /etc/profile, ~/.bashrc, ~/.profile, ~/.bash_logout, ~/.bash_history2.在实验文件最后分别增加自定义变量,并增加echo显示文件名。
3.CTL+ALT+F1方式切换到BASH方式登录
4.查看echo显示结果,echo $自定义变量
5.执行bash,免登录方式打开子bash shell。
6.重复第4步过程。
7.exit,退出子bash shell
8.exit,退出登录
实验结果如下:
1./etc/environment中的echo没有显示,但是定义的变量可以在父/子bash shell中使用,调用export发现,该变量被自动的export。
2.密码登录父bash shell时,显示结果如下:
bash.bashrc
profile
.bashrc
.profile
定义的变量可以使用,但没有被自动export。
3.bash命令免登录进入子bash shell时,显示结果如下:
bash.bashrc
.bashrc
定义的变量可以使用,但没有被自动export。
4.exit命令退出子bash shell时,无显示
5.exit命令退出父bash shell时,显示:
.bash_logout
实验结果分析:
1. /etc/environment 设置整个系统的环境【主要PATH,初始语言LANG】,由kernel加载(第一个bash shell执行前),里面定义的变量将作用于所有的子bash shell(自动export),此时bash shell尚未就位,最好不要修改。
2. /etc/bash.bashrc 相当于很多linux下的/etc/bashrc,用来设置bash的变量【sudo,xterm等】,所有bash shell创建的时候加载,里面定义的变量将作用于本bash session。一般情况下不需要修改。
3. /etc/profile 设置全部用户的配置信息【PS1等】,在任何用户密码登录后,该文件执行,非密码登录时,不再调用。该文件会自动调用/etc/bash.bashrc。此文件会自动调用/etc/profile.d/目录下的所有shell脚本,如果有全部用户都需要的变量,比如JAVA_HOME,可以考虑创建一个脚本放到该目录下。另外,如果变量需要在子shell中使用,需要自行添加export。
4. ~/.bashrc 用来设置用户自定义的bash变量【自定义PS1,alias等】,在bash shell创建的时候加载,里面定义的变量将作用于本bash session。用户可以通过修改此文件定制自己的bash。另外,也可以将alias写到~/.bash_aliases文件中,~/.bashrc会自动加载该文件。
5. ~/.profile 用来设置用户自定义的配置信息,该文件会自动加载~/.bashrc,并且重置用户语言等变量。用户可以通过修改此文件,修改变量或者export新变量。
7. 登录和免登录bash方式都会调用/etc/bash.bashrc和~/.bashrc。只有登录方式bash才会调用/etc/profile和~/.profile(包括su)。调用顺序为全局配置操作完之后执行个人配置。
8. ~/.bash_history 用来记录用户上一次登录的命令记录(默认1000条)。黑客的最爱。想读本次命令记录用history。