In our days most of the appliances that support a terminal session and provide a CLI or command line interface behave like UNIX/Linux.
This is good, as at least there is a wide standard for basic system commands like:
ls dir cat df uname hostname ps etc...
However the most common implementation of a CLI in appliances that have an embedded OS, is not really a Linux environment or shell, but an implementation of BusyBox.
BusyBox is a multi-call binary that combines many common Unix/Linux commands and utilities into a single executable, therefore creating links or alias to all the individual commands pointing to the same executable, saving space in disk and memory.
The latest version of BusyBox (v1.26.2 as of 10/01/2017) has all the following commands built in:
[, [[, ar, awk, base64, basename, bunzip2, bzcat, bzip2, cal, cat, catv, chat, chgrp, chmod, chown, chpasswd, chpst, chroot, chrt, cksum, clear, cmp, comm, cp, cpio, cryptpw, cut, date, dc, dd, devmem, df, diff, dirname, dnsd, dnsdomainname, dos2unix, du, echo, ed, egrep, env, envdir, envuidgid, expand, expr, fakeidentd, false, fgrep, find, fold, fsync, ftpd, ftpget, ftpput, fuser, getopt, grep, groups, gunzip, gzip, hd, head, hexdump, hostid, hostname, httpd, id, inetd, install, iostat, ipcalc, kill, killall, killall5, less, ln, logger, logname, logread, lpd, lpq, lpr, ls, lzcat, lzma, lzop, lzopcat, makemime, man, md5sum, mesg, microcom, mkdir, mkfifo, mknod, mkpasswd, mktemp, more, mpstat, mt, mv, nc, nice, nmeter, nohup, nslookup, od, patch, pgrep, pidof, pipe_progress, pkill, popmaildir, printenv, printf, ps, pscan, pstree, pwd, pwdx, readlink, realpath, reformime, renice, reset, resize, rm, rmdir, rpm, rpm2cpio, run-parts, runsv, runsvdir, sed, sendmail, seq, setsid, setuidgid, sha1sum, sha256sum, sha512sum, sleep, smemcap, softlimit, sort, split, start-stop-daemon, stat, strings, stty, sum, sv, svlogd, sync, sysctl, syslogd, tac, tail, tar, tcpsvd, tee, telnet, telnetd, test, tftp, tftpd, time, timeout, touch, tr, true, tty, ttysize, udpsvd, uname, uncompress, unexpand, uniq, unix2dos, unlzma, unlzop, unxz, unzip, usleep, uudecode, uuencode, vlock, volname, watch, wc, which, whoami, whois, xargs, xz, xzcat, yes, zcat
If you want to know more about this excellent and widely-used Open-Source project, visit:
Traditionally, to try a UNIX like environment on a windows PC, you had a couple of options: install microsoft’s own windows unix support, or install cygwin.
Well it’s good to know that now we have another option, and that it’s easier to install.
But in any case, my all-time favourite until today, is the use of MobaXterm.
This is a product to handle all sort of sessions & connections, and the best of it is that it lets you setup connections with terminals with SSH and Telnet, but also handles RDP, HTTP, etc. It even imports settings from PuTTY.
The best of all, is that it lets you open a local terminal session in windows, and that local session uses our new friend busybox, so you can also type windows commands (not built-ins, only externals, but hey!) or unix-like commands, at your leisure.
It’s specially good to develop unix or linux scripts in your PC, instead of doing so in a real server (really handy when you don’t have a development server in your environment, or if you are developing or fixing scripts in a laptop while you travel, on a hotel, etc.).
So there you go, if you want to have the best of linux in windows you can use busybox, cygwin, or MobaXterm. In Windows 10 mind, we also have the ubuntu bash shell, which is also very nice, and supported by Microsoft, excellent.