2008-09-04 02:04:52 +02:00
< html >
< head >
< title > NuttX< / title >
< / head >
< body background = "backgd.gif" >
< hr > < hr >
< table width = "100%" >
< tr align = "center" bgcolor = "#e4e4e4" >
< td >
< h1 > < big > < font color = "#3c34ec" > < i > NuttShell (NSH)< / i > < / font > < / big > < / h1 >
2008-09-06 02:16:09 +02:00
< p > Last Updated: September 5, 2008< / p >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< hr > < hr >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< h1 > Table of Contents< / h1 >
< / td >
< / tr >
< / table >
< center > < table width = "80%" >
< tr >
< td >
< table >
< tr >
2008-09-04 17:50:30 +02:00
< td valign = "top" width = "22" > < img height = "20" width = "20" src = "favicon.ico" > < / td >
2008-09-04 02:04:52 +02:00
< td >
< a href = "#overview" > 1.0 Overview< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#frontend" > 1.1 Console/NSH Front End< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdoverview" > 1.2 Command Overview< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#conditional" > 1.3 Conditional Command Execution< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#builtinvars" > 1.4 Built-In Variables< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#currentwd" > 1.5 Current Working Directory< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#environvars" > 1.6 Environment Variables< / a >
< / td >
< / tr >
< tr >
2008-09-04 17:50:30 +02:00
< td valign = "top" width = "22" > < img height = "20" width = "20" src = "favicon.ico" > < / td >
2008-09-04 02:04:52 +02:00
< td >
< a href = "#commands" > 2.0 Commands< / a > .
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdtest" > 2.1 Evaluate Expression (test)< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdcat" > 2.2 Concatenate Files (cat)< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdcd" > 2.3 Change Current Working Directory (cd)< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdcp" > 2.4 Copy Files (cp)< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdecho" > 2.5 Echo Strings and Variables (echo)< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdexec" > 2.6 Execute User Code (exec)< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdget" > 2.7 Get File Via TFTP (get)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdexit" > 2.8 Exit NSH (exit)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdhelp" > 2.9 Show Usage Command Usage (help)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdifconfig" > 2.10 Show Network Configuration (ifconfig)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdls" > 2.11 List Directory Contents (ls)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdmbhw" > 2.12 Access Memory (mb, mh, and mw)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdmem" > 2.13 Show Memory Manager Status (mem)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdps" > 2.14 Show Current Tasks and Threads (ps)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdmkdir" > 2.15 Create a Directory (mkdir)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdmkfatfs" > 2.16 Create a FAT Filesystem (mkfatfs)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 02:16:09 +02:00
< a href = "#cmdmkfifo" > 2.17 Create a FIFO (mkfifo)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdmkrd" > 2.18 Create a RAMDISK (mkrd)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdmount" > 2.19 Mount a File System (mount)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdping" > 2.20 Check Network Peer (ping)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdput" > 2.21 Send File Via TFTP (put)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdpwd" > 2.22 Show Current Working Directory (pwd)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdrm" > 2.23 Remove a File (rm)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdrmdir" > 2.24 Remove a Directory (rmdir)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdset" > 2.25 Set an Environment Variable (set)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdsh" > 2.26 Execute an NSH Script (sh)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdsleep" > 2.27 Wait for Seconds (sleep)< / a >
2008-09-06 02:16:09 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdunmount" > 2.28 Unmount a File System (umount)< / a >
2008-09-06 02:16:09 +02:00
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
2008-09-06 15:29:14 +02:00
< a href = "#cmdunset" > 2.29 Unset an Environment Variable (unset)< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdusleep" > 2.30 Wait for Microseconds (usleep)< / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
2008-09-07 15:42:55 +02:00
< tr >
< td > < br > < / td >
< td >
< a href = "#cmdxd" > 2.31 Hexadecimal Dump (xd)< / a >
< / td >
< / tr >
2008-09-04 02:04:52 +02:00
< tr >
2008-09-04 17:50:30 +02:00
< td valign = "top" width = "22" > < img height = "20" width = "20" src = "favicon.ico" > < / td >
2008-09-04 02:04:52 +02:00
< td >
< a href = "#configuration" > 3.0 Configuration Settings< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#cmddependencies" > 3.1 Command Dependencies on Configuration Settings< / a >
< / td >
< / tr >
< tr >
< td > < br > < / td >
< td >
< a href = "#nshconfiguration" > 3.2 NSH-Specific Configuration Settings< / a >
< / td >
< / tr >
2008-09-04 16:55:48 +02:00
< tr >
2008-09-04 17:50:30 +02:00
< td valign = "top" width = "22" > < img height = "20" width = "20" src = "favicon.ico" > < / td >
2008-09-04 16:55:48 +02:00
< td >
< a href = "#index" > Index< / a >
< / td >
2008-09-04 02:04:52 +02:00
< / table >
< / td >
< / tr >
< / table > < / center >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "overview" > < h1 > 1.0 Overview< / h1 > < / a >
< / td >
< / tr >
< / table >
< p >
The < code > examples/nsh< / code > sub-directory contains the NuttShell (NSH).
NSH is a simple shell application for NuttX.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "frontend" > < h2 > 1.1 Console/NSH Front End< / h2 > < / a >
< / td >
< / tr >
< / table >
< p >
Using settings in the configuration file, NSH may be configured to
use either the serial stdin/out or a telnet connection as the console
or BOTH. When NSH is started, you will see the following welcome on
either console:
< ul > < pre >
NuttShell (NSH)
nsh>
< / pre > < / ul >
< code > nsh> < / code > is the NSH prompt and indicates that you may enter a command
from the console.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdoverview" > < h2 > 1.2 Command Overview< / h2 > < / a >
< / td >
< / tr >
< / table >
< p >
< b > Simple, Re-directed, and Background Commands< / b > .
The NuttShell (NSH) is a simple shell application.
NSH supports the following commands forms:
< / p >
< ul > < table >
< tr >
< td > Simple command:< / td >
< td > < code > < cmd> < / code > < / td >
< / tr >
< tr >
< td > Command with re-directed output:< / td >
< td > < code >
< cmd> > < file> < br >
< cmd> > > < file>
< / code > < / td >
< / tr >
< tr >
< td > Background command:< / td >
< td > < code > < cmd> & < / code > < / td >
< / tr >
< tr >
< td > Re-directed background command:< / td >
< td > < code >
< cmd> > < file> & < br >
< cmd> > > < file> &
< / code > < / td >
< / tr >
< / table > < / ul >
< p > Where:< / p >
< ul > < table >
< tr >
< td > < code > < cmd> < / code > < / td >
< td >
is any one of the simple commands listed later.
< / td >
< / tr >
< tr >
< td > < code > < file> < / code > < / td >
< td >
is the full or relative path to any writable object
in the filesystem name space (file or character driver).
Such objects will be referred to simply as files throughout
this document.
< / td >
< / tr >
< / table > < / ul >
< p >
< b > < big > < code > nice< / code > < / big > 'd Background Commands< / b >
NSH executes at the mid-priority (128). Backgrounded commands can
be made to execute at higher or lower priorities using < code > nice< / code > :
< / p >
< ul > < code >
[nice [-d < niceness> > ]] < cmd> [> < file> |> > < file> ] [& ]
< / code > < / ul >
< p >
Where < code > < niceness> < / code > is any value between -20 and 19 where lower
(more negative values) correspond to higher priorities.
The default niceness is 10.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "conditional" > < h2 > 1.3 Conditional Command Execution< / h2 > < / a >
< / td >
< / tr >
< / table >
< p >
An < code > if-then[-else]-fi< / code > construct is also supported in order to
support conditional execution of commands. This works from the
command line but is primarily intended for use within NSH scripts
(see the < a href = "#cmdsh" > < code > sh< / code > < / a > commnd). The syntax is as follows:
< / p >
< ul > < pre >
if < cmd>
then
[sequence of < cmd> ]
else
[sequence of < cmd> ]
fi
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "builtinvars" > < h2 > 1.4 Built-In Variables< / h2 > < / a >
< / td >
< / tr >
< / table >
< ul > < table >
< tr >
< td valign = "top" > < b > < code > $?< / code > < / b > < / td >
< td >
The result of the last simple command execution.
On backgrounded commands, this variable holds only the result of spawning the background command.
< / td >
< / tr >
< / table > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "currentwd" > < h2 > 1.5 Current Working Directory< / h2 > < / a >
< / td >
< / tr >
< / table >
< p >
< b > < code > cd< / code > and < code > pwd< / code > < / b > .
All path arguments to commands may be either an absolute path or a
path relative to the current working directory. The current working
2008-09-04 16:55:48 +02:00
directory is set using the < a href = "#cmdcd" > < code > cd< / code > < / a > command and can be queried either
2008-09-04 02:04:52 +02:00
by using the < a href = "#cmdpwd" > < code > pwd< / code > < / a > command or by
using the < a href = "#cmdecho" > < code > echo< / code > < / a > < a href = "#environvars" > < code > $PWD< / code > < / a >
command.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "environvars" > < h2 > 1.6 Environment Variables< / h2 > < / a >
< / td >
< / tr >
< / table >
< p >
< b > Environment Variables:< / b >
< / p >
< ul > < table >
< tr >
< td > < b > < code > PWD< / code > < / b > < / td > < td > The current working directory< / td >
< / tr >
< tr >
< td > < b > < code > OLDPWD< / code > < / b > < / td > < td > The previous working directory< / td >
< / tr >
< / table > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "commands" > < h1 > 2.0 Commands< / h1 > < / a >
< / td >
< / tr >
< / table >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdtest" > < h2 > 2.1 Evaluate Expression (test)< / h2 > < / a >
< / td >
< / tr >
< / table >
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
[ < expression> ]
test < expression>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
These are two alternative forms of the same command. They support
evaluation of a boolean expression which sets < a href = "#builtinvars" > < code > $?< / code > < / a > .
This command is used most frequently as the conditional command following the
< code > if< / code > in the < a href = "#conditional" > < code > if-then[-else]-fi< / code > < / a > construct.
< / p >
< p > < b > Expression Syntax:< / b > < / p >
< ul >
< p >
expression = simple-expression | !expression | expression -o expression | expression -a expression
< / p >
< p >
simple-expression = unary-expression | binary-expression
< / p >
< p >
unary-expression = string-unary | file-unary
< / p >
< p >
string-unary = -n string | -z string
< / p >
< p >
file-unary = -b file | -c file | -d file | -e file | -f file | -r file | -s file | -w file
< / p >
< p >
binary-expression = string-binary | numeric-binary
< / p >
< p >
string-binary = string = string | string == string | string != string
< / p >
< p >
numeric-binary = integer -eq integer | integer -ge integer | integer -gt integer | integer -le integer |
integer -lt integer | integer -ne integer
< / p >
< / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdcat" > < h2 > 2.2 Concatenate Files (cat)< / h2 > < / a >
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
cat < code > < path> < / code > [< code > < path> < / code > [< code > < path> < / code > ...]]
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
This command copies and concatentates all of the files at < code > < path> < / code >
to the console (or to another file if the output is redirected).
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdcd" > < h2 > 2.3 Change Current Working Directory (cd)< / h2 > < / a >
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
cd [< dir-path> |-|~|..]
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Changes the current working directory (< code > PWD< / code > ). Also sets the
previous working directory environment variable (< code > OLDPWD< / code > ).
< p >
< p > < b > Forms:< / b > < / p >
< ul > < table >
< tr >
< td > < b > < code > cd < dir-path> < / code > < / b > < / td >
< td > sets the current working directory to < code > < dir-path> < / code > .< / td >
< / tr >
< tr >
< td > < b > < code > cd -< / code > < / b > < / td >
< td > sets the current working directory to the previous
working directory ($< a href = "#environvars" > < code > OLDPWD< / code > < / a > ).
Equivalent to < code > < a href = "#cmdcd" > cd< / a > $< a href = "#environvars" > OLDPWD< / a > < / code > .< / td >
< / tr >
< tr >
< td > < b > < code > cd< / code > or < b > < code > cd ~< / code > < / b > < / td >
< td > set the current working directory to the 'home'
directory. The < i > home< / i > directory can be configured by setting
< code > CONFIG_LIB_HOMEDIR< / code > in the configuration file. The default
< i > home< / i > directory is < code > /< / code > .< / td >
< / tr >
< tr >
< td > < b > < code > cd ..< / code > < / td >
< td > sets the current working directory to the parent directory.< / td >
< / tr >
< / table > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdcp" > < h2 > 2.4 Copy Files (cp)< / h2 > < / a >
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
cp < source-path> < dest-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Copy of the contents of the file at < code > < source-path< < / code > to the location
in the filesystem indicated by < code > < path-path> < / code > .
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdecho" > < h2 > 2.5 Echo Strings and Variables (echo)< / h2 > < / a >
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
echo [< string|$name> [< string|$name> ...]]
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Copy the sequence of strings and expanded environment variables to
console output (or to a file if the output is re-directed).
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdexec" > < h2 > 2.6 Execute User Code (exec)< / h2 > < / a >
< / td >
< / tr >
< / table >
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
exec < hex-address>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Execute the user logic at address < code > < hex-address> < / code > . NSH will pause
until the execution unless the user logic is executed in background
via < code > < a href = "#cmdexec" > exec< / a > < hex-address> & < / code > .
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdget" > < h2 > 2.7 Get File Via TFTP (get)< / h2 > < / a >
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
get [-b|-n] [-f < local-path> ] -h < ip-address> < remote-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Copy the file at < code > < remote-address> < / code > from the host whose IP address is
identified by < code > < ip-address> < / code > .
< / p >
< p > < b > Other options:< / b > < / p >
< ul > < table >
< tr >
< td > < b > < code > -f < local-path> < / code > < / b > < / td >
< td >
The file will be saved relative to the current working directory
unless < code > < local-path> < / code > is provided.
< / td >
< / tr >
< tr >
< td > < b > < code > -b|-n< / code > < / b > < / td >
< td >
Selects either binary (" octect" ) or test (" netascii" ) transfer
mode. Default: text.
< / td >
< / tr >
< / table > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdexit" > < h2 > 2.8 Exit NSH (exit)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
exit
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Exit NSH. Only useful for the serial front end if you have started some other tasks (perhaps
using the < code > < a href = "#cmdexec" > exec< / a > < / code > command) and you would like to have NSH out of the
way. For the telnet front-end, < code > exit< / code > terminates the telenet session.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdhelp" > < h2 > 2.9 Show Usage Command Usage (help)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
help
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Presents summary information about each command to console.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdifconfig" > < h2 > 2.10 Show Network Configuration (ifconfig)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
ifconfig
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Show the current configuration of the network, for example:
< / p >
< ul > < pre >
nsh> ifconfig
eth0 HWaddr 00:18:11:80:10:06
IPaddr:10.0.0.2 DRaddr:10.0.0.1 Mask:255.255.255.0
< / pre > < / ul >
< p >
if uIP statistics are enabled (< code > CONFIG_NET_STATISTICS< / code > ), then
this command will also show the detailed state of uIP.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdls" > < h2 > 2.11 List Directory Contents (ls)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
ls [-lRs] < dir-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Show the contents of the directory at < code > < dir-path> < / code > . NOTE:
< code > < dir-path> < / code > must refer to a directory and no other filesystem
object.
< / p >
< p > < b > Options:< / b > < / p >
< ul > < table >
< tr >
< td > < b > < code > -R< / code > < / b > < / td >
< td > Show the constents of specified directory and all of its
sub-directories.< / td >
< / tr >
< tr >
< td > < b > < code > -s< / code > < / b > < / td >
< td > Show the size of the files along with the filenames in the
listing< / td >
< / tr >
< tr >
< td > < b > < code > -l< / code > < / b > < / td >
< td > Show size and mode information along with the filenames
in the listing.< / td >
< / tr >
< / table > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdmbhw" > < h2 > 2.12 Access Memory (mb, mh, and mw)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
mb < hex-address> [=< hex-value> ][ < hex-byte-count> ]
mh < hex-address> [=< hex-value> ][ < hex-byte-count> ]
mw < hex-address> [=< hex-value> ][ < hex-byte-count> ]
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Access memory using byte size access (mb), 16-bit accesses (mh),
or 32-bit access (mw). In each case,
< / p >
< ul > < table >
< tr >
< td > < code > < hex-address> < / code > .< / td >
< td > Specifies the address to be accessed. The current
value at that address will always be read and displayed.
< / tr >
< tr >
< td > < code > < hex-address> =< hex-value> < / code > .< / td >
< td > Read the value, then write < code > < hex-value> < / code >
to the location.
< / tr >
< tr >
< td > < code > < hex-byte-count> < / code > .< / td >
< td > Perform the mb, mh, or mw operation on a total
of < code > < hex-byte-count> < / code > bytes, increment the < code > < hex-address> < / code > appropriately
after each access
< / tr >
< / table > < / ul >
< p > < b > Example:< / b > < p >
< ul > < pre >
nsh> mh 0 16
0 = 0x0c1e
2 = 0x0100
4 = 0x0c1e
6 = 0x0110
8 = 0x0c1e
a = 0x0120
c = 0x0c1e
e = 0x0130
10 = 0x0c1e
12 = 0x0140
14 = 0x0c1e
nsh>
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdmem" > < h2 > 2.13 Show Memory Manager Status (mem)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
mem
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Show the current state of the memory allocator. For example,
< / p >
< ul > < pre >
nsh> mem
arena: fe2560
ordblks: 1
mxordblk: fdc3e0
uordblks: 6180
fordblks: fdc3e0
nsh>
< / pre > < / ul >
< p > < b > Where:< / b > < / p >
< ul > < table >
< tr >
< td > < b > < code > arena< / code > < / b > < / td >
< td > This is the total size of memory allocated for use by malloc in bytes.< / td >
< / tr >
< tr >
< td > < b > < code > ordblks< / code > < / b > < / td >
< td > This is the number of free (not in use) chunks.< / td >
< / tr >
< tr >
< td > < b > < code > mxordblk< / code > < / b > < / td >
< td > Size of the largest free (not in use) chunk.< / td >
< / tr >
< tr >
< td > < b > < code > uordblks< / code > < / b > < / td >
< td > This is the total size of memory occupied by chunks handed out by malloc.< / td >
< / tr >
< tr >
< td > < b > < code > fordblks< / code > < / b > < / td >
< td > This is the total size of memory occupied by free (not in use) chunks.< / td >
< / tr >
< / table > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdps" > < h2 > 2.14 Show Current Tasks and Threads (ps)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
ps
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Show the currently active threads and tasks. For example,
< / p >
< ul > < pre >
nsh> ps
PID PRI SCHD TYPE NP STATE NAME
0 0 FIFO TASK READY Idle Task()
1 128 RR TASK RUNNING init()
2 128 FIFO TASK WAITSEM nsh_telnetmain()
3 100 RR PTHREAD WAITSEM < pthread> (21)
nsh>
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdmkdir" > < h2 > 2.15 Create a Directory (mkdir)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
2008-09-04 16:55:48 +02:00
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
mkdir < path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Create the directory at < code > < path> < / code > .
All components of of < code > < path> < / code > except the final directory name must exist on a mounted file
system; the final directory must not.
< / p >
< p >
< b > Limited to Mounted File Systems< / b > .
Recall that NuttX uses a < a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > for its root file
system.
The < code > mkdir< / code > command can only be used to create directories in volumes set up with the
< a href = "#cmdmount" > < code > mount< / code > < / a > command; it cannot be used to create directories in the < i > pseudo< / i > filesystem.
< / p >
< p > < b > Example:< / b > < / p >
< ul > < pre >
nsh> mkdir /mnt/fs/tmp
nsh> ls -l /mnt/fs
/mnt/fs:
drw-rw-rw- 0 TESTDIR/
drw-rw-rw- 0 TMP/
nsh>
< / pre > < / ul >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdmkfatfs" > < h2 > 2.16 Create a FAT Filesystem (mkfatfs)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
2008-09-04 16:55:48 +02:00
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
mkfatfs < path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Format a fat file system on the block device specified by < code > < path> < / code > .
NSH provides this command to access the < a href = "mkfatfs" > < code > mkfatfs()< / code > < / a > NuttX API.
This block device must reside in the NuttX < a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > and
must have been created by some call to < code > register_blockdriver()< / code > (see < code > include/nuttx/fs.h< / code > ).
< / p >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 02:16:09 +02:00
< a name = "cmdmkfifo" > < h2 > 2.17 Create a FIFO (mkfifo)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
2008-09-04 16:55:48 +02:00
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
mkfifo < path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Creates a FIFO character device anywhere in the pseudo file system, creating
whatever psuedo directories that may be needed to complete the < code > < path> < / code > .
By convention, however, device drivers are place in the standard < code > /dev< / code > directory.
After it is created, the FIFO device may be used as any other device driver.
NSH provides this command to access the < a href = "NuttxUserGuide.html#mkfifo" > < code > mkfifo()< / code > < / a > NuttX API.
< / p >
< p > < b > Example< / b > < / p >
< ul > < pre >
nsh> ls -l /dev
/dev:
crw-rw-rw- 0 console
crw-rw-rw- 0 null
brw-rw-rw- 0 ram0
nsh> mkfifo /dev/fifo
nsh> ls -l /dev
ls -l /dev
/dev:
crw-rw-rw- 0 console
crw-rw-rw- 0 fifo
crw-rw-rw- 0 null
brw-rw-rw- 0 ram0
nsh>
< / pre > < / ul >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdmkrd" > < h2 > 2.18 Create a RAMDISK (mkrd)< / h2 > < / a >
< / td >
< / tr >
< / table >
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
mkrd [-m < minor> ] [-s < sector-size> ] < nsectors>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Create a ramdisk consisting of < code > < nsectors> < / code > , each of size
< code > < sector-size> < / code > (or 512 bytes if < code > < sector-size> < / code > is not specified.
The ramdisk will be registered as < code > /dev/ram< n> < / code > (if < code > < n> < / code > is not
specified, mkrd will attempt to register the ramdisk as < code > /dev/ram0< / code > .
< / p >
< p > < b > Example< / b > < / p >
< ul > < pre >
nsh> ls /dev
/dev:
console
null
ttyS0
ttyS1
nsh> mkrd 1024
nsh> ls /dev
/dev:
console
null
ram0
ttyS0
ttyS1
nsh>
< / pre > < / ul >
< p >
Once the ramdisk has been created, it may be formatted using
the < code > mkfatfs< / code > command and mounted using the < code > mount< / code > command.
< / p >
< p > < b > Example< / b > < / p >
< ul > < pre >
nsh> mkrd 1024
nsh> mkfatfs /dev/ram0
nsh> mount -t vfat /dev/ram0 /tmp
nsh> ls /tmp
/tmp:
nsh>
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdmount" > < h2 > 2.19 Mount a File System (mount)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
2008-09-04 16:55:48 +02:00
< p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
mount -t < fstype> < block-device> < code > < dir-path> < / code >
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
The 'm ount' command mounts a file system in the NuttX psuedo
filesystem. 'mount' performs a three way associating, binding:
< / p >
< ol >
< li > < b > File system.< / b >
The '-t < code > < fstype> < / code > ' option identifies the type of
file system that has been formatted on the < code > < block-device> < / code > .
As of this writing, < code > vfat< / code > is the only supported value for < code > < fstype> < / code >
< / li >
< li > < b > Block Device.< / b >
The < code > < block-device> < / code > argument is the full or relative
path to a block driver inode in the < a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > .
By convention, this is a name under the < code > /dev< / code > sub-directory.
This < code > < block-device> < / code > must have been previously formatted with the same file system
type as specified by < code > < fstype> < / code >
< / li >
< li > < b > Mount Point.< / b >
The mount point, < code > < dir-path> < / code > , is the location in the
< a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > where the mounted volume will appear.
This mount point can only reside in the NuttX < a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > .
By convention, this mount point is a subdirectory under < code > /mnt< / code > .
The mount command will create whatever psuedo directories that may be needed to complete the
full path but the full path must not already exist.
< / li >
< / ol >
< p >
After the the volume has been mounted in the NuttX
< a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > ,
it may be access in the same way as other objects in thefile system.
< / p >
< p > < b > Example< / b > < / p >
< ul > < pre >
nsh> ls -l /dev
/dev:
crw-rw-rw- 0 console
crw-rw-rw- 0 null
brw-rw-rw- 0 ram0
nsh> ls /mnt
nsh: ls: no such directory: /mnt
nsh> mount -t vfat /dev/ram0 /mnt/fs
nsh> ls -l /mnt/fs/testdir
/mnt/fs/testdir:
-rw-rw-rw- 15 TESTFILE.TXT
nsh> echo "This is a test" >/mnt/fs/testdir/example.txt
nsh> ls -l /mnt/fs/testdir
/mnt/fs/testdir:
-rw-rw-rw- 15 TESTFILE.TXT
-rw-rw-rw- 16 EXAMPLE.TXT
nsh> cat /mnt/fs/testdir/example.txt
This is a test
nsh>
< / pre > < / ul >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdping" > < h2 > 2.20 Check Network Peer (ping)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
ping [-c < count> ] [-i < interval> ] < ip-address>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Test the network communication with a remote peer. Example,
< / p >
< ul > < pre >
nsh> 10.0.0.1
PING 10.0.0.1 56 bytes of data
56 bytes from 10.0.0.1: icmp_seq=1 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=2 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=3 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=4 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=5 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=6 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=7 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=8 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=9 time=0 ms
56 bytes from 10.0.0.1: icmp_seq=10 time=0 ms
10 packets transmitted, 10 received, 0% packet loss, time 10190 ms
nsh>
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdput" > < h2 > 2.21 Send File Via TFTP (put)< / h2 > < / a >
2008-09-06 02:16:09 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
put [-b|-n] [-f < remote-path> ] -h < ip-address> < local-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Copy the file at < code > < local-address> < / code > to the host whose IP address is
identified by < code > < ip-address> < / code > .
< / p >
< p > < b > Other options:< / b > < / p >
< ul > < table >
< tr >
< td > < b > < code > -f < remote-path> < / code > < / b > < / td >
< td >
The file will be saved relative with the same name on the host
unless < code > < remote-path> < / code > is provided.
< / td >
< / tr >
< tr >
< td > < b > < code > -b|-n< / code > < / b > < / td >
< td >
Selects either binary (" octect" ) or test (" netascii" ) transfer
mode. Default: text.
< / td >
< / tr >
< / table > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdpwd" > < h2 > 2.22 Show Current Working Directory (pwd)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
pwd
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Show the current working directory.
< / p >
< ul > < pre >
nsh> cd /dev
nsh> pwd
/dev
nsh>
< / pre > < / ul >
< p > Same as < code > < a href = "#cmdecho" > echo< / a > < a href = "#environvars" > $PWD< / a > < / code > .< / p >
< ul > < pre >
nsh> echo $PWD
/dev
nsh>
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdrm" > < h2 > 2.23 Remove a File (rm)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
2008-09-04 16:55:48 +02:00
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
rm < file-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Remove the specified < code > < file-path> < / code > name from the mounted file system.
Recall that NuttX uses a < a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > for its root file
system.
The < code > rm< / code > command can only be used to remove (unlink) files in volumes set up with the
< a href = "#cmdmount" > < code > mount< / code > < / a > command;
it cannot be used to remove names in the < i > pseudo< / i > filesystem.
< / p >
< p > < b > Example:< / b > < / p >
< ul > < pre >
nsh> ls /mnt/fs/testdir
/mnt/fs/testdir:
TESTFILE.TXT
EXAMPLE.TXT
nsh> rm /mnt/fs/testdir/example.txt
nsh> ls /mnt/fs/testdir
/mnt/fs/testdir:
TESTFILE.TXT
nsh>
< / pre > < / ul >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdrmdir" > < h2 > 2.24 Remove a Directory (rmdir)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
2008-09-04 16:55:48 +02:00
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
rmdir < dir-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Remove the specified < code > < dir-path> < / code > directory from the mounted file system.
Recall that NuttX uses a < a href = "NuttxUserGuide.html#FileSystemOverview" > < i > pseudo< / i > filesystem< / a > for its root file
system.
The < code > rmdir< / code > command can only be used to remove directories from volumes set up with the
< a href = "#cmdmount" > < code > mount< / code > < / a > command;
it cannot be used to remove directories from the < i > pseudo< / i > filesystem.
< / p >
< p > < b > Example:< / b > < / p >
< ul > < pre >
nsh> mkdir /mnt/fs/tmp
nsh> ls -l /mnt/fs
/mnt/fs:
drw-rw-rw- 0 TESTDIR/
drw-rw-rw- 0 TMP/
nsh> rmdir /mnt/fs/tmp
nsh> ls -l /mnt/fs
/mnt/fs:
drw-rw-rw- 0 TESTDIR/
nsh>
< / pre > < / ul >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdset" > < h2 > 2.25 Set an Environment Variable (set)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
set < name> < value>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Set the environment variable < code > < name> < / code > to the string < code > < value> < / code > .
For example,
< / p >
< ul > < pre >
nsh> echo $foobar
nsh> set foobar foovalue
nsh> echo $foobar
foovalue
nsh>
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdsh" > < h2 > 2.26 Execute an NSH Script (sh)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
sh < script-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Execute the sequence of NSH commands in the file referred
to by < code > < script-path> .
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdsleep" > < h2 > 2.27 Wait for Seconds (sleep)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
sleep < sec>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Pause execution (sleep) for < code > < sec> < / code > seconds.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdunmount" > < h2 > 2.28 Unmount a File System (umount)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
2008-09-04 16:55:48 +02:00
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
umount < dir-path>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Un-mount the file system at mount point < code > < dir-path> < / code > .
The < code > umount< / code > command can only be used to un-mount volumes previously mounted using
< a href = "#cmdmount" > < code > mount< / code > < / a > command.
< / p >
< p > < b > Example:< / b > < / p >
< ul > < pre >
nsh> ls /mnt/fs
/mnt/fs:
TESTDIR/
nsh> umount /mnt/fs
nsh> ls /mnt/fs
/mnt/fs:
nsh: ls: no such directory: /mnt/fs
nsh>
< / pre > < / ul >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdunset" > < h2 > 2.29 Unset an Environment Variable (unset)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
unset < name>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Remove the value associated with the environment variable
< code > < name> . Example:
< / p >
< ul > < pre >
nsh> echo $foobar
foovalue
nsh> unset foobar
nsh> echo $foobar
nsh>
< / pre > < / ul >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
2008-09-06 15:29:14 +02:00
< a name = "cmdusleep" > < h2 > 2.30 Wait for Microseconds (usleep)< / h2 > < / a >
2008-09-04 02:04:52 +02:00
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
usleep < usec>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Pause execution (sleep) of < code > < usec> < / code > microseconds.
< / p >
2008-09-07 15:42:55 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmdxd" > < h2 > 2.31 Hexadecimal dump (xd)< / h2 > < / a >
< / td >
< / tr >
< / table >
< a < p > < b > Command Syntax:< / b > < / p >
< ul > < pre >
xd < hex-address> < byte-count>
< / pre > < / ul >
< p >
< b > Synopsis< / b > .
Dump < code > < byte-count> < / code > bytes of data from address < code > < hex-address> < / code > .
< / p >
< p > < b > Example:< / b > < / p >
< ul > < pre >
nsh> xd 410e0 512
Hex dump:
0000: 00 00 00 00 9c 9d 03 00 00 00 00 01 11 01 10 06 ................
0010: 12 01 11 01 25 08 13 0b 03 08 1b 08 00 00 02 24 ....%..........$
...
01f0: 08 3a 0b 3b 0b 49 13 00 00 04 13 01 01 13 03 08 .:.;.I..........
nsh>
< / pre > < / ul >
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "configuration" > < h1 > 3.0 Configuration Settings< / h1 > < / a >
< / td >
< / tr >
< / table >
< p >
The availability of the above commands depends upon features that
may or may not be enabled in the NuttX configuration file. The
following < a href = "#cmddependencies" > table< / a > indicates the dependency of each command on NuttX
configuration settings. General configuration settings are discussed
in the < a href = "NuttxPortingGuide.html" > NuttX Porting Guide.< / a >
Configuration settings specific to NSH as discussed at the < a href = "#nshconfiguration" > bottom< / a > of this document.
< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "cmddependencies" > < h2 > 3.1 Command Dependencies on Configuration Settings< / h2 > < / a >
< / td >
< / tr >
< / table >
< center > < p > Table. Command Dependencies on Configuration Settings< / p >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< th align = "left" width = "25%" > Command< / th >
< th align = "left" > Depends on Configuration< / th >
< / tr >
< tr >
< td > < b > < code > [< / code > < / b > < / td >
< td > !< code > CONFIG_EXAMPLES_NSH_DISABLESCRIPT< / code > < / td >
< / tr >
< tr >
< td > < b > < code > cat< / code > < / b > < / td >
< td > < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > cd< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_ENVIRON< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > cp< / code > < / b > < / td >
< td > < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > echo< / code > < / b > < / td >
< td > < br > < / td >
< / tr >
< tr >
< td > < b > < code > exec< / code > < / b > < / td >
< td > < br > < / td >
< / tr >
< tr >
< td > < b > < code > exit< / code > < / b > < / td >
< td > < br > < / td >
< / tr >
2008-09-06 02:16:09 +02:00
< tr >
< td > < b > < code > get< / code > < / b > < / td >
2008-09-06 04:19:13 +02:00
< td > < code > CONFIG_NET< / code > & & < code > CONFIG_NET_UDP< / code > & &
2008-09-06 17:44:41 +02:00
< code > CONFIG_NFILE_DESCRIPTORS< / code > > 0 & & < code > CONFIG_NET_BUFSIZE< / code > > = 558< sup > 1< / sup > < / td >
2008-09-06 02:16:09 +02:00
< / tr >
2008-09-04 02:04:52 +02:00
< tr >
< td > < b > < code > help< / code > < / b > < / td >
< td > < br > < / td >
< / tr >
< tr >
< td > < b > < code > ifconfig< / code > < / b > < / td >
< td > < code > CONFIG_NET< / code > < / td >
< / tr >
< tr >
< td > < b > < code > ls< / code > < / b > < / td >
< td > < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > mb,mh,mw< / code > < / b > < / td >
< td > < br > < / td >
< / tr >
< tr >
< td > < b > < code > mem< / code > < / b > < / td >
< td > < br > < / td >
< / tr >
< tr >
< td > < b > < code > mkdir< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_MOUNTPOINT< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > mkfatfs< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_MOUNTPOINT< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0 & & < code > CONFIG_FS_FAT< / code > < / td >
< / tr >
< tr >
< td > < b > < code > mkfifo< / code > < / b > < / td >
2008-09-06 15:29:14 +02:00
< td > < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > mkrd< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_MOUNTPOINT< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0 & & < code > CONFIG_FS_FAT< / code > < / td >
2008-09-04 02:04:52 +02:00
< / tr >
< tr >
< td > < b > < code > mount< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_MOUNTPOINT< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0 & & < code > CONFIG_FS_FAT< / code > < / td >
< / tr >
< tr >
< td > < b > < code > ping< / code > < / b > < / td >
2008-09-06 04:19:13 +02:00
< td > < code > CONFIG_NET< / code > & & < code > CONFIG_NET_ICMP< / code > & &
< code > CONFIG_NET_ICMP_PING< / code > & & !< code > CONFIG_DISABLE_CLOCK< / code > & &
!< code > CONFIG_DISABLE_SIGNALS< / code > < / td >
2008-09-04 02:04:52 +02:00
< / tr >
< tr >
< td > < b > < code > ps< / code > < / b > < / td >
< td > < br > < / td >
< / tr >
2008-09-06 02:16:09 +02:00
< tr >
< td > < b > < code > put< / code > < / b > < / td >
2008-09-06 04:19:13 +02:00
< td > < code > CONFIG_NET< / code > & & < code > CONFIG_NET_UDP< / code > & &
2008-09-07 04:07:18 +02:00
< code > CONFIG_NFILE_DESCRIPTORS< / code > > 0 & & < code > CONFIG_NET_BUFSIZE< / code > > = 558< sup > 1,2< / sup > < / td >
2008-09-06 02:16:09 +02:00
< / tr >
2008-09-04 02:04:52 +02:00
< tr >
< td > < b > < code > pwd< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_ENVIRON< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > rm< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_MOUNTPOINT< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > rmdir< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_MOUNTPOINT< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0< / td >
< / tr >
< tr >
< td > < b > < code > set< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_ENVIRON< / code > < / td >
< / tr >
< tr >
< td > < b > < code > sh< / code > < / b > < / td >
< td > < code > CONFIG_NFILE_DESCRIPTORS > 0 & & < code > CONFIG_NFILE_STREAMS > 0 & & !< code > CONFIG_EXAMPLES_NSH_DISABLESCRIPT< / code > < / td >
< / tr >
< tr >
< td > < b > < code > sleep< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_SIGNALS< / code > < / td >
< / tr >
< tr >
< td > < b > < code > test< / code > < / b > < / td >
< td > !< code > CONFIG_EXAMPLES_NSH_DISABLESCRIPT< / code > < / td >
< / tr >
< tr >
< td > < b > < code > umount< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_MOUNTPOINT< / code > & & < code > CONFIG_NFILE_DESCRIPTORS< / code > > 0 & & < code > CONFIG_FS_FAT< / code > < / td >
< / tr >
< tr >
< td > < b > < code > unset< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_ENVIRON< / code > < / td >
< / tr >
< tr >
< td > < b > < code > usleep< / code > < / b > < / td >
< td > !< code > CONFIG_DISABLE_SIGNALS< / code > < / td >
< / tr >
< / table > < / center >
2008-09-07 04:07:18 +02:00
< p > < sup > 1< / sup > < small >
Because of hardware padding, the actual required packet size may be larger< / small > < / p >
< p > < sup > 2< / sup > < small >
Special TFTP server start-up optionss will probably be required to permit
creation of files for the correct operation of the < code > put< / code > command.< / small > < / p >
2008-09-06 17:44:41 +02:00
2008-09-04 02:04:52 +02:00
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "nshconfiguration" > < h2 > 3.2 NSH-Specific Configuration Settings< / h2 > < / a >
< / td >
< / tr >
< / table >
< p >
The behavior of NSH can be modified with the following settings in
the < code > configs/< board-name> /defconfig< / code > file:
< / p >
< center > < table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< th align = "left" width = "25%" > Configuration< / th >
< th align = "left" > Description< / th >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_FILEIOSIZE< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
Size of a static I/O buffer used for file access (ignored if
there is no filesystem).
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_STRERROR< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
strerror(errno) makes more readable output but strerror() is
very large and will not be used unless this setting is < i > y< / i >
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_LINELEN< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
The maximum length of one command line and of one output line.
Default: 80
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_STACKSIZE< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
The stack size to use when spawning new threads or tasks. Such
new threads are generated when a command is executed in background
or as new TELNET connections are established.
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_NESTDEPTH< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
The maximum number of nested < a href = "#conditional" > < code > if-then[-else]-fi< / code > < / a > sequences that
are permissable. Default: 3
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_DISABLESCRIPT< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
This can be set to < i > y< / i > to suppress support for scripting. This
setting disables the < a href = "#cmdsh" > < code > sh< / code > < / a > , < a href = "#cmdtest" > < code > test< / code > < / a > , and < a href = "#cmtest" > < code > [< / code > < / a > commands and the
< a href = "#conditional" > < code > if-then[-else]-fi< / code > < / a > construct. This would only be set on systems
where a minimal footprint is a necessity and scripting is not.
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_DISABLEBG< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
This can be set to < i > y< / i > to suppress support for background
commands. This setting disables the < a href = "#cmdoverview" > < code > nice< / code > < / a > command prefix and
the < a href = "#cmdoverview" > < code > & < / code > < / a > command suffix. This would only be set on systems
where a minimal footprint is a necessity and background command execution is not.
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_CONSOLE< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
If < code > CONFIG_EXAMPLES_NSH_CONSOLE< / code > is set to < i > y< / i > , then a serial
console front-end is selected.
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_TELNET< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
If < code > CONFIG_EXAMPLES_NSH_TELNET< / code > is set to < i > y< / i > , then a TELENET
server front-end is selected. When this option is provided,
you may log into NuttX remotely using telnet in order to
access NSH.
< / td >
< / tr >
2008-09-04 16:55:48 +02:00
< / table > < / center >
2008-09-04 02:04:52 +02:00
< p >
One or both of < code > CONFIG_EXAMPLES_NSH_CONSOLE< / code > and < code > CONFIG_EXAMPLES_NSH_TELNET< / code >
must be defined. If < code > CONFIG_EXAMPLES_NSH_TELNET< / code > is selected, then there some
other configuration settings that apply:
< / p >
< center > < table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< th align = "left" width = "25%" > Configuration< / th >
< th align = "left" > Description< / th >
< / tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
Determines the size of the I/O buffer to use for sending/
receiving TELNET commands/reponses
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_DHCPC< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
Obtain the the IP address via DHCP.
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_IPADDR< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
If < code > CONFIG_EXAMPLES_NSH_DHCPC< / code > is NOT set, then the static IP
address must be provided.
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_DRIPADDR< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
Default router IP address
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_NETMASK< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
Network mask
< / td >
< / tr >
< tr >
2008-09-04 16:55:48 +02:00
< td valign = "top" > < b > < code > CONFIG_EXAMPLES_NSH_NOMAC< / code > < / b > < / td >
2008-09-04 02:04:52 +02:00
< td >
Set if your ethernet hardware has no built-in MAC address.
If set, a bogus MAC will be assigned.
< / td >
< / tr >
2008-09-04 16:55:48 +02:00
< / table > < / center >
< table width = "100%" >
< tr bgcolor = "#e4e4e4" >
< td >
< a name = "index" > < h1 > Index< / h1 > < / a >
< / td >
< / tr >
2008-09-04 02:04:52 +02:00
< / table >
2008-09-04 16:55:48 +02:00
< table width = "100%" >
< tr > < td width = "50%" >
< ul >
< li > < a href = "#builtinvars" > < code > $?< / code > < / a > < / li >
< li > < a href = "#cmdtest" > < code > [< / code > < / a > < / li >
< li > < a href = "#cmdoverview" > Background commands< / a > < / li >
< li > < a href = "#cmdoverview" > Background command priority< / a > < / li >
< li > < a href = "#builtinvars" > Built-in variables< / a > < / li >
< li > < a href = "#cmdcat" > < code > cat< / code > < / a > < / li >
< li > < a href = "#cmdcd" > < code > cd< / code > < / a > < / li >
< li > < a href = "#commands" > Command summaries< / a > < / li >
< li > < a href = "#conditional" > Conditional command execution< / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_CONSOLE< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_DHCPC< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_DISABLEBG< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_DISABLESCRIPT< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_DRIPADDR< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_FILEIOSIZE< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_IOBUFFER_SIZE< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_IPADDR< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_LINELEN< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_NESTDEPTH< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_NETMASK< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_NOMAC< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_STACKSIZE< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_STRERROR< / code > < / a > < / li >
< li > < a href = "#nshconfiguration" > < code > CONFIG_EXAMPLES_NSH_TELNET< / code > < / a > < / li >
< li > < a href = "#configuration" > Configuration settings< / a > < / li >
< li > < a href = "#cmddependencies" > Configuration settings, command dependencies< / a > < / li >
< li > < a href = "#nshconfiguration" > Configuration settings, NSH-specific< / a > < / li >
< li > < a href = "#cmdcp" > < code > cp< / code > < / a > < / li >
< li > < a href = "#currentwd" > Current working directory< / a > < / li >
< li > < a href = "#cmdecho" > < code > echo< / code > < / a > < / li >
< li > < a href = "#environvars" > Environment Variables< / a > < / li >
< li > < a href = "#cmdexec" > < code > exec< / code > < / a > < / li >
< li > < a href = "#cmdexit" > < code > exit< / code > < / a > < / li >
2008-09-06 02:16:09 +02:00
< li > < a href = "#cmdget" > < code > get< / code > < / a > < / li >
2008-09-04 16:55:48 +02:00
< / ul > < / td >
< td > < / ul >
< li > < a href = "#frontend" > Greeting< / a > < / li >
< li > < a href = "#cmdhelp" > < code > help< / code > < / a > < / li >
< li > < a href = "#conditional" > < code > if-then[-else]-fi< / code > < / a > < / li >
< li > < a href = "#cmdifconfig" > < code > ifconfig< / code > < / a > < / li >
< li > < a href = "#cmdls" > ls< / code > < / a > < / li >
< li > < a href = "#cmdmbhw" > < code > mb< / code > < / a > < / li >
< li > < a href = "#cmdmbhw" > < code > mh< / code > < / a > < / li >
< li > < a href = "#cmdmbhw" > < code > mw< / code > < / a > < / li >
< li > < a href = "#cmdmem" > < code > mem< / code > < / a > < / li >
< li > < a href = "#cmdmkdir" > < code > mkdir< / code > < / a > < / li >
< li > < a href = "#cmdmkfatfs" > < code > mkfatfs< / code > < / a > < / li >
< li > < a href = "#cmdmkfifo" > < code > mkfifo< / code > < / a > < / li >
2008-09-06 15:29:14 +02:00
< li > < a href = "#cmdmkrd" > < code > mkrd< / code > < / a > < / li >
2008-09-04 16:55:48 +02:00
< li > < a href = "#cmdmount" > < code > mount< / code > < / a > < / li >
< li > < a href = "#cmdoverview" > < code > nice< / code > < / a > < / li >
< li > < a href = "#environvars" > < code > OLDPWD< / code > < / a > < / li >
< li > < a href = "#overview" > Overview< / a > < / li >
< li > < a href = "#cmdping" > < code > ping< / code > < / a > < / li >
< li > < a href = "#frontend" > Prompt< / a > < / li >
< li > < a href = "#cmdps" > < code > ps< / code > < / a > < / li >
2008-09-06 02:16:09 +02:00
< li > < a href = "#cmdput" > < code > put< / code > < / a > < / li >
2008-09-04 16:55:48 +02:00
< li > < a href = "#cmdpwd" > < code > pwd< / code > < / a > < / li >
< li > < a href = "#environvars" > < code > PWD< / code > < / a > < / li >
< li > < a href = "#cmdoverview" > Re-directed commands< / a > < / li >
< li > < a href = "#cmdrm" > < code > rm< / code > < / a > < / li >
< li > < a href = "#cmdrmdir" > < code > rmdir< / code > < / a > < / li >
< li > < a href = "#cmdset" > < code > set< / code > < / a > < / li >
< li > < a href = "#cmdsh" > < code > sh< / code > < / a > < / li >
< li > < a href = "#cmdoverview" > Simple commands< / a > < / li >
< li > < a href = "#cmdsleep" > < code > sleep< / code > < / a > < / li >
< li > < a href = "#cmdtest" > < code > test< / code > < / a > < / li >
< li > < a href = "#cmdunmount" > < code > umount< / code > < / a > < / li >
< li > < a href = "#cmdunset" > < code > unset< / code > < / a > < / li >
< li > < a href = "#cmdusleep" > < code > usleep< / code > < / a > < / li >
2008-09-07 15:42:55 +02:00
< li > < a href = "#cmdxd" > < code > xd< / code > < / a > < / li >
2008-09-04 16:55:48 +02:00
< / ul > < / td >
< / tr > < / table >
2008-09-04 02:04:52 +02:00
< / body >
< / html >