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