. oooo .o8
.o8 `888 "888
.o888oo .ooooo. .ooooo. 888 888oooo. .ooooo. oooo ooo
888 d88' `88b d88' `88b 888 d88' `88b d88' `88b `88b..8P'
888 888 888 888 888 888 888 888 888 888 Y888'
888 . 888 888 888 888 888 888 888 888 888 .o8"'88b
"888" `Y8bod8P' `Y8bod8P' o888o `Y8bod8P' `Y8bod8P' o88' 888otoolbox is a collection of Unix shell utilities for everyday use.
Each utility is a portable POSIX script built on the Unix shell framework
shellbase:
-
bakwrapsrdiff-backupto create incremental backups. -
chownerchanges the owner and permissions on a directory. -
copyrightupdates years in copyright notices. -
essidwatches for Wi-Fi ESSID changes and reports them. -
flactomp3converts audio files tomp3with tags. -
ivalvalidates image files; the name stands for Image Validation. -
myipcontinuously displays the external IP address usingdig. -
pingoadds timestamps to the ping command output. -
reelconverts a video clip to a vertical (1080×1920) social media reel usingffmpeg, padding it with a blurred copy of itself or, with-c, center-cropping it to fill the frame. Accepts-ffor input file,-ofor output file,-sfor start time,-ufor duration, and-gfor a top and bottom gap in crop mode. -
remountremounts filesystems using a temporaryfstabconfiguration, then restores the permanent one. -
rsyncxwrapsrsyncand picks a safe option set for the installedrsyncversion. -
scannerdetects whether a device with a given MAC address is present on the local network usingarp-scan. -
siftcopies a random subset of files from a source directory until the byte budget given by-s|--size=N[K|M|G](default8G) is reached. Takes the source directory as the mandatory positional argument; the destination defaults to the current directory and can be set with-o|--output=DIR. -
speedcontinuously displays download and upload internet speeds usingspeedtest. -
texcompiles a TeX source file to PDF and opens the result. -
truremoves a torrent and its content, then adds it again to increase the share ratio; the name stands for Transmission Remote Updater. It can run undercron. -
ydatawrapsyt-dlp: it downloads, converts, renames, and stores media safely. It can run undercron.
Ensure /usr/local/bin is in your PATH.
git clone git@github.com:rdavid/toolbox.git &&
./toolbox/app/installThe project uses Daniel J. Bernstein’s build system redo.
You can install Sergey Matveev’s goredo implementation.
redo lint runs whichever of the following linters are installed:
actionlint,
reuse,
shellcheck,
shfmt,
typos,
vale,
yamllint,
zizmor.
It also parses every script with dash -n and mksh -n to catch syntax
errors and Bash-only constructs.
David Rabkin holds the copyright to toolbox and distributes it
under the Zero-Clause BSD license.