學(xué)習(xí)啦>學(xué)習(xí)電腦>操作系統(tǒng)>Linux教程>

linux stty命令詳解

時間: 佳洲1085 分享

  stty命令時linux下的一個命令,那么它有什么用處呢?下面由學(xué)習(xí)啦小編為大家整理了linux stty命令的相關(guān)知識,希望對大家有幫助!

  linux stty命令用途說明

  stty命令用于顯示和修改終端行設(shè)置(change and print terminal line settings)。

  linux stty命令常用參數(shù)

  stty命令不帶參數(shù)可以打印終端行設(shè)置,加上-a參數(shù)可以打印得更詳細(xì)些。

  stty size可以顯示終端的大小,即行數(shù)和列數(shù)。

  stty命令還可以更改終端行的設(shè)置,格式如下:

  stty SETTING CHAR

  其中,SETTING可以是如下

  eof : 輸入結(jié)束,文件結(jié)束,默認(rèn)為Ctrl+D。比如:用cat >file來創(chuàng)建文件時,按Ctrl+D來結(jié)束輸入。

  erase : 向后刪除字符,擦除最后一個輸入字符,默認(rèn)為Ctrl+?。注意默認(rèn)情況下退格鍵Backspace不是刪除字符。

  intr : 中斷當(dāng)前程序,默認(rèn)為Ctrl+C。

  kill : 刪除整條命令,刪除整行,默認(rèn)為Ctrl+U。

  quit :退出當(dāng)前程序,默認(rèn)為Ctrl+\或Ctrl+|。

  start : 啟動屏幕輸出,默認(rèn)為Ctrl+Q。

  stop :停止屏幕輸出,默認(rèn)為Ctrl+S。

  susp : terminal stop當(dāng)前程序,默認(rèn)為Ctrl+Z。這樣當(dāng)前進(jìn)程就會變成后臺進(jìn)程了。

  werase:刪除最后一個單詞,默認(rèn)為Ctrl+W。

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

  stty -echo 關(guān)閉回顯。比如在腳本中用于輸入密碼時。

  stty echo 打開回顯。

  linux stty命令使用示例

  示例一 打印終端行設(shè)置

  [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 ~]#

  示例二 打印當(dāng)前終端的大小(行數(shù)和列數(shù))

  [root@web ~]# stty size

  41 132

  示例三 設(shè)置退格鍵Backspace的刪除行為

  在默認(rèn)情況下,我們按退格鍵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來結(jié)束終端僵死的局面

  [root@web ~]# vi 1.txt

  1

  2

  3

  Ctrl+S

  ~

  注:按了Ctrl+S之后,就會禁止屏幕輸出,從而出現(xiàn)終端僵死的情況。

  這個時候,只要按Ctrl+Q就會結(jié)束這種局面,因為它會允許屏幕輸出。

  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下的一個命令,那么它有什么用處呢?下面由學(xué)習(xí)啦小編為大家整理了linux stty命令的相關(guān)知識,希望對大家有幫助! linux stty命令用途說明 stty命令用于顯示和修改終端行設(shè)置(change and print terminal line settings)。
推薦度:
點擊下載文檔文檔為doc格式
3581933