toys

Tools and things that make my life easier - y'all might like them too

View the Project on GitHub pfuntner/toys

Bruno’s Toys

This is a collection of Unix tools command line that make my life easier. I think others might like them too so I’m making them available here but the repository is just a nice way for me to keep track of changes and deploy them easily to systems.

I will admit that the documentation is rather poor for some of the tools and many of them have little or no comments. This is a work in progress - I’m constantly creating new tools and improving documentation. In November 2017, I did a major overhaul of the documentation because I was disatisfed with having a huge table. I’m liking the results so far.

If you have questions, problems, etc, you can reach me at .

Unix platforms

Over the years, I’ve used many different Unix platforms: Redhat, Suse, Solaris, HP/UX, AIX, Z/OS, Cygwin, Git bash, etc. I owe no allegiance to any single platform and consider them all pretty much equal as long as they behave similarly. I have seen some issues using my tools (and other commands!) from Git bash on Windoze and sometimes a tool was only designed to work on specific platforms - I’ll try to put such stuff on the doc page for the tool. In general if I find a platform where one of my tools doesn’t work well, I will try to fix it!

The much-heralded TOOLS

Select a tool below to learn more about it. The Bruno’s Favorite column is used to indicate that a tool is:

Tool Bruno’s Favorite? Brief Description
ansible-distros   Prints OS information about Ansible hosts
ansible-host-data   Extracts specific information about a host in an ansible inventory
ansible-hosts Yes Lists host information from an Ansible inventory
ansible-role Yes Builds a minimial ephemeral Ansible playbook for a role and runs ansible-playbook with it
argparse   A tool that kind of mimics Python’s argparse module for bash scripts
aws-image   Displays details about an AWS EC2 AMI
aws-images   Search for AWS EC2 AMIs
banner Yes Prints text in a banner
bashprofiles Yes Prints profile script(s) bash will use
beeper   Beeps over and over
bingrep   Searches for a regular expression in arbitrary data from stdin
br Yes Browse a file. Sounds simple? Maybe, but give it a try
capture   Saves output and other information from a command
chars   Display a file character-by-character
color.py Yes Print text in the specified foreground/background colors
columns Yes Prints columns of stdin where columns are separated by a character or regular expression
comm2   Alternate version of comm that does not expect the data to be sorted
cores   Prints CPU core information in a simple way
data-shell Yes, maybe A shell-like interactive tool for navigating around JSON, YAML, and XML objects
datemath   Perform arithmetic on date(s)
dowhile   Perform a command repeatedly until output is seen in the output
drop Yes Drop the first or last n lines, similar to head/tail
extensions   Show extensions used by files
fernet   Perform fernet encryption/decryption
fitwidth Yes Restrict lines of data to a desired width
flow Yes Flow lines from stdin into columnar form
fulltime   Execute a command using standard time utility and all options available to it
git-cat Yes Display a file from another git branch
git-pulls Yes Do git pull on one or more repositories
git-refresh-after-merge Yes Refresh local git master branch after merging a feature branch
gitstatus Yes Show files in a local git repo that have been changed, etc.
grep-cat Yes Show lines in a file based on line numbers and/or regular expressions, ranges.
headtail Yes Print out the top and bottom of stdin or one or more files
hex   Print out data or a file in hex and character form
indent Yes Indent stdin by a specified number of columns
json Yes JSON magic - it’s a disservice to try to summarize this tool in a single string. Check out its page
jsoncompare   Compares JSON and/or YAML files, element by element
lexec Yes Locate executable files by pattern
megadiff   Compare two directories trees
megassh Yes Execute a command on one or more remote targets
more-head   Display the top of a file, filling up the the screen
nocrs   Remove carriage returns from files
oldtable   Parse data into a tabular form using a few input and output forms - replaced by table
peval Yes Evaluate Python expression strings
pipeit Maybe? Still new Send data to a file on a remote system
push-ssh-key Maybe? Push a public ssh key to a remote system
pycomment Yes vi command to toggle Python-style comments, similar to PyCharm ctrl-/ command
pythons   Show versions of Python/Python2/Python3 interpreters
recentdownloads   Find recently downloaded files
remote-file   Read or write a remote file in a filter
SecureKeyValues   Manage secure key value stores
side-diff Yes Perform side-by-side compare, utilizing all of the screen width
ssh-exec   Execute a script on a remote host
strip-trailing-whitespace Yes Strip trailing whitespace from one or more files
supercd.sh Yes Change to a directory that matches a pattern
table Yes Parse data into a tabular form using several input and output forms - more flexible than oldtable
timer   Display a progress meter over a specified duration of time
timestamp-my-file   Add a timestamp to a filename
timestamps   Show times when files were last modified, most-recently updated first
uniqc Yes Counts unique instances of input
undent   Removes indentation from stdin
undupe   Removes duplicate punctuation & whitespace
unixdate   Invokes date with Unix-style format on Windoze
versions   Show versions of arbitrary commands
wholegrep   Grep entire files that contain or do not contain regular expressions