Unix stty命令详解
admin
2023-02-04 11:00:03
0

UNIX系统的命令很多,下面讲解stty. 该命令是一个用来改变并打印终端行设置的常用命令。


1、stty(set tty,设置tty)命令用于检查和修改当前注册的终端的通信参数。


UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。



可以在stty命令中使用-a查看当前注册终端的设置情况。


$ stty -a


Speed 9600 baud; line =0;intr= DEL;quit = ^;erase = ^h;kill =^U; eof = ^d;start=^q;stop=^s


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


-ignbrk brkint ignpar -parmrk -inpck istrip -inlcr -igncr icrnl -iuclc


ixon ixany -ixoff


isig icanon -xcase echo echoe echok -echonl -noflsh


opost -olcuc onlcr -ocrnl -onocr onlret ofill ofdel tab3


需要时,这里显示的各种选择都可以重新配置。每种终端选项都有自己的名字(如ixon),其中大多数要么被设置要么被清除。在stty中相应选项前冠以负号(-),该选项被清除(禁止);如果无负号,该选项被设置。



当希望修改各选择的值时,应在stty命令中正确书写相应选项。如命令


$ stty -ixon



将流控制设置为OFF,而命令


$ stty ixon



则将其置为ON。在stty命令中可以同时设置多个选项:


$ stty ixon 1200


该命令将终端设置为1200波特,并将流控制置为ON。


当选项的列表较长时,应当小心所做的修改造成会话的混乱。典型的情况下,终端在设置不正确时完全不能工作。经常出现的现象是列输出显示或用户的击键不能被shell正确接受。有时NEWLINE可能只显示或走一行但不回行,即用户输入的NEWLINE符不能被shell正确读取。建立新注册标识的过程通常建立了正确的stty选项,在日常使用中很少需要修改。但如果变量TERM的设置不正确或用户希望使用新的终端或通信渠道(如局域网),则需要修改stty的选项。



如果你在某个机器中注册后终端操作正常,但后来因故发生了混乱,那么最佳的解决方法是先注销然后再向系统注册。因为注册时系统会重新设置相应选项。还有一种不太严格的解决办法是:


$ stty sane



命令sane最常出现在大多数终端的stty选项的集合中。它并不改变通信信道的速率,但当终端发生混乱时,通常能够产生有益的效果。命令sane可能使全屏幕应用程序(如vi)不能正确工作,而且在设置了选项sane之后,如果不能解决任何问题,就应立即注销,然后再注册。如果终端在注册后依然不能正确工作,用户的注册可能是不成功的。


如果终端已经混乱,NEWLINE键不能结束命令行,可以用CTRL-J代替NEWLINE直到用户执行stty sane。此时,再用CTRL-J终止stty sane,使系统恢复正常。




stty命令的几项主要选项功能为:


选项parenb使终端进行奇偶校验,-parenb则是禁止校验;


选项cs5、cs6、cs7和cs8分别将字符大小设为5、6、7和8比特;


选项300、600、1200、2400、4800、9600和19200设置波特率;


cstopb和-cstopb分别设置两个或一个停止位;


tabs使系统使用制表符而不是空格序列,因此减少了输出量,选项-tabs仅使用空格,当终端不能正确处理制表符(tab)时应使用该项。





2、stty还可用于控制一些具有特殊控制功能的键。


1)在命令行下,禁止输出大写的方法


stty iuclc #开启


stty -iuclc #恢复



2)在命令行下禁止输出小写


stty olcuc #开启


stty -olcuc#恢复



3)打印出终端的行数和列数


stty size



4)改变ctrl+D的方法:


系统可能已经使用CTRL-D作为文件结束符,但你可能喜欢使用CTRL-C。


stty eof "string"


如:$ stty eof ^c


按下CTRL-C就显示为^c. 可以直接输入控制字符,在其前面冠以反斜线和脱字符( ^)。系统默认是ctrl+D来表示文件的结束, 通过这种方法,可以改变!



5)屏蔽显示


stty -echo #禁止回显


stty echo #打开回显


测试方法:


stty -echo;read;stty echo;read



6)忽略回车符


stty igncr #开启


stty -igncr#恢复



7)恢复使用退格键


$ stty erase ^h


注:按下Backspace就出现了^h,


solaris系统默认是不支持Backspace,用这个命令改后就能正常使用了,方便多了。



8) 可以设置一个会话期,使得当自己键入一个退格键时,系统用退格、删除和退格序列响应。此时可以看到用退格键覆盖的字符从显示中消失了,这样更符合计算机的惯例。使用命令


$ stty echo


可使这一特性设置为ON。


终端方式及其管理是UNIX系统中比较困难的内容之一,系统的用户手册中有stty选项的全部清单。在进行尝试之前,应当查阅手册,仔细分析,以免给你的工作带来麻烦。


oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html

相关内容

热门资讯

德国总理:美国正在被伊朗羞辱 德国之声4月27日报道,德国总理默茨在访问一所学校时表示,在当前的持续冲突中,伊朗领导层正试图羞辱美...
理响中国|“长”歌以行,风云激... 光阴如梭,东方潮阔。这里是中国的长三角,世界的长三角。无论过去、现在还是未来,这片土地都因时代而生,...
白宫:特朗普及其国安团队开会讨... 新华社华盛顿4月27日电 美国白宫新闻秘书莱维特27日在记者会上证实,总统特朗普及其国家安全团队当天...
人民日报刊文:日本放开杀伤性武... 日本放开杀伤性武器出口推高地缘冲突风险(国际论坛)常思纯《人民日报》(2026年04月28日 第 0...
医疗保障法草案二审:明确生育保... 满足多样化健康保障需求本报记者 彭 波4月27日,医疗保障法草案二审稿提请十四届全国人大常委会第二十...
天津一景区发生自转旋翼机事故1... 澎湃新闻记者 吕新文中国民用航空华北地区管理局4月22日公布《豪客通航“10•1”天津长芦汉盐旅游区...
卡塔尔埃米尔与美国总统特朗普通... 当地时间24日,卡塔尔埃米尔塔米姆与美国总统特朗普通电话,重点就中东地区局势以及伊朗与美国谈判问题交...
男子30年前被扣押2859克黄... 澎湃新闻记者 王鑫家住辽宁省大连市的潘永嘉近日向澎湃新闻反映称,三十年前,他在大连周水子机场被盖州市...
商务部:取消反制欧盟两家金融机... 中华人民共和国商务部令二〇二六年 第1号鉴于欧盟已取消对中国两家金融机构的制裁措施,现公布《关于取消...
过去24小时共有5艘船只通过霍... 总台记者当地时间24日获悉,过去24小时内,共有5艘船只通过霍尔木兹海峡,其中包括一艘伊朗油轮。(总...