前言
自学Linux的时候,我们用的显示器+键盘 是物理终端。Linux开机后,会在物理终端(显示器)之上,以软件的方式虚拟出多个终端,CentOS是6个。Ctrl+Alt+F1~6切换
默认情况下,linux启动后都是从虚拟终端1登陆,而不会使用物理终端,即便在物理终端上。物理终端只在刚开机那一会儿,Linux还没有运行起来的时候有用。一旦程序启动完成便由虚拟终端1接管了。
为啥是6个终端?
以SysV采用的init为例,在/etc/inittab文件中会定义虚拟终端的个数
[root@www ~]# vim /etc/inittab id:5:initdefault: <==默认的 runlevel 配置, 此 runlevel 为 5 si::sysinit:/etc/rc.d/rc.sysinit <==准备系统软件运行的环境的脚本运行档 # 7 个不同 run level 的,需要启动的服务的 scripts 放置路径: l0:0:wait:/etc/rc.d/rc 0 <==runlevel 0 在 /etc/rc.d/rc0.d/ l1:1:wait:/etc/rc.d/rc 1 <==runlevel 1 在 /etc/rc.d/rc1.d/ l2:2:wait:/etc/rc.d/rc 2 <==runlevel 2 在 /etc/rc.d/rc2.d/ l3:3:wait:/etc/rc.d/rc 3 <==runlevel 3 在 /etc/rc.d/rc3.d/ l4:4:wait:/etc/rc.d/rc 4 <==runlevel 4 在 /etc/rc.d/rc4.d/ l5:5:wait:/etc/rc.d/rc 5 <==runlevel 5 在 /etc/rc.d/rc5.d/ l6:6:wait:/etc/rc.d/rc 6 <==runlevel 6 在 /etc/rc.d/rc6.d/ # 是否允许按下 [ctrl]+[alt]+[del] 就重新启动的配置项目: ca::ctrlaltdel:/sbin/shutdown -t3 -r now # 底下两个配置则是关於不断电系统的 (UPS),一个是没电力时的关机,一个是复电的处理 pf::powerfail:/sbin/shutdown -f -h +2 "Power Failure; System Shutting Down" pr:12345:powerokwait:/sbin/shutdown -c "Power Restored; Shutdown Cancelled" 1:2345:respawn:/sbin/mingetty tty1 <==其实 tty1~tty6 是由底下这六行决定的。 2:2345:respawn:/sbin/mingetty tty2 3:2345:respawn:/sbin/mingetty tty3 4:2345:respawn:/sbin/mingetty tty4 5:2345:respawn:/sbin/mingetty tty5 6:2345:respawn:/sbin/mingetty tty6 x:5:respawn:/etc/X11/prefdm -nodaemon <==X window 则是这行决定的!
更多信息参考:Linux启动流程 不过这篇文章的技术比较久,CentOS 7.X以后全部采用Systemd,老旧的init不再使用,了解即可。
物理终端
直接接入本机的显示器和键盘设备
虚拟终端
附加在物理终端之上的以软件方式虚拟实现的终端,CentOS默认启动6个虚拟终端。Ctrl+Alt+F1~6切换
设备文件路径:/dev/tty#
Linux是类UNIX系统,都是多用户多进程操作系统。(注意深刻理解多用户的概念)传统UNIX工作方式如下图
图形终端
附加在物理终端之上的以软件方式虚拟实现的终端,但会额外提供桌面环境,这里边的终端称为模拟终端
模拟终端
使用ssh通过网络连接到Linux
设备文件路径
/dev
查看当前终端命令
tty
GUI和CLI
GUI
GNOME:C开发
KDE: C++开发
xface: 轻量级图形界面
CLI
shell程序。
/bin/sh (已经被 /bin/bash 所取代)
/bin/bash (就是 Linux 默认的 shell)
/bin/ksh (Kornshell 由 AT&T Bell lab. 发展出来的,兼容于 bash)
/bin/tcsh (整合 C Shell ,提供更多的功能)
/bin/csh (已经被 /bin/tcsh 所取代)
/bin/zsh (基于 ksh 发展出来的,功能更强大的 shell)
查看我当前用户的是什么shell?
看$SHELL环境变量
查看当前linux支持的shell类型?
看/etc/shells中定义
# /etc/shells: valid login shells /bin/sh /bin/dash /bin/bash /bin/rbash /usr/bin/tmux /usr/bin/screen
每个用户允许使用那些shell在那里定义?
/etc/passwd