O'Reilly logo

Shell Scripting: Expert Recipes for Linux, Bash, and More by Steve Parker

Stay ahead with the world's most comprehensive technology and business learning platform.

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, tutorials, and more.

Start Free Trial

No credit card required

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 ...

With Safari, you learn the way you learn best. Get unlimited access to videos, live online training, learning paths, books, interactive tutorials, and more.

Start Free Trial

No credit card required