mirror of
https://github.com/sheumann/hush.git
synced 2024-12-21 23:29:34 +00:00
More doc updates for BusyBox, with fixes to apps for bugs revealed
while trying to write docs . :-) -Erik
This commit is contained in:
parent
b4f8606c05
commit
9cf3bfa7c1
@ -10,14 +10,14 @@
|
||||
provides. To enable this, turn on BB_FEATURE_USE_DEVPS_PATCH and
|
||||
patch your kernel with the devps patch in the kernel-patches/
|
||||
directory.
|
||||
* Wrote basename, killall, and uptime.
|
||||
* Wrote basename, dirname, killall, and uptime.
|
||||
* tar has been completely rewritten by me. Both tar creation and
|
||||
extraction are now well behaved. Costs 7.6k with all optional
|
||||
tar features enabled, and 5k for just tar extraction support.
|
||||
* Added freeramdisk, which will free up all memory associated
|
||||
with a ram disk. Contributed by Emanuele Caratti <wiz@iol.it>
|
||||
and then adjusted a bit by me.
|
||||
* Added tr and dirname from John Lombardo <john@deltanet.com>
|
||||
* Added tr from John Lombardo <john@deltanet.com>
|
||||
* Added echo and test (from me).
|
||||
* Added usleep contributed by Nicolas Pitre <nico@cam.org>
|
||||
* Several fixes from Pavel Roskin <pavel_roskin@geocities.com>:
|
||||
|
8
Makefile
8
Makefile
@ -25,7 +25,7 @@ BUILDTIME := $(shell TZ=UTC date --utc "+%Y.%m.%d-%H:%M%z")
|
||||
# Set the following to `true' to make a debuggable build.
|
||||
# Leave this set to `false' for production use.
|
||||
# eg: `make DODEBUG=true tests'
|
||||
DODEBUG = false
|
||||
DODEBUG = true
|
||||
|
||||
# If you want a static binary, turn this on.
|
||||
DOSTATIC = false
|
||||
@ -94,7 +94,7 @@ ifdef BB_INIT_SCRIPT
|
||||
CFLAGS += -DINIT_SCRIPT='"$(BB_INIT_SCRIPT)"'
|
||||
endif
|
||||
|
||||
all: busybox busybox.links
|
||||
all: busybox busybox.links docs
|
||||
.PHONY: all
|
||||
|
||||
busybox: $(OBJECTS)
|
||||
@ -104,6 +104,9 @@ busybox: $(OBJECTS)
|
||||
busybox.links: busybox.def.h
|
||||
- ./busybox.mkll | sort >$@
|
||||
|
||||
docs: docs/busybox.pod
|
||||
cd docs && $(MAKE) clean all
|
||||
|
||||
regexp.o nfsmount.o: %.o: %.h
|
||||
$(OBJECTS): %.o: busybox.def.h internal.h %.c
|
||||
|
||||
@ -128,6 +131,7 @@ install: busybox busybox.links
|
||||
|
||||
.PHONY: dist release
|
||||
dist release: distclean
|
||||
cd docs && $(MAKE) clean all
|
||||
cd ..; \
|
||||
rm -rf busybox-$(VERSION); \
|
||||
cp -a busybox busybox-$(VERSION); \
|
||||
|
@ -34,8 +34,10 @@ extern int basename_main(int argc, char **argv)
|
||||
argv++;
|
||||
|
||||
s1=*argv+strlen(*argv)-1;
|
||||
if (*s1 == '/')
|
||||
while (s1 && *s1 == '/') {
|
||||
*s1 = '\0';
|
||||
s1=*argv+strlen(*argv)-1;
|
||||
}
|
||||
s = strrchr(*argv, '/');
|
||||
printf("%s\n", (s)? s + 1 : *argv);
|
||||
exit(TRUE);
|
||||
|
@ -194,7 +194,7 @@
|
||||
//#define BB_FEATURE_SH_TAB_COMPLETION
|
||||
//
|
||||
//Turn on extra fbset options
|
||||
#define BB_FEATURE_FBSET_FANCY
|
||||
//#define BB_FEATURE_FBSET_FANCY
|
||||
//
|
||||
//
|
||||
// End of Features List
|
||||
|
@ -34,8 +34,10 @@ extern int basename_main(int argc, char **argv)
|
||||
argv++;
|
||||
|
||||
s1=*argv+strlen(*argv)-1;
|
||||
if (*s1 == '/')
|
||||
while (s1 && *s1 == '/') {
|
||||
*s1 = '\0';
|
||||
s1=*argv+strlen(*argv)-1;
|
||||
}
|
||||
s = strrchr(*argv, '/');
|
||||
printf("%s\n", (s)? s + 1 : *argv);
|
||||
exit(TRUE);
|
||||
|
@ -1,146 +1,45 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* This is temporary -- needs to be rewritten to be tighter */
|
||||
/*
|
||||
* Copyright (c) 1991, 1993, 1994
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* Mini dirname implementation for busybox
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* Copyright (C) 2000 by Lineo, inc.
|
||||
* Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
#ifndef lint
|
||||
static char copyright[] = "@(#) Copyright (c) 1991, 1993, 1994\n\
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)dirname.c 8.4 (Berkeley) 5/4/95";
|
||||
#endif /* not lint */
|
||||
#endif /* #if 0 */
|
||||
|
||||
#include "internal.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void dirname_usage()
|
||||
extern int dirname_main(int argc, char **argv)
|
||||
{
|
||||
char* s;
|
||||
|
||||
(void) fprintf(stderr, "usage: dirname path\n");
|
||||
exit(1);
|
||||
if ((argc < 2) || (**(argv + 1) == '-')) {
|
||||
usage("dirname [file ...]\n");
|
||||
}
|
||||
argv++;
|
||||
|
||||
extern int dirname_main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
char *p;
|
||||
int ch;
|
||||
|
||||
while ((ch = getopt(argc, argv, "")) != -1)
|
||||
switch (ch) {
|
||||
case '?':
|
||||
default:
|
||||
dirname_usage();
|
||||
s=*argv+strlen(*argv)-1;
|
||||
while (s && *s == '/') {
|
||||
*s = '\0';
|
||||
s=*argv+strlen(*argv)-1;
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
if (argc != 1)
|
||||
dirname_usage();
|
||||
|
||||
/*
|
||||
* (1) If string is //, skip steps (2) through (5).
|
||||
* (2) If string consists entirely of slash characters, string
|
||||
* shall be set to a single slash character. In this case,
|
||||
* skip steps (3) through (8).
|
||||
*/
|
||||
for (p = *argv;; ++p) {
|
||||
if (!*p) {
|
||||
if (p > *argv)
|
||||
(void) printf("/\n");
|
||||
else
|
||||
(void) printf(".\n");
|
||||
exit(0);
|
||||
}
|
||||
if (*p != '/')
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* (3) If there are any trailing slash characters in string, they
|
||||
* shall be removed.
|
||||
*/
|
||||
for (; *p; ++p);
|
||||
while (*--p == '/')
|
||||
continue;
|
||||
*++p = '\0';
|
||||
|
||||
/*
|
||||
* (4) If there are no slash characters remaining in string,
|
||||
* string shall be set to a single period character. In this
|
||||
* case skip steps (5) through (8).
|
||||
*
|
||||
* (5) If there are any trailing nonslash characters in string,
|
||||
* they shall be removed.
|
||||
*/
|
||||
while (--p >= *argv)
|
||||
if (*p == '/')
|
||||
break;
|
||||
++p;
|
||||
if (p == *argv) {
|
||||
(void) printf(".\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* (6) If the remaining string is //, it is implementation defined
|
||||
* whether steps (7) and (8) are skipped or processed.
|
||||
*
|
||||
* This case has already been handled, as part of steps (1) and (2).
|
||||
*/
|
||||
|
||||
/*
|
||||
* (7) If there are any trailing slash characters in string, they
|
||||
* shall be removed.
|
||||
*/
|
||||
while (--p >= *argv)
|
||||
if (*p != '/')
|
||||
break;
|
||||
++p;
|
||||
|
||||
/*
|
||||
* (8) If the remaining string is empty, string shall be set to
|
||||
* a single slash character.
|
||||
*/
|
||||
*p = '\0';
|
||||
(void) printf("%s\n", p == *argv ? "/" : *argv);
|
||||
exit(0);
|
||||
s = strrchr(*argv, '/');
|
||||
if (s && *s)
|
||||
*s = '\0';
|
||||
printf("%s\n", (s)? *argv : ".");
|
||||
exit(TRUE);
|
||||
}
|
||||
|
@ -25,6 +25,14 @@
|
||||
#include "internal.h"
|
||||
#include <stdio.h>
|
||||
|
||||
static const char uname_usage[] =
|
||||
"echo [-neE] [ARG ...]\n\n"
|
||||
"Prints the specified ARGs to stdout\n\n"
|
||||
"Options:\n"
|
||||
"\t-n\tsuppress trailing newline\n"
|
||||
"\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
|
||||
"\t-E\tdisable interpretation of backslash-escaped characters\n";
|
||||
|
||||
extern int
|
||||
echo_main(int argc, char** argv)
|
||||
{
|
||||
@ -45,6 +53,9 @@ echo_main(int argc, char** argv)
|
||||
} else if (strcmp(p, "-E")==0) {
|
||||
eflag = 0;
|
||||
}
|
||||
else if (strncmp(p, "--", 2)==0) {
|
||||
usage( uname_usage);
|
||||
}
|
||||
else break;
|
||||
ap++;
|
||||
}
|
||||
|
@ -88,7 +88,6 @@
|
||||
#define DISP_FULLTIME 32 /* show extended time display */
|
||||
#define DIR_NOLIST 64 /* show directory as itself, not contents */
|
||||
#define DISP_DIRNAME 128 /* show directory name (for internal use) */
|
||||
#define DIR_RECURSE 256 /* -R (not yet implemented) */
|
||||
|
||||
#ifndef MAJOR
|
||||
#define MAJOR(dev) (((dev)>>8)&0xff)
|
||||
@ -450,10 +449,33 @@ static const char ls_usage[] = "ls [-1a"
|
||||
#ifdef BB_FEATURE_LS_FILETYPES
|
||||
"F"
|
||||
#endif
|
||||
#ifdef FEATURE_RECURSIVE
|
||||
"R"
|
||||
"] [filenames...]\n\n"
|
||||
"Options:\n"
|
||||
"\t-a\tdo not hide entries starting with .\n"
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
"\t-c\twith -l: show ctime (the time of last\n"
|
||||
"\t\tmodification of file status information)\n"
|
||||
#endif
|
||||
"] [filenames...]\n";
|
||||
"\t-d\tlist directory entries instead of contents\n"
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
"\t-e\tlist both full date and full time\n"
|
||||
#endif
|
||||
"\t-l\tuse a long listing format\n"
|
||||
"\t-n\tlist numeric UIDs and GIDs instead of names\n"
|
||||
#ifdef BB_FEATURE_LS_FILETYPES
|
||||
"\t-p\tappend indicator (one of /=@|) to entries\n"
|
||||
#endif
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
"\t-u\twith -l: show access time (the time of last\n"
|
||||
"\t\taccess of the file)\n"
|
||||
#endif
|
||||
"\t-x\tlist entries by lines instead of by columns\n"
|
||||
"\t-A\tdo not list implied . and ..\n"
|
||||
"\t-C\tlist entries by columns\n"
|
||||
#ifdef BB_FEATURE_LS_FILETYPES
|
||||
"\t-F\tappend indicator (one of */=@|) to entries\n"
|
||||
#endif
|
||||
;
|
||||
|
||||
extern int ls_main(int argc, char **argv)
|
||||
{
|
||||
@ -508,11 +530,6 @@ extern int ls_main(int argc, char **argv)
|
||||
case 'd':
|
||||
opts |= DIR_NOLIST;
|
||||
break;
|
||||
#ifdef FEATURE_RECURSIVE
|
||||
case 'R':
|
||||
opts |= DIR_RECURSE;
|
||||
break;
|
||||
#endif
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
case 'u':
|
||||
time_fmt = TIME_ACCESS;
|
||||
|
@ -70,7 +70,7 @@ int mknod_main(int argc, char **argv)
|
||||
|
||||
if (mknod(argv[1], mode, dev) != 0) {
|
||||
perror(argv[1]);
|
||||
return (FALSE);
|
||||
exit (FALSE);
|
||||
}
|
||||
return (TRUE);
|
||||
exit (TRUE);
|
||||
}
|
||||
|
163
dirname.c
163
dirname.c
@ -1,146 +1,45 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* This is temporary -- needs to be rewritten to be tighter */
|
||||
/*
|
||||
* Copyright (c) 1991, 1993, 1994
|
||||
* The Regents of the University of California. All rights reserved.
|
||||
* Mini dirname implementation for busybox
|
||||
*
|
||||
* Redistribution and use in source and binary forms, with or without
|
||||
* modification, are permitted provided that the following conditions
|
||||
* are met:
|
||||
* 1. Redistributions of source code must retain the above copyright
|
||||
* notice, this list of conditions and the following disclaimer.
|
||||
* 2. Redistributions in binary form must reproduce the above copyright
|
||||
* notice, this list of conditions and the following disclaimer in the
|
||||
* documentation and/or other materials provided with the distribution.
|
||||
* 3. All advertising materials mentioning features or use of this software
|
||||
* must display the following acknowledgement:
|
||||
* This product includes software developed by the University of
|
||||
* California, Berkeley and its contributors.
|
||||
* 4. Neither the name of the University nor the names of its contributors
|
||||
* may be used to endorse or promote products derived from this software
|
||||
* without specific prior written permission.
|
||||
* Copyright (C) 2000 by Lineo, inc.
|
||||
* Written by Erik Andersen <andersen@lineo.com>, <andersee@debian.org>
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation; either version 2 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
||||
* General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
|
||||
*
|
||||
* THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
* ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
* IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
* ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
* FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
* DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
* OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
* HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
* LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
* SUCH DAMAGE.
|
||||
*/
|
||||
|
||||
#if 0
|
||||
#ifndef lint
|
||||
static char copyright[] = "@(#) Copyright (c) 1991, 1993, 1994\n\
|
||||
The Regents of the University of California. All rights reserved.\n";
|
||||
#endif /* not lint */
|
||||
|
||||
#ifndef lint
|
||||
static char sccsid[] = "@(#)dirname.c 8.4 (Berkeley) 5/4/95";
|
||||
#endif /* not lint */
|
||||
#endif /* #if 0 */
|
||||
|
||||
#include "internal.h"
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <unistd.h>
|
||||
|
||||
void dirname_usage()
|
||||
extern int dirname_main(int argc, char **argv)
|
||||
{
|
||||
char* s;
|
||||
|
||||
(void) fprintf(stderr, "usage: dirname path\n");
|
||||
exit(1);
|
||||
if ((argc < 2) || (**(argv + 1) == '-')) {
|
||||
usage("dirname [file ...]\n");
|
||||
}
|
||||
argv++;
|
||||
|
||||
extern int dirname_main(argc, argv)
|
||||
int argc;
|
||||
char **argv;
|
||||
{
|
||||
char *p;
|
||||
int ch;
|
||||
|
||||
while ((ch = getopt(argc, argv, "")) != -1)
|
||||
switch (ch) {
|
||||
case '?':
|
||||
default:
|
||||
dirname_usage();
|
||||
s=*argv+strlen(*argv)-1;
|
||||
while (s && *s == '/') {
|
||||
*s = '\0';
|
||||
s=*argv+strlen(*argv)-1;
|
||||
}
|
||||
argc -= optind;
|
||||
argv += optind;
|
||||
|
||||
if (argc != 1)
|
||||
dirname_usage();
|
||||
|
||||
/*
|
||||
* (1) If string is //, skip steps (2) through (5).
|
||||
* (2) If string consists entirely of slash characters, string
|
||||
* shall be set to a single slash character. In this case,
|
||||
* skip steps (3) through (8).
|
||||
*/
|
||||
for (p = *argv;; ++p) {
|
||||
if (!*p) {
|
||||
if (p > *argv)
|
||||
(void) printf("/\n");
|
||||
else
|
||||
(void) printf(".\n");
|
||||
exit(0);
|
||||
}
|
||||
if (*p != '/')
|
||||
break;
|
||||
}
|
||||
|
||||
/*
|
||||
* (3) If there are any trailing slash characters in string, they
|
||||
* shall be removed.
|
||||
*/
|
||||
for (; *p; ++p);
|
||||
while (*--p == '/')
|
||||
continue;
|
||||
*++p = '\0';
|
||||
|
||||
/*
|
||||
* (4) If there are no slash characters remaining in string,
|
||||
* string shall be set to a single period character. In this
|
||||
* case skip steps (5) through (8).
|
||||
*
|
||||
* (5) If there are any trailing nonslash characters in string,
|
||||
* they shall be removed.
|
||||
*/
|
||||
while (--p >= *argv)
|
||||
if (*p == '/')
|
||||
break;
|
||||
++p;
|
||||
if (p == *argv) {
|
||||
(void) printf(".\n");
|
||||
exit(0);
|
||||
}
|
||||
|
||||
/*
|
||||
* (6) If the remaining string is //, it is implementation defined
|
||||
* whether steps (7) and (8) are skipped or processed.
|
||||
*
|
||||
* This case has already been handled, as part of steps (1) and (2).
|
||||
*/
|
||||
|
||||
/*
|
||||
* (7) If there are any trailing slash characters in string, they
|
||||
* shall be removed.
|
||||
*/
|
||||
while (--p >= *argv)
|
||||
if (*p != '/')
|
||||
break;
|
||||
++p;
|
||||
|
||||
/*
|
||||
* (8) If the remaining string is empty, string shall be set to
|
||||
* a single slash character.
|
||||
*/
|
||||
*p = '\0';
|
||||
(void) printf("%s\n", p == *argv ? "/" : *argv);
|
||||
exit(0);
|
||||
s = strrchr(*argv, '/');
|
||||
if (s && *s)
|
||||
*s = '\0';
|
||||
printf("%s\n", (s)? *argv : ".");
|
||||
exit(TRUE);
|
||||
}
|
||||
|
1025
docs/CommandList
1025
docs/CommandList
File diff suppressed because it is too large
Load Diff
22
docs/Makefile
Normal file
22
docs/Makefile
Normal file
@ -0,0 +1,22 @@
|
||||
# busybox/docs/Makefile - Create the documentation
|
||||
# ------------------------
|
||||
# Copyright (C) 2000 Erik Andersen <andersee@debian.org> GPL
|
||||
|
||||
all:: clean doc
|
||||
|
||||
doc:
|
||||
@echo
|
||||
@echo BusyBox Documentation
|
||||
@echo
|
||||
pod2html busybox.pod > ../BusyBox.html
|
||||
@rm pod2html-*
|
||||
pod2man --center=BusyBox --release="version $(VERSION)" busybox.pod > ../BusyBox.1
|
||||
pod2text busybox.pod > ../BusyBox.txt
|
||||
|
||||
clean::
|
||||
@rm -f ../BusyBox.html ../BusyBox.1 ../BusyBox.txt pod2html*
|
||||
|
||||
distclean: clean
|
||||
|
||||
.PHONY: all clean distclean doc
|
||||
|
569
docs/busybox.pod
569
docs/busybox.pod
@ -1,4 +1,4 @@
|
||||
# pod2man --center=Lineo --release="version 0.43" busybox.pod > busybox.1
|
||||
# vi: set sw=4 ts=4:
|
||||
|
||||
=head1 NAME
|
||||
|
||||
@ -36,20 +36,18 @@ tries to make itself useful to small systems with limited resources.
|
||||
|
||||
Currently defined functions include:
|
||||
|
||||
basename, cat, chmod, chown, chgrp, chroot, clear, chvt, cp, mv, date,
|
||||
dd, df, dirname, dmesg, du, dutmp, echo, fbset, fdflush, find, free,
|
||||
basename, cat, chmod, chown, chgrp, chroot, clear, chvt, cp, date,
|
||||
dd, df, dirname, dmesg, du, dutmp, echo, false, fbset, fdflush, find, free,
|
||||
freeramdisk, deallocvt, fsck.minix, mkfs.minix, grep, gunzip, gzip,
|
||||
halt, head, hostid, hostname, init, kill, killall, length, ln, loadacm,
|
||||
loadfont, loadkmap, ls, lsmod, makedevs, math, mkdir, mkfifo, mknod,
|
||||
mkswap, mnc, more, mount, mt, nslookup, poweroff, ping, printf, ps,
|
||||
mkswap, mnc, more, mount, mt, mv, nslookup, poweroff, ping, printf, ps,
|
||||
pwd, reboot, rm, rmdir, rmmod, sed, sh, fdisk, sfdisk, sleep, sort,
|
||||
sync, syslogd, logger, logname, swapon, swapoff, tail, tar, [, test,
|
||||
tee, touch, tr, true, false, tty, umount, uname, uptime, uniq, update,
|
||||
tee, touch, tr, true, tty, umount, uname, uptime, uniq, update,
|
||||
usleep, wc, whoami, yes, zcat
|
||||
|
||||
=head1 OPTIONS
|
||||
|
||||
Common Options:
|
||||
=head1 COMMON OPTIONS
|
||||
|
||||
Most BusyBox commands support the B<--help> option to provide a
|
||||
terse runtime description of their behavior.
|
||||
@ -69,6 +67,8 @@ Example:
|
||||
$ basename /usr/local/bin/
|
||||
bin
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item cat
|
||||
|
||||
Usage: cat [file ...]
|
||||
@ -80,6 +80,8 @@ Example:
|
||||
$ cat /proc/uptime
|
||||
110716.72 17.67
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item chmod
|
||||
|
||||
Usage: chmod [B<-R>] MODE[,MODE]... FILE...
|
||||
@ -138,6 +140,8 @@ Example:
|
||||
$ ls -l /tmp/foo
|
||||
-r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item chown
|
||||
|
||||
Usage: chown [OPTION]... OWNER[.[GROUP] FILE...
|
||||
@ -159,6 +163,8 @@ Example:
|
||||
ls -l /tmp/foo
|
||||
-r--r--r-- 1 root root 0 Apr 12 18:25 /tmp/foo
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item chgrp
|
||||
|
||||
Usage: chgrp [OPTION]... GROUP FILE...
|
||||
@ -177,31 +183,38 @@ Example:
|
||||
$ ls -l /tmp/foo
|
||||
-r--r--r-- 1 andersen root 0 Apr 12 18:25 /tmp/foo
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item chroot
|
||||
|
||||
Usage: chroot NEWROOT [COMMAND...]
|
||||
|
||||
Run COMMAND with root directory set to NEWROOT.
|
||||
|
||||
Exmaple:
|
||||
Example:
|
||||
|
||||
$ ls -l /bin/ls
|
||||
lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /bin/busybox
|
||||
lrwxrwxrwx 1 root root 12 Apr 13 00:46 /bin/ls -> /busybox
|
||||
$ mount /dev/hdc1 /mnt -t minix
|
||||
$ chroot /mnt
|
||||
$ ls -l /bin/ls
|
||||
-rwxr-xr-x 1 root root 40816 Feb 5 07:45 /bin/ls*
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item clear
|
||||
|
||||
Clears the screen.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item chvt
|
||||
|
||||
Usage: chvt N
|
||||
|
||||
Change foreground virtual terminal to /dev/ttyN
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item cp
|
||||
|
||||
@ -216,6 +229,8 @@ Copy SOURCE to DEST, or multiple SOURCE(s) to DIRECTORY.
|
||||
-p preserve file attributes if possable
|
||||
-R copy directories recursively
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item date
|
||||
|
||||
Usage: date [OPTION]... [+FORMAT]
|
||||
@ -235,6 +250,8 @@ Example:
|
||||
$ date
|
||||
Wed Apr 12 18:52:41 MDT 2000
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item dd
|
||||
|
||||
Usage: dd [if=name] [of=name] [bs=n] [count=n] [skip=n] [seek=n]
|
||||
@ -250,20 +267,21 @@ Copy a file, converting and formatting according to options
|
||||
|
||||
Numbers may be suffixed by w (x2), k (x1024), b (x512), or M (x1024^2)
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
$ dd if=/dev/zero of=/dev/ram1 bs=1M count=4
|
||||
4+0 records in
|
||||
4+0 records out
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item df
|
||||
|
||||
Usage: df [filesystem ...]
|
||||
|
||||
Prints the filesystem space used and space available.
|
||||
|
||||
Exmaple:
|
||||
Example:
|
||||
|
||||
$ df
|
||||
Filesystem 1k-blocks Used Available Use% Mounted on
|
||||
@ -273,12 +291,31 @@ Exmaple:
|
||||
Filesystem 1k-blocks Used Available Use% Mounted on
|
||||
/dev/sda3 8690864 8553540 137324 98% /
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item dirname
|
||||
|
||||
Usage: dirname NAME
|
||||
|
||||
Strip non-directory suffix from file name
|
||||
|
||||
Example:
|
||||
|
||||
$ dirname /tmp/foo
|
||||
/tmp
|
||||
$ dirname /tmp/foo/
|
||||
/tmp
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item dmesg
|
||||
|
||||
Usage: dmesg [B<-c>] [B<-n> level] [B<-s> bufsize]
|
||||
|
||||
Print or controls the kernel ring buffer.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item du
|
||||
|
||||
Usage: du [OPTION]... [FILE]...
|
||||
@ -305,6 +342,56 @@ Example:
|
||||
104 ./docs
|
||||
2417 .
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item dutmp
|
||||
|
||||
Usage: dutmp [FILE]
|
||||
|
||||
Dump utmp file format (pipe delimited) from FILE
|
||||
or stdin to stdout.
|
||||
|
||||
Example:
|
||||
|
||||
$ dutmp /var/run/utmp
|
||||
8|7||si|||0|0|0|955637625|760097|0
|
||||
2|0|~|~~|reboot||0|0|0|955637625|782235|0
|
||||
1|20020|~|~~|runlevel||0|0|0|955637625|800089|0
|
||||
8|125||l4|||0|0|0|955637629|998367|0
|
||||
6|245|tty1|1|LOGIN||0|0|0|955637630|998974|0
|
||||
6|246|tty2|2|LOGIN||0|0|0|955637630|999498|0
|
||||
7|336|pts/0|vt00andersen|andersen|:0.0|0|0|0|955637763|0|0
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item echo
|
||||
|
||||
Usage: echo [-neE] [ARG ...]
|
||||
|
||||
Prints the specified ARGs to stdout
|
||||
|
||||
Options:
|
||||
|
||||
-n suppress trailing newline
|
||||
-e interpret backslash-escaped characters (i.e. \t=tab etc)
|
||||
-E disable interpretation of backslash-escaped characters
|
||||
|
||||
Example:
|
||||
|
||||
$ echo "Erik is cool"
|
||||
Erik is cool
|
||||
$ echo -e "Erik\nis\ncool"
|
||||
Erik
|
||||
is
|
||||
cool
|
||||
$ echo "Erik\nis\ncool"
|
||||
Erik\nis\ncool
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item false
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item fbset
|
||||
|
||||
@ -327,6 +414,26 @@ Options:
|
||||
-laced
|
||||
-double
|
||||
|
||||
Example:
|
||||
|
||||
$ fbset
|
||||
mode "1024x768-76"
|
||||
# D: 78.653 MHz, H: 59.949 kHz, V: 75.694 Hz
|
||||
geometry 1024 768 1024 768 16
|
||||
timings 12714 128 32 16 4 128 4
|
||||
accel false
|
||||
rgba 5/11,6/5,5/0,0/0
|
||||
endmode
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item fdflush
|
||||
|
||||
Usage: fdflush device
|
||||
|
||||
Force floppy disk drive to detect disk change
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item find
|
||||
|
||||
@ -337,18 +444,18 @@ the current directory; default EXPRESSION is '-print'
|
||||
|
||||
|
||||
EXPRESSION may consist of:
|
||||
-follow
|
||||
Dereference symbolic links.
|
||||
-name PATTERN
|
||||
File name (with leading directories removed) matches PATTERN.
|
||||
-print
|
||||
print the full file name followed by a newline to stdout.
|
||||
|
||||
-follow Dereference symbolic links.
|
||||
-name PATTERN File name (leading directories removed) matches PATTERN.
|
||||
-print print the full file name followed by a newline to stdout.
|
||||
|
||||
Example:
|
||||
|
||||
$ find / -name /etc/passwd
|
||||
/etc/passwd
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item free
|
||||
|
||||
Usage: free
|
||||
@ -363,6 +470,19 @@ Example:
|
||||
Swap: 128516 8404 120112
|
||||
Total: 386144 257128 129016
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item freeramdisk
|
||||
|
||||
Usage: freeramdisk DEVICE
|
||||
|
||||
Free all memory used by the specified ramdisk.
|
||||
|
||||
Example:
|
||||
|
||||
$ freeramdisk /dev/ram2
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item deallocvt
|
||||
|
||||
@ -370,6 +490,7 @@ Usage: deallocvt N
|
||||
|
||||
Deallocates unused virtual terminal /dev/ttyN
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item fsck.minix
|
||||
|
||||
@ -387,6 +508,7 @@ OPTIONS:
|
||||
-m Activates MINIX-like "mode not cleared" warnings
|
||||
-f Force file system check.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mkfs.minix
|
||||
|
||||
@ -402,6 +524,7 @@ OPTIONS:
|
||||
-l FILENAME Read the bad blocks list from FILENAME
|
||||
-v Make a Minix version 2 filesystem
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item grep
|
||||
|
||||
@ -418,7 +541,6 @@ OPTIONS:
|
||||
|
||||
This version of grep matches full regular expresions.
|
||||
|
||||
|
||||
Example:
|
||||
|
||||
$ grep root /etc/passwd
|
||||
@ -426,6 +548,23 @@ Example:
|
||||
$ grep ^[rR]oo. /etc/passwd
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item gunzip
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item gzip
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item halt
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item head
|
||||
|
||||
Usage: head [OPTION] [FILE]...
|
||||
@ -444,6 +583,13 @@ Example:
|
||||
root:x:0:0:root:/root:/bin/bash
|
||||
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item hostid
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item hostname
|
||||
|
||||
Usage: hostname [OPTION] {hostname | B<-F> file}
|
||||
@ -463,6 +609,13 @@ Example:
|
||||
$ hostname
|
||||
slag
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item init
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item kill
|
||||
|
||||
Usage: kill [B<-signal>] process-id [process-id ...]
|
||||
@ -484,6 +637,17 @@ Example:
|
||||
267 www-data www-data S [apache]
|
||||
$ kill 252
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item killall
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item length
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item ln
|
||||
|
||||
Usage: ln [OPTION] TARGET... LINK_NAME|DIRECTORY
|
||||
@ -494,30 +658,95 @@ Options:
|
||||
-s make symbolic links instead of hard links
|
||||
-f remove existing destination files
|
||||
|
||||
Example:
|
||||
|
||||
$ ln -s busybox /tmp/ls
|
||||
[andersen@debian busybox]$ ls -l /tmp/ls
|
||||
lrwxrwxrwx 1 root root 7 Apr 12 18:39 ls -> busybox*
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item loadacm
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item loadfont
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item loadkmap
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item ls
|
||||
|
||||
Usage: ls [B<-1acdelnpuxACF>] [filenames...]
|
||||
|
||||
Options:
|
||||
|
||||
-a do not hide entries starting with .
|
||||
-c with -l: show ctime (the time of last
|
||||
modification of file status information)
|
||||
-d list directory entries instead of contents
|
||||
-e list both full date and full time
|
||||
-l use a long listing format
|
||||
-n list numeric UIDs and GIDs instead of names
|
||||
-p append indicator (one of /=@|) to entries
|
||||
-u with -l: show access time (the time of last
|
||||
access of the file)
|
||||
-x list entries by lines instead of by columns
|
||||
-A do not list implied . and ..
|
||||
-C list entries by columns
|
||||
-F append indicator (one of */=@|) to entries
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item lsmod
|
||||
|
||||
Usage: lsmod
|
||||
|
||||
Shows information about all loaded modules.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item makedevs
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item math
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mkdir
|
||||
|
||||
Usage: Usage: mkdir [OPTION] DIRECTORY...
|
||||
Usage: mkdir [OPTION] DIRECTORY...
|
||||
|
||||
Create the DIRECTORY(ies), if they do not already exist
|
||||
|
||||
Options:
|
||||
|
||||
-m set permission mode (as in chmod), not rwxrwxrwx - umask
|
||||
-p no error if existing, make parent directories as needed
|
||||
-p no error if dir exists, make parent directories as needed
|
||||
|
||||
Example:
|
||||
|
||||
$ mkdir /tmp/foo
|
||||
$ mkdir /tmp/foo
|
||||
/tmp/foo: File exists
|
||||
$ mkdir /tmp/foo/bar/baz
|
||||
/tmp/foo/bar/baz: No such file or directory
|
||||
$ mkdir -p /tmp/foo/bar/baz
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mkfifo
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mknod
|
||||
|
||||
Usage: mknod NAME TYPE MAJOR MINOR
|
||||
|
||||
Make block or character special files.
|
||||
|
||||
TYPEs include:
|
||||
@ -526,10 +755,16 @@ TYPEs include:
|
||||
c or u: Make a character (un-buffered) device.
|
||||
p: Make a named pipe. Major and minor are ignored for named pipes.
|
||||
|
||||
Example:
|
||||
|
||||
$ mknod /dev/fd0 b 2 0
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mkswap
|
||||
|
||||
Usage: mkswap [B<-c>] [-v0|-v1] device [block-count]
|
||||
Usage: mkswap [B<-c>] [B<-v0>|B<-v1>] device [block-count]
|
||||
|
||||
Prepare a disk partition to be used as a swap partition.
|
||||
|
||||
Options:
|
||||
@ -539,25 +774,39 @@ Options:
|
||||
-v1 Make version 1 swap [big!] (default for kernels > 2.1.117).
|
||||
block-count Number of block to use (default is entire partition).
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mnc
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item more
|
||||
|
||||
Usage: more [file ...]
|
||||
|
||||
More is a filter for paging through text one screenful at a time.
|
||||
|
||||
Example:
|
||||
|
||||
$ dmesg | more
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mount
|
||||
|
||||
Usage: mount [flags]
|
||||
|
||||
mount [flags] device directory [B<-o> options,more-options]
|
||||
|
||||
Flags:
|
||||
|
||||
-a: Mount all file systems in fstab.
|
||||
-o option: One of many filesystem options, listed below.
|
||||
-r: Mount the filesystem read-only.
|
||||
-t filesystem-type: Specify the filesystem type.
|
||||
-w: Mount for reading and writing (default).
|
||||
Options for use with the "-o" flag:
|
||||
|
||||
Options for use with the "B<-o>" flag:
|
||||
|
||||
async / sync: Writes are asynchronous / synchronous.
|
||||
dev / nodev: Allow use of special device files / disallow them.
|
||||
exec / noexec: Allow use of executable files / disallow them.
|
||||
@ -565,10 +814,23 @@ mount [flags] device directory [B<-o> options,more-options]
|
||||
suid / nosuid: Allow set-user-id-root programs / disallow them.
|
||||
remount: Re-mount a currently-mounted filesystem, changing its flags.
|
||||
ro / rw: Mount for read-only / read-write.
|
||||
|
||||
There are EVEN MORE flags that are specific to each filesystem.
|
||||
You'll have to see the written documentation for those.
|
||||
|
||||
Example:
|
||||
|
||||
$ mount
|
||||
/dev/hda3 on / type minix (rw)
|
||||
proc on /proc type proc (rw)
|
||||
devpts on /dev/pts type devpts (rw)
|
||||
$ mount /dev/fd0 /mnt -t msdos -o ro
|
||||
$ mount /tmp/diskimage /opt -t ext2 -o loop
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mt
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item mv
|
||||
|
||||
@ -578,245 +840,154 @@ or: mv SOURCE... DIRECTORY
|
||||
|
||||
Rename SOURCE to DEST, or move SOURCE(s) to DIRECTORY.
|
||||
|
||||
Example:
|
||||
|
||||
=item ping
|
||||
$ mv /tmp/foo /bin/bar
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item nslookup
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item poweroff
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item ping
|
||||
|
||||
Usage: ping [OPTION]... host
|
||||
|
||||
Send ICMP ECHO_REQUEST packets to network hosts.
|
||||
|
||||
Options:
|
||||
|
||||
-c COUNT Send only COUNT pings.
|
||||
-q Quiet mode, only displays output at start
|
||||
and when finished.
|
||||
Example:
|
||||
|
||||
$ ping localhost
|
||||
PING slag (127.0.0.1): 56 data bytes
|
||||
64 bytes from 127.0.0.1: icmp_seq=0 ttl=255 time=20.1 ms
|
||||
|
||||
--- debian ping statistics ---
|
||||
1 packets transmitted, 1 packets received, 0% packet loss
|
||||
round-trip min/avg/max = 20.1/20.1/20.1 ms
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item printf
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item ps
|
||||
|
||||
Usage: ps
|
||||
|
||||
Report process status.
|
||||
This version of ps accepts no options.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item pwd
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item reboot
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item rm
|
||||
|
||||
Usage: rm [OPTION]... FILE...
|
||||
Remove (unlink) the FILE(s).
|
||||
|
||||
Options:
|
||||
|
||||
-f remove existing destinations, never prompt
|
||||
-r or -R remove the contents of directories recursively
|
||||
|
||||
|
||||
=item rmdir
|
||||
|
||||
Usage: rmdir [OPTION]... DIRECTORY...
|
||||
Remove the DIRECTORY(ies), if they are empty.
|
||||
|
||||
|
||||
=item sed
|
||||
|
||||
Usage: sed [B<-n>] B<-e> script [file...]
|
||||
Allowed sed scripts come in the following form:
|
||||
|
||||
'ADDR [!] COMMAND'
|
||||
where address ADDR can be:
|
||||
NUMBER Match specified line number
|
||||
$ Match last line
|
||||
/REGEXP/ Match specified regexp
|
||||
(! inverts the meaning of the match)
|
||||
and COMMAND can be:
|
||||
s/regexp/replacement/[igp]
|
||||
which attempt to match regexp against the pattern space
|
||||
and if successful replaces the matched portion with replacement.
|
||||
aTEXT
|
||||
which appends TEXT after the pattern space
|
||||
|
||||
Options:
|
||||
|
||||
-e add the script to the commands to be executed
|
||||
-n suppress automatic printing of pattern space
|
||||
|
||||
This version of sed matches full regular expresions.
|
||||
|
||||
|
||||
=item sleep
|
||||
|
||||
Usage: sleep N
|
||||
|
||||
Pause for N seconds.
|
||||
|
||||
|
||||
=item sort
|
||||
|
||||
Usage: Usage: sort [OPTION]... [FILE]...
|
||||
|
||||
|
||||
=item sync
|
||||
|
||||
Usage: sync
|
||||
|
||||
Write all buffered filesystem blocks to disk.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item syslogd
|
||||
|
||||
Usage: syslogd [OPTION]...
|
||||
-------------------------------
|
||||
|
||||
Linux system and kernel (provides klogd) logging utility.
|
||||
Note that this version of syslogd/klogd ignores /etc/syslog.conf.
|
||||
=item logger
|
||||
|
||||
Options:
|
||||
-------------------------------
|
||||
|
||||
-m Change the mark timestamp interval. default=20min. 0=off
|
||||
-n Do not fork into the background (for when run by init)
|
||||
-K Do not start up the klogd process (by default syslogd spawns klogd).
|
||||
-O Specify an alternate log file. default=/var/log/messages
|
||||
=item logname
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item swapon
|
||||
|
||||
Usage: swapon device
|
||||
|
||||
Start swapping virtual memory pages on the given device.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item swapoff
|
||||
|
||||
Usage: swapoff device
|
||||
|
||||
Stop swapping virtual memory pages on the given device.
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item tail
|
||||
|
||||
Usage: tail [OPTION]... [FILE]...
|
||||
|
||||
Print last 10 lines of each FILE to standard output.
|
||||
With more than one FILE, precede each with a header giving the file name.
|
||||
With no FILE, or when FILE is -, read standard input.
|
||||
|
||||
-c=N[kbm] output the last N bytes
|
||||
-f output appended data as the file grows
|
||||
-n=N output the last N lines, instead of last 10
|
||||
-q never output headers giving file names
|
||||
-v always output headers giving file names
|
||||
--help display this help and exit
|
||||
|
||||
If the first character of N (bytes or lines) is a `+', output begins with
|
||||
the Nth item from the start of each file, otherwise, print the last N items
|
||||
in the file. N bytes may be suffixed by k (x1024), b (x512), or m (1024^2).
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item tar
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item test, [
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item tee
|
||||
|
||||
Usage: tee [OPTION]... [FILE]...
|
||||
Copy standard input to each FILE, and also to standard output.
|
||||
|
||||
Options:
|
||||
|
||||
-a append to the given FILEs, do not overwrite
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item touch
|
||||
|
||||
Usage: touch [B<-c>] file [file ...]
|
||||
Update the last-modified date on the given file[s].
|
||||
-------------------------------
|
||||
|
||||
=item tr
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item true
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item tty
|
||||
|
||||
=item false
|
||||
|
||||
|
||||
|
||||
=item uname
|
||||
|
||||
Usage: uname [OPTION]...
|
||||
|
||||
Print certain system information. With no OPTION, same as B<-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
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item umount
|
||||
|
||||
Usage: Usage: umount [flags] filesystem|directory
|
||||
-------------------------------
|
||||
|
||||
Flags:
|
||||
=item uname
|
||||
|
||||
-a: Unmount all file systems
|
||||
-------------------------------
|
||||
|
||||
=item uptime
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item uniq
|
||||
|
||||
Usage: Usage: uniq [OPTION]... [INPUT [OUTPUT]]
|
||||
-------------------------------
|
||||
|
||||
Discard all but one of successive identical lines from INPUT (or
|
||||
standard input), writing to OUTPUT (or standard output).
|
||||
=item update
|
||||
|
||||
-h display this help and exit
|
||||
-------------------------------
|
||||
|
||||
A field is a run of whitespace, then non-whitespace characters.
|
||||
Fields are skipped before chars.
|
||||
=item usleep
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item wc
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item whoami
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item yes
|
||||
|
||||
-------------------------------
|
||||
|
||||
=item zcat
|
||||
|
||||
Usage: gunzip [OPTION]... FILE
|
||||
|
||||
Uncompress FILE (or standard input if FILE is '-').
|
||||
|
||||
Options:
|
||||
|
||||
-c Write output to standard output
|
||||
-t Test compressed file integrity
|
||||
|
||||
|
||||
=item gunzip
|
||||
|
||||
Usage: gunzip [OPTION]... FILE
|
||||
|
||||
Uncompress FILE (or standard input if FILE is '-').
|
||||
|
||||
Options:
|
||||
|
||||
-c Write output to standard output
|
||||
-t Test compressed file integrity
|
||||
|
||||
|
||||
=item gzip
|
||||
|
||||
Usage: gzip [OPTION]... FILE
|
||||
|
||||
Compress FILE with maximum compression.
|
||||
When FILE is -, reads standard input. Implies B<-c>.
|
||||
|
||||
Options:
|
||||
|
||||
-c Write output to standard output instead of FILE.gz
|
||||
|
||||
|
||||
-------------------------------
|
||||
|
||||
=back
|
||||
|
||||
@ -869,5 +1040,9 @@ Enrique Zanardi <ezanardi@ull.es>
|
||||
|
||||
=for html <br>
|
||||
|
||||
Karl M. Hegbloom <karlheg@debian.org>
|
||||
|
||||
=for html <br>
|
||||
|
||||
=cut
|
||||
|
||||
|
7
dutmp.c
7
dutmp.c
@ -19,10 +19,9 @@
|
||||
#define bb_need_io_error
|
||||
#include "messages.c"
|
||||
|
||||
static const char dutmp_usage[] = "dutmp\n"
|
||||
"\n"
|
||||
"\tDump file or stdin utmp file format to stdout, pipe delimited.\n"
|
||||
"\tdutmp /var/run/utmp\n";
|
||||
static const char dutmp_usage[] = "dutmp [FILE]\n\n"
|
||||
"Dump utmp file format (pipe delimited) from FILE\n"
|
||||
"or stdin to stdout. (i.e. 'dutmp /var/run/utmp')\n";
|
||||
|
||||
extern int dutmp_main(int argc, char **argv)
|
||||
{
|
||||
|
11
echo.c
11
echo.c
@ -25,6 +25,14 @@
|
||||
#include "internal.h"
|
||||
#include <stdio.h>
|
||||
|
||||
static const char uname_usage[] =
|
||||
"echo [-neE] [ARG ...]\n\n"
|
||||
"Prints the specified ARGs to stdout\n\n"
|
||||
"Options:\n"
|
||||
"\t-n\tsuppress trailing newline\n"
|
||||
"\t-e\tinterpret backslash-escaped characters (i.e. \\t=tab etc)\n"
|
||||
"\t-E\tdisable interpretation of backslash-escaped characters\n";
|
||||
|
||||
extern int
|
||||
echo_main(int argc, char** argv)
|
||||
{
|
||||
@ -45,6 +53,9 @@ echo_main(int argc, char** argv)
|
||||
} else if (strcmp(p, "-E")==0) {
|
||||
eflag = 0;
|
||||
}
|
||||
else if (strncmp(p, "--", 2)==0) {
|
||||
usage( uname_usage);
|
||||
}
|
||||
else break;
|
||||
ap++;
|
||||
}
|
||||
|
9
fbset.c
9
fbset.c
@ -104,9 +104,9 @@ struct cmdoptions_t {
|
||||
"-hsync", 1, CMD_HSYNC}, {
|
||||
"-vsync", 1, CMD_VSYNC}, {
|
||||
"-laced", 1, CMD_LACED}, {
|
||||
"-double", 1, CMD_DOUBLE},
|
||||
"-double", 1, CMD_DOUBLE}, {
|
||||
"--help", 0, CMD_HELP}, {
|
||||
#ifdef BB_FEATURE_FBSET_FANCY
|
||||
{
|
||||
"--help", 0, CMD_HELP}, {
|
||||
"-all", 0, CMD_ALL}, {
|
||||
"-xres", 1, CMD_XRES}, {
|
||||
@ -130,9 +130,8 @@ struct cmdoptions_t {
|
||||
"-bcast", 1, CMD_BCAST}, {
|
||||
"-rgba", 1, CMD_RGBA}, {
|
||||
"-step", 1, CMD_STEP}, {
|
||||
"-move", 1, CMD_MOVE},
|
||||
"-move", 1, CMD_MOVE}, {
|
||||
#endif
|
||||
{
|
||||
0, 0, 0}
|
||||
};
|
||||
|
||||
@ -217,7 +216,7 @@ static void showmode(struct fb_var_screeninfo *v)
|
||||
printf("\trgba %u/%u,%u/%u,%u/%u,%u/%u\n", v->red.length,
|
||||
v->red.offset, v->green.length, v->green.offset, v->blue.length,
|
||||
v->blue.offset, v->transp.length, v->transp.offset);
|
||||
printf("endmode\n");
|
||||
printf("endmode\n\n");
|
||||
}
|
||||
|
||||
static void fbset_usage(void)
|
||||
|
@ -33,8 +33,8 @@ extern int fdflush_main(int argc, char **argv)
|
||||
int value;
|
||||
int fd;
|
||||
|
||||
if (argc <= 1 || **(argv++) == '-') {
|
||||
usage("fdflush device\n");
|
||||
if (argc <= 1 || **(++argv) == '-') {
|
||||
usage("fdflush device\n\nForce floppy disk drive to detect disk change\n");
|
||||
}
|
||||
|
||||
fd = open(*argv, 0);
|
||||
|
6
find.c
6
find.c
@ -37,9 +37,9 @@ static const char find_usage[] = "find [PATH...] [EXPRESSION]\n\n"
|
||||
"Search for files in a directory hierarchy. The default PATH is\n"
|
||||
"the current directory; default EXPRESSION is '-print'\n\n"
|
||||
"\nEXPRESSION may consist of:\n"
|
||||
"\t-follow\n\t\tDereference symbolic links.\n"
|
||||
"\t-name PATTERN\n\t\tFile name (with leading directories removed) matches PATTERN.\n"
|
||||
"\t-print\n\t\tprint the full file name followed by a newline to stdout.\n";
|
||||
"\t-follow\t\tDereference symbolic links.\n"
|
||||
"\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n"
|
||||
"\t-print\t\tprint the full file name followed by a newline to stdout.\n";
|
||||
|
||||
|
||||
static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
|
||||
|
@ -37,9 +37,9 @@ static const char find_usage[] = "find [PATH...] [EXPRESSION]\n\n"
|
||||
"Search for files in a directory hierarchy. The default PATH is\n"
|
||||
"the current directory; default EXPRESSION is '-print'\n\n"
|
||||
"\nEXPRESSION may consist of:\n"
|
||||
"\t-follow\n\t\tDereference symbolic links.\n"
|
||||
"\t-name PATTERN\n\t\tFile name (with leading directories removed) matches PATTERN.\n"
|
||||
"\t-print\n\t\tprint the full file name followed by a newline to stdout.\n";
|
||||
"\t-follow\t\tDereference symbolic links.\n"
|
||||
"\t-name PATTERN\tFile name (leading directories removed) matches PATTERN.\n"
|
||||
"\t-print\t\tprint the full file name followed by a newline to stdout.\n";
|
||||
|
||||
|
||||
static int fileAction(const char *fileName, struct stat *statbuf, void* junk)
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
static const char freeramdisk_usage[] =
|
||||
"freeramdisk DEVICE\n\n"
|
||||
"Frees all memory used by the specified ramdisk.\n";
|
||||
"Free all memory used by the specified ramdisk.\n";
|
||||
|
||||
extern int
|
||||
freeramdisk_main(int argc, char **argv)
|
||||
@ -42,7 +42,7 @@ freeramdisk_main(int argc, char **argv)
|
||||
char rname[256] = "/dev/ram";
|
||||
int f;
|
||||
|
||||
if (argc > 2 || ( argv[1] && *argv[1] == '-')) {
|
||||
if (argc < 2 || ( argv[1] && *argv[1] == '-')) {
|
||||
usage(freeramdisk_usage);
|
||||
}
|
||||
|
||||
@ -50,10 +50,10 @@ freeramdisk_main(int argc, char **argv)
|
||||
strcpy(rname, argv[1]);
|
||||
|
||||
if ((f = open(rname, O_RDWR)) == -1) {
|
||||
fatalError( "freeramdisk: cannot open %s: %s", rname, strerror(errno));
|
||||
fatalError( "freeramdisk: cannot open %s: %s\n", rname, strerror(errno));
|
||||
}
|
||||
if (ioctl(f, BLKFLSBUF) < 0) {
|
||||
fatalError( "freeramdisk: failed ioctl on %s: %s", rname, strerror(errno));
|
||||
fatalError( "freeramdisk: failed ioctl on %s: %s\n", rname, strerror(errno));
|
||||
}
|
||||
/* Don't bother closing. Exit does
|
||||
* that, so we can save a few bytes */
|
||||
|
35
ls.c
35
ls.c
@ -88,7 +88,6 @@
|
||||
#define DISP_FULLTIME 32 /* show extended time display */
|
||||
#define DIR_NOLIST 64 /* show directory as itself, not contents */
|
||||
#define DISP_DIRNAME 128 /* show directory name (for internal use) */
|
||||
#define DIR_RECURSE 256 /* -R (not yet implemented) */
|
||||
|
||||
#ifndef MAJOR
|
||||
#define MAJOR(dev) (((dev)>>8)&0xff)
|
||||
@ -450,10 +449,33 @@ static const char ls_usage[] = "ls [-1a"
|
||||
#ifdef BB_FEATURE_LS_FILETYPES
|
||||
"F"
|
||||
#endif
|
||||
#ifdef FEATURE_RECURSIVE
|
||||
"R"
|
||||
"] [filenames...]\n\n"
|
||||
"Options:\n"
|
||||
"\t-a\tdo not hide entries starting with .\n"
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
"\t-c\twith -l: show ctime (the time of last\n"
|
||||
"\t\tmodification of file status information)\n"
|
||||
#endif
|
||||
"] [filenames...]\n";
|
||||
"\t-d\tlist directory entries instead of contents\n"
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
"\t-e\tlist both full date and full time\n"
|
||||
#endif
|
||||
"\t-l\tuse a long listing format\n"
|
||||
"\t-n\tlist numeric UIDs and GIDs instead of names\n"
|
||||
#ifdef BB_FEATURE_LS_FILETYPES
|
||||
"\t-p\tappend indicator (one of /=@|) to entries\n"
|
||||
#endif
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
"\t-u\twith -l: show access time (the time of last\n"
|
||||
"\t\taccess of the file)\n"
|
||||
#endif
|
||||
"\t-x\tlist entries by lines instead of by columns\n"
|
||||
"\t-A\tdo not list implied . and ..\n"
|
||||
"\t-C\tlist entries by columns\n"
|
||||
#ifdef BB_FEATURE_LS_FILETYPES
|
||||
"\t-F\tappend indicator (one of */=@|) to entries\n"
|
||||
#endif
|
||||
;
|
||||
|
||||
extern int ls_main(int argc, char **argv)
|
||||
{
|
||||
@ -508,11 +530,6 @@ extern int ls_main(int argc, char **argv)
|
||||
case 'd':
|
||||
opts |= DIR_NOLIST;
|
||||
break;
|
||||
#ifdef FEATURE_RECURSIVE
|
||||
case 'R':
|
||||
opts |= DIR_RECURSE;
|
||||
break;
|
||||
#endif
|
||||
#ifdef BB_FEATURE_LS_TIMESTAMPS
|
||||
case 'u':
|
||||
time_fmt = TIME_ACCESS;
|
||||
|
@ -19,10 +19,9 @@
|
||||
#define bb_need_io_error
|
||||
#include "messages.c"
|
||||
|
||||
static const char dutmp_usage[] = "dutmp\n"
|
||||
"\n"
|
||||
"\tDump file or stdin utmp file format to stdout, pipe delimited.\n"
|
||||
"\tdutmp /var/run/utmp\n";
|
||||
static const char dutmp_usage[] = "dutmp [FILE]\n\n"
|
||||
"Dump utmp file format (pipe delimited) from FILE\n"
|
||||
"or stdin to stdout. (i.e. 'dutmp /var/run/utmp')\n";
|
||||
|
||||
extern int dutmp_main(int argc, char **argv)
|
||||
{
|
||||
|
4
mknod.c
4
mknod.c
@ -70,7 +70,7 @@ int mknod_main(int argc, char **argv)
|
||||
|
||||
if (mknod(argv[1], mode, dev) != 0) {
|
||||
perror(argv[1]);
|
||||
return (FALSE);
|
||||
exit (FALSE);
|
||||
}
|
||||
return (TRUE);
|
||||
exit (TRUE);
|
||||
}
|
||||
|
2
mount.c
2
mount.c
@ -83,8 +83,6 @@ static const char mount_usage[] = "\tmount [flags]\n"
|
||||
"\tsuid / nosuid:\tAllow set-user-id-root programs / disallow them.\n"
|
||||
"\tremount: Re-mount a currently-mounted filesystem, changing its flags.\n"
|
||||
"\tro / rw: Mount for read-only / read-write.\n"
|
||||
"\t"
|
||||
|
||||
"There are EVEN MORE flags that are specific to each filesystem.\n"
|
||||
"You'll have to see the written documentation for those.\n";
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* $Id: ping.c,v 1.11 2000/02/08 19:58:47 erik Exp $
|
||||
* $Id: ping.c,v 1.12 2000/04/13 18:49:43 erik Exp $
|
||||
* Mini ping implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
|
||||
@ -182,9 +182,9 @@ extern int ping_main(int argc, char **argv)
|
||||
static const char *ping_usage = "ping [OPTION]... host\n\n"
|
||||
"Send ICMP ECHO_REQUEST packets to network hosts.\n\n"
|
||||
"Options:\n"
|
||||
"\t-q\t\tQuiet mode, only displays output at start"
|
||||
|
||||
"\t\t\tand when finished.\n" "\t-c COUNT\tSend only COUNT pings.\n";
|
||||
"\t-c COUNT\tSend only COUNT pings.\n"
|
||||
"\t-q\t\tQuiet mode, only displays output at start\n"
|
||||
"\t\t\tand when finished.\n";
|
||||
|
||||
static char *hostname = NULL;
|
||||
static struct sockaddr_in pingaddr;
|
||||
@ -418,9 +418,7 @@ extern int ping_main(int argc, char **argv)
|
||||
argv++;
|
||||
options = 0;
|
||||
/* Parse any options */
|
||||
while (argc > 1) {
|
||||
if (**argv != '-')
|
||||
usage(ping_usage);
|
||||
while (argc >= 1 && **argv == '-') {
|
||||
thisarg = *argv;
|
||||
thisarg++;
|
||||
switch (*thisarg) {
|
||||
|
12
ping.c
12
ping.c
@ -1,6 +1,6 @@
|
||||
/* vi: set sw=4 ts=4: */
|
||||
/*
|
||||
* $Id: ping.c,v 1.11 2000/02/08 19:58:47 erik Exp $
|
||||
* $Id: ping.c,v 1.12 2000/04/13 18:49:43 erik Exp $
|
||||
* Mini ping implementation for busybox
|
||||
*
|
||||
* Copyright (C) 1999 by Randolph Chung <tausq@debian.org>
|
||||
@ -182,9 +182,9 @@ extern int ping_main(int argc, char **argv)
|
||||
static const char *ping_usage = "ping [OPTION]... host\n\n"
|
||||
"Send ICMP ECHO_REQUEST packets to network hosts.\n\n"
|
||||
"Options:\n"
|
||||
"\t-q\t\tQuiet mode, only displays output at start"
|
||||
|
||||
"\t\t\tand when finished.\n" "\t-c COUNT\tSend only COUNT pings.\n";
|
||||
"\t-c COUNT\tSend only COUNT pings.\n"
|
||||
"\t-q\t\tQuiet mode, only displays output at start\n"
|
||||
"\t\t\tand when finished.\n";
|
||||
|
||||
static char *hostname = NULL;
|
||||
static struct sockaddr_in pingaddr;
|
||||
@ -418,9 +418,7 @@ extern int ping_main(int argc, char **argv)
|
||||
argv++;
|
||||
options = 0;
|
||||
/* Parse any options */
|
||||
while (argc > 1) {
|
||||
if (**argv != '-')
|
||||
usage(ping_usage);
|
||||
while (argc >= 1 && **argv == '-') {
|
||||
thisarg = *argv;
|
||||
thisarg++;
|
||||
switch (*thisarg) {
|
||||
|
@ -104,9 +104,9 @@ struct cmdoptions_t {
|
||||
"-hsync", 1, CMD_HSYNC}, {
|
||||
"-vsync", 1, CMD_VSYNC}, {
|
||||
"-laced", 1, CMD_LACED}, {
|
||||
"-double", 1, CMD_DOUBLE},
|
||||
"-double", 1, CMD_DOUBLE}, {
|
||||
"--help", 0, CMD_HELP}, {
|
||||
#ifdef BB_FEATURE_FBSET_FANCY
|
||||
{
|
||||
"--help", 0, CMD_HELP}, {
|
||||
"-all", 0, CMD_ALL}, {
|
||||
"-xres", 1, CMD_XRES}, {
|
||||
@ -130,9 +130,8 @@ struct cmdoptions_t {
|
||||
"-bcast", 1, CMD_BCAST}, {
|
||||
"-rgba", 1, CMD_RGBA}, {
|
||||
"-step", 1, CMD_STEP}, {
|
||||
"-move", 1, CMD_MOVE},
|
||||
"-move", 1, CMD_MOVE}, {
|
||||
#endif
|
||||
{
|
||||
0, 0, 0}
|
||||
};
|
||||
|
||||
@ -217,7 +216,7 @@ static void showmode(struct fb_var_screeninfo *v)
|
||||
printf("\trgba %u/%u,%u/%u,%u/%u,%u/%u\n", v->red.length,
|
||||
v->red.offset, v->green.length, v->green.offset, v->blue.length,
|
||||
v->blue.offset, v->transp.length, v->transp.offset);
|
||||
printf("endmode\n");
|
||||
printf("endmode\n\n");
|
||||
}
|
||||
|
||||
static void fbset_usage(void)
|
||||
|
@ -33,8 +33,8 @@ extern int fdflush_main(int argc, char **argv)
|
||||
int value;
|
||||
int fd;
|
||||
|
||||
if (argc <= 1 || **(argv++) == '-') {
|
||||
usage("fdflush device\n");
|
||||
if (argc <= 1 || **(++argv) == '-') {
|
||||
usage("fdflush device\n\nForce floppy disk drive to detect disk change\n");
|
||||
}
|
||||
|
||||
fd = open(*argv, 0);
|
||||
|
@ -34,7 +34,7 @@
|
||||
|
||||
static const char freeramdisk_usage[] =
|
||||
"freeramdisk DEVICE\n\n"
|
||||
"Frees all memory used by the specified ramdisk.\n";
|
||||
"Free all memory used by the specified ramdisk.\n";
|
||||
|
||||
extern int
|
||||
freeramdisk_main(int argc, char **argv)
|
||||
@ -42,7 +42,7 @@ freeramdisk_main(int argc, char **argv)
|
||||
char rname[256] = "/dev/ram";
|
||||
int f;
|
||||
|
||||
if (argc > 2 || ( argv[1] && *argv[1] == '-')) {
|
||||
if (argc < 2 || ( argv[1] && *argv[1] == '-')) {
|
||||
usage(freeramdisk_usage);
|
||||
}
|
||||
|
||||
@ -50,10 +50,10 @@ freeramdisk_main(int argc, char **argv)
|
||||
strcpy(rname, argv[1]);
|
||||
|
||||
if ((f = open(rname, O_RDWR)) == -1) {
|
||||
fatalError( "freeramdisk: cannot open %s: %s", rname, strerror(errno));
|
||||
fatalError( "freeramdisk: cannot open %s: %s\n", rname, strerror(errno));
|
||||
}
|
||||
if (ioctl(f, BLKFLSBUF) < 0) {
|
||||
fatalError( "freeramdisk: failed ioctl on %s: %s", rname, strerror(errno));
|
||||
fatalError( "freeramdisk: failed ioctl on %s: %s\n", rname, strerror(errno));
|
||||
}
|
||||
/* Don't bother closing. Exit does
|
||||
* that, so we can save a few bytes */
|
||||
|
@ -83,8 +83,6 @@ static const char mount_usage[] = "\tmount [flags]\n"
|
||||
"\tsuid / nosuid:\tAllow set-user-id-root programs / disallow them.\n"
|
||||
"\tremount: Re-mount a currently-mounted filesystem, changing its flags.\n"
|
||||
"\tro / rw: Mount for read-only / read-write.\n"
|
||||
"\t"
|
||||
|
||||
"There are EVEN MORE flags that are specific to each filesystem.\n"
|
||||
"You'll have to see the written documentation for those.\n";
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user