16.7. 终端控制命令

影响控制台或终端的命令

tput

初始化终端和/或从 terminfo 数据中获取关于它的信息。各种选项允许某些终端操作:tput clear 等同于 cleartput reset 等同于 reset

bash$ tput longname
xterm terminal emulator (X Window System)
	      

发出 tput cup X Y 将光标移动到当前终端中的 (X,Y) 坐标。通常在之前使用 clear 来擦除终端屏幕。

tput 的一些有趣选项包括

  • bold,用于高强度文本

  • smul,用于在终端中为文本添加下划线

  • smso,用于反相渲染文本

  • sgr0,用于重置终端参数(恢复正常),而不清除屏幕

使用 tput 的示例脚本

  1. 示例 36-15

  2. 示例 36-13

  3. 示例 A-44

  4. 示例 A-42

  5. 示例 27-2

请注意,stty 提供了更强大的命令集来控制终端。

infocmp

此命令打印有关当前终端的大量信息。它引用 terminfo 数据库。

bash$ infocmp
#       Reconstructed via infocmp from file:
 /usr/share/terminfo/r/rxvt
 rxvt|rxvt terminal emulator (X Window System), 
         am, bce, eo, km, mir, msgr, xenl, xon, 
         colors#8, cols#80, it#8, lines#24, pairs#64, 
         acsc=``aaffggjjkkllmmnnooppqqrrssttuuvvwwxxyyzz{{||}}~~, 
         bel=^G, blink=\E[5m, bold=\E[1m,
         civis=\E[?25l, 
         clear=\E[H\E[2J, cnorm=\E[?25h, cr=^M, 
         ...
	      

reset

重置终端参数并清除文本屏幕。与 clear 一样,光标和提示符会重新出现在终端的左上角。

clear

clear 命令只是清除控制台或 xterm 中的文本屏幕。提示符和光标重新出现在屏幕或 xterm 窗口的左上角。此命令可以在命令行或脚本中使用。请参阅 示例 11-26

resize

回显设置$TERM$TERMCAP以复制当前终端的尺寸(维度)所需的命令。

bash$ resize
set noglob;
 setenv COLUMNS '80';
 setenv LINES '24';
 unset noglob;
	        

script

此实用程序记录(保存到文件)控制台或 xterm 窗口中命令行上的所有用户击键。这实际上创建了会话记录。