Ksh

From ArchWiki
(Redirected from Korn shell)
Jump to: navigation, search

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
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