[ale] Your Go-To CLI Tools?

Michael Trausch mike at trausch.us
Thu Nov 6 12:33:16 EST 2014


Socat, which is useful for all sorts of stuff. It can connect just about anything to anything. Also useful for prototyping embedded ideas. For example, if you have an idea for a serial, Bluetooth, etc. type device but do not have hardware, you can still work on the application-layer protocol by using socat to emulate the serial link.  At "go time", the only thing you need to change to talk to real hardware is the name of the device node. 

Pv, which is most excellent for mental health. When you're transmitting a multi gigabyte file over a (relatively) slow link, you want progress information. When you're shuttling data through complex pipelines and you want a "heartbeat" on the pipe, this is what I use. It also has a line mode, where it counts lines and not bytes. This is useful when you are doing information processing from e.g., massive CSV files and would like to see how much time is remaining. 

Splitpipe and its companion joinpipe. These are in need of replacement but are still quite useful. It allows you to create a n-disc backup on optical media. Needs replaced with a utility that will let you use arbitrary-sized media in a backup run, as it is annoying to run out of larger discs and not be able to switch to smaller ones mid-stream. Though keep in mind that XZ compression (and even bz2) will be too slow for writing to optical media on most systems. What we need is a real time capable compression algorithm that works as well as XZ does. :)

GNU parallel, which is like xargs but will by default run jobs on all available processing cores. It has a crapton of options, like xargs.  It also supports the use of remote systems for processing. It isn't as efficient as using MPI or similar techniques, but it isn't intended to be, either. Instead, it's best for ad-hoc tasks, like processing a huge set of records. Most jobs run best on the LAN, but some tasks are useful to perform over the WAN as well. Pair with the pv utility in many cases to have a pretty good status monitor.

xxd, which is insanely useful when you find that you have to poke around in the bowels of some binary blob, be that a disk image, an embedded database, or an executable file. It allows you to perform an incredibly useful task, namely that of manual, on-the-fly, binary patching.  When coupled with scenarios where you're forced to deal with an opaque binary stream that needs to not be opaque, it (combined with a dot-matrix printer!) is indispensable. 

Sent from my iPad

> On Nov 6, 2014, at 8:45 AM, JD <jdp at algoloma.com> wrote:
> 
> What are your top 5 "hidden" CLI tools?
> 
> Let's skip the ones we all agree should be used almost daily: ssh, sudo, rsync,
> ddrescue, screen, vi, egrep, etc ... definitely no GUI tools.
> 
> Think about the things you have to add-on to any distro to make it more useful.
> Check your history to find some and share.
> 
> _______________________________________________
> Ale mailing list
> Ale at ale.org
> http://mail.ale.org/mailman/listinfo/ale
> See JOBS, ANNOUNCE and SCHOOLS lists at
> http://mail.ale.org/mailman/listinfo



More information about the Ale mailing list