关于profile,rcfile的几个问题
1.在suse中有很多profile文件,如.profile,.bashrc,.bash_profile, .xinitrc。他们有什么区别?
这些文件分别属于不同的软件包的个性化定制文件。与在哪个操作系统中没有必然联系。
在bash下,login shell或non-interactive shell with --login 参数,对这些profile的读入
首先读入并执行/etc/profile里的命令,然后按照如下顺序~/.bash_profile->~/.bash_login
->~/.profile查找并读入执行第一个匹配的文件的内容。
当启动非login的interactive shell时,如果存在~/.bashrc文件,bash会读入并执行其内容。
~/.xinitrc 是当X Window system 启动的时,如果存在,在某阶段会读取执行。
参见 man bash
2.login shell和interactive shell分别表示什么?
login shell有身份验证过程
interactive shell在执行的过程需要交互,执行完命令之后退回命令行
interactive shell 是否包含login shell,即login shell是一种interactive shell?
login shell是一种interactive shell,其他的为非login interactive shell
3.当我通过telnet登陆时,输入用户名和口令后,启动的就是login shell?
是的
4.除了login shell和interactive shell外,是否还有其他种类的shell?
还有non_interactive shell, 例如bash执行一个脚本
5.通过x window登陆时,运行哪些profile文件?和文本方式登陆时运行的profile不一样。
这个要看具体的display manager的情况了,一般情况下在启动X Window
的时候,会执行/etc/X11/xinitrc和~/.xinitrc其中之一,然后会执行对应的
窗口环境对应的自动启动服务。
(出处:http://www.sheup.com)