If you use any Linux based distribution, chances are you’re already familiar with terminal and have used it at some point or other. The Linux terminal is a text interface to your computer. Often referred to as the shell, command line, console, prompt or various other names, it can give the appearance of being complex and might be intimidating to newcomers.
If you’re just starting out with Linux chances are you’re looking for solutions on web and frequently you would encounter some terminal commands which can be difficult to remember all at once or you simply typed sl
instead of ls
and are wondering why is there a steam locomotive on my screen.
1. Use Aliases
Alias in English language means ‘a false or assumed identity’, and in terminal it is a way to write commands in shorthand. Let’s take an example. Imagine you have a friend named Vishvanathan
and you talk to him frequently so use a pet name (or alias) Vis
to address him. Similarly you can tell your computer that when you say following expression, you need it to do a specific task. You can define aliases like this
alias please_read_file="cat file.txt"
Now, if you enter please_read_file
in terminal, it will show contents of file.txt
present in current directory. You can change please_read_file
to anything you like, even an existing command like alias date=”cat file.txt”
now when you type date
in terminal, it will show you contents of file.txt
instead of current date and time on your system. You can get creative and use them in different ways like
alias please_read_file="cat /some/really/long/path/file.txt"
alias open_folder="cd /some/really/long/path"
In above box, please_read_file
will show contents of file.txt
placed in some folder whose path is difficult to remember. open_folder
changes current working directory to that folder whose path is defined in alias and you can access file.txt
without need to give it’s complete path, This way you can access any file which you like from a different location (perhaps a network computer whose IP address is difficult to remember) without changing your directory to that folder and then navigating back when you’re done.
Note: Aliases are temporary and your customization is lost when you close the terminal. To make these changes persist you need to setup a
bash_profile
check this awesome article on how to do that
2. Use ⇅ arrow keys
When you press ↑ key on keyboard you get previous command. You can use ↑ and ↓ keys multiple times to browse your history in command line even after you restart terminal. And that’s it! It’s really is that simple.
P.s. This trick also works in Minecraft.
3. Use reverse-i-search
utility
This is a really useful feature and can come in handy when you need to search for something really specific. Although traversing through your search history using arrow keys works just fine, But it defeats the purpose to press ↑ 10 times (or even more) to type a small command which will take only 6 keystrokes.
To overcome this problem, you can press Ctrl+R
in terminal and you will see (reverse-i-search):
appears where [current user]
and [hostname]
used to be. Now you can start typing your command and commands matching your search term will appear in reverse chronological order (latest to earliest).
(reverse-i-search)`date': sudo apt-get update
In the above example search term was date
and command which found was sudo apt-get update
. If that’s not the command you were looking for keep typing and as the search term changes, resulting command will also change accordingly. Once you find what you’re looking for just press enter(carriage return) and command will be executed in your terminal. If search term doesn’t match any command failed
will appear along with last command your search term matched with
(failed reverse-i-search)`new': npx express-generator
This is useful but it only shows last command which matched and if you try to browse up or down using ⇅ keys, search utility closes.
To solve this problem and further enhance searching capabilities you can use comments in your commands and then later search for those comments. Example date #some easy_to_remember phrase here, cat
command will be executed but anything after # (including the symbol) will be ignored while executing but will be stored in history.
cat -n read_file.txt # pizza
Now you can search for pizza and get exact command with custom arguments without much effort.
4. Use bash scripts for recurring combination of commands
If you need to run some commands in a specific order often, you can make a simple shell script and it will make your life so much easier. Just open up any text editor and type all commands in order you wish for them to execute. Save the file as something.sh
. Now change the permission of file to allow it to be executed. You can do that in 2 ways:
- use GUI : Open file properties ( press
Ctrl + i
), Go to permissions tab and check the option saying ‘Allow executing file as a program’. - use CLI : Open terminal and type following
chmod +x something.sh
. Replacesomething.sh
with name of file you wish to execute.
starttime=$(date)
# give path of a text file to log starting time times
echo "update Started at $starttime" >>./log.txt
sudo apt-get update
sudo apt-get upgrade -y
endtime=$(date)
# give path of a text file to log finish times
echo "update completed successfully on $endtime" >>./log.txt
shutdown now #shutdown pc
I made a script which updates your computer and then shuts it down afterwards. Whenever I am about to shutdown my PC, I run this script and leave the desk. It updates and shuts down automatically. You can use it too if you like. Additionally you can un-comment line 3 and 8 to log starting and ending times in a text file.
You can now run your script by typing complete path followed by name of file in terminal . Example ./updateAndShutdown.sh
Here ./
means that file is in current working directory.
5. Use Tab to autocomplete paths and filenames
While typing it is easy to make typing mistakes or maybe one of your keys on your keyboard is not working and you need to find a work around. You can do this by pressing tab
key on keyboard to autocomplete names of file and folders. If there are more than 1 present it will autocomplete all characters which are similar and you can type next few characters and press tab again. If you don’t know what next characters are, you can press tab
twice and list of all matching search results will be displayed, you can read from list and type next few characters.