suckless unix tools
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
Hiltjo Posthuma 63271b47f7 setsid: fix usage information for -f flag 3 months ago
libutf paste: Support -d '\0' 2 years ago
libutil libutil/recurse: Simplify adding trailing slash 2 years ago
.gitignore Add implementation of dd(1) 2 years ago
LICENSE Fix LICENSE name 6 months ago
Makefile remove sbase-box from PHONY 2 years ago
README README: Add dd(1) to tool list 1 year ago
TODO TODO: sbase-box does not list `install` in command list 2 years ago
arg.h
basename.1
basename.c
cal.1
cal.c
cat.1
cat.c
chgrp.1
chgrp.c Remove unnecessary initializers of recursor members 2 years ago
chmod.1
chmod.c Remove unnecessary initializers of recursor members 2 years ago
chown.1
chown.c Remove unnecessary initializers of recursor members 2 years ago
chroot.1
chroot.c
cksum.1
cksum.c
cmp.1
cmp.c
cols.1
cols.c
comm.1
comm.c
compat.h
config.mk
cp.1
cp.c
cron.1
cron.c
crypt.h
cut.1
cut.c
date.1
date.c
dd.1 Add implementation of dd(1) 2 years ago
dd.c dd: Always move excess to beginning of buffer after read/write loops 1 year ago
dirname.1
dirname.c
du.1
du.c Remove unnecessary initializers of recursor members 2 years ago
echo.1
echo.c
ed.1
ed.c ed: Fix double-free 2 years ago
env.1
env.c
expand.1
expand.c
expr.1
expr.c
false.1
false.c
find.1
find.c find: Flush stdout before executing commands 1 year ago
flock.1
flock.c
fold.1
fold.c fold: fix handling of -s 2 years ago
fs.h
getconf.1
getconf.c
getconf.sh
grep.1
grep.c
head.1
head.c
hostname.1
hostname.c
join.1
join.c
kill.1
kill.c
link.1
link.c
ln.1
ln.c
logger.1
logger.c
logname.1
logname.c
ls.1
ls.c
md5.h
md5sum.1
md5sum.c *sum: Ignore -b and -t flags 3 years ago
mkdir.1
mkdir.c
mkfifo.1
mkfifo.c
mknod.1
mknod.c
mktemp.1
mktemp.c
mv.1
mv.c mv: Move on to other files if rename fails with something other than EXDEV 1 year ago
nice.1
nice.c
nl.1 nl.1: document pages 2 years ago
nl.c
nohup.1
nohup.c nohup: Open nohup.out WRONLY 11 months ago
od.1
od.c
paste.1
paste.c paste: Minor style tweaks 2 years ago
pathchk.1
pathchk.c
printenv.1
printenv.c
printf.1
printf.c printf: allow flags for the %s format string aswell 1 year ago
pwd.1
pwd.c
queue.h
readlink.1
readlink.c
renice.1
renice.c
rev.1
rev.c
rm.1
rm.c Remove unnecessary initializers of recursor members 2 years ago
rmdir.1
rmdir.c
sed.1
sed.c
seq.1
seq.c
setsid.1 setsid: add optional -f to force fork() 2 years ago
setsid.c setsid: fix usage information for -f flag 3 months ago
sha1.h
sha1sum.1
sha1sum.c *sum: Ignore -b and -t flags 3 years ago
sha224.h
sha224sum.1
sha224sum.c *sum: Ignore -b and -t flags 3 years ago
sha256.h
sha256sum.1
sha256sum.c *sum: Ignore -b and -t flags 3 years ago
sha384.h
sha384sum.1
sha384sum.c *sum: Ignore -b and -t flags 3 years ago
sha512-224.h
sha512-224sum.1
sha512-224sum.c *sum: Ignore -b and -t flags 3 years ago
sha512-256.h
sha512-256sum.1
sha512-256sum.c *sum: Ignore -b and -t flags 3 years ago
sha512.h
sha512sum.1
sha512sum.c *sum: Ignore -b and -t flags 3 years ago
sleep.1
sleep.c
sort.1
sort.c
split.1
split.c
sponge.1
sponge.c
strings.1
strings.c strings: Rename `len` to `min` 2 years ago
sync.1
sync.c
tail.1
tail.c
tar.1
tar.c tar: check if allocation failed 1 year ago
tee.1
tee.c
test.1
test.c
text.h
tftp.1
tftp.c
time.1
time.c
touch.1
touch.c
tr.1
tr.c
true.1
true.c
tsort.1
tsort.c
tty.1
tty.c
uname.1
uname.c
unexpand.1
unexpand.c
uniq.1
uniq.c
unlink.1
unlink.c
utf.h paste: Support -d '\0' 2 years ago
util.h
uudecode.1
uudecode.c
uuencode.1
uuencode.c
wc.1
wc.c
which.1
which.c
whoami.1
whoami.c
xargs.1
xargs.c
xinstall.1
xinstall.c install: Unlink destination file on failure 2 years ago
yes.1
yes.c

