---
name: "script"
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/script"
---

# script(1)

make typescript of terminal session

## NAME

**script** – make typescript of terminal session

## SYNOPSIS

**script** \[**-a**\] \[**-c** *command*\] \[*file*\]

## DESCRIPTION

**script** makes a typescript of everything printed on your terminal. It is useful for students who need a hardcopy record of an interactive session as proof of an assignment, as the typescript file can be printed out later with [lpr(1)](/lpr/1.md).

If the argument *file* is given, **script** saves all dialogue in *file*. If no file name is given, the typescript is saved in the file *typescript*.

The options are as follows:

- **-a**

  Append the output to *file* or *typescript*, retaining the prior contents.

- **-c** *command*

  Run **sh** **-c** *command*, instead of an interactive shell. To run a command with arguments, enclose both in quotes.

The script ends when the forked program exits (an **exit**, **logout**, or control-D (‘^D’) will exit most interactive shells). **script** will exit with the status of 0 unless any of its child processes fail, in which case, **script** will return 1.

Certain interactive commands, such as [vi(1)](/vi/1.md), create garbage in the typescript file. **script** works best with commands that do not manipulate the screen; the results are meant to emulate a hardcopy terminal.

## ENVIRONMENT

- SHELL

  Name of the shell to be forked by **script**. If not set, the Bourne shell is assumed. (Most shells set this variable automatically.)

## EXAMPLES

Start a virtual machine and log all console output to a file:

```
$ script -c "vmctl start -c myvm" myvm.typescript
```

## HISTORY

A predecessor called **dribble** appeared in 2BSD. The **script** command first appeared in 3BSD.

## AUTHORS

Mary Ann Horton.

## BUGS

**script** places *everything* in the log file, including linefeeds and backspaces. This is not what the naive user expects.
