Posts

Showing posts with the label SHELL

Fedora每日一篇:登录和会话

Image
Fedora每日一篇 登录和会话! 有个用户(Allen Halsey)这么文, “ bash的手册页说登录shell会执行.bash_profile,但是我用gdm登录桌面,什么时候执行.bash_profile,如果不是这样,我在哪里定义环境变量呢? ” 这个问题的关键是登录和会话的区别。login是进入字符界面的系统认证过程,这个过程的为你启动一个shell和系统交互,每个用户的shell定义在/etc/passwd文件中,例如, chris:x:500:500:Chris Tyler:/home/chris:/bin/bash :是分隔符,第七项指出shell,该shell在登录时执行,以便用户和系统交互操作。该项也可以不是shell,可以是任何程序。典型的是不允许用户登录的话,可以把该项设置为/etc/nologin,这样用户登录会被提示不允许登录。(使用/etc/nologin.txt定制提示信息) 通常对于Fedora系统,shell是/bin/bash,Bourne-again shell。和其它shell一样,bash在启动时调用一些配置文件,启动脚本~/.bashrc,几个可能的profile,/etc/profile和~/.bash_profile,~/.bash_login 或~/.profile。Fedora默认为帐号设置~/.bash_profile。如果你登录一次然后执行多个shell实例,各个profile被执行一次,而~/.bashrc被执行三次! 会话则是完全另外一回事,是"图形界面的登录"。会话由显示管理器(例如gdm,kdm和xdm)启动。会话由会话管理器控制,会话管理器启动标准客户程序,重启程序和在会话结束时保存的应用程序的再启动。GNOME的会话管理器是gnome-session而KDE的是ksmserver(由startkde启动)。这些程序根本不理会/etc/passwd第七项的设置值!!因此不存在profile被执行。 但是事实原本比这更复...