如果类 Unix 操作系统没有命令行界面会是什么样子?命令行非常有用,并且在 X 窗口系统中随时可用。事实上,对于许多人来说,它是他们 X 工作环境不可或缺的一部分。
任何 X 程序都可以直接从命令行启动,只需在 xterm 或其他终端窗口的 shell 提示符下键入程序名称即可。大多数应用程序都有一组非常丰富的命令行“选项”,例如背景颜色、字体、几何形状(屏幕位置)等等。命令行选项会覆盖编译时默认值或其他系统启用的“资源”。
许多传统的 X 程序将对命令行选项使用相同的基本名称。所有使用 MIT X Toolkit Intrinsics (Xt) 编写的应用程序(例如 XFree86 附带的那些)都会自动接受以下选项。一些非 Xt 应用程序也使用这些选项,或类似的选项。例如,“geometry” 几乎是一个普遍接受的选项。
此选项指定要使用的 X 服务器显示器。这通常用于应用程序在一个系统上运行,并在另一个系统上显示的情况。应用程序需要知道在哪里显示。有时也可以通过设置 "$DISPLAY" 变量来实现,该变量使用相同的语法。
窗口的初始大小和位置,格式如下宽度 x 高度 +水平偏移量 +垂直偏移量或+水平偏移量 -垂直偏移量。请注意,如果您输入负的水平或垂直偏移量,窗口将从屏幕的右侧或底部向后计数放置,而不是从左上角开始。
用于在窗口中显示文本的字体(请参阅下面的字体部分)。
用于窗口背景的颜色。通常这是一个“颜色名称”(见下文)。
用于窗口前景色(即字体等)的颜色。
用于指定将在此名称下找到此应用程序的资源(例如,在.Xdefaults)中指定的)。这对于区分同一应用程序的不同调用很有用。例如,可以为两个 xterm “命名”不同的名称,以便它们可以根据资源数据库中指定的名称继承不同的资源。
这是用于窗口在显示器上的标题,通常由窗口管理器使用,以在窗口顶部放置描述性标题。不要与 “-name” 选项混淆。
以图标化状态打开窗口。
此选项指定资源名称和值,以覆盖可能已设置的任何默认值(即通过.Xresources或类似的文件)。也适用于设置没有显式命令行选项的 X 资源。例如,命令行 “xterm -xrm xterm*background: blue &” 在功能上与 “xterm -bg blue &” 相同。
这些是最值得注意的。还有其他选项。许多程序将有自己额外的特定于应用程序的选项。如今,许多较新的应用程序不一定遵守 Xt 标准,并且将使用它们自己的选项,或其各自工具包提供的选项。退一步说,man 手册是命令语法的良好参考,并且在这里是您的朋友。或者,应用程序将具有 “--usage” 或 “--help” 命令行开关来列出可用选项
$ gnome-terminal --usage Usage: gnome-terminal [-?] [--disable-sound] [--enable-sound] [--espeaker=HOSTNAME:PORT] [--version] [--usage] [--gdk-debug=FLAGS] [--gdk-no-debug=FLAGS] [--display=DISPLAY] [--sync] [--no-xshm] [--name=NAME] [--class=CLASS] [--gxid_host=HOST] [--gxid_port=PORT] [--xim-preedit=STYLE] [--xim-status=STYLE] [--gtk-debug=FLAGS] [--gtk-no-debug=FLAGS] [--g-fatal-warnings] [--gtk-module=MODULE] [--disable-crash-dialog] [--sm-client-id=ID] [--sm-config-prefix=PREFIX] [--sm-disable] [--tclass=TCLASS] [--font=FONT] [--nologin] [--login] [--geometry=GEOMETRY] [-e COMMAND] [-x COMMAND] [--foreground=COLOR] [--background=COLOR] [--solid] [--pixmap=PIXMAP] [--bgscroll] [--bgnoscroll] [--shaded] [--noshaded] [--transparent] [--utmp] [--noutmp] [--wtmp] [--nowtmp] [--lastlog] [--nolastlog] [-t TITLE] [--icon=ICON] [--termname=TERMNAME] [--start-factory-server] [--use-factory] |
迟早,我们大多数人出于某种原因需要访问“命令行”。对于某些人来说,这甚至可能是在 X 窗口系统中工作的常用方式。除了能够从命令提示符启动 X 应用程序外,还有大量程序在 Linux 的 “文本模式”下运行。
这可以通过 “终端模拟器”(例如 xterm)来实现。微软最接近的对应物是所谓的 DOS-box,但相比之下,DOS-box 简直是小菜一碟。Linux 终端支持颜色、完整的鼠标复制/粘贴(以及一些滚轮鼠标)、伪透明和像素图背景、滚动条、菜单以及通常大量其他功能。虽然 xterm 是最著名的此类终端模拟器,但还有许多类似的程序。仅举几例:Eterm、rxvt、aterm、konsole (KDE) 和 gnome-terminal。
在典型用法中,当打开终端模拟器窗口时,会为用户启动一个 shell 以进行交互。几乎所有 Linux 系统的默认 shell 都是 bash shell。因此,当一切都完成时,用户同时与 X 窗口系统、终端和 shell 进行交互。每个都可能有自己的影响。例如,击键如何处理,因为它们从硬件移动到 X 服务器,再到终端,再到 shell,最后回显给用户。
快速简便的终端配置是通过 "$TERM" 变量完成的,该变量通常在用户的 shell 配置文件之一中设置。或者终端本身将具有编译时默认值。此默认值通常为 “xterm”
$ echo $TERM xterm |
通常这已经足够了,因为您的供应商已经以合理的方式设置了它。"$TERM" 变量实际上是对 “termcap” 数据库(man termcap)中的条目的引用,该数据库通常安装为/etc/termcap。除非您正在做一些非常不寻常的事情,否则您可能不需要更改此设置。可以使用 stty 命令(请参阅 man 手册)完成一些额外的终端配置。终端配置实际上超出了本文档的范围。
终端应用程序本身(例如 xterm)也将具有各种配置选项。永久设置最好存储在~/.Xdefaults或类似的文件中,对于那些支持此功能的应用。一般来说,具有 GUI 配置的应用程序(例如 gnome-terminal)将通过其自己的菜单驱动配置进行配置。
此外,您也在与 shell 交互,这也会产生自己的影响,尤其是在 shell 提示符下如何处理击键方面。对于 bash,这可以在~/.inputrc。同样,这超出了本文档的范围,但请查阅本地或在线的 bash(或其他 shell)参考资料。
像 xterm 这样的终端模拟器需要等宽字体。因此,请忘记 TrueType 或 Type 1 字体。