This book is split into multiple parts. In part 1, we'll explore a new terminal and show you how to install and configure it. In part 2, we will concentrate on configuring your shell, adding plugins, understanding regular expressions, and working with pipes and subshells. Everything will then be coagulated into a shell scripting lesson. In part 3, we'll work with Vim, our recommended editor. We will cover everything from configuring it, to learning keyboard shortcuts, installing plugins, and even using it as a password manager. So let's get started.
In the following chapter, we will learn the following topics:
Understanding the working of Terminator
Using Guake for your quick commands or long running tasks
Using ClipIt to copy-paste text
So, we will start with a terminal after which everything will be wild! When it comes to working long hours in a terminal, our choice is to use Terminator for its fast and easy split screen functionality. Then, we will focus on Guake, a terminal that opens really fast and wherever you are. Towards the end, you will understand the working of Clipit and use its copy and paste feature effectively.
We will dive deep into the Linux environment, giving you tips and tricks to increase your productivity, make you more comfortable with the command line, and automate your tasks.
The book is based on Ubuntu Linux version 16.04, which is the latest long-term support version. We chose Ubuntu because it's the most common Linux distribution out there, it's really simple to use, has a lot of graphical tools, and you can find a huge online community ready to answer all your questions. Ubuntu is also the most supported Linux distribution. This means that companies that create software, especially graphics software, and offer them for Linux, usually start with Ubuntu.
This makes it easier for us to use tools such as Skype, Slack, or Visual Studio Code. Although the book is based on Ubuntu, most of the commands are not related to Ubuntu, so you can easily use another distribution and apply the same lessons. A large part of the book can even be applied applicable to Mac, as we can have the same tools installed on Mac — bash, zsh, vim all work the same way across Linux and Mac--and with the release of Windows 10, bash support is built in, so tools such as zsh and vim can easily be installed and used. Before Windows 10, there were tools such as cygwin that let you use the Linux command line in a Windows environment.
We recommend you to read and practice in an open terminal so that you can execute the commands and check their results. Before we start, you want to download all the source files from our GitHub repository (located here: https://github.com/petruisfan/linux-for-developers).
The first thing you need to do in order to become productive is to have a good terminal. Throughout the book, we will be working mostly with the command line, which means that the primary piece of software we will be using is our terminal. A great terminal that we recommend is Terminator, which can be installed from the software center.
Let's go to our launcher and click on the software center icon. After it opens, click on the search input and write
terminator, as shown in the following screenshot. It will probably be first in the list of results. Click on Install.
After installing Terminator, it's a good idea to drag its icon to the Launcher. For this, you just open the dash by hitting the Windows key, write
terminator and drag and drop its icon into the Launcher:
Alright, now let's click on the icon to get started. You can maximize the window to have more space to play around.
It's an customizing terminal, where good surprises can be found in form of fonts styles and other tools. What you see right now are the default settings. Let's go into the preferences menu and see what we can update. First of all, let's hide the title bar because it doesn't give us that much information and it's always a good idea to have as much free screen space as possible (and as few distractions as possible).
Now let's look at some other preferences:
Let's change the font. We will make it a bit larger than usual so that it is easy to read. Let's go with Monospace 16, as shown in the following screenshot:
We also want to have good contrast so that it's easy to distinguish the letters. And for this, we will choose a black on white color theme.
It's also a good idea to enable infinite scroll, because you don't want your terminal output to be trimmed after
500lines. A lot of the time, you just want to scroll and see the previous output. Also, while scrolling, if there is a lot of text, you probably don't want to be brought back to the bottom of the page, so uncheck the Scroll on output option.
And voila! This is our newly configured terminal. And now it's time to check what we can do with this new terminal. Here comes the Features section!
Now it's time to look at some of Terminator's useful features and their keyboard shortcuts. This is what the normal Terminator interface looks like:
Let's play around with it now:
Split screen: Ctrl + Shift + O for a horizontal split:
Ctrl + Shift + E for a vertical split:
This is probably the coolest feature of Terminator and the one we will be using the most as it is really helpful to see multiple panes and easily switch between them. You can split the screen any number of times, in any combination you want.
Resize screen: Ctrl + Shift + Arrow or just drag and drop:
Easily move between Windows with Ctrl + Shift + Arrow.
Close screen using Ctrl + Shift + W or Ctrl + D.
Create tabs with Ctrl + Shift + T. This is for when you don't have any more space to split the screen:
Text zoom: Ctrl + + and Ctrl + - — useful for when you need to present or when you have a person with a bad eyesight:
Being able to divide the screen in order to arrange the terminal in a grid, and being able to split, switch, and resize panes with keyboard shortcuts are the biggest advantages of Terminator. One big productivity killer that a lot of people don't realize is switching between using the mouse and using the keyboard. And although most people prefer using the mouse, we suggest using the keyboard as much as possible and learning the keyboard shortcuts of your most commonly used computer programs.
Being productive ultimately means having more time to focus on the things that are really important, instead of wasting time struggling to use the computer.
Hasta la vista terminal! Welcome Terminator!
Terminator works well for all sorts of tasks, especially when working long sessions on multiple items. However, sometimes there are scenarios where you need to quickly access a terminal in order to run a command, check a status, or run a task in the foreground for a long time--all of these without opening too many tabs. Guake is excellent in such situations. It is a handy, easy-to-use terminal that you can open on any workspace on top of your existing windows, by pressing F12.
We will install it right now by using a simple command line. As shown below, open your terminal and type
sudo apt install guake:
apt is the new package manager that Ubuntu launched in version 16.04 and is meant to be an easier-to-use version of the
apt-get command, with some added eye candy.
Now that Guake is installed, we will go to dash and open it. To do this, we just press F12. Once it is running, you can see the notification on the top-right side of the screen. This is what it should look like:
Just like with Terminator, we will check its preferences. First of all, go to shell and enable Open new tab in current directory:
I believe you can guess what this does. Then, go scrolling and insert a really big number, like 99,999. Also, make sure Scroll | On output is unchecked:
Again, we will change the default font to
Monospace 16, set the Cursor blink mode to off, and hit Close:
We can use Guake in full screen by hitting F11 and we can also resize it by dragging the margin. If you want, you can play around with the default settings to see what suits you best.
Guake does not start automatically when Ubuntu reboots, so we will have to add it to our startup application for that. To do this, open dash again, type startup applications and click add. Just type Guake in all three fields, add, and close.
What makes it so handy is the fact that you can open it on top of your current windows at any time, quickly type a command, and reopen it again later to check the status of the command.
We believe that one of the greatest inventions of mankind is copy-paste. The ability to take a piece of text from some random place and insert it to another not-so-random place is a huge time saver! Mankind would still be ages behind if computers didn't have this feature! Just imagine having to type every little command, every URL, every block of code you read! It would be a huge waste of time! And so, being such an important feature, copy-paste deserves a tool of its own for managing all the important text you copied. These types of tools are called clipboard managers. There are a lot of options for every operating system, and one good free one for Ubuntu is called
clipIt. Open the terminal and type
sudo apt install clipit to install it.
A good scenario for using Guake is to run
ClipIt in it. By default,
ClipIt occupies a terminal window but, with the help of Guake, we just hide it away!
The tool is automatically added to the startup applications, so it will start the next time you reboot.
In order to invoke
ClipIt, hit Ctrl + Alt + H or click the clipboard image in the menu bar.
The first times it starts, it warns you that it stores data in plain text, so it might not be safe to use if other users use your account. Currently, it contains only the latest clipboard element.
Let's do a quick example of its usage.
cat the content of the .
profile file. And let's say we want to copy some lines of text and run them in another terminal, which looks like this:
For example, we might want to update the PATH variable, then source the
.bashrc file and update the PATH variable again. Instead of copying the content again from our file, we just hit Ctrl + Alt + H and choose what we want to paste from our clipboard history:
This is a very basic example.
ClipIt mostly comes in handy when you work long hours on your computer and need to paste something that you copied from a website hours earlier. It comes with a default history size of 50 items and it will show you the last 10 items in your floating window. You can increase these limits in the settings:
ClipIt, you can copy and paste as many times as you want without losing any data. It's like a time machine for your clipboard!