mirror of
https://github.com/sheumann/hush.git
synced 2024-12-26 10:32:02 +00:00
More updates to the docs, and fixes to sync things with the docs.
-Erik
This commit is contained in:
parent
4fd10fc73b
commit
e5b6c7dd9c
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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 $ */
|
||||
|
@ -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"
|
||||
|
||||
|
@ -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)
|
||||
{
|
||||
|
@ -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++)
|
||||
|
133
docs/busybox.pod
133
docs/busybox.pod
@ -1290,6 +1290,10 @@ Example:
|
||||
|
||||
=item sh
|
||||
|
||||
Usage: sh
|
||||
|
||||
lash -- the BusyBox LAme SHell (command interpreter)
|
||||
|
||||
FIXME
|
||||
|
||||
-------------------------------
|
||||
@ -1528,12 +1532,10 @@ Example:
|
||||
|
||||
=item tr
|
||||
|
||||
Usage:
|
||||
|
||||
tr [-csu] string1 string2
|
||||
tr [-cu] -d string1
|
||||
tr [-cu] -s string1
|
||||
tr [-cu] -ds string1 string2
|
||||
Usage: tr [-csu] string1 string2
|
||||
tr [-cu] -d string1
|
||||
tr [-cu] -s string1
|
||||
tr [-cu] -ds string1 string2
|
||||
|
||||
Translate, squeeze, and/or delete characters from standard
|
||||
input, writing to standard output.
|
||||
@ -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
5
lash.c
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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
5
sh.c
@ -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));
|
||||
}
|
||||
}
|
||||
|
@ -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
4
tty.c
@ -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
14
uniq.c
@ -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 $ */
|
||||
|
16
update.c
16
update.c
@ -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
3
wc.c
@ -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"
|
||||
|
||||
|
4
whoami.c
4
whoami.c
@ -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
8
yes.c
@ -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++)
|
||||
|
Loading…
Reference in New Issue
Block a user