程序员开发实例大全宝库

网站首页 > 编程文章 正文

Linux之终端环境设置:stty set(linux终端设置环境变量)

zazugpt 2024-10-21 13:33:55 编程文章 24 ℃ 0 评论

这一节主要介绍两个问题

  1. stty设置快捷键

  2. set设置指令输入输出环境

stty设置快捷键

做过linux运维的朋友们都知道,在终端环境下可操作性很差(不能复制黏贴是不是很蛋疼?),所以快捷键就显得尤其重要,终端下面有六个终端机环境tty1-tty6(切换的快捷键是Alt+F1...Alt+F6),这个功能非常人性化,对多任务作业很有帮助,极大提升运维效率

当我们登录一个tty$时系统会为我们分配好一些默认快捷键,使用stty(set tty缩写)指令

root@ubuntu-3:~# stty -a

speed 38400 baud; rows 58; columns 140; 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;

-parenb -parodd cs8 -hupcl -cstopb cread -clocal -crtscts

-ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr icrnl ixon -ixoff -iuclc -ixany -imaxbel -iutf8

opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff0

isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke

在上面的列表中 intr = ^C 就是我们经常使用的 ctrl+c :终端正在执行的程序,^代表ctrl.介绍空格几个代表性意义:

intr : 送出一个 interrupt (中断) 的讯号给目前正在 run 的程序 (就是终止啰!);

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

erase : 向后删除字符,

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

eof : End of file 的意思,代表“结束输入”。

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

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

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

这些就是linux的热键,都是通过stty指令设置的,经常切换使用windows与linux的朋友们是不是经常会在linux不经意按下ctrl+s,那么在linux中ctrl+s代表什么呢?看上面的列表ctrl+s即指stop = ^S;stop的意思是停止目前屏幕的输出,是不是经常犯这个错误?,使用stty

root@ubuntu-3:~# stty stop ^m #根据自己情况设置,记得改回来

以后按下ctrl+m就是stop功能了,默认ctrl+q是恢复屏幕输出,这样就恢复正常了.

set设置指令输入输出环境

除了stty之外,我们还可以通过set指令设置指令的输入输出环境,例如显示错误信息,记录历史信息

root@ubuntu-3:~# set [-uvCHhmBx]

选项与参数:

-u :默认不启用。若启用后,当使用未设置变量时,会显示错误讯息;

-v :默认不启用。若启用后,在讯息被输出前,会先显示讯息的原始内容;

-x :默认不启用。若启用后,在指令被执行前,会显示指令内容(前面有 ++ 符号)

-h :默认启用。与历史命令有关;

-H :默认启用。与历史命令有关;

-m :默认启用。与工作管理有关;

-B :默认启用。与刮号 [] 的作用有关;

-C :默认不启用。若使用 &gt; 等,则若文件存在时,该文件不会被覆盖。

示例1:显示目前所有的set设置值 set $-

root@ubuntu-3:~# echo $-

set himxBH

示例2:如果执行不存在的命令报错 则set -u

不启用set -u时情况是这样的:

root@ubuntu-3:~# echo $qwer

启用set -u 的情况是这样的

root@ubuntu-3:~# set -u

root@ubuntu-3:~# echo $star

-bash: star: unbound variable

root@ubuntu-3:~#

示例3:指令执行前显示指令内容(shell脚本中通常会开启此功能)

set -x

root@ubuntu-3:~# set -x

root@ubuntu-3:~# ls -al|more

+ ls --color=auto -al

+ more

total 32

如果想要取消已经设置的值只需要set +$即可,例如 set +x

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表