系统启动时运行的第一个进程是init。每个进程都有一个称为PID的进程标识号。init是第一个进程,所以它的PID是1。init进程初始化系统,启动另一个进程来打开终端线路并设置标准输入(stdin),标准输出(stdout)和标准错误输出(stderr),三者都与终端关联。标准输入通常来自键盘,标准输出和标准错误输出则显示在屏幕上。完成这些设置后,终端上就会出现登录提示。
系统会在用户键入用户名后提示输入口令。程序/bin/login通过检查passwd文件的首个字段来确认用户的身份。如果所键入的用户名存在,它会运行一个密码程序来对所键入的口令进行确认。口令验证通过后,login程序设置初始环境。初始环境是一组定义工作环境的变量,这组变量将传给shell。变量HOME、SHELL、USER和LOGNAME根据passwd文件中的信息进行赋值。HOME被设为用户的主目录,SHELL则被设为登录shell的名字,即passwd文件中的最后一列。USER和LOGNAME被赋值为登录名。还设置了变量search path,常用的工具程序可以在该变量指定的目录中找到。login程序结束时执行它在passwd文件最后一列中找到的程序。这个程序通常是一个shell。如果passwd文件最后一列是/bin/csh,执行的就是C shell。如果是/bin/sh或为空,则执行Bourne shell。如果是/bin/ksh或/bin/pdksh,则执行Korn shell。被执行的shell称为登录shell。
shell启动后
第一:查找由系统管理员设置的系统级的初始化文件
在/etc目录中,包括:bashrc,profile以及/etc/profile目录中的脚本文件。简介如下:
/etc/bashrc:设定别名和一些其它的功能,你可以使用文本编辑器来查看该文件,该文件设定了umask的数值该参数决定了新创建的文件的默认权限,另外还设定了命令行下的提示符。
/etc/profile:用于设定系统环境,设定PATH、USER、LOGINNAME、MAIL、HOSTNAME、HISTSIZE以及INPUTRC变量。以及最后运行/etc/profile.d目录中的脚本文件。
/etc/profile.d:一个包含若干用于bash shell脚本文件的目录,这些脚本文件由/etc/profile启动运行。
第二:
在用户的主目录中查找是否存在对应的shell初始化文件。如果存在,就会执行这些文件。包括:.bashrc , .profile。这些初始化文件用于进一步定制用户环境。在执行完这些初始化文件之后,就可以启动窗口界面的开发环境,如CDE、Open Windows或Gnome。接着,将显示一个虚拟桌面,该桌面的显示基于配置、控制台以及显示shell提示符的伪终端,此时shell正处于等待输入状态。
系统启动与登录shell
最新推荐文章于 2024-08-12 16:32:53 发布