文档章节

linux 终端机的环境配置

拉普兰德
 拉普兰德
发布于 2015/11/12 13:16
字数 1555
阅读 13
收藏 0
点赞 0
评论 0

终端机的环境配置: 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 『暂停』目前的命令



© 著作权归作者所有

共有 人打赏支持
拉普兰德
粉丝 1
博文 35
码字总数 51254
作品 0
郑州
程序员
Linux技术学习:怎么查看进程 ps

要对进程进行监测和控制,首先必须要了解当前进程的情况,也就是需要查看当前进程,而ps命令就是最基本同时也是非常强大的进程查看命令.使用该命令可以确定有哪些进程正在运行和运行的状态、进程...

长沙千锋 ⋅ 05/03 ⋅ 0

Ubuntu 17.04+GTX1080Ti 安装辛酸之路

选择“USB:Generic Flash Disk”, 回车Enter,在按e键,可进入到Ubuntu选择安装界面 选择“Install Ubuntu”,并按F6(Other Options),出现可编辑内容 "Boot Options ed boot=... initrd...

JungleKing ⋅ 04/28 ⋅ 0

运维工程师必会的109个Linux命令(4)

点击链接加入QQ群 522720170(免费公开课、视频应有尽有):https://jq.qq.com/?wv=1027&k=5C08ATe 1 进程管理 1.1 crontab 1.1.1 功能说明 设置计时器。 1.1.2 语法 crontab [-u ][配置文件...

小强测试帮 ⋅ 05/22 ⋅ 0

关于ansible远程执行的环境变量问题(login shell & nonlogin shelll)

问题 ansible调用playbook远程mvn执行打包时发现执行出错,找不到。 我们的写在中,登录时可以正常执行打包并打印。 排查过程 在playbook中执行,为空 在playbook中添加,同时在远端服务器登...

银月光海 ⋅ 06/01 ⋅ 0

交叉编译安装ARM平台上的Qt

by 大梦烟云 大大梦烟云 一、宿主机环境搭建: 编译需要x11库的支持,在Ubuntu下安装命令: sudo apt-get install libx11-dev libxext-dev libxtst-dev 二、下载源码包:qt-everywhere-opens...

assert__line__ ⋅ 05/08 ⋅ 0

从 Unix 到 Linux 这一段历史

为什么大家常常会说,Linux是很稳定的一套操作系统呢?这是因为,Linux他有个老前辈,那就是Unix家族!有这个前辈的提携,让Linux这个小老弟很快的就成为一套稳定而优良的操作系统啦!所以,...

qq_42191392 ⋅ 05/12 ⋅ 0

pycharm远程linux开发和调试代码

pycharm是一个非常强大的python开发工具,现在很多代码最终在线上跑的环境都是linux,而开发环境可能还是windows下开发,这就需要经常在linux上进行调试,或者在linux对代码进行编写,而pyc...

xingfei ⋅ 06/14 ⋅ 0

QGIS PYTHON 开发环境

QGIS一般可以使用C++和PYTHON两种语言进行扩展开发,而PYTHON相对C++开发具有可移植性、易于学习、应用广泛、开发效率高等优势。利用PYTHON开发会大大提高开发效率降低开发成本,降低开发难度...

GIS开源 ⋅ 04/26 ⋅ 0

微软HPC群集添加Linux计算节点

HPC群集系统中计算资源的管理是重要的一块,如果能够实现计算作业可以在异构操作系统上面协同运作,无疑将是一大亮点,微软HPC pack自2012 upate3开始,支持本地linux作为计算节点,微软官网...

老收藏家 ⋅ 04/28 ⋅ 0

CentOS 7 安装配置 mongodb 3.0.7

CentOS 7 安装配置 mongodb 3.0.7 安装环境 VMware 12 安装的 CentOS 7 x64 mongodb-linux-x8664-3.0.7.tgz 使用的用具xshell5,xftp5 安装配置 新建用户和用户组mongodb 通过xftp上传mongo...

lizer2016 ⋅ 2015/11/20 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

容器之重命名镜像

使用docker tag命令来重命名镜像名称,先执行help,查看如何使用如下 mjduan@mjduandeMacBook-Pro:~/Docker % docker tag --helpUsage:docker tag SOURCE_IMAGE[:TAG] TARGET_IMAGE[:TA...

汉斯-冯-拉特 ⋅ 10分钟前 ⋅ 0

with 的高级用法

那么 上下文管理器 又是什么呢? 上下文管理器协议包含 __enter__ 和 __exit__ 两个方法。with 语句开始运行时,会在上下文管理器对象上调用 __enter__ 方法。with 语句运行结束后,会在上下...

阿豪boy ⋅ 30分钟前 ⋅ 0

使用 jsoup 模拟登录 urp 教务系统

需要的 jsoup 相关 jar包:https://www.lanzous.com/i1abckj 1、首先打开教务系统的登录页面,F12 开启浏览器调试,注意一下 Request Headers 一栏的 Cookie 选项,我们一会需要拿这个 Cook...

大灰狼时间 ⋅ 30分钟前 ⋅ 0

关于线程的创建

转自自己的笔记: http://note.youdao.com/noteshare?id=87584d4874acdeaf4aa027bdc9cb7324&sub=B49E8956E145476191C3FD1E4AB40DFA 1.创建线程的方法 Java使用Thread类代表线程,所有的线程对......

MarinJ_Shao ⋅ 41分钟前 ⋅ 0

工厂模式学习

1. 参考资料 工厂模式-伯乐在线 三种工厂-思否 深入理解工厂模式 2. 知识点理解 2.1 java三种工厂 简单工厂 工厂模式 抽象工厂 2.2 异同点 逐级复杂 简单工厂通过构造时传入的标识来生产产品...

liuyan_lc ⋅ 53分钟前 ⋅ 0

Java NIO

1.目录 Java IO的历史 Java NIO之Channel Java NIO之Buffer Java NIO之Selector Java NIO之文件处理 Java NIO之Charset Java 可扩展IO 2.简介 “IO的历史”讲述了Java IO API从开始到现在的发...

士别三日 ⋅ 57分钟前 ⋅ 0

[Err] ORA-24344: success with compilation error

从txt文本复制出创建function的脚本,直接执行,然后报错:[Err] ORA-24344: success with compilation error。 突然发现脚本的关键字,居然不是高亮显示。 然后我把脚本前面的空格去掉,执行...

wenzhizhon ⋅ 今天 ⋅ 0

Spring Security授权过程

前言 本文是接上一章Spring Security认证过程进一步分析Spring Security用户名密码登录授权是如何实现得; 类图 调试过程 使用debug方式启动https://github.com/longfeizheng/logback该项目,...

hutaishi ⋅ 今天 ⋅ 0

HAProxy基于KeepAlived实现Web高可用及动静分离

前言 软件负载均衡一般通过两种方式来实现: 基于操作系统的软负载实现 基于第三方应用的软负载实现 LVS是基于Linux操作系统实现的一种软负载,而HAProxy则是基于第三方应用实现的软负载。 ...

寰宇01 ⋅ 今天 ⋅ 0

微软自研处理器的小动作:已经开始移植其他平台的工具链

微软将 Windows 10 、Linux 以及工具链如 C/C++ 和 .NET Core 运行时库、Visual C++ 2017 命令行工具、RyuJIT 编辑器等移植到其自主研发的处理器架构 E2。微软还移植了广泛使用的 LLVM C/C++...

linux-tao ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部