Aros/User/DOS
< Aros < UserThe AROS shell
In Wanderer (AROS Desktop / GUI), hit RightAROS + w (or F12 + w) (or use right mousebutton to access Wanderer's menu on the top of the screen) to open a shell window. To close the shell window, click on the top left X of the shell window or type in
endcli
Beginners Tutorial / Basic Usage
By default, the current directory is being displayed as part of your shell prompt. By default, your starting point is 'System:', the OS' root directory.
System:>
Type 'dir' and hit return. You will see the contents of the current directory.
System:>dir
You can run an executable or enter a directory just by typing it's name (and hitting return). Enter the 'C' directory simply by typing 'c' (AROS DOS is case insensitive):
System:>c
Now press the up-arrow button twice. AROS shell has got a command history, which allows you to repeat or re-use commands quickly. Now you should see the 'dir' command again, so hit return. You will see the contents of the 'c' directory you've just entered.
System:c>dir
This directory is AROS' primary location for executables which can be run from any directory. Now type '/' (just a slash) and hit return. You've just moved up one directory, back to 'System:'
System:>
Now try another 'dir' like command (which resides in the 'c' directory), 'list':
System:>list
The output is quite the same as 'dir'. But you can control the 'list' output with options. AROS DOS command line options are recognized by their name, and eventually their position on the command line. Try this:
System:>list sub d
The output will now consist of all the directories contents which names contain the substring 'd'. Another example, another option:
System:>list sub d all
This will list the contents matching 'd' recursively.
AROS dos script scripting
http://uk.aminet.net/docs/help/adosbegin.lha
http://se.aminet.net/pub/aminet/docs/help/adosbegin.lha
IF <condition>
- these commands are executed if the condition is true
ELSE
- these commands are executed if the condition is false
ENDIF
<condition> can be one of
WARN
- return code of the previous command is 5 or higher.
ERROR
- return code of the previous command is 10 or higher.
FAIL
- return code of the previous command is 20 or higher.
EXISTS <filename>
- check if file or directory exists.
<a> EQ <b>
- string comparison.
<a> EQ <b>
VAL - numeric comparison.
<a> GT <b>
- same as EQ, just means "greater than".
<a> GE <b>
- same as EQ, just means "greater or equal".
any of the above can be negated by NOT. e.g. use NOT GT for "less or equal" or NOT GE for "less than".
Escape Codes
07 Bell - Flash screen and sound bell 08 Backspace - move cursor back one position 09 vertical tab - move cursor up one line 10 line feed - move cursor down one line 11 is not listed in my book 12 form feed - clear screen 13 Carriage return - move cursor to start of line 14 Set MSB of each character. (Print extended chars) 15 Clear MSB of each character. *e[c - Clear window and turn all modes off *e[0m - All modes turned off *e[1m - Bold text enabled *e[3m - Italic enable *e[4m - Uderline *e[7m - Inverted text enable *e[8m - text becomes invisible (grey on grey) *e[3xm - Text colour becomes colour x (0-7) *e[4xm - Background colour becomes colour x (0-7) *e[n@ - Insert n spaces at cursor position. *e[nA - Cursor up n lines. Default 1 *e[nB - Cursor down n lines. Default 1 *e[nC - Cursor forward n characters. Default 1 *e[nD - Cursor back n characters. Default 1 *e[nE - Cursor next n lines(to column 1). Default 1 *e[nH - Cursor to row n (Y position) *e[;nH - Cursor to column n (X position) *e[y;xH - Cursor to position X,Y *e[J - Erase from cursor to end of display *e[K - Erase from cursor to end of line *e[I - Insert line above line at cursor *e[M - Delete line at cursor *e[nS - Scroll up n lines *e[nT - Scroll down n lines *e[nt - set page length to n lines (in current font) *e[nu - Set line length in characters of current font *e[nx - Set left offset in characters *e[ny - Set top offset in lines *e[0 p - Disable cursor: Note space between zero and p *e[ p - Enable cursor. Note space
Example of coloured text in the shell
prompt "*E[>1m*E[1;37;41m%n.%s> *E[0;32;41m" echo "*E[0;0H*E[J" </pre > <pre > *E[>1m </pre > Is a so called SGR command that omits the first few parameters. It turns BOLD ON. <pre > *E[1;37;41m%n.%s> </pre > SGR command that tells: - boldface (1) - foregroundcolor 7 (37). Which means it is using pencolor #7 (which is black by default on aros, hence the setpencolor command). - use background color 1 (41). Which means it is using pencolor #1 (which is black by default on aros). - %n means printing the current opened cli/shell-number - %s means printing the current path - > print a nice pipe token after all the above (and also a space-character). <pre > *E[0;32;41m </pre > SGR command that tells: - plain text (0) - foregroundcolor 2 (32). Which means it is using pencolor #2 (which is white by default on aros). - backgroundcolor 1 (41). Which means it is using pencolor #1 (which is black by default on aros). <pre > *E[0;0H </pre > command 'Cursor position' - set row to 0 (0) - set column to 0 (0) Please note that this does not seem to work on AROS as on classic (not checked). it seems that the lowest nr for AROS to use is 1 (for both left and top). <pre > *E[J </pre > command 'erase in display' (no additional parameters used in this command). ==Drives, Files, Assigns, Directories== A certain set of directories and files needed by the operating system will be present in every AROS distribution. Additionally, "assigns" (logical, not physical, drives) point to physical drive's partitions or locations in the partition's directory structure. ===Physical drives=== :By default harddrives on the IDE bus are assigned the drive names "DH0:", "DH1:", etc. :By default USB pendrives are assigned the drive names "DU0:", "DU1:", etc. :By default CD / DVD drives on the IDE bus are assigned the drive names "CD0:", "CD1:", etc. ===Logical drives, "assigns"=== <code> SYS: Extras: DEVS: Development: L: S: LIBS: C: ENV: RAM: ENVARC: MUI: T: </code> ===Directories and files=== ==== SYS:Prefs ==== ...contains all system preferences programs, like "Screenmode", "Locale", "Time", "Trident" (USB), etc. Is part of default path, thus entering "screenmode" in shell will bring up "Screenmode" prefs program. ==== SYS:Devs ==== ...contains device drivers and datatypes. Move a file to the corresponding subdirectory of "SYS:Storage" to disable it (after reboot). More (currently disabled) device drivers or datatypes may be found unter "SYS:Storage", move to "Devs:" to enable (after reboot). ==== SYS:Storage ==== ...is a directory meant to store optional or currently unused devices and datatypes. Move contents of "Devs:" (see above) here to disable device drivers (after reboot). ==== S:startup-sequence ==== ...is a script that will be run when starting up the operating system. It is also used by some applications to store their individial requirements (if any - mosty this will be a line like "assign PROGRAMNAME: SYS:path/to/installation/of/PROGRAMNAME") ==== S:user-startup ==== ...is a script that will be run by S:startup-sequence. It's the place to put your own stuff. Imagine you have some executable programs installed in a different directory than "C:" (or any other in default "path") but still want to access them without typing their full paths, you may add a line like this: "path WORK:path/to/my/program/ add". It is also used by some applications to store their individial requirements (see above). ==== S:shell-startup ==== ...is a script that will be run when starting up a new shell. By default, it contains commands that define the look of your shell prompt. See description of 'prompt' command. ==AROS DOS Commands Reference== {| class="wikitable" !Key !desc |---- |/A | Required argument |---- |/F | Final argument in list |---- |/K | Keyword must be entered with argument |---- |/M | Multiple arguments |---- |/N | Number |---- |/S | Switch (optional) |---- |} {| class="wikitable" width="90%" ! colspan="2" |Addbuffers |---- |width="20%"| Format: | Addbuffers Drive/A Buffers/N |---- |Purpose: | Add memory to disk buffers to improve speed. |---- |Parameters: | ;Drive: Name of drive ;Buffers: Number of 512k buffers to add. |---- |Example: | Addbuffers DH0: 10 |---- |} {| class="wikitable" width="90%" !colspan="2" |AddDatatypes |---- |width="20%"| Format: | AddDataTypes files/M QUIET/S REFRESH/S LIST/S |---- |Purpose: | Activates datatypes or adds another datatype if not detected at startup |---- |Parameters: | ;files: List of datatypes to add, ;Quiet: No output, ;Refresh: Update datatypes. |---- |Example: | AddDataTypes gif.datatype REFRESH |---- |} {| class="wikitable" width="90%" !colspan="2" |Alias |---- |width="20%"| Format: | Alias Name String/F |---- |Purpose: | Assigns a short name to a dos command. |---- |Parameters: | ;Name: Alias name, ;String: String or command to use for alias. |---- |Example: | Alias Del Delete |---- |} {| class="wikitable" width="90%" !colspan="2" |Ask |---- |width="20%"| Format: | Ask Prompt/A |---- |Purpose: | Asks a question in a script (reply y/n). Use IF WARN to test for a yes (value 5). |---- |Parameters: | ;Prompt: Text to be displayed. |---- |Example: | Ask "Are you sure? Y/n" |---- |} {| class="wikitable" width="90%" !colspan="2" |Assign |---- |width="20%"| Format: | Assign Name Target/M LIST/S EXISTS/S DISMOUNT/S DEFER/S PATH/S ADD/S REMOVE/S |---- | | VOLS/S DIRS/S DEVICES/S |---- |Purpose: | Assign names to directory paths. |---- |Parameters: | ;Name: Name of the assign, ;Target: Directory path, ;List: Display list of assigns ;Exists: Test if assign exists (use IF WARN), ;Dismount: Remove assign ;Defer: Assign later ;Path: Add assign with path, ;Add: Add a new target to existing path (like LIBS:) ;Remove:Remove an assign, ;Vols: List volumes, ;Dirs:List directories, ;Devices: List devices. |---- |Example: | Assign Development: Extras:bin |---- |} {| class="wikitable" width="90%" !colspan="2" |Avail |---- |width="20%"| Format: | Avail CHIP/S FAST/S TOTAL/S FLUSH/S |---- |Purpose: | Memory availability |---- |Parameters: | ;Chip: Display chip memory ;Fast: Display fast memory ;Total: Display all memory ;Flush: Free up memory |---- |Example: | Avail TOTAL |---- |} {| class="wikitable" width="90%" !colspan="2" |Break |---- |width="20%"| Format: | Break Process/A/N ALL/S C/S D/S E/S F/S |---- |Purpose: | Stop a program (see Status) |---- |Paramters: | ;Process: Process name or Port ;All: Apply C,D,E and F ;C: Apply Ctrl+C ;D: Apply Ctrl+d ;E: Apply Ctrl+E ;F: Apply Ctrl+F |---- |Example: | Break 2 C |---- |} {| class="wikitable" width="90%" !colspan="2" |CD |---- |width="20%"| Format: | CD Dir/A |---- |Purpose: | Change directory |---- |Parameters: | ;Dir: Directory to change to |---- |Example: | CD Text_Files |---- |} {| class="wikitable" width="90%" !colspan="2" |ChangeTaskPri |---- |width="20%"| Format: | ChangeTaskPri Pri=Priority/A/N Process/K/N |---- |Purpose: | Changes program's execution priority (see Status) |---- |Parameters: | ;Pri: Priority to apply (-128 to +127) ;Process: Process number (see Status) |---- |Example: | ChangeTaskPri 2 1 |---- |} {| class="wikitable" width="90%" !colspan="2" |Conclip |---- |width="20%"| Format: | Conclip Unit/N OFF/S |---- |Purpose: | Activates clipboard device |---- |Parameters: | ;Unit: Clipboard unit ;Off: Turn off clipboard |---- |Example: | Conclip 1 |---- |} {| class="wikitable" width="90%" !colspan="2" |Copy |---- |width="20%"| Format: | Copy From/M To/A ALL/S QUIET/S BUF=BUFFER/K/N CLONE/S DATES/S NOPRO/S COM/S NOREQ/S |---- |Purpose: | Copy files (with/without protection bits) |---- |Parameters: | ;From: Files to copy, ;To: Directory or file to copy to ;All: Copy all files, ;Quiet: No output, ;Buffer: Size of buffer (default = 100K) ;Clone: Copy file and datestamp, protect bits and comment ;Dates: Copy datestamp as well ;NoPro: Set default protection bits ;Com: Copy comment ;NoReq: No requester popups |---- |Example: | Copy mydoc.txt docs: Dates |---- |} {| class="wikitable" width="90%" !colspan="2" |Date |---- |width="20%"| Format: | Date Day Date Time To=Ver/K |---- |Purpose: | Display/change date or time |---- |Parameters: | ;Day: Day of the Week, ;Date: Date in dd-mmm-yy format ;Time: Time in hh:mm[:ss] format ;To: Save to filename |---- |Example: | Date To=date.txt |---- |} {| class="wikitable" width="90%" !colspan="2" |Delete |---- |width="20%"| Format: | Delete File/M/A ALL/S QUIET/S FORCE/S |---- |Purpose: | Delete files and/or directories. |---- |Parameters: | ;Files: One or more files ;All: Delete all subfolders and files ;Quiet: No output ;Force: Ignore protection flags when deleting |---- |Example: | Delete OldFilesDir All |---- |} {| class="wikitable" width="90%" !colspan="2" |Dir |---- |width="20%"| Format: | Dir Dir Opt/K ALL/S DIRS/S FILES/S INTER/S |---- |Purpose: | List contents of a directory |---- |Parameters: | ;Dir: Directory ;Opt: Option ;Dirs: List directories ;Files: List Files ;Inter: Interactive mode. |---- |Example: | Dir S: Files |---- |} {| class="wikitable" width="90%" !colspan="2" |Diskchange |---- |width="20%"| Format: | Diskchange Device/A |---- |Purpose: | Tell Dos that a disk has been swapped in a non-autosensing disk drive. |---- |Parameters: | ;Device: Name of removable device. |---- |Example: | Diskchange DU2: |---- |} {| class="wikitable" width="90%" !colspan="2" |Echo | |---- |width="20%"| Format: | Echo String/M NOLINE/S FIRST/K/N LEN/K/N TO/K |---- |Purpose: | Display text in a script or part of a string of text. |---- |Parameters: | ;String: Text to display ;NoLine: Do not print a new line ;First: Position of first character ;Len: Length of substring ;To: Destination file |---- |Example: | Echo "Enter your name: " NoLine |---- |} {| class="wikitable" width="90%" !colspan="2" |Else |---- |width="20%"| Format: | Else |---- |Purpose: | Used with IF, if not true do these commands |---- |Example: | <code> If Exists s:User-Startup Else Endif </code> |---- |} {| class="wikitable" width="90%" !colspan="2" |EndCLI |---- |width="20%"| Format: | EndCLI |---- |Purpose: | Close CLI console window |---- |Example: | EndCLI |---- |} {| class="wikitable" width="90%" !colspan="2" |Endif |---- |width="20%"| Format: | Endif |---- |Purpose: | End a IF..ELSE..ENDIF block |---- |Example: | If $Age GT 65 Else Endif |---- |} {| class="wikitable" width="90%" !colspan="2" |Endskip |---- |width="20%"| Format: | Endskip |---- |Purpose: | Stops a SKIP branch (for debugging) |---- |Example: | Endskip |---- |} {| class="wikitable" width="90%" !colspan="2" |Eval |---- |width="20%"| Format: | Eval Value1/A Op Value2/M To/K LFormat/K |---- |Purpose: | Evaluate a simple arithmetic expression |---- |Parameters: | ;Value1, Value2: Values to evaluate (Decimal, Hex (0xn) or Octal (0nnn), ;Op: Operlexiaation (+,-,*,/,^,%), ;To: File to save result, ;LFormat: Output format string (use *n to give a line feed). |---- |Example: | Eval $count + 1 to env:count |---- |} {| class="wikitable" width="90%" !colspan="2" |Execute |---- |width="20%"| Format: | Execute File/A |---- |Purpose: | Execute a script or batch file |---- |Parameters: | ;File: Script file to execute |---- |Example: | Execute PCD |---- |} {| class="wikitable" width="90%" !colspan="2" |Failat |---- |width="20%"| Format: | Failat RCLIM/A |---- |Purpose: | Change failure limit for scripts (0,5,10,20) |---- | | (0 - Ok, 5 - Warn, 10 - Error, 20 - Fail) |---- |Parameters: | ;RCLIM: Failat number (0-20) |---- |Example: | Failat 20 |---- |} {| class="wikitable" width="90%" !colspan="2" |Fault |---- |width="20%"| Format: | Fault Error/N/M |---- |Purpose: | Display error message from a code |---- |Parameters: | ;Error: One or more error numbers |---- |Example: | Fault 221 |---- | | "Fault 221: Disk is full" |---- |} {| class="wikitable" width="90%" !colspan="2" |FileNote |---- |width="20%"| Format: | Filenote File/A Comment ALL/S QUIET/S |---- |Purpose: | Attach a comment to a file (see LIST) |---- |Parameters: | ;File: File to add comment to ;Comment: Text to apply ;All: Apply to all files, ;Quiet: No output |---- |Example: | FileNote List.txt "A list of people's names" |---- |} {| class="wikitable" width="90%" !colspan="2" |Format |---- |width="20%"| Format: | Format Device Drive/K/A Name/K/A OFS/FFS/SFS |---- | | DIRCACHE/S NODIRCACHE/S NOICONS/S QUICK/S |---- |Purpose: | Initialises AROS disks (in System drawer) |---- |Parameters: | ;Device|Drive: Disk device or name to format ;Name: New volume name ;OFS: Old Filing System ;FFS: Fast File System ;Intl|International: FFS International mode ;NoIntl|NoInternational: International mode off ;SFS: Smart Filesystem ;DirCache|NoDirCache: Directory caching on or off, ;NoIcons: No disk or trash icons ;Quick: Less thorough format |---- |Example: | format drive dh0: name AROS Format Drive DH2: Name Docs SFS NOICONS QUICK |---- |} {| class="wikitable" width="90%" !colspan="2" |Get |---- |width="20%"| Format: | Get Name/A |---- |Purpose: | Returns contents of local env variable |---- |Parameters: | ;Name: Enviornment variable name |---- |Example: | Get RC |---- |} {| class="wikitable" width="90%" !colspan="2" |Getenv |---- |width="20%"| Format: | Getenv Name/A |---- |Purpose: | Return contents of a global environment variable |---- |Parameters: | ;Name: Enviornment variable name |---- |Example: | Getenv Wanderer |---- |} {| class="wikitable" width="90%" !colspan="2" |Iconx |---- |width="20%"| Format: | Iconx |---- |Purpose: | Enables a script to be run from Workbench. The script must have a Project .info file and |---- | | the Default Tool set to c:IconX to run it. |---- |Example: | Iconx |---- |} {| class="wikitable" width="90%" !colspan="2" |If |---- |width="20%"| Format: | If NOT/S WARN/S ERROR/S FAIL/S EQ/K GT/K GE/K VAL/S EXISTS/K |---- |Purpose: | If condition is true execute following commands until an ELSE or ENDIF occurs. |---- |Parameters: | ;Not: Reverse boolean result, ;Warn: Test warn flag from previous command, ;Error: Test error flag from previous command, ;Fail: Test fail flag from previous command, ;EQ:Equality test, ;GT: Greater than test, ;GE:Greater or equal test, ;VAL:Input is a number, ;Exists: Test file exists. |---- |Example: | IF WARN, IF $count GT 10, IF EXISTS C:List |---- |} {| class="wikitable" width="90%" !colspan="2" |Info |---- |width="20%"| Format: | Info Device |---- |Purpose: | Displays information about disks |---- |Parameters: | ;Device: Name of device to display |---- |Example: | Info DH0: |---- |} {| class="wikitable" width="90%" !colspan="2" |Install |---- |width="20%"| Format: | Install Device/A NOBOOT/S CHECK/S FFS/S |---- |Purpose: | Saves a bootblock to a disk. If you have only one drive type INSTALL ? and |---- | | swap disks and then type DF0: and press RETURN to save bootblock. |---- |Parameters: | ;Device: Disk to install bootblock, ;NoBoot: Erase bootblock, ;Check: Test for bootblock, |---- | | FFS = Use Fast File System. |---- |Example: | Install DH0: |---- |} {| class="wikitable" width="90%" !colspan="2" |IPrefs |---- |width="20%"| Format: | IPrefs |---- |Purpose: | Initialises preferences files on startup. |---- |Example: | IPrefs |---- |} {| class="wikitable" width="90%" !colspan="2" |Join |---- |width="20%"| Format: | Join File/M/A AS=TO/K/A |---- |Purpose: | Join two or files together. |---- |Parameters: | ;File: File(s) to join together, ;To|as: Destination file |---- |Example: | Join File1 File2 File3 as FileFull |---- |} {| class="wikitable" width="90%" !colspan="2" |Lab |---- |width="20%"| Format: | Lab Label |---- |Purpose: | State a Label to Skip to in a script |---- |Parameters: | ;Label: Name of label |---- |Example: | Lab PROC2 |---- |} {| class="wikitable" width="90%" !colspan="2" |List |---- |width="20%"| Format: | List Dir/M P=PAT/K KEYS/S DATES/S NODATES/S To/K Sub/K Since/K Upto/K |---- | | QUICK/S BLOCK/S NOHEAD/S FILES/S DIRS/S LFORMAT/K ALL/S |---- |Purpose: | List file details in a directory. |---- |Parameters: | ;Dir: One or more directory name(s) ;Keys: Display keys ;NoDates: Do not display dates ;To: Destination file ;Sub: Subdirectories included ;Since: List files since date given ;Upto: List files upto given date ;Quick: Simple directory list ;Block: List files in block sizes ;NoHead: Do not display header lines ;Files: Files only ;Dirs: Directorys only ;LFormat: Output list using this format string ;All: All files |---- |Example: | List Development: Block Dates Since=01-Jul-00 |---- |} {| class="wikitable" width="90%" !colspan="2" |Lock |---- |width="20%"| Format: | Lock Drive/A ON/S OFF/S Passkey |---- |Purpose: | Lock a device from writing. |---- |Parameters: | ;Drive: Drive to lock ;On|Off: Turn lock on or off ;PassKey: Specify password. |---- |Example: | Lock DH1: On GHK459 |---- |} {| class="wikitable" width="90%" !colspan="2" |MakeDir |---- |width="20%"| Format: | Makedir Name/M |---- |Purpose: | Create one or more new directories. |---- |Parameters: | ;Name: One or more directories to create. |---- |Example: | MakeDir DH1:Docs DH1:Basic DH0:TempFiles |---- |} {| class="wikitable" width="90%" !colspan="2" |MakeLink |---- |width="20%"| Format: | MakeLink From/A To/A HARD/S FORCE/S |---- |Purpose: | Creates a logical link between files |---- |Parameters: | ;From: Link file ;To: Actual file ;Hard: Hard link ;Force: Link to sub-directory |---- |Example: | MakeLink T C:Type Hard |---- |} {| class="wikitable" width="90%" !colspan="2" |Mount |---- |width="20%"| Format: | Mount Device/M From/K |---- |Purpose: | Loads and mount a device |---- |Parameters: | ;Device: Device to mount ;From: Mount file |---- |Example: | Mount DEVS:CD0 |---- |} {| class="wikitable" width="90%" !colspan="2" |NewShell |---- |width="20%"| Format: | NewShell Window From |---- |Purpose: | Open a new Shell console (CON) window |---- |Parameters: | ;Window: Window config string ;From: Alternative script to Shell-Script. |---- |Example: | NewShell From S:Shell-Startup |---- |} {| class="wikitable" width="90%" !colspan="2" |Path |---- |width="20%"| Format: | Path Path/M ADD/S SHOW/S RESET/S REMOVE/S QUIET/S |---- |Purpose: | Set or change the program search path |---- |Parameters: | ;Path: Directory path to change ;Add: Add path ;Show: Display path, ;Reset: Clear path ;Remove: Remove entry from path ;Quiet: No output |---- |Example: | Path SC:C Add |---- |} {| class="wikitable" width="90%" !colspan="2" |Prompt |---- |width="20%"| Format: | Prompt Prompt |---- |Purpose: | Change the prompt text (Codes: %R = last return code, |---- | | %S = Current path, %N = CLI Number) |---- |Parameters: | ;Prompt: Path format |---- |Example: | Prompt "%N.%S> " |---- |} {| class="wikitable" width="90%" !colspan="2" |Protect |---- |width="20%"| Format: | Protect File/A Flags ADD/S SUB/S ALL/S QUIET/S |---- |Purpose: | Change the 'rwedsp' flags of a file. (r=read,w=write, e=execute,d=delete,s=script,p=pure) |---- |Parameters: | ;File: File to change ;Flags: One or more flags ;Add: Add flag(s) to existing flags ;Sub: Remove flags from file ;All: Change all files ;Quiet: No output |---- |Example: | Protect Editor rwed |---- |} {| class="wikitable" width="90%" !colspan="2" |Quit |---- |width="20%"| Format: | Quit RC/N |---- |Purpose: | Quit a script with optional return code |---- |Parameters: | ;RC: Return Code |---- |Example: | Quit 5 |---- |} {| class="wikitable" width="90%" !colspan="2" |Relabel |---- |width="20%"| Format: | Relabel Drive/A Name/A |---- |Purpose: | Change name of a disk |---- |Parameters: | ;Drive: Disk to change ;Name: New volume name |---- |Example: | Relabel DH2: Documents |---- |} {| class="wikitable" width="90%" !colspan="2" |Rename |---- |width="20%"| Format: | Rename From/A/M To=As/A QUIET/S |---- |Purpose: | Rename or move one or more files |---- |Parameters: | ;From: Old filename ;To|As: New filename ;Quiet: No output |---- |Example: | Rename MyDoc as MyDoc.doc |---- |} {| class="wikitable" width="90%" !colspan="2" |RequestChoice |---- |width="20%"| Format: | RequestChoice Title/A Body/A Gadgets/M PubScreen/K |---- |Purpose: | Asks for input via a requester |---- |Parameters: | ;Title: Title for dialog box ;Body: Text for dialog box ;Gadgets: List of buttons ;Pubscreen: Screen to use |---- |Example: | RequestChoice >ENV:RT "Format" "About to format your hard disk*nAre you sure?" "Go ahead" "No way!" |---- |} {| class="wikitable" width="90%" !colspan="2" |RequestFile |---- |width="20%"| Format: | RequestFile Drawer File/K Pattern/K Title/K Positive/K Negative/K AcceptPattern/K RejectPattern/K |---- | | SAVEMODE/S MULTISELECT/S DRAWERSONLY/S NOICONS/S PUBSCREEN/K |---- |Parameters: | ;Drawer: Initial drawer to use, ;File: Initial file name, ;Pattern: Use pattern as filter, ;Title: Title of dialog box, ;Positive: Text for OK button, ;Negative: Text for Cancel button, ;AcceptPattern: Defines file pattern(s) to show (overrides Pattern), ;RejectPattern: Pattern(s) of files to hide, ;SaveMode: Change colours to indicate Save or other mode, ;MultiSelect: Allow multiple file selection, ;DrawersOnly: Display only directories, ;NoIcons: Suppress info files, ;PubScreen: Screen to use. |---- |Purpose: | Asks for a filename via ASL file requester |---- |Example: | RequestFile >ENV:File Title "Select a File" Positive "Load" Noicons |---- |} {| class="wikitable" width="90%" !colspan="2" |Resident |---- |width="20%"| Format: | Resident Name File REMOVE/S ADD/S REPLACE/S PURE=FORCE/S SYSTEM/S |---- |Purpose: | Stores AmigaDOS command in memory (quicker then reloading from disk each time it is executed). |---- | | To ensure a command can be made resident check the pure flag (see List). |---- |Parameters: | ;Name|File: File to be made resident, ;Remove: Remove file from resident list, ;Add: Add file to resident memory, ;Pure|Force: Force a non-pure file to be resident, ;System: Show system's resident code segments. |---- |Example: | Resident C:Dir Pure |---- |} {| class="wikitable" width="90%" ! colspan="2" |Run |---- |width="20%"| Format: | Run Command/F |---- |Purpose: | Execute a program in the background (multi-task) |---- |Parameters: | ;Command: Program to run |---- |Example: | Run DirectoryOpus > NIL: |---- |} {| class="wikitable" width="90%" !colspan="2" |Search |---- |width="20%"| Format: | Search From/M Search/A ALL/S NONUM/S QUIET/S QUICK/S FILE/S PATTERN/S |---- |Purpose: | Search for a string in a file or a file on a disk |---- |Parameters: | ;From: Directory to search from, ;Search: Text to search for, ;All: Search sub-directories, ;NoNum: Line numbers are not displayed, ;Quiet: No Output, ;Quick: Reduce output listing, ;File: Search a file rather than content, ;Pattern: Search using a pattern. |---- |Example: | Search SYS: "List" File All |---- |} {| class="wikitable" width="90%" !colspan="2" |Set |---- |width="20%"| Format: | Set Name String/F |---- |Purpose: | Sets or lists a local environment variable (local to current shell or current process) |---- |Parameters: | ;Name: Variable name, ;String: Text or number for variable |---- |Example: | Set MyName "Peter" |---- |} {| class="wikitable" width="90%" !colspan="2" |SetClock |---- |width="20%"| Format: | Setclock LOAD/S SAVE/S RESET/S |---- |Purpose: | Load or set the date and time from battery-backed clock |---- |Parameters: | ;Load: Load date from clock ;Save: Save date and time to clock ;Reset: Resets the click |---- |Example: | Date 27-Nov-00 10:00, SetClock Save |---- |} {| class="wikitable" width="90%" !colspan="2" |SetDate |---- |width="20%"| Format: | Setdate File/A Weekday Date Time ALL/S |---- |Purpose: | Set date of a file or directory (see List) |---- |Parameters: | ;File: File to change, ;Weekday: Day of week, ;Date: Date, ;Time: Time, ;All: All files |---- |Example: | Setdate DEVS: Monday 10:30 |---- |} {| class="wikitable" width="90%" !colspan="2" |Setenv |---- |width="20%"| Format: | Setenv Name String/F |---- |Purpose: | Change the contents of a environment variable |---- |Parameters: | ;Name: Variable name ;String: Text or number for variable |---- |Example: | Setenv Wanderer "44" |---- |} {| class="wikitable" width="90%" !colspan="2" |SetKeyboard |---- |width="20%"| Format: | Setkeyboard Keymap/A |---- |Purpose: | Sets keyboard layout using layouts in Devs:Keymaps. You can use the Input preferences instead. |---- |Parameters: | ;Keymap: Keymap file to use |---- |Example: | SetKeyboard USA0 |---- |} {| class="wikitable" width="90%" !colspan="2" |Skip |---- |width="20%"| Format: | Skip Label BACK/S |---- |Purpose: | Jump to a label in a script (see Lab). Use back if label occurs before Skip command. |---- |Parameters: | ;Label: Label name to skip to, ;Back: Go back in script to label |---- |Example: | Skip Lab2 Back |---- |} {| class="wikitable" width="90%" !colspan="2" |Sort |---- |width="20%"| Format: | Sort From/A To/A Colstart/K CASE/S NUMERIC/S |---- |Purpose: | Sort a file and output to new file |---- |Parameters: | ;From: File to sort, To = Output file, Colstart = Column to sort from, |---- | | ;Case: Upper case entries are done first, ;Numeric: Input treated as numbers. |---- |Example: | Sort Figures To SortedFigures Numeric |---- |} {| class="wikitable" width="90%" !colspan="2" |Stack |---- |width="20%"| Format: | Stack Size/N |---- |Purpose: | Change/display amount of stack space in bytes. |---- |Parameters: | ;Size: Stack size in bytes |---- |Example: | Stack 1000000 |---- |} {| class="wikitable" width="90%" !colspan="2" |Status |---- |width="20%"| Format: | Status Process/N FULL/S TCB/S CLI=ALL/S COM=COMMAND/K |---- |Purpose: | Display status of running programs. TCB is Task Control Block |---- |Parameters: | ;Process: Task number ;Full: Full output of process info ;TCB: Information except the command name ;CLI|All: Command info only ;COM|Command: Search for command |---- |Example: | Status 2 Full |---- |} {| class="wikitable" width="90%" !colspan="2" |Type |---- |width="20%"| Format: | Type From/A/M TO/K OPT H|N/K HEX/S NUMBER/S |---- |Purpose: | Display contents of text file on screen and binary files using HEX with optional line numbers. |---- |Parameters: | ;From: Text file to display ;To: Output file or device ;Opt H | Hex: Display as hex values ;Opt N | Number: Number the lines. |---- |Example: | Type C:DIR HEX |---- |} {| class="wikitable" width="90%" !colspan="2" |Unset |---- |width="20%"| Format: | Unset Name |---- |Purpose: | Remove a local env variable |---- |Parameters: | ;Name: Environment variable name |---- |Example: | Unset MyName |---- |} {| class="wikitable" width="90%" !colspan="2" |Unsetenv |---- |width="20%"| Format: | Unsetenv Name |---- |Purpose: | Remove a global env variable |---- |Parameters: | ;Name: Environment variable name |---- |Example: | Unsetenv Wanderer |---- |} {| class="wikitable" width="90%" !colspan="2" |Unalias |---- |width="20%"| Format: | Unalias Name |---- |Purpose: | Remove a short name for a command |---- |Parameters: | ;Name: Alias name |---- |Example: | UnAlias MyDir |---- |} {| class="wikitable" width="90%" !colspan="2" |Version |---- |width="20%"| Format: | Version Name Version/N Revision/N FILE/S FULL/S Unit/N INTERNAL/S RES/S |---- |Purpose: | Display workbench, library or device version information. |---- |Parameters: | ;Name: File ;Version: Print Kickstart or Workbench number and sets env variables and sets Warn flag ;Revision: As Version but for Revision numer, File = Check file rather than memory |---- | | ;Full: Display full information, ;Internal: Check internal files, ;Res: Check resident files. |---- |Example: | Version kickstart Version=39 Revision=106 |---- |} {| class="wikitable" width="90%" !colspan="2" |Wait |---- |width="20%"| Format: | Wait Time/N SEC=SECS/S MIN=MINS/S UNTIL/K |---- |Purpose: | Wait for a specified period of time |---- |Parameters: | ;Time: Time period in either Sec (Seconds) or Mins (Minutes) ;Until: Wait until a time |---- |Example: | Wait Until 12:00 |---- |} {| class="wikitable" width="90%" !colspan="2" |Which |---- |width="20%"| Format: | Which File/A NORES/S RES/S ALL/S |---- |Purpose: | Find where a file is in command path (see Path) and sets Warn flag. |---- |Parameters: | ;File: File to locate ;NoRes: Resident list is not searched ;Res: Only the resident list is searched ;All: Search full path |---- |Example: | Which Multiview |---- |} {| class="wikitable" width="90%" !colspan="2" |Why |---- |width="20%"| Format: | Why |---- |Purpose: | Display reason why a previous command failed |---- |Example: | Why |---- |} ===Additional DOS commands=== <pre> DMS Format: DMS Read file[.DMS] [FROM dev:] [TEXT filetext] [CMODE mode] [LOW lowtrack] [HIGH hightrack] [NOVAL] [NOZERO] [ENCRYPT password] DMS Write file[.DMS],,, [TO dev:] [LOW lowtrack] [HIGH hightrack] [NOVAL] [NOTEXT] [NOPAUSE [DECRYPT password] DMS Repack file[.DMS] [TO dev:] [LOW lowtrack] [HIGH hightrack] [CMODE mode] DMS View file[.DMS],,, [FULL] DMS Text file[.DMS],,, DMS Test file[.DMS],,, DMS Help Purpose: To read, write or view Disk Masher disk images of floppy disks. Example: DMS Write MyDisk.DMS FROM DF0: Installer Format: Installer [SCRIPT] filename <[APPNAME] name> <[MINIUSER] level> <[DEFUSER] default> <[LOGFILE] logname> <[LANGUAGE] language> <NOPRETEND> <NOLOG> <NOPRINT> Purpose: To install an application via a installer script. Usually provided as a default tool for script files in icon. Example: Installer SCRIPT InstallApp APPNAME MyProgram LOGFILE DH0:MyProgram.log LHA Format: LHA [-options] <command> <archive[.LZH|LHA]> [[homedir] <filespec...] [@file] [destination] Purpose: To create, modify or list LHA or LZH files Examples: LHA a pictures.lha #?.jpg (archives all jpg files into pictures.lha) LHA l pictures.lha (lists all files in pictures.lha) LHA x pictures.lha (extracts all files from pictures.lha) LZX Format: LZX [-options] <command> <archive> [<file> ...] [<destdir>] Purpose: To create, modify or list LZX archive files. Examples: LZX a documents.lzx #?.doc (archives all doc files into documents.lzx) LZX l documents.lzx (lists all files in documents.lzx) LZX x documents.lzx (extracts all files from documents.lzx)
Additional DOS Information
Clear Screen Example: Echo "*E[0;0H*E[J" Purpose: Clears the screen. Uses printer commands to control text formatting in CLI, so *E is equivalent to ESC character.The command clear is normally defined using an Alias or an AmigaDOS script in S: folder. Text in Italics Example: Echo "*E[3mItalics*E[23m" Purpose: *E[3m turns on italics and *E[23m turns off italics Text in Bold Example: Echo "*E[1mBold*E[22m" Purpose: *E[1m turns on bold, and *E[22m turns off bold. Underline Text Example: Echo "*E[4mUnderline*E[24m" Purpose: *E[4m turns on underline, and *E24m turns off underline. Coloured Text Example: Echo "*E[32mRed Text*E[0m" Purpose: *E[nm where n=30-39 for foreground color or n=40-49 for background colour. *E[0m resets to normal character set.
Seems that Amiga shell allows an escape sequence to begin with just the 0x9B character, OR it allows the more traditional 0x1B character (033 in octal) followed the [ character. For sake of clarity, I will represent it by the C string \033[
AROS does not understand the \033[0m sequence, therefore you need to reset it using another colour sequence (on the assumption that the user has not changed the default Shell colours). This turns out to be \033[31;40m . It makes sense to play it safe, and follow it by the (ignored on AROS) \033[0m sequence.
Therefore my final highlight code looks like this:
printf("Before\033[32;43mDuring\033[31;40m\033[0mAfter\n");
Or if you code in E (like me) then it is this:
PrintF('Before\e[32;43mDuring\e[31;40m\e[0mAfter\n')
DOS commands only present in AROS
AddAudioModes | |
---|---|
Format: | |
Purpose: | |
Parameters: | Files/M Quiet/S Refresh/S Remove/S DblScan/S |
Example: | |
Beep | |
---|---|
Format: | |
Purpose: | |
Parameters: | |
Example: | |
CheckMem | |
---|---|
Format: | |
Purpose: | |
Parameters: | |
Example: | |
Delay | |
---|---|
Format: | |
Purpose: | |
Parameters: | Time/N Tick=Ticks/S |
Example: | |
DevList | |
---|---|
Format: | DevList |
Purpose: | gives a list of devices running - address, version, revision, opencnt, flags, name |
Parameters: | |
Example: | devlist |
LibList | |
---|---|
Format: | LibList |
Purpose: | gives address, version, revision, opencnt, flags, name of open libraries and mui |
Parameters: | |
Example: | liblist |
Reboot | |
---|---|
Format: | Reboot |
Purpose: | warm reboots machine - not functioning |
Parameters: | |
Example: | |
ResList | |
---|---|
Format: | reslist |
Purpose: | gives a list of resources - name and address |
Parameters: | |
Example: | reslist |
Shutdown | |
---|---|
Format: | shutdown |
Purpose: | power off computer |
Parameters: | |
Example: | not functioning |
TaskList | |
---|---|
Format: | tasklist |
Purpose: | gives a list of tasks running - address, type, priority, state, cpu, time, stack, used, name |
Parameters: | |
Example: | tasklist |
}
ExamplesIs there a way to unzip more say 10 zipped archived at a time list #?.zip lformat "unzip %N" >script
execute script
Resident >NIL: C:RequestChoice PURE
Resident >NIL: C:RequestFile PURE
; $VER: DMSMaker v1.0 (11.7.96) Richard Burke
lab Start
if EXISTS ENV:Choice
delete ENV:Choice >NIL:
endif
if EXISTS ENV:Tst
delete ENV:Tst >NIL:
endif
if EXISTS ENV:V
delete ENV:V >NIL:
endif
if EXISTS ENV:Re
delete ENV:Re >NIL:
endif
if EXISTS ENV:DMS
delete ENV:DMS >NIL:
endif
if EXISTS ENV:De
delete ENV:De >NIL:
endif
if EXISTS ENV:DeDev
delete ENV:DeVol >NIL:
endif
if EXISTS ENV:Cr
delete ENV:Cr >NIL:
endif
if EXISTS ENV:CrSv
delete ENV:CrSv >NIL:
endif
if EXISTS ENV:Mode
delete ENV:Mode >NIL:
endif
if EXISTS ENV:Mode1
delete ENV:Mode1 >NIL:
endif
which DMS all >ENV:DMS
RequestChoice >ENV:Choice "Welcome!" "Welcome to the DMSMaker! Choose an action" "Crunch" "Decrunch" "Repack" "View" "Test" "Quit"
if $Choice EQ 1
lab Dev
RequestFile >ENV:Cr DRAWERSONLY TITLE "Choose DEVICE to crunch" POSITIVE "Crunch" NEGATIVE "Return to menu"
if WARN
skip Start BACK
endif
if NOT EXISTS $Cr
echo "DEVICE does not exist! Choose again!"
skip Dev BACK
endif
RequestChoice >ENV:Mode1 "Crunch Mode" "Choose degree of crunching" "Best" "None" "Heavy1" "Heavy2" "Return to menu"
if WARN
skip Start BACK
endif
if $Mode1 EQ 1
echo "BEST" >ENV:Mode
endif
if $Mode1 EQ 2
echo "NONE" >ENV:Mode
endif
if $Mode1 EQ 3
echo "HEAVY1" >ENV:Mode
endif
if $Mode1 EQ 4
echo "HEAVY2" >ENV:Mode
endif
RequestFile >ENV:CrSv TITLE "Save crunched file as..." ACCEPTPATTERN "#?.dms" FILE ".dms" POSITIVE "Save" NEGATIVE "Return to menu"
if WARN
skip Start BACK
endif
$DMS read $CrSv FROM $Cr CMODE $Mode
echo "File crunched!"
endif
if $Choice EQ 2
lab Dec
RequestFile >ENV:De TITLE "Choose FILE to decrunch" ACCEPTPATTERN "#?.dms" POSITIVE "Decrunch" NEGATIVE "Return to menu"
if WARN
skip Start BACK
endif
if NOT EXISTS $De
echo "FILE does not exist! Choose again!"
skip Dec BACK
endif
lab DecDev
RequestFile >ENV:DeDev TITLE "Choose DEVICE to decrunch TO" DRAWERSONLY POSITIVE "Write" NEGATIVE "Return to menu"
if WARN
skip Start BACK
endif
if NOT EXISTS $DeDev
echo "DEVICE does not exist! Choose again!"
skip DecDev BACK
endif
$DMS write $De TO $DeDev
echo "File decrunched!"
endif
if $Choice EQ 3
lab Rep
RequestFile >ENV:Re TITLE "Choose FILE to repack" ACCEPTPATTERN "#?.dms" POSITIVE "Repack" NEGATIVE "Return to menu" FILE ".dms"
if WARN
skip Start BACK
endif
if NOT EXISTS $Re
echo "File does not exist! Choose again!"
skip Rep BACK
endif
RequestChoice >ENV:Mode1 "Crunch Mode" "Choose degree of crunching" "Best" "None" "Heavy1" "Heavy2" "Return to menu"
if WARN
skip Start BACK
endif
if $Mode1 EQ 1
echo "BEST" >ENV:Mode
endif
if $Mode1 EQ 2
echo "NONE" >ENV:Mode
endif
if $Mode1 EQ 3
echo "HEAVY1" >ENV:Mode
endif
if $Mode1 EQ 4
echo "HEAVY2" >ENV:Mode
endif
RequestFile >ENV:CrSv TITLE "Save repacked file as..." ACCEPTPATTERN "#?.dms" FILE ".dms" POSITIVE "Save" NEGATIVE "Return to menu"
if WARN
skip Start BACK
endif
$DMS repack $Re TO $CrSv CMODE $Mode
echo "File repacked!"
endif
if $Choice EQ 4
lab View
RequestFile >ENV:V TITLE "Choose DMS FILE to view" POSITIVE "View" NEGATIVE "Return to menu" ACCEPTPATTERN "#?.dms" FILE ".dms"
if WARN
skip Start BACK
endif
if NOT EXISTS $V
echo "FILE does not exist! Choose again!"
skip View BACK
endif
$DMS view $V
endif
if $Choice EQ 5
lab Test
RequestFile >ENV:Tst TITLE "Choose FILE to test" ACCEPTPATTERN "#?.DMS" POSITIVE "Test" NEGATIVE "Return to menu" FILE ".dms"
if WARN
skip Start BACK
endif
if NOT EXISTS $Tst
echo "FILE does not exist! Choose again!"
skip Test BACK
endif
$DMS test $Tst
endif
if $Choice EQ 0
skip End
endif
skip Start BACK
lab End
quit
resident >nil: c:search PURE
resident >nil: c:requestfile PURE
resident >nil: c:requestchoice PURE
resident >nil: c:echo PURE
resident >nil: c:copy PURE
resident >nil: c:type PURE
; $VER: HappySearch v1.0 (25.4.97) Richard Burke
requestchoice >env:int "HappySearch" "HappySearch searches the specified device/drawer*nto see if any files have been infected with the*n'Happy New Year 96!' virus, and informs of any*ninfected files it finds. Such files will have the*nvirus name printed below them in the scanned file*nlisting." "Okay" "Quit"
if $int EQ 0
quit
endif
lab beg
if exists env:mo
delete >nil: env:mo
endif
if exists env:disp
delete >nil: env:disp
endif
if exists env:dev
delete >nil: env:dev
endif
if exists env:hap
delete >nil: env:hap
endif
if exists env:sav1
delete >nil: env:sav1
endif
if exists env:rec
delete >nil: env:rec
endif
if exists env:sav
delete >nil: env:sav
endif
if exists env:int
delete >nil: env:int
endif
requestfile >env:dev TITLE "Choose drawer to search:" POSITIVE Search DRAWERSONLY
if warn
quit
endif
requestchoice >env:disp "Save?" "Results will be printed to screen.*nSave results to file too?*n(This is recommended)" "Yes" "No"
if $disp EQ 1
requestfile >env:sav TITLE "Location:" POSITIVE Save DRAWER RAM: FILE Happy.tmp
echo $sav >env:sav1
endif
requestchoice >env:rec "Recurse?" "Search sub-directories recursively?" "Yes" "No"
if $rec EQ 1
echo "Scanning files . . ."
search $dev "Happy New Year 96!" ALL >env:hap
else
echo "Scanning files . . ."
search $dev "Happy New Year 96!" >env:hap
endif
echo "Files scanned:"
type env:hap
if $disp EQ 0
delete >nil: env:hap
else
copy >nil: env:hap $sav1
echo "File listing saved as *e[33m$sav1*e[0m"
endif
requestchoice >env:mo "More?" "Scan another drawer?" "Yes" "No"
if $mo EQ 1
skip beg back
endif
if exists env:mo
delete >nil: env:mo
endif
if exists env:disp
delete >nil: env:disp
endif
if exists env:dev
delete >nil: env:dev
endif
if exists env:hap
delete >nil: env:hap
endif
if exists env:sav1
delete >nil: env:sav1
endif
if exists env:rec
delete >nil: env:rec
endif
if exists env:sav
delete >nil: env:sav
endif
if exists env:int
delete >nil: env:int
endif
quit
|