Read-Only SHell(rosh.c32)

From Syslinux Wiki
Jump to: navigation, search


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

[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

STATUS

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.

-Gene Cumm

Commands

Basics

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".

help

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

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.

cat

Concatenate a file(s) to the screen.

more

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.

cd

change directory, be it relative or absolute. cd without parameters will return to the initial working directory at the time ROSH was called.

pwd

List the Present Working Directory.

version

Print the version string.

run

Run a command (just as if it was typed at the Syslinux "boot:" prompt).

reboot

May be abbreviated "r". Eventually, this may accept parameters to control the type (warm/cold, etc).

exit

Also "quit". Return to the outside environment (Syslinux for .c32).

cfg

Name the base Syslinux config file in use.

Feedback/Contact

Feedback on functionality, especially bugs and quirks, is welcome. Please use the Syslinux mailing list or IRC channel listed at Contact.