README

sbase - suckless unix tools
===========================

sbase is a collection of unix tools that are inherently portable across
UNIX and UNIX-like systems.

The complement of sbase is ubase[1] which is Linux-specific and provides
all the non-portable tools. Together they are intended to form a base
system similar to busybox but much smaller and suckless.

Building
--------

To build sbase, simply type make. You may have to fiddle with config.mk
depending on your system.

You can also build sbase-box, which generates a single binary containing
all the required tools. You can then symlink the individual tools to
sbase-box or run: make sbase-box-install

Ideally you will want to statically link sbase. If you are on Linux we
recommend using musl-libc[2].

Portability
-----------

sbase has been compiled on a variety of different operating systems,
including Linux, *BSD, OSX, Haiku, Solaris, SCO OpenServer and others.

Various combinations of operating systems and architectures have also
been built.

You can build sbase with gcc, clang, tcc, nwcc and pcc.

Status
------

The following tools are implemented:

'#' -> UTF-8 support, '=' -> Implicit UTF-8 support, '*' -> Finished,
'|' -> Audited, 'o' -> POSIX 2013 compliant, 'x' -> Non-POSIX,
'0' -> NUL handling, '()' -> Petty flag

UTILITY MISSING
------- -------
0=*|o basename .
0=*|o cal .
0=*|o cat .
0=*|o chgrp .
0=*|o chmod .
0=*|o chown .
0=*|x chroot .
0=*|o cksum .
0=*|o cmp .
0#*|x cols .
0=*|o comm .
0=*|o cp (-i)
0=*|x cron .
0#*|o cut .
0=*|o date .
0=*|o dd .
0=*|o dirname .
0=*|o du .
0=*|o echo .
o ed .
0=*|o env .
0#*|o expand .
0#*|o expr .
0=*|o false .
0= find .
0=* x flock .
0#*|o fold .
0=*|o getconf (-v)
=*|o grep .
0=*|o head .
0=*|x hostname .
0=*|x install .
0=* o join .
0=*|o kill .
0=*|o link .
0=*|o ln .
0=*|o logger .
0=*|o logname .
0#* o ls (-C, -k, -m, -p, -s, -x)
0=*|x md5sum .
0=*|o mkdir .
0=*|o mkfifo .
0=*|x mknod .
0=*|x mktemp .
0=*|o mv (-i)
0=*|o nice .
0#*|o nl .
0=*|o nohup .
0=*|o od .
0#* o pathchk .
#*|o paste .
0=*|x printenv .
0#*|o printf .
0=*|o pwd .
0=*|x readlink .
0=*|o renice .
0#* x rev .
0=*|o rm (-i)
0=*|o rmdir .
# sed .
0=*|x seq .
0=*|x setsid .
0=*|x sha1sum .
0=* x sha224sum .
0=*|x sha256sum .
0=* x sha238sum .
0=*|x sha512sum .
0=* x sha512-224sum .
0=* x sha512-256sum .
0=*|o sleep .
0#*|o sort .
0=*|o split .
0=*|x sponge .
0#*|o strings .
0=*|x sync .
0=*|o tail .
0=*|x tar .
0=*|o tee .
0=*|o test .
0=*|x tftp .
0=*|o time .
0=*|o touch .
0#*|o tr .
0=*|o true .
0=* o tsort .
0=*|o tty .
0=*|o uname .
0#*|o unexpand .
0=*|o uniq .
0=*|o unlink .
0=*|o uudecode .
0=*|o uuencode .
0#*|o wc .
0=*|x which .
0=*|x whoami .
0=*|o xargs (-p)
0=*|x yes .

[1] http://git.suckless.org/ubase/
[2] http://www.musl-libc.org/