ROSH, a read-only shell, is intended to be exactly that: a read-only shell. Any operation that may write to the file system/disk will not be implemented.
That said, it is designed to make exploring the contents of a file system/disk possible from the Syslinux environment. Primarily, it is geared towards the disk-based variants as TFTP currently does not have any standardized method for retrieving a directory listing.
The internal commands currently implemented include help, man, ls, dir, more, cd, pwd, run, quit and exit.
[BETA] This page is intended to start documenting the BETA COM32 module rosh.c32, a read-only shell. Feedback on this page and on my module are welcome. If I'm doing something wrong, you see an area that could you improvement, think what I've done is helpful, etc, let me know. -Gene
2010-07-06: b062 (Build 62) has been incorporated into Syslinux-4.00.
Todos for b062: more has issues with the finer points of pagination and overflowing on a very large screen. ls needs to sort, columnize output. I'd like to abstract/extract menu.c32's command line editor for a generic system (with hopes of a history also).
I have code that fixes more (completely, I believe) but I need to reformat a git branch to make a nicer public tree. I'm currently at b068.
Most commands can be interpreted from non-ambiguous shortened strings of their native command word. For example, "h", "he", and "hel" will all be understood as "help" as there is no other command that begins with "h".
This may also be typed as "?" or "man". Typing "help" without a command will list all of the commands and a simple description. "help word" will provide the advanced help for the command "word", if available.
ls will operate like a simpler version of the *nix ls, listing files. For each file name passed, attempt to list it (be it a regular file or directory). Files, at this time, are listed in the order that they are found without ignoring "." or "..". -l (long format) and -F (classify) are understood.
"dir" calls ls.
Concatenate a file(s) to the screen.
NOTE: may have issues with very large screens (total area over 80x40); known issue.
Paginate a file(s) to the screen. Enter will output 1 more line while the spacebar will output a new screenworth of the file. q will quit.
"less" currently calls more but may become its own command.
change directory, be it relative or absolute. cd without parameters will return to the initial working directory at the time ROSH was called.
List the Present Working Directory.
Print the version string.
Run a command (just as if it was typed at the Syslinux "boot:" prompt).
May be abbreviated "r". Eventually, this may accept parameters to control the type (warm/cold, etc).
Also "quit". Return to the outside environment (Syslinux for .c32).
Name the base Syslinux config file in use.
Feedback on functionality, especially bugs and quirks, is welcome. Please use the Syslinux mailing list or IRC channel listed at Contact.