---
name: "ul"
section: "1"
platform: "linux"
package: "util-linux"
version: "2.42.4-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/ul"
---

# ul(1)

do underlining

## NAME

ul - do underlining

## SYNOPSIS

**ul** \[options\] \[*file*...\]

## DESCRIPTION

**ul** reads the named files (or standard input if none are given) and translates occurrences of underscores to the sequence which indicates underlining for the terminal in use, as specified by the environment variable **TERM**. The *terminfo* database is read to determine the appropriate sequences for underlining. If the terminal is incapable of underlining but is capable of a standout mode, then that is used instead. If the terminal can overstrike, or handles underlining automatically, **ul** degenerates to [**cat**(1)](/cat/1.md). If the terminal cannot underline, underlining is ignored.

## OPTIONS

- **-i**, **--indicated**

  Underlining is indicated by a separate line containing appropriate dashes \`-'; this is useful when you want to look at the underlining which is present in an **nroff** output stream on a crt-terminal.

- **-t**, **-T**, **--terminal** *terminal*

  Override the environment variable **TERM** with the specified *terminal* type.

- **-h**, **--help**

  Display help text and exit.

- **-V**, **--version**

  Display version and exit.

## ENVIRONMENT

The following environment variable is used:

**TERM**

The **TERM** variable is used to relate a tty device with its device capability description (see [**terminfo**(5)](/terminfo/5.md)). **TERM** is set at login time, either by the default terminal type specified in */etc/ttys* or as set during the login process by the user in their *login* file (see [**setenv**(3)](/setenv/3.md)).

## HISTORY

The **ul** command appeared in 3.0BSD.

## BUGS

**nroff** usually outputs a series of backspaces and underlines intermixed with the text to indicate underlining. No attempt is made to optimize the backward motion.

## SEE ALSO

[**colcrt**(1)](/colcrt/1.md), [**login**(1)](/login/1.md), [**man**(1)](/man/1.md), [**nroff**(1)](/nroff/1.md), [**setenv**(3)](/setenv/3.md), [**terminfo**(5)](/terminfo/5.md)

## REPORTING BUGS

For bug reports, use the *issue tracker* \<https://github.com/util-linux/util-linux/issues\>.

## AVAILABILITY

The **ul** command is part of the util-linux package which can be downloaded from *Linux Kernel Archive* \<https://www.kernel.org/pub/linux/utils/util-linux/\>.
