3. General Commands¶
3.1. 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
3.2. 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.
3.2.1. help - Print command help¶
- SYNOPSYS:
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
: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.
3.2.2. alias - add alias for an existing command¶
- SYNOPSYS:
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
:SHLL [/] $ me shell:me command not found SHLL [/] $ alias whoami me SHLL [/] $ me rtems SHLL [/] $ whoami rtems
- CONFIGURATION:
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:
The
alias
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_alias( int argc, char **argv );
The configuration structure for the
alias
has the following prototype:extern rtems_shell_cmd_t rtems_shell_ALIAS_Command;
3.2.3. cmdls - List commands¶
- SYNOPSYS:
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
:SHLL [/] # cmdls help shutdown r-xr-xr-x 0 0 help r-x------ 0 0 shutdown
- CONFIGURATION:
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:extern rtems_shell_cmd_t rtems_shell_CMDLS_Command;
3.2.4. cmdchown - Change user or owner of commands¶
- SYNOPSYS:
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
:[/] # cmdls help r-xr-xr-x 0 0 help [/] # cmdchown 1:1 help [/] # cmdls help r--r--r-- 1 1 help
- CONFIGURATION:
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:extern rtems_shell_cmd_t rtems_shell_CMDCHOWN_Command;
3.2.5. cmdchmod - Change mode of commands¶
- SYNOPSYS:
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
:[/] # cmdls help r-xr-xr-x 0 0 help [/] # cmdchmod 544 help [/] # cmdls help r-xr--r-- 0 0 help
- CONFIGURATION:
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:extern rtems_shell_cmd_t rtems_shell_CMDCHMOD_Command;
3.2.6. date - print or set current date and time¶
- SYNOPSYS:
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
andtime
arguments, it sets the current time.The
date
is specified inYYYY-MM-DD
format. Thetime
is specified inHH:MM:SS
format.- 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
date
: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:
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:
The
date
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_date( int argc, char **argv );
The configuration structure for the
date
has the following prototype:extern rtems_shell_cmd_t rtems_shell_DATE_Command;
3.2.7. echo - produce message in a shell script¶
- SYNOPSYS:
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 language 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
:SHLL [/] $ echo a b c a b c SHLL [/] $ echo
- CONFIGURATION:
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:
The
echo
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_echo( int argc, char **argv );
The configuration structure for the
echo
has the following prototype: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.
3.2.8. sleep - delay for a specified amount of time¶
- SYNOPSYS:
sleep seconds sleep seconds nanoseconds
- DESCRIPTION:
This command causes the task executing the shell to block for the specified number of
seconds
andnanoseconds
.- 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 thenanoseconds
parameter allows fine grained delays in shell scripts without adding another command such asusleep
.- EXAMPLES:
The following is an example of how to use
sleep
: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:
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:
The
sleep
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_sleep( int argc, char **argv );
The configuration structure for the
sleep
has the following prototype:extern rtems_shell_cmd_t rtems_shell_SLEEP_Command;
3.2.9. id - show uid gid euid and egid¶
- SYNOPSYS:
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 userrtems
: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 theroot
user:SHLL [/] # id uid=0(root),gid=0(root),euid=0(root),egid=0(root)
- CONFIGURATION:
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:
The
id
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_id( int argc, char **argv );
The configuration structure for the
id
has the following prototype:extern rtems_shell_cmd_t rtems_shell_ID_Command;
3.2.10. tty - show ttyname¶
- SYNOPSYS:
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
:SHLL [/] $ tty /dev/console
- CONFIGURATION:
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:
The
tty
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_tty( int argc, char **argv );
The configuration structure for the
tty
has the following prototype:extern rtems_shell_cmd_t rtems_shell_TTY_Command;
3.2.11. whoami - print effective user id¶
- SYNOPSYS:
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
:SHLL [/] $ whoami rtems
- CONFIGURATION:
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:
The
whoami
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_whoami( int argc, char **argv );
The configuration structure for the
whoami
has the following prototype:extern rtems_shell_cmd_t rtems_shell_WHOAMI_Command;
3.2.12. getenv - print environment variable¶
- SYNOPSYS:
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
:SHLL [/] $ getenv BASEPATH /mnt/hda1
- CONFIGURATION:
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:
The
getenv
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_getenv( int argc, char **argv );
The configuration structure for the
getenv
has the following prototype:extern rtems_shell_cmd_t rtems_shell_GETENV_Command;
3.2.13. setenv - set environment variable¶
- SYNOPSYS:
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 existingvariable
. If thevalue
is not provided, thevariable
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
:SHLL [/] $ setenv BASEPATH /mnt/hda1
- CONFIGURATION:
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:
The
setenv
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_setenv( int argc, char **argv );
The configuration structure for the
setenv
has the following prototype:extern rtems_shell_cmd_t rtems_shell_SETENV_Command;
3.2.14. unsetenv - unset environment variable¶
- SYNOPSYS:
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
:SHLL [/] $ unsetenv BASEPATH
- CONFIGURATION:
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:
The
unsetenv
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_unsetenv( int argc, char **argv );
The configuration structure for the
unsetenv
has the following prototype:extern rtems_shell_cmd_t rtems_shell_UNSETENV_Command;
3.2.15. time - time command execution¶
- SYNOPSYS:
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
:SHLL [/] $ time cp -r /nfs/directory /c
- CONFIGURATION:
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:
The
time
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_time( int argc, char **argv );
The configuration structure for the
time
has the following prototype:extern rtems_shell_cmd_t rtems_shell_TIME_Command;
3.2.16. logoff - logoff from the system¶
- SYNOPSYS:
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
:SHLL [/] $ logoff logoff from the system...
- CONFIGURATION:
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:
The
logoff
is implemented by a C language function which has the following prototype:int rtems_shell_rtems_main_logoff( int argc, char **argv );
The configuration structure for the
logoff
has the following prototype:extern rtems_shell_cmd_t rtems_shell_LOGOFF_Command;
3.2.17. rtc - RTC driver configuration¶
- SYNOPSYS:
rtc
- CONFIGURATION:
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.
3.2.18. exit - exit the shell¶
- SYNOPSYS:
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
: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.