Projects / MirBSD Korn Shell

MirBSD Korn Shell

The MirBSD Korn Shell (mksh) is an actively developed successor of pdksh (the Public Domain Korn Shell), aimed at producing a shell good for interactive use, but with the primary focus on scripting. It is intended to be portable to most *nix-like operating systems as long as they're not too obscure. mksh incorporates improvements from OpenBSD and Debian, as well as bugfixes and enhancements developed for the MirOS, FreeWRT, and MidnightBSD projects. The emacs command line editing mode is UTF-8 capable, and Byte Order Marks are ignored in scripts. The shell supports large files, as well as all pdksh and some csh, AT&T ksh, and GNU bash features, is compatible with the Bourne shell and POSIX (within limits), has no limit on array sizes, and incorporates some other useful builtins and features. While being already fast and small (without losing functionality), flags to make it even smaller can be given at compile time. An interactive shell reads "~/.mkshrc" on startup.

Tags Shells
Operating Systems Mac OS X Windows Windows Cygwin POSIX BSD GNU/Hurd Linux Other
Implementation Unix Shell

Tweet this project Short link

Rss Recent releases

  • Rrelease-mid
  •  08 Apr 2009 12:18
  • Rrelease-after

    Changes: The LOCPATH environment variable is now recognized by the regression test suite (for unprivileged builds), the file descriptor use is now more conservative on Minix 3, enabling it to bootstrap itself there, a "wontfix" bug in ACK (on Minix 3) has been worked around, enabling /usr/bin/cc to be used for compilation, structure alignment and padding has changed, and SIGBUS and the occasional segmentation faults on some architectures (IA64, possibly S/390, maybe more) have been fixed.

    • Rrelease-mid
    •  05 Apr 2009 21:07
    • Rrelease-after

      Changes: This release has a bugfix for emacs mode bind key macros. It is the first to work on Minix 3 (with GCC only, due to ACK bugs, though).

      • Rrelease-mid
      •  05 Apr 2009 21:07
      • Rrelease-after

        Changes: Support for unsigned arithmetic. Build system and documentation improvements. Bugfixes for arithmetic on 64 bit machines and pattern substitution in Unicode mode. Fixes for PS1 off-by-one bugs. Fixes for problems with "set -e" yielding better standards compliance. A new, smaller, faster memory allocator.

        • Rrelease-mid
        •  14 Dec 2008 13:03
        • Rrelease-after

        Changes: New ports were made for QNX, nwcc, and (an incomplete one) for Haiku. A native LLVM build was added (with either llvm-gcc or clang). autoconf-time compiler errors are hidden from build scanners. MKSH_SMALL builds were shrunk even more. __typeof__ is not used. Statements can be used as expressions. An alias expansion bug was fixed. bashiop use inside a function was fixed. strings.h is pulled if it exists. Some format string warnings, dead code, and casts were cleaned up. Lint hints were added. The dot.mkshrc and regression test suite were optimized.

        • Rrelease-mid
        •  25 Oct 2008 21:09
        • Rrelease-after

        Changes: OSF/1 V2.0 and AIX 5.2 are supported. Portability fixes were made. Work was done on both Emacs and Vi input line editing modes and on improving command line history. A compile-time option was added to have the shell check itself if called as "sh" and reduce functionality in that case (mostly for broken scripts such as debconf). Stack space usage was reduced and dead code was removed. A bugfix sync was done with OpenBSD 4.4-current ksh. The OpenSuSE Build Service RPM, Debian, and pkgsrcĀ® packages supersede the inofficial ones due to being maintained actively enough.

        Rss Recent comments

        Rcomment-before 07 Apr 2009 23:01 Rcomment-trans Eaba5fae855f6900dbdd22662f254d9b_tiny mirabile Rcomment-after

        No further Freshmeat announcements
        will be sent out. The MirOS Project
        now provides an RSS Feed themselves.

        This is due to the changes on the
        website, making it much harder to
        use than even before.

        Rcomment-before 24 Jul 2008 11:03 Rcomment-trans Eaba5fae855f6900dbdd22662f254d9b_tiny mirabile Rcomment-after

        Ports
        I changed the Debian package URI to the official

        Debian site, as the mksh package is kept up to

        date inside Debian by myself.

        The sub-directory ports/ inside the mksh download

        directory (currently) contains ports for

        o Debian (source, diff, signed dsc)

        o RPM (signed Source RPM)

        o OpenBSD (gzsig'd tgz of port)

        o pkgsrc® (gzsig'd tgz of source package)

        For more information, refer to the website, under

        the item Integration in other OSes / build systems.

        Rcomment-before 24 Apr 2007 05:07 Rcomment-trans Eaba5fae855f6900dbdd22662f254d9b_tiny mirabile Rcomment-after

        Missing info...
        ... from the announcement:

        BONUS for this release:

        - OS-independent source RPM, based upon Pascal Bleser's SuSE-SRPM:

        https://herc.mirbsd.org/pub/mksh-29c-1.src.rpm

        - OpenBSD port (tested on 4.1/sparc64):

        https://herc.mirbsd.org/pub/mksh-obsdport.tgz

        - NetBSD® pkgsrc® source package (tested on Interix/SFU 3.5 on win2k/i386):

        https://herc.mirbsd.org/pub/mksh-pkgsrc.tgz

        (the BSD ports URI is for FreeBSD; the MirPorts

        Framework has already been updated with this

        release of mksh)

        No-screenshot

        Project Spotlight

        squidRewrite

        url_rewrite for squid that caches dynamic content (like YouTube).

        No-screenshot

        Project Spotlight

        Atlassian Connector for IntelliJ IDEA

        Connect Atlassian dev tools (JIRA, Bamboo, Crucbile, FishEye) to IntelliJ IDEA.