Linux开机不能自动加载 ~/.bash_profile 文件的解决方法
2017-12-21 18:51
591 查看
终端启动分为login 和 non-login两种方式, non-login 方式启动是不加载~/.bash_profile 文件的。在登录情况下,一般shell会先读取~/.profile,再读取~/.bashrc。如果是在非登录情况下,shell只会去读取~/.bashrc。
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 的。
下面给出两种解决方式:
1、把环境变量写入到~/.bashrc中,或者~/.profile。
2、在~/.profile里添加下面几行代码,即加载.profile文件同时调用~/.bash_profile文件。
3、改变登录方式,注销系统并重新登录
总结:
1. 图形界面登录是 non-login 不运行 .bash_profile 。
2. shell 和 ssh 登录打开 login shell ,会运行 .bash_profile。
3. 图形界面登录,可以指定 终端模拟器 为 non-login 还是 login ,但这只是指定 终端模拟器 ,经实测,和写到 .bashrc 效果一样,每次打开终端都会执行一次。
4. 要只在图形界面登录时执行一次,应该写入 .profile,而不是 .bash_profile ,或者在 .profile 增加一条 调用 .bash_profile。
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 的。
下面给出两种解决方式:
1、把环境变量写入到~/.bashrc中,或者~/.profile。
2、在~/.profile里添加下面几行代码,即加载.profile文件同时调用~/.bash_profile文件。
if [ -n "$BASH_VERSION" ]; then if [ -f "$HOME/.bash_profile" ]; then "$HOME/.bash_profile" fi fi
3、改变登录方式,注销系统并重新登录
# 编辑文件 vi ~/.config/deepin/deepin-terminal/config.conf # 找到第56行,讲 false 修改为 true run_as_login_shell=true # :wq 保存退出 :wq
总结:
1. 图形界面登录是 non-login 不运行 .bash_profile 。
2. shell 和 ssh 登录打开 login shell ,会运行 .bash_profile。
3. 图形界面登录,可以指定 终端模拟器 为 non-login 还是 login ,但这只是指定 终端模拟器 ,经实测,和写到 .bashrc 效果一样,每次打开终端都会执行一次。
4. 要只在图形界面登录时执行一次,应该写入 .profile,而不是 .bash_profile ,或者在 .profile 增加一条 调用 .bash_profile。
相关文章推荐
- 打造前端 Deepin Linux 工作环境——开机自动加载 ~/.bash_profile 文件
- 解决Linux开机启动文件rc.local不能自动执行
- Linux下修改.bash_profile文件后再次用CRT启动环境变量未生效的解决方法,oracle命令无法使用
- WinXP系统开机提示“windwos不能加载用户的配置文件”的故障分析及解决方法
- WAS profile 通过manageprofiles.bat 创建不能作为主机服务项自动随开机启动问题解决方法
- Excel 已经检测到"xxx.xsl"是SYLK文件,但是不能将其加载解决方法
- Android 导入android源码有错,R.java文件不能自动生成解决方法
- Android 导入android源码有错,R.java文件不能自动生成解决方法
- 导入android源码有错,R.java文件不能自动生成解决方法
- jQuery EasyUI动态添加控件或者ajax加载页面后不能自动渲染问题的解决方法
- Ubuntu 配置hbase修改profile文件后不能登录桌面解决方法
- fedora11中scim或ibus不能开机自动启动的解决方法
- Android 导入android源码有错,R.java文件不能自动生成解决方法
- Linux下文件 ~/.bashrc 和 ~/.bash_profile 和 /etc/bashrc 和 /etc/profile 的区别 | 用户登录后加载配置文件的顺序
- linux开机自动加载分区/etc/fstab配置文件
- Linux 开机启动[root@localhost]变成bash#解决方法
- JBuilder2006不能自动编译.class文件在WEB-INF/CLASSES文件下的解决方法
- 导入android源码有错,R.java文件不能自动生成解决方法
- opensuse12.2的gdb不能自动加载.gdbinit的解决方法
- 哪些年遇到过的Andriod问题(9)R.java文件不能自动生成解决方法