Though this is a basic topic known to many of you, But I want to share so that some one will get new things.
BASH(Broune Again Shell) is the default shell in Linux, which will act as a communicator between Kernel and user. Its having so many capabilities such as

a.Short cuts
b.Command chaining

c.History

As I mention we will see all about BASH shell history capabilities here. And I have divided this BASH capabilities in to three parts like basics, medium and advanced.

Basic capabilities of BASH History:
1.
To see all the commands what we executed the previously
#history

2.To check the history size of your system
#echo $HISTSIZE

3.To check where is your history file, which stores all your the previous commands
#echo $HISTFILE

4.To browse history.
Just press up/down arrow to browse history

5.To see all the commands which have particular word
#history  | grep string

Example:
#history | grep cd

Medium capabilities of Bash history:
6.
Some times browsing history is very tedious job and some times we are executing some big big commands so there is a capability in Bash to over come this ie search-i-reverse. For doing this press ctrl+r and type a string in the previous command which you want to execute.


Lets see it with an example
root@krishna-laptop:~#(reverse-i-search)`se’: service winbind restart
if you see above I just pressed ctrl+r and then started to type se, it is showing service winbind restart command, so I no need to type entire command and I have to justent press enter

root@krishna-laptop:~# service winbind restart
* Stopping the Winbind daemon winbind [ OK ]
* Starting the Winbind daemon winbind [ OK ]
root@krishna-laptop:~#

7.Changing the size of history. Most of the Linux machines by default it can store up to 500 the previously executed commands. Some people likes to change it to some value, here i want to keep my the previously executed 3000 commands.
#HISTSIZE=3000


8.to execute the previous command
#!!
or
!-1

9.To execute 25 command in bash history
#!25


10.To execute a recent command which start with a string
#!string

11.To clear all the history
#HISTSIZE=0
or

#history –c

12.In Linux when we execute some command there will be no output of the command, for example useradd or mount -a commands will not give you output saying that command is executed successfully or not at that time we can used the below command to see whether the the previous command is executed successfully or not
#echo $?
If the out put of the above command is “0”, that indicates the previous command executed successfully, for any other values the command is not executed successfully(total there are 256 values, 0-255).

Advanced capabilities of Bash history:
History Modifiersreferences:

http://linux.about.com/od/commands/l/blcmdl3_history.htm
http://www.linuxtopia.org/online_books/redhat_linux_debugging_with_gdb/using-history-interactively.html
http://docstore.mik.ua/orelly/linux/lnut/ch08_06.htm
http://www.catonmat.net/blog/the-definitive-guide-to-bash-command-line-history/


Please comment your thoughts regarding this post:-)