Open Source Musings The thoughts, ideas, and opinions of an open source guy

Creating command line aliases

A Linux terminal window

If you’re doing any work at the command line, that work probably involves more than a couple of keystrokes. You can save time and reduce the amount you type at the command line in two ways.

One way is to create a script that encapsulates all of the commands and options that you’ll be using to perform an operation. All you need to do is run the script along with, say, a file name. That’s great for single or multiple commands that require a lot of options.

For other commands, an easier way is to create an alias. An alias replaces the command and its options with something shorter. For example, if you want to list the contents of a directory in detail, you can type ls -l at the command line. Or, you can create the alias ll and use that instead.

Let’s take a quick look at how to do that.

It’s all in a file

I’m assuming you’re using the bash shell). If you aren’t, what I’m about to describe should work with your preferred shell.

Crack open a terminal window. Make sure you’re in your home directory — for example, /home/scott. Then, open the file .bashrc in your favourite text editor.

The file .bashrc determines the behaviour of your shell. On some systems, you can also create aliases in the files .bash_profile and .profile. Note that the dot before the name of the file indicates that it’s hidden.

Scroll through the file. If you’re lucky, the file might have some sample alias definitions. You can add your aliases after that section. If not, add them at the end of the file.

Creating the alias

Create an alias by adding this to the file:

alias [command]=’alias’

For example, if you want to list the contents of a directory and their attributes, create this alias:

alias la=’ls -a’

Whenever you type la, your shell knows that you mean ls -a.

That’s a pretty simple example. Useful, but simple. Take a look at some of my aliases:

Example of an alias from my .bashrc file

I have ones for merging PDF files, logging into websites that I maintain using SSH, and generating random passwords. I use this alias (which you can see in the screen capture above) to merge PDF files:

alias pdfmerge=’gs -dBATCH -dNOPAUSE -q -sDEVICE=pdfwrite -sOutputFile=./output.pdf’

All I need to do type pdfmerge and some file names rather than try to remember that string of commands.

You can do a lot more with aliases, but that’s all I’m going to cover for now.

Thoughts? Let's start a conversation on Twitter.

Did you enjoy this post or find it useful? Then please consider supporting this blog with a micropayment via Liberapay. Thanks!