学习啦>学习电脑>操作系统>Linux教程>

linux stty命令详解

时间: 佳洲1085 分享

  stty命令时linux下的一个命令,那么它有什么用处呢?下面由学习啦小编为大家整理了linux stty命令的相关知识,希望对大家有帮助!

  linux stty命令用途说明

学习啦在线学习网   stty命令用于显示和修改终端行设置(change and print terminal line settings)。

  linux stty命令常用参数

  stty命令不带参数可以打印终端行设置,加上-a参数可以打印得更详细些。

  stty size可以显示终端的大小,即行数和列数。

学习啦在线学习网   stty命令还可以更改终端行的设置,格式如下:

  stty SETTING CHAR

  其中,SETTING可以是如下

学习啦在线学习网   eof : 输入结束,文件结束,默认为Ctrl+D。比如:用cat >file来创建文件时,按Ctrl+D来结束输入。

学习啦在线学习网   erase : 向后删除字符,擦除最后一个输入字符,默认为Ctrl+?。注意默认情况下退格键Backspace不是删除字符。

  intr : 中断当前程序,默认为Ctrl+C。

  kill : 删除整条命令,删除整行,默认为Ctrl+U。

  quit :退出当前程序,默认为Ctrl+\或Ctrl+|。

  start : 启动屏幕输出,默认为Ctrl+Q。

  stop :停止屏幕输出,默认为Ctrl+S。

学习啦在线学习网   susp : terminal stop当前程序,默认为Ctrl+Z。这样当前进程就会变成后台进程了。

  werase:删除最后一个单词,默认为Ctrl+W。

  stty命令还有一些其他用法,如:

  stty -echo 关闭回显。比如在脚本中用于输入密码时。

  stty echo 打开回显。

  linux stty命令使用示例

  示例一 打印终端行设置

学习啦在线学习网   [root@web ~]# stty

  speed 38400 baud; line = 0;

学习啦在线学习网   -brkint -imaxbel

  [root@web ~]# stty -a

学习啦在线学习网   speed 38400 baud; rows 41; columns 132; line = 0;

学习啦在线学习网   intr = ^C; quit = ^\; erase = ^?; kill = ^U; eof = ^D; eol = ; eol2 = ; swtch = ; 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 -cdtrdsr

  -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

学习啦在线学习网   [root@web ~]#

  示例二 打印当前终端的大小(行数和列数)

学习啦在线学习网   [root@web ~]# stty size

  41 132

  示例三 设置退格键Backspace的删除行为

学习啦在线学习网   在默认情况下,我们按退格键Backspace时,会在屏幕上回显^H,而不是把前一个字符删除。比如使用sftp/ftp/sqlplus/ij等命令时,就会碰到这种情况。我们可以使用stty命令把Backspace的行为变成删除前一个字符。

  [root@web ~]# sftp 192.168.6.12

学习啦在线学习网   Connecting to 192.168.6.12...

  root@192.168.6.12's password:

  sftp> get abc^H^H^H^H

  Couldn't stat remote file: No such file or directory

  File "/root" not found.

学习啦在线学习网   sftp> quit

  [root@web ~]#

  [root@web ~]# stty erase ^H

  [root@web ~]# sftp 192.168.6.12

  Connecting to 192.168.6.12...

  root@192.168.6.12's password:

  sftp> get abc

学习啦在线学习网   Couldn't stat remote file: No such file or directory

  File "/root/abc" not found.

学习啦在线学习网   sftp> quit

学习啦在线学习网   [root@web ~]#

  示例四 在vi编辑文件时按Ctrl+Q来结束终端僵死的局面

学习啦在线学习网   [root@web ~]# vi 1.txt

  1

  2

  3

  Ctrl+S

  ~

学习啦在线学习网   注:按了Ctrl+S之后,就会禁止屏幕输出,从而出现终端僵死的情况。

学习啦在线学习网   这个时候,只要按Ctrl+Q就会结束这种局面,因为它会允许屏幕输出。

  Ctrl+Q

学习啦在线学习网   示例五 在bash脚本中与tty命令配合使用

  在下面的脚本中,先取得终端文件名称,以判断脚本是否运行在交互式方式还是在管道方式。

学习啦在线学习网   [plain] view plain copy#!/bin/sh

  CONSOLE_INPUT=$(tty)

学习啦在线学习网   echo "CONSOLE_INPUT=$CONSOLE_INPUT"

学习啦在线学习网   COMMAND_LINE="java -Xmx640m -classpath .:lib/hyjc.jar:lib/log4j-1.2.15.jar:lib/commons-logging-1.1.1.jar:lib/proxool-0.9.0RC3.jar:lib/mysql-connector-java-5.1.10-bin.jar:lib/poi-3.5-ZHY-20091107.jar:lib/jdom-1.1.jar hyjc.sql.DBCLI MhrDB.properties MhrDB"

  if [ "$CONSOLE_INPUT" == "not a tty" ]; then

  $COMMAND_LINE

  elif [ "$(whereis rlwrap)" == "rlwrap:" ]; then

  stty erase ^H

学习啦在线学习网   $COMMAND_LINE

  else

  rlwrap -f jdb.rlwrap $COMMAND_LINE

  fi

linux stty命令详解

stty命令时linux下的一个命令,那么它有什么用处呢?下面由学习啦小编为大家整理了linux stty命令的相关知识,希望对大家有帮助! linux stty命令用途说明 stty命令用于显示和修改终端行设置(change and print terminal line settings)。
推荐度:
点击下载文档文档为doc格式
3581933