了解Linux系统强大的控制台、终端和shell
如同其他UNIX类系统,Linux本身也是基于命令行的。试试“Ctrl”+“Alt”+“F1”。这就是控制台,算是Linux的本来
面目。至于使用方法,除了多出登录注销外,和前面章节所提到的“终端”差不多。在X-Window出问题或不运行X-Window
的时候,操作主要在这里完成。
Linux在控制台下提供了不止一个终端,支持多用户同时登录,包括在本机同时登录。控制台“Alt”+“Fx”能够切换到
第x个终端。如果需要从X-Window里跳到第x个终端,需要“Ctrl”+“Alt”+“Fx”。
一般地,Linux发行版提供7个虚拟屏幕,1~6号是控制台终端,第7个上面跑X-Window。红旗Linux桌面4.0只
提供了2个控制台终端,第3个跑X-Window,如果需要更多控制台终端,可以修改“/etc/inittab”,找“#Rungettysin
standardrunlevels”一行,下面以数字和“#”开头的6行都是控制台终端说明。以“#”开头的行在大多数配置文件里表示注
释,即该行不生效。把那几个“#”去掉,重新启动后即可获得全部6个控制台终端。
前面提到的“rxvt”,运行时会在图形界面中虚拟一个终端窗口,由于实际功效几乎完全相同,从这里起,本文档中不
论是图形界面下开启的“终端”,还是控制台下登录后的终端,如没有特别说明,均以不带引号的“终端”指代。必要时则以
“虚拟终端”和“控制台终端”区分。
注意,在控制台终端下登录时,“login:”处输入帐号,“password:”处输入口令。同样为安全起见,输入的口令不显
示。控制台终端注销用命令“logout”。在控制台终端启动的后台程序不会因为注销而终止。
前面说过,控制台终端“算是Linux的本来面目”。也只能“算是”,因为各终端里运行的命令行程序并不是终端本身,
更不是Linux本身。像X-Window一样,那个命令行程序实质上也是个外围程序,叫“shell”。
“shell”,壳。从名字看,也许你已经猜到一些东西。不错,它包含了用户界面功能,负责接收使用者输入的东西,
翻译后发送给Linux内核处理。如果有输出信息,它也会把输出信息显示出来。相对DOS而言,shell就相当于
“”。
shell同样能进行由几个命令串成的“批处理”。与“”不同,shell的功能要强大许多。一个功能稍强的
shell脚本,已经具备高级语言的语法结构,因此编写shell脚本在很多情况下也被看作是编程。
一般情英语儿歌简单易学 况下,在控制台终端登录或在图形界面下开启“终端”,默认都会启动一个shell来接待使用者。
可以在shell的命令行里启动另外一个shell。退出当前shell的通用命令是“exit”。如果当前使用的shell正是控制台
登录后启动的,则“exit”等效于“logout”。
shell中启动的后台程序不会因正常退出而终止。所谓非正常退出,指强行杀掉这个shell;在图形界面下用“打叉”
方式关闭终端也算强行终止一个shell。
shell有很多种,各有特色。目前使用比较广泛的是shell是“bash”,主要的Linux发行版均以其作为默认的shell。
“bash”和其他主流shell都支持一次输入多个命令,支持启动后台程序。如果要依次执行多个命令,命令间用“;”隔开;如
果要让这个程序在后台运行,在命令后面加“&”。
作者:ubuntu2009发布日期:2009-3-06
学习了
作者:trz420发布日期:2009-3-06
还是有点晕,不过非常感谢
作者:litkt发布日期:2009-3-06
终端和控制台都不是个人电脑的概念,而是多人共用的小型中型大型计算机上的概念.
一台主机,连很多终端,终端为主机提供了人机接口,每个人都通过终端使用主机的资源.终端有字符哑终端和图形终端两
种.
控制台是另一种人机接口,不通过终端与主机相连,而是通过显示卡大面 -显示器和键盘接口分别与主机相连,这是人控制主
机的第一人机接口.
话回到个人计算机上,个人计算机只有控制台,没有终端.当然愿意的话,可以在串口上连一两台字符哑终端.但是linux
偏要按POSIX标准把个人计算机当成小型机来用,
那么就在控制台上通过getty软件虚拟了六个字符哑终端(数量可以在/etc/inittab里自己调)和一个图型终端,在虚拟图形
终端中又可以通过软件(如rxvt)再虚拟无限多个虚拟字符哑终端.记住,这全是虚拟的,用起来一样,但实际上并不是.
所以在个人计算机上,只有一个实际的控制台,没有终端,所有终端都是在控制台上用软件模拟的.
要把个人计算机当主机再通过串口或网卡外连真正的物理终端也可以,但由于真正的物理终端并不比个人计算机本身便
宜,一般没有人这么做.
作者:wofe_1999发布日期:2009-3-07
学习
作者:相思爱文发布日期:2009-3-09
对个人来说,一般文章中,控制台就是指按Ctrl+Alt+F1后显示的黑白字符界面;终端就是能输入入命令并显示结果的
shell界面(包括桌面虚拟终端和控制台终端)。
我这样说并不准确,可以这样理解。读写文章时以这个为标准就行了。
作者:ahsjc发布日期:2009-6-14
支持..
作者:gates123发布日期:2009-6-19
哦,原来如此,终于明白了。
作者:pipiwing发布日期:2009-6-19
学习了~
终端(terminal,或者叫物理终端):
是一种设备,不是一个程序,一般说的就是能提供命令行用户界面的设备,
典型的是屏幕和键盘,或其他的一些物理终端。
虚拟终端:
屏幕和键盘只是一个终端,可能不够用,又不想增加设备投入,就产生了
虚拟终端。
gnome-terminal,urxvt,mlterm,xterm等等:
是一个程序,职责是模拟终端设备,和虚拟终端的区别表面上在于它以
GUI形式的窗口出现,内部则是程序结构和系秋天里 统控制结构有所不同,但本
质上差不多。
控制台(console):
显示系统消息的终端就叫控制台,Linux默认所有虚拟终端都是控制台,
都能显示系统消息。
但有时专指CLI下的模拟终端设备的一个程序,和gnome-terminal,urxvt,
mlterm,xterm等相同,只是CLI和GUI界面的区别。一般console有6
个,tty1-6,CTRL+ALT+fn切换。还没听说过怎么换console
shell是一个抽象概念,shell的一切操作都在计算机内部,负责处理人
机交互,执行脚本等,是操作系统能正常运行的重要组成部分
bash,ash,zsh,tcsh等是shell这个抽象概念的一种具体的实现,都是
一个程序,都能生成一个进程对象。
如果想换shell的程序,可以修改/etc/passwd,把里面的/bin/bash换成
你想要的shell,或者用chsh命令来切换
shell与终端的关系:shell把一些信息适当的输送到终端设备,同时还
接收来自终端设备的输入。一般每个shell进程都会有一个终端关联,也
可以没有。
当然,还有一些不同的见解,我认为这个总结不错,仅供参考!
另外在wikipedia上也讲到:
字符程序<--->虚拟终端<--->图像显示shell<--->xterm<--->X11
可见xterm的确是所谓的“虚拟终端”!
使用linux已经有一段时间,却一直弄不明白这几个概念之间
的区别。虽然一直在用,但是很多概念都感觉模糊不清,这样不上
不下的状态实在令人不爽。下面就澄清一下这些概念。
这些概念本身有着非常浓厚的历史气息,随着时代的发展,他
们的含义也在发生改变,它们有些已经失去了最初的含义,但是它
们的名字却被保留了下来。
控制台(Console)
控制台(Console)是物理设备,用于输入输出,它直接连接在计
算机上,是计算机系统的一部分。计算机输出的信息会显示在控制
台上,例如BIOS的输出,内核的输出。
终端(Terminal)
终端(Terminal)也是一台物理设备,只用于输入输出,本身没
有强大的计算能力。一台计算机只有一个控制台,在计算资源紧张
的时代,人们想共享一台计算机,可以通过终端连接到计算机上,
将指令输入终端,终端传送给计算机,计算机完成指令后,将输出
传送给终端,终端将结果显示给用户。
虚拟控制台(VirtualConsole),虚拟终端(VirtualTerminal)
虚拟控制台(VirtualConsole)和虚拟终端是一样的。我们只有
一台终端(物理设备),这是我们与计算机之间的用户接口。假如
有一天,我们想拥有多个用户接口,那么,一方面我们可以增加终
端数目(物理设备),另一方面,还可以在同一台终端(物理设备)
上虚拟出多个终端,它们之间互相不影响,至少看起来互相不影响。
这些终端就是虚拟终端。
在Ubuntu中,我们按下Ctrl+Alt+Fx时,会进入第x个虚拟终
端,一共有七个虚拟终端,其中第七个虚拟终端,就是我们默认使
用的图形用户界面。
终端模拟器(TerminalEmulator)
我们知道,终端是一种物理设备,而终端模拟器(Terminal
Emulator),是一个程序,这些程序用来模拟物理终端。图形用户界
面中的终端模拟器一般称为终端窗口(TerminalWindow),我们在
Ubuntu下打开的gnome-terminal就属于此类。
tty
tty的全称是TeleTYpewriter,这就是早期的终端(物理设备),
它们用于向计算机发送数据,并将计算机的返回结果打印出来。显
示器出现后,终端不再将结果打印出来,而是显示在显示器上。但
是tty的名字还是保留了下来。
在Ubuntu中,我们按下Ctrl+Alt+F1时,会进入第1个虚拟终
端,你可以看到屏幕上方显示的tty1。
shell
shell和之前说的几个概念截然不同,之前的几个概念都是与
计算机的输入输出相关的,而shell是和内核相关的。内核为上层
的应用提供了很多服务,shell在内核的上层,在应用程序的下层。
例如,你写了一个helloworld程序,你并不用显式地创建一个进
程来运行你的程序,你把写好的程序交给shell就行了,由shell
负责为你的程序创建进程。
我们在终端模拟器中输入命令时,终端模拟器本身并不解释执
行这些命令,它只负责输入输出,真正解释执行这些命令的,是
shell。
我们平时使用的sh,bash,csh是shell的不同实现。
shsh这个概念本身就有岐义,它可以指shell程序的名字,
也代表了shell的实现。
Thompsonshell是第一个Unixshell,由KenThompso于1971年
在Unix第一版本中引入,shell的程序名即为sh。Bourneshell
作为Thompsonshell的替代,由StephenBourne于1977年在Unix
第七版中引入,它的程序名也是sh。Bour曹雪芹是男是女 neshell不仅仅是一个命
令解释器,更作为一种编程语言,提供了Thompsonshell不具备的
程序控制功能,并随着han和RobPike的The
UNIXProgrammingEnvironment的出版而名声大噪。
cshcsh全称为CShell,由BillJoy在70年代晚期完
成,那时韩束护肤品怎么样 候他还是加州伯克利大学的研究生。tcsh是csh的升级版。
与sh不同,csh的shell脚本,语法接近于C语言。
bashbash是由BrianFox为GNU项目开发的自由软件,
作为Bourneshell的替代品,于1989年发布。是Linux和MacOS
X的默认shell。bash的命令语法是Bourneshell命令语法的超集,
从ksh和csh借鉴了一些思想。
好了,就写到这里,上面的内容是我参考维基百科后写下的,不保
证完全正确,下面还提供了一些资料,如果有兴趣可以阅读一下。
扩展阅读
1.
Whatistheexactd漫天星 ifferencebetweena
'terminal',a'shell',a'tty'anda'console'?
2.
shell,bash,zsh,console,terminal到底是什么意
思,它们之间又是什么关系?
3.
4.
shell、控制台、终端的区别
Whyisavirtualterminal“黑提子 virtual”,and
what/why/whereisthe“real”terminal?
本文发布于:2023-04-12 07:20:39,感谢您对本站的认可!
本文链接:https://www.wtabcd.cn/zhishi/a/168125523943916.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文word下载地址:图形终端.doc
本文 PDF 下载地址:图形终端.pdf
留言与评论(共有 0 条评论) |