# Ksh

Korn Shell (ksh) is a standard/restricted command and programming language developed by AT&T.

## Installation

First, install an implementation from the official repositories:

- MirBSD™ Korn Shell — Enhanced version of the public domain ksh.

  https://www.mirbsd.org/mksh.htm || mksh

More implementations are provided in the Arch User Repository:

- loksh — A Linux port of OpenBSD's ksh

  https://github.com/dimkr/loksh || lokshAUR

- Public Domain Korn Shell — Clone of the AT&T Korn shell. At the moment, it has most of the ksh88 features, not much of the ksh93 features, and a number of its own features.

  http://www.cs.mun.ca/~michael/pdksh/ || pdkshAUR

- AT&T Korn shell — Official AT&T version.

  http://www.kornshell.com/ || kshAUR

- OpenBSDs Korn Shell — Porting of the OpenBSD version of ksh to GNU/Linux.

  http://www.connochaetos.org/oksh/ || okshAUR

- obase — OpenBSD userland ported to Linux, statically linked.

  https://github.com/chneukirchen/obase || obase-gitAUR[broken link: archived in aur-mirror]

- obase musl — OpenBSD userland ported to Linux, statically linked to musl libc.

  https://github.com/chneukirchen/obase || obase-musl-gitAUR[broken link: archived in aur-mirror]

## Making m/ksh your default login shell

Change the default shell for the current user:

    $ chsh -s /bin/mksh

## Uninstallation

Change the default shell before removing the mksh package.

Warning: Failure to follow the below procedure may result in users no longer having access to a working shell.

Run following command:

    $ chsh -s /bin/bash user

Use it for every user with m/ksh set as their login shell (including root if needed). When completed, the mksh package can be removed.

Alternatively, change the default shell back to Bash by editing `/etc/passwd` as root.

Warning: It is strongly recommended to use `vipw` when editing `/etc/passwd` as it helps prevent invalid entries and/or syntax errors.

For example, change the following:

    username:x:1000:1000:Full Name,,,:/home/username:/bin/mksh

To this:

    username:x:1000:1000:Full Name,,,:/home/username:/bin/bash

## See Also

- mksh - The MirBSD Korn Shell
- pdksh - the Public Domain Korn Shell

Category:

- Command shells

Hidden category:

- Pages with broken package links