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 19:36:13 +01:00
|
|
|
The following tools are implemented ('*' == finished, '#' == UTF-8 support,
|
2015-02-28 14:42:26 +01:00
|
|
|
'=' == implicit UTF-8 support, '|' == audited):
|
2014-11-20 23:01:56 +00:00
|
|
|
|
2015-02-28 14:48:44 +01:00
|
|
|
UTILITY POSIX 2008 COMPLIANT MISSING OPTIONS
|
|
|
|
------- -------------------- ---------------
|
|
|
|
=*| basename yes none
|
2015-03-08 21:28:32 +01:00
|
|
|
=*| cal yes none
|
2015-03-02 00:36:51 +01:00
|
|
|
=*| cat yes none
|
2015-03-08 23:31:59 +01:00
|
|
|
=*| chgrp yes none
|
2015-03-05 19:08:28 +01:00
|
|
|
=*| chmod yes none
|
2015-03-09 00:37:34 +01:00
|
|
|
=*| chown yes none
|
2015-03-02 17:41:58 +01:00
|
|
|
=*| chroot non-posix none
|
2015-03-11 00:13:48 +01:00
|
|
|
=*| cksum yes none
|
2015-03-11 11:16:40 +01:00
|
|
|
=*| cmp yes none
|
2015-03-08 19:33:46 +01:00
|
|
|
#*| cols non-posix none
|
2015-03-03 10:52:34 +01:00
|
|
|
col yes none
|
2015-03-11 13:47:33 +01:00
|
|
|
=*| comm yes none
|
2015-03-02 19:15:19 +01:00
|
|
|
=*| cp yes none (-i)
|
2015-03-11 17:33:08 +01:00
|
|
|
=*| cron non-posix none
|
|
|
|
#*| cut yes none
|
2015-03-02 15:12:19 +01:00
|
|
|
=*| date yes none
|
2015-02-28 19:50:12 +01:00
|
|
|
=*| dirname yes none
|
2015-03-11 23:31:26 +01:00
|
|
|
=*| du yes none
|
2015-02-28 20:16:10 +01:00
|
|
|
=*| echo yes none
|
2015-03-02 14:50:43 +01:00
|
|
|
=*| env yes none
|
2015-03-13 00:37:37 +01:00
|
|
|
#*| expand yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
#* expr yes none
|
2015-02-28 15:12:19 +01:00
|
|
|
=*| false yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
= find yes none
|
2015-03-13 23:47:41 +01:00
|
|
|
#*| fold yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
=* grep yes none
|
2015-03-05 00:58:12 +01:00
|
|
|
=*| head yes none
|
2015-02-28 21:22:55 +01:00
|
|
|
=*| hostname non-posix none
|
2015-03-16 12:37:46 +01:00
|
|
|
=*| kill yes none
|
2015-02-28 19:42:26 +01:00
|
|
|
=*| link yes none
|
2015-03-05 21:14:43 +01:00
|
|
|
=*| ln yes none
|
2015-03-07 00:08:43 +01:00
|
|
|
=*| logger yes none
|
2015-03-17 00:44:18 +01:00
|
|
|
=*| logname yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
= ls no (-C), -S, -f, -m, -s, -x
|
2015-03-01 22:59:20 +01:00
|
|
|
=*| md5sum non-posix none
|
2015-03-05 18:03:08 +01:00
|
|
|
=*| mkdir yes none
|
2015-03-02 17:25:29 +01:00
|
|
|
=*| mkfifo yes none
|
2015-03-17 11:01:33 +01:00
|
|
|
=*| mktemp non-posix none
|
2015-03-04 23:22:43 +01:00
|
|
|
=*| mv yes none (-i)
|
2015-03-02 16:53:13 +01:00
|
|
|
=*| nice yes none
|
2015-03-10 12:49:56 +01:00
|
|
|
= nl no -d, -f, -h, -p
|
2015-03-04 22:39:12 +01:00
|
|
|
=*| nohup yes none
|
2015-03-17 21:30:12 +01:00
|
|
|
#*| paste yes none
|
2015-02-28 21:47:17 +01:00
|
|
|
=*| printenv non-posix none
|
2015-03-17 21:43:01 +01:00
|
|
|
#*| printf yes none
|
2015-03-03 17:24:14 +01:00
|
|
|
=*| pwd yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
= readlink non-posix none
|
2015-03-17 22:59:48 +01:00
|
|
|
=*| renice yes none
|
2015-02-28 21:30:20 +01:00
|
|
|
=*| rm yes none (-i)
|
2015-03-02 15:39:39 +01:00
|
|
|
=*| rmdir yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
# sed
|
|
|
|
seq non-posix none
|
2015-03-02 00:20:35 +01:00
|
|
|
=*| setsid non-posix none
|
2015-03-01 22:59:20 +01:00
|
|
|
=*| sha1sum non-posix none
|
|
|
|
=*| sha256sum non-posix none
|
|
|
|
=*| sha512sum non-posix none
|
2015-02-28 20:10:25 +01:00
|
|
|
=*| sleep yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
sort no -m, -o, -d, -f, -i
|
2015-03-17 22:59:48 +01:00
|
|
|
=*| split yes none
|
2015-03-01 23:42:16 +01:00
|
|
|
=*| sponge non-posix none
|
2015-03-17 23:05:50 +01:00
|
|
|
#*| strings yes none
|
2015-03-17 23:07:41 +01:00
|
|
|
=*| sync non-posix none
|
2015-03-17 23:24:43 +01:00
|
|
|
=*| tail yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
=* tar non-posix none
|
2015-03-04 23:05:11 +01:00
|
|
|
=*| tee yes none
|
2015-03-17 23:35:11 +01:00
|
|
|
=*| test yes none
|
2015-03-05 00:29:03 +01:00
|
|
|
=*| time yes none
|
2015-03-17 23:38:09 +01:00
|
|
|
=*| touch yes none
|
2015-03-17 23:41:22 +01:00
|
|
|
#*| tr yes none
|
2015-02-28 15:12:19 +01:00
|
|
|
=*| true yes none
|
2015-02-28 19:59:34 +01:00
|
|
|
=*| tty yes none
|
2015-03-05 00:33:28 +01:00
|
|
|
=*| uname yes none
|
2015-03-17 23:45:03 +01:00
|
|
|
#*| unexpand yes none
|
2015-03-17 23:59:09 +01:00
|
|
|
=*| uniq yes none
|
2015-02-28 20:05:22 +01:00
|
|
|
=*| unlink yes none
|
2015-03-18 00:10:36 +01:00
|
|
|
=*| uudecode yes none
|
2015-03-18 00:14:56 +01:00
|
|
|
=*| uuencode yes none
|
2015-02-28 14:42:26 +01:00
|
|
|
#* wc yes none
|
|
|
|
= xargs no -I, -L, -p, -s, -t, -x
|
2015-02-28 21:12:27 +01:00
|
|
|
=*| yes non-posix 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
|
2015-02-28 15:40:16 +01:00
|
|
|
individual tools to sbase-box or run: make sbase-box-install
|
2014-02-12 14:34:09 +00:00
|
|
|
|
|
|
|
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/
|