Most Linux and some Ubuntu users know a certain set of
command-line programs for interactive shell usage. Most
importantly, there are the standard tools from the GNU core utilities
which cover many aspects of everyday's work. You'll find these
tools preinstalled on almost every Linux-based desktop or server
system (embedded systems often tend to use all-in-one tools like
BusyBox as a replacement for the core utilities).
Additionally, some of the commonly used tools like grep or
strings are found in separate packages, which are also
available on most systems. Thats why these programs are already
thoroughly discussed in many books, blogs or internet forums. Yet,
there are some hardly known, but useful shell programs that even
seasoned Linux users might not know. This blog post will introduce
two of these tools I consider to be quiet convenient for their
special purpose.
The first one, iprint,
might be one of the smallest pieces of software available in the
Debian repositories. The source code of this handy utility consists
of 23 lines of C code, the compiled ELF executable occupies about
6KB of precious disk space on my system. Still, if you're a
programmer, you might consider these 23 lines useful for your work:
i <arg> shows the decimal, hexadecimal, octal and
binary representation of arg. If the value of arg
corresponds to a printable ASCII character, the respective
character is printed as well. If you precede arg with 0, 0x
or 0b, arg is considered to be an octal, hexadecimal or
binary value. Of course, you may pass multiple values to
iprint in one call.
The second tool is somehow related to grep. One thing I like
especially about grep is the possibility to highlight the matches
in most terminals with the use of ANSI escape
codes. For some purposes however, I wanted to have a tool that
highlights specific keyword without filtering the input text for
these keywords. A quick internet search showed, that
histring might be exactly what I was looking for.
Unfortunately, many hyperlinks pointing to projects pages for
histring were no longer available. The GRML repository
however, did not only have a compiled version of histring
available, it also provided the source code. So after compiling,
you may invoke histring more or less just like grep -
support for case-insensitive matching and regular expressions is
already included. ;)