Skip to content

Releases: marjoncajocon/mmc-shell

mmc-shell 0.3.0

mmc-shell 0.3.0 Pre-release
Pre-release

Choose a tag to compare

@marjoncajocon marjoncajocon released this 06 Oct 00:36

mmc 0.3.0: mmc now brings its own Linux tools. cp -rfv, grep, sed, awk, tar, sha256sum and about a hundred more work on a bare Windows PC, with no git-bash needed. mmc is a small, portable, git-bash style shell written from scratch in pure C11, with its own terminal window, mmc-term. No installer and no dependencies: unzip it anywhere, even on a USB drive, and that folder becomes /.

Download

File For
mmc-shell-0.3.0-windows-x64.zip Windows 10/11, most PCs
mmc-shell-0.3.0-windows-arm64.zip Windows on ARM
mmc-shell-0.3.0-linux-x64.tar.gz / -linux-arm64.tar.gz Linux (not yet tested on a real machine)
mmc-shell-0.3.0-macos-x64.tar.gz / -macos-arm64.tar.gz macOS (not yet tested)
mmc-shell-0.3.0-linux-arm.tar.gz the shell only, older 32 bit Android phones (Termux)

Check a download with sha256sum -c SHA256SUMS.txt (mmc can now do that by itself).

Windows: unzip, add the folder to your PATH, then type mmc-term (the window) or mmc-shell (the shell in another terminal). The programs are not code-signed yet, so SmartScreen may say "Windows protected your PC": click More info → Run anyway.

What's new in 0.3.0

Built-in Linux tools. A Windows PC has no cp, grep or tar unless git-bash is installed, so mmc now brings its own, written from scratch with the GNU options and messages. cp -rfv src dst looks the same on every system.

files ls cat cp mv rm rmdir mkdir touch ln find chmod du df file stat readlink realpath basename dirname mktemp truncate
text grep egrep fgrep sed awk sort uniq cut head tail tee wc tr diff seq tac rev nl paste comm join fold expand unexpand split shuf column fmt cmp
binary od xxd hexdump strings
checksums md5sum sha1sum sha224sum sha256sum sha384sum sha512sum cksum sum base64 base32
archives tar (with -z), gzip gunzip zcat zip unzip
system ps watch uname hostname whoami id cal date nproc printenv tty env which clear sleep yes expr sync nohup timeout xargs cygpath
  • They are used only when the PATH has no program of that name, so on Linux and macOS the system's own tools still answer. builtin grep ... forces mmc's version.
  • mmc's find, sort, hostname, whoami, timeout and expand win over the different Windows programs of the same name (type find.exe for the Windows one).
  • In a pipeline they stream like programs (tail -f log | grep x works), and Ctrl-C stops them.
  • bash and sh run mmc itself when no other bash is installed, so xargs ... bash -c and find -exec bash -c work.
  • help lists them all.

Regular expressions. These were rewritten: basic and extended syntax, UTF-8, POSIX leftmost-longest matching. They are used by [[ =~ ]], grep, sed and awk.

The terminal (mmc-term)

  • Ctrl+=, Ctrl+- and Ctrl+0 now keep the window size and change the number of rows and columns, so full-screen programs (editors, htop) redraw at the new size right away.
  • Programs can change the font size (OSC 50) and the mouse pointer shape (OSC 22, e.g. a hand over a clickable item).
  • Ctrl+/ sends ^_ like xterm, so "toggle comment" works in nano, vim and other editors.

Known limits of the tools: tar knows gzip only (no bzip2, xz or zstd). zip has no encryption and no archives over 4 GB. chmod on Windows can only set or clear the read-only bit. ln -s on Windows needs Developer Mode (or an administrator). sort compares bytes (like LC_ALL=C). grep -P is treated as -E. diff has no -y. awk is POSIX awk plus the most-used gawk extensions, but has no asort, PROCINFO or @include.

What is in it

The shell (mmc)

  • Runs bash scripts: passes 440 bash compatibility cases, and reads the shell scripts of PortableGit, Flutter, emsdk and the Android SDK
  • git-bash style paths on Windows (/, /home/you, /d/tools = D:\tools), converted automatically for Windows programs
  • /etc/profile, ~/.mmcrc, and your own programs in /usr/bin
  • Line editor with history, Ctrl+R search, Tab completion and programmable completion

The terminal (mmc-term)

  • Tabs (drag to reorder) and split panes
  • Themes: dark, green, gruvbox, red, light (Ctrl+Shift+L)
  • JetBrains Mono Nerd Font included, with ligatures, Nerd Font icons and color emoji
  • Find (Ctrl+Shift+F), clickable links, text reflow on resize
  • xterm/VT compatible: runs nano, vim, micro, htop-style tools, the kitty keyboard protocol and sixel images (sixel on Windows needs Windows Terminal's conpty.dll + OpenConsole.exe next to mmc-term.exe)

Status

Windows 11: fully tested. Linux and macOS: they build cleanly but have not been run on real machines yet. Bug reports are welcome.

mmc-shell 0.2.0

mmc-shell 0.2.0 Pre-release
Pre-release

Choose a tag to compare

@marjoncajocon marjoncajocon released this 21 Sep 08:37

The first release of mmc: a small, portable, git-bash style shell written from scratch in pure C11, with its own terminal window, mmc-term. No installer and no dependencies: unzip it anywhere, even on a USB drive, and that folder becomes /.

Download

File For
mmc-shell-0.2.0-windows-x64.zip Windows 10/11, most PCs
mmc-shell-0.2.0-windows-arm64.zip Windows on ARM
mmc-shell-0.2.0-linux-x64.tar.gz / -linux-arm64.tar.gz Linux (not yet tested on a real machine)
mmc-shell-0.2.0-macos-x64.tar.gz / -macos-arm64.tar.gz macOS (not yet tested)
mmc-shell-0.2.0-linux-arm.tar.gz the shell only, older 32 bit Android phones (Termux)

Check a download with sha256sum -c SHA256SUMS.txt.

Windows: unzip, add the folder to your PATH, then type mmc-term (the window) or mmc-shell (the shell in another terminal). The programs are not code-signed yet, so SmartScreen may say "Windows protected your PC": click More info → Run anyway.

What is in it

The shell (mmc)

  • Runs bash scripts: passes 440 bash compatibility cases, and reads the shell scripts of PortableGit, Flutter, emsdk and the Android SDK
  • git-bash style paths on Windows (/, /home/you, /d/tools = D:\tools), converted automatically for Windows programs
  • /etc/profile, ~/.mmcrc, and your own programs in /usr/bin
  • Line editor with history, Ctrl+R search, Tab completion and programmable completion

The terminal (mmc-term)

  • Tabs (drag to reorder) and split panes
  • Themes: dark, green, gruvbox, red, light (Ctrl+Shift+L)
  • JetBrains Mono Nerd Font included, with ligatures, Nerd Font icons and color emoji
  • Find (Ctrl+Shift+F), clickable links, text reflow on resize
  • xterm/VT compatible: runs nano, vim, micro, htop-style tools, the kitty keyboard protocol and sixel images (sixel on Windows needs Windows Terminal's conpty.dll + OpenConsole.exe next to mmc-term.exe)

Status

Windows 11: fully tested. Linux and macOS: they build cleanly but have not been run on real machines yet. Bug reports are welcome.