linux 终端机的环境配置

终端机的环境配置: stty, set

我们在第五章首次登陆 Linux 时就提过,可以在 tty1 ~ tty6 这六个文字接口的终端机 (terminal) 环境中登陆,登陆的时候我们可以取得一些字符配置的功能喔! 举例来说,我们可以利用退格键 (backspace,就是那个←符号的按键) 来删除命令行上的字符, 也可以使用 [ctrl]+c 来强制终止一个命令的运行,当输入错误时,就会有声音跑出来警告。这是怎么办到的呢? 很简单啊!因为登陆终端机的时候,会自动的取得一些终端机的输入环境的配置啊!

事实上,目前我们使用的 Linux distributions 都帮我们作了最棒的使用者环境了, 所以大家可以不用担心操作环境的问题。不过,在某些 Unix like 的机器中,还是可能需要动用一些手脚, 才能够让我们的输入比较快乐~举例来说,利用 [backspace] 删除,要比利用 [Del] 按键来的顺手吧! 但是某些 Unix 偏偏是以 [del] 来进行字符的删除啊!所以,这个时候就可以动动手脚啰~

那么如何查阅目前的一些按键内容呢?可以利用 stty (setting tty 终端机的意思) 呢! stty 也可以帮助配置终端机的输入按键代表意义喔!

[root@www ~]# stty [-a]选项与参数:
-a  :将目前所有的 stty 参数列出来;范例一:列出所有的按键与按键内容[root@www ~]# stty -aspeed 38400 baud; rows 24; columns 80; line = 0;intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = <undef>; 
eol2 = <undef>; swtch = <undef>; start = ^Q; stop = ^S; susp = ^Z;rprnt = ^R; werase = ^W; lnext = ^V; flush = ^O; min = 1; time = 0;....(以下省略)....

我们可以利用 stty -a 来列出目前环境中所有的按键列表,在上头的列表当中,需要注意的是特殊字体那几个, 此外,如果出现 ^ 表示 [Ctrl] 那个按键的意思。举例来说, intr = ^C 表示利用 [ctrl] + c 来达成的。几个重要的代表意义是:

  • eof   : End of file 的意思,代表『结束输入』。

  • erase : 向后删除字符,

  • intr  : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序;

  • kill  : 删除在目前命令列上的所有文字;

  • quit  : 送出一个 quit 的讯号给目前正在 run 的程序;

  • start : 在某个程序停止后,重新启动他的 output

  • stop  : 停止目前屏幕的输出;

  • susp  : 送出一个 terminal stop 的讯号给正在 run 的程序。

记不记得我们在第五章讲过几个 Linux 热键啊?没错! 就是这个 stty 配置值内的 intr / eof 啰~至于删除字符,就是 erase 那个配置值啦! 如果你想要用 [ctrl]+h 来进行字符的删除,那么可以下达:

[root@www ~]# stty erase ^h

那么从此之后,你的删除字符就得要使用 [ctrl]+h 啰,按下 [backspace] 则会出现 ^? 字样呢! 如果想要回复利用 [backspace] ,就下达 stty erase ^? 即可啊! 至于更多的 stty 说明,记得参考一下 man stty 的内容喔!

除了 stty 之外,其实我们的 bash 还有自己的一些终端机配置值呢!那就是利用 set 来配置的! 我们之前提到一些变量时,可以利用 set 来显示,除此之外,其实 set 还可以帮我们配置整个命令输出/输入的环境。 例如记录历史命令、显示错误内容等等。

[root@www ~]# set [-uvCHhmBx]选项与参数:
-u  :默认不激活。若激活后,当使用未配置变量时,会显示错误信息;
-v  :默认不激活。若激活后,在信息被输出前,会先显示信息的原始内容;
-x  :默认不激活。若激活后,在命令被运行前,会显示命令内容(前面有 ++ 符号)
-h  :默认激活。与历史命令有关;
-H  :默认激活。与历史命令有关;
-m  :默认激活。与工作管理有关;
-B  :默认激活。与刮号 [] 的作用有关;
-C  :默认不激活。若使用 > 等,则若文件存在时,该文件不会被覆盖。范例一:显示目前所有的 set 配置值[root@www ~]# echo $-himBH# 那个 $- 变量内容就是 set 的所有配置啦! bash 默认是 himBH 喔!范例二:配置 "若使用未定义变量时,则显示错误信息" [root@www ~]# set -u[root@www ~]# echo $vbirding-bash: vbirding: unbound variable# 默认情况下,未配置/未宣告 的变量都会是『空的』,不过,若配置 -u 参数,
# 那么当使用未配置的变量时,就会有问题啦!很多的 shell 都默认激活 -u 参数。
# 若要取消这个参数,输入 set +u 即可!范例三:运行前,显示该命令内容。[root@www ~]# set -x[root@www ~]# echo $HOME+ echo /root
/root
++ echo -ne '\033]0;root@www:~'# 看见否?要输出的命令都会先被打印到屏幕上喔!前面会多出 + 的符号!

另外,其实我们还有其他的按键配置功能呢!就是在前一小节提到的 /etc/inputrc 这个文件里面配置。

[root@www ~]# cat /etc/inputrc# do not bell on tab-completion
#set bell-style none

set meta-flag on
set input-meta on
set convert-meta off
set output-meta on.....以下省略.....

还有例如 /etc/DIR_COLORS* 与 /etc/termcap 等,也都是与终端机有关的环境配置文件案呢! 不过,事实上,鸟哥并不建议您修改 tty 的环境呢,这是因为 bash 的环境已经配置的很亲和了, 我们不需要额外的配置或者修改,否则反而会产生一些困扰。不过,写在这里的数据, 只是希望大家能够清楚的知道我们的终端机是如何进行配置的喔! ^_^! 最后,我们将 bash 默认的组合键给他汇整如下:

组合按键运行结果
Ctrl + C终止目前的命令
Ctrl + D输入结束 (EOF),例如邮件结束的时候;
Ctrl + M就是 Enter 啦!
Ctrl + S暂停屏幕的输出
Ctrl + Q恢复屏幕的输出
Ctrl + U在提示字符下,将整列命令删除
Ctrl + Z『暂停』目前的命令



转载于:https://my.oschina.net/u/1379199/blog/529311

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值