||2 weeks ago|
|CVS||2 weeks ago|
|.gitignore||3 years ago|
|.travis.yml||3 years ago|
|CONTRIBUTORS||3 years ago|
|LEGAL||7 years ago|
|NOTES||4 years ago|
|PROJECTS||4 years ago|
|README.md||2 weeks ago|
|README.pdksh||4 years ago|
|alloc.c||4 years ago|
|asprintf.c||1 year ago|
|c_ksh.c||2 years ago|
|c_sh.c||1 year ago|
|c_test.c||2 years ago|
|c_test.h||7 years ago|
|c_ulimit.c||2 years ago|
|charclass.h||12 months ago|
|config.h||4 years ago|
|configure||5 months ago|
|confstr.c||4 years ago|
|dot.profile||11 months ago|
|edit.c||1 year ago|
|edit.h||3 years ago|
|emacs.c||4 months ago|
|eval.c||12 months ago|
|exec.c||2 years ago|
|expand.h||4 years ago|
|expr.c||3 years ago|
|history.c||2 years ago|
|io.c||2 years ago|
|issetugid.c||8 months ago|
|jobs.c||1 year ago|
|ksh.1||4 months ago|
|ksh.kshrc||11 months ago|
|lex.c||4 years ago|
|lex.h||4 years ago|
|mail.c||3 years ago|
|main.c||2 weeks ago|
|misc.c||12 months ago|
|oksh.1||4 months ago|
|path.c||2 years ago|
|portable.h||5 months ago|
|reallocarray.c||4 years ago|
|sh.1||4 months ago|
|sh.h||1 year ago|
|shf.c||2 years ago|
|shf.h||4 years ago|
|siglist.c||4 years ago|
|signame.c||1 year ago|
|strlcat.c||4 years ago|
|strlcpy.c||4 years ago|
|strtonum.c||2 years ago|
|syn.c||4 months ago|
|sys-queue.h||3 years ago|
|table.c||4 years ago|
|table.h||3 years ago|
|trap.c||12 months ago|
|tree.c||4 years ago|
|tree.h||4 years ago|
|tty.c||2 years ago|
|tty.h||4 years ago|
|unvis.c||4 years ago|
|var.c||8 months ago|
|version.c||7 years ago|
|vi.c||7 months ago|
|vis.c||4 years ago|
|vis.h||4 years ago|
ksh(1). Not an official OpenBSD project.
Because all operating systems deserve a good shell.
Unlike other ports of OpenBSD ksh, this port is entirely self-contained and aims to be maximally portable across operating systems and C compilers. We are always looking for new combinations to add support for.
oksh is known to run on the following Operating Systems:
- DragonFly BSD
- SoloBSD (as the default shell)
- Mac OS X (port originally by @geoff-nixon)
- Linux (glibc and musl)
- Android (via Termux)
- AIX (with major thanks to @tssva and @NattyNarwhal)
- IBM i PASE
- Unixware 7
- HP-UX (gcc only)
Running on a system not listed here? Add it and send a pull request!
We believe that
oksh will work on the following platforms, but testing is needed.
Help is greatly appreciated and encouraged!
oksh is known to build with the following C compilers:
- Sun Studio compiler
- Optimizing C Compilation System (CCS) 4.2 03/27/14 (uw714mp5.bl4s)
- Tiny C Compiler
- Nils Weller's C compiler
- cproc (Currently requires a small tweak to ignore a volatile store error)
Building with a compiler not listed here? Add it and send a pull request!
oksh is included in some package systems.
In addition, there are some unofficial packages:
Using a package not listed here? Add it and send a pull request!
A C99 compiler is the easiest way to ensure that
oksh will build correctly.
Please see the list of C compilers above for a list of known working compilers.
Though not required, the
ncurses library will be used for screen clearing
routines if the library is found during the
configure stage. This can be
turned off by the user by passing the
--disable-curses flag to
configure script that produces a
Makefile is provided to
ease building and installation and can be run by:
$ ./configure $ make && sudo make install
Cross compiling can be achieved by running
configure as follows:
CC=/path/to/cross/cc CFLAGS="any needed cflags" LDFLAGS="any needed ldflags" ./configure --no-thanks
This will skip all
configure checks and write out a generic
pconfig.h with nearly no options turned on. If using a cross gcc
or clang, this very well may just work (with all compat compiled in).
You can edit these files to reflect your system before running
All environment variables and configure flags are respected when using
--no-thanks. Further specifying
only compile the source files into object files, to be transfered onto
the target machine and linked there.
--no-thanks flag can also be used to compile a native
all the compatibility functions compiled in, rather than relying on the
system's version of those functions.
Patches that add new platforms and improve support for existing platforms are always welcome.
Patches that cause
oksh to deviate from upstream OpenBSD ksh behavior
are better suited to be sent to the
mailing list. Please make sure to test your patch on an OpenBSD machine
first before submitting it to tech@. I will sync with the upstream
OpenBSD code once your patch is accepted. If you'd like to open an issue
here to track progress of your patch on tech@, that's fine.
The main Korn shell files are public domain (see
Portability files are BSD or ISC licensed; see individual file headers
Get a tarball
See releases tab. The latest release is oksh-7.0, which matches the ksh(1) from OpenBSD 7.0, released October 14, 2021.