suckless unix tools
https://core.suckless.org/sbase
libutf | ||
util | ||
arg.h | ||
basename.1 | ||
basename.c | ||
cal.1 | ||
cal.c | ||
cat.1 | ||
cat.c | ||
chgrp.1 | ||
chgrp.c | ||
chmod.1 | ||
chmod.c | ||
chown.1 | ||
chown.c | ||
chroot.1 | ||
chroot.c | ||
cksum.1 | ||
cksum.c | ||
cmp.1 | ||
cmp.c | ||
col.1 | ||
col.c | ||
cols.1 | ||
cols.c | ||
comm.1 | ||
comm.c | ||
compat.h | ||
config.mk | ||
cp.1 | ||
cp.c | ||
crypt.h | ||
csplit.1 | ||
csplit.c | ||
cut.1 | ||
cut.c | ||
date.1 | ||
date.c | ||
dirname.1 | ||
dirname.c | ||
du.1 | ||
du.c | ||
echo.1 | ||
echo.c | ||
env.1 | ||
env.c | ||
expand.1 | ||
expand.c | ||
expr.1 | ||
expr.c | ||
false.1 | ||
false.c | ||
fold.1 | ||
fold.c | ||
fs.h | ||
grep.1 | ||
grep.c | ||
head.1 | ||
head.c | ||
hostname.1 | ||
hostname.c | ||
kill.1 | ||
kill.c | ||
LICENSE | ||
link.1 | ||
link.c | ||
ln.1 | ||
ln.c | ||
logname.1 | ||
logname.c | ||
ls.1 | ||
ls.c | ||
Makefile | ||
md5.h | ||
md5sum.1 | ||
md5sum.c | ||
mkdir.1 | ||
mkdir.c | ||
mkfifo.1 | ||
mkfifo.c | ||
mktemp.1 | ||
mktemp.c | ||
mv.1 | ||
mv.c | ||
nice.1 | ||
nice.c | ||
nl.1 | ||
nl.c | ||
nohup.1 | ||
nohup.c | ||
paste.1 | ||
paste.c | ||
printenv.1 | ||
printenv.c | ||
printf.1 | ||
printf.c | ||
pwd.1 | ||
pwd.c | ||
queue.h | ||
readlink.1 | ||
readlink.c | ||
README | ||
renice.1 | ||
renice.c | ||
rm.1 | ||
rm.c | ||
rmdir.1 | ||
rmdir.c | ||
runetypebody.h | ||
seq.1 | ||
seq.c | ||
setsid.1 | ||
setsid.c | ||
sha1.h | ||
sha1sum.1 | ||
sha1sum.c | ||
sha256.h | ||
sha256sum.1 | ||
sha256sum.c | ||
sha512.h | ||
sha512sum.1 | ||
sha512sum.c | ||
sleep.1 | ||
sleep.c | ||
sort.1 | ||
sort.c | ||
split.1 | ||
split.c | ||
sponge.1 | ||
sponge.c | ||
strings.1 | ||
strings.c | ||
sync.1 | ||
sync.c | ||
tail.1 | ||
tail.c | ||
tar.1 | ||
tar.c | ||
tee.1 | ||
tee.c | ||
test.1 | ||
test.c | ||
text.h | ||
TODO | ||
touch.1 | ||
touch.c | ||
tr.1 | ||
tr.c | ||
true.1 | ||
true.c | ||
tty.1 | ||
tty.c | ||
uname.1 | ||
uname.c | ||
unexpand.1 | ||
unexpand.c | ||
uniq.1 | ||
uniq.c | ||
unlink.1 | ||
unlink.c | ||
utf.h | ||
util.h | ||
uudecode.1 | ||
uudecode.c | ||
uuencode.1 | ||
uuencode.c | ||
wc.1 | ||
wc.c | ||
xargs.1 | ||
xargs.c | ||
yes.1 | ||
yes.c |
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 -------- You need GNU make to build sbase. 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/