summaryrefslogblamecommitdiffstats
path: root/doc/shell/file.t
blob: 0b11614d754c060534e789f1f0f0fc82d799e060 (plain) (tree)
1
2
3
4
5
6
1709
1710
1711
1712
1713
1714
1715
1716
1717
1718
1719
1720
1721
1722
1723
1724
1725
1726
1727
1728
1729
1730
1731
1732
1733
1734
1735
1736
1737
1738
1739
1740
1741
1742
1743
1744
1745
1746
1747
1748
1749
1750
1751
1752
1753
1754
1755
1756
1757
1758
1759
1760
1761
1762
1763
1764
1765
1766
1767
1768
1769
1770
1771
1772
1773
1774
1775
1776
1777
1778
1779
1780
1781
1782
1783
1784
1785
1786
1787
1788
1789
1790
1791
1792
1793
1794
1795
1796
1797
1798
1799
1800
1801
1802
1803
1804
1805
1806
1807
1808
1809
1810
1811
1812
1813
1814
1815
1816
1817
1818
1819
1820
1821
1822
1823
1824
1825
1826
1827
1828
1829
1830
1831
1832
1833
1834
1835
1836
1837
1838
1839
1840
1841
1842
1843
1844
1845
1846
1847
1848
1849
1850
1851
1852
1853
1854
1855
1856
1857
1858
1859
1860
1861
1862
1863
1864
1865
1866
1867
1868
1869
1870
1871
1872
1873
1874
1875
1876
1877
1878
1879
1880
1881
1882
1883
1884
1885
1886
1887
1888
1889
1890
1891
1892
1893
1894
1895
1896
1897
1898
1899
1900
1901
1902
1903
1904
1905
1906
1907
1908
1909
1910
1911
1912
1913
1914
1915
1916
1917
1918
1919
1920
1921
1922
1923
1924
1925
1926
1927
1928
1929
1930
1931
1932
1933
1934
1935
1936
1937
1938
1939
1940
1941
1942
1943
1944
1945
1946
1947
1948
1949
1950
1951
1952
1953
1954
1955
1956
1957
1958
1959
1960
1961
1962
1963
1964
1965
1966
1967
1968
1969
1970
1971
1972
1973
1974
1975
1976
1977
1978
1979
1980
1981
1982
1983
1984
1985
1986
1987
1988
1989
1990
1991
1992
1993
1994
1995
1996
1997
1998
1999
2000
2001
2002
2003
2004
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
2025
2026
2027
2028
2029
2030
2031
2032
2033
2034
2035
2036
2037
2038
2039
2040
2041
2042
2043
2044
2045
2046
2047
2048
2049
2050
2051
2052
2053
2054
2055
2056
2057
2058
2059
2060
2061
2062
2063
2064
2065
2066
2067
2068
2069
2070
2071
2072
2073
2074
2075
2076
2077
2078
2079
2080
2081
2082
2083
2084
2085
2086
2087
2088
2089
2090
2091
2092
2093
2094
2095
2096
2097
2098
2099
2100
2101
2102
2103
2104
2105
2106
2107
2108
2109
2110
2111
2112
2113
2114
2115
2116
2117
2118
2119
2120
2121
2122
2123
2124
2125
2126
2127
2128
2129
2130
2131
2132
2133
2134
2135
2136
2137
2138
2139
2140
2141
2142
2143
2144
2145
2146
2147
2148
2149
2150
2151
2152
2153
2154
2155
2156
2157
2158
2159
2160
2161
2162
2163
2164
2165
2166
2167
2168
2169
2170
2171
2172
2173
2174
2175
2176
2177
2178
2179
2180
2181
2182
2183
2184
2185
2186
2187
2188
2189
2190
2191
2192
2193
2194
2195
2196
2197
2198
2199
2200
2201
2202
2203
2204
2205
2206
2207
2208
2209
2210
2211
2212
2213
2214
2215
2216
2217
2218
2219
2220
2221
2222
2223
2224
2225
2226
2227
2228
2229
2230




                                                    
        









                                                              
                                                
                            
                            
                                       
                                             
                                                 
                                       
                                             

                                             
                                               
                                                 
                                        
                                   
                              
                               
                                   
                                            

                                   
                                 
                               
                                           





                                 




                                                                  









                                               
        
                 
            


                        

                                                                       
 



                                                                          

                  
                                                            


                     
                                                       

        





                     






                                        



                                                            
 

                                                          
                                    




                                    
                                                        








                                  
                                                        















                                                   
        
                                                 


                                                                     

                        









                                                                               





                                                                               



                                                                               




                                                                              


                                                               


                                          


                               














                                                                              






                                                                              






























                                                                               






                     

                                                      

        































                                                             






                                     



                                                            
 

                                                          
                                    




                                    

                                                                   







                              
                                                     





                                                

                   

                                                             
 



     
























































































































                                                                      





                                      
        
   
            


                        

                                                               
 



                                                                          





                     
                                                     

        




                 






                                      



                                                            
 

                                                          
                                    




                                    
                                                      








                                  
                                                      















                                                 
        
        
            


                        


                                                                    
 



                                                                          

                  
                                                                

                                                             


                     
                                                    

        












                                                                






                                     



                                                            
 

                                                          
                                    




                                    
                                                     








                                  
                                                     















                                                
        
           
            


                        


                                                                
 



                                                                          





                     
                                                       

        




                    






                                        



                                                            
 

                                                          
                                    




                                    
                                                        








                                  
                                                        















                                                   
        
                         
            


                        



                                                                
 



                                                                          

                  




                                                                   


                     
                                                       

        










                                                             






                                        



                                                            
 

                                                          
                                    




                                    
                                                        








                                  
                                                        









                                                   
                                            




                     
        
                     
            


                        

                                                                   
 



                                                                          

                  

                                                              


                     
                                                       

        



                                   






                                        



                                                            
 

                                                          
                                    




                                    
                                                        








                                  
                                                        









                                                   











































































































































































































































































                                                                       





                                              
        
            
            


                        

                                                                    
 



                                                                          

                                                





                     


                                                       

        








                                           






                                         



                                                            
 

                                                          
                                    




                                     
                                                         








                                  
                                                         















                                                    
        
                                  
            


                        



                                                                    
 



                                                                          

                  

                                                              


                     
                                                       

        



























                                                                






                                        



                                                            
 

                                                          
                                    




                                    
                                                        








                                  
                                                        















                                                   
        
                          
            


                        
                                                          
 



                                                                          

                  
                                                                     


                     
                                                     

        



                                        






                                      



                                                            
 

                                                          
                                    




                                    
                                                      








                                  
                                                      















                                                 
        
                          
            


                        








                                                                             
 



                                                                          





                     
                                                    

        







                                        






                                     



                                                            
 

                                                          
                                    




                                    
                                                     








                                  
                                                     















                                                
        
                                       
            


                        







                                                                   
                               

            




                                                                     



                                                                          


                  





                                                                              


                     
                                                     

        
                                             











                                                            

            





                                                 




                                        



                                                            
 

                                                          
                                    
 








                                                                             
                                     









                                    
                                   


            



                                    
                                                        








                                  
                                                        















                                                   
        
            
            


                        
                                                              
 



                                                                          

                  
                                                    


                     
                                                         









                                          



                                                            
 

                                                           
                                    




                                      
                                                          








                                   
                                                          















                                                     
        
              
            




                        



                                                                          





                     
                                                         









                                          



                                                            
 

                                                           
                                    




                                      
                                                          








                                   
                                                          









                                                     









































































































































































































































































































































































































































































































































                                                                          



























                                                            





                              


            


                        


                                                                          
 



                                                                          





                     
                                                     

        









                                                                






                                      



                                                            
 

                                                          
                                    




                                    
                                                      








                                  
                                                      









                                                 
























































































































































































































                                                                          





                                
        
            
            


                        


                                                                              
 



                                                                          





                     
                                                    

        











                   






                                     



                                                            
 

                                                          
                                    




                                    
                                                     








                                  
                                                     





                                                
@c
@c  COPYRIGHT (c) 1988-2008.
@c  On-Line Applications Research Corporation (OAR).
@c  All rights reserved.
@c
@c  $Id$
@c

