summaryrefslogtreecommitdiffstats
path: root/doc
diff options
context:
space:
mode:
authorChris Johns <chrisj@rtems.org>2014-09-15 10:14:01 +1000
committerChris Johns <chrisj@rtems.org>2014-09-16 15:19:58 +1000
commitfc9f8f5085724622a189ba5d44ac116d7b27e27c (patch)
tree0050fa764c6c253ff8446183ec5d5fc64322e85c /doc
parentshell: Add an md5 hash command for files. (diff)
downloadrtems-fc9f8f5085724622a189ba5d44ac116d7b27e27c.tar.bz2
doc: Sort the shell file commands into alphabetical order.
Diffstat (limited to 'doc')
-rw-r--r--doc/shell/file.t2787
1 files changed, 1433 insertions, 1354 deletions
diff --git a/doc/shell/file.t b/doc/shell/file.t
index 2db057dfd5..bda3d3d635 100644
--- a/doc/shell/file.t
+++ b/doc/shell/file.t
@@ -11,32 +11,33 @@ The RTEMS shell has the following file and directory commands:
@itemize @bullet
-@item @code{umask} - Set file mode creation mask
+@item @code{blksync} - sync the block driver
+@item @code{cat} - display file contents
+@item @code{cd} - alias for chdir
+@item @code{chdir} - change the current directory
+@item @code{chmod} - change permissions of a file
+@item @code{chroot} - change the root directory
@item @code{cp} - copy files
-@item @code{mv} - move files
-@item @code{pwd} - print work directory
+@item @code{dd} - format disks
+@item @code{debugrfs} - debug RFS file system
+@item @code{df} - display file system disk space usage
+@item @code{dir} - alias for ls
+@item @code{fdisk} - format disks
+@item @code{hexdump} - format disks
+@item @code{ln} - make links
@item @code{ls} - list files in the directory
-@item @code{chdir} - change the current directory
+@item @code{md5} - display file system disk space usage
@item @code{mkdir} - create a directory
-@item @code{rmdir} - remove empty directories
-@item @code{ln} - make links
+@item @code{mkdos} - DOSFS disk format
@item @code{mknod} - make device special file
-@item @code{chroot} - change the root directory
-@item @code{chmod} - change permissions of a file
-@item @code{cat} - display file contents
-@item @code{msdosfmt} - format disk
-@item @code{rm} - remove files
+@item @code{mkrfs} - format RFS file system
@item @code{mount} - mount disk
+@item @code{mv} - move files
+@item @code{pwd} - print work directory
+@item @code{rmdir} - remove empty directories
+@item @code{rm} - remove files
+@item @code{umask} - Set file mode creation mask
@item @code{unmount} - unmount disk
-@item @code{blksync} - sync the block driver
-@item @code{dd} - format disks
-@item @code{hexdump} - format disks
-@item @code{fdisk} - format disks
-@item @code{dir} - alias for ls
-@item @code{mkrfs} - format RFS file system
-@item @code{cd} - alias for chdir
-@item @code{df} - display file system disk space usage
-@item @code{md5} - display file system disk space usage
@end itemize
@@ -51,20 +52,19 @@ command as well as providing an example usage.
@c
@c
@page
-@subsection umask - set file mode creation mask
+@subsection blksync - sync the block driver
-@pgindex umask
+@pgindex blksync
@subheading SYNOPSYS:
@example
-umask [new_umask]
+blksync driver
@end example
@subheading DESCRIPTION:
-This command sets the user file creation mask to @code{new_umask}. The
-argument @code{new_umask} may be octal, hexadecimal, or decimal.
+This command XXX
@subheading EXIT STATUS:
@@ -72,156 +72,68 @@ This command returns 0 on success and non-zero if an error is encountered.
@subheading NOTES:
-This command does not currently support symbolic mode masks.
+NONE
@subheading EXAMPLES:
-The following is an example of how to use @code{umask}:
+The following is an example of how to use @code{blksync}:
@example
-SHLL [/] $ umask
-022
-SHLL [/] $ umask 0666
-0666
-SHLL [/] $ umask
-0666
+EXAMPLE_TBD
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_UMASK
-@findex CONFIGURE_SHELL_COMMAND_UMASK
+@findex CONFIGURE_SHELL_NO_COMMAND_BLKSYNC
+@findex CONFIGURE_SHELL_COMMAND_BLKSYNC
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_UMASK} to have this
+@code{CONFIGURE_SHELL_COMMAND_BLKSYNC} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_UMASK} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_BLKSYNC} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_umask
+@findex rtems_shell_rtems_main_blksync
-The @code{umask} is implemented by a C language function
+The @code{blksync} is implemented by a C language function
which has the following prototype:
@example
-int rtems_shell_rtems_main_umask(
+int rtems_shell_rtems_main_blksync(
int argc,
char **argv
);
@end example
-The configuration structure for the @code{umask} has the
+The configuration structure for the @code{blksync} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_UMASK_Command;
+extern rtems_shell_cmd_t rtems_shell_BLKSYNC_Command;
@end example
@c
@c
@c
@page
-@subsection cp - copy files
+@subsection cat - display file contents
-@pgindex cp
+@pgindex cat
@subheading SYNOPSYS:
@example
-cp [-R [-H | -L | -P]] [-f | -i] [-pv] src target
-cp [-R [-H | -L] ] [-f | -i] [-NpPv] source_file ... target_directory
+cat file1 [file2 .. fileN]
@end example
@subheading DESCRIPTION:
-In the first synopsis form, the cp utility copies the contents of the
-source_file to the target_file. In the second synopsis form, the contents of
-each named source_file is copied to the destination target_directory. The names
-of the files themselves are not changed. If cp detects an attempt to copy a
-file to itself, the copy will fail.
-
-The following options are available:
-
-@table @b
-@item -f
-For each existing destination pathname, attempt to overwrite it. If permissions
-do not allow copy to succeed, remove it and create a new file, without
-prompting for confirmation. (The -i option is ignored if the -f option is
-specified.)
-
-@item -H
-If the -R option is specified, symbolic links on the command line are followed.
-(Symbolic links encountered in the tree traversal are not followed.)
-
-@item -i
-Causes cp to write a prompt to the standard error output before copying a file
-that would overwrite an existing file. If the response from the standard input
-begins with the character 'y', the file copy is attempted.
-
-@item -L
-If the -R option is specified, all symbolic links are followed.
-
-@item -N
-When used with -p, do not copy file flags.
-
-@item -P
-No symbolic links are followed.
-
-@item -p
-Causes cp to preserve in the copy as many of the modification time, access
-time, file flags, file mode, user ID, and group ID as allowed by permissions.
-
-If the user ID and group ID cannot be preserved, no error message is displayed
-and the exit value is not altered.
-
-If the source file has its set user ID bit on and the user ID cannot be
-preserved, the set user ID bit is not preserved in the copy's permissions. If
-the source file has its set group ID bit on and the group ID cannot be
-preserved, the set group ID bit is not preserved in the copy's permissions. If
-the source file has both its set user ID and set group ID bits on, and either
-the user ID or group ID cannot be preserved, neither the set user ID or set
-group ID bits are preserved in the copy's permissions.
-
-@item -R
-If source_file designates a directory, cp copies the directory and the entire
-subtree connected at that point. This option also causes symbolic links to be
-copied, rather than indirected through, and for cp to create special files
-rather than copying them as normal files. Created directories have the same
-mode as the corresponding source directory, unmodified by the process's umask.
-
-@item -v
-Cause cp to be verbose, showing files as they are copied.
-
-@end table
-
-For each destination file that already exists, its contents are overwritten if
-permissions allow, but its mode, user ID, and group ID are unchanged.
-
-In the second synopsis form, target_directory must exist unless there is only
-one named source_file which is a directory and the -R flag is specified.
-
-If the destination file does not exist, the mode of the source file is used as
-modified by the file mode creation mask (umask, see csh(1)). If the source file
-has its set user ID bit on, that bit is removed unless both the source file and
-the destination file are owned by the same user. If the source file has its set
-group ID bit on, that bit is removed unless both the source file and the
-destination file are in the same group and the user is a member of that group.
-If both the set user ID and set group ID bits are set, all of the above
-conditions must be fulfilled or both bits are removed.
-
-Appropriate permissions are required for file creation or overwriting.
-
-Symbolic links are always followed unless the -R flag is set, in which case
-symbolic links are not followed, by default. The -H or -L flags (in conjunction
-with the -R flag), as well as the -P flag cause symbolic links to be followed
-as described above. The -H and -L options are ignored unless the -R option is
-specified. In addition, these options override eachsubhedading other and the
-command's actions are determined by the last one specified.
+This command displays the contents of the specified files.
@subheading EXIT STATUS:
@@ -229,227 +141,73 @@ This command returns 0 on success and non-zero if an error is encountered.
@subheading NOTES:
-NONE
+It is possible to read the input from a device file using @code{cat}.
@subheading EXAMPLES:
-The following is an example of how to use @code{cp} to
-copy a file to a new name in the current directory:
+The following is an example of how to use @code{cat}:
@example
-SHLL [/] # cat joel
-cat: joel: No such file or directory
-SHLL [/] # cp etc/passwd joel
-SHLL [/] # cat joel
+SHLL [/] # cat /etc/passwd
root:*:0:0:root::/:/bin/sh
rtems:*:1:1:RTEMS Application::/:/bin/sh
tty:!:2:2:tty owner::/:/bin/false
-SHLL [/] # ls
-drwxr-xr-x 1 root root 536 Jan 01 00:00 dev/
-drwxr-xr-x 1 root root 1072 Jan 01 00:00 etc/
--rw-r--r-- 1 root root 102 Jan 01 00:00 joel
-3 files 1710 bytes occupied
-@end example
-
-The following is an example of how to use @code{cp} to
-copy one or more files to a destination directory and
-use the same @code{basename} in the destination directory:
-
-@example
-SHLL [/] # mkdir tmp
-SHLL [/] # ls tmp
-0 files 0 bytes occupied
-SHLL [/] # cp /etc/passwd tmp
-SHLL [/] # ls /tmp
--rw-r--r-- 1 root root 102 Jan 01 00:01 passwd
-1 files 102 bytes occupied
-SHLL [/] # cp /etc/passwd /etc/group /tmp
-SHLL [/] # ls /tmp
--rw-r--r-- 1 root root 102 Jan 01 00:01 passwd
--rw-r--r-- 1 root root 42 Jan 01 00:01 group
-2 files 144 bytes occupied
-SHLL [/] #
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_CP
-@findex CONFIGURE_SHELL_COMMAND_CP
+@findex CONFIGURE_SHELL_NO_COMMAND_CAT
+@findex CONFIGURE_SHELL_COMMAND_CAT
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_CP} to have this
+@code{CONFIGURE_SHELL_COMMAND_CAT} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_CP} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_cp
-
-The @code{cp} command is implemented by a C language function which
-has the following prototype:
-
-@example
-int rtems_shell_rtems_main_cp(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{cp} has the
-following prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_CP_Command;
-@end example
-
-@subheading ORIGIN:
-
-The implementation and portions of the documentation for this
-command are from NetBSD 4.0.
-
-@c
-@c
-@c
-@page
-@subsection mv - move files
-
-@pgindex mv
-
-@subheading SYNOPSYS:
-
-@example
-mv [-fiv] source_file target_file
-mv [-fiv] source_file... target_file
-@end example
-
-@subheading DESCRIPTION:
-
-In its first form, the mv utility renames the file named by the source
-operand to the destination path named by the target operand. This
-form is assumed when the last operand does not name an already
-existing directory.
-
-In its second form, mv moves each file named by a source operand to a
-destination file in the existing directory named by the directory
-operand. The destination path for each operand is the pathname
-produced by the concatenation of the last operand, a slash, and the
-final pathname component of the named file.
-
-The following options are available:
-
-@table @b
-@item -f
-Do not prompt for confirmation before overwriting the destination
-path.
-
-@item -i
-Causes mv to write a prompt to standard error before moving a file
-that would overwrite an existing file. If the response from the
-standard input begins with the character 'y', the move is attempted.
-
-@item -v
-Cause mv to be verbose, showing files as they are processed.
-
-@end table
-
-The last of any -f or -i options is the one which affects mv's
-behavior.
-
-It is an error for any of the source operands to specify a nonexistent
-file or directory.
-
-It is an error for the source operand to specify a directory if the
-target exists and is not a directory.
-
-If the destination path does not have a mode which permits writing, mv
-prompts the user for confirmation as specified for the -i option.
-
-Should the @b{rename} call fail because source and target are on
-different file systems, @code{mv} will remove the destination file,
-copy the source file to the destination, and then remove the source.
-The effect is roughly equivalent to:
-
-@example
-rm -f destination_path && \
-cp -PRp source_file destination_path && \
-rm -rf source_file
-@end example
-
-@subheading EXIT STATUS:
-
-The @code{mv} utility exits 0 on success, and >0 if an error occurs.
-
-@subheading NOTES:
-
-NONE
-
-@subheading EXAMPLES:
-
-@example
-SHLL [/] mv /dev/console /dev/con1
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_MV
-@findex CONFIGURE_SHELL_COMMAND_MV
-
-This command is included in the default shell command set. When
-building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_MV} to have this command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_MV} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_CAT} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_mv
+@findex rtems_shell_rtems_main_cat
-The @code{mv} command is implemented by a C language function which
-has the following prototype:
+The @code{cat} is implemented by a C language function
+which has the following prototype:
@example
-int rtems_shell_rtems_main_mv(
+int rtems_shell_rtems_main_cat(
int argc,
char **argv
);
@end example
-The configuration structure for the @code{mv} has the
+The configuration structure for the @code{cat} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_MV_Command;
+extern rtems_shell_cmd_t rtems_shell_CAT_Command;
@end example
-@subheading ORIGIN:
-
-The implementation and portions of the documentation for this command
-are from NetBSD 4.0.
-
@c
@c
@c
@page
-@subsection pwd - print work directory
+@subsection cd - alias for chdir
-@pgindex pwd
+@pgindex cd
@subheading SYNOPSYS:
@example
-pwd
+cd directory
@end example
@subheading DESCRIPTION:
-This command prints the fully qualified filename of the current
-working directory.
+This command is an alias or alternate name for the @code{chdir}.
+See @ref{File and Directory Commands chdir - change the current directory, cd}
+for more information.
@subheading EXIT STATUS:
@@ -461,134 +219,56 @@ NONE
@subheading EXAMPLES:
-The following is an example of how to use @code{pwd}:
+The following is an example of how to use @code{cd}:
@example
+SHLL [/] $ cd etc
+SHLL [/etc] $ cd /
+SHLL [/] $ cd /etc
+SHLL [/etc] $ pwd
+/etc
+SHLL [/etc] $ cd /
+SHLL [/] $ pwd
+/
+SHLL [/] $ cd etc
+SHLL [/etc] $ cd ..
SHLL [/] $ pwd
/
-SHLL [/] $ cd dev
-SHLL [/dev] $ pwd
-/dev
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_PWD
-@findex CONFIGURE_SHELL_COMMAND_PWD
-
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_PWD} to have this
-command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_PWD} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_pwd
-
-The @code{pwd} is implemented by a C language function
-which has the following prototype:
-
-@example
-int rtems_shell_rtems_main_pwd(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{pwd} has the
-following prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_PWD_Command;
-@end example
-
-@c
-@c
-@c
-@page
-@subsection ls - list files in the directory
-
-@pgindex ls
-
-@subheading SYNOPSYS:
-
-@example
-ls [dir]
-@end example
-
-@subheading DESCRIPTION:
-
-This command displays the contents of the specified directory. If
-no arguments are given, then it displays the contents of the current
-working directory.
-
-@subheading EXIT STATUS:
-
-This command returns 0 on success and non-zero if an error is encountered.
-
-@subheading NOTES:
-
-This command currently does not display information on a set of
-files like the POSIX ls(1). It only displays the contents of
-entire directories.
-
-@subheading EXAMPLES:
-
-The following is an example of how to use @code{ls}:
-
-@example
-SHLL [/] $ ls
-drwxr-xr-x 1 root root 536 Jan 01 00:00 dev/
-drwxr-xr-x 1 root root 1072 Jan 01 00:00 etc/
-2 files 1608 bytes occupied
-SHLL [/] $ ls etc
--rw-r--r-- 1 root root 102 Jan 01 00:00 passwd
--rw-r--r-- 1 root root 42 Jan 01 00:00 group
--rw-r--r-- 1 root root 30 Jan 01 00:00 issue
--rw-r--r-- 1 root root 28 Jan 01 00:00 issue.net
-4 files 202 bytes occupied
-SHLL [/] $ ls dev etc
--rwxr-xr-x 1 rtems root 0 Jan 01 00:00 console
--rwxr-xr-x 1 root root 0 Jan 01 00:00 console_b
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_LS
-@findex CONFIGURE_SHELL_COMMAND_LS
+@findex CONFIGURE_SHELL_NO_COMMAND_CD
+@findex CONFIGURE_SHELL_COMMAND_CD
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_LS} to have this
+@code{CONFIGURE_SHELL_COMMAND_CD} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_LS} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_CD} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_ls
+@findex rtems_shell_rtems_main_cd
-The @code{ls} is implemented by a C language function
+The @code{cd} is implemented by a C language function
which has the following prototype:
@example
-int rtems_shell_rtems_main_ls(
+int rtems_shell_rtems_main_cd(
int argc,
char **argv
);
@end example
-The configuration structure for the @code{ls} has the
+The configuration structure for the @code{cd} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_LS_Command;
+extern rtems_shell_cmd_t rtems_shell_CD_Command;
@end example
@c
@@ -670,518 +350,6 @@ extern rtems_shell_cmd_t rtems_shell_CHDIR_Command;
@c
@c
@page
-@subsection mkdir - create a directory
-
-@pgindex mkdir
-
-@subheading SYNOPSYS:
-
-@example
-mkdir dir [dir1 .. dirN]
-@end example
-
-@subheading DESCRIPTION:
-
-This command creates the set of directories in the order they
-are specified on the command line. If an error is encountered
-making one of the directories, the command will continue to
-attempt to create the remaining directories on the command line.
-
-@subheading EXIT STATUS:
-
-This command returns 0 on success and non-zero if an error is encountered.
-
-@subheading NOTES:
-
-If this command is invoked with no arguments, nothing occurs.
-
-The user must have sufficient permissions to create the directory.
-For the @code{fileio} test provided with RTEMS, this means the user
-must login as @code{root} not @code{rtems}.
-
-@subheading EXAMPLES:
-
-The following is an example of how to use @code{mkdir}:
-
-@example
-SHLL [/] # ls
-drwxr-xr-x 1 root root 536 Jan 01 00:00 dev/
-drwxr-xr-x 1 root root 1072 Jan 01 00:00 etc/
-2 files 1608 bytes occupied
-SHLL [/] # mkdir joel
-SHLL [/] # ls joel
-0 files 0 bytes occupied
-SHLL [/] # cp etc/passwd joel
-SHLL [/] # ls joel
--rw-r--r-- 1 root root 102 Jan 01 00:02 passwd
-1 files 102 bytes occupied
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_MKDIR
-@findex CONFIGURE_SHELL_COMMAND_MKDIR
-
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_MKDIR} to have this
-command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_MKDIR} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_mkdir
-
-The @code{mkdir} is implemented by a C language function
-which has the following prototype:
-
-@example
-int rtems_shell_rtems_main_mkdir(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{mkdir} has the
-following prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_MKDIR_Command;
-@end example
-
-@c
-@c
-@c
-@page
-@subsection rmdir - remove empty directories
-
-@pgindex rmdir
-
-@subheading SYNOPSYS:
-
-@example
-rmdir [dir1 .. dirN]
-@end example
-
-@subheading DESCRIPTION:
-
-This command removes the specified set of directories. If no
-directories are provided on the command line, no actions are taken.
-
-@subheading EXIT STATUS:
-
-This command returns 0 on success and non-zero if an error is encountered.
-
-@subheading NOTES:
-
-This command is a implemented using the @code{rmdir(2)} system
-call and all reasons that call may fail apply to this command.
-
-@subheading EXAMPLES:
-
-The following is an example of how to use @code{rmdir}:
-
-@example
-SHLL [/] # mkdir joeldir
-SHLL [/] # rmdir joeldir
-SHLL [/] # ls joeldir
-joeldir: No such file or directory.
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_RMDIR
-@findex CONFIGURE_SHELL_COMMAND_RMDIR
-
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_RMDIR} to have this
-command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_RMDIR} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_rmdir
-
-The @code{rmdir} is implemented by a C language function
-which has the following prototype:
-
-@example
-int rtems_shell_rtems_main_rmdir(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{rmdir} has the
-following prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_RMDIR_Command;
-@end example
-
-@c
-@c
-@c
-@page
-@subsection ln - make links
-
-@pgindex ln
-
-@subheading SYNOPSYS:
-
-@example
-ln [-fhinsv] source_file [target_file]
-ln [-fhinsv] source_file ... target_dir
-@end example
-
-@subheading DESCRIPTION:
-
-The ln utility creates a new directory entry (linked file) which has
-the same modes as the original file. It is useful for maintaining
-multiple copies of a file in many places at once without using up
-storage for the ``copies''; instead, a link ``points'' to the original
-copy. There are two types of links; hard links and symbolic links.
-How a link ``points'' to a file is one of the differences between a
-hard or symbolic link.
-
-The options are as follows:
-@table @b
-@item -f
-Unlink any already existing file, permitting the link to occur.
-
-@item -h
-If the target_file or target_dir is a symbolic link, do not follow it.
-This is most useful with the -f option, to replace a symlink which may
-point to a directory.
-
-@item -i
-Cause ln to write a prompt to standard error if the target file
-exists. If the response from the standard input begins with the
-character `y' or `Y', then unlink the target file so that the link may
-occur. Otherwise, do not attempt the link. (The -i option overrides
-any previous -f options.)
-
-@item -n
-Same as -h, for compatibility with other ln implementations.
-
-@item -s
-Create a symbolic link.
-
-@item -v
-Cause ln to be verbose, showing files as they are processed.
-@end table
-
-By default ln makes hard links. A hard link to a file is
-indistinguishable from the original directory entry; any changes to a
-file are effective independent of the name used to reference the file.
-Hard links may not normally refer to directories and may not span file
-systems.
-
-A symbolic link contains the name of the file to which it is linked.
-The referenced file is used when an @i{open} operation is performed on
-the link. A @i{stat} on a symbolic link will return the linked-to
-file; an @i{lstat} must be done to obtain information about the link.
-The @i{readlink} call may be used to read the contents of a symbolic
-link. Symbolic links may span file systems and may refer to
-directories.
-
-Given one or two arguments, ln creates a link to an existing file
-source_file. If target_file is given, the link has that name;
-target_file may also be a directory in which to place the link;
-otherwise it is placed in the current directory. If only the
-directory is specified, the link will be made to the last component of
-source_file.
-
-Given more than two arguments, ln makes links in target_dir to all the
-named source files. The links made will have the same name as the
-files being linked to.
-
-@subheading EXIT STATUS:
-
-The @code{ln} utility exits 0 on success, and >0 if an error occurs.
-
-@subheading NOTES:
-
-NONE
-
-@subheading EXAMPLES:
-
-@example
-SHLL [/] ln -s /dev/console /dev/con1
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_LN
-@findex CONFIGURE_SHELL_COMMAND_LN
-
-This command is included in the default shell command set. When
-building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_LN} to have this command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_LN} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_ln
-
-The @code{ln} command is implemented by a C language function which
-has the following prototype:
-
-@example
-int rtems_shell_rtems_main_ln(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{ln} has the following
-prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_LN_Command;
-@end example
-
-@subheading ORIGIN:
-
-The implementation and portions of the documentation for this command
-are from NetBSD 4.0.
-
-@c
-@c
-@c
-@page
-@subsection mknod - make device special file
-
-@pgindex mknod
-
-@subheading SYNOPSYS:
-
-@example
-mknod [-rR] [-F fmt] [-g gid] [-m mode] [-u uid] name [c | b]
- [driver | major] minor
-mknod [-rR] [-F fmt] [-g gid] [-m mode] [-u uid] name [c | b]
- major unit subunit
-mknod [-rR] [-g gid] [-m mode] [-u uid] name [c | b] number
-mknod [-rR] [-g gid] [-m mode] [-u uid] name p
-@end example
-
-@subheading DESCRIPTION:
-
-The mknod command creates device special files, or fifos. Normally
-the shell script /dev/MAKEDEV is used to create special files for
-commonly known devices; it executes mknod with the appropriate
-arguments and can make all the files required for the device.
-
-To make nodes manually, the arguments are:
-
-@table @b
-@item -r
-Replace an existing file if its type is incorrect.
-
-@item -R
-Replace an existing file if its type is incorrect. Correct the
-mode, user and group.
-
-@item -g gid
-Specify the group for the device node. The gid operand may be a
-numeric group ID or a group name. If a group name is also a numeric
-group ID, the operand is used as a group name. Precede a numeric
-group ID with a # to stop it being treated as a name.
-
-@item -m mode
-Specify the mode for the device node. The mode may be absolute or
-symbolic, see @i{chmod}.
-
-@item -u uid
-Specify the user for the device node. The uid operand may be a
-numeric user ID or a user name. If a user name is also a numeric user
-ID, the operand is used as a user name. Precede a numeric user ID
-with a # to stop it being treated as a name.
-
-@item name
-Device name, for example ``tty'' for a termios serial device or ``hd''
-for a disk.
-
-@item b | c | p
-Type of device. If the device is a block type device such as a tape
-or disk drive which needs both cooked and raw special files, the type
-is b. All other devices are character type devices, such as terminal
-and pseudo devices, and are type c. Specifying p creates fifo files.
-
-@item driver | major
-The major device number is an integer number which tells the kernel
-which device driver entry point to use. If the device driver is
-configured into the current kernel it may be specified by driver name
-or major number.
-
-@item minor
-The minor device number tells the kernel which one of several similar
-devices the node corresponds to; for example, it may be a specific
-serial port or pty.
-
-@item unit and subunit
-The unit and subunit numbers select a subset of a device; for example,
-the unit may specify a particular disk, and the subunit a partition on
-that disk. (Currently this form of specification is only supported
-by the bsdos format, for compatibility with the BSD/OS mknod).
-
-@item number
-A single opaque device number. Useful for netbooted computers which
-require device numbers packed in a format that isn't supported by
--F.
-@end table
-
-@subheading EXIT STATUS:
-
-The @code{mknod} utility exits 0 on success, and >0 if an error occurs.
-
-@subheading NOTES:
-
-NONE
-
-@subheading EXAMPLES:
-
-@example
-SHLL [/] mknod c 3 0 /dev/ttyS10
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_MKNOD
-@findex CONFIGURE_SHELL_COMMAND_MKNOD
-
-This command is included in the default shell command set. When
-building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_MKNOD} to have this command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_MKNOD} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_mknod
-
-The @code{mknod} command is implemented by a C language function which
-has the following prototype:
-
-@example
-int rtems_shell_rtems_main_mknod(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{mknod} has the following
-prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_MKNOD_Command;
-@end example
-
-@subheading ORIGIN:
-
-The implementation and portions of the documentation for this command
-are from NetBSD 4.0.
-
-@c
-@c
-@c
-@page
-@subsection chroot - change the root directory
-
-@pgindex chroot
-
-@subheading SYNOPSYS:
-
-@example
-chroot [dir]
-@end example
-
-@subheading DESCRIPTION:
-
-This command changes the root directory to @code{dir} for subsequent
-commands.
-
-@subheading EXIT STATUS:
-
-This command returns 0 on success and non-zero if an error is encountered.
-
-The destination directory @code{dir} must exist.
-
-@subheading NOTES:
-
-NONE
-
-@subheading EXAMPLES:
-
-The following is an example of how to use @code{chroot}
-and the impact it has on the environment for subsequent
-command invocations:
-
-@example
-SHLL [/] $ cat passwd
-cat: passwd: No such file or directory
-SHLL [/] $ chroot etc
-SHLL [/] $ cat passwd
-root:*:0:0:root::/:/bin/sh
-rtems:*:1:1:RTEMS Application::/:/bin/sh
-tty:!:2:2:tty owner::/:/bin/false
-SHLL [/] $ cat /etc/passwd
-cat: /etc/passwd: No such file or directory
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_CHROOT
-@findex CONFIGURE_SHELL_COMMAND_CHROOT
-
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_CHROOT} to have this
-command included. Additional to that you have to add one
-POSIX key value pair for each thread where you want to use
-the command.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_CHROOT} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_chroot
-
-The @code{chroot} is implemented by a C language function
-which has the following prototype:
-
-@example
-int rtems_shell_rtems_main_chroot(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{chroot} has the
-following prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_CHROOT_Command;
-@end example
-
-@c
-@c
-@c
-@page
@subsection chmod - change permissions of a file
@pgindex chmod
@@ -1282,103 +450,26 @@ extern rtems_shell_cmd_t rtems_shell_CHMOD_Command;
@c
@c
@page
-@subsection cat - display file contents
+@subsection chroot - change the root directory
-@pgindex cat
+@pgindex chroot
@subheading SYNOPSYS:
@example
-cat file1 [file2 .. fileN]
+chroot [dir]
@end example
@subheading DESCRIPTION:
-This command displays the contents of the specified files.
+This command changes the root directory to @code{dir} for subsequent
+commands.
@subheading EXIT STATUS:
This command returns 0 on success and non-zero if an error is encountered.
-@subheading NOTES:
-
-It is possible to read the input from a device file using @code{cat}.
-
-@subheading EXAMPLES:
-
-The following is an example of how to use @code{cat}:
-
-@example
-SHLL [/] # cat /etc/passwd
-root:*:0:0:root::/:/bin/sh
-rtems:*:1:1:RTEMS Application::/:/bin/sh
-tty:!:2:2:tty owner::/:/bin/false
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_CAT
-@findex CONFIGURE_SHELL_COMMAND_CAT
-
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_CAT} to have this
-command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_CAT} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_cat
-
-The @code{cat} is implemented by a C language function
-which has the following prototype:
-
-@example
-int rtems_shell_rtems_main_cat(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{cat} has the
-following prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_CAT_Command;
-@end example
-
-@c
-@c
-@c
-@page
-@subsection rm - remove files
-
-@pgindex rm
-
-@subheading SYNOPSYS:
-
-@example
-rm file1 [file2 ... fileN]
-@end example
-
-@subheading DESCRIPTION:
-
-This command deletes a name from the filesystem. If the specified file name
-was the last link to a file and there are no @code{open} file descriptor
-references to that file, then it is deleted and the associated space in
-the file system is made available for subsequent use.
-
-If the filename specified was the last link to a file but there
-are open file descriptor references to it, then the file will
-remain in existence until the last file descriptor referencing
-it is closed.
-
-@subheading EXIT STATUS:
-
-This command returns 0 on success and non-zero if an error is encountered.
+The destination directory @code{dir} must exist.
@subheading NOTES:
@@ -1386,202 +477,159 @@ NONE
@subheading EXAMPLES:
-The following is an example of how to use @code{rm}:
+The following is an example of how to use @code{chroot}
+and the impact it has on the environment for subsequent
+command invocations:
@example
-SHLL [/] # cp /etc/passwd tmpfile
-SHLL [/] # cat tmpfile
+SHLL [/] $ cat passwd
+cat: passwd: No such file or directory
+SHLL [/] $ chroot etc
+SHLL [/] $ cat passwd
root:*:0:0:root::/:/bin/sh
rtems:*:1:1:RTEMS Application::/:/bin/sh
tty:!:2:2:tty owner::/:/bin/false
-SHLL [/] # rm tmpfile
-SHLL [/] # cat tmpfile
-cat: tmpfile: No such file or directory
+SHLL [/] $ cat /etc/passwd
+cat: /etc/passwd: No such file or directory
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_RM
-@findex CONFIGURE_SHELL_COMMAND_RM
+@findex CONFIGURE_SHELL_NO_COMMAND_CHROOT
+@findex CONFIGURE_SHELL_COMMAND_CHROOT
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_RM} to have this
-command included.
+@code{CONFIGURE_SHELL_COMMAND_CHROOT} to have this
+command included. Additional to that you have to add one
+POSIX key value pair for each thread where you want to use
+the command.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_RM} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_CHROOT} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_rm
+@findex rtems_shell_rtems_main_chroot
-The @code{rm} is implemented by a C language function
+The @code{chroot} is implemented by a C language function
which has the following prototype:
@example
-int rtems_shell_rtems_main_rm(
+int rtems_shell_rtems_main_chroot(
int argc,
char **argv
);
@end example
-The configuration structure for the @code{rm} has the
+The configuration structure for the @code{chroot} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_RM_Command;
+extern rtems_shell_cmd_t rtems_shell_CHROOT_Command;
@end example
@c
@c
@c
@page
-@subsection mount - mount disk
+@subsection cp - copy files
-@pgindex mount
+@pgindex cp
@subheading SYNOPSYS:
@example
-mount [-t fstype] [-r] [-L] device path
+cp [-R [-H | -L | -P]] [-f | -i] [-pv] src target
+cp [-R [-H | -L] ] [-f | -i] [-NpPv] source_file ... target_directory
@end example
@subheading DESCRIPTION:
-The @code{mount} command will mount a block device to a mount point
-using the specified file system. The files systems are:
-
-@itemize @bullet
-@item msdos - MSDOS File System
-@item tftp - TFTP Network File System
-@item ftp - FTP Network File System
-@item nfs - Network File System
-@item rfs - RTEMS File System
-@end itemize
-
-When the file system type is 'msdos' or 'rfs' the driver is a "block
-device driver" node present in the file system. The driver is ignored
-with the 'tftp' and 'ftp' file systems. For the 'nfs' file system the
-driver is the 'host:/path' string that described NFS host and the
-exported file system path.
-
-@subheading EXIT STATUS:
-
-This command returns 0 on success and non-zero if an error is encountered.
-
-@subheading NOTES:
-
-The mount point must exist.
-
-The services offered by each file-system vary. For example you cannot list the
-directory of a TFTP file-system as this server is not provided in the TFTP
-protocol. You need to check each file-system's documentation for the services
-provided.
-
-@subheading EXAMPLES:
-
-Mount the Flash Disk driver to the '/fd' mount point:
-
-@example
-SHLL [/] $ mount -t msdos /dev/flashdisk0 /fd
-@end example
-
-Mount the NFS file system exported path 'bar' by host 'foo':
-
-@example
-$ mount -t nfs foo:/bar /nfs
-@end example
-
-Mount the TFTP file system on '/tftp':
-
-@example
-$ mount -t tftp /tftp
-@end example
-
-To access the TFTP files on server '10.10.10.10':
-
-@example
-$ cat /tftp/10.10.10.10/test.txt
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_MOUNT
-@findex CONFIGURE_SHELL_COMMAND_MOUNT
+In the first synopsis form, the cp utility copies the contents of the
+source_file to the target_file. In the second synopsis form, the contents of
+each named source_file is copied to the destination target_directory. The names
+of the files themselves are not changed. If cp detects an attempt to copy a
+file to itself, the copy will fail.
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_MOUNT} to have this
-command included.
+The following options are available:
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_MOUNT} when all
-shell commands have been configured.
+@table @b
+@item -f
+For each existing destination pathname, attempt to overwrite it. If permissions
+do not allow copy to succeed, remove it and create a new file, without
+prompting for confirmation. (The -i option is ignored if the -f option is
+specified.)
-The mount command includes references to file-system code. If you do not wish
-to include file-system that you do not use do not define the mount command
-support for that file-system. The file-system mount command defines are:
+@item -H
+If the -R option is specified, symbolic links on the command line are followed.
+(Symbolic links encountered in the tree traversal are not followed.)
-@itemize @bullet
-@item msdos - CONFIGURE_SHELL_MOUNT_MSDOS
-@item tftp - CONFIGURE_SHELL_MOUNT_TFTP
-@item ftp - CONFIGURE_SHELL_MOUNT_FTP
-@item nfs - CONFIGURE_SHELL_MOUNT_NFS
-@item rfs - CONFIGURE_SHELL_MOUNT_RFS
-@end itemize
+@item -i
+Causes cp to write a prompt to the standard error output before copying a file
+that would overwrite an existing file. If the response from the standard input
+begins with the character 'y', the file copy is attempted.
-An example configuration is:
+@item -L
+If the -R option is specified, all symbolic links are followed.
-@example
-#define CONFIGURE_SHELL_MOUNT_MSDOS
-#ifdef RTEMS_NETWORKING
- #define CONFIGURE_SHELL_MOUNT_TFTP
- #define CONFIGURE_SHELL_MOUNT_FTP
- #define CONFIGURE_SHELL_MOUNT_NFS
- #define CONFIGURE_SHELL_MOUNT_RFS
-#endif
-@end example
+@item -N
+When used with -p, do not copy file flags.
-@subheading PROGRAMMING INFORMATION:
+@item -P
+No symbolic links are followed.
-@findex rtems_shell_rtems_main_mount
+@item -p
+Causes cp to preserve in the copy as many of the modification time, access
+time, file flags, file mode, user ID, and group ID as allowed by permissions.
-The @code{mount} is implemented by a C language function
-which has the following prototype:
+If the user ID and group ID cannot be preserved, no error message is displayed
+and the exit value is not altered.
-@example
-int rtems_shell_rtems_main_mount(
- int argc,
- char **argv
-);
-@end example
+If the source file has its set user ID bit on and the user ID cannot be
+preserved, the set user ID bit is not preserved in the copy's permissions. If
+the source file has its set group ID bit on and the group ID cannot be
+preserved, the set group ID bit is not preserved in the copy's permissions. If
+the source file has both its set user ID and set group ID bits on, and either
+the user ID or group ID cannot be preserved, neither the set user ID or set
+group ID bits are preserved in the copy's permissions.
-The configuration structure for the @code{mount} has the
-following prototype:
+@item -R
+If source_file designates a directory, cp copies the directory and the entire
+subtree connected at that point. This option also causes symbolic links to be
+copied, rather than indirected through, and for cp to create special files
+rather than copying them as normal files. Created directories have the same
+mode as the corresponding source directory, unmodified by the process's umask.
-@example
-extern rtems_shell_cmd_t rtems_shell_MOUNT_Command;
-@end example
+@item -v
+Cause cp to be verbose, showing files as they are copied.
-@c
-@c
-@c
-@page
-@subsection unmount - unmount disk
+@end table
-@pgindex unmount
+For each destination file that already exists, its contents are overwritten if
+permissions allow, but its mode, user ID, and group ID are unchanged.
-@subheading SYNOPSYS:
+In the second synopsis form, target_directory must exist unless there is only
+one named source_file which is a directory and the -R flag is specified.
-@example
-unmount path
-@end example
+If the destination file does not exist, the mode of the source file is used as
+modified by the file mode creation mask (umask, see csh(1)). If the source file
+has its set user ID bit on, that bit is removed unless both the source file and
+the destination file are owned by the same user. If the source file has its set
+group ID bit on, that bit is removed unless both the source file and the
+destination file are in the same group and the user is a member of that group.
+If both the set user ID and set group ID bits are set, all of the above
+conditions must be fulfilled or both bits are removed.
-@subheading DESCRIPTION:
+Appropriate permissions are required for file creation or overwriting.
-This command unmounts the device at the specified @code{path}.
+Symbolic links are always followed unless the -R flag is set, in which case
+symbolic links are not followed, by default. The -H or -L flags (in conjunction
+with the -R flag), as well as the -P flag cause symbolic links to be followed
+as described above. The -H and -L options are ignored unless the -R option is
+specified. In addition, these options override eachsubhedading other and the
+command's actions are determined by the last one specified.
@subheading EXIT STATUS:
@@ -1589,120 +637,88 @@ This command returns 0 on success and non-zero if an error is encountered.
@subheading NOTES:
-TBD - Surely there must be some warnings to go here.
+NONE
@subheading EXAMPLES:
-The following is an example of how to use @code{unmount}:
-
-@example
-EXAMPLE_TBD
-@end example
-
-@subheading CONFIGURATION:
-
-@findex CONFIGURE_SHELL_NO_COMMAND_UNMOUNT
-@findex CONFIGURE_SHELL_COMMAND_UNMOUNT
-
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_UNMOUNT} to have this
-command included.
-
-This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_UNMOUNT} when all
-shell commands have been configured.
-
-@subheading PROGRAMMING INFORMATION:
-
-@findex rtems_shell_rtems_main_unmount
-
-The @code{unmount} is implemented by a C language function
-which has the following prototype:
-
-@example
-int rtems_shell_rtems_main_unmount(
- int argc,
- char **argv
-);
-@end example
-
-The configuration structure for the @code{unmount} has the
-following prototype:
-
-@example
-extern rtems_shell_cmd_t rtems_shell_UNMOUNT_Command;
-@end example
-
-@c
-@c
-@c
-@page
-@subsection blksync - sync the block driver
-
-@pgindex blksync
-
-@subheading SYNOPSYS:
+The following is an example of how to use @code{cp} to
+copy a file to a new name in the current directory:
@example
-blksync driver
+SHLL [/] # cat joel
+cat: joel: No such file or directory
+SHLL [/] # cp etc/passwd joel
+SHLL [/] # cat joel
+root:*:0:0:root::/:/bin/sh
+rtems:*:1:1:RTEMS Application::/:/bin/sh
+tty:!:2:2:tty owner::/:/bin/false
+SHLL [/] # ls
+drwxr-xr-x 1 root root 536 Jan 01 00:00 dev/
+drwxr-xr-x 1 root root 1072 Jan 01 00:00 etc/
+-rw-r--r-- 1 root root 102 Jan 01 00:00 joel
+3 files 1710 bytes occupied
@end example
-@subheading DESCRIPTION:
-
-This command XXX
-
-@subheading EXIT STATUS:
-
-This command returns 0 on success and non-zero if an error is encountered.
-
-@subheading NOTES:
-
-NONE
-
-@subheading EXAMPLES:
-
-The following is an example of how to use @code{blksync}:
+The following is an example of how to use @code{cp} to
+copy one or more files to a destination directory and
+use the same @code{basename} in the destination directory:
@example
-EXAMPLE_TBD
+SHLL [/] # mkdir tmp
+SHLL [/] # ls tmp
+0 files 0 bytes occupied
+SHLL [/] # cp /etc/passwd tmp
+SHLL [/] # ls /tmp
+-rw-r--r-- 1 root root 102 Jan 01 00:01 passwd
+1 files 102 bytes occupied
+SHLL [/] # cp /etc/passwd /etc/group /tmp
+SHLL [/] # ls /tmp
+-rw-r--r-- 1 root root 102 Jan 01 00:01 passwd
+-rw-r--r-- 1 root root 42 Jan 01 00:01 group
+2 files 144 bytes occupied
+SHLL [/] #
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_BLKSYNC
-@findex CONFIGURE_SHELL_COMMAND_BLKSYNC
+@findex CONFIGURE_SHELL_NO_COMMAND_CP
+@findex CONFIGURE_SHELL_COMMAND_CP
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_BLKSYNC} to have this
+@code{CONFIGURE_SHELL_COMMAND_CP} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_BLKSYNC} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_CP} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_blksync
+@findex rtems_shell_rtems_main_cp
-The @code{blksync} is implemented by a C language function
-which has the following prototype:
+The @code{cp} command is implemented by a C language function which
+has the following prototype:
@example
-int rtems_shell_rtems_main_blksync(
+int rtems_shell_rtems_main_cp(
int argc,
char **argv
);
@end example
-The configuration structure for the @code{blksync} has the
+The configuration structure for the @code{cp} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_BLKSYNC_Command;
+extern rtems_shell_cmd_t rtems_shell_CP_Command;
@end example
+@subheading ORIGIN:
+
+The implementation and portions of the documentation for this
+command are from NetBSD 4.0.
+
@c
@c
@c
@@ -1957,6 +973,303 @@ extern rtems_shell_cmd_t rtems_shell_DD_Command;
@c
@c
@page
+@subsection debugrfs - debug RFS file system
+
+@pgindex debugrfs
+
+@subheading SYNOPSYS:
+
+@example
+debugrfs [-hl] path command [options]
+@end example
+
+@subheading DESCRIPTION:
+
+The command provides debugging information for the RFS file system.
+
+The options are:
+
+@table @b
+@item -h
+Print a help message.
+
+@item -l
+List the commands.
+
+@item path
+Path to the mounted RFS file system. The file system has to be mounted
+to view to use this command.
+@end table
+
+The commands are:
+
+@table @b
+@item block start [end]
+Display the contents of the blocks from start to end.
+
+@item data
+Display the file system data and configuration.
+
+@item dir bno
+Process the block as a directory displaying the entries.
+
+@item group start [end]
+Display the group data from the start group to the end group.
+
+@item inode [-aef] [start] [end]
+Display the inodes between start and end. If no start and end is
+provides all inodes are displayed.
+
+@table @b
+@item -a
+Display all inodes. That is allocated and unallocated inodes.
+@item -e
+Search and display on inodes that have an error.
+@item -f
+Force display of inodes, even when in error.
+@end table
+@end table
+
+@subheading EXIT STATUS:
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+The following is an example of how to use @code{debugrfs}:
+
+@example
+SHLL [/] $ debugrfs /c data
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_DEBUGRFS
+@findex CONFIGURE_SHELL_COMMAND_DEBUGRFS
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_DEBUGRFS} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_DEBUGRFS} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_debugrfs
+
+The @code{debugrfs} command is implemented by a C language function which
+has the following prototype:
+
+@example
+int rtems_shell_rtems_main_debugrfs(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for @code{debugrfs} has the following
+prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_DEBUGRFS_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection df - display file system disk space usage
+
+@pgindex df
+
+@subheading SYNOPSYS:
+
+@example
+df [-h] [-B block_size]
+@end example
+
+@subheading DESCRIPTION:
+
+This command print disk space usage for mounted file systems.
+
+@subheading EXIT STATUS:
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+The following is an example of how to use @code{df}:
+
+@example
+SHLL [/] $ df -B 4K
+Filesystem 4K-blocks Used Available Use% Mounted on
+/dev/rda 124 1 124 0% /mnt/ramdisk
+SHLL [/] $ df
+Filesystem 1K-blocks Used Available Use% Mounted on
+/dev/rda 495 1 494 0% /mnt/ramdisk
+SHLL [/] $ df -h
+Filesystem Size Used Available Use% Mounted on
+/dev/rda 495K 1K 494K 0% /mnt/ramdisk
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_DF
+@findex CONFIGURE_SHELL_COMMAND_DF
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_DF} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_DF} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_df
+
+The @code{df} is implemented by a C language function
+which has the following prototype:
+
+@example
+int rtems_shell_main_df(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{df} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_DF_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection dir - alias for ls
+
+@pgindex dir
+
+@subheading SYNOPSYS:
+
+@example
+dir [dir]
+@end example
+
+@subheading DESCRIPTION:
+
+This command is an alias or alternate name for the @code{ls}.
+See @ref{File and Directory Commands ls - list files in the directory, ls}
+for more information.
+
+@subheading EXIT STATUS:
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+The following is an example of how to use @code{dir}:
+
+@example
+SHLL [/] $ dir
+drwxr-xr-x 1 root root 536 Jan 01 00:00 dev/
+drwxr-xr-x 1 root root 1072 Jan 01 00:00 etc/
+2 files 1608 bytes occupied
+SHLL [/] $ dir etc
+-rw-r--r-- 1 root root 102 Jan 01 00:00 passwd
+-rw-r--r-- 1 root root 42 Jan 01 00:00 group
+-rw-r--r-- 1 root root 30 Jan 01 00:00 issue
+-rw-r--r-- 1 root root 28 Jan 01 00:00 issue.net
+4 files 202 bytes occupied
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_DIR
+@findex CONFIGURE_SHELL_COMMAND_DIR
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_DIR} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_DIR} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_dir
+
+The @code{dir} is implemented by a C language function
+which has the following prototype:
+
+@example
+int rtems_shell_rtems_main_dir(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{dir} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_DIR_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection fdisk - format disk
+
+@pgindex fdisk
+
+@subheading SYNOPSYS:
+
+@example
+fdisk
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_FDISK
+@findex CONFIGURE_SHELL_COMMAND_FDISK
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_FDISK} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_FDISK} when all
+shell commands have been configured.
+
+@c
+@c
+@c
+@page
@subsection hexdump - ascii/dec/hex/octal dump
@pgindex hexdump
@@ -2229,49 +1542,151 @@ extern rtems_shell_cmd_t rtems_shell_HEXDUMP_Command;
@c
@c
@page
-@subsection fdisk - format disk
+@subsection ln - make links
-@pgindex fdisk
+@pgindex ln
@subheading SYNOPSYS:
@example
-fdisk
+ln [-fhinsv] source_file [target_file]
+ln [-fhinsv] source_file ... target_dir
+@end example
+
+@subheading DESCRIPTION:
+
+The ln utility creates a new directory entry (linked file) which has
+the same modes as the original file. It is useful for maintaining
+multiple copies of a file in many places at once without using up
+storage for the ``copies''; instead, a link ``points'' to the original
+copy. There are two types of links; hard links and symbolic links.
+How a link ``points'' to a file is one of the differences between a
+hard or symbolic link.
+
+The options are as follows:
+@table @b
+@item -f
+Unlink any already existing file, permitting the link to occur.
+
+@item -h
+If the target_file or target_dir is a symbolic link, do not follow it.
+This is most useful with the -f option, to replace a symlink which may
+point to a directory.
+
+@item -i
+Cause ln to write a prompt to standard error if the target file
+exists. If the response from the standard input begins with the
+character `y' or `Y', then unlink the target file so that the link may
+occur. Otherwise, do not attempt the link. (The -i option overrides
+any previous -f options.)
+
+@item -n
+Same as -h, for compatibility with other ln implementations.
+
+@item -s
+Create a symbolic link.
+
+@item -v
+Cause ln to be verbose, showing files as they are processed.
+@end table
+
+By default ln makes hard links. A hard link to a file is
+indistinguishable from the original directory entry; any changes to a
+file are effective independent of the name used to reference the file.
+Hard links may not normally refer to directories and may not span file
+systems.
+
+A symbolic link contains the name of the file to which it is linked.
+The referenced file is used when an @i{open} operation is performed on
+the link. A @i{stat} on a symbolic link will return the linked-to
+file; an @i{lstat} must be done to obtain information about the link.
+The @i{readlink} call may be used to read the contents of a symbolic
+link. Symbolic links may span file systems and may refer to
+directories.
+
+Given one or two arguments, ln creates a link to an existing file
+source_file. If target_file is given, the link has that name;
+target_file may also be a directory in which to place the link;
+otherwise it is placed in the current directory. If only the
+directory is specified, the link will be made to the last component of
+source_file.
+
+Given more than two arguments, ln makes links in target_dir to all the
+named source files. The links made will have the same name as the
+files being linked to.
+
+@subheading EXIT STATUS:
+
+The @code{ln} utility exits 0 on success, and >0 if an error occurs.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+@example
+SHLL [/] ln -s /dev/console /dev/con1
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_FDISK
-@findex CONFIGURE_SHELL_COMMAND_FDISK
+@findex CONFIGURE_SHELL_NO_COMMAND_LN
+@findex CONFIGURE_SHELL_COMMAND_LN
-This command is included in the default shell command set.
-When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_FDISK} to have this
-command included.
+This command is included in the default shell command set. When
+building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_LN} to have this command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_FDISK} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_LN} when all
shell commands have been configured.
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_ln
+
+The @code{ln} command is implemented by a C language function which
+has the following prototype:
+
+@example
+int rtems_shell_rtems_main_ln(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{ln} has the following
+prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_LN_Command;
+@end example
+
+@subheading ORIGIN:
+
+The implementation and portions of the documentation for this command
+are from NetBSD 4.0.
+
@c
@c
@c
@page
-@subsection dir - alias for ls
+@subsection ls - list files in the directory
-@pgindex dir
+@pgindex ls
@subheading SYNOPSYS:
@example
-dir [dir]
+ls [dir]
@end example
@subheading DESCRIPTION:
-This command is an alias or alternate name for the @code{ls}.
-See @ref{File and Directory Commands ls - list files in the directory, ls}
-for more information.
+This command displays the contents of the specified directory. If
+no arguments are given, then it displays the contents of the current
+working directory.
@subheading EXIT STATUS:
@@ -2279,64 +1694,443 @@ This command returns 0 on success and non-zero if an error is encountered.
@subheading NOTES:
-NONE
+This command currently does not display information on a set of
+files like the POSIX ls(1). It only displays the contents of
+entire directories.
@subheading EXAMPLES:
-The following is an example of how to use @code{dir}:
+The following is an example of how to use @code{ls}:
@example
-SHLL [/] $ dir
+SHLL [/] $ ls
drwxr-xr-x 1 root root 536 Jan 01 00:00 dev/
drwxr-xr-x 1 root root 1072 Jan 01 00:00 etc/
2 files 1608 bytes occupied
-SHLL [/] $ dir etc
+SHLL [/] $ ls etc
-rw-r--r-- 1 root root 102 Jan 01 00:00 passwd
-rw-r--r-- 1 root root 42 Jan 01 00:00 group
-rw-r--r-- 1 root root 30 Jan 01 00:00 issue
-rw-r--r-- 1 root root 28 Jan 01 00:00 issue.net
4 files 202 bytes occupied
+SHLL [/] $ ls dev etc
+-rwxr-xr-x 1 rtems root 0 Jan 01 00:00 console
+-rwxr-xr-x 1 root root 0 Jan 01 00:00 console_b
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_DIR
-@findex CONFIGURE_SHELL_COMMAND_DIR
+@findex CONFIGURE_SHELL_NO_COMMAND_LS
+@findex CONFIGURE_SHELL_COMMAND_LS
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_DIR} to have this
+@code{CONFIGURE_SHELL_COMMAND_LS} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_DIR} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_LS} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_dir
+@findex rtems_shell_rtems_main_ls
-The @code{dir} is implemented by a C language function
+The @code{ls} is implemented by a C language function
which has the following prototype:
@example
-int rtems_shell_rtems_main_dir(
+int rtems_shell_rtems_main_ls(
int argc,
char **argv
);
@end example
-The configuration structure for the @code{dir} has the
+The configuration structure for the @code{ls} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_DIR_Command;
+extern rtems_shell_cmd_t rtems_shell_LS_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection md5 - compute the Md5 hash of a file or list of files
+
+@pgindex md5
+
+@subheading SYNOPSYS:
+
+@example
+md5 <files>
+@end example
+
+@subheading DESCRIPTION:
+
+This command prints the MD5 of a file. You can provide one or more
+files on the command line and a hash for each file is printed in a
+single line of output.
+
+@subheading EXIT STATUS:
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+The following is an example of how to use @code{md5}:
+
+@example
+SHLL [/] $ md5 shell-init
+MD5 (shell-init) = 43b4d2e71b47db79eae679a2efeacf31
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_MD5
+@findex CONFIGURE_SHELL_COMMAND_MD5
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_MD5} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_MD5} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_md5
+
+The @code{df} is implemented by a C language function
+which has the following prototype:
+
+@example
+int rtems_shell_main_md5(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{md5} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_MD5_Command;
@end example
@c
@c
@c
@page
+@subsection mkdir - create a directory
+
+@pgindex mkdir
+
+@subheading SYNOPSYS:
+
+@example
+mkdir dir [dir1 .. dirN]
+@end example
+
+@subheading DESCRIPTION:
+
+This command creates the set of directories in the order they
+are specified on the command line. If an error is encountered
+making one of the directories, the command will continue to
+attempt to create the remaining directories on the command line.
+
+@subheading EXIT STATUS:
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+@subheading NOTES:
+
+If this command is invoked with no arguments, nothing occurs.
+
+The user must have sufficient permissions to create the directory.
+For the @code{fileio} test provided with RTEMS, this means the user
+must login as @code{root} not @code{rtems}.
+
+@subheading EXAMPLES:
+
+The following is an example of how to use @code{mkdir}:
+
+@example
+SHLL [/] # ls
+drwxr-xr-x 1 root root 536 Jan 01 00:00 dev/
+drwxr-xr-x 1 root root 1072 Jan 01 00:00 etc/
+2 files 1608 bytes occupied
+SHLL [/] # mkdir joel
+SHLL [/] # ls joel
+0 files 0 bytes occupied
+SHLL [/] # cp etc/passwd joel
+SHLL [/] # ls joel
+-rw-r--r-- 1 root root 102 Jan 01 00:02 passwd
+1 files 102 bytes occupied
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_MKDIR
+@findex CONFIGURE_SHELL_COMMAND_MKDIR
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_MKDIR} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_MKDIR} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_mkdir
+
+The @code{mkdir} is implemented by a C language function
+which has the following prototype:
+
+@example
+int rtems_shell_rtems_main_mkdir(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{mkdir} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_MKDIR_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection mldos - DOSFS file system format
+
+@pgindex pwd
+
+@subheading SYNOPSYS:
+
+@example
+mkdir [-V label] [-s sectors/cluster] [-r size] [-v] path
+@end example
+
+@subheading DESCRIPTION:
+
+This command formats a block device entry with the DOSFS file system.
+
+@table @b
+@item -V label
+
+@item -s sectors/cluster
+
+@item -r size
+
+@end table
+
+@subheading EXIT STATUS:
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+The following is an example of how to use @code{mkdos}:
+
+@example
+SHLL [/] $ mkdos /dev/rda1
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_MKDOS
+@findex CONFIGURE_SHELL_COMMAND_MKDOS
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_MKDOS} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_MKDOS} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_mkdos
+
+The @code{mkdos} is implemented by a C language function
+which has the following prototype:
+
+@example
+int rtems_shell_rtems_main_mkdos(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{mkdos} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_MKDOS_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection mknod - make device special file
+
+@pgindex mknod
+
+@subheading SYNOPSYS:
+
+@example
+mknod [-rR] [-F fmt] [-g gid] [-m mode] [-u uid] name [c | b]
+ [driver | major] minor
+mknod [-rR] [-F fmt] [-g gid] [-m mode] [-u uid] name [c | b]
+ major unit subunit
+mknod [-rR] [-g gid] [-m mode] [-u uid] name [c | b] number
+mknod [-rR] [-g gid] [-m mode] [-u uid] name p
+@end example
+
+@subheading DESCRIPTION:
+
+The mknod command creates device special files, or fifos. Normally
+the shell script /dev/MAKEDEV is used to create special files for
+commonly known devices; it executes mknod with the appropriate
+arguments and can make all the files required for the device.
+
+To make nodes manually, the arguments are:
+
+@table @b
+@item -r
+Replace an existing file if its type is incorrect.
+
+@item -R
+Replace an existing file if its type is incorrect. Correct the
+mode, user and group.
+
+@item -g gid
+Specify the group for the device node. The gid operand may be a
+numeric group ID or a group name. If a group name is also a numeric
+group ID, the operand is used as a group name. Precede a numeric
+group ID with a # to stop it being treated as a name.
+
+@item -m mode
+Specify the mode for the device node. The mode may be absolute or
+symbolic, see @i{chmod}.
+
+@item -u uid
+Specify the user for the device node. The uid operand may be a
+numeric user ID or a user name. If a user name is also a numeric user
+ID, the operand is used as a user name. Precede a numeric user ID
+with a # to stop it being treated as a name.
+
+@item name
+Device name, for example ``tty'' for a termios serial device or ``hd''
+for a disk.
+
+@item b | c | p
+Type of device. If the device is a block type device such as a tape
+or disk drive which needs both cooked and raw special files, the type
+is b. All other devices are character type devices, such as terminal
+and pseudo devices, and are type c. Specifying p creates fifo files.
+
+@item driver | major
+The major device number is an integer number which tells the kernel
+which device driver entry point to use. If the device driver is
+configured into the current kernel it may be specified by driver name
+or major number.
+
+@item minor
+The minor device number tells the kernel which one of several similar
+devices the node corresponds to; for example, it may be a specific
+serial port or pty.
+
+@item unit and subunit
+The unit and subunit numbers select a subset of a device; for example,
+the unit may specify a particular disk, and the subunit a partition on
+that disk. (Currently this form of specification is only supported
+by the bsdos format, for compatibility with the BSD/OS mknod).
+
+@item number
+A single opaque device number. Useful for netbooted computers which
+require device numbers packed in a format that isn't supported by
+-F.
+@end table
+
+@subheading EXIT STATUS:
+
+The @code{mknod} utility exits 0 on success, and >0 if an error occurs.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+@example
+SHLL [/] mknod c 3 0 /dev/ttyS10
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_MKNOD
+@findex CONFIGURE_SHELL_COMMAND_MKNOD
+
+This command is included in the default shell command set. When
+building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_MKNOD} to have this command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_MKNOD} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_mknod
+
+The @code{mknod} command is implemented by a C language function which
+has the following prototype:
+
+@example
+int rtems_shell_rtems_main_mknod(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{mknod} has the following
+prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_MKNOD_Command;
+@end example
+
+@subheading ORIGIN:
+
+The implementation and portions of the documentation for this command
+are from NetBSD 4.0.
+
+@c
+@c
+@c
+@page
@subsection mkrfs - format RFS file system
@pgindex mkrfs
@@ -2442,63 +2236,273 @@ extern rtems_shell_cmd_t rtems_shell_MKRFS_Command;
@c
@c
@page
-@subsection debugrfs - debug RFS file system
+@subsection mount - mount disk
-@pgindex debugrfs
+@pgindex mount
@subheading SYNOPSYS:
@example
-debugrfs [-hl] path command [options]
+mount [-t fstype] [-r] [-L] device path
@end example
@subheading DESCRIPTION:
-The command provides debugging information for the RFS file system.
+The @code{mount} command will mount a block device to a mount point
+using the specified file system. The files systems are:
-The options are:
+@itemize @bullet
+@item msdos - MSDOS File System
+@item tftp - TFTP Network File System
+@item ftp - FTP Network File System
+@item nfs - Network File System
+@item rfs - RTEMS File System
+@end itemize
-@table @b
-@item -h
-Print a help message.
+When the file system type is 'msdos' or 'rfs' the driver is a "block
+device driver" node present in the file system. The driver is ignored
+with the 'tftp' and 'ftp' file systems. For the 'nfs' file system the
+driver is the 'host:/path' string that described NFS host and the
+exported file system path.
-@item -l
-List the commands.
+@subheading EXIT STATUS:
-@item path
-Path to the mounted RFS file system. The file system has to be mounted
-to view to use this command.
-@end table
+This command returns 0 on success and non-zero if an error is encountered.
-The commands are:
+@subheading NOTES:
-@table @b
-@item block start [end]
-Display the contents of the blocks from start to end.
+The mount point must exist.
-@item data
-Display the file system data and configuration.
+The services offered by each file-system vary. For example you cannot list the
+directory of a TFTP file-system as this server is not provided in the TFTP
+protocol. You need to check each file-system's documentation for the services
+provided.
-@item dir bno
-Process the block as a directory displaying the entries.
+@subheading EXAMPLES:
-@item group start [end]
-Display the group data from the start group to the end group.
+Mount the Flash Disk driver to the '/fd' mount point:
-@item inode [-aef] [start] [end]
-Display the inodes between start and end. If no start and end is
-provides all inodes are displayed.
+@example
+SHLL [/] $ mount -t msdos /dev/flashdisk0 /fd
+@end example
+
+Mount the NFS file system exported path 'bar' by host 'foo':
+
+@example
+$ mount -t nfs foo:/bar /nfs
+@end example
+
+Mount the TFTP file system on '/tftp':
+
+@example
+$ mount -t tftp /tftp
+@end example
+
+To access the TFTP files on server '10.10.10.10':
+
+@example
+$ cat /tftp/10.10.10.10/test.txt
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_MOUNT
+@findex CONFIGURE_SHELL_COMMAND_MOUNT
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_MOUNT} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_MOUNT} when all
+shell commands have been configured.
+
+The mount command includes references to file-system code. If you do not wish
+to include file-system that you do not use do not define the mount command
+support for that file-system. The file-system mount command defines are:
+
+@itemize @bullet
+@item msdos - CONFIGURE_SHELL_MOUNT_MSDOS
+@item tftp - CONFIGURE_SHELL_MOUNT_TFTP
+@item ftp - CONFIGURE_SHELL_MOUNT_FTP
+@item nfs - CONFIGURE_SHELL_MOUNT_NFS
+@item rfs - CONFIGURE_SHELL_MOUNT_RFS
+@end itemize
+
+An example configuration is:
+
+@example
+#define CONFIGURE_SHELL_MOUNT_MSDOS
+#ifdef RTEMS_NETWORKING
+ #define CONFIGURE_SHELL_MOUNT_TFTP
+ #define CONFIGURE_SHELL_MOUNT_FTP
+ #define CONFIGURE_SHELL_MOUNT_NFS
+ #define CONFIGURE_SHELL_MOUNT_RFS
+#endif
+@end example
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_mount
+
+The @code{mount} is implemented by a C language function
+which has the following prototype:
+
+@example
+int rtems_shell_rtems_main_mount(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{mount} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_MOUNT_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection mv - move files
+
+@pgindex mv
+
+@subheading SYNOPSYS:
+
+@example
+mv [-fiv] source_file target_file
+mv [-fiv] source_file... target_file
+@end example
+
+@subheading DESCRIPTION:
+
+In its first form, the mv utility renames the file named by the source
+operand to the destination path named by the target operand. This
+form is assumed when the last operand does not name an already
+existing directory.
+
+In its second form, mv moves each file named by a source operand to a
+destination file in the existing directory named by the directory
+operand. The destination path for each operand is the pathname
+produced by the concatenation of the last operand, a slash, and the
+final pathname component of the named file.
+
+The following options are available:
@table @b
-@item -a
-Display all inodes. That is allocated and unallocated inodes.
-@item -e
-Search and display on inodes that have an error.
@item -f
-Force display of inodes, even when in error.
-@end table
+Do not prompt for confirmation before overwriting the destination
+path.
+
+@item -i
+Causes mv to write a prompt to standard error before moving a file
+that would overwrite an existing file. If the response from the
+standard input begins with the character 'y', the move is attempted.
+
+@item -v
+Cause mv to be verbose, showing files as they are processed.
+
@end table
+The last of any -f or -i options is the one which affects mv's
+behavior.
+
+It is an error for any of the source operands to specify a nonexistent
+file or directory.
+
+It is an error for the source operand to specify a directory if the
+target exists and is not a directory.
+
+If the destination path does not have a mode which permits writing, mv
+prompts the user for confirmation as specified for the -i option.
+
+Should the @b{rename} call fail because source and target are on
+different file systems, @code{mv} will remove the destination file,
+copy the source file to the destination, and then remove the source.
+The effect is roughly equivalent to:
+
+@example
+rm -f destination_path && \
+cp -PRp source_file destination_path && \
+rm -rf source_file
+@end example
+
+@subheading EXIT STATUS:
+
+The @code{mv} utility exits 0 on success, and >0 if an error occurs.
+
+@subheading NOTES:
+
+NONE
+
+@subheading EXAMPLES:
+
+@example
+SHLL [/] mv /dev/console /dev/con1
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_MV
+@findex CONFIGURE_SHELL_COMMAND_MV
+
+This command is included in the default shell command set. When
+building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_MV} to have this command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_MV} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_mv
+
+The @code{mv} command is implemented by a C language function which
+has the following prototype:
+
+@example
+int rtems_shell_rtems_main_mv(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{mv} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_MV_Command;
+@end example
+
+@subheading ORIGIN:
+
+The implementation and portions of the documentation for this command
+are from NetBSD 4.0.
+
+@c
+@c
+@c
+@page
+@subsection pwd - print work directory
+
+@pgindex pwd
+
+@subheading SYNOPSYS:
+
+@example
+pwd
+@end example
+
+@subheading DESCRIPTION:
+
+This command prints the fully qualified filename of the current
+working directory.
+
@subheading EXIT STATUS:
This command returns 0 on success and non-zero if an error is encountered.
@@ -2509,66 +2513,69 @@ NONE
@subheading EXAMPLES:
-The following is an example of how to use @code{debugrfs}:
+The following is an example of how to use @code{pwd}:
@example
-SHLL [/] $ debugrfs /c data
+SHLL [/] $ pwd
+/
+SHLL [/] $ cd dev
+SHLL [/dev] $ pwd
+/dev
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_DEBUGRFS
-@findex CONFIGURE_SHELL_COMMAND_DEBUGRFS
+@findex CONFIGURE_SHELL_NO_COMMAND_PWD
+@findex CONFIGURE_SHELL_COMMAND_PWD
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_DEBUGRFS} to have this
+@code{CONFIGURE_SHELL_COMMAND_PWD} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_DEBUGRFS} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_PWD} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_debugrfs
+@findex rtems_shell_rtems_main_pwd
-The @code{debugrfs} command is implemented by a C language function which
-has the following prototype:
+The @code{pwd} is implemented by a C language function
+which has the following prototype:
@example
-int rtems_shell_rtems_main_debugrfs(
+int rtems_shell_rtems_main_pwd(
int argc,
char **argv
);
@end example
-The configuration structure for @code{debugrfs} has the following
-prototype:
+The configuration structure for the @code{pwd} has the
+following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_DEBUGRFS_Command;
+extern rtems_shell_cmd_t rtems_shell_PWD_Command;
@end example
@c
@c
@c
@page
-@subsection cd - alias for chdir
+@subsection rmdir - remove empty directories
-@pgindex cd
+@pgindex rmdir
@subheading SYNOPSYS:
@example
-cd directory
+rmdir [dir1 .. dirN]
@end example
@subheading DESCRIPTION:
-This command is an alias or alternate name for the @code{chdir}.
-See @ref{File and Directory Commands chdir - change the current directory, cd}
-for more information.
+This command removes the specified set of directories. If no
+directories are provided on the command line, no actions are taken.
@subheading EXIT STATUS:
@@ -2576,79 +2583,80 @@ This command returns 0 on success and non-zero if an error is encountered.
@subheading NOTES:
-NONE
+This command is a implemented using the @code{rmdir(2)} system
+call and all reasons that call may fail apply to this command.
@subheading EXAMPLES:
-The following is an example of how to use @code{cd}:
+The following is an example of how to use @code{rmdir}:
@example
-SHLL [/] $ cd etc
-SHLL [/etc] $ cd /
-SHLL [/] $ cd /etc
-SHLL [/etc] $ pwd
-/etc
-SHLL [/etc] $ cd /
-SHLL [/] $ pwd
-/
-SHLL [/] $ cd etc
-SHLL [/etc] $ cd ..
-SHLL [/] $ pwd
-/
+SHLL [/] # mkdir joeldir
+SHLL [/] # rmdir joeldir
+SHLL [/] # ls joeldir
+joeldir: No such file or directory.
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_CD
-@findex CONFIGURE_SHELL_COMMAND_CD
+@findex CONFIGURE_SHELL_NO_COMMAND_RMDIR
+@findex CONFIGURE_SHELL_COMMAND_RMDIR
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_CD} to have this
+@code{CONFIGURE_SHELL_COMMAND_RMDIR} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_CD} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_RMDIR} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_cd
+@findex rtems_shell_rtems_main_rmdir
-The @code{cd} is implemented by a C language function
+The @code{rmdir} is implemented by a C language function
which has the following prototype:
@example
-int rtems_shell_rtems_main_cd(
+int rtems_shell_rtems_main_rmdir(
int argc,
char **argv
);
@end example
-The configuration structure for the @code{cd} has the
+The configuration structure for the @code{rmdir} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_CD_Command;
+extern rtems_shell_cmd_t rtems_shell_RMDIR_Command;
@end example
@c
@c
@c
@page
-@subsection df - display file system disk space usage
+@subsection rm - remove files
-@pgindex df
+@pgindex rm
@subheading SYNOPSYS:
@example
-df [-h] [-B block_size]
+rm file1 [file2 ... fileN]
@end example
@subheading DESCRIPTION:
-This command print disk space usage for mounted file systems.
+This command deletes a name from the filesystem. If the specified file name
+was the last link to a file and there are no @code{open} file descriptor
+references to that file, then it is deleted and the associated space in
+the file system is made available for subsequent use.
+
+If the filename specified was the last link to a file but there
+are open file descriptor references to it, then the file will
+remain in existence until the last file descriptor referencing
+it is closed.
@subheading EXIT STATUS:
@@ -2660,74 +2668,72 @@ NONE
@subheading EXAMPLES:
-The following is an example of how to use @code{df}:
+The following is an example of how to use @code{rm}:
@example
-SHLL [/] $ df -B 4K
-Filesystem 4K-blocks Used Available Use% Mounted on
-/dev/rda 124 1 124 0% /mnt/ramdisk
-SHLL [/] $ df
-Filesystem 1K-blocks Used Available Use% Mounted on
-/dev/rda 495 1 494 0% /mnt/ramdisk
-SHLL [/] $ df -h
-Filesystem Size Used Available Use% Mounted on
-/dev/rda 495K 1K 494K 0% /mnt/ramdisk
+SHLL [/] # cp /etc/passwd tmpfile
+SHLL [/] # cat tmpfile
+root:*:0:0:root::/:/bin/sh
+rtems:*:1:1:RTEMS Application::/:/bin/sh
+tty:!:2:2:tty owner::/:/bin/false
+SHLL [/] # rm tmpfile
+SHLL [/] # cat tmpfile
+cat: tmpfile: No such file or directory
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_DF
-@findex CONFIGURE_SHELL_COMMAND_DF
+@findex CONFIGURE_SHELL_NO_COMMAND_RM
+@findex CONFIGURE_SHELL_COMMAND_RM
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_DF} to have this
+@code{CONFIGURE_SHELL_COMMAND_RM} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_DF} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_RM} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_df
+@findex rtems_shell_rtems_main_rm
-The @code{df} is implemented by a C language function
+The @code{rm} is implemented by a C language function
which has the following prototype:
@example
-int rtems_shell_main_df(
- int argc,
+int rtems_shell_rtems_main_rm(
+ int argc,
char **argv
);
@end example
-The configuration structure for the @code{df} has the
+The configuration structure for the @code{rm} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_DF_Command;
+extern rtems_shell_cmd_t rtems_shell_RM_Command;
@end example
@c
@c
@c
@page
-@subsection md5 - compute the Md5 hash of a file or list of files
+@subsection umask - set file mode creation mask
-@pgindex md5
+@pgindex umask
@subheading SYNOPSYS:
@example
-md5 <files>
+umask [new_umask]
@end example
@subheading DESCRIPTION:
-This command prints the MD5 of a file. You can provide one or more
-files on the command line and a hash for each file is printed in a
-single line of output.
+This command sets the user file creation mask to @code{new_umask}. The
+argument @code{new_umask} may be octal, hexadecimal, or decimal.
@subheading EXIT STATUS:
@@ -2735,48 +2741,121 @@ This command returns 0 on success and non-zero if an error is encountered.
@subheading NOTES:
-NONE
+This command does not currently support symbolic mode masks.
@subheading EXAMPLES:
-The following is an example of how to use @code{md5}:
+The following is an example of how to use @code{umask}:
@example
-SHLL [/] $ md5 shell-init
-MD5 (shell-init) = 43b4d2e71b47db79eae679a2efeacf31
+SHLL [/] $ umask
+022
+SHLL [/] $ umask 0666
+0666
+SHLL [/] $ umask
+0666
@end example
@subheading CONFIGURATION:
-@findex CONFIGURE_SHELL_NO_COMMAND_MD5
-@findex CONFIGURE_SHELL_COMMAND_MD5
+@findex CONFIGURE_SHELL_NO_COMMAND_UMASK
+@findex CONFIGURE_SHELL_COMMAND_UMASK
This command is included in the default shell command set.
When building a custom command set, define
-@code{CONFIGURE_SHELL_COMMAND_MD5} to have this
+@code{CONFIGURE_SHELL_COMMAND_UMASK} to have this
command included.
This command can be excluded from the shell command set by
-defining @code{CONFIGURE_SHELL_NO_COMMAND_MD5} when all
+defining @code{CONFIGURE_SHELL_NO_COMMAND_UMASK} when all
shell commands have been configured.
@subheading PROGRAMMING INFORMATION:
-@findex rtems_shell_rtems_main_md5
+@findex rtems_shell_rtems_main_umask
-The @code{df} is implemented by a C language function
+The @code{umask} is implemented by a C language function
which has the following prototype:
@example
-int rtems_shell_main_md5(
- int argc,
+int rtems_shell_rtems_main_umask(
+ int argc,
char **argv
);
@end example
-The configuration structure for the @code{md5} has the
+The configuration structure for the @code{umask} has the
following prototype:
@example
-extern rtems_shell_cmd_t rtems_shell_MD5_Command;
+extern rtems_shell_cmd_t rtems_shell_UMASK_Command;
+@end example
+
+@c
+@c
+@c
+@page
+@subsection unmount - unmount disk
+
+@pgindex unmount
+
+@subheading SYNOPSYS:
+
+@example
+unmount path
+@end example
+
+@subheading DESCRIPTION:
+
+This command unmounts the device at the specified @code{path}.
+
+@subheading EXIT STATUS:
+
+This command returns 0 on success and non-zero if an error is encountered.
+
+@subheading NOTES:
+
+TBD - Surely there must be some warnings to go here.
+
+@subheading EXAMPLES:
+
+The following is an example of how to use @code{unmount}:
+
+@example
+EXAMPLE_TBD
+@end example
+
+@subheading CONFIGURATION:
+
+@findex CONFIGURE_SHELL_NO_COMMAND_UNMOUNT
+@findex CONFIGURE_SHELL_COMMAND_UNMOUNT
+
+This command is included in the default shell command set.
+When building a custom command set, define
+@code{CONFIGURE_SHELL_COMMAND_UNMOUNT} to have this
+command included.
+
+This command can be excluded from the shell command set by
+defining @code{CONFIGURE_SHELL_NO_COMMAND_UNMOUNT} when all
+shell commands have been configured.
+
+@subheading PROGRAMMING INFORMATION:
+
+@findex rtems_shell_rtems_main_unmount
+
+The @code{unmount} is implemented by a C language function
+which has the following prototype:
+
+@example
+int rtems_shell_rtems_main_unmount(
+ int argc,
+ char **argv
+);
+@end example
+
+The configuration structure for the @code{unmount} has the
+following prototype:
+
+@example
+extern rtems_shell_cmd_t rtems_shell_UNMOUNT_Command;
@end example