Ksh
Korn Shell (ksh) is a standard/restricted command and programming language developed by AT&T.
Contents |
Installation
First, install an implementation:
- MirBSD™ Korn Shell — Enhanced version of the public domain ksh.
- AT&T Korn shell — Official AT&T version.
- OpenBSDs Korn Shell — Porting of the OpenBSD version of ksh to GNU/Linux.
- 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.
More implementations are provided by:
- obase — OpenBSD userland ported to Linux, statically linked.
- obase musl — OpenBSD userland ported to Linux, statically linked to musl libc.
Making ksh your default login shell
systemd does not implicitly make use of a shell (previously, Arch Linux init scripts were using Bash). After the boot process is complete, the default login shell is user-specified. The chsh command can be used to change a user's default login shell without root access if the shell is listed in /etc/shells. (If Ksh was installed using pacman, it should already have an entry in /etc/shells).
Grab the full path for Ksh using /usr/bin/which:
$ which ksh
Which will probably output:
/bin/ksh
Change the default shell for the current user:
$ chsh -s /bin/ksh
Alternative as root, using usermod
Change the default shell using usermod:
# usermod -s /bin/ksh username
After logging back in, verify that Ksh is the default shell with:
$ echo $SHELL
Uninstallation
You must first change your default shell back to Bash before removing the Ksh package.
Change the default shell for the current user to Bash:
$ chsh -s /bin/bash
Alternative as root, using usermod
Change the default shell using usermod:
# usermod -s /bin/bash username
Now you can safely remove the Ksh package.
If you did not follow the above, you can still change the default shell back to Bash by editing /etc/passwd as root.
For example from:
username:x:1000:1000:Full Name,,,:/home/username:/bin/ksh
to:
username:x:1000:1000:Full Name,,,:/home/username:/bin/bash