Efficient CLI Navigation

The CLI (Command Line Interface) is a very powerful, flexible and extremely programmable environment that lets you do anything you can ever think of …well, perhaps except for slaying the Dragon of Isengard. To harness its power, one’s mind needs to be as clear as the cloudless hour, and thoughts as pure as mountain dew. Although the road to enlightenment is long and arduous, there are some shortcuts that will help keep what’s left of your sanity.

Below you’ll find some tips on efficient navigation in the CLI.

Go Back Home

The cd command takes you back to your /home directory:
$ pwd
$ cd
$ pwd

Go Back to the Previous Directory

To go back to the previous directory, you can use cd with a dash ():

$ pwd
$ cd ~/data/projects/dotfiles/i3
$ pwd
$ cd -
$ pwd

Use the Last Argument of the Previous Command

The $_ variable returns the last argument of the previous command. This can be helpful in a variety of scenarios:

$ pwd
$ cp i3status.tar.gz ~/data/builds/i3/i3status
$ cd $_
$ pwd

$ chmod +x /path/to/my/script/script.sh
$ $_
(This will execute script.sh)

Bash Aliases

You can make your life easier by creating aliases (= shortcuts) for commands that you use often. The syntax is very simple:


You can place your aliases in ~/.bashrc. You might need to create this file. Each time you edit this file you need to source it afterwards for the changes to take effect:

source ~/.bashrc


. ~/.bashrc

When it comes to navigation, one could, for example, create a few aliases to speed up navigating up the directory tree:

alias 1.='cd .. ; pwd'
alias 2.='cd ../.. ; pwd'
alias 3.='cd ../../.. ; pwd'
alias 4.='cd ../../../.. ; pwd'

The value of an alias can be quite complex. As you can see, 4. will first change directories (cd ../../../..) and then print the current working directory – pwd. Please note a semi-colon (;) separating the commands.

$ cd data/projects/python-dir/euler/
$ 4.
$ cd -
$ 3.

Aliases can be used in a number of different ways. A few more examples:

alias epyt='emacs -nw /home/user/data/projects/python-dir/32-problem.py'
alias slacktop='ssh user@slacktop'

Directory Stack

BASH features some helpful directory stack buildins that help you navigate recently visited directories.

pushd – push a directory into the directory stack and cd to it.
popd – remove a directory from the directory stack and cd to it.
dirs – display the list of the directories in the stack.

How does it work in practice?

First of all, add a directory to the stack. Please note that it also automatically switches to the directory (the -n flag suppresses this behaviour).

user@darkstar:~$ pushd data/projects/programming/
~/data/projects/programming ~

Alternatively, you can cd to a given directory and issue:

pushd .

After adding a few directories you can display the content of the stack:

user@darkstar:~$ dirs -v
0 ~/projects/web-develop/project-eden/includes
1 ~/projects/web-develop/project-eden/includes
2 ~/projects/web-develop/project-eden/pages/en
3 ~/projects/web-develop/project-eden/css
4 ~/projects/designs
5 ~/projects/notes
6 ~/public_html/project_eden

Please note that the first entry always displays the current working directory so if it also sits at the top of the stack, you’ll see what seems like duplicate lines. The -v flag is responsible for a nicely indexed output.

To switch to one of the directories in the stack you could issue:

user@darkstar:~$ cd $(dirs +2 -l)

Admittedly, this is not the most concise way of changing directories. To make it shorter we can add an alias and a function to the ~/.bashrc file.

alias dv='dirs -v'

List the current stack by simply typing dv.

if [ -z $position ]; then
echo "You need to specify a directory in the stack"
cd $(dirs +$1 -l)

The cdd function (based on this one) makes it possible to cd to a given directory from the stack by typing:

cdd 3

Hope this will help you in your quest to become a CLI wizard.

Perharps you’ve read the articles saying that not getting enough care about health may add your risk of countless soundness woes. Online is the best way to buy remedies. For example Antabuse is used in determined humanity with chronic alcoholism. This medicament can help keep you from drinking because of the unpalatable side effects that will occur if you consume alcohol while grab Antabuse. Viagra which is used to treat inability to get or keep an erection and other states connected to erectile dysfunction. A lot of men ask about cialis from canada. What is the most great information you must know about cialis online usa? Questions, like , are linked divers types of medical problems. Positively, a sexual dysfunction refers to a problem during any phase of the sexual response cycle that prevents the couple from experiencing satisfaction from the sexual living. Unhealthy lifestyle choices, venous leak, doldrums, and several medicines can reduce your wish. Your body can not react well to stress. Note that your sex therapist has preassigned Viagra or any other drug because she has judged that the profit to you is biger than the risk of potential side effects. Remember, if you have any other questions about Viagra ask your dispenser.

Leave a Reply

Your email address will not be published. Required fields are marked *