grep cheat sheet
------------------
-i : ignore case
-w : Match the exact word
-A n : displays n lines after the match
-B n : displays n lines before the match
-C n : displays n lines on both sides of the match
-v : inverting the match
-e : for including multiple matches ( extending the match)
-c : counting the number of match
-l : displays only the file name of the match
-o : displays only the matched string
-b : displays the position of the match in the file
-n : line number will be displayed along with the match
Monday, April 13, 2009
Sunday, April 12, 2009
Timestamp with history
$ history
can be used to retrive the history of commands. It may be beneficial to display the timestamp along with the command for auditing purpose. HISTTIMEFORMAT variable can be used to achive the purpose
$ export HISTTIMEFORMAT=’%F %T ‘
Now the out put of the 'history' will be similer to this

Include the variable in your appropriate shell initialization file to make it permanent.
Thursday, April 2, 2009
Customise vi/vim - I
Correcting spelling mistakes automatically
------------------------------------------------
You can customise vi/vim according to your requirement using the ~/.vimrc file. You can even make vim learn the spellings of words also.
Suppose, you identified that usually commint some typoes ( teh for the, for example). We will see how to teach vi/vim to correct these mistakes automatically.
Open the file ~/.virmrc file and key in the contents as below and save the file.
iab teh the
The syntax is as follows.
ia incorrect_word correct_word
A plug-in for vim is available from http://www.vim.org/ , which is actually a collection of common mistakes we make, it is quite big repository which we can make use of.
Installing the autocorrect.tar plug-in
------------------------------------------
wget -O autocorrect.tar http://www.vim.org/scripts/download_script.php?src_id=9900
$ tar xf autocorrect.tar
Edit the ~/.vimrc file and key in the contents as below
$ vi ~/.vimrc
:source ~/autocorrect.vim
Note: If you dont want the auto correction permenently, you can add the source while in a vim session as below
:source
If you want to temporarly stop abbreviation for a word, you can use ' : uab teh' while in vim
:uab teh
------------------------------------------------
You can customise vi/vim according to your requirement using the ~/.vimrc file. You can even make vim learn the spellings of words also.
Suppose, you identified that usually commint some typoes ( teh for the, for example). We will see how to teach vi/vim to correct these mistakes automatically.
Open the file ~/.virmrc file and key in the contents as below and save the file.
iab teh the
The syntax is as follows.
ia incorrect_word correct_word
A plug-in for vim is available from http://www.vim.org/ , which is actually a collection of common mistakes we make, it is quite big repository which we can make use of.
Installing the autocorrect.tar plug-in
------------------------------------------
wget -O autocorrect.tar http://www.vim.org/scripts/download_script.php?src_id=9900
$ tar xf autocorrect.tar
Edit the ~/.vimrc file and key in the contents as below
$ vi ~/.vimrc
:source ~/autocorrect.vim
Note: If you dont want the auto correction permenently, you can add the source while in a vim session as below
:source
If you want to temporarly stop abbreviation for a word, you can use ' : uab teh' while in vim
:uab teh
Tuesday, March 31, 2009
Directory stack
Navigating directories using dirs, pushd and popd
Stack is a temporary data storage based on LIFO. The last item you push to stack, will be the first item you pop out.
we need pushd, popd and dirs to play around with stack
pushd: pushes or adds the directory to the directory stack
popd: pops or removes the directory from the directory stack (last in first out LIFO)
dirs: displays the contents of the stack
Directory stack can be really usful if you need to navigate to some directories which is very lengthy and you need to do it very often.
/tmp/very/long/directory/structure/that/is/too/deep
/tmp/hard/to/navigate/this/directory/structure
/some/structure/which/i/donot/prefer/navigating/often
Let us take the sample directory structures given above.
One way to make the navigation easy if you have to do it requenty is to set aliases, as given below
$ alias godeep="cd /tmp/very/long/directory/structure/that/is/too/deep"
OR, you can make use of the the directory stack.

$ cd /tmp/very/long/directory/structure/that/is/too/deep
$ pushd .
$ cd /some/structure/which/i/donot/prefer/navigating/often
$ pushd .
$ cd /some/structure/which/i/donot/prefer/navigating/often
$ pushd .
The out put of the dirs command will be as follows,
If you want to navigate to the third directory issue the following command
$ cd `dirs +3`
To remove the element from the stack issue the popd command as follows
$ popd
Wednesday, March 25, 2009
Running jobs in background
When you login to the linux machine, the shell creates three I/O channels that will be used by all the processes spawned from that shell. The I/O channels are stdin (standard input), stdout (standard output) and stderr (standard error).
Jobs can be put into background by using ^z and 'bg' commands. These job will be using the three I/O channels which we discussed above.
Once you log out from the shell those I/O channels are destroyed even though they are used by the job running in the background. The operating system will inteligently reassign the I/O channels to '/dev/null', means that all the output is dumped to the endless pit, and the jobs will not be shown in the jobs list, available while using the 'jobs' command , and also you will not have any trace of the process (will not dump the output to the console) even though it shows up in the process list 'ps -elf'.
To have a better idea about the process running in the background, start the process in the background using 'nohup'.
eg: $ nohup tail -f /var/log/messages > message.out &
$ tail -f message.out
OR, you can use of the 'screen' command as discussed some where in this blog.
Jobs can be put into background by using ^z and 'bg' commands. These job will be using the three I/O channels which we discussed above.
Once you log out from the shell those I/O channels are destroyed even though they are used by the job running in the background. The operating system will inteligently reassign the I/O channels to '/dev/null', means that all the output is dumped to the endless pit, and the jobs will not be shown in the jobs list, available while using the 'jobs' command , and also you will not have any trace of the process (will not dump the output to the console) even though it shows up in the process list 'ps -elf'.
To have a better idea about the process running in the background, start the process in the background using 'nohup'.
eg: $ nohup tail -f /var/log/messages > message.out &
$ tail -f message.out
OR, you can use of the 'screen' command as discussed some where in this blog.
Wednesday, March 18, 2009
Managing multiple windows with screen
Screen is really helpfull while administering remote servers using ssh, insted of opening new ssh sessions for each activity, you can make use of screen to manage the windows for you. It is very useful while you have to do multiple tasks in different windows.
To start screen
# screen
A new shell will be opened by screen, i which you can have multiple wiindows.
To start a new window
# Ctr+A c
Navigation between windows
# Ctr+A n - To go to the next window
# Ctr+A p - To go to the previous window
To detach the screen
# Ctr+A d or
# screen -d
( use exit of ^d to exit from screen, if you detact from screen the windows and session will be saved, so that you can resume from where you have stopped)
To list the detached screens

# screen -ls
To reattach a dettached screen

# screen -r
Have a nice screen ... ing
Tuesday, March 17, 2009
Monitoring Users and their activities
whowatch:-
To monitor the users and their activities as well as to manage the process.
It also provides a 'top' like view to manage the processess.
To monitor the users and their activities as well as to manage the process.
It also provides a 'top' like view to manage the processess.
Subscribe to:
Posts (Atom)