More updates to the docs, and fixes to sync things with the docs.

-Erik
This commit is contained in:
Erik Andersen 2000-04-17 16:16:10 +00:00
parent 4fd10fc73b
commit e5b6c7dd9c
17 changed files with 182 additions and 65 deletions

View File

@ -1,4 +1,5 @@
0.43
* Major update to the provided documentation.
* Busybox now includes a shell! It currently costs 7.5 k (plus an
additional 2.5 k if you compile in command line editing). Handles
job control, has the usual set of builtins, and does everything

View File

@ -25,8 +25,8 @@
#include <sys/types.h>
static const char tty_usage[] = "tty\n\n"
"Print the file name of the terminal connected to standard input.\n"
"Print the file name of the terminal connected to standard input.\n\n"
"Options:\n"
"\t-s\tprint nothing, only return an exit status\n";
extern int tty_main(int argc, char **argv)

View File

@ -28,15 +28,9 @@
#include <errno.h>
static const char uniq_usage[] =
"uniq [OPTION]... [INPUT [OUTPUT]]\n"
"Discard all but one of successive identical lines from INPUT (or\n"
"standard input), writing to OUTPUT (or standard output).\n"
"\n"
"\t-h\tdisplay this help and exit\n"
"\n"
"A field is a run of whitespace, then non-whitespace characters.\n"
"Fields are skipped before chars.\n";
"uniq [OPTION]... [INPUT [OUTPUT]]\n\n"
"Discard all but one of successive identical lines from INPUT\n"
"(or standard input), writing to OUTPUT (or standard output).\n";
/* max chars in line */
#define UNIQ_MAX 4096
@ -190,4 +184,4 @@ int uniq_main(int argc, char **argv)
exit(0);
}
/* $Id: uniq.c,v 1.8 2000/04/13 01:18:56 erik Exp $ */
/* $Id: uniq.c,v 1.9 2000/04/17 16:16:10 erik Exp $ */

View File

@ -25,7 +25,8 @@
static const char wc_usage[] = "wc [OPTION]... [FILE]...\n\n"
"Print line, word, and byte counts for each FILE, and a total line if\n"
"more than one FILE is specified. With no FILE, read standard input.\n"
"more than one FILE is specified. With no FILE, read standard input.\n\n"
"Options:\n"
"\t-c\tprint the byte counts\n"
"\t-l\tprint the newline counts\n"

View File

