[Toybox] toybox shell: alias support

Kevin Karhan kevin at karhan.guru
Tue Feb 10 23:16:56 PST 2026


As [hinted by Rob](https://mstdn.jp/@landley/116043106074437957) I'd 
like to add some test cases for aiias support in toybox's shell.

- I mostly truncated [my public .bash_aliases 
file](https://github.com/kkarhan/misc-scripts/blob/master/bash/.bash_aliases), 
ditching external tools like enc and rewriting it to use wget instead of 
curl (because a wget implementation is part of toybox).

I did test the commands to be working on a regular system [Ubuntu 
22.04.5 LTS @ amd64] , but I don't see why these shouldn't work in 
toybox (mkroot) either as I didn't use anything weirdly bash-specific.

- I hope this helps in implementing said functionality and testing it. 
If desired I could add some more options but I don't think that's 
strictly necessary. Aliases are merely meant as userspace (if not 
user-specific) shortcuts in a shell.

-  Kev
-------------- next part --------------
#	toybox shell aliase
##	This is a sample submission for development of alias support in toybox's shell (toysh).
###	It is based upon an existing .bash_aliases file:
###	See https://github.com/kkarhan/misc-scripts/blob/master/bash/.bash_aliases for that.

##	Minor shortcuts to improve speed
alias cls='clear'
alias dir='ls -ahl'
function ding() { echo -ne '\007'; }
###	Create a Beep [will only make a system beep if output is redirected to a local or unused console]
alias unixtime='date +%s'
###	Output Unixtime

##   Connectivity Diagnostics
function isup() { ping -a -b -c 1 -D "$@"; }
###	Single Ping attempt to a specific host which has to be specified i.e. "isup toybox.net"
###	This is done to see if a host "is up"...
alias pubip='wget -qO-  https://wtfismyip.com/text'
###	find public IP adress
###	NOTE:	Lack of connectivity will result in a 404 error!
###	alternative Service:	ipinfo.io/ip
###	see:	https://stackoverflow.com/questions/14594151/methods-to-detect-public-ip-address-in-bash/14594304#14594304
####	Originally used curl, rewritten to use wget with identical results
####	see:	https://superuser.com/questions/321240/how-do-you-redirect-wget-response-to-standard-out/977047#977047

##	Post something to a server (i.e. ntfy.sh):
function notify() { wget --method=PUT --body-data="$2" ntfy.sh/$1 ; }
###	Sends message ""$2" to ntfy.sh/$1
###	See:	https://docs.ntfy.sh/publish
####	Originally used curl, but was rewritten to use wget PUT method
####	See:	https://superuser.com/questions/130009/how-can-i-do-a-http-put-with-wget/828631#828631

##	Random Password Generator Functions
###	random UUID
alias uuid='cat /proc/sys/kernel/random/uuid'
###	64 digits
alias pw64='</dev/urandom tr -dc '0123456789AaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRrSsTtUuVvWwXxYyZz@!?~+#-_' | head -c64; echo;'
###	Random 8 digit TAN
alias rtan='< /dev/urandom tr -dc 0-9 | head -c${1:-8};echo;'
###	see:	https://www.howtogeek.com/howto/30184/10-ways-to-generate-a-random-password-from-the-command-line/
-------------- next part --------------
-----BEGIN PGP PUBLIC KEY BLOCK-----

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
=sLza
-----END PGP PUBLIC KEY BLOCK-----
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_0xA8E46A81DD71236F.asc
Type: application/pgp-keys
Size: 3069 bytes
Desc: OpenPGP public key
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20260211/b9a567db/attachment-0001.asc>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: OpenPGP_signature.asc
Type: application/pgp-signature
Size: 840 bytes
Desc: OpenPGP digital signature
URL: <http://lists.landley.net/pipermail/toybox-landley.net/attachments/20260211/b9a567db/attachment-0001.sig>


More information about the Toybox mailing list