Standard or slightly modified features, with slightly different syntax:

The main thing to remember is that since mpsh has options after many special characters (pipe, background, redirect, etc.) it requires whitespace between all arguments. All of the whitespace in the following command is absolutely required:

mpsh$ comm arg arg | sort -nr > /dev/null &

Job PID substitution (%[n], %[string], %%, %-) is generalized. ie: "echo %vi" works.

Repeat last command / cd to last directory is "!", not "!!".

Command substitution is done with parentheses, not back-quotes.

Curly braces {...} are used for set theory, not command grouping.

Square brackets [...] are used for command grouping.

Quoting is a bit weird, see quoting section.

mpsh automatically collects status data on job exit, which is accessable via "history -l" or "history [n]". CPU time, etc.

Doesn't do stdin redirects yet.

"pwd" and "cd" follow the real path, not the path following symbolic links. Which is normal at the *nix low level, but counterintuitive to the user.

Because of the way history and jobs are interconnected, mpsh won't generate more than one job from one command line.