Linux环境变量设置,bash的环境配置文件【亚洲城ca88唯一备用】

亚洲城ca88唯一备用 1

1. login shell 和 non-login shell

login shell 和 non-login shell 区别在于登录 login。 login shell :
通过完整的登录流程, 举例:通过tty1-tty6
登录,需要输入用户的账号和密码,此时取得的 bash 就是 login shell。
non-login shell : 取得bash接口的方法不需要重复登陆,比如下面两种方法:
1, 以 X Window登录linux后, 再以 X
的图形界面启动终端机,此时这个终端没有再次输入用户名和密码,这个bash环境为
non-login shell 2,
在原bash下再次执行bash,同样没有输入用户名和密码,此时第二个bash,子进程,为non-login
shell。
login shell 与 non-login shell 读取的配置文件不一样。

引用:

login shell 和non -login shell读取的配置文件是不一样的。

2. login shell

login shell 读取两个配置文件: 1. /etc/profile 2. ~/.bash_profile,或
~/.bash_login, 或 ~/.profile。

/etc/bashrc:  这个文件设置系统bashshell相关的东西,对系统内所有用户生效。只要用户运行bash命令,那么这里面的东西就在起作用。

non-login shell 通常会去读取 .bashrc文件

bash的环境配置文件

/etc/profile: 用来设置系统环境参数,比如$PATH.
这里面的环境变量是对系统内所有用户生效的。

login  shell会去读取/etc/profile文件,这个是系统整体设置的环境变量

4. 其他配置

/etc/man.config 配置手册的目录,man 命令 ~/.bash_history
记录bash的历史命令 ~/.bash_logout 注销bash时,希望系统做的一些处理。

1. login shell 和 non-login
shell login shell 和 non-login shell 区别在于登录 login。 login shell :
通过完整的登录流程, 举例:通过…

~/.bashrc 是交互式 non-login 方式进入 bash
运行的,用户不一定登录,只要以该用户身份运行命令行就会读取该文件。

我们经常在图形界面上启动新的终端机,这个时候登录的用户实质上non-login
shell

2.2 ~/.bash_profile

bash读取完整体环境变量/etc/profile
后会读取个人用户配置。主要有下面三个文件: 1. ~/.bash_profile 2.
~/.bash_login 3. ~/.profile
只会读取其中一个文件,顺序为上面的顺序,只要前面文件存在,后面则不再读取。

$ vim ~/.bash_profile 

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then 
    . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH
unset USERNAME

该文件会读取 ~/.bashrc 文件。 source和. 为读入配置文件。

]$ source .bashrc 
]$ . .bashrc 

1、Linux下profile和bashrc四种的区别

login shell还会去读取
.bash_profile或.bash_login或.profile这些属于用户个人设置,你要改自己的设置就写在这里。

2.1 /etc/profile

这个配置为用户整体的配置,最好不要修改这个文件,除非给所有用户设置整体环境。
这个文件设置的变量主要有: PATH : 跟据用户设置 USER: 用户名 HOSTNAME:
主机名 HISTSIZE : 历史命令条数 该文件会调用下面文件: /etc/inputrc :
主要设置bash 热键,[Tab] 有没有声音等。 /etc/profile.d/*.sh :
主要规定bash接口的颜色,语系等,如果要给所有用户设置配置变量时,在/etc/profile.d/目录下,建
.sh 文件。 /etc/sysconfig/i18n: 该文件由/etc/profile.d/lang.sh
文件调用, 设置bash默认使用哪种语系。

bash 的配置文件主要分为 login shell 与 non-login shell。login shell
主要读取 /etc/profile与 ~/.bash_profile, non-login shell 则仅读取
~/.bashrc

Linux下环境变量的读取分为login shell和non-login
shell,第一次登录的时候由tty1-tty6的登录,以及通过窗体登录时需要输入帐号密码的登录,都叫做login
shell

3. non-login shell

non-login shell 会读取 ~/.bashrc 查看该文件:

# .bashrc

# User specific aliases and functions

# Source global definitions
if [ -f /etc/bashrc ]; then 
    . /etc/bashrc
fi

alias rm='rm -i'

会读取 /etc/bashrc 该文件会设置: 跟据UID设置umask PS1: 提示符
调用/etc/profile.d/*.sh

2、Linux中profile、bashrc、bash_profile之间的区别和联系

/etc/profile、/etc/bashrc、~/.bash_profile、~/.bashrc很容易混淆,他们之间有什么区别?它们的作用到底是什么?

~/.bash_profile 是交互式、login 方式进入 bash
运行的,意思是只有用户登录时才会生效。

~/.bashrc: 作用类似于/etc/bashrc,
只是针对用户自己而言,不对其他用户生效。

另外/etc/profile中设定的变量(全局)的可以作用于任何用户,而~/.bashrc等中设定的变量(局部)只能继承/etc/profile中的变量,他们是”父子”关系.

~/.bash_profile: 用来设置一些环境变量,功能和/etc/profile
类似,但是这个是针对用户来设定的,也就是说,你在/home/user1/.bash_profile
中设定了环境变量,那么这个环境变量只针对 user1 这个用户生效.

相关文章