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