tr

The tr utility translates single characters into other characters. Called as echo frabacbable | tr 'a' 'b', whenever it sees the letter a it replaces it with b, resulting in the output frbbbcbbble. This script tunes the kernel as required by the installation instructions from the vendor. The exact details may change with the version so this has to be downloaded from the vendor each time, but two things remain constant:

  • The vendor always supplies the kernel tunables as temporary changes as echo value > /proc, instead of as tunings for the sysctl.conf file.
  • The vendor’s typography is terrible, with spurious slashes and uppercase characters where they are not valid. This must be handled gracefully.

There are two ways to tune the Linux kernel; to set the maximum number of files a user may have open, you can echo 65536 > /proc/sys/fs/file-max, which makes the change instantly, although it is lost on reboot, or you can add the line sys.fs.file-max = 65536 to /etc/sysctl.conf. This will be applied whenever the system is booted. You will need to run sysctl -p to dynamically load the new values from /etc/sysctl.conf. Notice how sys.fs.file-max is represented in the /proc filesystem as sys/fs/file-max. This is ideal for tr; there is a single character, known to be used only as a delimiter, and the goal is to replace it with a different single character, which is also only to be used as a delimiter.

Another use for tr is to transpose a range of characters into the relevant position ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.