#define addgroup_trivial_usage \
- "[OPTIONS] <group_name>"
+ "[OPTIONS] group_name [user_name]"
#define addgroup_full_usage \
"Adds a group to the system" \
"Options:\n" \
"\t-g\t\tspecify gid\n"
#define adduser_trivial_usage \
- "[OPTIONS] <user_name>"
+ "[OPTIONS] user_name"
#define adduser_full_usage \
"Adds a user to the system" \
"Options:\n" \
- "\t-h\t\thome directory\n" \
- "\t-s\t\tshell\n" \
- "\t-g\t\tGECOS string\n"
+ "\t-h DIR\t\tAssign home directory DIR\n" \
+ "\t-g GECOS\t\tAssign gecos field GECOS\n" \
+ "\t-s SHELL\t\tAssign login shell SHELL\n" \
+ "\t-G\t\tAdd the user to existing group GROUP\n" \
+ "\t-S\t\tcreate a system user (ignored)\n" \
+ "\t-D\t\tDo not assign a password (logins still possible via ssh)\n" \
+ "\t-H\t\tDo not create the home directory\n"
#define adjtimex_trivial_usage \
"[-q] [-o offset] [-f frequency] [-p timeconstant] [-t tick]"
"\t-x\t\textract\n" \
"\t-v\t\tverbosely list files processed\n"
+#define arping_trivial_usage \
+ "[-fqbDUA] [-c count] [-w timeout] [-I device] [-s sender] target\n"
+#define arping_full_usage \
+ "Ping hosts by ARP requests/replies.\n\n" \
+ "Options:\n" \
+ "\t-f\t\tQuit on first ARP reply\n" \
+ "\t-q\t\tBe quiet\n" \
+ "\t-b\t\tKeep broadcasting, don't go unicast\n" \
+ "\t-D\t\tDuplicated address detection mode\n" \
+ "\t-U\t\tUnsolicited ARP mode, update your neighbours\n" \
+ "\t-A\t\tARP answer mode, update your neighbours\n" \
+ "\t-c count\tStop after sending count ARP request packets\n" \
+ "\t-w timeout\tTime to wait for ARP reply, in seconds\n" \
+ "\t-I device\tOutgoing interface name, default is eth0\n" \
+ "\t-s sender\tSet specific sender IP address\n" \
+ "\ttarget\t\tTarget IP address of ARP request\n"
+
#define awk_trivial_usage \
"[-v var=val][-F sep] { -f progname | 'programtext' } [FILE ...]"
#define awk_full_usage \
"\t-y\tDisplay the entire year."
#define cat_trivial_usage \
- "[FILE]..."
+ "[-u] [FILE]..."
#define cat_full_usage \
- "Concatenates FILE(s) and prints them to stdout."
+ "Concatenates FILE(s) and prints them to stdout.\n\n" \
+ "Options:\n" \
+ "\t-u\tignored since unbuffered i/o is always used"
#define cat_example_usage \
"$ cat /proc/uptime\n" \
"110716.72 17.67"
"Clear screen."
#define cmp_trivial_usage \
- "FILE1 [FILE2]"
+ "[OPTION]... FILE1 [FILE2]"
#define cmp_full_usage \
- "\t-s\tquiet mode - do not print\n" \
- "Compare files."
+ "Compare files.\n\n" \
+ "Options:\n" \
+ "\t-l\tWrite the byte numbers (decimal) and values (octal)\n" \
+ "\t\t for all differing bytes.\n" \
+ "\t-s\tquiet mode - do not print"
#define cp_trivial_usage \
"[OPTION]... SOURCE DEST"
"\tu\t\tunconditional overwrite\n" \
"\tF\t\tinput from file"
+#define crond_trivial_usage \
+ "-d[#] -c <crondir> -f -b"
+#define crond_full_usage \
+ "\t-d [#] -l [#] -S -L logfile -f -b -c dir\n" \
+ "\t-d num\tdebug level\n" \
+ "\t-l num\tlog level (8 - default)\n" \
+ "\t-S\tlog to syslod (defualt)\n" \
+ "\t-L file\tlog to file\n" \
+ "\t-f\trun in fordeground\n" \
+ "\t-b\trun in background (default)\n" \
+ "\t-c dir\tworking dir"
+
+#define crontab_trivial_usage \
+ "crontab [-c dir] {file|-}|[-u|-l|-e|-d user]"
+#define crontab_full_usage \
+ "\tfile <opts> replace crontab from file\n" \
+ "\t- <opts> replace crontab from stdin\n" \
+ "\t-u user specify user\n" \
+ "\t-l [user] list crontab for user\n" \
+ "\t-e [user] edit crontab for user\n" \
+ "\t-d [user] delete crontab for user\n" \
+ "\t-c dir specify crontab directory"
+
+
#define cut_trivial_usage \
"[OPTION]... [FILE]..."
#define cut_full_usage \
#define dc_full_usage \
"This is a Tiny RPN calculator that understands the\n" \
"following operations: +, -, /, *, and, or, not, eor.\n" \
- "i.e., 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16"
+ "i.e., 'dc 2 2 add' -> 4, and 'dc 8 8 \\* 2 2 + /' -> 16" \
+ "p - Prints the value on the top of the stack, without altering the stack.\n" \
+ "f - Prints the entire contents of the stack without altering anything.\n" \
+ "o - Pops the value off the top of the stack and uses it to set the output radix.\n" \
+ " Only 10 and 16 are supported.\n"
+
#define dc_example_usage \
"$ dc 2 2 +\n" \
"4\n" \
#define dpkg_deb_example_usage \
"$ dpkg-deb -X ./busybox_0.48-1_i386.deb /tmp\n"
+#ifdef CONFIG_FEATURE_DU_DEFALT_BLOCKSIZE_1K
+#define USAGE_DU_DEFALT_BLOCKSIZE_1k(a) a
+#define USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k(a)
+#else
+#define USAGE_DU_DEFALT_BLOCKSIZE_1k(a)
+#define USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k(a) a
+#endif
+
#define du_trivial_usage \
- "[-lsx" USAGE_HUMAN_READABLE("hm") USAGE_NOT_HUMAN_READABLE("") "k] [FILE]..."
+ "[-aHLdclsx" USAGE_HUMAN_READABLE("hm") "k] [FILE]..."
#define du_full_usage \
"Summarizes disk space used for each FILE and/or directory.\n" \
- "Disk space is printed in units of 1024 bytes.\n\n" \
- "Options:\n" \
+ "Disk space is printed in units of " \
+ USAGE_DU_DEFALT_BLOCKSIZE_1k("1024") USAGE_NOT_DU_DEFALT_BLOCKSIZE_1k("512") \
+ " bytes.\n\n" \
+ "Options:\n" \
+ "\t-a\tshow sizes of files in addition to directories\n" \
+ "\t-H\tfollow symbolic links that are FILE command line args\n" \
+ "\t-L\tfollow all symbolic links encountered\n" \
+ "\t-d N\tlimit output to directories (and files with -a) of depth < N\n" \
+ "\t-c\toutput a grand total\n" \
"\t-l\tcount sizes many times if hard linked\n" \
- "\t-s\tdisplay only a total for each argument" \
- USAGE_HUMAN_READABLE( \
- "\n\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
- "\t-m\tprint sizes in megabytes\n" \
+ "\t-s\tdisplay only a total for each argument\n" \
"\t-x\tskip directories on different filesystems\n" \
- "\t-k\tprint sizes in kilobytes(default)") USAGE_NOT_HUMAN_READABLE( \
- "\n\t-k\tprint sizes in kilobytes(compatibility)")
+ USAGE_HUMAN_READABLE( \
+ "\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
+ "\t-m\tprint sizes in megabytes\n" ) \
+ "\t-k\tprint sizes in kilobytes" USAGE_DU_DEFALT_BLOCKSIZE_1k("(default)")
#define du_example_usage \
"$ du\n" \
"16 ./CVS\n" \
#define dumpkmap_example_usage \
"$ dumpkmap > keymap\n"
+#define dumpleases_trivial_usage \
+ "[-r|-a] [-f LEASEFILE]"
+#define dumpleases_full_usage \
+ "\t-f,\t--file=FILENAME\tLeases file to load\n" \
+ "\t-r,\t--remaining\tInterepret lease times as time remaing\n" \
+ "\t-a,\t--absolute\tInterepret lease times as expire time\n"
+
#define dutmp_trivial_usage \
"[FILE]"
#define dutmp_full_usage \
"8|125||l4|||0|0|0|955637629|998367|0\n" \
"6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0\n" \
"6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0\n" \
- "7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0\n"
+ "7|336|pts/0|vt00|andersen|:0.0|0|0|0|955637763|0|0\n"
+
+#ifdef CONFIG_FEATURE_FANCY_ECHO
+ #define USAGE_FANCY_ECHO(a) a
+#else
+ #define USAGE_FANCY_ECHO(a)
+#endif
#define echo_trivial_usage \
- "[-neE] [ARG ...]"
+ USAGE_FANCY_ECHO("[-neE] ") "[ARG ...]"
#define echo_full_usage \
"Prints the specified ARGs to stdout\n\n" \
- "Options:\n" \
+ USAGE_FANCY_ECHO("Options:\n" \
"\t-n\tsuppress trailing newline\n" \
"\t-e\tinterpret backslash-escaped characters (i.e., \\t=tab)\n" \
- "\t-E\tdisable interpretation of backslash-escaped characters"
+ "\t-E\tdisable interpretation of backslash-escaped characters")
#define echo_example_usage \
"$ echo "Erik is cool"\n" \
"Erik is cool\n" \
- "$ echo -e "Erik\\nis\\ncool"\n" \
+ USAGE_FANCY_ECHO("$ echo -e "Erik\\nis\\ncool"\n" \
"Erik\n" \
"is\n" \
"cool\n" \
"$ echo "Erik\\nis\\ncool"\n" \
- "Erik\\nis\\ncool\n"
+ "Erik\\nis\\ncool\n")
#define env_trivial_usage \
"[-iu] [-] [name=value]... [command]"
#define fdflush_full_usage \
"Forces floppy disk drive to detect disk change"
+#define fdformat_trivial_usage \
+ "[-n] DEVICE"
+#define fdformat_full_usage \
+ "Low-level formats a floppy disk\n\n" \
+ "Options:\n" \
+ "\t-n\tDon't verify after format"
+
+#define fdisk_trivial_usage \
+ "[-l] [-v] [-b SSZ] [-u] DISK"
+#define fdisk_full_usage \
+ "Change partition table\n" \
+ "Options:\n" \
+ "-l List partition table(s)\n" \
+ "-u Give Start and End in sector (instead of cylinder) units\n" \
+ "-s PARTITION Give partition size(s) in blocks\n" \
+ "-b 2048: (for certain MO disks) use 2048-byte sectors\n" \
+ "-v Give fdisk version"
+
#ifdef CONFIG_FEATURE_FIND_TYPE
#define USAGE_FIND_TYPE(a) a
#else
#else
#define USAGE_FIND_MTIME(a)
#endif
+#ifdef CONFIG_FEATURE_FIND_NEWER
+ #define USAGE_FIND_NEWER(a) a
+#else
+ #define USAGE_FIND_NEWER(a)
+#endif
+#ifdef CONFIG_FEATURE_FIND_INUM
+ #define USAGE_FIND_INUM(a) a
+#else
+ #define USAGE_FIND_INUM(a)
+#endif
#define find_trivial_usage \
"[PATH...] [EXPRESSION]"
) USAGE_FIND_PERM( \
"\n\t-perm PERMS\tPermissions match any of (+NNN); all of (-NNN);\n\t\t\tor exactly (NNN)" \
) USAGE_FIND_MTIME( \
- "\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days")
+ "\n\t-mtime TIME\tModified time is greater than (+N); less than (-N);\n\t\t\tor exactly (N) days" \
+) USAGE_FIND_NEWER( \
+ "\n\t-newer FILE\tModified time is more recent than FILE's" \
+) USAGE_FIND_INUM( \
+ "\n\t-inum N\t\tFile has inode number N")
#define find_example_usage \
"$ find / -name /etc/passwd\n" \
"/etc/passwd\n"
+#define fold_trivial_usage \
+ "[bsw] [FILE]"
+#define fold_full_usage \
+ "Wrap input lines in each FILE (standard input by default), writing to\n" \
+ "standard output.\n\n" \
+ "Options:\n" \
+ "\t-b\tcount bytes rather than columns\n" \
+ "\t-s\tbreak at spaces\n" \
+ "\t-w\tuse WIDTH columns instead of 80\n"
+
#define free_trivial_usage \
""
#define free_full_usage \
"\t-m\tActivates MINIX-like \"mode not cleared\" warnings\n" \
"\t-f\tForce file system check."
+#define ftpget_trivial_usage \
+ "[options] remote-host local-directory remote-file"
+#define ftpget_full_usage \
+ "Retrieve a remote file via FTP.\n\n" \
+ "Options:\n" \
+ "\t-c, --continue Continue a previous transfer\n" \
+ "\t-v, --verbose Verbose\n" \
+ "\t-u, --username Username to be used\n" \
+ "\t-p, --password Password to be used\n" \
+ "\t-P, --port Port number to be used\n"
+
+#define ftpput_trivial_usage \
+ "[options] remote-host remote-directory local-file"
+#define ftpput_full_usage \
+ "Store a local file on a remote machine via FTP.\n\n" \
+ "Options:\n" \
+ "\t-v, --verbose Verbose\n" \
+ "\t-u, --username Username to be used\n" \
+ "\t-p, --password Password to be used\n" \
+ "\t-P, --port Port number to be used\n"
+
#define getopt_trivial_usage \
"[OPTIONS]..."
#define getopt_full_usage \
"\t-L\t\tLocal line, so do not do carrier detect.\n" \
"\t-m\t\tGet baud rate from modem's CONNECT status message.\n" \
"\t-w\t\tWait for a CR or LF before sending /etc/issue.\n" \
+ "\t-n\t\tDo not prompt the user for a login name.\n" \
+ "\t-f issue_file\tDisplay issue_file instead of /etc/issue.\n" \
"\t-l login_app\tInvoke login_app instead of /bin/login.\n" \
"\t-t timeout\tTerminate after timeout if no username is read.\n" \
"\t-I initstring\tSets the init string to send before anything else.\n" \
#define halt_full_usage \
"Halt the system."
+#ifdef CONFIG_FEATURE_HDPARM_GET_IDENTITY
+#define USAGE_HDPARM_IDENT(a) a
+#else
+#define USAGE_HDPARM_IDENT(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_SCAN_HWIF
+#define USAGE_SCAN_HWIF(a) a
+#else
+#define USAGE_SCAN_HWIF(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_UNREGISTER_HWIF
+#define USAGE_UNREGISTER_HWIF(a) a
+#else
+#define USAGE_UNREGISTER_HWIF(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_DRIVE_RESET
+#define USAGE_DRIVE_RESET(a) a
+#else
+#define USAGE_DRIVE_RESET(a)
+#endif
+
+#ifdef CONFIG_FEATURE_HDPARM_HDIO_TRISTATE_HWIF
+#define USAGE_TRISTATE_HWIF(a) a
+#else
+#define USAGE_TRISTATE_HWIF(a)
+#endif
+
+#define hdparm_trivial_usage \
+ "[options] [device] .."
+#define hdparm_full_usage \
+ "Options:" \
+ " -a get/set fs readahead\n" \
+ " -A set drive read-lookahead flag (0/1)\n" \
+ " -b get/set bus state (0 == off, 1 == on, 2 == tristate)\n" \
+ " -B set Advanced Power Management setting (1-255)\n" \
+ " -c get/set IDE 32-bit IO setting\n" \
+ " -C check IDE power mode status\n" \
+ " -d get/set using_dma flag\n" \
+ " -D enable/disable drive defect-mgmt\n" \
+ " -f flush buffer cache for device on exit\n" \
+ " -g display drive geometry\n" \
+ " -h display terse usage information\n" \
+ " -i display drive identification\n" \
+ USAGE_HDPARM_IDENT(" -I detailed/current information directly from drive\n") \
+ USAGE_HDPARM_IDENT(" -Istdin similar to -I, but wants /proc/ide/" "*" "/hd?/identify as input\n") \
+ " -k get/set keep_settings_over_reset flag (0/1)\n" \
+ " -K set drive keep_features_over_reset flag (0/1)\n" \
+ " -L set drive doorlock (0/1) (removable harddisks only)\n" \
+ " -m get/set multiple sector count\n" \
+ " -n get/set ignore-write-errors flag (0/1)\n" \
+ " -p set PIO mode on IDE interface chipset (0,1,2,3,4,...)\n" \
+ " -P set drive prefetch count\n" \
+ " -q change next setting quietly\n" \
+ " -Q get/set DMA tagged-queuing depth (if supported)\n" \
+ " -r get/set readonly flag (DANGEROUS to set)\n" \
+ USAGE_SCAN_HWIF(" -R register an IDE interface (DANGEROUS)\n") \
+ " -S set standby (spindown) timeout\n" \
+ " -t perform device read timings\n" \
+ " -T perform cache read timings\n" \
+ " -u get/set unmaskirq flag (0/1)\n" \
+ USAGE_UNREGISTER_HWIF(" -U un-register an IDE interface (DANGEROUS)\n") \
+ " -v defaults; same as -mcudkrag for IDE drives\n" \
+ " -V display program version and exit immediately\n" \
+ USAGE_DRIVE_RESET(" -w perform device reset (DANGEROUS)\n") \
+ " -W set drive write-caching flag (0/1) (DANGEROUS)\n" \
+ USAGE_TRISTATE_HWIF(" -x tristate device for hotswap (0/1) (DANGEROUS)\n") \
+ " -X set IDE xfer mode (DANGEROUS)\n" \
+ " -y put IDE drive in standby mode\n" \
+ " -Y put IDE drive to sleep\n" \
+ " -Z disable Seagate auto-powersaving mode\n" \
+ " -z re-read partition table\n"
+
+#ifdef CONFIG_FEATURE_FANCY_HEAD
+#define USAGE_FANCY_HEAD(a) a
+#else
+#define USAGE_FANCY_HEAD(a)
+#endif
+
#define head_trivial_usage \
- "[OPTION] [FILE]..."
+ "[OPTION]... [FILE]..."
#define head_full_usage \
"Print first 10 lines of each FILE to standard output.\n" \
"With more than one FILE, precede each with a header giving the\n" \
"file name. With no FILE, or when FILE is -, read standard input.\n\n" \
"Options:\n" \
- "\t-n NUM\t\tPrint first NUM lines instead of first 10"
+ "\t-n NUM\t\tPrint first NUM lines instead of first 10" \
+ USAGE_FANCY_HEAD( \
+ "\n\t-c NUM\t\toutput the first NUM bytes\n" \
+ "\t-q\t\tnever output headers giving file names\n" \
+ "\t-v\t\talways output headers giving file names" )
#define head_example_usage \
"$ head -n 2 /etc/passwd\n" \
"root:x:0:0:root:/root:/bin/bash\n" \
#define hostname_example_usage \
"$ hostname\n" \
"sage \n"
-
+#ifdef CONFIG_FEATURE_HTTPD_BASIC_AUTH
+ #define USAGE_HTTPD_BASIC_AUTH(a) a
+#else
+ #define USAGE_HTTPD_BASIC_AUTH(a)
+#endif
+#define httpd_trivial_usage \
+ "[-p <port>] [-d/-e <string>]" USAGE_HTTPD_BASIC_AUTH(" [-c <conf file>] [-r <realm>]")
+#define httpd_full_usage \
+ "Listens for incoming http server requests.\n"\
+ "Options:\n" \
+ "\t-p PORT\tServer port (default 80).\n" \
+ USAGE_HTTPD_BASIC_AUTH("\t-c FILE\tSpecifies configuration file. (default httpd.conf)\n\t-r REALM\tAuthentication Realm for Basic Authentication\n") \
+ "\t-e STRING\tHtml encode STRING\n" \
+ "\t-d STRING\tURL decode STRING\n"
#define hwclock_trivial_usage \
"[-r|--show] [-s|--hctosys] [-w|--systohc] [-l|--localtime] [-u|--utc]"
#define hwclock_full_usage \
"\t-u\tthe hardware clock is kept in coordinated universal time\n" \
"\t-l\tthe hardware clock is kept in local time"
+#ifdef CONFIG_SELINUX
+#define USAGE_SELINUX(a, b) a
+#else
+#define USAGE_SELINUX(a, b) b
+#endif
+
#define id_trivial_usage \
"[OPTIONS]... [USERNAME]"
#define id_full_usage \
"Options:\n" \
"\t-g\tprints only the group ID\n" \
"\t-u\tprints only the user ID\n" \
+ USAGE_SELINUX("\t-c\tprints only the security context\n", "") \
"\t-n\tprint a name instead of a number (with for -ug)\n" \
"\t-r\tprints the real user ID instead of the effective ID (with -ug)"
#define id_example_usage \
USAGE_IFCONFIG_MII("\t[mem_start <NN>] [io_addr <NN>] [irq <NN>]\n") \
"\t[up|down] ..."
+#define ifup_trivial_usage \
+ "<-ahinv> <ifaces...>"
+#define ifup_full_usage \
+ "Usage: ifup <options> <ifaces...>\n\n" \
+ "Options:\n" \
+ "\t-h\tthis help\n" \
+ "\t-a\tde/configure all interfaces automatically\n" \
+ "\t-i FILE\tuse FILE for interface definitions\n" \
+ "\t-n\tprint out what would happen, but don't do it\n" \
+ "\t\t\t(note that this option doesn't disable mappings)\n" \
+ "\t-v\tprint out what would happen before doing it\n" \
+ "\t-m\tdon't run any mappings\n" \
+ "\t-f\tforce de/configuration\n"
+
+#define ifdown_trivial_usage \
+ "<-ahinv> <ifaces...>"
+#define ifdown_full_usage \
+ "Usage: ifdown <options> <ifaces...>\n\n" \
+ "Options:\n" \
+ "\t-h\tthis help\n" \
+ "\t-a\tde/configure all interfaces automatically\n" \
+ "\t-i FILE\tuse FILE for interface definitions\n" \
+ "\t-n\tprint out what would happen, but don't do it\n" \
+ "\t\t(note that this option doesn't disable mappings)\n" \
+ "\t-v\tprint out what would happen before doing it\n" \
+ "\t-m\tdon't run any mappings\n" \
+ "\t-f\tforce de/configuration\n"
+
+#define inetd_trivial_usage \
+ "[-q len] [conf]"
+#define inetd_full_usage \
+ "Usage: [-q len] [conf]\n\n" \
+ "Option:\n" \
+ "\t-q\tSets the size of the socket listen queue to\n" \
+ "the specified value. Default is 128."
+
#define init_trivial_usage \
""
#define init_full_usage \
"\n" \
" Unrecognized actions (like initdefault) will cause init to emit an\n" \
" error message, and then go along with its business. All actions are\n" \
-" run in the reverse order from how they appear in /etc/inittab.\n" \
+" run in the order they appear in /etc/inittab.\n" \
"\n" \
" <process>: \n" \
"\n" \
" \n" \
" # /sbin/getty invocations for selected ttys\n" \
" #\n" \
-" tty4::respawn:/sbin/getty 38400 tty5\n" \
-" tty5::respawn:/sbin/getty 38400 tty6\n" \
+" tty4::respawn:/sbin/getty 38400 tty4\n" \
+" tty5::respawn:/sbin/getty 38400 tty5\n" \
" \n" \
" \n" \
" # Example of how to put a getty on a serial line (for a terminal)\n" \
" ::shutdown:/bin/umount -a -r\n" \
" ::shutdown:/sbin/swapoff -a\n"
+#ifdef CONFIG_FEATURE_INSMOD_LOAD_MAP
+ #define USAGE_INSMOD_MAP(a) a
+#else
+ #define USAGE_INSMOD_MAP(a)
+#endif
#define insmod_trivial_usage \
"[OPTION]... MODULE [symbol=value]..."
#define insmod_full_usage \
"\t-k\tMake module autoclean-able.\n" \
"\t-v\tverbose output\n" \
"\t-L\tLock to prevent simultaneous loads of a module\n" \
- "\t-x\tdo not export externs"
+ USAGE_INSMOD_MAP("\t-m\tOutput load map to stdout") \
+ "\t-x\tdo not export externs\n"
+
+#define ip_trivial_usage \
+ "[ OPTIONS ] { address | link | route | tunnel } { COMMAND | help }"
+#define ip_full_usage \
+ "ip [ OPTIONS ] OBJECT { COMMAND | help }\n" \
+ "where OBJECT := { link | addr | route | tunnel }\n" \
+ "OPTIONS := { -f[amily] { inet | inet6 | link } | -o[neline] }\n"
+
+#define ipaddr_trivial_usage \
+ "{ {add|del} IFADDR dev STRING | {show|flush} [ dev STRING ] [ to PREFIX ] }"
+#define ipaddr_full_usage \
+ "ipaddr {add|del} IFADDR dev STRING\n" \
+ "ipaddr {show|flush} [ dev STRING ] [ scope SCOPE-ID ]\n" \
+ " [ to PREFIX ] [ label PATTERN ]\n" \
+ "IFADDR := PREFIX | ADDR peer PREFIX\n" \
+ " [ broadcast ADDR ] [ anycast ADDR ]\n" \
+ " [ label STRING ] [ scope SCOPE-ID ]\n" \
+ "SCOPE-ID := [ host | link | global | NUMBER ]\n"
+
+#ifndef CONFIG_FEATURE_IPCALC_FANCY
+# define ipcalc_trivial_usage \
+ "[--broadcast] [--netmask] [--network] ipaddr <netmask>"
+
+# define ipcalc_full_usage \
+ "Calculate IP network settings from a IP address\n\n" \
+ "Options:\n" \
+ "\t-b\t--broadcast\tDisplay calculated broadcast address.\n" \
+ "\t-n\t--netmask\tDisplay default netmask for IP.\n" \
+ "\t-w\t--network\tDisplay calculated network address."
+#else
+# define ipcalc_trivial_usage \
+ "[OPTION]... ipaddr <netmask>"
+
+# define ipcalc_full_usage \
+ "Calculate IP network settings from a IP address\n\n" \
+ "Options:\n" \
+ "\t-b\t--broadcast\tDisplay calculated broadcast address.\n" \
+ "\t-n\t--netmask\tDisplay default netmask for IP.\n" \
+ "\t-w\t--network\tDisplay calculated network address.\n" \
+ "\t-h\t--hostname\tDisplay first resolved host name.\n" \
+ "\t-s\t--silent\tDon't ever display error messages."
+#endif
+
+#define ipcalc_notes_usage \
+ "ipcalc provides a simple way to calculate IP information for\n" \
+ "a host. The various options specify what information ipcalc\n" \
+ "should display on standard out. Multiple options may be\n" \
+ "specified.\n"
+
+#define iplink_trivial_usage \
+ "{ set DEVICE { up | down | arp { on | off } | show [ DEVICE ] }"
+#define iplink_full_usage \
+ "iplink set DEVICE { up | down | arp { on | off } |\n" \
+ " dynamic { on | off } |\n" \
+ " mtu MTU }\n" \
+ "iplink show [ DEVICE ]\n"
+
+#define iproute_trivial_usage \
+ "{ list | flush | { add | del | change | append | replace | monitor } ROUTE }"
+#define iproute_full_usage \
+ "iproute { list | flush } SELECTOR\n" \
+ "iproute get ADDRESS [ from ADDRESS iif STRING ]\n" \
+ " [ oif STRING ] [ tos TOS ]\n" \
+ "iproute { add | del | change | append | replace | monitor } ROUTE\n" \
+ "SELECTOR := [ root PREFIX ] [ match PREFIX ] [ proto RTPROTO ]\n" \
+ "ROUTE := [ TYPE ] PREFIX [ tos TOS ] [ proto RTPROTO ]\n"
+
+#define iptunnel_trivial_usage \
+ "{ add | change | del | show } [ NAME ] [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ] [ ttl TTL ]"
+#define iptunnel_full_usage \
+ "iptunnel { add | change | del | show } [ NAME ]\n" \
+ " [ mode { ipip | gre | sit } ] [ remote ADDR ] [ local ADDR ]\n" \
+ " [ [i|o]seq ] [ [i|o]key KEY ] [ [i|o]csum ]\n" \
+ " [ ttl TTL ] [ tos TOS ] [ [no]pmtudisc ] [ dev PHYS_DEV ]\n"
#define kill_trivial_usage \
"[-signal] process-id [process-id ...]"
"$ killall apache\n"
#define klogd_trivial_usage \
- "-n"
+ "[-c n] [-n]"
#define klogd_full_usage \
"Kernel logger.\n"\
"Options:\n"\
+ "\t-c n\tSets the default log level of console messages to n.\n"\
"\t-n\tRun as a foreground process."
#define length_trivial_usage \
#define USAGE_AUTOWIDTH(a)
#endif
#define ls_trivial_usage \
- "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h") USAGE_NOT_HUMAN_READABLE("") "k] [filenames...]"
+ "[-1Aa" USAGE_LS_TIMESTAMPS("c") "Cd" USAGE_LS_TIMESTAMPS("e") USAGE_LS_FILETYPES("F") "iln" USAGE_LS_FILETYPES("p") USAGE_LS_FOLLOWLINKS("L") USAGE_LS_RECURSIVE("R") USAGE_LS_SORTFILES("rS") "s" USAGE_AUTOWIDTH("T") USAGE_LS_TIMESTAMPS("tu") USAGE_LS_SORTFILES("v") USAGE_AUTOWIDTH("w") "x" USAGE_LS_SORTFILES("X") USAGE_HUMAN_READABLE("h") USAGE_NOT_HUMAN_READABLE("") "k" USAGE_SELINUX("K", "") "] [filenames...]"
#define ls_full_usage \
"List directory contents\n\n" \
"Options:\n" \
USAGE_LS_SORTFILES("\t-X\tsort the listing by extension\n") \
USAGE_HUMAN_READABLE( \
"\t-h\tprint sizes in human readable format (e.g., 1K 243M 2G )\n" \
- "\t-k\tprint sizes in kilobytes(default)") USAGE_NOT_HUMAN_READABLE( \
- "\t-k\tprint sizes in kilobytes(compatibility)")
+ USAGE_SELINUX("\t-k\tprint security context\n\t-K\tprint security context in long format\n", ""))
#define lsmod_trivial_usage \
""
"\ty\tAllow write access to your terminal.\n" \
"\tn\tDisallow write access to your terminal.\n"
+#define minit_trivial_usage \
+ "[-spPrRC]"
+#define minit_full_usage \
+ "[-spPrRC]"
+
#define mkdir_trivial_usage \
"[OPTION] DIRECTORY..."
#define mkdir_full_usage \
"$ mount /dev/fd0 /mnt -t msdos -o ro\n" \
"$ mount /tmp/diskimage /opt -t ext2 -o loop\n"
+#define msvc_trivial_usage \
+ "-[udorspchaitkx] service"
+#define msvc_full_usage \
+ "[option] service\n" \
+ "Where option is one of\n" \
+ "\t-u\tUp. If the service is not running, start it. If the service stops, restart it.\n" \
+ "\t-d\tDown. If the service is running, stop it, do not restart it.\n" \
+ "\t-o\tOnce. If the service is not running, start it. Do not restart it if it stops.\n" \
+ "\t-r\tTell supervise that the service is normally running; this affects status messages.\n" \
+ "\t-s\tTell supervise that the service is normally stopped; this affects status messages.\n" \
+ "\t-p\tPause. Send the service a STOP signal.\n" \
+ "\t-c\tContinue. Send the service a CONT signal.\n" \
+ "\t-h\tHangup. Send the service a HUP signal.\n" \
+ "\t-a\tAlarm. Send the service an ALRM signal.\n" \
+ "\t-i\tInterrupt. Send the service an INT signal.\n" \
+ "\t-t\tTerminate. Send the service a TERM signal.\n" \
+ "\t-k\tKill. Send the service a KILL signal.\n" \
+ "\t-x\tExit. supervise will quit as soon as the service is down.\n"
+
#define mt_trivial_usage \
"[-f device] opcode value"
#define mt_full_usage \
#define mv_example_usage \
"$ mv /tmp/foo /bin/bar\n"
+#define nameif_trivial_usage \
+ "[-s] [-c FILE] [{IFNAME MACADDR}]"
+#define nameif_full_usage \
+ "Nameif renaming network interface while it in the down state.\n\n" \
+ "Options:\n" \
+ "\t-c FILE\t\tUse configuration file (default is /etc/mactab)\n" \
+ "\t-s\t\tUse syslog (LOCAL0 facility).\n" \
+ "\tIFNAME MACADDR\tnew_interface_name interface_mac_address\n"
+#define nameif_example_usage \
+ "$ nameif -s dmz0 00:A0:C9:8C:F6:3F\n" \
+ " or\n" \
+ "$ nameif -c /etc/my_mactab_file\n" \
+
#define nc_trivial_usage \
"[OPTIONS] [IP] [port]"
#define nc_full_usage \
"\t-l\tLocks (disables) the specified user account.\n" \
"\t-u\tUnlocks (re-enables) the specified user account."
+#define patch_trivial_usage \
+ "[-p<num>]"
+#define patch_full_usage \
+ "[-p<num>]"
+#define patch_example_usage \
+ "$ patch -p1 <example.diff"
+
+#define pidfilehack_trivial_usage \
+ "[daemon.pid] [daemon]"
+#define pidfilehack_full_usage \
+ "service /var/run/daemon.pid /usr/sbin/daemon args...\n"
+
#define pidof_trivial_usage \
"process-name [process-name ...]"
#define pidof_full_usage \
""
#define ps_full_usage \
"Report process status\n" \
- "\nThis version of ps accepts no options."
+ USAGE_SELINUX("\nOptions:\n\t-c\tshow SE Linux context", "\nThis version of ps accepts no options.")
+
#define ps_example_usage \
"$ ps\n" \
" PID Uid Gid State Command\n" \
"/root\n"
#define rdate_trivial_usage \
- "[OPTION] HOST"
+ "[-sp] HOST"
#define rdate_full_usage \
"Get and possibly set the system date and time from a remote HOST.\n\n" \
"Options:\n" \
#define readlink_full_usage \
"Read a symbolic link."
+#define realpath_trivial_usage \
+ "pathname ..."
+#define realpath_full_usage \
+ "return the canonicalized absolute pathnames of given arguments\n\n"
+
#define reboot_trivial_usage \
""
#define reboot_full_usage \
"Remove (unlink) the FILE(s). You may use '--' to\n" \
"indicate that all following arguments are non-options.\n\n" \
"Options:\n" \
- "\t-i\t\talways prompt before removing each destination" \
+ "\t-i\t\talways prompt before removing each destination\n" \
"\t-f\t\tremove existing destinations, never prompt\n" \
"\t-r or -R\tremove the contents of directories recursively"
#define rm_example_usage \
#define rmmod_full_usage \
"Unloads the specified kernel modules from the kernel.\n\n" \
"Options:\n" \
- "\t-a\tTry to remove all unused kernel modules."
+ "\t-a\tRemove all unused modules (recursively)"
#define rmmod_example_usage \
"$ rmmod tulip\n"
"\t-n\tDont resolve names.\n" \
"\t-e\tDisplay other/more information"
+#define rpm_trivial_usage \
+ "-i -q[ildc]p package.rpm"
+#define rpm_full_usage \
+ "Manipulates RPM packages" \
+ "\n\nOptions:" \
+ "\n\t-i Install package" \
+ "\n\t-q Query package" \
+ "\n\t-p Query uninstalled package" \
+ "\n\t-i Show information" \
+ "\n\t-l List contents" \
+ "\n\t-d List documents" \
+ "\n\t-c List config files"
+
#define rpm2cpio_trivial_usage \
"package.rpm"
#define rpm2cpio_full_usage \
"use ash or bash. If you just need a very simple and extremely small shell,\n" \
"this will do the job."
+#define sha1sum_trivial_usage \
+ "[OPTION] [FILE]"
+#define sha1sum_full_usage \
+ "[OPTION] [FILE]"
+
+#ifdef CONFIG_FEATURE_FANCY_SLEEP
+ #define USAGE_FANCY_SLEEP(a) a
+ #define USAGE_NOT_FANCY_SLEEP(a)
+#else
+ #define USAGE_FANCY_SLEEP(a)
+ #define USAGE_NOT_FANCY_SLEEP(a) a
+#endif
+
#define sleep_trivial_usage \
- "N"
+ USAGE_FANCY_SLEEP("[") "N" USAGE_FANCY_SLEEP("]...")
#define sleep_full_usage \
- "Pause for N seconds."
+ USAGE_NOT_FANCY_SLEEP("Pause for N seconds.") \
+ USAGE_FANCY_SLEEP( \
+"Pause for a time equal to the total of the args given, where each arg can\n" \
+"have an optional suffix of (s)econds, (m)inutes, (h)ours, or (d)ays.")
#define sleep_example_usage \
"$ sleep 2\n" \
- "[2 second delay results]\n"
-
+ "[2 second delay results]\n" \
+ USAGE_FANCY_SLEEP("$ sleep 1d 3h 22m 8s\n" \
+ "[98528 second delay results]\n")
#ifdef CONFIG_FEATURE_SORT_UNIQUE
#define USAGE_SORT_UNIQUE(a) a
"Options:\n" \
"-S\t\t\tstart\n"\
"-K\t\t\tstop\n"\
+ "-b\t\t\tforce process into background (daemonize)\n"\
"-x <executable>\t\tprogram to start/check if it is running\n"\
- "-p <pid-file>\t\tpid file to check\n"\
"-u <username>|<uid>\tstop this user's processes\n"\
"-n <process-name>\tstop processes with this name\n"\
"-s <signal>\t\tsignal to send (default 15)\n"\
"-a <pathname>\t\tprogram to start (default <executable>)\n"
+#define strings_trivial_usage \
+ "[-afo] [-n length] [file ... ]"
+#define strings_full_usage \
+ "Display printable strings in a binary file." \
+ "\n\nOptions:" \
+ "\n\t-f\tPrecede each string with the name of the file where it was found." \
+ "\n\t-n N\tSpecifies that at least N characters forms a sequence (default 4)" \
+ "\n\t-o\tEach string is preceded by its decimal offset in the file."
+
#define stty_trivial_usage \
"[-a|g] [-F DEVICE] [SETTING]..."
#define stty_full_usage \
#else
#define USAGE_TAR_EXCLUDE(a)
#endif
+#ifdef CONFIG_FEATURE_TAR_GZIP
+ #define USAGE_TAR_GZIP(a) a
+#else
+ #define USAGE_TAR_GZIP(a)
+#endif
+#ifdef CONFIG_FEATURE_TAR_BZIP2
+ #define USAGE_TAR_BZIP2(a) a
+#else
+ #define USAGE_TAR_BZIP2(a)
+#endif
+
#define tar_trivial_usage \
- "-[" USAGE_TAR_CREATE("c") "xtvO] " \
+ "-[" USAGE_TAR_CREATE("c") USAGE_TAR_GZIP("z") USAGE_TAR_BZIP2("j") "xtvO] " \
USAGE_TAR_EXCLUDE("[--exclude FILE] [-X FILE]") \
"[-f TARFILE] [-C DIR] [FILE(s)] ..."
#define tar_full_usage \
USAGE_TAR_CREATE("\tc\t\tcreate\n") \
"\tx\t\textract\n" \
"\tt\t\tlist\n" \
+ "\nArchive format selection:\n" \
+ USAGE_TAR_GZIP("\tz\t\tFilter the archive through gzip\n") \
+ USAGE_TAR_BZIP2("\tj\t\tFilter the archive through bzip2\n") \
"\nFile selection:\n" \
"\tf\t\tname of TARFILE or \"-\" for stdin\n" \
"\tO\t\textract to stdout\n" \
#define tee_full_usage \
"Copy standard input to each FILE, and also to standard output.\n\n" \
"Options:\n" \
- "\t-a\tappend to the given FILEs, do not overwrite"
+ "\t-a\tappend to the given FILEs, do not overwrite\n" \
+ "\t-i\tignore interrupt signals (SIGINT)"
#define tee_example_usage \
"$ echo "Hello" | tee /tmp/foo\n" \
"$ cat /tmp/foo\n" \
"Telnet is used to establish interactive communication with another\n"\
"computer over a network using the TELNET protocol."
+#ifdef CONFIG_FEATURE_TELNETD_INETD
+#define telnetd_trivial_usage \
+ "(inetd mode) [OPTION]"
+#define telnetd_full_usage \
+ "Telnetd uses incoming TELNET connections via inetd.\n"\
+ "Options:\n" \
+ "\t-l LOGIN\texec LOGIN on connect (default /bin/sh)"
+#else
+#define telnetd_trivial_usage \
+ "[OPTION]"
+#define telnetd_full_usage \
+ "Telnetd listens for incoming TELNET connections on PORT.\n"\
+ "Options:\n" \
+ "\t-p PORT\tlisten for connections on PORT (default 23)\n"\
+ "\t-l LOGIN\texec LOGIN on connect (default /bin/sh)"
+#endif
+
#define test_trivial_usage \
"EXPRESSION\n or [ EXPRESSION ]"
#define test_full_usage \
"Options:\n" \
"\t-v\tDisplays verbose resource usage information."
+#define top_trivial_usage \
+ "[-d <seconds>]"
+#define top_full_usage \
+ "top provides an view of processor activity in real time.\n" \
+ "This utility reads the status for all processes in /proc each <seconds>\n" \
+ "and shows the status for however many processes will fit on the screen.\n" \
+ "This utility will not show processes that are started after program startup,\n" \
+ "but it will show the EXIT status for and PIDs that exit while it is running."
+
#define touch_trivial_usage \
"[-c] FILE [FILE ...]"
#define touch_full_usage \
"/dev/tty2\n"
#define udhcpc_trivial_usage \
- "[-fqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n[-p file] [-r IP] [-s script]"
+ "[-fbnqv] [-c CLIENTID] [-H HOSTNAME] [-i INTERFACE]\n[-p pidfile] [-r IP] [-s script]"
#define udhcpc_full_usage \
- "\tUsage: udhcpcd [OPTIONS]\n" \
"\t-c,\t--clientid=CLIENTID\tClient identifier\n" \
"\t-H,\t--hostname=HOSTNAME\tClient hostname\n" \
+ "\t-h,\t \tAlias for -H\n" \
"\t-f,\t--foreground\tDo not fork after getting lease\n" \
+ "\t-b,\t--background\tFork to background if lease cannot be immediately negotiated.\n" \
"\t-i,\t--interface=INTERFACE\tInterface to use (default: eth0)\n" \
"\t-n,\t--now\tExit with failure if lease cannot be immediately negotiated.\n" \
"\t-p,\t--pidfile=file\tStore process ID of daemon in file\n" \
"\t-s,\t--script=file\tRun file at dhcp events (default: /usr/share/udhcpc/default.script)\n" \
"\t-v,\t--version\tDisplay version"
+#define udhcpd_trivial_usage \
+ "[configfile]\n" \
+
+#define udhcpd_full_usage \
+ ""
+
#ifdef CONFIG_FEATURE_MOUNT_FORCE
#define USAGE_MOUNT_FORCE(a) a
#else
"$ uname -a\n" \
"Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown\n"
+#define uncompress_trivial_usage \
+ "[-c] [-f] [ name ... ]"
+#define uncompress_full_usage \
+ "Uncompress .Z file[s]\n" \
+ "Options:\n" \
+ "\t-c\textract to stdout\n" \
+ "\t-f\tforce overwrite an existing file\n"
+
#define uniq_trivial_usage \
"[OPTION]... [INPUT [OUTPUT]]"
#define uniq_full_usage \
"Options:\n" \
"\t-c\tprefix lines by the number of occurrences\n" \
"\t-d\tonly print duplicate lines\n" \
- "\t-u\tonly print unique lines"
+ "\t-u\tonly print unique lines\n" \
+ "\t-f N\tskip the first N fields\n" \
+ "\t-s N\tskip the first N chars (after any skipped fields)"
#define uniq_example_usage \
"$ echo -e \"a\\na\\nb\\nc\\nc\\na\" | sort | uniq\n" \
"a\n" \
"\t-x\texclude these files\n" \
"\t-d\textract files into this directory"
-#define update_trivial_usage \
- "[options]"
-#define update_full_usage \
- "Periodically flushes filesystem buffers.\n\n" \
- "Options:\n" \
- "\t-S\tforce use of sync(2) instead of flushing\n" \
- "\t-s SECS\tcall sync this often (default 30)\n" \
- "\t-f SECS\tflush some buffers this often (default 5)"
-
#define uptime_trivial_usage \
""
#define uptime_full_usage \
"$ uudecode busybox busybox > busybox.uu\n" \
"$\n"
+#define vconfig_trivial_usage \
+ "COMMAND [OPTIONS] ..."
+
+#define vconfig_full_usage \
+"Usage: add [interface-name] [vlan_id] \n" \
+" rem [vlan-name] \n" \
+" set_flag [interface-name] [flag-num] [0 | 1] \n" \
+" set_egress_map [vlan-name] [skb_priority] [vlan_qos] \n" \
+" set_ingress_map [vlan-name] [skb_priority] [vlan_qos] \n" \
+" set_name_type [name-type] \n"
+
#define vi_trivial_usage \
"[OPTION] [FILE]..."
#define vi_full_usage \
"Mon Dec 17 10:31:44 GMT 2000"
#define watchdog_trivial_usage \
- "DEV"
+ "[-t <seconds>] DEV"
#define watchdog_full_usage \
- "Periodically write to watchdog device DEV"
+ "Periodically write to watchdog device DEV.\n" \
+ "Options:\n" \
+ "\t-t\tTimer period in seconds - default is 30."
#define wc_trivial_usage \
"[OPTION]... [FILE]..."
#define which_example_usage \
"$ which login\n" \
"/bin/login\n"
+
#define who_trivial_usage \
" "
#define who_full_usage \
"Prints the user name associated with the current effective user id."
#define xargs_trivial_usage \
- "[COMMAND] [ARGS...]"
+ "[COMMAND] [-prt] [ARGS...]"
#define xargs_full_usage \
- "Executes COMMAND on every item given by standard input."
+ "Executes COMMAND on every item given by standard input.\n\n" \
+ "Options:\n" \
+ "\t-p\tPrompt the user about whether to run each command\n" \
+ "\t-r\tDo not run command for empty readed lines\n" \
+ "\t-t\tPrint the command line on stderr before executing it."
#define xargs_example_usage \
"$ ls | xargs gzip\n" \
"$ find . -name '*.c' -print | xargs rm\n"