Book Image

Linux Shell Scripting Cookbook - Third Edition

By : Clif Flynt, Sarath Lakshman, Shantanu Tushar
Book Image

Linux Shell Scripting Cookbook - Third Edition

By: Clif Flynt, Sarath Lakshman, Shantanu Tushar

Overview of this book

The shell is the most powerful tool your computer provides. Despite having it at their fingertips, many users are unaware of how much the shell can accomplish. Using the shell, you can generate databases and web pages from sets of files, automate monotonous admin tasks such as system backups, monitor your system's health and activity, identify network bottlenecks and system resource hogs, and more. This book will show you how to do all this and much more. This book, now in its third edition, describes the exciting new features in the newest Linux distributions to help you accomplish more than you imagine. It shows how to use simple commands to automate complex tasks, automate web interactions, download videos, set up containers and cloud servers, and even get free SSL certificates. Starting with the basics of the shell, you will learn simple commands and how to apply them to real-world issues. From there, you'll learn text processing, web interactions, network and system monitoring, and system tuning. Software engineers will learn how to examine system applications, how to use modern software management tools such as git and fossil for their own work, and how to submit patches to open-source projects. Finally, you'll learn how to set up Linux Containers and Virtual machines and even run your own Cloud server with a free SSL Certificate from letsencrypt.org.
Table of Contents (14 chapters)

Grabbing information about the terminal

While writing command-line shell scripts, we often need to manipulate information about the current terminal, such as the number of columns, rows, cursor positions, masked password fields, and so on. This recipe helps in collecting and manipulating terminal settings.

Getting ready

The tput and stty commands are utilities used for terminal manipulations.

How to do it...

Here are some capabilities of the tput command:

  • Return the number of columns and rows in a terminal:
        tput cols
        tput lines
  • Return the current terminal name:
        tput longname
  • Move the cursor to a 100,100 position:
        tput cup 100 100
  • Set the terminal background color:
        tput setb n

The value of n can be a value in the range of 0 to 7

  • Set the terminal foreground color:
        tput setf n

The value of n can be a value in the range of 0 to 7

Some commands including the common color ls may reset the foreground and background color.
  • Make text bold, using this command:
        tput bold
  • Perform start and end underlining:
        tput smul
        tput rmul
  • To delete from the cursor to the end of the line, use the following command:
        tput ed
  • A script should not display the characters while entering a password. The following example demonstrates disabling character echo with the stty command:
        #!/bin/sh
        #Filename: password.sh
        echo -e "Enter password: "
        # disable echo before reading password
        stty -echo
        read password
        # re-enable echo
        stty echo
        echo
        echo Password read.
The -echo option in the preceding command disables the output to the terminal, whereas echo enables output.