 
Subject
You might save some time and have a little fun by putting some aliases
and functions in your .bashrc file. You can put functions or aliases
in .bash_profile or .bashrc in your home
directory. But by using .bashrc instead of .bash_profile, they'll
be read in not only when you log in, but whenever you start a new shell
such as by launching an xterm, using su, etc. Your .bash_profile is read
only when you log in. You might also want to look at /etc/profile and
/etc/bashrc, these are the system-wide bash initialization files which
are read in for every user and serve as the defaults. These should only be
changed when necessary for all users, and is usually not a good place
to put functions and aliases. The idea here is to personalize your
environment and make it easier for you to be lazy.
Aliases
I usually put them at the very top or the very bottom of .bashrc to
keep them all together. Aliases are one-liners, nicknames for commands
that are too long or hard to remember to type every time.
I get tired of typing this:
[usr-3@srv-3 usr-3]$ ls -al | more
Let's call it lam instead. But first make sure there's not already a command
called lam in my path:
[usr-3@srv-3 usr-3]$ which lam
It returns nothing, so we're ok. I'll edit /usr-3/.bashrc and add the line:
alias lam="ls -al | more"
We'll have to read it in, otherwise I'd have to launch a new shell to get it:
[usr-3@srv-3 usr-3]$ source ~/.bashrc
[usr-3@srv-3 usr-3]$ lam
total 1354
drwxr-xr-x 32 usr-3 users 3072 Oct 17 08:32 .
drwxr-xr-x 5 root root 1024 Jul 22 17:26 ..
-rw-r--r-- 1 usr-3 users 5422 Oct 17 08:00 .X.err
-rw-r--r-- 1 usr-3 users 5742 Dec 8 1998 .Xdefaults
-rw-r--r-- 1 usr-3 users 46 May 7 1996 .Xmodmap
-rw-r--r-- 1 usr-3 users 1940 Jul 22 16:06 .acrorc
-rw-r--r-- 1 usr-3 users 0 Sep 2 11:23 .addressbook
-rw------- 1 usr-3 users 2285 Sep 2 11:23 .addressbook.lu
-rw------- 1 usr-3 users 12288 Oct 17 08:33 .article.swp
-rw------- 1 usr-3 users 5853 Oct 17 08:13 .bash_history
-rw-r--r-- 1 usr-3 users 1379 Oct 17 08:32 .bashrc
-rw------- 1 usr-3 users 12288 Oct 17 08:32 .bashrc.swp
-rw-r--r-- 1 usr-3 users 0 Nov 19 1995 .dayplan
-rw------- 1 usr-3 users 0 May 8 1996 .dayplan.priv
-rw-r--r-- 1 usr-3 users 208 Nov 17 1995 .dvipsrc
-rw-r--r-- 1 usr-3 users 4143 Mar 15 1999 .emacs
-rw-r--r-- 1 usr-3 users 1168 Feb 3 1998 .exrc
drwxr-xr-x 13 usr-3 users 1024 Sep 30 16:18 .gimp-1.1
-rw-r--r-- 1 usr-3 users 5376 Aug 28 1996 .gimprc
drwx------ 2 usr-3 users 1024 Jan 2 2000 .grok
--More--
Some other examples:
Get a summary of the disk usage in human readable format
alias duh="du -h --max-depth=1"
[usr-3@srv-3 music]$ duh .
689M ./d7
192M ./misc_tunes
749M ./mike
1.6G .
kill everything netscape:
alias dienet='kill `ps auxwww | grep netscape | cut -c10-15`'
(notice the use of single quotes around the alias, double quotes
take away the command substitution magic of the backticks.)
kill it really dead:
alias dienet9='kill -9 `ps auxwww | grep netscape | cut -c10-15`'
You can also define aliases on the command line, but of course they
won't persist beyond the life of the shell.
[usr-3@srv-3 music]$ alias smithandjones="ssh -l smith jones"
[usr-3@srv-3 music]$ smithandjones
smith@jones's password:
Linux 2.2.16.
No mail.
jones:/home/smith$
Back on srv-3, if I launch a new shell I lose the alias:
[usr-3@srv-3 music]$ bash
[usr-3@srv-3 music]$ smithandjones
bash: smithandjones: command not found
Functions
A function is like a shell script that you can put in your .bashrc
file. This is good for things that won't fit on a single command line or
which require logic or looping. As with aliases or shell scripts, work
out the commands at the prompt before you try to run them as a function
from your files. Unlike a shell script, no new process is executed to
interpret functions.
Here's a function for something I get tired of doing by hand:
function fame {
wget http://www.slashdot.org -O ~/slashdot.html
FAME=`grep "Urbana Dergahad" ~/slashdot.html`
if test -n "$FAME"
then
mail mom -s "Look Ma I'm Famous" < ~/slashdot.html
else echo "sorry...."
fi
}
So I add it to my .bashrc and read it in:
[usr-3@srv-3 usr-3]$ vi .bashrc
[usr-3@srv-3 usr-3]$ . .bashrc
[usr-3@srv-3 usr-3]$ fame
sorry....
Always the same! Oh well. You might be able to think of some more
practical and less hopeless examples!
| People: | |
| Places: | |
| Things: | |
| Times: | |
|
|