Use arguments from previous command

Some useful codes to re-use arguments from a previous Bash command:

!^      first argument
!$      last argument
!*      all arguments
!:2     second argument

!:2-3   second to third arguments
!:2-$   second to last arguments
!:2*    second to last arguments
!:2-    second to next to last arguments

!:0     the command
!!      repeat the previous line

For example:

$ echo a b c d e 
a b c d e
$ echo !^
echo a
a