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. The file is opened 78using 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. This corresponds to the c_cflag in the termios structure. 98.Bl -tag -width Fl 99.It Cm parenb Pq Fl parenb 100Enable (disable) parity generation 101and detection. 102.It Cm parodd Pq Fl parodd 103Select odd (even) parity. 104.It Cm cs5 cs6 cs7 cs8 105Select character size, if possible. 106.It Ar number 107Set terminal baud rate to the 108number given, if possible. 109If the 110baud rate is set to zero, modem 111control is no longer 112asserted. 113.It Cm ispeed Ar number 114Set terminal input baud rate to the 115number given, if possible. 116If the 117input baud rate is set to zero, the 118input baud rate is set to the 119value of the output baud 120rate. 121.It Cm ospeed Ar number 122Set terminal output baud rate to 123the number given, if possible. 124If 125the output baud rate is set to 126zero, modem control is 127no longer asserted. 128.It Cm speed Ar number 129This sets both 130.Cm ispeed 131and 132.Cm ospeed 133to 134.Ar number . 135.It Cm hupcl Pq Fl hupcl 136Stop asserting modem control 137(do not stop asserting modem control) on last close. 138.It Cm hup Pq Fl hup 139Same as hupcl 140.Pq Fl hupcl . 141.It Cm cstopb Pq Fl cstopb 142Use two (one) stop bits per character. 143.It Cm cread Pq Fl cread 144Enable (disable) the receiver. 145.It Cm clocal Pq Fl clocal 146Assume a line without (with) modem 147control. 148.It Cm crtscts Pq Fl crtscts 149Enable (disable) RTS/CTS flow control. 150.El 151.Ss Input Modes: 152This corresponds to the c_iflag in the termios structure. 153.Bl -tag -width Fl 154.It Cm ignbrk Pq Fl ignbrk 155Ignore (do not ignore) break on 156input. 157.It Cm brkint Pq Fl brkint 158Signal (do not signal) 159.Dv INTR 160on 161break. 162.It Cm ignpar Pq Fl ignpar 163Ignore (do not ignore) characters with parity 164errors. 165.It Cm parmrk Pq Fl parmrk 166Mark (do not mark) characters with parity errors. 167.It Cm inpck Pq Fl inpck 168Enable (disable) input parity 169checking. 170.It Cm istrip Pq Fl istrip 171Strip (do not strip) input characters 172to seven bits. 173.It Cm inlcr Pq Fl inlcr 174Map (do not map) 175.Dv NL 176to 177.Dv CR 178on input. 179.It Cm igncr Pq Fl igncr 180Ignore (do not ignore) 181.Dv CR 182on input. 183.It Cm icrnl Pq Fl icrnl 184Map (do not map) 185.Dv CR 186to 187.Dv NL 188on input. 189.It Cm ixon Pq Fl ixon 190Enable (disable) 191.Dv START/STOP 192output 193control. 194Output from the system is 195stopped when the system receives 196.Dv STOP 197and started when the system 198receives 199.Dv START , 200or if 201.Cm ixany 202is set, any character restarts output. 203.It Cm ixoff Pq Fl ixoff 204Request that the system send (not 205send) 206.Dv START/STOP 207characters when 208the input queue is nearly 209empty/full. 210.It Cm ixany Pq Fl ixany 211Allow any character (allow only 212.Dv START ) 213to restart output. 214.It Cm imaxbel Pq Fl imaxbel 215The system imposes a limit of 216.Dv MAX_INPUT 217(currently 255) characters in the input queue. If 218.Cm imaxbel 219is set and the input queue limit has been reached, 220subsequent input causes the system to send an ASCII BEL 221character to the output queue (the terminal beeps at you). Otherwise, 222if 223.Cm imaxbel 224is unset and the input queue is full, the next input character causes 225the entire input and output queues to be discarded. 226.El 227.Ss Output Modes: 228This corresponds to the c_oflag of the termios structure. 229.Bl -tag -width Fl 230.It Cm opost Pq Fl opost 231Post-process output (do not 232post-process output; ignore all other 233output modes). 234.It Cm onlcr Pq Fl onlcr 235Map (do not map) 236.Dv NL 237to 238.Dv CR-NL 239on output. 240.It Cm ocrnl Pq Fl ocrnl 241Map (do not map) 242.Dv CR 243to 244.Dv NL 245on output. 246.It Cm oxtabs Pq Fl oxtabs 247Expand (do not expand) tabs to spaces on output. 248.It Cm onocr Pq Fl onocr 249Do not (do) output CRs at column zero. 250.It Cm onlret Pq Fl onlret 251On the terminal NL performs (does not perform) the CR function. 252.El 253.Ss Local Modes: 254Local mode flags (lflags) affect various and sundry characteristics of terminal 255processing. 256Historically the term "local" pertained to new job control features 257implemented by Jim Kulp on a 258.Tn Pdp 11/70 259at 260.Tn IIASA . 261Later the driver ran on the first 262.Tn VAX 263at Evans Hall, UC Berkeley, where the job control details 264were greatly modified but the structure definitions and names 265remained essentially unchanged. 266The second interpretation of the 'l' in lflag 267is ``line discipline flag'' which corresponds to the 268.Ar c_lflag 269of the 270.Ar termios 271structure. 272.Bl -tag -width Fl 273.It Cm isig Pq Fl isig 274Enable (disable) the checking of 275characters against the special control 276characters 277.Dv INTR , QUIT , 278and 279.Dv SUSP . 280.It Cm icanon Pq Fl icanon 281Enable (disable) canonical input 282.Pf ( Dv ERASE 283and 284.Dv KILL 285processing). 286.It Cm iexten Pq Fl iexten 287Enable (disable) any implementation 288defined special control characters 289not currently controlled by icanon, 290isig, or ixon. 291.It Cm echo Pq Fl echo 292Echo back (do not echo back) every 293character typed. 294.It Cm echoe Pq Fl echoe 295The 296.Dv ERASE 297character shall (shall 298not) visually erase the last character 299in the current line from the 300display, if possible. 301.It Cm echok Pq Fl echok 302Echo (do not echo) 303.Dv NL 304after 305.Dv KILL 306character. 307.It Cm echoke Pq Fl echoke 308The 309.Dv KILL 310character shall (shall 311not) visually erase the 312current line from the 313display, if possible. 314.It Cm echonl Pq Fl echonl 315Echo (do not echo) 316.Dv NL , 317even if echo 318is disabled. 319.It Cm echoctl Pq Fl echoctl 320If 321.Cm echoctl 322is set, echo control characters as ^X. Otherwise control characters 323echo as themselves. 324.It Cm echoprt Pq Fl echoprt 325For printing terminals. 326If set, echo erased characters backwards within ``\\'' 327and ``/''. Otherwise, disable this feature. 328.It Cm noflsh Pq Fl noflsh 329Disable (enable) flush after 330.Dv INTR , QUIT , SUSP . 331.It Cm tostop Pq Fl tostop 332Send (do not send) 333.Dv SIGTTOU 334for background output. This causes background jobs to stop if they attempt 335terminal output. 336.It Cm altwerase Pq Fl altwerase 337Use (do not use) an alternate word erase algorithm when processing 338.Dv WERASE 339characters. 340This alternate algorithm considers sequences of 341alphanumeric/underscores as words. 342It also skips the first preceding character in its classification 343(as a convenience since the one preceding character could have been 344erased with simply an 345.Dv ERASE 346character.) 347.It Cm mdmbuf Pq Fl mdmbuf 348If set, flow control output based on condition of Carrier Detect. Otherwise 349writes return an error if Carrier Detect is low (and Carrier is not being 350ignored with the 351.Dv CLOCAL 352flag.) 353.It Cm flusho Pq Fl flusho 354Indicates output is (is not) being discarded. 355.It Cm pendin Pq Fl pendin 356Indicates input is (is not) pending after a switch from non-canonical 357to canonical mode and will be re-input when a read becomes pending 358or more input arrives. 359.El 360.Ss Control Characters: 361.Bl -tag -width Fl 362.It Ar control-character Ar string 363Set 364.Ar control-character 365to 366.Ar string . 367If string is a single character, 368the control character is set to 369that character. 370If string is the 371two character sequence "^-" or the 372string "undef" the control character 373is disabled (i.e. set to 374.Pf { Dv _POSIX_VDISABLE Ns } . ) 375.Pp 376Recognized control-characters: 377.Bd -ragged -offset indent 378.Bl -column character Subscript 379.It control- 380.It character Ta Subscript Ta Description 381.It _________ Ta _________ Ta _______________ 382.It eof Ta Tn VEOF Ta EOF No character 383.It eol Ta Tn VEOL Ta EOL No character 384.It eol2 Ta Tn VEOL2 Ta EOL2 No character 385.It erase Ta Tn VERASE Ta ERASE No character 386.It erase2 Ta Tn VERASE2 Ta ERASE2 No character 387.It werase Ta Tn VWERASE Ta WERASE No character 388.It intr Ta Tn VINTR Ta INTR No character 389.It kill Ta Tn VKILL Ta KILL No character 390.It quit Ta Tn VQUIT Ta QUIT No character 391.It susp Ta Tn VSUSP Ta SUSP No character 392.It start Ta Tn VSTART Ta START No character 393.It stop Ta Tn VSTOP Ta STOP No character 394.It dsusp Ta Tn VDSUSP Ta DSUSP No character 395.It lnext Ta Tn VLNEXT Ta LNEXT No character 396.It reprint Ta Tn VREPRINT Ta REPRINT No character 397.It status Ta Tn VSTATUS Ta STATUS No character 398.It ckpt Ta Tn VCHECKPT Ta CKPT No character 399.El 400.Ed 401.It Cm min Ar number 402.It Cm time Ar number 403Set the value of min or time to 404number. 405.Dv MIN 406and 407.Dv TIME 408are used in 409Non-Canonical mode input processing 410(-icanon). 411.El 412.Ss Combination Modes: 413.Bl -tag -width Fl 414.It Ar saved settings 415Set the current terminal 416characteristics to the saved settings 417produced by the 418.Fl g 419option. 420.It Cm evenp No or Cm parity 421Enable parenb and cs7; disable 422parodd. 423.It Cm oddp 424Enable parenb, cs7, and parodd. 425.It Fl parity , evenp , oddp 426Disable parenb, and set cs8. 427.It Cm \&nl Pq Fl \&nl 428Enable (disable) icrnl. 429In addition 430-nl unsets inlcr and igncr. 431.It Cm ek 432Reset 433.Dv ERASE , 434.Dv ERASE2 , 435and 436.Dv KILL 437characters 438back to system defaults. 439.It Cm sane 440Resets all modes to reasonable values for interactive terminal use. 441.It Cm tty 442Set the line discipline to the standard terminal line discipline 443.Dv TTYDISC . 444.It Cm crt Pq Fl crt 445Set (disable) all modes suitable for a CRT display device. 446.It Cm kerninfo Pq Fl kerninfo 447Enable (disable) the system generated status line associated with 448processing a 449.Dv STATUS 450character (usually set to ^T). The status line consists of the 451system load average, the current command name, its process ID, the 452event the process is waiting on (or the status of the process), the user 453and system times, percent cpu, and current memory usage. 454.It Cm columns Ar number 455The terminal size is recorded as having 456.Ar number 457columns. 458.It Cm cols Ar number 459is an alias for 460.Cm columns . 461.It Cm rows Ar number 462The terminal size is recorded as having 463.Ar number 464rows. 465.It Cm dec 466Set modes suitable for users of Digital Equipment Corporation systems 467.Dv ( ERASE , 468.Dv KILL , 469and 470.Dv INTR 471characters are set to ^?, ^U, and ^C; 472.Dv ixany 473is disabled, and 474.Dv crt 475is enabled.) 476.It Cm extproc Pq Fl extproc 477If set, this flag indicates that some amount of terminal processing is being 478performed by either the terminal hardware or by the remote side connected 479to a pty. 480.It Cm raw Pq Fl raw 481If set, change the modes of the terminal so that no input or output processing 482is performed. 483If unset, change the modes of the terminal to some reasonable 484state that performs input and output processing. Note that since the 485terminal driver no longer has a single 486.Dv RAW 487bit, it is not possible to intuit what flags were set prior to setting 488.Cm raw . 489This means that unsetting 490.Cm raw 491may not put back all the setting that were previously in effect. 492To set the terminal into a raw state and then accurately restore it, the following 493shell code is recommended: 494.Bd -literal 495save_state=$(stty -g) 496stty raw 497\&... 498stty "$save_state" 499.Ed 500.It Cm size 501The size of the terminal is printed as two numbers on a single line, 502first rows, then columns. 503.El 504.Ss Compatibility Modes: 505These modes remain for compatibility with the previous version of 506the 507.Nm 508command. 509.Bl -tag -width Fl 510.It Cm all 511Reports all the terminal modes as with 512.Cm stty Fl a 513except that the control characters are printed in a columnar format. 514.It Cm everything 515Same as 516.Cm all . 517.It Cm cooked 518Same as 519.Cm sane . 520.It Cm cbreak 521If set, enables 522.Cm brkint , ixon , imaxbel , opost , 523.Cm isig , iexten , 524and 525.Fl icanon . 526If unset, same as 527.Cm sane . 528.It Cm new 529Same as 530.Cm tty . 531.It Cm old 532Same as 533.Cm tty . 534.It Cm newcrt Pq Fl newcrt 535Same as 536.Cm crt . 537.It Cm pass8 538The converse of 539.Cm parity . 540.It Cm tandem Pq Fl tandem 541Same as 542.Cm ixoff . 543.It Cm decctlq Pq Fl decctlq 544The converse of 545.Cm ixany . 546.It Cm crterase Pq Fl crterase 547Same as 548.Cm echoe . 549.It Cm crtbs Pq Fl crtbs 550Same as 551.Cm echoe . 552.It Cm crtkill Pq Fl crtkill 553Same as 554.Cm echoke . 555.It Cm ctlecho Pq Fl ctlecho 556Same as 557.Cm echoctl . 558.It Cm prterase Pq Fl prterase 559Same as 560.Cm echoprt . 561.It Cm litout Pq Fl litout 562The converse of 563.Cm opost . 564.It Cm tabs Pq Fl tabs 565The converse of 566.Cm oxtabs . 567.It Cm brk Ar value 568Same as the control character 569.Cm eol . 570.It Cm flush Ar value 571Same as the control character 572.Cm discard . 573.It Cm rprnt Ar value 574Same as the control character 575.Cm reprint . 576.El 577.Sh EXIT STATUS 578.Ex -std 579.Sh SEE ALSO 580.Xr termios 4 581.Sh STANDARDS 582The 583.Nm 584utility is expected to be 585.St -p1003.2 586compatible. The flags 587.Fl e 588and 589.Fl f 590are 591extensions to the standard. 592