2014-02-12 14:34:09 +00:00
|
|
|
sbase - suckless unix tools
|
|
|
|
===========================
|
|
|
|
|
|
|
|
sbase is a collection of unix tools that are inherently portable
|
|
|
|
across UNIX and UNIX-like systems.
|
|
|
|
|
2015-01-18 18:36:13 +00:00
|
|
|
The following tools are implemented ('*' == finished, '#' == UTF-8 support,
|
|
|
|
'=' == implicit UTF-8 support):
|
2014-11-20 23:01:56 +00:00
|
|
|
|
2015-01-18 18:41:14 +00:00
|
|
|
UTILITY POSIX 2008 COMPLIANT MISSING OPTIONS
|
|
|
|
------- -------------------- ---------------
|
2015-01-18 18:36:13 +00:00
|
|
|
=* basename yes none
|
|
|
|
=* cal yes none
|
|
|
|
=* cat yes none
|
|
|
|
= chgrp no -h, -H, -L, -P
|
|
|
|
=* chmod yes none
|
|
|
|
= chown no -h, -H, -L, -P
|
|
|
|
= chroot non-posix none
|
|
|
|
=* cksum yes none
|
2015-01-23 22:00:20 +00:00
|
|
|
cmp yes none
|
|
|
|
cols non-posix none
|
2015-01-18 18:36:13 +00:00
|
|
|
=* comm yes none
|
2015-01-23 22:31:46 +00:00
|
|
|
= cp no -H, (-i), -L
|
2015-01-18 18:36:13 +00:00
|
|
|
=* cron non-posix none
|
2015-01-22 11:32:50 +00:00
|
|
|
#* cut yes none
|
2015-01-23 21:54:25 +00:00
|
|
|
=* date yes none
|
2015-01-23 22:17:54 +00:00
|
|
|
=* dirname yes none
|
2015-01-23 22:31:46 +00:00
|
|
|
= du no -H, -L, (-x)
|
2015-01-23 22:49:24 +00:00
|
|
|
=* echo yes none
|
2015-01-23 23:22:06 +00:00
|
|
|
=* env yes none
|
2015-01-25 13:31:02 +00:00
|
|
|
#* expand yes none
|
2015-01-25 15:49:46 +00:00
|
|
|
=* expr yes none
|
2015-01-18 18:36:13 +00:00
|
|
|
=* false yes none
|
2015-01-25 20:33:28 +00:00
|
|
|
#* fold yes none
|
|
|
|
=* grep yes none
|
2015-01-25 21:01:26 +00:00
|
|
|
=* head yes none
|
2015-01-18 18:36:13 +00:00
|
|
|
= hostname non-posix none
|
|
|
|
=* kill yes none
|
2015-01-25 21:44:47 +00:00
|
|
|
=* link yes none
|
2015-01-26 13:54:22 +00:00
|
|
|
=* ln yes none
|
2015-01-18 18:36:13 +00:00
|
|
|
=* logger yes none
|
2015-01-26 14:06:50 +00:00
|
|
|
=* logname yes none
|
2015-01-20 16:50:37 +00:00
|
|
|
= ls no -C, -R, -q, -u
|
2015-01-18 18:36:13 +00:00
|
|
|
md5sum non-posix none
|
2015-01-26 14:30:56 +00:00
|
|
|
=* mkdir yes none
|
2015-01-18 18:36:13 +00:00
|
|
|
= mkfifo yes none
|
|
|
|
= mktemp non-posix none
|
2015-01-23 22:31:46 +00:00
|
|
|
= mv yes (-i)
|
2015-01-18 18:36:13 +00:00
|
|
|
= nice yes none
|
|
|
|
= nl no -d, -f, -h, -l, -n, -p, -v, -w
|
|
|
|
= nohup yes none
|
|
|
|
paste yes none
|
|
|
|
= printenv non-posix none
|
|
|
|
printf stolen stolen
|
|
|
|
=* pwd yes none
|
|
|
|
= readlink non-posix none
|
|
|
|
= renice yes none
|
2015-01-23 22:31:46 +00:00
|
|
|
= rm yes (-i)
|
2015-01-18 18:36:13 +00:00
|
|
|
= rmdir no -p
|
|
|
|
= setsid non-posix none
|
2015-01-26 12:12:44 +00:00
|
|
|
= sleep yes none
|
2015-01-18 18:36:13 +00:00
|
|
|
sort no -m, -o, -d, -f, -i
|
|
|
|
split yes none
|
|
|
|
= sponge non-posix none
|
|
|
|
strings no -a, -n, -t
|
|
|
|
= sync non-posix none
|
|
|
|
= tail no -c, -f
|
|
|
|
= tar non-posix none
|
2015-01-23 21:04:19 +00:00
|
|
|
=* tee yes none
|
2015-01-18 18:36:13 +00:00
|
|
|
test yes none
|
2015-01-20 11:22:09 +00:00
|
|
|
= touch no -r
|
2015-01-18 18:36:13 +00:00
|
|
|
#* tr yes none
|
|
|
|
=* true yes none
|
|
|
|
= tty yes none
|
|
|
|
= uname yes none
|
|
|
|
# unexpand yes none
|
|
|
|
= uniq no -f, -s
|
|
|
|
= unlink yes none
|
2015-01-26 12:12:44 +00:00
|
|
|
= uudecode no -o
|
|
|
|
= uuencode no -m
|
2015-01-18 18:36:13 +00:00
|
|
|
seq non-posix none
|
|
|
|
= sha1sum non-posix none
|
|
|
|
= sha256sum non-posix none
|
|
|
|
= sha512sum non-posix none
|
|
|
|
wc yes none
|
|
|
|
= xargs no -I, -L, -p, -s, -t, -x
|
|
|
|
= yes yes none
|
2014-11-20 23:01:56 +00:00
|
|
|
|
2014-02-12 18:39:13 +00:00
|
|
|
The complement of sbase is ubase[1] which is Linux-specific and
|
2014-02-12 14:34:09 +00:00
|
|
|
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.
|
|
|
|
|
|
|
|
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.
|
|
|
|
|
|
|
|
[1] http://git.suckless.org/ubase/
|
|
|
|
[2] http://www.musl-libc.org/
|