Chinaunix首页 | 论坛 | 博客
  • 博客访问: 11359
  • 博文数量: 9
  • 博客积分: 230
  • 博客等级: 二等列兵
  • 技术积分: 100
  • 用 户 组: 普通用户
  • 注册时间: 2010-12-27 11:58
文章分类
文章存档

2011年(8)

2010年(1)

我的朋友

分类: LINUX

2011-01-09 16:12:12

stty用来对终端进行设置,下面是转载他人的文章,目的是为了分享大家一起学习!
stty用法
2009-04-28 14:05
stty是一个用来改变并打印终端行设置的常用命令,现介绍几个常用的有趣的用法 :-)
1,在命令行下,禁止输出大写的方法 stty iuclc #开启
stty -iuclc #恢复
:-) 2,在命令行下禁止输出小写
stty olcuc #开启
stty -olcuc#恢复
3,打印出终端的行数和列数
stty size
4,改变ctrl+D的方法:
stty eof "string"
系统默认是ctrl+D来表示文件的结束,而通过这种方法,可以改变! :-) 5,屏蔽显示
stty -echo #禁止回显
stty echo #打开回显
测试方法:
stty -echo;read;stty echo;read
6,忽略回车符
stty igncr #开启
stty -igncr#恢复
最后,介绍一个实例:
一个限时输入的小脚本 #!/bin/ksh
stty -icanon min 0 time 100 while
do
echo "Please input:y/m/d/[ENTER]:" read input
case $input in
y)date +%Y;break;;
m) date +%m;break;;
d) date +%d;break;;
"") date +%Y/%m/%d;break;; . *)echo "wrong!again!";continue;;
esac
done
stty sane











stty - 改变并打印终端行设置
   总览
stty [-F device] [--file=device] [SETTING]...
stty [-F device] [--file=device] [-a|--all]
stty [-F device] [--file=device] [-g|--save]

  描述
quot; Add any additional description here
打印或改变终端属性.
-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
-oddp
同 -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 -ixany imaxbel opost -olcuc -ocrnl onlcr -onocr -onlret -ofill -ofdel nl0 cr0 tab0 bs0 vt0 ff 0 isig icanon iexten echo echoe echok -echonl -noflsh -xcase -tostop -echoprt echoctl echoke, 所有特殊字符 使用缺省值.
本命令处理连接到标准输入的终端行.如不带参数,则输出波特率, 行的约束规则,以及与健全 的stty相背离的设置.在设置中, CHAR 是逐字读取的, 或是象 ^c, 0x37, 0177 或127这样的 编码; 特殊值 ^- 或未定义被用来禁止特殊字符.

阅读(985) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~