Aliases

Aliases are peculiar to interactive shells. They are not expanded in shell scripts, which helps to ensure predictability for the script, and it means that you can confidently define aliases for interactive use, safe in the knowledge that it will not break any shell scripts. As such, aliases are an ideal way to save you keystrokes, enabling you to avoid repeatedly typing the same complicated words or command sequences, as well as enabling you to automatically tweak the behavior of popularly used commands.

Timesavers

Some timesaving aliases include shortcuts to ssh to particular hosts, edit certain files, and so on. One convenient timesaver is to set aliases for systems that you regularly log in to. With the aliases that follow, you can log in to the web server as the apache user, and log in to each of the DNS servers as the bind user, simply by typing web, dns1, or dns2.

alias web='ssh apache@web.example.com'alias dns1='ssh bind@ns1.example.com'alias dns2='ssh bind@ns2.example.com'

You can take this even further by adding more options. The following alias emulates a simple VPN, forwarding the intranet web server’s port 80 to port 8080 at localhost. See the ssh documentation for more details about ssh port forwarding.

alias vpn='ssh -q -L 8080:192.168.1.1:80 steve@intranet.example.com'vpn
steve@intranet.example.com's password:<enter password> Linux intranet 2.6.26-2-amd64 #1 SMP Sun Jun 20 20:16:30 UTC 2010 x86_64 You have new mail. Last login: Wed Mar 16 21:45:17 2011 from 78.145.17.30 ...

Get Shell Scripting: Expert Recipes for Linux, Bash, and More now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.