@ -25,9 +25,7 @@
#include <pwd.h>
static const char whoami_usage[] = "whoami\n\n"
"Print the user name associated with the current effective user id.\n"
"Same as id -un.\n";
"Prints the user name associated with the current effective user id.\n";
extern int whoami_main(int argc, char **argv)
{

View File

@ -27,12 +27,18 @@ extern int yes_main(int argc, char **argv)
{
int i;
if (argc == 1)
if (argc >=1 && *argv[1]=='-') {
usage("yes [OPTION]... [STRING]...\n\n"
"Repeatedly outputs a line with all specified STRING(s), or `y'.\n");
}
if (argc == 1) {
while (1)
if (puts("y") == EOF) {
perror("yes");
exit(FALSE);
}
}
while (1)
for (i = 1; i < argc; i++)

View File

@ -1290,6 +1290,10 @@ Example:
=item sh
Usage: sh
lash -- the BusyBox LAme SHell (command interpreter)
FIXME
-------------------------------
@ -1528,9 +1532,7 @@ Example:
=item tr
Usage:
tr [-csu] string1 string2
Usage: tr [-csu] string1 string2
tr [-cu] -d string1
tr [-cu] -s string1
tr [-cu] -ds string1 string2
@ -1559,67 +1561,162 @@ Example:
=item tty
FIXME
Usage: tty
Print the file name of the terminal connected to standard input.
Options:
-s print nothing, only return an exit status
Example:
$ tty
/dev/tty2
-------------------------------
=item umount
FIXME
Usage: umount [flags] filesystem|directory
Flags:
-a: Unmount all file systems
-r: Try to remount devices as read-only if mount is busy
-f: Do not free loop device (if a loop device has been used)
Example:
$ umount /dev/hdc1
-------------------------------
=item uname
FIXME
Usage: uname [OPTION]...
Print certain system information. With no OPTION, same as -s.
Options:
-a print all information
-m the machine (hardware) type
-n print the machine's network node hostname
-r print the operating system release
-s print the operating system name
-p print the host processor type
-v print the operating system version
Example:
$ uname -a
Linux debian 2.2.15pre13 #5 Tue Mar 14 16:03:50 MST 2000 i686 unknown
-------------------------------
=item uniq
FIXME
Usage: uniq [OPTION]... [INPUT [OUTPUT]]
Discard all but one of successive identical lines from INPUT
(or standard input), writing to OUTPUT (or standard output).
Example:
$ echo -e "a\na\nb\nc\nc\na" | sort | uniq
a
b
c
-------------------------------
=item update
FIXME
Usage: update [options]
Periodically flushes filesystem buffers.
Options:
-S force use of sync(2) instead of flushing
-s SECS call sync this often (default 30)
-f SECS flush some buffers this often (default 5)
-------------------------------
=item uptime
FIXME
Usage: uptime
Tells how long the system has been running since boot.
Example:
$ uptime
1:55pm up 2:30, load average: 0.09, 0.04, 0.00
-------------------------------
=item usleep
FIXME
Usage: usleep N
Pauses for N microseconds.
Example:
$ usleep 1000000
[pauses for 1 second]
-------------------------------
=item wc
FIXME
Usage: wc [OPTION]... [FILE]...
Print line, word, and byte counts for each FILE, and a total line if
more than one FILE is specified. With no FILE, read standard input.
Options:
-c print the byte counts
-l print the newline counts
-L print the length of the longest line
-w print the word counts
Example:
$ wc /etc/passwd
31 46 1365 /etc/passwd
-------------------------------
=item whoami
FIXME
Usage: whoami
Prints the user name associated with the current effective user id.
Example:
$ whoami
andersen
-------------------------------
=item yes
FIXME
Usage: yes [OPTION]... [STRING]...
Repeatedly outputs a line with all specified STRING(s), or `y'.
-------------------------------
=item zcat
FIXME
This is essentially an alias for invoking "gunzip -c", where
it decompresses the file inquestion and send the output to stdout.
-------------------------------
@ -1684,4 +1781,4 @@ Enrique Zanardi <ezanardi@ull.es>
=cut
# $Id: busybox.pod,v 1.12 2000/04/17 05:13:59 beppu Exp $
# $Id: busybox.pod,v 1.13 2000/04/17 16:16:10 erik Exp $

5
lash.c
View File

@ -961,9 +961,12 @@ int shell_main(int argc, char **argv)
fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT);
fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n");
} else {
if (*argv[1]=='-') {
usage("sh\n\nlash -- the BusyBox LAme SHell (command interpreter)\n");
}
input = fopen(argv[1], "r");
if (!input) {
fatalError("A: Couldn't open file '%s': %s\n", argv[1],
fatalError("sh: Couldn't open file '%s': %s\n", argv[1],
strerror(errno));
}
}

View File

@ -35,10 +35,12 @@ _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */
static char update_usage[] =
"update [options]\n"
" -S\tforce use of sync(2) instead of flushing\n"
" -s SECS\tcall sync this often (default 30)\n"
" -f SECS\tflush some buffers this often (default 5)\n";
"update [options]\n\n"
"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)\n";
static unsigned int sync_duration = 30;
static unsigned int flush_duration = 5;
@ -48,6 +50,8 @@ extern int update_main(int argc, char **argv)
{
int pid;
argc--;
argv++;
while (**argv == '-') {
while (*++(*argv)) {
switch (**argv) {
@ -62,6 +66,8 @@ extern int update_main(int argc, char **argv)
if (--argc < 1) usage(update_usage);
flush_duration = atoi(*(++argv));
break;
default:
usage(update_usage);
}
}
argc--;
@ -100,7 +106,7 @@ extern int update_main(int argc, char **argv)
}
}
}
return TRUE;
exit( TRUE);
}
/*

5
sh.c
View File

@ -961,9 +961,12 @@ int shell_main(int argc, char **argv)
fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT);
fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n");
} else {
if (*argv[1]=='-') {
usage("sh\n\nlash -- the BusyBox LAme SHell (command interpreter)\n");
}
input = fopen(argv[1], "r");
if (!input) {
fatalError("A: Couldn't open file '%s': %s\n", argv[1],
fatalError("sh: Couldn't open file '%s': %s\n", argv[1],
strerror(errno));
}
}

View File

@ -961,9 +961,12 @@ int shell_main(int argc, char **argv)
fprintf(stdout, "\n\nBusyBox v%s (%s) Built-in shell\n", BB_VER, BB_BT);
fprintf(stdout, "Enter 'help' for a list of built-in commands.\n\n");
} else {
if (*argv[1]=='-') {
usage("sh\n\nlash -- the BusyBox LAme SHell (command interpreter)\n");
}
input = fopen(argv[1], "r");
if (!input) {
fatalError("A: Couldn't open file '%s': %s\n", argv[1],
fatalError("sh: Couldn't open file '%s': %s\n", argv[1],
strerror(errno));
}
}

4
tty.c
View File

@ -25,8 +25,8 @@
#include <sys/types.h>
static const char tty_usage[] = "tty\n\n"
"Print the file name of the terminal connected to standard input.\n"
"Print the file name of the terminal connected to standard input.\n\n"
"Options:\n"
"\t-s\tprint nothing, only return an exit status\n";
extern int tty_main(int argc, char **argv)

14
uniq.c
View File

@ -28,15 +28,9 @@
#include <errno.h>
static const char uniq_usage[] =
"uniq [OPTION]... [INPUT [OUTPUT]]\n"
"Discard all but one of successive identical lines from INPUT (or\n"
"standard input), writing to OUTPUT (or standard output).\n"
"\n"
"\t-h\tdisplay this help and exit\n"
"\n"
"A field is a run of whitespace, then non-whitespace characters.\n"
"Fields are skipped before chars.\n";
"uniq [OPTION]... [INPUT [OUTPUT]]\n\n"
"Discard all but one of successive identical lines from INPUT\n"
"(or standard input), writing to OUTPUT (or standard output).\n";
/* max chars in line */
#define UNIQ_MAX 4096
@ -190,4 +184,4 @@ int uniq_main(int argc, char **argv)
exit(0);
}
/* $Id: uniq.c,v 1.8 2000/04/13 01:18:56 erik Exp $ */
/* $Id: uniq.c,v 1.9 2000/04/17 16:16:10 erik Exp $ */

View File

@ -35,10 +35,12 @@ _syscall2(int, bdflush, int, func, int, data);
#endif /* __GLIBC__ */
static char update_usage[] =
"update [options]\n"
" -S\tforce use of sync(2) instead of flushing\n"
" -s SECS\tcall sync this often (default 30)\n"
" -f SECS\tflush some buffers this often (default 5)\n";
"update [options]\n\n"
"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)\n";
static unsigned int sync_duration = 30;
static unsigned int flush_duration = 5;
@ -48,6 +50,8 @@ extern int update_main(int argc, char **argv)
{
int pid;
argc--;
argv++;
while (**argv == '-') {
while (*++(*argv)) {
switch (**argv) {
@ -62,6 +66,8 @@ extern int update_main(int argc, char **argv)
if (--argc < 1) usage(update_usage);
flush_duration = atoi(*(++argv));
break;
default:
usage(update_usage);
}
}
argc--;
@ -100,7 +106,7 @@ extern int update_main(int argc, char **argv)
}
}
}
return TRUE;
exit( TRUE);
}
/*

3
wc.c
View File

@ -25,7 +25,8 @@
static const char wc_usage[] = "wc [OPTION]... [FILE]...\n\n"
"Print line, word, and byte counts for each FILE, and a total line if\n"
"more than one FILE is specified. With no FILE, read standard input.\n"
"more than one FILE is specified. With no FILE, read standard input.\n\n"
"Options:\n"
"\t-c\tprint the byte counts\n"
"\t-l\tprint the newline counts\n"

View File

@ -25,9 +25,7 @@
#include <pwd.h>
static const char whoami_usage[] = "whoami\n\n"
"Print the user name associated with the current effective user id.\n"
"Same as id -un.\n";
"Prints the user name associated with the current effective user id.\n";
extern int whoami_main(int argc, char **argv)
{

8
yes.c
View File

@ -27,12 +27,18 @@ extern int yes_main(int argc, char **argv)
{
int i;
if (argc == 1)
if (argc >=1 && *argv[1]=='-') {
usage("yes [OPTION]... [STRING]...\n\n"
"Repeatedly outputs a line with all specified STRING(s), or `y'.\n");
}
if (argc == 1) {
while (1)
if (puts("y") == EOF) {
perror("yes");
exit(FALSE);
}
}
while (1)
for (i = 1; i < argc; i++)