@chapter File and Directory Commands

@section Introduction

The RTEMS shell has the following file and directory commands:

@itemize @bullet

@item @code{umask} - Set file mode creation mask
@item @code{cp} - copy files
@item @code{mv} - move files
@item @code{pwd} - print work directory
@item @code{ls} - list files in the directory
@item @code{chdir} - change the current directory
@item @code{mkdir} - create a directory
@item @code{rmdir} - remove empty directories
@item @code{ln} - make links
@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{mount} - mount disk
@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

@end itemize

@section Commands

This section details the File and Directory 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.

@c
@c
@c
@page
@subsection umask - set file mode creation mask

@pgindex umask

@subheading SYNOPSYS:

@example
umask [new_umask]
@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.

@subheading EXIT STATUS:

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.

@subheading EXAMPLES:

The following is an example of how to use @code{umask}:

@example
SHLL [/] $ umask
022
SHLL [/] $ umask 0666
0666
SHLL [/] $ umask
0666
@end example

@subheading CONFIGURATION:

@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_UMASK} 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
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_umask

The @code{umask} is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_umask(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{umask} has the
following prototype:

@example
extern rtems_shell_cmd_t rtems_shell_UMASK_Command;
@end example

@c
@c
@c
@page
@subsection cp - copy files

@pgindex cp

@subheading SYNOPSYS:

@example
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:

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.

@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{cp} to
copy a file to a new name in the current directory:

@example
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

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

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

@subheading NOTES:

NONE

@subheading EXAMPLES:

The following is an example of how to use @code{pwd}:

@example
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

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
command included.

This command can be excluded from the shell command set by
defining @code{CONFIGURE_SHELL_NO_COMMAND_LS} when all
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_ls

The @code{ls} is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_ls(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{ls} has the
following prototype:

@example
extern rtems_shell_cmd_t rtems_shell_LS_Command;
@end example

@c
@c
@c
@page
@subsection chdir - change the current directory

@pgindex chdir

@subheading SYNOPSYS:

@example
chdir [dir]
@end example

@subheading DESCRIPTION:

This command is used to change the current working directory to
the specified directory.  If no arguments are given, the current
working directory will be changed to @code{/}.

@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{chdir}:

@example
SHLL [/] $ pwd
/
SHLL [/] $ chdir etc
SHLL [/etc] $ pwd 
/etc
@end example

@subheading CONFIGURATION:

@findex CONFIGURE_SHELL_NO_COMMAND_CHDIR
@findex CONFIGURE_SHELL_COMMAND_CHDIR

This command is included in the default shell command set.  
When building a custom command set, define
@code{CONFIGURE_SHELL_COMMAND_CHDIR} to have this
command included.

This command can be excluded from the shell command set by
defining @code{CONFIGURE_SHELL_NO_COMMAND_CHDIR} when all
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_chdir

The @code{chdir} is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_chdir(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{chdir} has the
following prototype:

@example
extern rtems_shell_cmd_t rtems_shell_CHDIR_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 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.

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

@subheading SYNOPSYS:

@example
chmod permissions file1 [file2...]
@end example

@subheading DESCRIPTION:

This command changes the permissions on the files specified to the
indicated @code{permissions}.  The permission values are POSIX based
with owner, group, and world having individual read, write, and
executive permission bits.

@subheading EXIT STATUS:

This command returns 0 on success and non-zero if an error is encountered.

@subheading NOTES:

The @code{chmod} command only takes numeric representations of
the permissions.

@subheading EXAMPLES:

The following is an example of how to use @code{chmod}:

@example
SHLL [/] # cd etc
SHLL [/etc] # ls
-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 [/etc] # chmod 0777 passwd
SHLL [/etc] # ls 
-rwxrwxrwx   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 [/etc] # chmod 0322 passwd
SHLL [/etc] # ls
--wx-w--w-   1 nouser   root         102 Jan 01 00:00 passwd 
-rw-r--r--   1 nouser   root          42 Jan 01 00:00 group 
-rw-r--r--   1 nouser   root          30 Jan 01 00:00 issue 
-rw-r--r--   1 nouser   root          28 Jan 01 00:00 issue.net 
4 files 202 bytes occupied
SHLL [/etc] # chmod 0644 passwd
SHLL [/etc] # ls
-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_CHMOD
@findex CONFIGURE_SHELL_COMMAND_CHMOD

This command is included in the default shell command set.  
When building a custom command set, define
@code{CONFIGURE_SHELL_COMMAND_CHMOD} to have this
command included.

This command can be excluded from the shell command set by
defining @code{CONFIGURE_SHELL_NO_COMMAND_CHMOD} when all
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_chmod

The @code{chmod} is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_chmod(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{chmod} has the
following prototype:

@example
extern rtems_shell_cmd_t rtems_shell_CHMOD_Command;
@end example

@c
@c
@c
@page
@subsection cat - display file contents

@pgindex cat

@subheading SYNOPSYS:

@example
cat file1 [file2 .. fileN]
@end example

@subheading DESCRIPTION:

This command displays the contents of the specified files.

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

@subheading NOTES:

NONE

@subheading EXAMPLES:

The following is an example of how to use @code{rm}:

@example
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_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_RM} to have this
command included.

This command can be excluded from the shell command set by
defining @code{CONFIGURE_SHELL_NO_COMMAND_RM} when all
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_rm

The @code{rm} is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_rm(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{rm} has the
following prototype:

@example
extern rtems_shell_cmd_t rtems_shell_RM_Command;
@end example

@c
@c
@c
@page
@subsection mount - mount disk

@pgindex mount

@subheading SYNOPSYS:

@example
mount [-t fstype] [-r] [-L] device path
@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

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

@c
@c
@c
@page
@subsection blksync - sync the block driver

@pgindex blksync

@subheading SYNOPSYS:

@example
blksync driver
@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}:

@example
EXAMPLE_TBD
@end example

@subheading CONFIGURATION:

@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_BLKSYNC} 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
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_blksync

The @code{blksync} is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_blksync(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{blksync} has the
following prototype:

@example
extern rtems_shell_cmd_t rtems_shell_BLKSYNC_Command;
@end example

@c
@c
@c
@page
@subsection dd - convert and copy a file

@pgindex dd

@subheading SYNOPSYS:

@example
dd [operands ...]
@end example

@subheading DESCRIPTION:

The dd utility copies the standard input to the standard output.
Input data is read and written in 512-byte blocks.  If input reads are
short, input from multiple reads are aggregated to form the output
block.  When finished, dd displays the number of complete and partial
input and output blocks and truncated input records to the standard
error output.

The following operands are available:

@table @b
@item bs=n
Set both input and output block size, superseding the ibs and obs
operands.  If no conversion values other than noerror, notrunc or sync
are specified, then each input block is copied to the output as a
single block without any aggregation of short blocks.

@item cbs=n
Set the conversion record size to n bytes.  The conversion record size
is required by the record oriented conversion values.

@item count=n
Copy only n input blocks.

@item files=n
Copy n input files before terminating.  This operand is only
applicable when the input device is a tape.

@item ibs=n
Set the input block size to n bytes instead of the default 512.

@item if=file
Read input from file instead of the standard input.

@item obs=n
Set the output block size to n bytes instead of the default 512.

@item of=file
Write output to file instead of the standard output.  Any regular
output file is truncated unless the notrunc conversion value is
specified.  If an initial portion of the output file is skipped (see
the seek operand) the output file is truncated at that point.

@item seek=n
Seek n blocks from the beginning of the output before copying.  On
non-tape devices, a @i{lseek} operation is used.  Otherwise, existing
blocks are read and the data discarded.  If the seek operation is past
the end of file, space from the current end of file to the specified
offset is filled with blocks of NUL bytes.

@item skip=n
Skip n blocks from the beginning of the input before copying.  On
input which supports seeks, a @i{lseek} operation is used.  Otherwise,
input data is read and discarded.  For pipes, the correct number of
bytes is read.  For all other devices, the correct number of blocks is
read without distinguishing between a partial or complete block being
read.

@item progress=n
Switch on display of progress if n is set to any non-zero value.  This
will cause a ``.'' to be printed (to the standard error output) for
every n full or partial blocks written to the output file.

@item conv=value[,value...]
Where value is one of the symbols from the following list.

@table @b
@item ascii, oldascii
The same as the unblock value except that characters are translated
from EBCDIC to ASCII before the records are converted.  (These values
imply unblock if the operand cbs is also specified.)  There are two
conversion maps for ASCII.  The value ascii specifies the recom-
mended one which is compatible with AT&T System V UNIX.  The value
oldascii specifies the one used in historic AT&T and pre 4.3BSD-Reno
systems.

@item block
Treats the input as a sequence of newline or end-of-file terminated
variable length records independent of input and output block
boundaries.  Any trailing newline character is discarded.  Each
input record is converted to a fixed length output record where the
length is specified by the cbs operand.  Input records shorter than
the conversion record size are padded with spaces.  Input records
longer than the conversion record size are truncated.  The number of
truncated input records, if any, are reported to the standard error
output at the completion of the copy.

@item ebcdic, ibm, oldebcdic, oldibm
The same as the block value except that characters are translated from
ASCII to EBCDIC after the records are converted.  (These values imply
block if the operand cbs is also specified.)  There are four
conversion maps for EBCDIC.  The value ebcdic specifies the
recommended one which is compatible with AT&T System V UNIX.  The
value ibm is a slightly different mapping, which is compatible with
the AT&T System V UNIX ibm value.  The values oldebcdic and oldibm are
maps used in historic AT&T and pre 4.3BSD-Reno systems.

@item lcase
Transform uppercase characters into lowercase characters.

@item noerror
Do not stop processing on an input error.  When an input error occurs,
a diagnostic message followed by the current input and output block
counts will be written to the standard error output in the same format
as the standard completion message.  If the sync conversion is also
specified, any missing input data will be replaced with NUL bytes (or
with spaces if a block oriented conversion value was specified) and
processed as a normal input buffer.  If the sync conversion is not
specified, the input block is omitted from the output.  On input files
which are not tapes or pipes, the file offset will be positioned past
the block in which the error occurred using lseek(2).

@item notrunc
Do not truncate the output file.  This will preserve any blocks in the
output file not explicitly written by dd.  The notrunc value is not
supported for tapes.

@item osync
Pad the final output block to the full output block size.  If the
input file is not a multiple of the output block size after
conversion, this conversion forces the final output block to be the
same size as preceding blocks for use on devices that require
regularly sized blocks to be written.  This option is incompatible
with use of the bs=n block size specification.

@item sparse
If one or more non-final output blocks would consist solely of NUL
bytes, try to seek the output file by the required space instead of
filling them with NULs.  This results in a sparse file on some file
systems.

@item swab
Swap every pair of input bytes.  If an input buffer has an odd number
of bytes, the last byte will be ignored during swapping.

@item sync
Pad every input block to the input buffer size.  Spaces are used for
pad bytes if a block oriented conversion value is specified, otherwise
NUL bytes are used.

@item ucase
Transform lowercase characters into uppercase characters.

@item unblock
Treats the input as a sequence of fixed length records independent of
input and output block boundaries.  The length of the input records is
specified by the cbs operand.  Any trailing space characters are
discarded and a newline character is appended.
@end table
@end table

Where sizes are specified, a decimal number of bytes is expected.  Two
or more numbers may be separated by an ``x'' to indicate a product.
Each number may have one of the following optional suffixes:
@table @b
@item b
Block; multiply by 512
@item k
Kibi; multiply by 1024 (1 KiB)
@item m
Mebi; multiply by 1048576 (1 MiB)
@item g
Gibi; multiply by 1073741824 (1 GiB)
@item t
Tebi; multiply by 1099511627776 (1 TiB)
@item w
Word; multiply by the number of bytes in an integer
@end table

When finished, dd displays the number of complete and partial input
and output blocks, truncated input records and odd-length
byte-swapping ritten.  Partial output blocks to tape devices are
considered fatal errors.  Otherwise, the rest of the block will be
written.  Partial output blocks to character devices will produce a
warning message.  A truncated input block is one where a variable
length record oriented conversion value was specified and the input
line was too long to fit in the conversion record or was not newline
terminated.

Normally, data resulting from input or conversion or both are
aggregated into output blocks of the specified size.  After the end of
input is reached, any remaining output is written as a block.  This
means that the final output block may be shorter than the output block
size.

@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{dd}:

@example
SHLL [/] $ dd if=/nfs/boot-image of=/dev/hda1
@end example

@subheading CONFIGURATION:

@findex CONFIGURE_SHELL_NO_COMMAND_DD
@findex CONFIGURE_SHELL_COMMAND_DD

This command is included in the default shell command set.  When
building a custom command set, define
@code{CONFIGURE_SHELL_COMMAND_DD} to have this command included.

This command can be excluded from the shell command set by defining
@code{CONFIGURE_SHELL_NO_COMMAND_DD} when all shell commands have been
configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_dd

The @code{dd} command is implemented by a C language function which
has the following prototype:

@example
int rtems_shell_rtems_main_dd(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{dd} has the following
prototype:

@example
extern rtems_shell_cmd_t rtems_shell_DD_Command;
@end example

@c
@c
@c
@page
@subsection hexdump - ascii/dec/hex/octal dump

@pgindex hexdump

@subheading SYNOPSYS:

@example
hexdump [-bcCdovx] [-e format_string] [-f format_file] [-n length]
        [-s skip] file ...
@end example

@subheading DESCRIPTION:

The hexdump utility is a filter which displays the specified files, or
the standard input, if no files are specified, in a user specified
format.

The options are as follows:

@table @b
@item -b
One-byte octal display.  Display the input offset in hexadecimal,
followed by sixteen space-separated, three column, zero-filled, bytes
of input data, in octal, per line.

@item -c
One-byte character display.  Display the input offset in hexadecimal,
followed by sixteen space-separated, three column, space-filled,
characters of input data per line.

@item -C
Canonical hex+ASCII display.  Display the input offset in hexadecimal,
followed by sixteen space-separated, two column, hexadecimal bytes,
followed by the same sixteen bytes in %_p format enclosed in ``|''
characters.

@item -d
Two-byte decimal display.  Display the input offset in hexadecimal,
followed by eight space-separated, five column, zero-filled, two-byte
units of input data, in unsigned decimal, per line.

@item -e format_string
Specify a format string to be used for displaying data.

@item -f format_file
Specify a file that contains one or more newline separated format
strings.  Empty lines and lines whose first non-blank character is a
hash mark (#) are ignored.

@item -n length
Interpret only length bytes of input.

@item -o
Two-byte octal display.  Display the input offset in hexadecimal,
followed by eight space-separated, six column, zerofilled, two byte
quantities of input data, in octal, per line.

@item -s offset
Skip offset bytes from the beginning of the input.  By default, offset
is interpreted as a decimal number.  With a leading 0x or 0X, offset
is interpreted as a hexadecimal number, otherwise, with a leading 0,
offset is interpreted as an octal number.  Appending the character b,
k, or m to offset causes it to be interpreted as a multiple of 512,
1024, or 1048576, respectively.

@item -v
The -v option causes hexdump to display all input data.  Without the
-v option, any number of groups of output lines, which would be
identical to the immediately preceding group of output lines (except
for the input offsets), are replaced with a line containing a single
asterisk.

@item -x
Two-byte hexadecimal display.  Display the input offset in
hexadecimal, followed by eight, space separated, four column,
zero-filled, two-byte quantities of input data, in hexadecimal, per
line.
@end table

For each input file, hexdump sequentially copies the input to standard
output, transforming the data according to the format strings
specified by the -e and -f options, in the order that they were
specified.

@b{Formats}

A format string contains any number of format units, separated by
whitespace.  A format unit contains up to three items: an iteration
count, a byte count, and a format.

The iteration count is an optional positive integer, which defaults to
one.  Each format is applied iteration count times.

The byte count is an optional positive integer.  If specified it
defines the number of bytes to be interpreted by each iteration of the
format.

If an iteration count and/or a byte count is specified, a single slash
must be placed after the iteration count and/or before the byte count
to disambiguate them.  Any whitespace before or after the slash is
ignored.

The format is required and must be surrounded by double quote (`` ``)
marks.  It is interpreted as a fprintf-style format string (see
@i{fprintf}), with the following exceptions:

@itemize @bullet
@item
An asterisk (*) may not be used as a field width or precision.
@item
A byte count or field precision is required for each ``s'' con-
version character (unlike the fprintf(3) default which prints the
entire string if the precision is unspecified).
@item 
The conversion characters ``h'', ``l'', ``n'', ``p'' and ``q'' are not
supported.
@item
The single character escape sequences described in the C standard
are supported:
@quotation
NUL                  \0
<alert character>    \a
<backspace>          \b
<form-feed>          \f
<newline>            \n
<carriage return>    \r
<tab>                \t
<vertical tab>       \v
@end quotation
@end itemize

Hexdump also supports the following additional conversion strings:

@table @b
@item _a[dox]
Display the input offset, cumulative across input files, of the next
byte to be displayed.  The appended characters d, o, and x specify the
display base as decimal, octal or hexadecimal respectively.

@item _A[dox]
Identical to the _a conversion string except that it is only performed
once, when all of the input data has been processed.

@item _c
Output characters in the default character set.  Nonprinting
characters are displayed in three character, zero-padded octal, except
for those representable by standard escape notation (see above), which
are displayed as two character strings.

@item _p
Output characters in the default character set.  Nonprinting
characters are displayed as a single ``.''.

@item _u
Output US ASCII characters, with the exception that control characters
are displayed using the following, lower-case, names.  Characters
greater than 0xff, hexadecimal, are displayed as hexadecimal
strings.

000 nul  001 soh  002 stx  003 etx  004 eot  005 enq
006 ack  007 bel  008 bs   009 ht   00A lf   00B vt
00C ff   00D cr   00E so   00F si   010 dle  011 dc1
012 dc2  013 dc3  014 dc4  015 nak  016 syn  017 etb
018 can  019 em   01A sub  01B esc  01C fs   01D gs
01E rs   01F us   07F del
@end table

The default and supported byte counts for the conversion characters
are as follows:

@quotation
%_c, %_p, %_u, %c       One byte counts only.

%d, %i, %o, %u, %X, %x  Four byte default, one, two, four
                        and eight byte counts supported.

%E, %e, %f, %G, %g      Eight byte default, four byte
                        counts supported.
@end quotation

The amount of data interpreted by each format string is the sum of the
data required by each format unit, which is the iteration count times
the byte count, or the iteration count times the number of bytes
required by the format if the byte count is not specified.

The input is manipulated in ``blocks'', where a block is defined as
the largest amount of data specified by any format string.  Format
strings interpreting less than an input block's worth of data, whose
last format unit both interprets some number of bytes and does not
have a specified iteration count, have the iteration count incremented
until the entire input block has been processed or there is not enough
data remaining in the block to satisfy the format string.

If, either as a result of user specification or hexdump modifying the
iteration count as described above, an iteration count is greater than
one, no trailing whitespace characters are output during the last
iteration.

It is an error to specify a byte count as well as multiple conversion
characters or strings unless all but one of the conversion characters
or strings is _a or _A.

If, as a result of the specification of the -n option or end-of-file
being reached, input data only partially satisfies a format string,
the input block is zero-padded sufficiently to display all available
data (i.e. any format units overlapping the end of data will display
some num- ber of the zero bytes).

Further output by such format strings is replaced by an equivalent
number of spaces.  An equivalent number of spaces is defined as the
number of spaces output by an s conversion character with the same
field width and precision as the original conversion character or
conversion string but with any ``+'', `` '', ``#'' conversion flag
characters removed, and ref- erencing a NULL string.

If no format strings are specified, the default display is equivalent
to specifying the -x option.

@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{hexdump}:

@example
SHLL [/] $ hexdump -C -n 512 /dev/hda1
@end example

@subheading CONFIGURATION:

@findex CONFIGURE_SHELL_NO_COMMAND_HEXDUMP
@findex CONFIGURE_SHELL_COMMAND_HEXDUMP

This command is included in the default shell command set.  When
building a custom command set, define
@code{CONFIGURE_SHELL_COMMAND_HEXDUMP} to have this command included.

This command can be excluded from the shell command set by defining
@code{CONFIGURE_SHELL_NO_COMMAND_HEXDUMP} when all shell commands have
been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_hexdump

The @code{hexdump} command is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_hexdump(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{hexdump} has the following
prototype:

@example
extern rtems_shell_cmd_t rtems_shell_HEXDUMP_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 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 mkrfs - format RFS file system

@pgindex mkrfs

@subheading SYNOPSYS:

@example
mkrfs [-vsbiIo] device
@end example

@subheading DESCRIPTION:

Format the block device with the RTEMS File System (RFS). The default
configuration with not parameters selects a suitable block size based
on the size of the media being formatted.

The media is broken up into groups of blocks. The number of blocks in
a group is based on the number of bits a block contains. The large a
block the more blocks a group contains and the fewer groups in the
file system.

The following options are provided:

@table @b
@item -v
Display configuration and progress of the format.

@item -s
Set the block size in bytes.

@item -b
The number of blocks in a group. The block count must be equal or less
than the number of bits in a block.

@item -i
Number of inodes in a group. The inode count must be equal or less
than the number of bits in a block.

@item -I
Initialise the inodes. The default is not to initialise the inodes and
to rely on the inode being initialised when allocated. Initialising
the inode table helps recovery if a problem appears.

@item -o
Integer percentage of the media used by inodes. The default is 1%.

@item device
Path of the device to format.
@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{mkrfs}:

@example
SHLL [/] $ mkrfs /dev/fdda
@end example

@subheading CONFIGURATION:

@findex CONFIGURE_SHELL_NO_COMMAND_MKRFS
@findex CONFIGURE_SHELL_COMMAND_MKRFS

This command is included in the default shell command set.  
When building a custom command set, define
@code{CONFIGURE_SHELL_COMMAND_MKRFS} to have this
command included.

This command can be excluded from the shell command set by
defining @code{CONFIGURE_SHELL_NO_COMMAND_MKRFS} when all
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_mkrfs

The @code{mkrfs} command is implemented by a C language function which
has the following prototype:

@example
int rtems_shell_rtems_main_mkrfs(
  int    argc,
  char **argv
);
@end example

The configuration structure for @code{mkrfs} has the following
prototype:

@example
extern rtems_shell_cmd_t rtems_shell_MKRFS_Command;
@end example

@c
@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 cd - alias for chdir

@pgindex cd

@subheading SYNOPSYS:

@example
cd directory
@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.

@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{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
/
@end example

@subheading CONFIGURATION:

@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_CD} 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
shell commands have been configured.

@subheading PROGRAMMING INFORMATION:

@findex rtems_shell_rtems_main_cd

The @code{cd} is implemented by a C language function
which has the following prototype:

@example
int rtems_shell_rtems_main_cd(
  int    argc,
  char **argv
);
@end example

The configuration structure for the @code{cd} has the
following prototype:

@example
extern rtems_shell_cmd_t rtems_shell_CD_Command;
@end example