Introduction
When spending most of your day around bash shell, it is not uncommon to waste time typing the same commands over and over again. This is pretty close to the definition of insanity.
Luckily, bash gives us several ways to avoid repetition and increase productivity.
Today, we will explore the tools we can leverage to optimize what I love to call “shell time”.
Aliases
Bash aliases are one of the methods to define custom or override default commands.
You can consider an alias as a “shortcut” to your desired command with options included.
Many popular Linux distributions come with a set of predefined aliases.
Let’s see the default aliases of Ubuntu 20.04, to do so simply type “alias” and press [ENTER].
By simply issuing the command “l”, behind the scenes, bash will execute “ls -CF”.
It’s as simple as that.
This is definitely nice, but what if we could specify our own aliases for the most used commands?! The answer is, of course we can!
One of the commands I use extremely often is “cd ..” to change the working directory to the parent folder. I have spent so much time hitting the same keys…
One day I decided it was enough and I set up an alias!
To create a new alias type “alias ” the alias name, in my case I have chosen “..” followed by “=” and finally the command we want an alias for enclosed in single quotes.
Here is an example below.
Functions
Sometimes you will have the need to automate a complex command, perhaps accept arguments as input. Under these constraints, aliases will not be enough to accomplish your goal, but no worries. There is always a way out!
Functions give you the ability to create complex custom commands which can be called directly from the terminal like any other command.
For instance, there are two consecutive actions I do all the time, creating a folder and then cd into it. To avoid the hassle of typing “mkdir newfolder” and then “cd newfolder” i have create a bash function called “mkcd” which takes the name of the folder to be created as argument, create the folder and cd into it.
To declare a new function, we need to type the function name “mkcd ” follower by “()” and our complex command enclosed in curly brackets “{ mkdir -vp “$@” && cd “$@”; }”