LINUX : How to reload or change your current shell ?

Bash - GNU Shell, Tips No Comments »

If you have change your rc file of your favorites bash (like ~/.bashrc in “bash“), you can reload it easly by using “exec“. Just type the following command line :

nicolas@grimm:~/$ exec bash

Exec replace the current process image with a new process image . So, now if you add aliases in your ~/.bash_aliases, just use “exec bash” and you could use your aliases in your current terminal. This way is also useful if you want to change your current shell without spawn another process. I mean, if you have a box where your login shell is a classical “sh“, you can also do an “exec bash“, that will replace your current shell by a friendly one.

Using bash wildcards

Bash - GNU Shell, Tips No Comments »

Common way for rename a mispelled file is to use mv but many dudes will first write the curent name then the new name (ie. mv old_file new_file). Stop ! Use the wildcards ! :-)

Most used wildcard is the asterix “*” (match all characters) but other usefull wildcards exist like the question mark “?” that match for a single character. In some case, as a large directories, that’s avoid you to use a grep on your ls command and give you a more concise listing.

# Question Mark Wildcard “?”

nicolas@grimm:~$ ls

pic1.jpg pic1.txt pic2.jpg pic3.jpg pic4.jpg pic5.jpg pic-big.jpg pic.jpg pic-small.jpg pic.txt pic1.txt pic2.txt pic1.bmp
nicolas@grimm:~$ ls pic?.jpg

pic1.jpg pic2.jpg pic3.jpg pic4.jpg pic5.jpg

Other usefful wildcard will be square brackets “[]” and curly brackets “{}“. First let you match a range of values, second let you define a list of values.

# Square Brackets Wildcard “[]“

nicolas@grimm:~$ ls pic[ 1-3].jpg

pic1.jpg pic2.jpg pic3.jpg

# Curly Brackets Wildcard “{}”

nicolas@grimm:~$ ls pic1.{txt,jpg,bmp}

pic1.txt pic1.jpg pic1.bmp

You can use those wildcards simultanously for a better search.

nicolas@grimm:~$ ls pic[1-3].{txt,jpg}

pic1.jpg pic1.txt pic2.jpg pic3.jpg

We have seen how to perform our ls search but you can also use those bash wildcards in any of your bash commands !

nicolas@grimm:~$ mv a_too_{short,long}_file_name_with_lot_of_ch4r4ct3r3.txt

will result in renaming the file a_too_short_file_name_with_lot_of_ch4r4ct3r3.txt to a_too_long_file_name_with_lot_of_ch4r4ct3r3.txt

nicolas@grimm:~$ cp pic[1-3].jpg dest

will result in copying pic1.jpg, pic2.jpg and pic3.jpg into the directory dest

Working quickly with some usefull BASH Shortcuts

Bash - GNU Shell, Tips No Comments »

Last day, one of my friends was doing some stuff on its Mac OSX Term without using any shortcuts. I suggest some of them (which are POSIX, GNU or Shell keys combinations) to him and he answer me : Why don’t you post it on shell-tips.com ?!

Those shortcuts are for Bash shell but it’s probably work with other advance shells.

Control Keys combinations (CTRL+KEY)

  1. ctrl+a : move your cursor to the beginning of the line
  2. ctrl+e : move your cursor to the end of the line
  3. ctrl+k : delete any characters from your cursor to the end of the line
  4. ctrl+u : delete any characters from your cursor to the beginning of the line
  5. ctrl+w : delete previous word
  6. ctrl+t : transpose two previous characters
  7. ctrl+y : yank/recover the last deletion
  8. ctrl+d : delete one character at the cursor position
  9. ctrl+h : delete one character before the cursor
  10. ctrl+f : move forward (or use the right arrow ! :-)
  11. ctrl+b : move backward (or use the left arrow ! :-)
  12. ctrl+r : find character sequence in history (completion mode)
  13. ctrl+g : escape from completion mode
  14. ctrl+v : Literal next (LNEXT)

NB: LNEXT interpret the next character as a string. eg : for symbolize a CR+LF you must do the key combination ctrl+v+return, that will print ^M.

Escape Keys combinations (ESC+KEY)

  1. esc+d : delete from the cursor position to the end of the word
  2. esc+f : move forward a word
  3. esc+b : move backward a word
  4. esc+t : transpose two adjacent words

Other common keys

  1. Use up/down arrows to move thru the bash command history
  2. Use left/right arrows to move on the current line
  3. Use tabulation key (TAB) for auto-complete a command name or a file name
  4. Use exclamation key + command name for repeat last similar command (ex. : !vi will recall the last vi command)

Enjoy ! ;-)

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in