Linux中.bash_profile 加载及profile和bashrc的区别

摘要:
~/.bash _ profile ~/。bash_登录~/。应该注意的是,只要三个文件中的一个存在,后续文件就不会被读取。这个shell被称为non-loginshell,这意味着它与登录期间出现的shell不同,并且不读取/etc/profile,。配置文件和其他配置文件。最终描述:1.图形界面登录是非登录。bash_配置文件4.要在登录图形界面时仅执行一次,请写入。配置文件而不是。bash_ Profile,或添加对.bash in的调用。profile_配置文件bashrc和profile都用于保存用户的环境信息。Bashrc用于交互式非登录shell,profile用于交互式登录shell。在某些Linux版本中,/etc目录中没有bashrc文件。

转载:https://www.cnblogs.com/markleaf/p/7794528.html

参考:https://www.linuxidc.com/Linux/2013-01/78005.htm

1.profile的加载顺序和优先级

Linux中.bash_profile 加载及profile和bashrc的区别第1张

1.Debian默认的shell是Bash,  

1.1 命令行 和 ssh 登录 ,首先读入 /etc/profile,这是对所有用户都有效的配置;然后依次寻找下面三个文件,这是针对当前用户的配置。
   ~/.bash_profile
   ~/.bash_login
   ~/.profile

需要注意的是,这三个文件只要有一个存在,就不再读入后面的文件了。比如,要是 ~/.bash_profile 存在,就不会再读入后面两个文件了。

  1.2 图形界面登录:只加载 /etc/prfile 和 ~/.profile。也就是说,~/.bash_profile 不管有没有,都不会运行。

2.用户进入操作系统图形界面以后,常常会再手动开启一个shell。这个shell就叫做 non-login shell,意思是它不同于登录时出现的那个shell,不读取/etc/profile和.profile等配置文件。

3.终端模拟器通常会有选项来指定是开 login shell 还是 non-login shell,比如 xfce4-terminal 可以在设置中修改。
 (deepin-terminal 改 ~/.config/deepin/deepin-terminal/config.conf ——>run_as_login_shell=true 也是)。

终上所述:

  1. 图形界面登录是 non-login 不运行 .bash_profile 。
  2. shell 和 ssh 登录打开 login shell ,会运行 .bash_profile。
  3. 图形界面登录,可以指定 终端模拟器 为 non-login 还是 login ,但这只是指定 终端模拟器 ,经我实测,和写到 .bashrc 效果一样,每次打开终端都会执行一次。
  4. 要只在图形界面登录时执行一次,应该写入 .profile,而不是 .bash_profile,或者在 .profile 增加一条 调用 .bash_profile。

交互式和非交互式区别:https://www.jb51.net/article/57930.htm

登陆和非登陆区别:https://blog.csdn.net/tiantangdizhibuxiang/article/details/80377012

总结:https://blog.csdn.net/sch0120/article/details/70226903

2.bashrc与profile的区别

转自:https://www.cnblogs.com/hongzg1982/articles/2101792.html

要搞清bashrc与profile的区别,首先要弄明白什么是交互式shell和非交互式shell,什么是login shell 和non-login shell。

交互式模式就是shell等待你的输入,并且执行你提交的命令。这种模式被称作交互式是因为shell与用户进行交互。这种模式也是大多数用户非常熟悉的:登录、执行一些命令、签退。当你签退后,shell也终止了。 shell也可以运行在另外一种模式:非交互式模式。在这种模式下,shell不与你进行交互,而是读取存放在文件中的命令,并且执行它们。当它读到文件的结尾,shell也就终止了。

bashrc与profile都用于保存用户的环境信息,bashrc用于交互式non-loginshell,而profile用于交互式login shell。系统中存在许多bashrc和profile文件,下面逐一介绍:

/etc/pro此文件为系统的每个用户设置环境信息,当第一个用户登录时,该文件被执行.

并从/etc/profile.d目录的配置文件中搜集shell的设置.

/etc/bashrc:为每一个运行bash shell的用户执行此文件.当bash shell被打开时,该文件被读取。有些linux版本中的/etc目录下已经没有了bashrc文件。

