📄 00000005.htm
字号:
你可以用滑鼠将它在萤幕上移动,但按滑鼠按钮或键盘都对它无影响。 <BR> <BR> 3. 一个xterm 终端机模拟器的视窗出现在萤幕左上角,当游标移到这个 <BR> 视窗时,会改变成本文游标,(见图 5 - 2),xterm 准备接受你的 <BR> 命令。 <BR> <BR> ┌————————————————┐ <BR> │ │ <BR> │ p48 fig 5.2 │ <BR> │ │ <BR> │ │ <BR> │ │ <BR> │图 5 - 2 xterm 的本文游标 │ <BR> └————————————————┘ <BR> <BR> <BR> 系统启动的画面见图 5 - 3。X现在已被启动,你可以把xterm 这个视 <BR>窗当成一个普通的终端机来使用,执行一些普通的指令,不过它最大的价值 <BR>在让你可以开始执行其它的X程式,我们将於稍後告诉你,现在先来让你了 <BR>解一下X的启始动作做了些什麽。 <BR> <BR> <BR> ┌————————————————┐ <BR> │ │ <BR> │ p49 fig 5.3 │ <BR> │ │ <BR> │ │ <BR> │ │ <BR> │图 5 - 3 系统启动的画面 │ <BR> └————————————————┘ <BR> <BR> <BR>5.1.1 xinit 的内部操作: <BR> <BR> 首先, xinit 启动Xserver程式在你的显示器上执行, server建立一个 <BR>它自己的根视窗, 并把视窗的背景色设定成灰色, 把游标设定成一个大 "X". <BR> <BR> 在server执行的期间, server一直控制著键盘及滑鼠, 这就是你能在萤 <BR>幕上移动游标的原因, 但是因为目前没有任何client程式要求告知键盘和滑 <BR>鼠 "事件",所以server只是追踪滑鼠游标的移动, 而所有其它的键盘或滑鼠 <BR>输入虽然都经过server处理但均被放弃, ( 因为没有client程式有兴趣 ), <BR>这就是按键盘或滑鼠按钮没有反应的原因. <BR> <BR> 接下来, xinit 启动xterm 程式执行, xterm 对server而言是一个client <BR>程式, xterm 要求server建立一个视窗, 而且保持告知在这个视窗中的滑鼠 <BR>和键盘事件, xterm 设定在视窗中执行一个shell , 当指标移至视窗之内便 <BR>准备接受输入. <BR> <BR> 键盘输入被送至shell 就如同在一部真的终端机上输入一般, 从shell <BR>( 及其副程式 )的输出藉著xterm 显示在视窗上, xterm 也接受滑鼠输入, <BR>使得你能设定不同的程式操作参数和进行本文的剪贴 (cut and paste ) . <BR> <BR> 你可以观察到系统执行这些动作的步骤, 例如当在系统启动後, 在xterm <BR>视窗内执行 ps a 命令: <BR> <BR> PID TT STAT TIME COMMAND <BR> 1900 C0 S 0:00 xinit <BR> 1901 C0 S 0:01 X:0 <BR> 1902 C0 S 0:01 xterm -geometry +1+1 -n login -display unix:0 -c <BR> 1903 p1 S 0:00 -sh (csh) <BR> 1904 p1 R 0:00 ps <BR> <BR>以上的显示说明xinit 在主控台(console )显示器上被启动,它初始化server <BR>,X显示为零。接著xterm 在一个虚拟(pseudo)的终端机上执行,xterm 启 <BR>动一个shell 执行,使得它能处理你在xterm 视窗所下的命令。最後,我们执 <BR>行ps命令产生上述的列表。 <BR> <BR> 我们将在第8章讨论更多的xterm 细节, 从现在起, 我们假设xterm 被视 <BR>为一个DEC VT102 的终端机, 我们把重点转移到系统启动之後, 我们能做些什 <BR>麽. <BR> <BR> <BR>5.2 如何执行一些X程式 <BR> <BR> 你目前有一个X server 控制的显示器,一个叫xterm 的client程式,允 <BR>许你输入命令,本节告诉你如何执行其它的X程式。 <BR> <BR> 因为X的client程式和X server 完全独立,所以不需要特别的动作启动 <BR>它们,你可以像执行一般的程式一样执行它们。但是这些client程式需要确实 <BR>知道它们用的是那一个显示器。实际上因为xterm 一开始设定了DISPLAY 环境 <BR>变数,给定了它使用的显示器名称,而其它的client程式用此当作预设显示器 <BR>,因此你不需多做其它的事。 <BR> <BR> <BR>5.2.1 如何执行X的时钟,xclock <BR> <BR> 我们用X的时钟当作一个简单的范例,先确定指标停在xterm 视窗中,然 <BR>後输入命令: <BR> <BR> xclock <BR> <BR>一个小的时钟影像出现在萤幕左上角,覆盖了第一个视窗一部份,如图 5 - 4 <BR> <BR> ┌————————————————┐ <BR> │ │ <BR> │ p51 fig 5.4 │ <BR> │ │ <BR> │ │ <BR> │ │ <BR> │图 5 - 4 xclock 启动後的画面 │ <BR> └————————————————┘ <BR> <BR>现在有三个问题要克服: <BR> <BR> 第一个问题:由於xterm 这个 "终端机" 已经有一个程式(xclock)在执 <BR>行,所以我们无法再输入其它的命令,该怎麽办? <BR> <BR> 唯一的办法就是停掉xclock,但当你按下ctrl-c或DEL 键时,xclock便会 <BR>消失,要克服这种状况,你需要非同步(asynchronously)执行xclock,用命令: <BR> <BR> xclock & <BR> <BR>则目前xterm 至少能接受你输入其它的命令。 <BR> <BR> 第二个问题:如何中止xclock? <BR> <BR> X server 本身没有提供直接的介面中止应用程式,但是有一个叫xkill <BR>的client程式可让你杀掉应用程式,在xterm 视窗内输入xkill 命令便可启动 <BR>这个程式,xkill 会显示一个覆盖性的方形游标(draped box cursor ),见 <BR>图5-5 ,移动这个游标到任何你想杀掉的应用程式的视窗中,碰触左按钮,应 <BR>用程式的视窗会消失且应用程式和xkill 会一起结束,你也会得到如下的讯息: <BR> <BR> xkill:killing creator of resource 0x40004d <BR> XIO:fatal IO error 32 (Broken pipe) on X server "unix:0.0" <BR> after 207 requests (178 known processed) with 0 events remain- <BR> ing. <BR> The connection was probably broken by a server shutdown or kill- <BR> client. <BR> <BR> ┌—————————————————┐ <BR> │ │ <BR> │ p52 fig 5.5 │ <BR> │ │ <BR> │ │ <BR> │ │ <BR> │图 5 - 5 xkill的覆盖性的方形游标 │ <BR> └—————————————————┘ <BR> <BR>如果为了某些缘故你无法进到应用程式的视窗内用xkill 中止它,你通常可以用 <BR>UNIX的办法:找出process 的ID,然後杀掉它,例如: <BR> <BR> $ps a | grep xclock <BR> 1907 p2 I 0:00 xclock <BR> 1909 p2 S 0:00 grep xclock <BR>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -