suckless unix tools
Go to file
sin 300eedc50a Add README and TODO to dist target 2014-11-14 11:58:42 +00:00
util Tweak NULL-pointer checks 2014-11-14 10:54:30 +00:00
LICENSE Add Michael Forney to LICENSE 2014-11-03 10:17:41 +00:00
Makefile Add README and TODO to dist target 2014-11-14 11:58:42 +00:00
README Add a conformance table in the README 2014-11-13 14:59:41 +00:00
TODO Update TODO 2014-11-13 16:33:47 +00:00
arg.h Rename __ARG_H__ to ARG_H__ 2013-11-25 21:29:20 +00:00
basename.1 Moving back to the stone age. 2012-04-23 16:32:41 +02:00
basename.c Fix coding style 2014-11-13 18:08:43 +00:00
cal.1 Make date(1) compatible to GNU date(1). 2013-06-19 22:10:26 +02:00
cal.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
cat.1 add sleep & date, thanks kamil 2011-05-23 19:00:31 +01:00
cat.c Fix coding style 2014-11-13 18:08:43 +00:00
chgrp.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
chgrp.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
chmod.1 Add sticky bit to documentation. 2013-10-20 10:41:32 +01:00
chmod.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
chown.1 chown: update usage 2014-07-21 16:43:54 +01:00
chown.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
chroot.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
chroot.c Fix coding style 2014-11-13 18:08:43 +00:00
cksum.1 cksum: error check 2011-06-10 04:36:40 +01:00
cksum.c Tweak NULL-pointer checks 2014-11-14 10:54:30 +00:00
cmp.1 update some man pages 2014-04-12 20:33:33 +01:00
cmp.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
col.1 Import col(1) from OpenBSD with minor modifications 2014-09-29 19:52:31 +01:00
col.c Fix col(1) -f 2014-10-17 21:14:00 +01:00
cols.1 Rename mc(1) to cols(1) 2014-03-12 14:47:38 +00:00
cols.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
comm.1 Add comm 2013-06-19 20:00:10 +02:00
comm.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
config.mk add -D_DEFAULT_SOURCE to placate gcc 2014-11-14 10:37:52 +00:00
cp.1 cp: add -v, fix manpage info 2014-07-21 16:43:31 +01:00
cp.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
crypt.h checksum tools: implement -c 2014-03-23 18:02:39 +00:00
csplit.1 Import csplit(1) from OpenBSD 2014-10-16 12:22:36 +01:00
csplit.c Staticise symbols 2014-10-16 12:30:52 +01:00
cut.1 Add cut(1) 2013-10-08 20:41:32 +01:00
cut.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
date.1 Add -u option to date (POSIX and Plan 9, and useful) 2012-04-23 08:32:24 -07:00
date.c Fix coding style 2014-11-13 18:08:43 +00:00
dirname.1 Fix argument naming in dirname(1) 2014-11-13 14:56:34 +00:00
dirname.c Fix coding style 2014-11-13 18:08:43 +00:00
du.1 du: add -d flag to specify the max depth to show files or directories 2014-10-18 23:57:00 +01:00
du.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
echo.1 initial commit 2011-05-23 02:36:34 +01:00
echo.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
env.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
env.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
expand.1 Implement -i flag for expand 2014-06-09 17:00:33 +01:00
expand.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
expr.1 Add expr.1 2014-09-29 14:22:59 +01:00
expr.c Staticise symbols 2014-10-16 12:30:52 +01:00
false.1 initial commit 2011-05-23 02:36:34 +01:00
false.c Simplify true(1) and false(1) 2014-10-03 00:03:08 +01:00
fold.1 fold: clarify utf8 behaviour in manpage 2012-05-25 21:51:24 +01:00
fold.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
fs.h Un-boolify sbase 2014-11-14 10:54:20 +00:00
grep.1 Implement -e support for grep 2013-10-05 13:51:45 +01:00
grep.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
head.1 add tail 2011-05-26 16:18:42 -01:00
head.c Fix coding style 2014-11-13 18:08:43 +00:00
hostname.1 Add hostname(1) 2013-10-05 14:58:55 +01:00
hostname.c Fix coding style 2014-11-13 18:08:43 +00:00
kill.1 kill -l accepts at most 1 arg 2014-11-11 16:08:30 +00:00
kill.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
link.1 Add link(1) 2014-10-17 15:36:16 +01:00
link.c Fix coding style 2014-11-13 18:08:43 +00:00
ln.1 ln -f 2011-06-04 02:56:18 +01:00
ln.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
logname.1 Add logname(1) 2014-10-17 15:36:27 +01:00
logname.c Fix coding style 2014-11-13 18:08:43 +00:00
ls.1 ls: add -h flag 2014-10-19 12:54:19 +01:00
ls.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
md5.h Add crypt.[ch] and update md5sum and sha1sum 2013-07-18 09:51:17 -04:00
md5sum.1 update some man pages 2014-04-12 20:33:33 +01:00
md5sum.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
mkdir.1 Implement -m option for mkdir 2013-10-05 13:51:45 +01:00
mkdir.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
mkfifo.1 Implement -m for mkfifo(1) 2013-11-30 20:58:15 +00:00
mkfifo.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
mktemp.1 Forgot to update manpage for mktemp(1) 2013-11-14 19:50:07 +00:00
mktemp.c Fix coding style 2014-11-13 18:08:43 +00:00
mv.1 Support -f for mv 2013-10-05 13:51:45 +01:00
mv.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
nice.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
nice.c Fix coding style 2014-11-13 18:08:43 +00:00
nl.1 nl: tweak manpage 2011-06-11 00:29:06 +01:00
nl.c Fix coding style 2014-11-13 18:08:43 +00:00
nohup.1 nohup: tweak manpage 2011-06-18 14:42:06 +01:00
nohup.c Fix coding style 2014-11-13 18:08:43 +00:00
paste.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
paste.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
printenv.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
printenv.c Fix coding style 2014-11-13 18:08:43 +00:00
printf.1 Add printf.1 2014-09-29 14:35:35 +01:00
printf.c Import printf(1) from OpenBSD 2014-09-28 15:12:15 +01:00
pwd.1 pwd -LP 2011-05-28 15:37:42 +01:00
pwd.c Fix coding style 2014-11-13 18:08:43 +00:00
readlink.1 Add readlink 2013-06-16 07:46:01 +02:00
readlink.c Tweak NULL-pointer checks 2014-11-14 10:54:30 +00:00
renice.1 renice(1): renice is not PASTE 2014-05-06 16:21:56 +01:00
renice.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
rm.1 Add -R as a synonym to -r for rm(1) 2013-12-12 13:15:47 +00:00
rm.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
rmdir.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
rmdir.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
seq.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
seq.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
setsid.1 Add setsid(1) by arg 2013-10-05 14:58:55 +01:00
setsid.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
sha1.h Add crypt.[ch] and update md5sum and sha1sum 2013-07-18 09:51:17 -04:00
sha1sum.1 update some man pages 2014-04-12 20:33:33 +01:00
sha1sum.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
sha256.h Add sha256sum(1) 2013-07-20 13:20:16 -04:00
sha256sum.1 update some man pages 2014-04-12 20:33:33 +01:00
sha256sum.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
sha512.h Add sha512sum(1) 2013-08-04 11:00:34 -04:00
sha512sum.1 update some man pages 2014-04-12 20:33:33 +01:00
sha512sum.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
sleep.1 update manpages 2011-05-25 18:29:46 +01:00
sleep.c Fix coding style 2014-11-13 18:08:43 +00:00
sort.1 add -t flag to sort 2014-06-02 13:35:59 +01:00
sort.c Tweak NULL-pointer checks 2014-11-14 10:54:30 +00:00
split.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
split.c Tweak NULL-pointer checks 2014-11-14 10:54:30 +00:00
sponge.1 actually add the .c and .1 files 2013-07-02 13:26:24 -04:00
sponge.c Fix coding style 2014-11-13 18:08:43 +00:00
strings.1 Allow strings(1) to operate on more than one file 2013-10-10 16:05:05 +01:00
strings.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
sync.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
sync.c Fix coding style 2014-11-13 18:08:43 +00:00
tail.1 fix typo 2011-05-27 00:54:10 +01:00
tail.c Fix coding style 2014-11-13 18:08:43 +00:00
tar.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
tar.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
tee.1 initial commit 2011-05-23 02:36:34 +01:00
tee.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
test.1 Update manpage for binary operations in test(1) 2013-11-11 12:01:47 +00:00
test.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
text.h remove afgets 2014-06-01 18:03:20 +01:00
touch.1 add mkdir 2011-05-26 05:47:58 +01:00
touch.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
tr.1 Improved tr 2014-07-16 20:40:54 +01:00
tr.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
true.1 initial commit 2011-05-23 02:36:34 +01:00
true.c Simplify true(1) and false(1) 2014-10-03 00:03:08 +01:00
tty.1 add tty 2011-06-02 21:15:35 +01:00
tty.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
uname.1 fix manpages 2011-06-02 20:38:48 +01:00
uname.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
unexpand.1 Add unexpand(1) 2014-06-09 17:00:13 +01:00
unexpand.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
uniq.1 uniq: WTFM 2012-05-21 23:46:22 +00:00
uniq.c Tweak NULL-pointer checks 2014-11-14 10:54:30 +00:00
unlink.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
unlink.c Sort includes and more cleanup and fixes in util/ 2014-11-14 10:54:10 +00:00
util.h Undef MIN/MAX in case they are defined somewhere else 2014-11-13 16:01:34 +00:00
uudecode.1 Initial commit of the uudecode tool and man page 2014-02-02 20:50:31 +00:00
uudecode.c Tweak NULL-pointer checks 2014-11-14 10:54:30 +00:00
uuencode.1 Add uuencode(1) 2014-01-31 15:29:11 +00:00
uuencode.c Fix coding style 2014-11-13 18:08:43 +00:00
wc.1 getopt 2011-05-24 01:13:34 +01:00
wc.c Un-boolify sbase 2014-11-14 10:54:20 +00:00
xargs.1 update some man pages 2014-04-12 20:33:33 +01:00
xargs.c Fix coding style 2014-11-13 18:08:43 +00:00
yes.1 Tar compiles on BSD, thanks Roberto E. Vargas Caballero. Also remove tons of trailing whitespace. 2013-07-20 01:27:42 -04:00
yes.c Fix coding style 2014-11-13 18:08:43 +00:00

README

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

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

The following programs are currently implemented:

+---------+-----------+--------+
|UTILITY  |POSIX      |FEATURES|
|         |CONFORMANCE|MISSING |
+---------+-----------+--------+
|basename |           |        |
+---------+-----------+--------+
|cal      |           |        |
+---------+-----------+--------+
|cat      |           |        |
+---------+-----------+--------+
|chgrp    |           |        |
+---------+-----------+--------+
|chmod    |           |        |
+---------+-----------+--------+
|chown    |           |        |
+---------+-----------+--------+
|chroot   |           |        |
+---------+-----------+--------+
|cksum    |           |        |
+---------+-----------+--------+
|cmp      |           |        |
+---------+-----------+--------+
|col      |           |        |
+---------+-----------+--------+
|cols     |           |        |
+---------+-----------+--------+
|comm     |           |        |
+---------+-----------+--------+
|cp       |           |        |
+---------+-----------+--------+
|csplit   |           |        |
+---------+-----------+--------+
|cut      |           |        |
+---------+-----------+--------+
|date     |           |        |
+---------+-----------+--------+
|dirname  |           |        |
+---------+-----------+--------+
|du       |           |        |
+---------+-----------+--------+
|echo     |           |        |
+---------+-----------+--------+
|env      |           |        |
+---------+-----------+--------+
|expand   |           |        |
+---------+-----------+--------+
|expr     |           |        |
+---------+-----------+--------+
|false    |           |        |
+---------+-----------+--------+
|fold     |           |        |
+---------+-----------+--------+
|grep     |           |        |
+---------+-----------+--------+
|head     |           |        |
+---------+-----------+--------+
|hostname |           |        |
+---------+-----------+--------+
|kill     |           |        |
+---------+-----------+--------+
|link     |           |        |
+---------+-----------+--------+
|ln       |           |        |
+---------+-----------+--------+
|logname  |           |        |
+---------+-----------+--------+
|ls       |           |        |
+---------+-----------+--------+
|md5sum   |           |        |
+---------+-----------+--------+
|mkdir    |           |        |
+---------+-----------+--------+
|mkfifo   |           |        |
+---------+-----------+--------+
|mktemp   |           |        |
+---------+-----------+--------+
|mv       |           |        |
+---------+-----------+--------+
|nice     |           |        |
+---------+-----------+--------+
|nl       |           |        |
+---------+-----------+--------+
|nohup    |           |        |
+---------+-----------+--------+
|paste    |           |        |
+---------+-----------+--------+
|printenv |           |        |
+---------+-----------+--------+
|printf   |           |        |
+---------+-----------+--------+
|pwd      |           |        |
+---------+-----------+--------+
|readlink |           |        |
+---------+-----------+--------+
|renice   |           |        |
+---------+-----------+--------+
|rm       |           |        |
+---------+-----------+--------+
|rmdir    |           |        |
+---------+-----------+--------+
|sleep    |           |        |
+---------+-----------+--------+
|setsid   |           |        |
+---------+-----------+--------+
|sort     |           |        |
+---------+-----------+--------+
|split    |           |        |
+---------+-----------+--------+
|sponge   |           |        |
+---------+-----------+--------+
|strings  |           |        |
+---------+-----------+--------+
|sync     |           |        |
+---------+-----------+--------+
|tail     |           |        |
+---------+-----------+--------+
|tar      |           |        |
+---------+-----------+--------+
|tee      |           |        |
+---------+-----------+--------+
|test     |           |        |
+---------+-----------+--------+
|touch    |           |        |
+---------+-----------+--------+
|tr       |           |        |
+---------+-----------+--------+
|true     |           |        |
+---------+-----------+--------+
|tty      |           |        |
+---------+-----------+--------+
|uudecode |           |        |
+---------+-----------+--------+
|uuencode |           |        |
+---------+-----------+--------+
|uname    |           |        |
+---------+-----------+--------+
|unexpand |           |        |
+---------+-----------+--------+
|uniq     |           |        |
+---------+-----------+--------+
|unlink   |           |        |
+---------+-----------+--------+
|seq      |           |        |
+---------+-----------+--------+
|sha1sum  |           |        |
+---------+-----------+--------+
|sha256sum|           |        |
+---------+-----------+--------+
|sha512sum|           |        |
+---------+-----------+--------+
|wc       |           |        |
+---------+-----------+--------+
|xargs    |           |        |
+---------+-----------+--------+
|yes      |           |        |
+---------+-----------+--------+

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.

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.

sbase  also compiles  and runs  on minix3  with slight  modifications.
They do  not provide mmap()/munmap()  so you need to  use minix_mmap()
and minix_munmap() respectively.

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/