---
name: "clear"
section: "1"
platform: "openbsd"
package: "man"
version: "8.0-current-20261101"
release: "OpenBSD 8.0-current (2026-11-01)"
platforms: ["linux", "freebsd", "openbsd", "macos"]
url: "https://new.carta.tech/clear"
---

# clear(1)

clear the terminal screen

## NAME

**clear** - clear the terminal screen

## SYNOPSIS

**clear** \[**-T***type*\] \[**-V**\] \[**-x**\]\

## DESCRIPTION

**clear** clears your terminal's screen if this is possible, including the terminal's scrollback buffer (if the extended “E3” capability is defined). **clear** looks in the environment for the terminal type given by the environment variable **TERM**, and then in the **terminfo** database to determine how to clear the screen.

**clear** writes to the standard output. You can redirect the standard output to a file (which prevents **clear** from actually clearing the screen), and later **cat** the file to the screen, clearing it at that point.

## OPTIONS

- **-T *type***

  indicates the *type* of terminal. Normally this option is unnecessary, because the default is taken from the environment variable **TERM**. If **-T** is specified, then the shell variables **LINES** and **COLUMNS** will also be ignored.

- **-V**

  reports the version of ncurses which was used in this program, and exits. The options are as follows:

- **-x**

  do not attempt to clear the terminal's scrollback buffer using the extended “E3” capability.

## HISTORY

A **clear** command appeared in 2.79BSD dated February 24, 1979. Later that was provided in Unix 8th edition (1985).

AT&T adapted a different BSD program (**tset**) to make a new command (**tput**), and used this to replace the **clear** command with a shell script which calls **tput clear**, e.g.,

```
/usr/bin/tput ${1:+-T$1} clear 2> /dev/null
exit
```

In 1989, when Keith Bostic revised the BSD **tput** command to make it similar to the AT&T **tput**, he added a shell script for the **clear** command:

```
exec tput clear
```

The remainder of the script in each case is a copyright notice.

The ncurses **clear** command began in 1995 by adapting the original BSD **clear** command (with terminfo, of course).

The **E3** extension came later:

- •

  In June 1999, **xterm** provided an extension to the standard control sequence for clearing the screen. Rather than clearing just the visible part of the screen using

  ```
  printf '\033[2J'
  ```

-

  one could clear the *scrollback* using

  ```
  printf '\033[3J'
  ```

-

  This is documented in *XTerm Control Sequences* as a feature originating with **xterm**.

- •

  A few other terminal developers adopted the feature, e.g., PuTTY in 2006.

- •

  In April 2011, a Red Hat developer submitted a patch to the Linux kernel, modifying its console driver to do the same thing. The Linux change, part of the 3.0 release, did not mention **xterm**, although it was cited in the Red Hat bug report (#683733) which led to the change.

- •

  Again, a few other terminal developers adopted the feature. But the next relevant step was a change to the **clear** program in 2013 to incorporate this extension.

- •

  In 2013, the **E3** extension was overlooked in **tput** with the “clear” parameter. That was addressed in 2016 by reorganizing **tput** to share its logic with **clear** and **tset**.

## PORTABILITY

Neither IEEE Std 1003.1/The Open  Group  Base  Specifications  Issue  7 (POSIX.1-2008) nor X/Open Curses Issue 7 documents tset or reset.

The latter documents **tput**, which could be used to replace this utility either via a shell script or by an alias (such as a symbolic link) to run **tput** as **clear**.

## SEE ALSO

[**tput**(1)](/tput/1.md), [**terminfo**(5)](/terminfo/5.md), [**xterm**(1)](/xterm/1.md).

This describes **ncurses** version 6.4 (patch 20221231).
