【转】Linux终端及终端登录过程简介
Linux 终端及终端登录过程简介
shell是系统的⽤户界⾯,它提供了⽤户与内核交互的接⼝。它接收⽤户输⼊的命令并把它送⼊内核执⾏,再将执⾏结果显⽰给⽤户。
Linux终端使⽤基础:
显⽰器和键盘合称为终端,因为它们可以对系统进⾏控制,所以⼜称为控制台(物理控制台)。如果在⼀台计算机上⽤软件的⽅法实现了多个互不⼲扰、独⽴⼯作的控制台界⾯,就是实现了多个虚拟控制台。⽤户以⽂本⽅式登录的话,⽤户通过键盘输⼊命令,通过Linux终端对系统进⾏控制。通常情况下,Linux默认启动6个虚拟终端(tty1~6)。如果启动⽅式选择直接启动X Window,那么X Window在第7个虚拟终端上。
假设⽤户现在处于图形界⾯下,虚拟控制台的选择可以通过按下Ctrl+Alt键和功能键Fn(n=1~6)来实现。例如,⽤户登录后,按Ctrl+Alt+F2组合键,⽤户⼜可以看到“login:”提⽰符,此时看到的是第⼆个虚拟控制台。如果此时再按Alt+F1组合键,就可以回到第⼀个虚拟控制台。
虚拟控制台使得Linux成为⼀个真正的多⽤户操作系统。在不同的控制台上,可以同时接受多个⽤户登录,
也允许⼀个⽤户进⾏多次登录。⽤户可以在某⼀个虚拟控制台上的⼯作尚未结束时,切换到另⼀虚拟控制台开始另⼀项⼯作。
在X Window图形操作界⾯中按Alt+Ctrl+Fn组合键(n=1~6)就可以进⼊控制台字符操作界⾯。这就意味着⽤户可以同时拥有X Window以及6个控制台操作界⾯,在控制台操作界⾯中按Alt+Ctrl+F7组合键即可回到刚才的X Window图形操作界⾯。也就是说,⽤Alt+Ctrl+Fn组合键即可实现字符界⾯与X Window界⾯的快速切换。
Linux终端登录简介:
1. 当系统启动时,内核创建进程ID为1的进程也就是init进程,init进程使系统进⼊多⽤户状态。init进程根据配置⽂件/etc/inittab确定需要打开
哪些终端,对每⼀个允许登录的终端设备,init调⽤⼀次fork,它所⽣成的⼦进程则执⾏getty(exec)程序。(不同操作系统配置⽂件可能不同)
2. getty为终端设备调⽤open函数,以读写⽅式将终端打开。然后getty输出“longin:”之类的信息,并等待⽤户键⼊⽤户名。
3. 当⽤户键⼊⽤户名后,getty⼯作完成。然后调⽤login程序:execle(“/bin/login”,”login”,”-p”,usernam
e,(char *)0,envp)
4. 密码验证⽆误后,login将切换⽬录到⽤户的home⽬录,改变该终端设备的权限,login进程改变为登录⽤户ID并调⽤改⽤户的登录shell:linux终端下载软件
execl(“/bin/sh”,”-sh”,(char *)0)
5. 登录shell读取其启动⽂件(Bourne shell)和Korn shell。
从getty开始exec到login,再exec到bash,其实都是同⼀个进程,因此控制终端没变,⽂件描述符0、1、2也仍然指向控制终端。由于fork会复制PCB信息,所以由Shell启动的其它进程也都是如此。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。