Toybox 0.8.10 command help

toybox : [ acpi arch ascii base32 base64 basename blkdiscard blkid blockdev bunzip2 bzcat cal cat chattr chgrp chmod chown chroot chrt chvt cksum clear cmp comm count cp cpio crc32 cut date dd deallocvt devmem df dirname dmesg dnsdomainname dos2unix du echo egrep eject env expand factor fallocate false fgrep file find flock fmt free freeramdisk fsfreeze fstype fsync ftpget ftpput getconf gpiodetect gpiofind gpioget gpioinfo gpioset grep groups gunzip halt head help hexedit host hostname httpd hwclock i2cdetect i2cdump i2cget i2cset i2ctransfer iconv id ifconfig inotifyd insmod install ionice iorenice iotop kill killall killall5 link linux32 ln logger login logname losetup ls lsattr lsmod lspci lsusb makedevs mcookie md5sum microcom mix mkdir mkfifo mknod mkpasswd mkswap mktemp modinfo mount mountpoint mv nbd-client nbd-server nc netcat netstat nice nl nohup nproc nsenter od oneit openvt partprobe passwd paste patch pgrep pidof ping ping6 pivot_root pkill pmap poweroff printenv printf prlimit ps pwd pwdx pwgen readahead readelf readlink realpath reboot renice reset rev rfkill rm rmdir rmmod rtcwake sed seq setfattr setsid sha1sum sha224sum sha256sum sha384sum sha3sum sha512sum shred shuf sleep sntp sort split stat strings su swapoff swapon switch_root sync sysctl tac tail tar taskset tee test time timeout top touch true truncate tty tunctl uclampset ulimit umount uname unicode uniq unix2dos unlink unshare uptime usleep uudecode uuencode uuidgen vconfig vmstat w watch watchdog wc wget which who whoami xargs xxd yes zcat


usage: toybox [--long | --help | --version | [COMMAND] [ARGUMENTS...]]

With no arguments, "toybox" shows available COMMAND names. Add --long
to include suggested install path for each command, see for details.

First argument is name of a COMMAND to run, followed by any ARGUMENTS
to that command. Most toybox commands also understand:

--help		Show command help (only)
--version	Show toybox version (only)

The filename "-" means stdin/stdout, and "--" stops argument parsing.

Numerical arguments accept a single letter suffix for
kilo, mega, giga, tera, peta, and exabytes, plus an additional
"d" to indicate decimal 1000's instead of 1024.

Durations can be decimal fractions and accept minute ("m"), hour ("h"),
or day ("d") suffixes (so 0.1m = 6s).


See true


See test


usage: acpi [-abctV]

Show status of power sources and thermal devices.

-a	Show power adapters
-b	Show batteries
-c	Show cooling device state
-t	Show temperatures
-V	Show everything


usage: arch

Print machine (hardware) name, same as uname -m.


usage: ascii

Display ascii character set.


usage: base32 [-di] [-w COLUMNS] [FILE...]

Encode or decode in base32.

-d	Decode
-i	Ignore non-alphabetic characters
-w	Wrap output at COLUMNS (default 76 or 0 for no wrap)


usage: base64 [-di] [-w COLUMNS] [FILE...]

Encode or decode in base64.

-d	Decode
-i	Ignore non-alphabetic characters
-w	Wrap output at COLUMNS (default 76 or 0 for no wrap)


usage: basename [-a] [-s SUFFIX] NAME... | NAME [SUFFIX]

Return non-directory portion of a pathname removing suffix.

-a		All arguments are names
-s SUFFIX	Remove suffix (implies -a)


usage: blkdiscard [-olszf] DEVICE

Discard device sectors.

-o, --offset OFF	Byte offset to start discarding at (default 0)
-l, --length LEN	Bytes to discard (default all)
-s, --secure		Perform secure discard
-z, --zeroout		Zero-fill rather than discard
-f, --force		Disable check for mounted filesystem

OFF and LEN must be aligned to the device sector size.
By default entire device is discarded.
WARNING: All discarded data is permanently lost!


usage: blkid [-o TYPE] [-s TAG] [-UL] DEV...

Print type, label and UUID of filesystem on a block device or image.

-U	Show UUID only (or device with that UUID)
-L	Show LABEL only (or device with that LABEL)
-o TYPE	Output format (full, value, export)
-s TAG	Only show matching tags (default all)


usage: blockdev --OPTION... BLOCKDEV...

Call ioctl(s) on each listed block device

--setro		Set read only
--setrw		Set read write
--getro		Get read only
--getss		Get sector size
--getbsz	Get block size
--setbsz BYTES	Set block size
--getsz		Get device size in 512-byte sectors
--getsize	Get device size in sectors (deprecated)
--getsize64	Get device size in bytes
--getra		Get readahead in 512-byte sectors
--setra SECTORS	Set readahead
--flushbufs	Flush buffers
--rereadpt	Reread partition table


usage: bunzip2 [-cftkv] [FILE...]

Decompress listed files ( becomes file) deleting archive file(s).
Read from stdin if no files listed.

-c	Force output to stdout
-f	Force decompression (if FILE doesn't end in .bz, replace original)
-k	Keep input files (-c and -t imply this)
-t	Test integrity
-v	Verbose


usage: bzcat [FILE...]

Decompress listed files to stdout. Use stdin if no files listed.


usage: cal [[[DAY] MONTH] YEAR]

Print a calendar.

With one argument, prints all months of the specified year.
With two arguments, prints calendar for month and year.
With three arguments, highlights day within month and year.

-h	Don't highlight today


usage: cat [-etuv] [FILE...]

Copy (concatenate) files to stdout.  If no files listed, copy from stdin.
Filename "-" is a synonym for stdin.

-e	Mark each newline with $
-t	Show tabs as ^I
-u	Copy one byte at a time (slow)
-v	Display nonprinting characters as escape sequences with M-x for
	high ascii characters (>127), and ^x for other nonprinting chars


usage: chattr [-R] [-+=AacDdijsStTu] [-p PROJID] [-v VERSION] [FILE...]

Change file attributes on a Linux file system.

-R	Recurse
-p	Set the file's project number
-v	Set the file's version/generation number

  '-' Remove attributes
  '+' Add attributes
  '=' Set attributes

  A  No atime                     a  Append only
  C  No COW                       c  Compression
  D  Synchronous dir updates      d  No dump
  E  Encrypted                    e  Extents
  F  Case-insensitive (casefold)
  I  Indexed directory            i  Immutable
  j  Journal data
  N  Inline data in inode
  P  Project hierarchy
  S  Synchronous file updates     s  Secure delete
  T  Top of dir hierarchy         t  No tail-merging
  u  Allow undelete
  V  Verity


usage: chgrp/chown [-RHLP] [-fvh] GROUP FILE...

Change group of one or more files.

-f	Suppress most error messages
-h	Change symlinks instead of what they point to
-R	Recurse into subdirectories (implies -h)
-H	With -R change target of symlink, follow command line symlinks
-L	With -R change target of symlink, follow all symlinks
-P	With -R change symlink, do not follow symlinks (default)
-v	Verbose


usage: chmod [-R] MODE FILE...

Change mode of listed file[s] (recursively with -R).

MODE can be (comma-separated) stanzas: [ugoa][+-=][rwxstXugo]

Stanzas are applied in order: For each category (u = user,
g = group, o = other, a = all three, if none specified default is a),
set (+), clear (-), or copy (=), r = read, w = write, x = execute.
s = u+s = suid, g+s = sgid, +t = sticky. (o+s ignored so a+s doesn't set +t)
suid/sgid: execute as the user/group who owns the file.
sticky: can't delete files you don't own out of this directory
X = x for directories or if any category already has x set.

Or MODE can be an octal value up to 7777	ug uuugggooo	top +
bit 1 = o+x, bit 1<<8 = u+w, 1<<11 = g+1	sstrwxrwxrwx	bottom

chmod u+w file - allow owner of "file" to write to it.
chmod 744 file - user can read/write/execute, everyone else read only


See chgrp


usage: chroot NEWROOT [COMMAND [ARG...]]

Run command within a new root directory. If no command, run /bin/sh.


usage: chrt [-Rmofrbi] {-p PID [PRIORITY] | [PRIORITY COMMAND...]}

Get/set a process' real-time scheduling policy and priority.

-p	Set/query given pid (instead of running COMMAND)
-m	Show min/max priorities available

Set policy (default -r):



usage: chvt NUM

Change to virtual terminal number NUM. (This only works in text mode.)

Virtual terminals are the Linux VGA text mode (or framebuffer) displays,
switched between via alt-F1, alt-F2, etc. Use ctrl-alt-F1 to switch
from X11 to a virtual terminal, and alt-F6 (or F7, or F8) to get back.


usage: cksum [-IPLN] [FILE...]

For each file, output crc32 checksum value, length and name of file.
If no files listed, copy from stdin.  Filename "-" is a synonym for stdin.

-H	Hexadecimal checksum (defaults to decimal)
-L	Little endian (defaults to big endian)
-P	Pre-inversion
-I	Skip post-inversion
-N	Do not include length in CRC calculation (or output)


Clear the screen.


usage: cmp [-ls] [-n LEN] FILE1 [FILE2 [SKIP1 [SKIP2]]]

Compare the contents of files (vs stdin if only one given), optionally
skipping bytes at start.

-l	Show all differing bytes
-n LEN	Compare at most LEN bytes
-s	Silent


usage: comm [-123] FILE1 FILE2

Read FILE1 and FILE2, which should be ordered, and produce three text
columns as output: lines only in FILE1; lines only in FILE2; and lines
in both files. Filename "-" is a synonym for stdin.

-1	Suppress the output column of lines unique to FILE1
-2	Suppress the output column of lines unique to FILE2
-3	Suppress the output column of lines duplicated in FILE1 and FILE2


usage: count

Copy stdin to stdout, displaying simple progress indicator to stderr.


usage: cp [-adfHiLlnPpRrsTv] [--preserve=motcxa] [-t TARGET] SOURCE... [DEST]

Copy files from SOURCE to DEST.  If more than one SOURCE, DEST must
be a directory.

-a	Same as -dpr
-D	Create leading dirs under DEST (--parents)
-d	Don't dereference symlinks
-F	Delete any existing destination file first (--remove-destination)
-f	Delete destination files we can't write to
-H	Follow symlinks listed on command line
-i	Interactive, prompt before overwriting existing DEST
-L	Follow all symlinks
-l	Hard link instead of copy
-n	No clobber (don't overwrite DEST)
-u	Update (keep newest mtime)
-P	Do not follow symlinks
-p	Preserve timestamps, ownership, and mode
-R	Recurse into subdirectories (DEST must be a directory)
-r	Synonym for -R
-s	Symlink instead of copy
-t	Copy to TARGET dir (no DEST)
-T	DEST always treated as file, max 2 arguments
-v	Verbose

Arguments to --preserve are the first letter(s) of:

        mode - permissions (ignore umask for rwx, copy suid and sticky bit)
   ownership - user and group
  timestamps - file creation, modification, and access times.
     context - security context
       xattr - extended attributes
         all - all of the above


usage: cpio -{o|t|i|p DEST} [-v] [--verbose] [-F FILE] [-R [USER][:GROUP] [--no-preserve-owner]

Copy files into and out of a "newc" format cpio archive.

-d	Create directories if needed
-F FILE	Use archive FILE instead of stdin/stdout
-i	Extract from archive into file system (stdin=archive)
-L	Follow symlinks
-o	Create archive (stdin=list of files, stdout=archive)
-p DEST	Copy-pass mode, copy stdin file list to directory DEST
-R USER	Replace owner with USER[:GROUP]
-t	Test files (list only, stdin=archive, stdout=list of files)
-u	Unlink existing files when extracting
-v	Verbose
--no-preserve-owner     Don't set ownership during extract


usage: crc32 [file...]

Output crc32 checksum for each file.


usage: cut [-Ds] [-bcCfF LIST] [-dO DELIM] [FILE...]

Print selected parts of lines from each FILE to standard output.

Each selection LIST is comma separated, either numbers (counting from 1)
or dash separated ranges (inclusive, with X- meaning to end of line and -X
from start). By default selection ranges are sorted and collated, use -D
to prevent that.

-b	Select bytes (with -n round start/end down to start of utf8 char)
-c	Select UTF-8 characters
-C	Select unicode columns
-d	Use DELIM (default is TAB for -f, run of whitespace for -F)
-D	Don't sort/collate selections or match -fF lines without delimiter
-f	Select fields (words) separated by single DELIM character
-F	Select fields separated by DELIM regex
-O	Output delimiter (default one space for -F, input delim for -f)
-s	Skip lines without delimiters


usage: date [-u] [-I RES] [-r FILE] [-d DATE] [+DISPLAY_FORMAT] [-D SET_FORMAT] [SET]

Set/get the current date/time. With no SET shows the current date.

-d	Show DATE instead of current time (convert date format)
-D	+FORMAT for SET or -d (instead of MMDDhhmm[[CC]YY][.ss])
-I RES	ISO 8601 with RESolution d=date/h=hours/m=minutes/s=seconds/n=ns
-r	Use modification time of FILE instead of current date
-s DATE	Set the system clock to DATE.
-u	Use UTC instead of current timezone

Supported input formats:

MMDDhhmm[[CC]YY][.ss]     POSIX
@UNIXTIME[.FRACTION]      seconds since midnight 1970-01-01
YYYY-MM-DD [hh:mm[:ss]]   ISO 8601
hh:mm[:ss]                24-hour time today

All input formats can be followed by fractional seconds, and/or a UTC
offset such as -0800.

All input formats can be preceded by TZ="id" to set the input time zone
separately from the output time zone. Otherwise $TZ sets both.

+FORMAT specifies display format string using strftime(3) syntax:

%% literal %             %n newline              %t tab
%S seconds (00-60)       %M minute (00-59)       %m month (01-12)
%H hour (0-23)           %I hour (01-12)         %p AM/PM
%y short year (00-99)    %Y year                 %C century
%a short weekday name    %A weekday name         %u day of week (1-7, 1=mon)
%b short month name      %B month name           %Z timezone name
%j day of year (001-366) %d day of month (01-31) %e day of month ( 1-31)
%N nanosec (output only)

%U Week of year (0-53 start Sunday)   %W Week of year (0-53 start Monday)
%V Week of year (1-53 start Monday, week < 4 days not part of this year)

%F "%Y-%m-%d"   %R "%H:%M"        %T "%H:%M:%S"        %z  timezone (-0800)
%D "%m/%d/%y"   %r "%I:%M:%S %p"  %h "%b"              %:z timezone (-08:00)
%x locale date  %X locale time    %c locale date/time  %s  unix epoch time


usage: dd [if|of=FILE] [ibs|obs|bs|count|seek|skip=N] [conv|status|iflag|oflag=FLAG[,FLAG...]]

Copy/convert blocks of data from input to output, with the following
keyword=value modifiers (and their default values):

if=FILE  Read FILE (stdin)          of=FILE  Write to FILE (stdout)
   bs=N  Block size in bytes (512)  count=N  Stop after copying N blocks (all)
  ibs=N  Input block size (bs=)       obs=N  Output block size (bs=)
 skip=N  Skip N input blocks (0)     seek=N  Skip N output blocks (0)

Each =N value accepts the normal unit suffixes (see toybox --help).

These modifiers take a comma separated list of potential options:

iflag=count_bytes,skip_bytes   count=N or skip=N is in bytes not blocks
oflag=seek_bytes,append        seek=N is in bytes, append output to file
status=noxfer,none             don't show transfer rate, no summary info
  notrunc  Don't truncate output    noerror  Continue after read errors
  sync     Zero pad short reads     fsync    Flush output to disk at end
  sparse   Seek past zeroed output  excl     Fail if output file exists
  nocreat  Fail if of=FILE missing


usage: deallocvt [NUM]

Deallocate unused virtual terminals, either a specific /dev/ttyNUM, or all.


usage: devmem ADDR [WIDTH [DATA]]

Read/write physical address. WIDTH is 1, 2, 4, or 8 bytes (default 4).
Prefix ADDR with 0x for hexadecimal, output is in same base as address.


usage: df [-HPkhi] [-t type] [FILE...]

The "disk free" command shows total/used/available disk space for
each filesystem listed on the command line, or all currently mounted

-a	Show all (including /proc and friends)
-P	The SUSv3 "Pedantic" option
-k	Sets units back to 1024 bytes (the default without -P)
-h	Human readable (K=1024)
-H	Human readable (k=1000)
-i	Show inodes instead of blocks
-t type	Display only filesystems of this type

Pedantic provides a slightly less useful output format dictated by POSIX,
and sets the units to 512 bytes instead of the default 1024 bytes.


usage: dirname PATH...

Show directory portion of path.


usage: dmesg [-Cc] [-r|-t|-T] [-n LEVEL] [-s SIZE] [-w]

Print or control the kernel ring buffer.

-C	Clear ring buffer without printing
-c	Clear ring buffer after printing
-n	Set kernel logging LEVEL (1-9)
-r	Raw output (with )
-S	Use syslog(2) rather than /dev/kmsg
-s	Show the last SIZE many bytes
-T	Human readable timestamps
-t	Don't print timestamps
-w	Keep waiting for more output (aka --follow)


usage: dnsdomainname

Show domain this system belongs to (same as hostname -d).


usage: dos2unix [FILE...]

Convert newline format from dos "\r\n" to unix "\n".
If no files listed copy from stdin, "-" is a synonym for stdin.


usage: du [-d N] [-askxHLlmc] [FILE...]

Show disk usage, space consumed by files and directories.

Size in:
-b	Apparent bytes (directory listing size, not space used)
-k	1024 byte blocks (default)
-K	512 byte blocks (posix)
-m	Megabytes
-h	Human readable (e.g., 1K 243M 2G)

What to show:
-a	All files, not just directories
-H	Follow symlinks on cmdline
-L	Follow all symlinks
-s	Only total size of each argument
-x	Don't leave this filesystem
-c	Cumulative total
-d N	Only depth < N
-l	Disable hardlink filter


usage: echo [-neE] [ARG...]

Write each argument to stdout, one space between each, followed by a newline.

-n	No trailing newline
-E	Print escape sequences literally (default)
-e	Process the following escape sequences:
	\\  Backslash		\0NNN Octal (1-3 digit)	\xHH Hex (1-2 digit)
	\a  Alert (beep/flash)	\b  Backspace		\c  Stop here (no \n)
	\f  Form feed		\n  Newline		\r  Carriage return
	\t  Horizontal tab	\v  Vertical tab


See grep


usage: eject [-stT] [DEVICE]

Eject DEVICE or default /dev/cdrom

-s	SCSI device
-t	Close tray
-T	Open/close tray (toggle)


usage: env [-i] [-u NAME] [NAME=VALUE...] [COMMAND...]

Set the environment for command invocation, or list environment variables.

-i	Clear existing environment
-u NAME	Remove NAME from the environment
-0	Use null instead of newline in output


usage: expand [-t TABLIST] [FILE...]

Expand tabs to spaces according to tabstops.


Specify tab stops, either a single number instead of the default 8,
or a comma separated list of increasing numbers representing tabstop
positions (absolute, not increments) with each additional tab beyond
that becoming one space.


usage: factor NUMBER...

Factor integers.

-h	Human readable: show repeated factors as x^n
-x	Hexadecimal output


usage: fallocate [-l size] [-o offset] file

Tell the filesystem to allocate space for a file.


usage: false

Return nonzero.


See grep


usage: file [-bhLs] [FILE...]

Examine the given files and describe their content types.

-b	Brief (no filename)
-h	Don't follow symlinks (default)
-L	Follow symlinks
-s	Show block/char device contents


usage: find [-HL] [DIR...] []

Search directories for matching files.
Default: search ".", match all, -print matches.

-H  Follow command line symlinks         -L  Follow all symlinks

Match filters:
-name  PATTERN   filename with wildcards   -iname      ignore case -name
-path  PATTERN   path name with wildcards  -ipath      ignore case -path
-user  UNAME     belongs to user UNAME     -nouser     user ID not known
-group GROUP     belongs to group GROUP    -nogroup    group ID not known
-perm  [-/]MODE  permissions (-=min /=any) -prune      ignore dir contents
-size  N[c]      512 byte blocks (c=bytes) -xdev       only this filesystem
-links N         hardlink count            -empty      empty files and dirs
-atime N[u]      accessed N units ago      -true       always true
-ctime N[u]      created N units ago       -false      always false
-mtime N[u]      modified N units ago      -executable access(X_OK) perm+ACL
-inum  N         inode number N            -readable   access(R_OK) perm+ACL
-context PATTERN security context          -depth      contents before dir
-samefile FILE   hardlink to FILE          -maxdepth N at most N dirs down
-newer    FILE   newer mtime than FILE     -mindepth N at least N dirs down
-newerXY  FILE   X=acm time > FILE's Y=acm time (Y=t: FILE is literal time)
-type [bcdflps]  type is (block, char, dir, file, symlink, pipe, socket)

Numbers N may be prefixed by - (less than) or + (greater than). Units for
-[acm]time are d (days, default), h (hours), m (minutes), or s (seconds).

Combine matches with:
!, -a, -o, ( )    not, and, or, group expressions

-print  Print match with newline  -print0        Print match with null
-exec   Run command with path     -execdir       Run command in file's dir
-ok     Ask before exec           -okdir         Ask before execdir
-delete Remove matching file/dir  -printf FORMAT Print using format string
-quit   Exit immediately

Commands substitute "{}" with matched file. End with ";" to run each file,
or "+" (next argument after "{}") to collect and run with multiple files.

-printf FORMAT characters are \ escapes and:
%b  512 byte blocks used
%f  basename            %g  textual gid          %G  numeric gid
%i  decimal inode       %l  target of symlink    %m  octal mode
%M  ls format type/mode %p  path to file         %P  path to file minus DIR
%s  size in bytes       %T@ mod time as unixtime
%u  username            %U  numeric uid          %Z  security context


usage: flock [-sxun] fd

Manage advisory file locks.

-s	Shared lock
-x	Exclusive lock (default)
-u	Unlock
-n	Non-blocking: fail rather than wait for the lock


usage: fmt [-w WIDTH] [FILE...]

Reformat input to wordwrap at a given line length, preserving existing
indentation level, writing to stdout.

-w WIDTH	Maximum characters per line (default 75)


usage: free [-bkmgt]

Display the total, free and used amount of physical memory and swap space.

-bkmg	Output units (default is bytes)
-h	Human readable (K=1024)


usage: freeramdisk [RAM device]

Free all memory allocated to specified ramdisk


usage: fsfreeze {-f | -u} MOUNTPOINT

Freeze or unfreeze a filesystem.

-f	Freeze
-u	Unfreeze


usage: fstype DEV...

Print type of filesystem on a block device or image.


usage: fsync [-d] [FILE...]

Flush disk cache for FILE(s), writing cached data to storage device.

-d	Skip directory info (sync file contents only).


usage: ftpget [-cvgslLmMdD] [-P PORT] [-p PASSWORD] [-u USER] HOST [LOCAL] REMOTE

Talk to ftp server. By default get REMOTE file via passive anonymous
transfer, optionally saving under a LOCAL name. Can also send, list, etc.

-c	Continue partial transfer
-p	Use PORT instead of "21"
-P	Use PASSWORD instead of "ftpget@"
-u	Use USER instead of "anonymous"
-v	Verbose

Ways to interact with FTP server:
-d	Delete file
-D	Remove directory
-g	Get file (default)
-l	List directory
-L	List (filenames only)
-m	Move file on server from LOCAL to REMOTE
-M	mkdir
-s	Send file


See ftpget


usage: getconf -a [PATH] | -l | NAME [PATH]

Get system configuration values. Values from pathconf(3) require a path.

-a	Show all (defaults to "/" if no path given)
-l	List available value names (grouped by source)


usage: gpiodetect

Show all gpio chips' names, labels, and number of lines.


usage: gpiofind NAME

Show the chip and line number for the given line name.


usage: gpioget [-l] CHIP LINE...

Gets the values of the given lines on CHIP. Use gpiofind to convert line
names to numbers.

-l	Active low


usage: gpioinfo [CHIP...]

Show gpio chips' lines.


usage: gpioset [-l] CHIP LINE=VALUE...

Set the lines on CHIP to the given values. Use gpiofind to convert line
names to numbers.

-l	Active low


usage: grep [-EFrivwcloqsHbhn] [-ABC NUM] [-m MAX] [-e REGEX]... [-MS PATTERN]... [-f REGFILE] [FILE]...

Show lines matching regular expressions. If no -e, first argument is
regular expression to match. With no files (or "-" filename) read stdin.
Returns 0 if matched, 1 if no match found, 2 for command errors.

-e  Regex to match. (May be repeated.)
-f  File listing regular expressions to match.

file search:
-r  Recurse into subdirectories (defaults FILE to ".")
-R  Recurse into subdirectories and symlinks to directories
-M  Match filename pattern (--include)
-S  Skip filename pattern (--exclude)
--exclude-dir=PATTERN  Skip directory pattern
-I  Ignore binary files

match type:
-A  Show NUM lines after     -B  Show NUM lines before match
-C  NUM lines context (A+B)  -E  extended regex syntax
-F  fixed (literal match)    -a  always text (not binary)
-i  case insensitive         -m  match MAX many lines
-v  invert match             -w  whole word (implies -E)
-x  whole line               -z  input NUL terminated

display modes: (default: matched line)
-L  filenames with no match  -Z  output is NUL terminated
-c  count of matching lines  -l  filenames with a match
-o  only matching part       -q  quiet (errors only)
-s  silent (no error msg)

output prefix (default: filename if checking more than 1 file)
-H  force filename           -b  byte offset of match
-h  hide filename            -n  line number of match


usage: groups [user]

Print the groups a user is in.


usage: gunzip [-cfkt] [FILE...]

Decompress files. With no files, decompresses stdin to stdout.
On success, the input files are removed and replaced by new
files without the .gz suffix.

-c	Output to stdout (act as zcat)
-f	Force: allow read from tty
-k	Keep input files (default is to remove)
-t	Test integrity


See reboot


usage: head [-n NUM] [FILE...]

Copy first lines from files to stdout. If no files listed, copy from
stdin. Filename "-" is a synonym for stdin.

-n	Number of lines to copy
-c	Number of bytes to copy
-q	Never print headers
-v	Always print headers


usage: help [-ahu] [COMMAND]

-a	All commands
-u	Usage only
-h	HTML output

Show usage information for toybox commands.
Run "toybox" with no arguments for a list of available commands.


usage: hexedit FILE

Hexadecimal file editor/viewer. All changes are written to disk immediately.

-r	Read only (display but don't edit)

Arrows         Move left/right/up/down by one line/column
PgUp/PgDn      Move up/down by one page
Home/End       Start/end of line (start/end of file with ctrl)
0-9, a-f       Change current half-byte to hexadecimal value
^J or :        Jump (+/- for relative offset, otherwise absolute address)
^F or /        Find string (^G/n: next, ^D/p: previous match)
u              Undo
x              Toggle bw/color display
q/^C/^Q/Esc    Quit


usage: host [-v] [-t TYPE] NAME [SERVER]

Look up DNS records for NAME, either domain name or IPv4/IPv6 address to
reverse lookup, from SERVER or default DNS server(s).

-a	All records
-v	Verbose


usage: hostname [-bdsf] [-F FILENAME] [newname]

Get/set the current hostname.

-b	Set hostname to 'localhost' if otherwise unset
-d	Show DNS domain name (no host)
-f	Show fully-qualified name (host+domain, FQDN)
-F	Set hostname to contents of FILENAME
-s	Show short host name (no domain)


usage: httpd [-e STR] [DIR]

Serve contents of directory as static web pages.

-e	Escape STR as URL, printing result and exiting.
-d	Decode escaped STR, printing result and exiting.
-v	Verbose


usage: hwclock [-rswtluf]

Get/set the hardware clock.

-f FILE	Use specified device file instead of /dev/rtc0 (--rtc)
-l	Hardware clock uses localtime (--localtime)
-r	Show hardware clock time (--show)
-s	Set system time from hardware clock (--hctosys)
-t	Set the system time based on the current timezone (--systz)
-u	Hardware clock uses UTC (--utc)
-w	Set hardware clock from system time (--systohc)


usage: i2cdetect [-aqry] BUS [FIRST LAST]
usage: i2cdetect -F BUS
usage: i2cdetect -l

Detect i2c devices.

-a	All addresses (0x00-0x7f rather than 0x03-0x77 or FIRST-LAST)
-F	Show functionality
-l	List available buses
-q	Probe with SMBus Quick Write (default)
-r	Probe with SMBus Read Byte
-y	Skip confirmation prompts (yes to all)


usage: i2cdump [-fy] BUS CHIP

Dump i2c registers.

-f	Force access to busy devices
-y	Skip confirmation prompts (yes to all)


usage: i2cget [-fy] BUS CHIP [ADDR]

Read an i2c register.

-f	Force access to busy devices
-y	Skip confirmation prompts (yes to all)


usage: i2cset [-fy] BUS CHIP ADDR VALUE... MODE

Write an i2c register. MODE is b for byte, w for 16-bit word, i for I2C block.

-f	Force access to busy devices
-y	Skip confirmation prompts (yes to all)


usage: i2ctransfer [-fy] BUS DESC [DATA...]...

Make i2c transfers. DESC is 'r' for read or 'w' for write, followed by
the number of bytes to read or write, followed by '@' and a 7-bit address.
For any message after the first, the '@' and address can be omitted to
reuse the previous address. A 'w' DESC must be followed by the number of
DATA bytes that was specified in the DESC.

-f	Force access to busy devices
-v	Verbose (show messages sent, not just received)
-y	Skip confirmation prompts (yes to all)


usage: iconv [-f FROM] [-t TO] [FILE...]

Convert character encoding of files.

-c	Omit invalid chars
-f	Convert from (default UTF-8)
-t	Convert to   (default UTF-8)


usage: id [-nGgru] [USER...]

Print user and group ID.

-G	Show all group IDs
-g	Show only the effective group ID
-n	Print names instead of numeric IDs (to be used with -Ggu)
-r	Show real ID instead of effective ID
-u	Show only the effective user ID


usage: ifconfig [-aS] [INTERFACE [ACTION...]]

Display or configure network interface.

With no arguments, display active interfaces. First argument is interface
to operate on, one argument by itself displays that interface.

-a	All interfaces displayed, not just active ones
-S	Short view, one line per interface

Standard ACTIONs to perform on an INTERFACE:

ADDR[/MASK]        - set IPv4 address ( and activate interface
add|del ADDR[/LEN] - add/remove IPv6 address (1111::8888/128)
up|down            - activate or deactivate interface

Advanced ACTIONs (default values usually suffice):

default          - remove IPv4 address
netmask ADDR     - set IPv4 netmask via instead of /24
txqueuelen LEN   - number of buffered packets before output blocks
mtu LEN          - size of outgoing packets (Maximum Transmission Unit)
broadcast ADDR   - Set broadcast address
pointopoint ADDR - PPP and PPPOE use this instead of "route add default gw"
hw TYPE ADDR     - set hardware (mac) address (type = ether|infiniband)
rename NEWNAME   - rename interface

Flags you can set on an interface (or -remove by prefixing with -):

arp       - don't use Address Resolution Protocol to map LAN routes
promisc   - don't discard packets that aren't to this LAN hardware address
multicast - force interface into multicast mode if the driver doesn't
allmulti  - promisc for multicast packets


usage: inotifyd PROG FILE[:MASK] ...

When a filesystem event matching MASK occurs to a FILE, run PROG as:


If PROG is "-" events are sent to stdout.

This file is:
  a  accessed    c  modified    e  metadata change  w  closed (writable)
  r  opened      D  deleted     M  moved            0  closed (unwritable)
  u  unmounted   o  overflow    x  unwatchable

A file in this directory is:
  m  moved in    y  moved out   n  created          d  deleted

When x event happens for all FILEs, inotifyd exits (after waiting for PROG).


usage: insmod MODULE [OPTION...]

Load the module named MODULE passing options if given.


usage: install [-dDpsv] [-o USER] [-g GROUP] [-m MODE] [-t TARGET] [SOURCE...] [DEST]

Copy files and set attributes.

-d	Act like mkdir -p
-D	Create leading directories for DEST
-g	Make copy belong to GROUP
-m	Set permissions to MODE
-o	Make copy belong to USER
-p	Preserve timestamps
-s	Call "strip -p"
-t	Copy files to TARGET dir (no DEST)
-v	Verbose


usage: ionice [-t] [-c CLASS] [-n LEVEL] [COMMAND...|-p PID]

Change the I/O scheduling priority of a process. With no arguments
(or just -p), display process' existing I/O class/priority.

-c	CLASS = 1-3: 1(realtime), 2(best-effort, default), 3(when-idle)
-n	LEVEL = 0-7: (0 is highest priority, default = 5)
-p	Affect existing PID instead of spawning new child
-t	Ignore failure to set I/O priority

System default iopriority is generally -c 2 -n 4.


usage: iorenice PID [CLASS] [PRIORITY]

Display or change I/O priority of existing process. CLASS can be
"rt" for realtime, "be" for best effort, "idle" for only when idle, or
"none" to leave it alone. PRIORITY can be 0-7 (0 is highest, default 4).


usage: iotop [-AaKObq] [-n NUMBER] [-d SECONDS] [-p PID,] [-u USER,]

Rank processes by I/O.

-A	All I/O, not just disk
-a	Accumulated I/O (not percentage)
-H	Show threads
-K	Kilobytes
-k	Fallback sort FIELDS (default -[D]IO,-ETIME,-PID)
-m	Maximum number of tasks to show
-O	Only show processes doing I/O
-s	Sort by field number (0-X, default 6)
-b	Batch mode (no tty)
-d	Delay SECONDS between each cycle (default 3)
-n	Exit after NUMBER iterations
-p	Show these PIDs
-u	Show these USERs
-q	Quiet (no header lines)

Cursor LEFT/RIGHT to change sort, UP/DOWN move list, space to force
update, R to reverse sort, Q to exit.


usage: kill [-l [SIGNAL] | -s SIGNAL | -SIGNAL] PID...

Send signal to process(es).

-l	List signal name(s) and number(s)
-s	Send SIGNAL (default SIGTERM)


usage: killall [-l] [-iqv] [-SIGNAL|-s SIGNAL] PROCESS_NAME...

Send a signal (default: TERM) to all processes with the given names.

-i	Ask for confirmation before killing
-l	Print list of all available signals
-q	Don't print any warnings or error messages
-s	Send SIGNAL instead of SIGTERM
-v	Report if the signal was successfully sent
-w	Wait until all signaled processes are dead


usage: killall5 [-l [SIGNAL]] [-SIGNAL|-s SIGNAL] [-o PID]...

Send a signal to all processes outside current session.

-l	List signal name(s) and number(s)
-o PID	Omit PID
-s	Send SIGNAL (default SIGTERM)


usage: link FILE NEWLINK

Create hardlink to a file.


usage: linux32 [COMMAND...]

Tell uname -m to line to autoconf (to build 32 bit binaries on 64 bit kernel).


usage: ln [-sfnv] [-t DIR] [FROM...] TO

Create a link between FROM and TO.
One/two/many arguments work like "mv" or "cp".

-s	Create a symbolic link
-f	Force the creation of the link, even if TO already exists
-n	Symlink at TO treated as file
-r	Create relative symlink from -> to
-t	Create links in DIR
-T	TO always treated as file, max 2 arguments
-v	Verbose


usage: logger [-s] [-t TAG] [-p [FACILITY.]PRIORITY] [MESSAGE...]

Log message (or stdin) to syslog.

-s	Also write message to stderr
-t	Use TAG instead of username to identify message source
-p	Specify PRIORITY with optional FACILITY. Default is "user.notice"


usage: login [-p] [-h host] [-f USERNAME] [USERNAME]

Log in as a user, prompting for username and password if necessary.

-p	Preserve environment
-h	The name of the remote host for this login
-f	login as USERNAME without authentication


usage: logname

Print the current user name.


usage: losetup [-cdrs] [-o OFFSET] [-S SIZE] {-d DEVICE...|-j FILE|-af|{DEVICE FILE}}

Associate a loopback device with a file, or show current file (if any)
associated with a loop device.

Instead of a device:
-a	Iterate through all loopback devices
-f	Find first unused loop device (may create one)
-j FILE	Iterate through all loopback devices associated with FILE

-c	Check capacity (file size changed)
-d DEV	Detach loopback device
-D	Detach all loopback devices

-s	Show device name (alias --show)
-o OFF	Start association at offset OFF into FILE
-r	Read only
-S SIZE	Limit SIZE of loopback association (alias --sizelimit)


usage: ls [-1ACFHLNRSUXZabcdfghilmnopqrstuwx] [--color[=auto]] [FILE...]

List files

what to show:
-A  all files except . and ..      -a  all files including .hidden
-b  escape nongraphic chars        -d  directory, not contents
-F  append /dir *exe @sym |FIFO    -f  files (no sort/filter/format)
-H  follow command line symlinks   -i  inode number
-L  follow symlinks                -N  no escaping, even on tty
-p  put '/' after dir names        -q  unprintable chars as '?'
-R  recursively list in subdirs    -s  storage used (in --block-size)
-Z  security context

output formats:
-1  list one file per line         -C  columns (sorted vertically)
-g  like -l but no owner           -h  human readable sizes
-l  long (show full details)       -ll long with nanoseconds (--full-time)
-m  comma separated                -n  long with numeric uid/gid
-o  long without group column      -r  reverse order
-w  set column width               -x  columns (horizontal sort)

sort by:  (also --sort=longname,longname... ends with alphabetical)
-c  ctime      -r  reverse    -S  size     -t  time    -u  atime    -U  none
-X  extension  -!  dirfirst   -~  nocase

--block-size N	block size (default 1024)
--color  =always (default)  =auto (when stdout is tty) =never
    exe=green  suid=red  suidfile=redback  stickydir=greenback
    device=yellow  symlink=turquoise/red  dir=blue  socket=purple

Long output uses -cu for display, use -ltc/-ltu to also sort by ctime/atime.


usage: lsattr [-Radlpv] [FILE...]

List file attributes on a Linux file system.
Flag letters are defined in chattr help.

-R	Recursively list attributes of directories and their contents
-a	List all files in directories, including files that start with '.'
-d	List directories like other files, rather than listing their contents
-l	List long flag names
-p	List the file's project number
-v	List the file's version/generation number


usage: lsmod

Display the currently loaded modules, their sizes and their dependencies.


usage: lspci [-ekmn] [-i FILE]

List PCI devices.

-e	Extended (6 digit) class
-i	ID database (default /etc/pci.ids[.gz])
-k	Show kernel driver
-m	Machine readable
-n	Numeric output (-nn for both)
-x	Hex dump of config space (64 bytes; -xxx for 256, -xxxx for 4096)


usage: lsusb [-i]

List USB hosts/devices.

-i	ID database (default /etc/usb.ids[.gz])


usage: makedevs [-d device_table] rootdir

Create a range of special files as specified in a device table.

-d	File containing device table (default reads from stdin)

Each line of the device table has the fields:
Where name is the file name, and type is one of the following:

b	Block device
c	Character device
d	Directory
f	Regular file
p	Named pipe (fifo)

Other fields specify permissions, user and group id owning the file,
and additional fields for device special files. Use '-' for blank entries,
unspecified fields are treated as '-'.


usage: mcookie [-vV]

Generate a 128-bit strong random number.

-v  show entropy source (verbose)
-V  show version


usage: ???sum [-bcs] [FILE]...

Calculate hash for each input file, reading from stdin if none, writing
hexadecimal digits to stdout for each input file (md5=32 hex digits,
sha1=40, sha224=56, sha256=64, sha384=96, sha512=128) followed by filename.

-b	Brief (hash only, no filename)
-c	Check each line of each FILE is the same hash+filename we'd output
-s	No output, exit status 0 if all hashes match, 1 otherwise


usage: microcom [-s SPEED] [-X] DEVICE

Simple serial console.

-s	Set baud rate to SPEED (default 115200)
-X	Ignore ^@ (send break) and ^] (exit)


usage: mix [-d DEV] [-c CHANNEL] [-l VOL] [-r RIGHT]

List OSS sound channels (module snd-mixer-oss), or set volume(s).

-c CHANNEL	Set/show volume of CHANNEL (default first channel found)
-d DEV		Device node (default /dev/mixer)
-l VOL		Volume level
-r RIGHT	Volume of right stereo channel (with -r, -l sets left volume)


usage: mkdir [-vp] [-m MODE] [DIR...]

Create one or more directories.

-m	Set permissions of directory to mode
-p	Make parent directories as needed
-v	Verbose


usage: mkfifo [NAME...]

Create FIFOs (named pipes).


usage: mknod [-m MODE] NAME TYPE [MAJOR MINOR]

Create a special file NAME with a given type. TYPE is b for block device,
c or u for character device, p for named pipe (which ignores MAJOR/MINOR).

-m	Mode (file permissions) of new device, in octal or u+x format


usage: mkpasswd [-P FD] [-m TYPE] [-S SALT] [PASSWORD] [SALT]

Crypt PASSWORD using crypt(3)

-P FD	Read password from file descriptor FD
-m TYPE	Encryption method (des, md5, sha256, or sha512; default is des)


usage: mkswap [-L LABEL] DEVICE

Set up a Linux swap area on a device or file.


usage: mktemp [-dqu] [-p DIR] [TEMPLATE]

Safely create a new file "DIR/TEMPLATE" and print its name.

-d	Create directory instead of file (--directory)
-p	Put new file in DIR (--tmpdir)
-q	Quiet, no error messages
-t	Prefer $TMPDIR > DIR > /tmp (default DIR > $TMPDIR > /tmp)
-u	Don't create anything, just print what would be created

Each X in TEMPLATE is replaced with a random printable character. The


usage: modinfo [-0] [-b basedir] [-k kernel] [-F field] [module|file...]

Display module fields for modules specified by name or .ko path.

-F  Only show the given field
-0  Separate fields with NUL rather than newline
-b  Use  as root for /lib/modules/
-k  Look in given directory under /lib/modules/


usage: mount [-afFrsvw] [-t TYPE] [-o OPTION,] [[DEVICE] DIR]

Mount new filesystem(s) on directories. With no arguments, display existing

-a	Mount all entries in /etc/fstab (with -t, only entries of that TYPE)
-O	Only mount -a entries that have this option
-f	Fake it (don't actually mount)
-r	Read only (same as -o ro)
-w	Read/write (default, same as -o rw)
-t	Specify filesystem type
-v	Verbose

OPTIONS is a comma separated list of options, which can also be supplied
as --longopts.

Autodetects loopback mounts (a file on a directory) and bind mounts (file
on file, directory on directory), so you don't need to say --bind or --loop.
You can also "mount -a /path" to mount everything in /etc/fstab under /path,
even if it's noauto. DEVICE starting with UUID= is identified by blkid -U.


usage: mountpoint [-qd] DIR
       mountpoint [-qx] DEVICE

Check whether the directory or device is a mountpoint.

-q	Be quiet, return zero if directory is a mountpoint
-d	Print major/minor device number of the directory
-x	Print major/minor device number of the block device


usage: mv [-finTv] [-t TARGET] SOURCE... [DEST]

-f	Force copy by deleting destination file
-i	Interactive, prompt before overwriting existing DEST
-n	No clobber (don't overwrite DEST)
-t	Move to TARGET dir (no DEST)
-T	DEST always treated as file, max 2 arguments
-v	Verbose


usage: nbd-client [-ns] [-b BLKSZ] HOST PORT DEVICE

-b	Block size (default 4096)
-n	Do not daemonize
-s	nbd swap support (lock server into memory)


usage: nbd-server [-r] FILE

Serve a Network Block Device from FILE on stdin/out (ala inetd).

-r	Read only export


See netcat


usage: netcat [-46ElLtUu] [-wpq #] [-s addr] {IPADDR PORTNUM|-f FILENAME|COMMAND...}

Forward stdin/stdout to a file or network connection.

-4	Force IPv4
-6	Force IPv6
-E	Forward stderr
-f	Use FILENAME (ala /dev/ttyS0) instead of network
-l	Listen for one incoming connection, then exit
-L	Listen and background each incoming connection (server mode)
-n	No DNS lookup
-p	Local port number
-q	Quit SECONDS after EOF on stdin, even if stdout hasn't closed yet
-s	Local source address
-t	Allocate tty
-u	Use UDP
-U	Use a UNIX domain socket
-w	SECONDS timeout to establish connection
-W	SECONDS timeout for more data on an idle connection

When listening the COMMAND line is executed as a child process to handle
an incoming connection. With no COMMAND -l forwards the connection
to stdin/stdout. If no -p specified, -l prints the port it bound to and
backgrounds itself (returning immediately).

For a quick-and-dirty server, try something like:
netcat -s -p 1234 -tL sh -l

Or use "stty 115200 -F /dev/ttyS0 && stty raw -echo -ctlecho" with
netcat -f to connect to a serial port.


usage: netstat [-pWrxwutneal]

Display networking information. Default is netstat -tuwx

-r	Routing table
-a	All sockets (not just connected)
-l	Listening server sockets
-t	TCP sockets
-u	UDP sockets
-w	Raw sockets
-x	Unix sockets
-e	Extended info
-n	Don't resolve names
-W	Wide display
-p	Show PID/program name of sockets


usage: nice [-n PRIORITY] COMMAND...

Run a command line at an increased or decreased scheduling priority.

Higher numbers make a program yield more CPU time, from -20 (highest
priority) to 19 (lowest).  By default processes inherit their parent's
niceness (usually 0).  By default this command adds 10 to the parent's
priority.  Only root can set a negative niceness level.


usage: nl [-E] [-l #] [-b MODE] [-n STYLE] [-s SEPARATOR] [-v #] [-w WIDTH] [FILE...]

Number lines of input.

-E	Use extended regex syntax (when doing -b pREGEX)
-b	Which lines to number: a (all) t (non-empty, default) pREGEX (pattern)
-l	Only count last of this many consecutive blank lines
-n	Number STYLE: ln (left justified) rn (right justified) rz (zero pad)
-s	Separator to use between number and line (instead of TAB)
-v	Starting line number for each section (default 1)
-w	Width of line numbers (default 6)


usage: nohup COMMAND...

Run a command that survives the end of its terminal.

Redirect tty on stdin to /dev/null, tty on stdout to "nohup.out".


usage: nproc [--all]

Print number of processors.

--all	Show all processors, not just ones this task can run on


usage: nsenter [-t pid] [-F] [-i] [-m] [-n] [-p] [-u] [-U] COMMAND...

Run COMMAND in an existing (set of) namespace(s).

-a	Enter all supported namespaces (--all)
-F	don't fork, even if -p is used (--no-fork)
-t	PID to take namespaces from    (--target)

The namespaces to switch are:

-C	Control groups (--cgroup)
-i	SysV IPC: message queues, semaphores, shared memory (--ipc)
-m	Mount/unmount tree (--mount)
-n	Network address, sockets, routing, iptables (--net)
-p	Process IDs and init, will fork unless -F is used (--pid)
-u	Host and domain names (--uts)
-U	UIDs, GIDs, capabilities (--user)

If -t isn't specified, each namespace argument must provide a path
to a namespace file, ala "-i=/proc/$PID/ns/ipc"


usage: od [-bcdosxv] [-j #] [-N #] [-w #] [-A doxn] [-t acdfoux[#]]

Dump data in octal/hex.

-A	Address base (decimal, octal, hexadecimal, none)
-j	Skip this many bytes of input
-N	Stop dumping after this many bytes
-t	Output type a(scii) c(har) d(ecimal) f(loat) o(ctal) u(nsigned) (he)x
	plus optional size in bytes
	aliases: -b=-t o1, -c=-t c, -d=-t u2, -o=-t o2, -s=-t d2, -x=-t x2
-v	Don't collapse repeated lines together
-w	Total line width in bytes (default 16)


usage: oneit [-prn3] [-c CONSOLE] [COMMAND...]

Simple init program that runs a single supplied command line with a
controlling tty (so CTRL-C can kill it).

-c	Which console device to use (/dev/console doesn't do CTRL-C, etc)
-p	Power off instead of rebooting when command exits
-r	Restart child when it exits
-n	No reboot, just relaunch command line
-3	Write 32 bit PID of each exiting reparented process to fd 3 of child
	(Blocking writes, child must read to avoid eventual deadlock.)

Spawns a single child process (because PID 1 has signals blocked)
in its own session, reaps zombies until the child exits, then
reboots the system (or powers off with -p, or restarts the child with -r).

Responds to SIGUSR1 by halting the system, SIGUSR2 by powering off,
and SIGTERM or SIGINT reboot.


usage: openvt [-c NUM] [-sw] COMMAND...

Run COMMAND on a new virtual terminal.

-c NUM  Use VT NUM
-s    Switch to the new VT
-w    Wait for command to exit (with -s, deallocates VT on exit)


usage: partprobe DEVICE...

Tell the kernel about partition table changes

Ask the kernel to re-read the partition table on the specified devices.


usage: passwd [-a ALGO] [-dlu] [USER]

Update user's authentication tokens. Defaults to current user.

-a ALGO	Encryption method (des, md5, sha256, sha512) default: des
-d		Set password to ''
-l		Lock (disable) account
-u		Unlock (enable) account


usage: paste [-s] [-d DELIMITERS] [FILE...]

Merge corresponding lines from each input file.

-d	List of delimiter characters to separate fields with (default is \t)
-s	Sequential mode: turn each input file into one line of output


usage: patch [-Rlsu] [-d DIR] [-i PATCH] [-p DEPTH] [-F FUZZ] [--dry-run] [FILE [PATCH]]

Apply a unified diff to one or more files.

-d	Modify files in DIR
-i	Input patch file (default=stdin)
-l	Loose match (ignore whitespace)
-p	Number of '/' to strip from start of file paths (default=all)
-R	Reverse patch
-s	Silent except for errors
-u	Ignored (only handles "unified" diffs)
-v	Verbose (-vv to see decisions)
--dry-run Don't change files, just confirm patch applies

This version of patch only handles unified diffs, and only modifies
a file when all hunks to that file apply. Patch prints failed hunks
to stderr, and exits with nonzero status if any hunks fail.

A file compared against /dev/null (or with a date <= the epoch) is
created/deleted as appropriate.


usage: pgrep [-clfnovx] [-d DELIM] [-L SIGNAL] [PATTERN] [-G GID,] [-g PGRP,] [-P PPID,] [-s SID,] [-t TERM,] [-U UID,] [-u EUID,]

Search for process(es). PATTERN is an extended regular expression checked
against command names.

-c	Show only count of matches
-d	Use DELIM instead of newline
-L	Send SIGNAL instead of printing name
-l	Show command name
-f	Check full command line for PATTERN
-G	Match real Group ID(s)
-g	Match Process Group(s) (0 is current user)
-n	Newest match only
-o	Oldest match only
-P	Match Parent Process ID(s)
-s	Match Session ID(s) (0 for current)
-t	Match Terminal(s)
-U	Match real User ID(s)
-u	Match effective User ID(s)
-v	Negate the match
-x	Match whole command (not substring)


usage: pidof [-s] [-o omitpid[,omitpid...]] [NAME...]

Print the PIDs of all processes with the given names.

-o	Omit PID(s)
-s	Single shot, only return one pid
-x	Match shell scripts too


usage: ping [OPTIONS] HOST

Check network connectivity by sending packets to a host and reporting
its response.

Send ICMP ECHO_REQUEST packets to ipv4 or ipv6 addresses and prints each
echo it receives back, with round trip time. Returns true if host alive.

-4, -6		Force IPv4 or IPv6
-c CNT		Send CNT many packets (default 3, 0 = infinite)
-f		Flood (print . and \b to show drops, default -c 15 -i 0.2)
-i TIME		Interval between packets (default 1, need root for < .2)
-I IFACE/IP	Source interface or address
-m MARK		Tag outgoing packets using SO_MARK
-q		Quiet (stops after one returns true if host is alive)
-s SIZE		Data SIZE in bytes (default 56)
-t TTL		Set Time To Live (number of hops)
-W SEC		Seconds to wait for response after last -c packet (default 3)
-w SEC		Exit after this many seconds


See ping


usage: pivot_root OLD NEW

Swap OLD and NEW filesystems (as if by simultaneous mount --move), and
move all processes with chdir or chroot under OLD into NEW (including
kernel threads) so OLD may be unmounted.

The directory NEW must exist under OLD. This doesn't work on initramfs,
which can't be moved (about the same way PID 1 can't be killed; see
switch_root instead).


usage: pkill [-fnovx] [-SIGNAL|-l SIGNAL] [PATTERN] [-G GID,] [-g PGRP,] [-P PPID,] [-s SID,] [-t TERM,] [-U UID,] [-u EUID,]

-l	Send SIGNAL (default SIGTERM)
-V	Verbose
-f	Check full command line for PATTERN
-G	Match real Group ID(s)
-g	Match Process Group(s) (0 is current user)
-n	Newest match only
-o	Oldest match only
-P	Match Parent Process ID(s)
-s	Match Session ID(s) (0 for current)
-t	Match Terminal(s)
-U	Match real User ID(s)
-u	Match effective User ID(s)
-v	Negate the match
-x	Match whole command (not substring)


usage: pmap [-pqx] PID...

Report the memory map of a process or processes.

-p	Show full paths
-q	Do not show header or footer
-x	Show the extended format


See reboot


usage: printenv [-0] [env_var...]

Print environment variables.

-0	Use \0 as delimiter instead of \n


usage: printf FORMAT [ARGUMENT...]

Format and print ARGUMENT(s) according to FORMAT, using C printf syntax
(% escapes for cdeEfgGiosuxX, \ escapes for abefnrtv0 or \OCTAL or \xHEX).


See ulimit


usage: ps [-AadefLlnwZ] [-gG GROUP,] [-k FIELD,] [-o FIELD,] [-p PID,] [-t TTY,] [-uU USER,]

List processes.

Which processes to show (-gGuUpPt selections may be comma separated lists):

-A  All					-a  Has terminal not session leader
-d  All but session leaders		-e  Synonym for -A
-g  In GROUPs				-G  In real GROUPs (before sgid)
-p  PIDs (--pid)			-P  Parent PIDs (--ppid)
-s  In session IDs			-t  Attached to selected TTYs
-T  Show threads also			-u  Owned by selected USERs
-U  Real USERs (before suid)

Output modifiers:

-k  Sort FIELDs (-FIELD to reverse)	-M  Measure/pad future field widths
-n  Show numeric USER and GROUP		-w  Wide output (don't truncate fields)

Which FIELDs to show. (-o HELP for list, default = -o PID,TTY,TIME,CMD)

-o  Output FIELDs instead of defaults, each with optional :size and =title
-O  Add FIELDS to defaults
-Z  Include LABEL


usage: pwd [-L|-P]

Print working (current) directory.

-L	Use shell's path from $PWD (when applicable)
-P	Print canonical absolute path


usage: pwdx PID...

Print working directory of processes listed on command line.


usage: pwgen [-cAn0yrsBhC1v] [LENGTH] [COUNT]

Generate human-readable random passwords. When output is to tty produces
a screenfull to defeat shoulder surfing (pick one and clear the screen).

-c  --capitalize                  Permit capital letters.
-A  --no-capitalize               Don't include capital letters.
-n  --numerals                    Permit numbers.
-0  --no-numerals                 Don't include numbers.
-y  --symbols                     Permit special characters ($#%...).
-r   --remove=      Don't include the given characters.
-s  --secure                      Generate more random passwords.
-B  --ambiguous                   Avoid ambiguous characters (e.g. 0, O).
-h  --help                        Print this help message.
-C                                Print the output in columns.
-1                                Print the output one line each.
-v                                Don't include vowels.


usage: readahead FILE...

Preload files into disk cache.


usage: readelf [-adehlnSs] [-p SECTION] [-x SECTION] [file...]

Displays information about ELF files.

-a	Equivalent to -dhlnSs
-d	Show dynamic section
-e	Headers (equivalent to -hlS)
-h	Show ELF header
-l	Show program headers
-n	Show notes
-p S	Dump strings found in named/numbered section
-S	Show section headers
-s	Show symbol tables (.dynsym and .symtab)
-x S	Hex dump of named/numbered section

--dyn-syms	Show just .dynsym symbol table


usage: readlink FILE...

With no options, show what symlink points to, return error if not symlink.

Options for producing canonical paths (all symlinks/./.. resolved):

-e	Canonical path to existing entry (fail if missing)
-f	Full path (fail if directory missing)
-m	Ignore missing entries, show where it would be
-n	No trailing newline
-q	Quiet (no error messages)
-z	NUL instead of newline


usage: realpath [-LPemqsz] [--relative-base DIR] [-R DIR] FILE...

Display the canonical absolute pathname

-R Show ../path relative to DIR (--relative-to)
-L Logical path (resolve .. before symlinks)
-P Physical path (default)
-e Canonical path to existing entry (fail if missing)
-m Ignore missing entries, show where it would be
-q Quiet (no error messages)
-s Don't expand symlinks
-z NUL instead of newline
--relative-base  If path under DIR trim off prefix


usage: reboot/halt/poweroff [-fn] [-d DELAY]

Restart, halt, or power off the system.

-d	Wait DELAY before proceeding (in seconds or m/h/d suffix: -d 1.5m = 90s)
-f	Force reboot (don't signal init, reboot directly)
-n	Don't sync filesystems before reboot


usage: renice [-gpu] -n INCREMENT ID...


usage: reset

Reset the terminal.


usage: rev [FILE...]

Output each line reversed, when no files are given stdin is used.


usage: rfkill COMMAND [DEVICE]

Enable/disable wireless devices.

list [DEVICE]   List current state
block DEVICE    Disable device
unblock DEVICE  Enable device

DEVICE is an index number, or one of:
all, wlan(wifi), bluetooth, uwb(ultrawideband), wimax, wwan, gps, fm.


usage: rm [-fiRrv] FILE...

Remove each argument from the filesystem.

-f	Force: remove without confirmation, no error if it doesn't exist
-i	Interactive: prompt for confirmation
-rR	Recursive: remove directory contents
-v	Verbose


usage: rmdir [-p] [DIR...]

Remove one or more directories.

-p	Remove path
--ignore-fail-on-non-empty	Ignore failures caused by non-empty directories


usage: rmmod [-wf] MODULE...

Unload the given kernel modules.

-f	Force unload of a module
-w	Wait until the module is no longer used


usage: rtcwake [-aluv] [-d FILE] [-m MODE] [-s SECS] [-t UNIX]

Enter the given sleep state until the given time.

-a	RTC uses time specified in /etc/adjtime
-d FILE	Device to use (default /dev/rtc)
-l	RTC uses local time
-m	Mode (--list-modes to see those supported by your kernel):
	  standby  S1: default              mem     S3: suspend to RAM
	  disk     S4: suspend to disk      off     S5: power off
	  disable  Cancel current alarm     freeze  stop processes/processors
	  no       just set wakeup time     on      just poll RTC for alarm
	  show     just show current alarm
-s SECS	Wake SECS seconds from now
-t UNIX	Wake UNIX seconds from epoch
-u	RTC uses UTC
-v	Verbose


usage: sed [-inrszE] [-e SCRIPT]...|SCRIPT [-f SCRIPT_FILE]... [FILE...]

Stream editor. Apply editing SCRIPTs to lines of input.

-e	Add SCRIPT to list
-f	Add contents of SCRIPT_FILE to list
-i	Edit each file in place (-iEXT keeps backup file with extension EXT)
-n	No default output (use the p command to output matched lines)
-r	Use extended regular expression syntax
-E	POSIX alias for -r
-s	Treat input files separately (implied by -i)
-z	Use \0 rather than \n as input line separator

A SCRIPT is one or more COMMANDs separated by newlines or semicolons.
All -e SCRIPTs and -f SCRIPT_FILE contents are combined in order as if
separated by newlines. If no -e or -f then first argument is the SCRIPT.

COMMANDs apply to every line unless prefixed with an ADDRESS of the form:


ADDRESS is a line number (starting at 1), a /REGULAR EXPRESSION/, or $ for
last line (-s or -i makes it last line of each file). One address matches one
line, ADDRESS,ADDRESS matches from first to second inclusive. Two regexes can
match multiple ranges. ADDRESS,+N ends N lines later. ! inverts the match.

REGULAR EXPRESSIONS start and end with the same character (anything but
backslash or newline). To use the delimiter in the regex escape it with a
backslash, and printf escapes (\abcefnrtv and octal, hex, and unicode) work.
An empty regex repeats the previous one. ADDRESS regexes require any
first delimiter except / to be \escaped to distinguish it from COMMANDs.

Sed reads each line of input, processes it, and writes it out or discards it
before reading the next. Sed can remember one additional line in a separate
buffer (the h, H, g, G, and x commands), and can read the next line of input
early (the n and N commands), but otherwise operates on individual lines.

Each COMMAND starts with a single character. Commands with no arguments are:

  !  Run this command when the ADDRESS _didn't_ match.
  {  Start new command block, continuing until a corresponding "}".
     Command blocks nest and can have ADDRESSes applying to the whole block.
  }  End command block (this COMMAND cannot have an address)
  d  Delete this line and move on to the next one
     (ignores remaining COMMANDs)
  D  Delete one line of input and restart command SCRIPT (same as "d"
     unless you've glued lines together with "N" or similar)
  g  Get remembered line (overwriting current line)
  G  Get remembered line (appending to current line)
  h  Remember this line (overwriting remembered line)
  H  Remember this line (appending to remembered line, if any)
  l  Print line escaping \abfrtvn, octal escape other nonprintng chars,
     wrap lines to terminal width with \, append $ to end of line.
  n  Print default output and read next line over current line (quit at EOF)
  N  Append \n and next line of input to this line. Quit at EOF without
     default output. Advances line counter for ADDRESS and "=".
  p  Print this line
  P  Print this line up to first newline (from "N")
  q  Quit (print default output, no more commands processed or lines read)
  x  Exchange this line with remembered line (overwrite in both directions)
  =  Print the current line number (plus newline)
  #  Comment, ignores rest of this line of SCRIPT (until newline)

Commands that take an argument:

  : LABEL    Target for jump commands
  a TEXT     Append text to output before reading next line
  b LABEL    Branch, jumps to :LABEL (with no LABEL to end of SCRIPT)
  c TEXT     Delete matching ADDRESS range and output TEXT instead
  i TEXT     Insert text (output immediately)
  r FILE     Append contents of FILE to output before reading next line.
  s/S/R/F    Search for regex S replace match with R using flags F. Delimiter
             is anything but \n or \, escape with \ to use in S or R. Printf
             escapes work. Unescaped & in R becomes full matched text, \1
             through \9 = parenthetical subexpression from S. \ at end of
             line appends next line of SCRIPT. The flags in F are:
             [0-9]    A number N, substitute only Nth match
             g        Global, substitute all matches
             i/I      Ignore case when matching
             p        Print resulting line when match found and replaced
             w [file] Write (append) line to file when match replaced
  t LABEL    Test, jump if s/// command matched this line since last test
  T LABEL    Test false, jump to :LABEL only if no s/// found a match
  w FILE     Write (append) line to file
  y/old/new/ Change each character in 'old' to corresponding character
             in 'new' (with standard backslash escapes, delimiter can be
             any repeated character except \ or \n)

The TEXT arguments (to a c i) may end with an unescaped "\" to append
the next line (leading whitespace is not skipped), and treat ";" as a
literal character (use "\;" instead).


usage: seq [-w|-f fmt_str] [-s sep_str] [first] [increment] last

Count from first to last, by increment. Omitted arguments default
to 1. Two arguments are used as first and last. Arguments can be
negative or floating point.

-f	Use fmt_str as a printf-style floating point format string
-s	Use sep_str as separator, default is a newline character
-w	Pad to equal width with leading zeroes


usage: setfattr [-h] [-x|-n NAME] [-v VALUE] FILE...

Write POSIX extended attributes.

-h	Do not dereference symlink
-n	Set given attribute
-x	Remove given attribute
-v	Set value for attribute -n (default is empty)


usage: setsid [-cdw] command [args...]

Run process in a new session.

-d	Detach from tty
-c	Control tty (become foreground process & receive keyboard signals)
-w	Wait for child (and exit with its status)


See md5sum


See md5sum


See md5sum


See md5sum


usage: sha3sum [-S] [-a BITS] [FILE...]

Hash function du jour.

-a	Produce a hash BITS long (default 224)
-b	Brief (hash only, no filename)
-S	Use SHAKE termination byte instead of SHA3 (ask FIPS why)


See md5sum


usage: shred [-fuxz] [-n COUNT] [-o OFFSET] [-s SIZE] FILE...

Securely delete a file by overwriting its contents with random data.

-f		Force (chmod if necessary)
-n COUNT	Random overwrite iterations (default 1)
-s SIZE		Use SIZE instead of detecting file size
-u		Unlink (actually delete file when done)
-x		Use exact size (default without -s rounds up to next 4k)
-z		Zero at end

Note: data journaling filesystems render this command useless, you must
overwrite all free space (fill up disk) to erase old data on those.


usage: shuf [-ze] [-n COUNT] [FILE...]

Write lines of input to output in random order.

-z	Input/output lines are NUL terminated.
-n	Stop after COUNT many output lines.
-e	Echo mode: arguments are inputs to shuffle, not files to read.


usage: sleep DURATION...

Wait before exiting.

DURATION can be a decimal fraction. An optional suffix can be "m"
(minutes), "h" (hours), "d" (days), or "s" (seconds, the default).


usage: sntp [-saSdDq] [-r SHIFT] [-mM[ADDRESS]] [-p PORT] [SERVER]

Simple Network Time Protocol client. Query SERVER and display time.

-p	Use PORT (default 123)
-s	Set system clock suddenly
-a	Adjust system clock gradually
-S	Serve time instead of querying (bind to SERVER address if specified)
-m	Wait for updates from multicast ADDRESS (RFC 4330 suggests
-M	Multicast server on ADDRESS (RFC 4330 suggests
-t	TTL (multicast only, default 1)
-d	Daemonize (run in background re-querying)
-D	Daemonize but stay in foreground: re-query time every 1000 seconds
-r	Retry shift (every 1<


usage: sort [-Mbcdfginrsuz] [FILE...] [-k#[,#[x]] [-t X]] [-o FILE]

Sort all lines of text from input files (or stdin) to stdout.
-C	Check whether input is sorted
-M	Month sort (jan, feb, etc)
-V	Version numbers (name-1.234-rc6.5b.tgz)
-b	Ignore leading blanks (or trailing blanks in second part of key)
-c	Warn if input is unsorted
-d	Dictionary order (use alphanumeric and whitespace chars only)
-f	Force uppercase (case insensitive sort)
-g	General numeric sort (double precision with nan and inf)
-i	Ignore nonprinting characters
-k	Sort by "key" (see below)
-n	Numeric order (instead of alphabetical)
-o	Output to FILE instead of stdout
-r	Reverse
-s	Skip fallback sort (only sort with keys)
-t	Use a key separator other than whitespace
-u	Unique lines only
-x	Hexadecimal numerical sort
-z	Zero (null) terminated lines

Sorting by key looks at a subset of the words on each line. -k2 uses the
second word to the end of the line, -k2,2 looks at only the second word,
-k2,4 looks from the start of the second to the end of the fourth word.
-k2.4,5 starts from the fourth character of the second word, to the end
of the fifth word. Specifying multiple keys uses the later keys as tie
breakers, in order. A type specifier appended to a sort key (such as -2,2n)
applies only to sorting that key.


usage: split [-a SUFFIX_LEN] [-b BYTES] [-l LINES] [-n PARTS] [INPUT [OUTPUT]]

Copy INPUT (or stdin) data to a series of OUTPUT (or "x") files with
alphabetically increasing suffix (aa, ab, ac... az, ba, bb...).

-a	Suffix length (default 2)
-b	BYTES/file (10, 10k, 10m, 10g...)
-l	LINES/file (default 1000)
-n	PARTS many equal length files


usage: stat [-tfL] [-c FORMAT] FILE...

Display status of files or filesystems.

-c	Output specified FORMAT string instead of default
-f	Display filesystem status instead of file status
-L	Follow symlinks
-t	terse (-c "%n %s %b %f %u %g %D %i %h %t %T %X %Y %Z %o")
	      (with -f = -c "%n %i %l %t %s %S %b %f %a %c %d")

The valid format escape sequences for files:
%a  Access bits (octal) |%A  Access bits (flags)|%b  Size/512
%B  Bytes per %b (512)  |%C  Security context   |%d  Device ID (dec)
%D  Device ID (hex)     |%f  All mode bits (hex)|%F  File type
%g  Group ID            |%G  Group name         |%h  Hard links
%i  Inode               |%m  Mount point        |%n  Filename
%N  Long filename       |%o  I/O block size     |%s  Size (bytes)
%t  Devtype major (hex) |%T  Devtype minor (hex)|%u  User ID
%U  User name           |%x  Access time        |%X  Access unix time
%y  Modification time   |%Y  Mod unix time      |%z  Creation time
%Z  Creation unix time

The valid format escape sequences for filesystems:
%a  Available blocks    |%b  Total blocks       |%c  Total inodes
%d  Free inodes         |%f  Free blocks        |%i  File system ID
%l  Max filename length |%n  File name          |%s  Best transfer size
%S  Actual block size   |%t  FS type (hex)      |%T  FS type (driver name)


usage: strings [-fo] [-t oxd] [-n LEN] [FILE...]

Display printable strings in a binary file

-f	Show filename
-n	At least LEN characters form a string (default 4)
-o	Show offset (ala -t d)
-t	Show offset type (o=octal, d=decimal, x=hexadecimal)


usage: su [-lp] [-u UID] [-g GID,...] [-s SHELL] [-c CMD] [USER [COMMAND...]]

Switch user, prompting for password of new user when not run as root.

With one argument, switch to USER and run user's shell from /etc/passwd.
With no arguments, USER is root. If COMMAND line provided after USER,
exec() it as new USER (bypassing shell). If -u or -g specified, first
argument (if any) isn't USER (it's COMMAND).

first argument is USER name to switch to (which must exist).
Non-root users are prompted for new user's password.

-s	Shell to use (default is user's shell from /etc/passwd)
-c	Command line to pass to -s shell (ala sh -c "CMD")
-l	Reset environment as if new login.
-u	Switch to UID instead of USER
-g	Switch to GID (only root allowed, can be comma separated list)
-p	Preserve environment (except for $PATH and $IFS)


usage: swapoff FILE

Disable swapping on a device or file.


usage: swapon [-d] [-p priority] filename

Enable swapping on a given device/file.

-d	Discard freed SSD pages
-p	Priority (highest priority areas allocated first)


usage: switch_root [-c /dev/console] NEW_ROOT NEW_INIT...

Use from PID 1 under initramfs to free initramfs, chroot to NEW_ROOT,
and exec NEW_INIT.

-c	Redirect console to device in NEW_ROOT
-h	Hang instead of exiting on failure (avoids kernel panic)


usage: sync

Write pending cached data to disk (synchronize), blocking until done.


usage: sysctl [-aAeNnqw] [-p [FILE] | KEY[=VALUE]...]

Read/write system control data (under /proc/sys).

-a,A	Show all values
-e	Don't warn about unknown keys
-N	Don't print key values
-n	Don't print key names
-p	Read values from FILE (default /etc/sysctl.conf)
-q	Don't show value after write
-w	Only write values (object to reading)


usage: tac [FILE...]

Output lines in reverse order.


usage: tail [-n|c NUMBER] [-f|F] [-s SECONDS] [FILE...]

Copy last lines from files to stdout. If no files listed, copy from
stdin. Filename "-" is a synonym for stdin.

-n	Output the last NUMBER lines (default 10), +X counts from start
-c	Output the last NUMBER bytes, +NUMBER counts from start
-f	Follow FILE(s) by descriptor, waiting for more data to be appended
-F	Follow FILE(s) by filename, waiting for more data, and retrying
-s	Used with -F, sleep SECONDS between retries (default 1)


usage: tar [-cxt] [-fvohmjkOS] [-XTCf NAME] [--selinux] [FILE...]

Create, extract, or list files in a .tar (or compressed t?z) file.

c  Create                x  Extract               t  Test (list)
f  tar FILE (default -)  C  Change to DIR first   v  Verbose display
J  xz compression        j  bzip2 compression     z  gzip compression
o  Ignore owner          h  Follow symlinks       m  Ignore mtime
O  Extract to stdout     X  exclude names in FILE T  include names in FILE
s  Sort dirs (--sort)

--exclude        FILENAME to exclude  --full-time         Show seconds with -tv
--mode MODE      Adjust permissions   --owner NAME[:UID]  Set file ownership
--mtime TIME     Override timestamps  --group NAME[:GID]  Set file group
--sparse         Record sparse files  --selinux           Save/restore labels
--restrict       All under one dir    --no-recursion      Skip dir contents
--numeric-owner  Use numeric uid/gid, not user/group names
--null           Filenames in -T FILE are null-separated, not newline
--strip-components NUM  Ignore first NUM directory components when extracting
--xform=SED      Modify filenames via SED expression (ala s/find/replace/g)
-I PROG          Filter through PROG to compress or PROG -d to decompress

Filename filter types. Create command line args aren't filtered, extract
defaults to --anchored, --exclude defaults to --wildcards-match-slash,
use no- prefix to disable:

--anchored  Match name not path       --ignore-case       Case insensitive
--wildcards Expand *?[] like shell    --wildcards-match-slash


usage: taskset [-ap] [mask] [PID | cmd [args...]]

Launch a new task which may only run on certain processors, or change
the processor affinity of an existing PID.

Mask is a hex string where each bit represents a processor the process
is allowed to run on. PID without a mask displays existing affinity.

-p	Set/get the affinity of given PID instead of a new command
-a	Set/get the affinity of all threads of the PID


usage: tee [-ai] [FILE...]

Copy stdin to each listed file, and also to stdout.
Filename "-" is a synonym for stdout.

-a	Append to files
-i	Ignore SIGINT


usage: test [-bcdefghLPrSsuwx PATH] [-nz STRING] [-t FD] [X ?? Y]

Return true or false by performing tests. No arguments is false, one argument
is true if not empty string.

--- Tests with a single argument (after the option):
PATH is/has:
  -b  block device   -f  regular file   -p  fifo           -u  setuid bit
  -c  char device    -g  setgid         -r  readable       -w  writable
  -d  directory      -h  symlink        -S  socket         -x  executable
  -e  exists         -L  symlink        -s  nonzero size   -k  sticky bit
  -n  nonzero size   -z  zero size
FD (integer file descriptor) is:
  -t  a TTY

--- Tests with one argument on each side of an operator:
Two strings:
  =  are identical   !=  differ         =~  string matches regex
Alphabetical sort:
  <  first is lower  >   first higher
Two integers:
  -eq  equal         -gt  first > second    -lt  first < second
  -ne  not equal     -ge  first >= second   -le  first <= second

--- Modify or combine tests:
  ! EXPR     not (swap true/false)   EXPR -a EXPR    and (are both true)
  ( EXPR )   evaluate this first     EXPR -o EXPR    or (is either true)


usage: time [-pv] COMMAND...

Run command line and report real, user, and system time elapsed in seconds.
(real = clock on the wall, user = cpu used by command's code,
system = cpu used by OS on behalf of command.)

-p	POSIX format output
-v	Verbose


usage: timeout [-i] [-k DURATION] [-s SIGNAL] DURATION COMMAND...

Run command line as a child process, sending child a signal if the
command doesn't exit soon enough.

DURATION can be a decimal fraction. An optional suffix can be "m"
(minutes), "h" (hours), "d" (days), or "s" (seconds, the default).

-i	Only kill for inactivity (restart timeout when command produces output)
-k	Send KILL signal if child still running this long after first signal
-s	Send specified signal (default TERM)
-v	Verbose
--foreground       Don't create new process group
--preserve-status  Exit with the child's exit status


usage: top [-Hhbq] [-k FIELD,] [-o FIELD,] [-s SORT] [-n NUMBER] [-m LINES] [-d SECONDS] [-p PID,] [-u USER,]

Show process activity in real time.

-H	Show threads
-h	Usage graphs instead of text
-k	Fallback sort FIELDS (default -S,-%CPU,-ETIME,-PID)
-O	Add FIELDS (replacing PR,NI,VIRT,RES,SHR,S from default)
-s	Sort by field number (1-X, default 9)
-b	Batch mode (no tty)
-d	Delay SECONDS between each cycle (default 3)
-m	Maximum number of tasks to show
-n	Exit after NUMBER iterations
-p	Show these PIDs
-u	Show these USERs
-q	Quiet (no header lines)

Cursor UP/DOWN or LEFT/RIGHT to move list, SHIFT LEFT/RIGHT to change sort,
space to force update, R to reverse sort, Q to exit.


usage: touch [-amch] [-d DATE] [-t TIME] [-r FILE] FILE...

Update the access and modification times of each FILE to the current time.

-a	Change access time
-m	Change modification time
-c	Don't create file
-h	Change symlink
-d	Set time to DATE (in YYYY-MM-DDThh:mm:SS[.frac][tz] format)
-t	Set time to TIME (in [[CC]YY]MMDDhhmm[.ss][frac] format)
-r	Set time same as reference FILE


usage: true

Return zero.


usage: truncate [-c] -s SIZE file...

Set length of file(s), extending sparsely if necessary.

-c	Don't create file if it doesn't exist
-s	New size (with optional prefix and suffix)

SIZE prefix: + add, - subtract, < shrink to, > expand to,
             / multiple rounding down, % multiple rounding up
SIZE suffix: k=1024, m=1024^2, g=1024^3, t=1024^4, p=1024^5, e=1024^6


usage: tty [-s]

Show filename of terminal connected to stdin. If none print "not a tty"
and exit with nonzero status.

-s	Silent, exit code only


usage: tunctl [-dtT] [-u USER] NAME

Create and delete tun/tap virtual ethernet devices.

-T	Use tap (ethernet frames) instead of tun (ip packets)
-d	Delete tun/tap device
-t	Create tun/tap device
-u	Set owner (user who can read/write device without root access)


usage: uclampset [-m MIN] [-M MAX] {-p PID | COMMAND...}

Set or query process utilization limits ranging from 0 to 1024, or -1 to
reset to system default. With no arguments, prints current values.

-m MIN      Reserve at least this much CPU utilization for task
-M MAX      Limit task to at most this much CPU utilization
-p PID	Apply to PID rather than new COMMAND
-R	Reset child processes to default values on fork
-a	Apply to all threads for the given PID


usage: ulimit [-P PID] [-SHRacdefilmnpqrstuv] [LIMIT]

Print or set resource limits for process number PID. If no LIMIT specified
(or read-only -ap selected) display current value (sizes in bytes).
Default is ulimit -P $PPID -Sf" (show soft filesize of your shell).

-P  PID to affect (default $PPID)  -a  Show all limits
-S  Set/show soft limit            -H  Set/show hard (maximum) limit

-c  Core file size (blocks)        -d  Process data segment (KiB)
-e  Max scheduling priority        -f  File size (KiB)
-i  Pending signal count           -l  Locked memory (KiB)
-m  Resident Set Size (KiB)        -n  Number of open files
-p  Pipe buffer (512 bytes)        -q  POSIX message queues
-r  Max realtime priority          -R  Realtime latency (us)
-s  Stack size (KiB)               -t  Total CPU time (s)
-u  Maximum processes (this UID)   -v  Virtual memory size (KiB)


usage: umount [-a [-t TYPE[,TYPE...]]] [-vrfD] [DIR...]

Unmount the listed filesystems.

-a	Unmount all mounts in /proc/mounts instead of command line list
-D	Don't free loopback device(s)
-f	Force unmount
-l	Lazy unmount (detach from filesystem now, close when last user does)
-n	Don't use /proc/mounts
-r	Remount read only if unmounting fails
-t	Restrict "all" to mounts of TYPE (or use "noTYPE" to skip)
-v	Verbose


usage: uname [-asnrvm]

Print system information.

-s	System name
-n	Network (domain) name
-r	Kernel Release number
-v	Kernel Version
-m	Machine (hardware) name
-o	Userspace type
-a	All of the above (in order)


usage: unicode CODE[-END]...

Convert between Unicode code points and UTF-8, in both directions.
CODE can be one or more characters (show U+XXXX), hex numbers
(show character), or dash separated range.


usage: uniq [-cduiz] [-w MAXCHARS] [-f FIELDS] [-s CHAR] [INFILE [OUTFILE]]

Report or filter out repeated lines in a file

-c	Show counts before each line
-d	Show only lines that are repeated
-u	Show only lines that are unique
-i	Ignore case when comparing lines
-z	Lines end with \0 not \n
-w	Compare maximum X chars per line
-f	Ignore first X fields
-s	Ignore first X chars


usage: unix2dos [FILE...]

Convert newline format from unix "\n" to dos "\r\n".
If no files listed copy from stdin, "-" is a synonym for stdin.


usage: unlink FILE

Delete one file.


usage: unshare [-imnpuUr] COMMAND...

Create new container namespace(s) for this process and its children, allowing
the new set of processes to have a different view of the system than the
parent process.

-a	Unshare all supported namespaces
-f	Fork command in the background (--fork)
-r	Become root (map current euid/egid to 0/0, implies -U) (--map-root-user)

Available namespaces:
-C	Control groups (--cgroup)
-i	SysV IPC (message queues, semaphores, shared memory) (--ipc)
-m	Mount/unmount tree (--mount)
-n	Network address, sockets, routing, iptables (--net)
-p	Process IDs and init (--pid)
-u	Host and domain names (--uts)
-U	UIDs, GIDs, capabilities (--user)

Each namespace can take an optional argument, a persistent mountpoint usable
by the nsenter command to add new processes to that the namespace. (Specify
multiple namespaces to unshare separately, ala -c -i -m because -cim is -c
with persistent mount "im".)


usage: uptime [-ps]

Tell the current time, how long the system has been running, the number
of users, and the system load averages for the past 1, 5 and 15 minutes.

-p	Pretty (human readable) uptime
-s	Since when has the system been up?


usage: usleep MICROSECONDS

Pause for MICROSECONDS microseconds.


usage: uudecode [-o OUTFILE] [INFILE]

Decode file from stdin (or INFILE).

-o	Write to OUTFILE instead of filename in header


usage: uuencode [-m] [INFILE] ENCODE_FILENAME

Uuencode stdin (or INFILE) to stdout, with ENCODE_FILENAME in the output.

-m	Base64


usage: uuidgen

Create and print a new RFC4122 random UUID.


usage: vconfig COMMAND [OPTIONS]

Create and remove virtual ethernet devices

add             [interface-name] [vlan_id]
rem             [vlan-name]
set_flag        [interface-name] [flag-num]       [0 | 1]
set_egress_map  [vlan-name]      [skb_priority]   [vlan_qos]
set_ingress_map [vlan-name]      [skb_priority]   [vlan_qos]
set_name_type   [name-type]


usage: vmstat [-n] [DELAY [COUNT]]

Print virtual memory statistics, repeating each DELAY seconds, COUNT times.
(With no DELAY, prints one line. With no COUNT, repeats until killed.)

Show processes running and blocked, kilobytes swapped, free, buffered, and
cached, kilobytes swapped in and out per second, file disk blocks input and
output per second, interrupts and context switches per second, percent
of CPU time spent running user code, system code, idle, and awaiting I/O.
First line is since system started, later lines are since last line.

-n	Display the header only once


usage: w

Show who is logged on and since how long they logged in.


usage: watch [-teb] [-n SEC] PROG ARGS

Run PROG every -n seconds, showing output. Hit q to quit.

-n	Loop period in seconds (default 2)
-t	Don't print header
-e	Exit on error
-b	Beep on command error
-x	Exec command directly (vs "sh -c")


usage: watchdog [-F] [-t UPDATE] [-T DEADLINE] DEV

Start the watchdog timer at DEV with optional timeout parameters.

-F	run in the foreground (do not daemonize)
-t	poke watchdog every UPDATE seconds (default 4)
-T	reboot if not poked for DEADLINE seconds (default 60)


usage: wc -lwcm [FILE...]

Count lines, words, and characters in input.

-l	Show lines
-w	Show words
-c	Show bytes
-m	Show characters

By default outputs lines, words, bytes, and filename for each
argument (or from stdin if none). Displays only either bytes
or characters.


usage: wget [OPTIONS]... [URL]
    --max-redirect          maximum redirections allowed
-d, --debug                 print lots of debugging information
-O, --output-document=FILE  specify output filename
-p, --post-data=DATA        send data in body of POST request



usage: which [-a] filename ...

Search $PATH for executable files matching filename(s).

-a	Show all matches


usage: who

Print information about logged in users.


See logname


usage: xargs [-0prt] [-snE STR] COMMAND...

Run command line one or more times, appending arguments from stdin.

If COMMAND exits with 255, don't launch another even if arguments remain.

-0	Each argument is NULL terminated, no whitespace or quote processing
-E	Stop at line matching string
-n	Max number of arguments per command
-o	Open tty for COMMAND's stdin (default /dev/null)
-p	Prompt for y/n from tty before running each command
-P	Parallel processes (default 1)
-r	Don't run with empty input (otherwise always run command once)
-s	Size in bytes per command line
-t	Trace, print command line to stderr


usage: xxd [-eipr] [-cglos N] [file]

Hexdump a file to stdout. If no file is listed, copy from stdin.
Filename "-" is a synonym for stdin.

-c N	Show N bytes per line (default 16)
-e	Little-endian
-g N	Group bytes by adding a ' ' every N bytes (default 2)
-i	Output include file (CSV hex bytes, plus C header/footer if not stdin)
-l N	Limit of N bytes before stopping (default is no limit)
-o N	Add N to display offset
-p	Plain hexdump (30 bytes/line, no grouping. With -c 0 no wrap/group)
-r	Reverse operation: turn a hexdump into a binary file
-s N	Skip to offset N


usage: yes [args...]

Repeatedly output line until killed. If no args, output 'y'.


usage: zcat [FILE...]

Decompress files to stdout. Like `gzip -dc`.

-f	Force: allow read from tty