LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 1726|回复: 11

为什么不能在 ~/.bashrc 中修改环境变量呢?

[复制链接]
发表于 2009-7-11 22:59:39 | 显示全部楼层 |阅读模式
如题,这个疑问存在很久了,我一般是修改 ~/.profile 来修改环境变量的。但是按道理说在 ~/.bashrc 也是应该可以改变环境变量的啊,以前用其他的发行版的时候是可以的。
发表于 2009-7-11 23:30:19 | 显示全部楼层
你可以在.profile里加上. ~/.bashrc

详细请看/etc/X11/gdm/Xsession  ,里面设定了启动机子时读取那个文件。也可以在这修改。

.bashrc 是打开虚拟终端时执行的 , .profile 是login shell时执行的。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2009-7-12 16:43:47 | 显示全部楼层
Post by waterloo2005;2005324
你可以在.profile里加上. ~/.bashrc

详细请看/etc/X11/gdm/Xsession  ,里面设定了启动机子时读取那个文件。也可以在这修改。

.bashrc 是打开虚拟终端时执行的 , .profile 是login shell时执行的。


我就是希望在打开每个终端的时候配置,但是似乎并不是这样。
回复 支持 反对

使用道具 举报

发表于 2009-7-12 17:35:37 | 显示全部楼层
Post by waterloo2005;2005324
你可以在.profile里加上. ~/.bashrc

详细请看/etc/X11/gdm/Xsession  ,里面设定了启动机子时读取那个文件。也可以在这修改。

.bashrc 是打开虚拟终端时执行的 , .profile 是login shell时执行的。


非常感谢阿! 刚才看了一下 /etc/X11/gdm/Xsession, 终于知道为什么 debian gnome下 .profile 的配置到了 gentoo gnome 下要改名为 .xprofile 了. 我以前一直以为这些都是被规定了的东西.
回复 支持 反对

使用道具 举报

发表于 2009-7-12 18:42:13 | 显示全部楼层
Post by robinswan;2005317
如题,这个疑问存在很久了,我一般是修改 ~/.profile 来修改环境变量的。但是按道理说在 ~/.bashrc 也是应该可以改变环境变量的啊,以前用其他的发行版的时候是可以的。

本来就可以在~/.bashrc里面设置,但是你要确保~/.profile里有source ~/.bashrc,比如我的~/.bash_profile内容:
  1. if [ -f ~/.bashrc ]; then
  2.     . ~/.bashrc
  3. fi
复制代码

其实你要是只用bash,在~/.bash_profile就行了,如果你照顾到其它的shell,就使用~/.profile。当然我说的只是我的个人习惯,你要怎么用是你的自由。
回复 支持 反对

使用道具 举报

发表于 2009-7-12 20:48:44 | 显示全部楼层
/etc/env.d中设置也是个不错的选择,不过好像也是只有login shell有效吧?详情可能要看下/etc/bash/bashrc了。
回复 支持 反对

使用道具 举报

发表于 2009-7-13 20:16:36 | 显示全部楼层
怎么我有很多文件都没有的说?
#ls -al
-rw-------  1 root root    0 Jul  9 15:25 .Xauthority
-rw-------  1 root root 9346 Jul 11 08:37 .bash_history
drwxr-xr-x  2 root root 4096 Jul  8 22:09 .config
drwx------  3 root root 4096 Jul  8 22:09 .dbus
-rw-------  1 root root   16 Jul  8 22:11 .esd_auth
drwxr-xr-x  4 root root 4096 Jul  8 22:11 .kde4
-rw-r--r--  1 root root    0 Jun 23 17:15 .keep
drwx------  3 root root 4096 Jul  8 22:22 .local
-rw-------  1 root root 7086 Jul 11 08:36 .viminfo
-rw-------  1 root root   61 Jul 11 04:02 .xauthNWXuaq
-rw-------  1 root root   61 Jul 11 07:15 .xauthnD8e2F
-rw-------  1 root root   61 Jul 11 00:07 .xauthvZzGta
-rw-------  1 root root   61 Jul 11 10:07 .xauthwwGnA1
drwxr-xr-x  2 root root 4096 Jul  8 22:11 .xine
-rw-r--r--  1 root root 1855 Jul  8 22:11 screen-configurations.xml
-rw-r--r--  1 root root 2002 Jul  9 14:50 xorg.conf.new


#ls -al /etc/X11
drwxr-xr-x  2 root root  4096 Jul 11 09:51 Sessions
-rwxr-xr-x  1 root root  1496 Jul  7 19:40 chooser.sh
-rwxr-xr-x  1 root root   858 Jul  7 19:40 startDM.sh
drwxr-xr-x  3 root root  4096 Jul 11 06:16 xinit
-rw-r--r--  1 root root  1464 Jul  9 15:24 xorg.conf
-rw-r--r--  1 root root 17923 Jul  8 23:01 xorg.conf.example
-rw-r--r--  1 root root  2002 Jul  9 14:50 xorg.conf.new


#ls -al /etc/X11/Sessions
-rwxr-xr-x 1 root root  2187 Jul  7 19:40 Xsession
-rwxr-xr-x 1 root root    33 Jul  8 09:19 kde-4.2

[color="Red"]/etc/X11/Sessions/Xsession也没有提到读取.bashrc 还是.profile 的,而且/etc/X11/Sessions/Xsession中提到的好几个文件都没有的,如
startup=$HOME/.xsession

userresources=$HOME/.Xresources
usermodmap=$HOME/.Xmodmap
userxkbmap=$HOME/.Xkbmap

sysresources=/etc/X11/Xresources
sysmodmap=/etc/X11/Xmodmap
sysxkbmap=/etc/X11/Xkbmap

rh6sysresources=/etc/X11/xinit/Xresources
rh6sysmodmap=/etc/X11/xinit/Xmodmap




#ls -al /etc/X11/xinit
-rwxr-xr-x 1 root root 1059 Jul  7 19:40 xinitrc
drwxr-xr-x 2 root root 4096 Jul  7 19:22 xinitrc.d
回复 支持 反对

使用道具 举报

发表于 2009-7-13 22:11:55 | 显示全部楼层
很好的帖子,学习了。
回复 支持 反对

使用道具 举报

发表于 2009-7-14 09:07:21 | 显示全部楼层
学习了!顶下!
回复 支持 反对

使用道具 举报

发表于 2009-7-14 15:08:43 | 显示全部楼层
随便找本bash的书,或者直接看info bash
比在论坛上这样获取信息要有效率的多
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表