~/. pro每个用户都可使用该文件输入专用于自己使用的shell信息,当用户登录时,该

文件仅仅执行一次!默认情况下,它设置一些环境变量,然后执行用户的.bashrc文件.

~/.bashrc:该文件包含专用于某个用户的bash shell的bash信息,当该用户登录时以及每次打开新的shell时,该文件被读取.

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

某网友总结如下:

/etc/profile,/etc/bashrc 是系统全局环境变量设定
~/.profile,~/.bashrc用户家目录下的私有环境变量设定
当登入系统时候获得一个shell进程时,其读取环境设定档有三步
1首先读入的是全局环境变量设定档/etc/profile,然后根据其内容读取额外的设定的文档,如
/etc/profile.d和/etc/inputrc
2然后根据不同使用者帐号,去其家目录读取~/.bash_profile,如果这读取不了就读取~/.bash_login,这个也读取不了才会读取
~/.profile,这三个文档设定基本上是一样的,读取有优先关系
3然后在根据用户帐号读取~/.bashrc
至于~/.profile与~/.bashrc的不区别
都具有个性化定制功能
~/.profile可以设定本用户专有的路径,环境变量,等,它只能登入的时候执行一次
~/.bashrc也是某用户专有设定文档,可以设定路径,命令别名,每次shell script的执行都会使用它一次

免责声明:文章转载自《Linux中.bash_profile 加载及profile和bashrc的区别》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇关于Cadence OrCad 16.6的破解ios的hitTest方法以及不规则区域内触摸事件处理方法下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Linux基础(Ubuntu16.04):安装vim及配置

1.进入终端  Ctrl + Alt +T 出现终端窗口 2.输入命令: sudo apt-get install vim-gtk 3.验证是否成功   安装完vim后查看命令 vi tab键,就会关联出所有vi开头的命令,看是否有vim,有则成功. 4.美化vim   输入命令:sudo vim /etc/vim/vimrc   注意: 必须加上sudo...

linux命令<服务进程、查看日志、文件编辑、赋权等>

sudo命令以系统管理者的身份执行指令,也就是说,经由 sudo 所执行的指令就好像是 root 亲自执行。 sudo apt-get update  更新 /etc/apt/sources.list 和 /etc/apt/sources.list.d 中列出的源的地址,这样才能获取到最新的软件包; sudo apt-get upgrade  升级已安装的...

突破SA,,xp_cmdshell恢复终极方法

sql server 2005下开启xp_cmdshell的办法EXEC sp_configure 'show advanced options', 1;RECONFIGURE;EXEC sp_configure 'xp_cmdshell', 1;RECONFIGURE;SQL2005开启'OPENROWSET'支持的方法:exec sp_configur...

ROS(Robot Operating System)常用环境变量介绍

本文简单介绍ROS系统中常用的环境变量用途及设置方式。ROS系统环境中除了必须配置的环境变量以外,其他的也是十分有用,通过修改变量路径,可以设置ROS系统中log文件存放路径,单元测试结果存放路径等。 http://wiki.ros.org/ROS/EnvironmentVariables 一 、必选设置的环境变量 1、 ROS_ROOT 这个是ROS核心...

大数据之Shell编程(一) Shell变量

1.Shell中的变量 Shell中的变量分为系统变量和用户变量,可以通过set命令查看有哪些变量可以使用系统变量比如:$HOME$PWD$SHELL$USER等等 2.变量的定义 变量=值 (例如STR=abc) 注意:=两边不能含有空格 变量一般使用大写,当然不是硬性规定 双引号和单引号区别:双引号仅仅将空格等脱意,而单引号会将所有的特殊字符脱意 &g...

linux系统下获取cpu、硬盘、内存使用率

1.linux上安装snmp服务 第一步:在公司192.168.100.171 Linux虚拟机上安装snmp服务。 第二步:通过HOST-RESOURCES-MIB库中的节点获取对应的值。 第三步:只能通过:1.3.6.1.2.1.25.1.1.0节点对象获取到系统运行时间,无法获取到其他节点的值。 第四步:修改/etc/snmp/snmpd.conf文...