zoukankan      html  css  js  c++  java
  • stty

      stty(settty,设置tty)命令用于检查和修改当前注册的终端的通信参数。UNIX系统为键盘的输入和终端的输出提供了重要的控制手段,可以通过stty命令对特定终端或通信线路设置选项。

    1.命令格式:

      stty [-F device] [--file=device] [SETTING]

      stty [-F device] [--file=device] [-a|--all]

      stty [-F device] [--file=device] [-g|--save]

    2.功能说明:

      改变并打印终端行设置。

    3.命令参数:

      -a或--all 以可读的格式打印当前的所有设置

      -g或--save 以终端可读的格式打印当前的所有设置

      -F或--file 打开指定的设备,并用此设备作为输入来代替标准输入

      --help 显示帮助并退出

      --version 显示版本信息并退出

      说明:选项-在SETTING之前使用这些选项将被视为无效 星号*表明是非POSIX设置.以下是一些系统定义了的     

    特殊字符:

      * dsusp CHAR CHAR表示输入满时,发一个停止信号给终端

      eof CHAR  CHAR表示一个文件结束 (结束输入)

      eol CHAR  CHAR表示当前行结束

      * eol2 CHAR CHAR是另一个表示结束当前行的字符

      erase CHAR  CHAR表示擦除最后一个输入字符

      intr CHAR CHAR表示发一个中断信号

      kill CHAR CHAR表示擦除当前行

      * lnext CHAR CHAR表示输入下一个字符

      quit CHAR CHAR表示发出一个退出信号

      * rprnt CHAR CHAR表示刷新当前行

      start CHAR CHAR表示在停止输出后重新开始输出

      stop CHAR CHAR表示停止输出

      susp CHAR CHAR表示发送一个终端停止信号

      * swtch CHAR CHAR表示切换到不同的外壳层

      * werase CHAR CHAR表示擦除已经输入的最后一个单词

    特殊设置

      N 把输入和输出的波特率设为N

      * cols N 通知内核终端有N列

      * columns N 与cols N 相同

      ispeed N 设置输入速度为N

      * line N 用行约束规则N

      min N 用 -icanon, 设置一次完整的读操作最小为N个字符

      ospeed N 设置输出速度为N

      * rows N 通知内核终端有N行

      * size 根据内核打印出终端的行数和列数

      Speed 打印出终端的速度

      time N 同时用 -icanon, 设置读超时为十分之N秒

    控制设置

      [-]clocal 关闭解调器的控制信号

      [-]cread 允许接收输入

      * [-]crtscts 允许 RTS/CTS 的握手

      csN 把字符长度设为N, N 为[5..8]

      [-]cstopb 对每字符使用两个停止位 (一个带有 `-')

      [-]hup 当最后一个进程关闭终端后,发一个挂起信号

      [-]hupcl 同 [-]hup

      [-]parenb 在输出中产生奇偶校验位,并要求在输入中也有奇偶校验位

      [-]parodd 设置奇校验 (偶校验用 `-')

    输入设置:

      [-]brkint 暂停并产生中断信号

      [-]icrnl 将回车解释为换行

      [-]ignbrk 忽略中断信号

      [-]igncr 忽略回车符

      [-]ignpar 忽略有奇偶校验错的字符

      * [-]imaxbel 对一个字符产生嘟叫,但不刷新已满的输入缓冲区

      [-]inlcr 将换行解释为回车

      [-]inpck 打开输入奇偶校验

      [-]istrip 清除输入字符的高位(第8位)

      * [-]iuclc 将大写字符转换成小写字符

      * [-]ixany 使任何字符都重新开始输出(而 不仅仅是重新输出字符能实现此功能)

      [-]ixoff 打开发送开始/停止字符的开关

      [-]ixon 打开XON/XOFF的流量控制

      [-]parmrk 标记奇偶校验错误 (使用255-0-character 字符序列)

      [-]tandem 同 [-]ixoff

    输出设置:

      * bsN 回退延迟, N 为 [0..1]

      * crN 回车延迟, N 为 [0..3]

      * ffN 换页延迟, N 为 [0..1]

      * nlN 换行延迟, N 为 [0..1]

      * [-]ocrnl 将回车解释为换行

      * [-]ofdel 使用删除字符来填充,而不是用空字符填充

      * [-]ofill 使用填充字符,不使用定时延迟

      * [-]olcuc 将小写字符转换成大写

      * [-]onlcr 将换行解释为回车-换行

      * [-]onlret 换行执行一次回车

      * [-]onocr 不在第一列打印回车

      [-]opost postprocess 输出

      * tabN 水平tab键延迟, N 为 [0..3]

      * tabs 同tab0

      * -tabs 同tab3

      * vtN 垂直方向tab键延迟。。。, N 为 [0..1]

    本地设置:

      [-]crterase 将擦除字符显示为:退格-空格-退格

      * crtkill 根据echoprt和echoe的设置去除所有行

      * -crtkill 根据echoctl和echok设置去除所有行

      * [-]ctlecho 在头部符号中显示控制字符'^c')

      [-]echo 显示输入字符

      * [-]echoctl 同 [-]ctlecho

      [-]echoe 同[-]crterase

      [-]echok 在一个杀死字符后显示一个换行

      * [-]echoke 同 [-]crtkill

      [-]echonl 即使不显示其它字符也换行

      * [-]echoprt 向后显示在 '' 和 '/'之间的擦除字符

      [-]icanon 打开 erase, kill, werase, 和 rprnt 这些特殊字符

      [-]iexten 打开 非POSIX 特殊字符

      [-]isig 打开中断,退出和挂起这些特殊字符

      [-]noflsh 在中断和退出这些特殊字符后禁止刷新

      * [-]prterase 同 [-]echoprt

      * [-]tostop 停止试图写终端的后台作业

      * [-]xcase 与icanon同时使用, 表示用`'退出大写状态

    综合设置:

      * [-]LCASE 同 [-]lcase

      cbreak 同 -icanon

      -cbreak 同 icanon

      cooked 同 brkint ignpar istrip icrnl ixon opost isig icanon, eof 和 eol字符被设为默认值

      -cooked 同 raw

      crt 同 echoe echoctl echoke

      dec 同 echoe echoctl echoke -ixany intr ^c erase 0177 kill ^u

      * [-]decctlq 同 [-]ixany

      ek 将擦除,杀死字符设为它们的默认值

      evenp 同 parenb -parodd cs7

      -evenp 同 -parenb cs8

      * [-]lcase 同 xcase iuclc olcuc

      Litout 同 fB-parenb -istrip -opost cs8

      -litout 同 parenb istrip opost cs7

      Nl 同 -icrnl -onlcr

      -nl 同 icrnl -inlcr -igncr onlcr -ocrnl -onlret

      Oddp 同 parenb parodd cs7

      -odd 同 -parenb cs8

      [-]parity 同 [-]evenp

      pass8 同 -parenb -istrip cs8

      -pass8 同 parenb istrip cs7

      Raw 同 -ignbrk -brkint -ignpar -parmrk -inpck -istrip -inlcr -igncr-icrnl -ixon -ixoff -iuc lc -ixany -imaxbel -opost -isig -icanon-xcase min 1 ti me 0

      -raw 同 cooked

      Sane 同 cread -ignbrk brkint -inlcr -igncr icrnl -ixoff -iuclc -ixanyimaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0cr0 tab0 bs0 vt0 ff 0 isig icanon iexten echo echoe echok -echonl-noflsh -xcase -tostop -echoprt echoctl echoke, 所有特殊字符 使用缺省值.

     

    4.使用实例:

      实例1:查看当前注册终端的设置情况

    $ 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命令中正确书写相应选项。如命令

      实例2:将流控制设置为OFF

        $ stty -ixon

      实例3:将流控制设置为ON

        $ stty ixon

      实例4:同时设置多个选项

        $ stty ixon 1200

      说明:

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

      当选项的列表较长时,应当小心所做的修改造成会话的混乱。典型的情况下,终端在设置不正确时完全不能工作。经常出现的现象是列输出显示或用户的击键不能被shell正确接受。有时NEWLINE可能只显示或走一行但不回行,即用户输入的NEWLINE符不能被shell正确读取。建立新注册标识的过程通常建立了正确的stty选项,在日常使用中很少需要修改。但如果变量TERM的设置不正确或用户希望使用新的终端或通信渠道(如局域网),则需要修改stty的选项。如果你在某个机器中注册后终端操作正常,但后来因故发生了混乱,那么最佳的解决方法是先注销然后再向系统注册。因为注册时系统会重新设置相应选项。还有一种不太严格的解决办法是:

      实例5:命令sane最常出现在大多数终端的stty选项的集合中

        $ stty sane

      说明:

      它并不改变通信信道的速率,但当终端发生混乱时,通常能够产生有益的效果。命令sane可能使全屏幕应用程序(如vi)不能正确工作,而且在设置了选项sane之后,如果不能解决任何问题,就应立即注销,然后再注册。如果终端在注册后依然不能正确工作,用户的注册可能是不成功的。如果终端已经混乱,NEWLINE键不能结束命令行,可以用CTRL-J代替NEWLINE直到用户执行sttysane。此时,再用CTRL-J终止stty sane,使系统恢复正常。

      1.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还可用于控制一些具有特殊控制功能的键。系统可能已经使用CTRL-D作为文件结束符,但你可能喜欢使用CTRL-C。因此可以使用stty命令改变之:

      实例5:

        $ stty eof c

      说明:

      其中c可以是你喜欢的其它特殊控制字符,可以直接输入控制字符,在其前面冠以反斜线和脱字符( ^)。

      实例6:将CTRL-C设置为文件结束符

      $ stty eof ^c

      说明:

      这种语法形式还可以用于修改删除符(通常为退格键BackSpace)和中断符(通常为DEL键)。若希望将删除符改为BACKSPACE,可以使用下列命令:

      实例7:修改删除符(通常为退格键BackSpace)

        $ stty erase ^h

      说明:

      这种语法形式还可以用于中断符(通常为DEL键)。可以设置一个会话期,使得当自己键入一个退格键时,系统用退格、删除和退格序列响应。此时可以看到用退格键覆盖的字符从显示中消失了,这样更符合计算机的惯例。

      说明:

      本命令处理连接到标准输入的终端行.如不带参数,则输出波特率, 行的约束规则,以及与健全 的stty相背离的设置.在设置中,CHAR 是逐字读取的, 或是象 ^c, 0x37, 0177 或127这样的 编码; 特殊值 ^-或未定义被用来禁止特殊字符.

     

  • 相关阅读:
    Matlab画图-非常具体,非常全面
    PostgreSQL代码分析,查询优化部分,pull_ands()和pull_ors()
    Windows内核
    [WebGL入门]十,矩阵计算和外部库
    HOG特征-理解篇
    hdu 5035 概率论
    Hibernate对象持久化框架
    Thinkpad X200 屏幕备案
    64地点 Windows 8/7 根据系统 32地点PLSQL 耦合 64 地点 Oracle 11g
    阐述php(四) 流量控制
  • 原文地址:https://www.cnblogs.com/skydragon/p/7095073.html
Copyright © 2011-2022 走看看