I am working in my old project to build a *nix shell type for CP/M in MESCC.
Over the time, it has gain a lot of functionality and new commands.
It has now pipes, redirection, environment variables and aliases.
It has many built-in commands: cat, more, pwd, ls, rm, mv, echo, batch, man, etc. and it's able to execute CP/M programas too (well, by using the $$$.SUB trick).
It can execute a profile file to set-up the environment and aliases.
It can execute Samarux built-in commands directly from the CP/M CCP command line.
Samarux, (this is its name), can run on any computer running any CP/M version on a Z80 cpu.
My intention is to release the Samarux under the GLP license.
Well, very soon, I hope.