The shell remains one of the most powerful tools on a computer system yet a large number of users are unaware of how much can be accomplished with it. Using a combination of simple commands, you will see how to solve complex problems in day-to-day computer usage.
This video will take you through useful real-world examples to make your daily life easy when working with the shell. It shows you how to effectively use the shell to accomplish complex tasks with ease. Starting with the basics of the shell, you will learn simple commands and their usages, allowing you to perform operations on different kinds of files. We then explain text processing and web interaction, and conclude with backups, monitoring, and other sysadmin tasks.
This is an an excellent guide on solving day-to-day problems using the shell and a few powerful commands together to create solutions.
About The Author
Sarath Lakshman is a 23-year-old who was bitten by the Linux bug during his teenage years. He is a software engineer working for the ZCloud engineering group at Zynga, India. He is a life hacker who loves to explore innovations. He is a GNU/Linux enthusiast and hactivist of free and open source software. He spends most of his time hacking with computers and having fun with his great friends.
Sarath is well known as the developer of SLYNUX (2005)—a user friendly GNU/Linux distribution for Linux newbies. The free and open source software projects he has contributed to are PiTiVi Video editor, SLYNUX GNU/Linux distro, Swathantra Malayalam Computing, School-Admin, Istanbul, and the Pardus Project. He has authored many articles for the Linux For You magazine on various domains of FOSS technologies.
He had made a contribution to several different open source projects during his multiple Google Summer of Code projects. Currently, he is exploring his passion about scalable distributed systems in his spare time.
Shantanu Tushar has been an advanced GNU/Linux user since his college days. He works as an application developer and contributes to the software in KDE projects. Shantanu has been fascinated by computers since he was a child, and spent most of his high school time writing C code to perform daily activities.
Since he started using GNU/Linux, he has been using shell scripts to make the computer do all the hard work for him. He also takes time to visit students at various colleges to introduce them to the power of free software, including its various tools.
Shantanu is a well-known contributor in the KDE community and works on Calligra, Gluon, and the Plasma subprojects. He looks after maintaining Calligra Active—KDE's office document viewer for tablets, Plasma Media Center, and the Gluon Player. One day, he believes, programming will be so easy that everybody will love writing programs for their computers.
Ability to learn printing text in the terminal is a basic task that most shell scripts and utilities need to perform regularly.
Ability to play with variables used by the shell environment and the operating environment.
Learn to store a list of paths of where to search for executables, libraries, and so on.
Learn to explore various methods for performing arithmetic operations in shell.
Learn to shows examples on how to manipulate and redirect with file descriptors.
Learn to use arrays and associative arrays which are useful in many types of manipulation where having a string index makes more sense.
Learn how to create aliases using the alias command.
Ability to collect and manipulate terminal settings
Ability to work with dates and time delays.
Ability to provide certain debugging options that every sysadmin should know.
Learn to know how bash supports to define and to use functions.
Learn to combine multiple commands and how its output can be read.
Use the read command that provides a way to accomplish this task without having to press return.
Ability to run a command until it gets succeed.
Discuss delimiters that separate different data elements from single data stream while manipulating text data.
Ability to perform tests that are compatible with the Unix system-level features.
Ability to combine standard input data, as well as data from a file using a single-line command.
Using the commands script and Scriptreplay to record the order and timing of the commands and save the data to text files.
Ability to deal with most of the common ways to utilize find to locate files.
Understanding and practice to formulate one-liners for solving text processing problems.
Ability to use tr to perform basic translation between sets.
Compute checksums to verify integrity of data.
Handle cryptographic tools and a general set of algorithms for verifying data integrity.
Extract unique lines from a text or stdin and illustrate most of the use cases with sort and uniq commands.
Ability to generate standard filenames for temporary data.
Understand how to split files in different chunks for generating logs and sending files over e-mail.
Perform actions such as renaming the files by preserving the extension and change the extension by preserving the name.
Ability to write scripts to perform renaming and moving files in bulk.
Generate a script which makes use of the dictionary file and the spell checker.
Ability to deal with commands that read input interactively.
Learn to make our commands run faster.
Ability to use general utilities to create lookback filesystem.
Utility to perform a comparison between the two files to arrange the output in such a way that we can perform intersection, difference, and set difference operations.
Ability to deal with finding duplicate files and performing operations based on the result.
Expand the features of filesystem associated with many types of permissions.
Ability to make files immutable and make then mutable when required.
Learn to generate test cases to test programs that operate on thousands of files.
Understand the basic techniques of handling symbolic links.
Generate scripts that can enumerate through many files and collect details.
Create logical disks inside a file on your physical disk.
Illustrate how to generate differences between files highlighted with line numbers.
Learn to create a new file to open the gedit by using the text editor.
Ability to handle multiple ways of listing only directories with various useful techniques.
Generate the directory paths in a stack and switch between them using the push and pop operations.
Ability to use wc to count lines, words, and characters.
Monitor scripts that help to look at the filesystem using easy-to-read tree representations.
Learn to use regular expression string to match any text according to the context.
Learn how to locate data items of a given specification from a pool of data.
Extract the name of the students to another file or any nth column in the file, or extract two or more columns.
Utility to play around with regular expressions by using sed techniques.
Learn to use awk tool which is designed to work with data streams.
Parse all the words in a given file and then the count of each word which needs to be found.
Ability to concatenate files by their columns.
Learn to print the nth word or column in a file or line.
Learn to print a certain section of text lines, based on conditions such as a range of line numbers, and a range matched by a start and end pattern.
Learn to print the lines of text in a file in reverse order.
Ability to parse e-mail addresses from a contact list of an e-mail client, which is composed of many unwanted characters and words.
Learn to remove a sentence in a file containing a word.
Ability to replace a particular text with a new text in every file in a directory.
Learn the simple text-replacement techniques and parameter expansion Short hands available in Bash.
Ability to download a file or a web page from a given URL.
Ability to download a web page as plain text.
Learn to list most of the important features of cURL.
Learn to parse the same data by using text-processing tools.
Generate a script to parse the image files and download them automatically.
Ability to generate web photo album.
Learn to use one API and see how to write a define script.
Learn to find the broken links by using HTTP manipulation tools.
Ability to write a basic tracker for the website changes.
Learn to post a web page and reading the response.
Learn to to store files and directories in a file with attributes such as permissions, ownership.
Ability to create a tar archive and compress it with gzip and then see how to operate with gzip.
Learn to use zip to perform compression and extraction.
Learn to decrease overall time taken to compress your files.
Ability to create a file system with compression by using squashfs command
Working with rsync to compares the files in the original and destination locations and will only copy the files that are newer.
Use Git for the backup of regular files in a non-programming context.
Ability to create disk images by using fsarchive to archive the filesystem data.
ping is the most basic network command every user should first know and is available on all major operating systems. ping is a diagnostic tool used for verifying the connectivity between two hosts on a network. Let’s see how to use ping.
When we deal with a large local area network, we may need to check the availability of other machines in the network. By using shell scripting, we can easily find out and report which machines are alive on the network.
SSH is an interesting system administration tool that gives you access to a shell on a remote computer which you can use to run commands.
The major driver for networking of computers is resource sharing, and file sharing is the most prominent shared resource. Let’s explore the different methods by which we can transfer files between different nodes on a network.
Providing passwords in automated scripts is impractical, so we need to automate logins.
With Port forwarding , you can enable other computers to connect to a particular service on a remote server using your machine. Having a local mount point to access the remote host filesystem is helpful while carrying out both read and write data transfer operations. Let's find out how to do all of this.
Network ports are essential parameters of network-based applications. This video discusses various utilities for port analysis.
Even though we have prebuilt tools for defined operations such as file transfer and remote shells, we will need to do a customized network operation in some cases.
Illustrate various commands used for disk manipulations with a variety of options.
Learn to calculate the execution time for a command.
Ability to add a few commands which is used to gather information about a live machine.
Identify the processes that keep the CPU busy all the time and troubleshoot them to efficiently use the CPU.
Learn to watch the growth of the file size. In order to do that, we can use the watch command to execute the du command and output repeatedly.
Ability to describe how to log such accesses.
Learn to debug issues as well as provide statistics on the live machine.
Learn to make use of syslogd for logging information from a shell script.
Ability to monitor user logins to find intruders.
Illustrate how to write a monitoring script that can collect details from remote machines in a network.
Generate a report with the details, such as rank, user, first logged in date, last logged in date, number of times logged in, and total usage hours.
Learn to measure and optimize power usage.
Ability to monitor the disk activity by using monitoring tools.
Ability to monitor the consistency of data stored on physical media.
Learn how to gather information about processes.
Learn to introduce the signals and their usage.
Ability to send messages to user terminals.
Ability to show you different sources in a Linux system to gather information about the system.
Learn to provide an interface to read several system parameters from the user space.
Learn to write a cron entry and schedule the download, you can also schedule to drop the Internet connection automatically and shutdown the system when the free usage hours end.
Learn to to read and write to the MySQL database from Bash.
Ability to write a user management tool that can handle different function.
Learn to use scripts for image management.
Learn to take screenshots from a terminal when a particular event happens, to figure out what is going on in a GUI application.
Ability to achieve multiple shells while avoiding problems.
Packt has been committed to developer learning since 2004. A lot has changed in software since then - but Packt has remained responsive to these changes, continuing to look forward at the trends and tools defining the way we work and live. And how to put them to work.
With an extensive library of content - more than 4000 books and video courses -Packt's mission is to help developers stay relevant in a rapidly changing world. From new web frameworks and programming languages, to cutting edge data analytics, and DevOps, Packt takes software professionals in every field to what's important to them now.
From skills that will help you to develop and future proof your career to immediate solutions to every day tech challenges, Packt is a go-to resource to make you a better, smarter developer.
Packt Udemy courses continue this tradition, bringing you comprehensive yet concise video courses straight from the experts.