stty(1b) on Solnix vs Linux and the BSDs

The published Solnix page is stty(1b), the /usr/ucb/stty variant. The command on PATH is the illumos /usr/bin/stty, whose text is not in the bundle. The ucb stty acts on standard output and has no -f/-F, so it does not match Linux or BSD stty on which terminal it targets.

What Solnix runs

A default Solnix system runs the illumos /usr/bin/stty. The published page, stty(1b), documents /usr/ucb/stty, which is also shipped, along with /usr/xpg4/bin/stty and /usr/xpg6/bin/stty. The bundle does not include the /usr/bin/stty, xpg4 or xpg6 pages, so this page cannot say how they differ from the ucb version. Everything below describes the ucb variant.

Differences

Compared withTopicWhat differs
all fourwhich terminal is usedSolnix /usr/ucb/stty sets or reports the device that is the current standard output. Linux, FreeBSD, OpenBSD and NetBSD stty use standard input unless told otherwise. A script that redirects only stdin can hit a different tty on Solnix.
Source: Solnix stty(1b) DESCRIPTION; Linux stty(1) -F; FreeBSD/OpenBSD/NetBSD stty(1) DESCRIPTION
all fourno option to name a deviceThe Solnix synopsis is [-a] [-g] [-h] [modes] and has no device option. Linux has -F/--file=DEVICE. FreeBSD, OpenBSD and NetBSD have -f file, which opens the tty with O_NONBLOCK.
Source: Solnix stty(1b) SYNOPSIS; Linux stty(1) -F; FreeBSD/OpenBSD/NetBSD stty(1) -f
FreeBSD, OpenBSD, NetBSD-e missing, -h addedSolnix has no -e. Its -h prints all settings with the control characters in column format. The BSD -e prints the traditional BSD “all” and “everything” formats. On Solnix, 'all' and 'everything' are arguments, and everything is the same as -h.
Source: Solnix stty(1b) -h, Special Requests (all, everything); FreeBSD/OpenBSD/NetBSD stty(1) -e
Linuxlong optionsLinux stty accepts --all, --save, --file, --help and --version. The Solnix synopsis lists only -a, -g and -h, and the page shows no long options.
Source: Linux stty(1) SYNOPSIS, DESCRIPTION; Solnix stty(1b) SYNOPSIS
FreeBSD, OpenBSD, NetBSDspeed argumentOn Solnix, speed is a special request that reports the terminal speed alone. On FreeBSD, OpenBSD and NetBSD, 'speed number' sets both input and output speed. 'stty speed 9600' sets the speed on those BSDs but not on Solnix.
Source: Solnix stty(1b) Special Requests (speed); FreeBSD/OpenBSD/NetBSD stty(1) Control Modes (speed number)
Linuxspeed and size sourceSolnix says size and speed always report on /dev/tty and write to standard output, whatever device is named. Linux describes size as the rows and columns according to the kernel and speed as the terminal speed. It does not mention /dev/tty.
Source: Solnix stty(1b) Special Requests (size, speed); Linux stty(1) Special settings
FreeBSD, OpenBSD, NetBSDbaud rate 0On Solnix, the argument 0 hangs up the line immediately. The BSD pages say a baud rate of zero means modem control is no longer asserted. NetBSD adds that this normally hangs up the line, including on ptys.
Source: Solnix stty(1b) Control Modes (0); FreeBSD/OpenBSD/NetBSD stty(1) number; NetBSD stty(1) number
Linux, FreeBSDiutf8The Solnix Input Modes list has no iutf8. Linux and FreeBSD document [-]iutf8 to treat input as UTF-8. A script that runs 'stty iutf8' may fail on Solnix, since the page does not list it.
Source: Solnix stty(1b) Input Modes; Linux stty(1) Input settings (iutf8); FreeBSD stty(1) Input Modes (iutf8)
FreeBSD, NetBSDcase-mapping modesSolnix lists iuclc and olcuc. The FreeBSD and NetBSD pages list neither. OpenBSD and Linux list both.
Source: Solnix stty(1b) Input Modes (iuclc), Output Modes (olcuc); FreeBSD/NetBSD stty(1) Input Modes, Output Modes; OpenBSD stty(1) iuclc, olcuc
FreeBSD, OpenBSD, NetBSDisig control characters and tabsSolnix isig checks INTR, QUIT and SWTCH. The BSD pages say INTR, QUIT and SUSP. For tabs, Solnix tab0-tab3 select a delay style. FreeBSD says tab3 enables tab expansion. OpenBSD and NetBSD use oxtabs.
Source: Solnix stty(1b) Local Modes (isig), Output Modes (tab0 tab1 tab2 tab3); FreeBSD stty(1) tab0 tab3; OpenBSD/NetBSD stty(1) oxtabs
OpenBSD-g output quotingOpenBSD states that -g output contains no characters needing shell quoting. The Solnix page says only that -g output can be used as an argument to another stty command, and does not mention quoting.
Source: OpenBSD stty(1) -g; Solnix stty(1b) -g

Standards

  • POSIX: stty is a POSIX.1-2024 utility.
  • FreeBSD: -a and -g are described as per IEEE Std 1003.2 (“POSIX.2”).
  • NetBSD: -a and -g are described as per IEEE Std 1003.2 (“POSIX.2”).
  • Linux: An * marks non-POSIX settings; the underlying system defines which settings are available.

Writing portable scripts

  • Save and restore terminal state with 'stty -g': the output is documented on Solnix, Linux and the BSDs as usable as an argument to a later stty.
  • Do not rely on -f, -F or -e. Point stty at a terminal by redirection, and check whether your target reads stdin (Linux, BSDs) or stdout (Solnix ucb).
  • Avoid 'speed number' in portable scripts: it sets speed on the BSDs but is a report-only request in the Solnix ucb page.

Every difference here is taken from the manual pages linked above: Solnix's published page, Linux (man-pages and the GNU and util-linux manuals), FreeBSD, OpenBSD and NetBSD. Each row names its source. Where a manual is silent, this page is too. Compiled 2026-10-26. Found a mistake? Mail hackers@lists.solnix.io.