1.\" Copyright (c) 1990, 1993, 1994 2.\" The Regents of the University of California. All rights reserved. 3.\" 4.\" This code is derived from software contributed to Berkeley by 5.\" the Institute of Electrical and Electronics Engineers, Inc. 6.\" 7.\" Redistribution and use in source and binary forms, with or without 8.\" modification, are permitted provided that the following conditions 9.\" are met: 10.\" 1. Redistributions of source code must retain the above copyright 11.\" notice, this list of conditions and the following disclaimer. 12.\" 2. Redistributions in binary form must reproduce the above copyright 13.\" notice, this list of conditions and the following disclaimer in the 14.\" documentation and/or other materials provided with the distribution. 15.\" 3. All advertising materials mentioning features or use of this software 16.\" must display the following acknowledgement: 17.\" This product includes software developed by the University of 18.\" California, Berkeley and its contributors. 19.\" 4. Neither the name of the University nor the names of its contributors 20.\" may be used to endorse or promote products derived from this software 21.\" without specific prior written permission. 22.\" 23.\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND 24.\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 25.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE 26.\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE 27.\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 28.\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 29.\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 30.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 31.\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 32.\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 33.\" SUCH DAMAGE. 34.\" 35.\" @(#)stty.1 8.4 (Berkeley) 4/18/94 36.\" $FreeBSD: src/bin/stty/stty.1,v 1.13.2.6 2001/12/14 14:22:09 ru Exp $ 37.\" $DragonFly: src/bin/stty/stty.1,v 1.4 2006/02/10 19:01:09 swildner Exp $ 38.\" 39.Dd April 18, 1994 40.Dt STTY 1 41.Os 42.Sh NAME 43.Nm stty 44.Nd set the options for a terminal device interface 45.Sh SYNOPSIS 46.Nm 47.Op Fl a | Fl e | Fl g 48.Op Fl f Ar file 49.Op operands 50.Sh DESCRIPTION 51The 52.Nm 53utility sets or reports on terminal 54characteristics for the device that is its standard input. 55If no options or operands are specified, it reports the settings of a subset 56of characteristics as well as additional ones if they differ from their 57default values. 58Otherwise it modifies 59the terminal state according to the specified arguments. 60Some combinations of arguments are mutually 61exclusive on some terminal types. 62.Pp 63The following options are available: 64.Bl -tag -width indent 65.It Fl a 66Display all the current settings for the terminal to standard output 67as per 68.St -p1003.2 . 69.It Fl e 70Display all the current settings for the terminal to standard output 71in the traditional 72.Bx 73``all'' and ``everything'' formats. 74.It Fl f 75Open and use the terminal named by 76.Ar file 77rather than using standard input. 78The file is opened using the 79.Dv O_NONBLOCK 80flag of 81.Fn open , 82making it possible to 83set or display settings on a terminal that might otherwise 84block on the open. 85.It Fl g 86Display all the current settings for the terminal to standard output 87in a form that may be used as an argument to a subsequent invocation of 88.Nm 89to restore the current terminal state as per 90.St -p1003.2 . 91.El 92.Pp 93The following arguments are available to set the terminal 94characteristics: 95.Ss Control Modes: 96Control mode flags affect hardware characteristics associated with the 97terminal. 98This corresponds to the c_cflag in the termios structure. 99.Bl -tag -width Fl 100.It Cm parenb Pq Fl parenb 101Enable (disable) parity generation 102and detection. 103.It Cm parodd Pq Fl parodd 104Select odd (even) parity. 105.It Cm cs5 cs6 cs7 cs8 106Select character size, if possible. 107.It Ar number 108Set terminal baud rate to the 109number given, if possible. 110If the 111baud rate is set to zero, modem 112control is no longer 113asserted. 114.It Cm ispeed Ar number 115Set terminal input baud rate to the 116number given, if possible. 117If the 118input baud rate is set to zero, the 119input baud rate is set to the 120value of the output baud 121rate. 122.It Cm ospeed Ar number 123Set terminal output baud rate to 124the number given, if possible. 125If 126the output baud rate is set to 127zero, modem control is 128no longer asserted. 129.It Cm speed Ar number 130This sets both 131.Cm ispeed 132and 133.Cm ospeed 134to 135.Ar number . 136.It Cm hupcl Pq Fl hupcl 137Stop asserting modem control 138(do not stop asserting modem control) on last close. 139.It Cm hup Pq Fl hup 140Same as hupcl 141.Pq Fl hupcl . 142.It Cm cstopb Pq Fl cstopb 143Use two (one) stop bits per character. 144.It Cm cread Pq Fl cread 145Enable (disable) the receiver. 146.It Cm clocal Pq Fl clocal 147Assume a line without (with) modem 148control. 149.It Cm crtscts Pq Fl crtscts 150Enable (disable) RTS/CTS flow control. 151.El 152.Ss Input Modes: 153This corresponds to the c_iflag in the termios structure. 154.Bl -tag -width Fl 155.It Cm ignbrk Pq Fl ignbrk 156Ignore (do not ignore) break on 157input. 158.It Cm brkint Pq Fl brkint 159Signal (do not signal) 160.Dv INTR 161on 162break. 163.It Cm ignpar Pq Fl ignpar 164Ignore (do not ignore) characters with parity 165errors. 166.It Cm parmrk Pq Fl parmrk 167Mark (do not mark) characters with parity errors. 168.It Cm inpck Pq Fl inpck 169Enable (disable) input parity 170checking. 171.It Cm istrip Pq Fl istrip 172Strip (do not strip) input characters 173to seven bits. 174.It Cm inlcr Pq Fl inlcr 175Map (do not map) 176.Dv NL 177to 178.Dv CR 179on input. 180.It Cm igncr Pq Fl igncr 181Ignore (do not ignore) 182.Dv CR 183on input. 184.It Cm icrnl Pq Fl icrnl 185Map (do not map) 186.Dv CR 187to 188.Dv NL 189on input. 190.It Cm ixon Pq Fl ixon 191Enable (disable) 192.Dv START/STOP 193output 194control. 195Output from the system is 196stopped when the system receives 197.Dv STOP 198and started when the system 199receives 200.Dv START , 201or if 202.Cm ixany 203is set, any character restarts output. 204.It Cm ixoff Pq Fl ixoff 205Request that the system send (not 206send) 207.Dv START/STOP 208characters when 209the input queue is nearly 210empty/full. 211.It Cm ixany Pq Fl ixany 212Allow any character (allow only 213.Dv START ) 214to restart output. 215.It Cm imaxbel Pq Fl imaxbel 216The system imposes a limit of 217.Dv MAX_INPUT 218(currently 255) characters in the input queue. 219If 220.Cm imaxbel 221is set and the input queue limit has been reached, 222subsequent input causes the system to send an ASCII BEL 223character to the output queue (the terminal beeps at you). 224Otherwise, if 225.Cm imaxbel 226is unset and the input queue is full, the next input character causes 227the entire input and output queues to be discarded. 228.El 229.Ss Output Modes: 230This corresponds to the c_oflag of the termios structure. 231.Bl -tag -width Fl 232.It Cm opost Pq Fl opost 233Post-process output (do not 234post-process output; ignore all other 235output modes). 236.It Cm onlcr Pq Fl onlcr 237Map (do not map) 238.Dv NL 239to 240.Dv CR-NL 241on output. 242.It Cm ocrnl Pq Fl ocrnl 243Map (do not map) 244.Dv CR 245to 246.Dv NL 247on output. 248.It Cm oxtabs Pq Fl oxtabs 249Expand (do not expand) tabs to spaces on output. 250.It Cm onocr Pq Fl onocr 251Do not (do) output CRs at column zero. 252.It Cm onlret Pq Fl onlret 253On the terminal NL performs (does not perform) the CR function. 254.El 255.Ss Local Modes: 256Local mode flags (lflags) affect various and sundry characteristics of terminal 257processing. 258Historically the term "local" pertained to new job control features 259implemented by Jim Kulp on a 260.Tn Pdp 11/70 261at 262.Tn IIASA . 263Later the driver ran on the first 264.Tn VAX 265at Evans Hall, UC Berkeley, where the job control details 266were greatly modified but the structure definitions and names 267remained essentially unchanged. 268The second interpretation of the 'l' in lflag 269is ``line discipline flag'' which corresponds to the 270.Ar c_lflag 271of the 272.Ar termios 273structure. 274.Bl -tag -width Fl 275.It Cm isig Pq Fl isig 276Enable (disable) the checking of 277characters against the special control 278characters 279.Dv INTR , QUIT , 280and 281.Dv SUSP . 282.It Cm icanon Pq Fl icanon 283Enable (disable) canonical input 284.Pf ( Dv ERASE 285and 286.Dv KILL 287processing). 288.It Cm iexten Pq Fl iexten 289Enable (disable) any implementation 290defined special control characters 291not currently controlled by icanon, 292isig, or ixon. 293.It Cm echo Pq Fl echo 294Echo back (do not echo back) every 295character typed. 296.It Cm echoe Pq Fl echoe 297The 298.Dv ERASE 299character shall (shall 300not) visually erase the last character 301in the current line from the 302display, if possible. 303.It Cm echok Pq Fl echok 304Echo (do not echo) 305.Dv NL 306after 307.Dv KILL 308character. 309.It Cm echoke Pq Fl echoke 310The 311.Dv KILL 312character shall (shall 313not) visually erase the 314current line from the 315display, if possible. 316.It Cm echonl Pq Fl echonl 317Echo (do not echo) 318.Dv NL , 319even if echo 320is disabled. 321.It Cm echoctl Pq Fl echoctl 322If 323.Cm echoctl 324is set, echo control characters as ^X. 325Otherwise control characters echo as themselves. 326.It Cm echoprt Pq Fl echoprt 327For printing terminals. 328If set, echo erased characters backwards within ``\\'' 329and ``/''. 330Otherwise, disable this feature. 331.It Cm noflsh Pq Fl noflsh 332Disable (enable) flush after 333.Dv INTR , QUIT , SUSP . 334.It Cm tostop Pq Fl tostop 335Send (do not send) 336.Dv SIGTTOU 337for background output. 338This causes background jobs to stop if they attempt terminal output. 339.It Cm altwerase Pq Fl altwerase 340Use (do not use) an alternate word erase algorithm when processing 341.Dv WERASE 342characters. 343This alternate algorithm considers sequences of 344alphanumeric/underscores as words. 345It also skips the first preceding character in its classification 346(as a convenience since the one preceding character could have been 347erased with simply an 348.Dv ERASE 349character.) 350.It Cm mdmbuf Pq Fl mdmbuf 351If set, flow control output based on condition of Carrier Detect. 352Otherwise 353writes return an error if Carrier Detect is low (and Carrier is not being 354ignored with the 355.Dv CLOCAL 356flag.) 357.It Cm flusho Pq Fl flusho 358Indicates output is (is not) being discarded. 359.It Cm pendin Pq Fl pendin 360Indicates input is (is not) pending after a switch from non-canonical 361to canonical mode and will be re-input when a read becomes pending 362or more input arrives. 363.El 364.Ss Control Characters: 365.Bl -tag -width Fl 366.It Ar control-character Ar string 367Set 368.Ar control-character 369to 370.Ar string . 371If string is a single character, 372the control character is set to 373that character. 374If string is the 375two character sequence "^-" or the 376string "undef" the control character 377is disabled (i.e.\& set to 378.Pf { Dv _POSIX_VDISABLE Ns } . ) 379.Pp 380Recognized control-characters: 381.Bd -ragged -offset indent 382.Bl -column character Subscript 383.It control- 384.It character Ta Subscript Ta Description 385.It _________ Ta _________ Ta _______________ 386.It eof Ta Tn VEOF Ta EOF No character 387.It eol Ta Tn VEOL Ta EOL No character 388.It eol2 Ta Tn VEOL2 Ta EOL2 No character 389.It erase Ta Tn VERASE Ta ERASE No character 390.It erase2 Ta Tn VERASE2 Ta ERASE2 No character 391.It werase Ta Tn VWERASE Ta WERASE No character 392.It intr Ta Tn VINTR Ta INTR No character 393.It kill Ta Tn VKILL Ta KILL No character 394.It quit Ta Tn VQUIT Ta QUIT No character 395.It susp Ta Tn VSUSP Ta SUSP No character 396.It start Ta Tn VSTART Ta START No character 397.It stop Ta Tn VSTOP Ta STOP No character 398.It dsusp Ta Tn VDSUSP Ta DSUSP No character 399.It lnext Ta Tn VLNEXT Ta LNEXT No character 400.It reprint Ta Tn VREPRINT Ta REPRINT No character 401.It status Ta Tn VSTATUS Ta STATUS No character 402.It ckpt Ta Tn VCHECKPT Ta CKPT No character 403.El 404.Ed 405.It Cm min Ar number 406.It Cm time Ar number 407Set the value of min or time to 408number. 409.Dv MIN 410and 411.Dv TIME 412are used in 413Non-Canonical mode input processing 414(-icanon). 415.El 416.Ss Combination Modes: 417.Bl -tag -width Fl 418.It Ar saved settings 419Set the current terminal 420characteristics to the saved settings 421produced by the 422.Fl g 423option. 424.It Cm evenp No or Cm parity 425Enable parenb and cs7; disable 426parodd. 427.It Cm oddp 428Enable parenb, cs7, and parodd. 429.It Fl parity , evenp , oddp 430Disable parenb, and set cs8. 431.It Cm \&nl Pq Fl \&nl 432Enable (disable) icrnl. 433In addition 434-nl unsets inlcr and igncr. 435.It Cm ek 436Reset 437.Dv ERASE , 438.Dv ERASE2 , 439and 440.Dv KILL 441characters 442back to system defaults. 443.It Cm sane 444Resets all modes to reasonable values for interactive terminal use. 445.It Cm tty 446Set the line discipline to the standard terminal line discipline 447.Dv TTYDISC . 448.It Cm crt Pq Fl crt 449Set (disable) all modes suitable for a CRT display device. 450.It Cm kerninfo Pq Fl kerninfo 451Enable (disable) the system generated status line associated with 452processing a 453.Dv STATUS 454character (usually set to ^T). 455The status line consists of the 456system load average, the current command name, its process ID, the 457event the process is waiting on (or the status of the process), the user 458and system times, percent cpu, and current memory usage. 459.It Cm columns Ar number 460The terminal size is recorded as having 461.Ar number 462columns. 463.It Cm cols Ar number 464is an alias for 465.Cm columns . 466.It Cm rows Ar number 467The terminal size is recorded as having 468.Ar number 469rows. 470.It Cm dec 471Set modes suitable for users of Digital Equipment Corporation systems 472.Dv ( ERASE , 473.Dv KILL , 474and 475.Dv INTR 476characters are set to ^?, ^U, and ^C; 477.Dv ixany 478is disabled, and 479.Dv crt 480is enabled.) 481.It Cm extproc Pq Fl extproc 482If set, this flag indicates that some amount of terminal processing is being 483performed by either the terminal hardware or by the remote side connected 484to a pty. 485.It Cm raw Pq Fl raw 486If set, change the modes of the terminal so that no input or output processing 487is performed. 488If unset, change the modes of the terminal to some reasonable 489state that performs input and output processing. 490Note that since the terminal driver no longer has a single 491.Dv RAW 492bit, it is not possible to intuit what flags were set prior to setting 493.Cm raw . 494This means that unsetting 495.Cm raw 496may not put back all the setting that were previously in effect. 497To set the terminal into a raw state and then accurately restore it, the following 498shell code is recommended: 499.Bd -literal 500save_state=$(stty -g) 501stty raw 502\&... 503stty "$save_state" 504.Ed 505.It Cm size 506The size of the terminal is printed as two numbers on a single line, 507first rows, then columns. 508.El 509.Ss Compatibility Modes: 510These modes remain for compatibility with the previous version of 511the 512.Nm 513command. 514.Bl -tag -width Fl 515.It Cm all 516Reports all the terminal modes as with 517.Cm stty Fl a 518except that the control characters are printed in a columnar format. 519.It Cm everything 520Same as 521.Cm all . 522.It Cm cooked 523Same as 524.Cm sane . 525.It Cm cbreak 526If set, enables 527.Cm brkint , ixon , imaxbel , opost , 528.Cm isig , iexten , 529and 530.Fl icanon . 531If unset, same as 532.Cm sane . 533.It Cm new 534Same as 535.Cm tty . 536.It Cm old 537Same as 538.Cm tty . 539.It Cm newcrt Pq Fl newcrt 540Same as 541.Cm crt . 542.It Cm pass8 543The converse of 544.Cm parity . 545.It Cm tandem Pq Fl tandem 546Same as 547.Cm ixoff . 548.It Cm decctlq Pq Fl decctlq 549The converse of 550.Cm ixany . 551.It Cm crterase Pq Fl crterase 552Same as 553.Cm echoe . 554.It Cm crtbs Pq Fl crtbs 555Same as 556.Cm echoe . 557.It Cm crtkill Pq Fl crtkill 558Same as 559.Cm echoke . 560.It Cm ctlecho Pq Fl ctlecho 561Same as 562.Cm echoctl . 563.It Cm prterase Pq Fl prterase 564Same as 565.Cm echoprt . 566.It Cm litout Pq Fl litout 567The converse of 568.Cm opost . 569.It Cm tabs Pq Fl tabs 570The converse of 571.Cm oxtabs . 572.It Cm brk Ar value 573Same as the control character 574.Cm eol . 575.It Cm flush Ar value 576Same as the control character 577.Cm discard . 578.It Cm rprnt Ar value 579Same as the control character 580.Cm reprint . 581.El 582.Sh EXIT STATUS 583.Ex -std 584.Sh SEE ALSO 585.Xr termios 4 586.Sh STANDARDS 587The 588.Nm 589utility is expected to be 590.St -p1003.2 591compatible. 592The flags 593.Fl e 594and 595.Fl f 596are 597extensions to the standard. 598