mksh - MirBSD Korn Shell

Property Value
Distribution Ubuntu 19.04 (Disco Dingo)
Repository Ubuntu Universe amd64
Package filename mksh_57-1_amd64.deb
Package name mksh
Package version 57
Package release 1
Package architecture amd64
Package type deb
Category universe/shells
License -
Maintainer Ubuntu Developers <>
Download size 506.69 KB
Installed size 1.35 MB
mksh is the successor of the Public Domain Korn shell (pdksh),
a Bourne/POSIX compatible shell which is largely similar to the
original AT&T Korn Shell (ksh88/ksh93).
It includes bug fixes and feature improvements, in order to produce a
modern, robust shell good for interactive and especially script use.
mksh has UTF-8 support (in string operations and the Emacs editing
mode). The code has been cleaned up and simplified, bugs fixed,
standards compliance added, and several enhancements (for extended
compatibility to other modern shells, as well as a couple of its
own) are available.
This shell is Debian Policy 10.4 compliant and works as /bin/sh on
Debian systems (use the /bin/lksh executable) and is a good rescue
and initrd shell (consider the /bin/mksh-static executable).
The mksh binary is a complete, full-featured shell. It provides a
“consistent across all platforms” guarantee, using 32-bit integers
for arithmetics, possibly deviating from POSIX.
The mksh-static binary is a version of mksh, linked against klibc,
musl, or dietlibc (if they exist for that Debian architecture and
are usable) and optimised for small code size, for example for use
on initrd or initramfs images, installation or rescue systems.
Except for omitting some features to be smaller, it is similar to
the mksh binary otherwise. Note the exact feature set may differ
depending on which C library was used to compile it.
The lksh binary is a script shell based on mksh intended to run old
ksh88 and pdksh scripts, but not for interactive use. When used as
/bin/sh it follows POSIX most closely, including use of the host’s
“long” C data type for arithmetics. It also contains kludges so it
can run as /bin/sh on Debian beyond what Policy dictates, to work
around bugs in maintainer scripts and LSB init scripts shipped by
many packages, such as including a rudimentary printf(1) builtin,
permitting a shell function to be named stop overriding the default
alias, more loose interpretation of shell extglobs, etc.
A sample ~/.mkshrc is included in /usr/share/doc/mksh/examples and
provided as /etc/mkshrc conffile, which is sourced by another file
/etc/skel/.mkshrc users are recommended to copy into their home.


Package Version Architecture Repository
mksh_57-1_i386.deb 57 i386 Ubuntu Universe
mksh - - -


Name Value
libc6 >= 2.15


Type URL
Binary Package mksh_57-1_amd64.deb
Source Package mksh

Install Howto

  1. Update the package index:
    # sudo apt-get update
  2. Install mksh deb package:
    # sudo apt-get install mksh




