summaryrefslogtreecommitdiffstats
path: root/shell/general_commands.rst
diff options
context:
space:
mode:
authorAmar Takhar <verm@darkbeer.org>2016-01-16 15:32:09 -0500
committerAmar Takhar <verm@darkbeer.org>2016-05-02 20:51:22 -0400
commit8ca13ed19f5b90bc53a7b2db26fb736d45e6007b (patch)
tree52bd4d9cb5def7d75cbc4e5d67f9642985b7458f /shell/general_commands.rst
parente1797c0eb04cd104ff03de47ded230b047f9b025 (diff)
downloadrtems-docs-8ca13ed19f5b90bc53a7b2db26fb736d45e6007b.tar.bz2
Split document.
Diffstat (limited to 'shell/general_commands.rst')
-rw-r--r--shell/general_commands.rst1203
1 files changed, 1203 insertions, 0 deletions
diff --git a/shell/general_commands.rst b/shell/general_commands.rst
new file mode 100644
index 0000000..dd16f2a
--- /dev/null
+++ b/shell/general_commands.rst
@@ -0,0 +1,1203 @@
+General Commands
+################
+
+Introduction
+============
+
+The RTEMS shell has the following general commands:
+
+- ``help`` - Print command help
+
+- ``alias`` - Add alias for an existing command
+
+- ``cmdls`` - List commands
+
+- ``cmdchown`` - Change user or owner of commands
+
+- ``cmdchmod`` - Change mode of commands
+
+- ``date`` - Print or set current date and time
+
+- ``echo`` - Produce message in a shell script
+
+- ``sleep`` - Delay for a specified amount of time
+
+- ``id`` - show uid gid euid and egid
+
+- ``tty`` - show ttyname
+
+- ``whoami`` - print effective user id
+
+- ``getenv`` - print environment variable
+
+- ``setenv`` - set environment variable
+
+- ``unsetenv`` - unset environment variable
+
+- ``time`` - time command execution
+
+- ``logoff`` - logoff from the system
+
+- ``rtc`` - RTC driver configuration
+
+- ``exit`` - alias for logoff command
+
+Commands
+========
+
+This section details the General Commands available. A subsection is dedicated
+to each of the commands and describes the behavior and configuration of that
+command as well as providing an example usage.
+
+help - Print command help
+-------------------------
+.. index:: help
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ help misc
+
+**DESCRIPTION:**
+
+This command prints the command help. Help without arguments prints a list of
+topics and help with a topic prints the help for that topic.
+
+**EXIT STATUS:**
+
+This command returns 0.
+
+**NOTES:**
+
+The help print will break the output up based on the environment variable
+SHELL_LINES. If this environment variable is not set the default is 16
+lines. If set the number of lines is set to that the value. If the shell lines
+is set 0 there will be no break.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``alias``:
+
+.. code-block:: shell
+
+ SHLL [/] $ help
+ help: ('r' repeat last cmd - 'e' edit last cmd)
+ TOPIC? The topics are
+ mem, misc, files, help, rtems, network, monitor
+ SHLL [/] $ help misc
+ help: list for the topic 'misc'
+ alias - alias old new
+ time - time command [arguments...]
+ joel - joel [args] SCRIPT
+ date - date [YYYY-MM-DD HH:MM:SS]
+ echo - echo [args]
+ sleep - sleep seconds [nanoseconds]
+ id - show uid, gid, euid, and egid
+ tty - show ttyname
+ whoami - show current user
+ logoff - logoff from the system
+ setenv - setenv [var] [string]
+ getenv - getenv [var]
+ unsetenv - unsetenv [var]
+ umask - umask [new_umask]
+ Press any key to continue...
+ rtc - real time clock read and set
+ SHLL [/] $ setenv SHELL_ENV 0
+ SHLL [/] $ help misc
+ help: list for the topic 'misc'
+ alias - alias old new
+ time - time command [arguments...]
+ joel - joel [args] SCRIPT
+ date - date [YYYY-MM-DD HH:MM:SS]
+ echo - echo [args]
+ sleep - sleep seconds [nanoseconds]
+ id - show uid, gid, euid, and egid
+ tty - show ttyname
+ whoami - show current user
+ logoff - logoff from the system
+ setenv - setenv [var] [string]
+ getenv - getenv [var]
+ unsetenv - unsetenv [var]
+ umask - umask [new_umask]
+ rtc - real time clock read and set
+
+**CONFIGURATION:**
+
+This command has no configuration.
+
+alias - add alias for an existing command
+-----------------------------------------
+.. index:: alias
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ alias oldCommand newCommand
+
+**DESCRIPTION:**
+
+This command adds an alternate name for an existing command to the command set.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+NONE
+
+**EXAMPLES:**
+
+The following is an example of how to use ``alias``:
+.. code:: c
+
+ SHLL \[/] $ me
+ shell:me command not found
+ SHLL \[/] $ alias whoami me
+ SHLL \[/] $ me
+ rtems
+ SHLL \[/] $ whoami
+ rtems
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_ALIAS
+.. index:: CONFIGURE_SHELL_COMMAND_ALIAS
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_ALIAS`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_ALIAS`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_alias
+
+The ``alias`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_alias(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``alias`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_ALIAS_Command;
+
+cmdls - List commands
+---------------------
+.. index:: cmdls
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ cmdls COMMAND...
+
+**DESCRIPTION:**
+
+This command lists the visible commands of the command set.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+The current user must have read permission to list a command.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``cmdls``:
+.. code:: c
+
+ SHLL \[/] # cmdls help shutdown
+ r-xr-xr-x 0 0 help
+ r-x------ 0 0 shutdown
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_CMDLS
+.. index:: CONFIGURE_SHELL_COMMAND_CMDLS
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_CMDLS`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_CMDLS`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+The configuration structure for the ``cmdls`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_CMDLS_Command;
+
+cmdchown - Change user or owner of commands
+-------------------------------------------
+.. index:: cmdchown
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ cmdchown \[OWNER][:\[GROUP]] COMMAND...
+
+**DESCRIPTION:**
+
+This command changes the user or owner of a command.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+The current user must have an UID of zero or be the command owner to change the
+owner or group.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``cmdchown``:
+.. code:: c
+
+ [/] # cmdls help
+ r-xr-xr-x 0 0 help
+ \[/] # cmdchown 1:1 help
+ \[/] # cmdls help
+ r--r--r-- 1 1 help
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_CMDCHOWN
+.. index:: CONFIGURE_SHELL_COMMAND_CMDCHOWN
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_CMDCHOWN`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_CMDCHOWN`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+The configuration structure for the ``cmdchown`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_CMDCHOWN_Command;
+
+cmdchmod - Change mode of commands
+----------------------------------
+.. index:: cmdchmod
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ cmdchmod OCTAL-MODE COMMAND...
+
+**DESCRIPTION:**
+
+This command changes the mode of a command.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+The current user must have an UID of zero or be the command owner to change the
+mode.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``cmdchmod``:
+.. code:: c
+
+ [/] # cmdls help
+ r-xr-xr-x 0 0 help
+ \[/] # cmdchmod 544 help
+ \[/] # cmdls help
+ r-xr--r-- 0 0 help
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_CMDCHMOD
+.. index:: CONFIGURE_SHELL_COMMAND_CMDCHMOD
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_CMDCHMOD`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_CMDCHMOD`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+The configuration structure for the ``cmdchmod`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_CMDCHMOD_Command;
+
+date - print or set current date and time
+-----------------------------------------
+.. index:: date
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ date
+ date DATE TIME
+
+**DESCRIPTION:**
+
+This command operates one of two modes. When invoked with no
+arguments, it prints the current date and time. When invoked
+with both ``date`` and ``time`` arguments, it sets the
+current time.
+
+The ``date`` is specified in ``YYYY-MM-DD`` format.
+The ``time`` is specified in ``HH:MM:SS`` format.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+This comm
+
+**EXAMPLES:**
+
+The following is an example of how to use ``date``:
+.. code:: c
+
+ SHLL \[/] $ date
+ Fri Jan 1 00:00:09 1988
+ SHLL \[/] $ date 2008-02-29 06:45:32
+ SHLL \[/] $ date
+ Fri Feb 29 06:45:35 2008
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_DATE
+.. index:: CONFIGURE_SHELL_COMMAND_DATE
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_DATE`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_DATE`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_date
+
+The ``date`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_date(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``date`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_DATE_Command;
+
+echo - produce message in a shell script
+----------------------------------------
+.. index:: echo
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ echo \[-n | -e] args ...
+
+**DESCRIPTION:**
+
+echo prints its arguments on the standard output, separated by spaces.
+Unless the *-n* option is present, a newline is output following the
+arguments. The *-e* option causes echo to treat the escape sequences
+specially, as described in the following paragraph. The *-e* option is the
+default, and is provided solely for compatibility with other systems.
+Only one of the options *-n* and *-e* may be given.
+
+If any of the following sequences of characters is encountered during
+output, the sequence is not output. Instead, the specified action is
+performed:
+
+*\\b*
+ A backspace character is output.
+
+*\\c*
+ Subsequent output is suppressed. This is normally used at the
+ end of the last argument to suppress the trailing newline that
+ echo would otherwise output.
+
+*\\f*
+ Output a form feed.
+
+*\\n*
+ Output a newline character.
+
+*\\r*
+ Output a carriage return.
+
+*\\t*
+ Output a (horizontal) tab character.
+
+*\\v*
+ Output a vertical tab.
+
+*\\0digits*
+ Output the character whose value is given by zero to three digits.
+ If there are zero digits, a nul character is output.
+
+*\\\\*
+ Output a backslash.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+The octal character escape mechanism (\\0digits) differs from the C lan-
+guage mechanism.
+
+There is no way to force ``echo`` to treat its arguments literally, rather
+than interpreting them as options and escape sequences.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``echo``:
+.. code:: c
+
+ SHLL \[/] $ echo a b c
+ a b c
+ SHLL \[/] $ echo
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_ECHO
+.. index:: CONFIGURE_SHELL_COMMAND_ECHO
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_ECHO`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_ECHO`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_echo
+
+The ``echo`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_echo(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``echo`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_ECHO_Command;
+
+**ORIGIN:**
+
+The implementation and portions of the documentation for this
+command are from NetBSD 4.0.
+
+sleep - delay for a specified amount of time
+--------------------------------------------
+.. index:: sleep
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ sleep seconds
+ sleep seconds nanoseconds
+
+**DESCRIPTION:**
+
+This command causes the task executing the shell to block
+for the specified number of ``seconds`` and ``nanoseconds``.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+This command is implemented using the ``nanosleep()`` method.
+
+The command line interface is similar to the ``sleep`` command
+found on POSIX systems but the addition of the ``nanoseconds``
+parameter allows fine grained delays in shell scripts without
+adding another command such as ``usleep``.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``sleep``:
+.. code:: c
+
+ SHLL \[/] $ sleep 10
+ SHLL \[/] $ sleep 0 5000000
+
+It is not clear from the above but there is a ten second
+pause after executing the first command before the prompt
+is printed. The second command completes very quickly
+from a human perspective and there is no noticeable
+delay in the prompt being printed.
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_SLEEP
+.. index:: CONFIGURE_SHELL_COMMAND_SLEEP
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_SLEEP`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_SLEEP`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_sleep
+
+The ``sleep`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_sleep(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``sleep`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_SLEEP_Command;
+
+id - show uid gid euid and egid
+-------------------------------
+.. index:: id
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ id
+
+**DESCRIPTION:**
+
+This command prints the user identity. This includes the user id
+(uid), group id (gid), effective user id (euid), and effective
+group id (egid).
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+Remember there is only one POSIX process in a single processor RTEMS
+application. Each thread may have its own user identity and that
+identity is used by the filesystem to enforce permissions.
+
+**EXAMPLES:**
+
+The first example of the ``id`` command is from a session logged
+in as the normal user ``rtems``:
+.. code:: c
+
+ SHLL \[/] # id
+ uid=1(rtems),gid=1(rtems),euid=1(rtems),egid=1(rtems)
+
+The second example of the ``id`` command is from a session logged
+in as the ``root`` user:
+.. code:: c
+
+ SHLL \[/] # id
+ uid=0(root),gid=0(root),euid=0(root),egid=0(root)
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_ID
+.. index:: CONFIGURE_SHELL_COMMAND_ID
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_ID`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_ID`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_id
+
+The ``id`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_id(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``id`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_ID_Command;
+
+tty - show ttyname
+------------------
+.. index:: tty
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ tty
+
+**DESCRIPTION:**
+
+This command prints the file name of the device connected
+to standard input.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+NONE
+
+**EXAMPLES:**
+
+The following is an example of how to use ``tty``:
+.. code:: c
+
+ SHLL \[/] $ tty
+ /dev/console
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_TTY
+.. index:: CONFIGURE_SHELL_COMMAND_TTY
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_TTY`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_TTY`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_tty
+
+The ``tty`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_tty(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``tty`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_TTY_Command;
+
+whoami - print effective user id
+--------------------------------
+.. index:: whoami
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ whoami
+
+**DESCRIPTION:**
+
+This command displays the user name associated with the current
+effective user id.
+
+**EXIT STATUS:**
+
+This command always succeeds.
+
+**NOTES:**
+
+NONE
+
+**EXAMPLES:**
+
+The following is an example of how to use ``whoami``:
+.. code:: c
+
+ SHLL \[/] $ whoami
+ rtems
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_WHOAMI
+.. index:: CONFIGURE_SHELL_COMMAND_WHOAMI
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_WHOAMI`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_WHOAMI`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_whoami
+
+The ``whoami`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_whoami(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``whoami`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_WHOAMI_Command;
+
+getenv - print environment variable
+-----------------------------------
+.. index:: getenv
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ getenv variable
+
+**DESCRIPTION:**
+
+This command is used to display the value of a ``variable`` in the set
+of environment variables.
+
+**EXIT STATUS:**
+
+This command will return 1 and print a diagnostic message if
+a failure occurs.
+
+**NOTES:**
+
+The entire RTEMS application shares a single set of environment variables.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``getenv``:
+.. code:: c
+
+ SHLL \[/] $ getenv BASEPATH
+ /mnt/hda1
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_GETENV
+.. index:: CONFIGURE_SHELL_COMMAND_GETENV
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_GETENV`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_GETENV`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_getenv
+
+The ``getenv`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_getenv(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``getenv`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_GETENV_Command;
+
+setenv - set environment variable
+---------------------------------
+.. index:: setenv
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ setenv variable \[value]
+
+**DESCRIPTION:**
+
+This command is used to add a new ``variable`` to the set of environment
+variables or to modify the variable of an already existing ``variable``.
+If the ``value`` is not provided, the ``variable`` will be set to the
+empty string.
+
+**EXIT STATUS:**
+
+This command will return 1 and print a diagnostic message if
+a failure occurs.
+
+**NOTES:**
+
+The entire RTEMS application shares a single set of environment variables.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``setenv``:
+.. code:: c
+
+ SHLL \[/] $ setenv BASEPATH /mnt/hda1
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_SETENV
+.. index:: CONFIGURE_SHELL_COMMAND_SETENV
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_SETENV`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_SETENV`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_setenv
+
+The ``setenv`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_setenv(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``setenv`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_SETENV_Command;
+
+unsetenv - unset environment variable
+-------------------------------------
+.. index:: unsetenv
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ unsetenv variable
+
+**DESCRIPTION:**
+
+This command is remove to a ``variable`` from the set of environment
+variables.
+
+**EXIT STATUS:**
+
+This command will return 1 and print a diagnostic message if
+a failure occurs.
+
+**NOTES:**
+
+The entire RTEMS application shares a single set of environment variables.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``unsetenv``:
+.. code:: c
+
+ SHLL \[/] $ unsetenv BASEPATH
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_UNSETENV
+.. index:: CONFIGURE_SHELL_COMMAND_UNSETENV
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_UNSETENV`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_UNSETENV`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_unsetenv
+
+The ``unsetenv`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_unsetenv(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``unsetenv`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_UNSETENV_Command;
+
+time - time command execution
+-----------------------------
+.. index:: time
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ time command \[argument ...]
+
+**DESCRIPTION:**
+
+The time command executes and times a command. After the command
+finishes, time writes the total time elapsed. Times are reported in
+seconds.
+
+**EXIT STATUS:**
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+**NOTES:**
+
+None.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``time``:
+.. code:: c
+
+ SHLL \[/] $ time cp -r /nfs/directory /c
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_TIME
+.. index:: CONFIGURE_SHELL_COMMAND_TIME
+
+This command is included in the default shell command set. When
+building a custom command set, define``CONFIGURE_SHELL_COMMAND_TIME`` to have this command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_TIME`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_time
+
+The ``time`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_time(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``time`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_TIME_Command;
+
+logoff - logoff from the system
+-------------------------------
+.. index:: logoff
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ logoff
+
+**DESCRIPTION:**
+
+This command logs the user out of the shell.
+
+**EXIT STATUS:**
+
+This command does not return.
+
+**NOTES:**
+
+The system behavior when the shell is exited depends upon how the
+shell was initiated. The typical behavior is that a login prompt
+will be displayed for the next login attempt or that the connection
+will be dropped by the RTEMS system.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``logoff``:
+.. code:: c
+
+ SHLL \[/] $ logoff
+ logoff from the system...
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_LOGOFF
+.. index:: CONFIGURE_SHELL_COMMAND_LOGOFF
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_LOGOFF`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_LOGOFF`` when all
+shell commands have been configured.
+
+**PROGRAMMING INFORMATION:**
+
+.. index:: rtems_shell_rtems_main_logoff
+
+The ``logoff`` is implemented by a C language function
+which has the following prototype:
+.. code:: c
+
+ int rtems_shell_rtems_main_logoff(
+ int argc,
+ char \**argv
+ );
+
+The configuration structure for the ``logoff`` has the
+following prototype:
+.. code:: c
+
+ extern rtems_shell_cmd_t rtems_shell_LOGOFF_Command;
+
+rtc - RTC driver configuration
+------------------------------
+.. index:: rtc
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ rtc
+
+**CONFIGURATION:**
+
+.. index:: CONFIGURE_SHELL_NO_COMMAND_RTC
+.. index:: CONFIGURE_SHELL_COMMAND_RTC
+
+This command is included in the default shell command set.
+When building a custom command set, define``CONFIGURE_SHELL_COMMAND_RTC`` to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining ``CONFIGURE_SHELL_NO_COMMAND_RTC`` when all
+shell commands have been configured.
+
+exit - exit the shell
+---------------------
+.. index:: exit
+
+**SYNOPSYS:**
+
+.. code:: c
+
+ exit
+
+**DESCRIPTION:**
+
+This command causes the shell interpreter to ``exit``.
+
+**EXIT STATUS:**
+
+This command does not return.
+
+**NOTES:**
+
+In contrast to `logoff - logoff from the system`_,
+this command is built into the shell interpreter loop.
+
+**EXAMPLES:**
+
+The following is an example of how to use ``exit``:
+.. code:: c
+
+ SHLL \[/] $ exit
+ Shell exiting
+
+**CONFIGURATION:**
+
+This command is always present and cannot be disabled.
+
+**PROGRAMMING INFORMATION:**
+
+The ``exit`` is implemented directly in the shell interpreter.
+There is no C routine associated with it.
+
+.. COMMENT: COPYRIGHT (c) 1988-2008.
+
+.. COMMENT: On-Line Applications Research Corporation (OAR).
+
+.. COMMENT: All rights reserved.
+