2019-03-01 - Thorsten Glaser <>
mksh (57-1) unstable; urgency=medium
* The “basta!” upload
* Update to latest upstream release:
- [tg] Document that, when your Unix is broken, GIGO applies (LP#1817959)
- [tg] Improve error message for inaccessible executables (LP#1817789)
* Eliminate all local patches thusly
2019-01-05 - Thorsten Glaser <>
mksh (56c-3) unstable; urgency=medium
* Update to a CVS snapshot as of 2019-01-05
- [tg] Trick a GCC warning, to make up for it ignoring lint(1) hints
- [tg] Add O_MAYEXEC support for CLIP OS
- [tg] Make dup-to-self with ksh-style fd≥3 closing work; catern via IRC
- [tg] Add compat glue for newer GNU groff mdoc to the manpages
- [tg] Trigger EXIT trap after single-command subshells (Closes: #910276)
- [tg] Document set -eo pipefail caveat (LP#1804504)
* Bump debhelper to 12 (requested by lintian)
* Policy 4.3.0
2018-10-20 - Thorsten Glaser <>
mksh (56c-2) unstable; urgency=low
* The “stets vermißt, feiner Kerl” release
* Update to a CVS snapshot as of 2018-10-20
- [gecko2] Update operating environment reporting for the Macintosh
- [Martijn Dekker] make ${foo#'bar'} in here document behave like ksh93
- [Martijn Dekker] quote empty strings for re-entry into shell
- [tg, G.raud Meyer] Improve documentation, especially for tty states
- [tg] Protect against entering line editing with bad saved tty state
- [tg] Fix set -o allexport for arrays (which we apparently do)
- [tg] Handle lseek(2) returning -1 as pointed out by Coverity Scan
- [tg] Fix left-padding UTF-8 strings
- [tg, G.raud Meyer] Fix using the “-m” flag on the command line
- [tg] Update to UCD 11.0.0
- [multiplexd] Fix a segfault using ^W during search in Vi mode
- [tg] Fix an error message; add a test for controlling tty
- [tg] Permit unsetting LINES and COLUMNS, for those who need it
- [tg] Fix manpage bug (RedHat BZ#1612173)
- [tg] Minor spelling cleanup
- [tg] Unbreak high-bit7 (nōn-ASCII) heredoc separators (LP#1779179)
- [tg] Allow dumping high-bit7-char-containing strings in DEBUG mode
- [tg] Add some testcases for behaviour questions popped up in IRC
* Bump to Policy
- handle new “terse” build option
- R³:no
* Update list of architectures on which musl is available
* Add some UMEGAYA metadata
* Update lintian overrides
2018-01-14 - Thorsten Glaser <>
mksh (56c-1) unstable; urgency=high
* New upstream bugfix release:
- [komh] Remove redundant OS/2-specific code, clean up others
- [komh, tg] Fix drive-qualified (absolute and relative) DOS-style
path support in realpath functionality, partially other places
- [tg] Don’t substitute ${ENV:-~/.mkshrc} result again
- [tg] Improve OS/2 $PATH (et al.) handling, drive-relative paths
- [tg] Add MKSH_ENVDIR compile-time option for Jehanne and Plan 9
- [tg] Update wcwidth data with bugfixed script (still Unicode 10;
resulting values are identical to glibc git master for extant chars)
- [Dr. Werner Fink] Raise some time limits in the testsuite
- [Shamar] Add support for the Jehanne operating system
- [komh] Set stdin to text mode before executing child processes on OS/2
- [komh] Pass arguments via a resonse file if executing a child fails
- [Dr. Werner Fink] Early locale tracking as a compile-time option
- [tg] Fix regressions introduced with new fast character classes
* Urgency high due to the bugfixes (credits Daniel Martí, Jakub Wilk)

See Also

Package Description
mktorrent_1.1-1_amd64.deb simple command line utility to create BitTorrent metainfo files
mkvtoolnix-gui_31.0.0-1_amd64.deb Set of tools to work with Matroska files - GUI frontend
mkvtoolnix_31.0.0-1_amd64.deb Set of command-line tools to work with Matroska files
ml-burg_110.79-4_amd64.deb Code generator for Standard ML
ml-lex_110.79-4_amd64.deb Lexical analyzer generator for Standard ML
ml-lpt_110.79-4_amd64.deb SML/NJ language processing tools
ml-nlffigen_110.79-4_amd64.deb ML generator for C glue code
ml-yacc_110.79-4_amd64.deb Parser generator for Standard ML
mlbstreamer_0.0.10-3_all.deb Interface to the MLB.TV media offering
mldemos_0.5.1+git.1.ee5d11f-4_amd64.deb Machine Learning Demos (MLDemos) with Visualization
mldonkey-gui_3.1.6-1fakesync1_amd64.deb Graphical frontend for mldonkey based on GTK+
mldonkey-server_3.1.6-1fakesync1_amd64.deb Door to the 'donkey' network
mle_1.3-2_amd64.deb flexible terminal-based editor
mlmmj-php-web-admin_1.3.0-3_all.deb administrative web interface for mlmmj, written in php
mlmmj-php-web_1.3.0-3_all.deb web interface for mlmmj, written in php