Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Command line essentials

2,634 views

Published on

A very quick introductory course on the GNU/Linux command line. Part of our standard training courses for offshore software developers at Zeropoint.IT.

Published in: Technology
  • Be the first to comment

Command line essentials

  1. 1. Introduction Working on the command line Manuals Essential command line tools Command line essentials Bart Van Loon 1st February 20121 / 30 Bart Van Loon Command line essentials
  2. 2. Introduction Working on the command line Manuals Essential command line tools 1 Introduction 2 Working on the command line bash bash prompt some bash features 3 Manuals 4 Essential command line tools2 / 30 Bart Van Loon Command line essentials
  3. 3. Introduction Working on the command line Manuals Essential command line tools Some ancient history When computers were big, incomprehensible beasts, like you could “talk” to it using punched cards, paper tape or a terminal.3 / 30 Bart Van Loon Command line essentials
  4. 4. Introduction Working on the command line Manuals Essential command line tools Some ancient history This is such a computer terminal: The famous DEC VT100 (1978).4 / 30 Bart Van Loon Command line essentials
  5. 5. Introduction Working on the command line Manuals Essential command line tools Some ancient history These terminals gave you an interface for text entry and display through various standard “streams”.5 / 30 Bart Van Loon Command line essentials
  6. 6. Introduction Working on the command line Manuals Essential command line tools A little less ancient now Today, most UNIX-like operating systems such as Linux and FreeBSD have virtual terminals to provide several text terminals on a single computer to let you interface with the computer itself. If you’re in X now, try to press ctrl-alt-F1, ctrl-alt-F2, . . .6 / 30 Bart Van Loon Command line essentials
  7. 7. Introduction Working on the command line Manuals Essential command line tools Modern times In today’s graphical world, we have terminal emulators, like xterm gnome-terminal rxvt ...7 / 30 Bart Van Loon Command line essentials
  8. 8. Introduction Working on the command line Manuals Essential command line tools Modern times These terminal emulators run text-based applications. The most fundamental types of such applications are shells, like bash tcsh zsh ... A shell gives you a command line interface (CLI).8 / 30 Bart Van Loon Command line essentials
  9. 9. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Working on the command line Let’s assume you are running bash. bash is program, namely a shell meant for interactive use bash is also a powerful scripting language9 / 30 Bart Van Loon Command line essentials
  10. 10. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools bash in interactive mode When it starts, it runs one or more scripts: When started as an interactive login shell: /etc/profile ~/.bash profile, ~/.bash login, or ~/.profile When exited as a login shell: ~/.bash logout When started as an interactive shell (but not a login shell): ~/.bashrc10 / 30 Bart Van Loon Command line essentials
  11. 11. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Your bash prompt Let’s start with what you see: bbbart@tuxitree:~$ bbbart : my username tuxitree : computer’s hostname ˜ : present working directory (˜ is the home directory) $ : this means I am not root11 / 30 Bart Van Loon Command line essentials
  12. 12. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Your bash prompt You can change the look of this prompt! Why would you do so? it looks cool; it’s useful to keep track of system information; different machines/users can get different colours; have information about work environment available at all time; to quickly spot the prompt when you use scrollback; ...12 / 30 Bart Van Loon Command line essentials
  13. 13. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Your bash prompt Your prompt configuration is stored in the variable PS1. $ echo $PS1 u@h:w$ u : user’s username h : computer’s hostname w : present working directory $ : $ when user is not root, # when user is root13 / 30 Bart Van Loon Command line essentials
  14. 14. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Your bash prompt Try the following command (put it on one line with spaces in between): PS1=’[e[1;32m]u@H:[e[m] [e[1;37m]w[e[m]n[e[1;33m]hist:! [e[0;33m] [e[1;31m]jobs:j $[e[m] ’ Now go an find the prompt that suits you best!14 / 30 Bart Van Loon Command line essentials
  15. 15. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Keyboard shortcuts Some useful keyboard shortcuts: tab : autocomplete from the cursor position ctrl-a : move cursor to the line start ctrl-c : send the SIGINT signal to the current task ctrl-d : send an EOF marker (if the line is empty) ctrl-e : move cursor to the line end ctrl-k : clear the line after the cursor ctrl-l : clear the screen content ctrl-u : clear the line before the cursor ctrl-z : send the SIGTSTP signal to the current task15 / 30 Bart Van Loon Command line essentials
  16. 16. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Stream redirecting Remember the streams to interact with a terminal (stdin, stdout, stderr). You can redirect them! > : redirect stdout 2> : redirect stderr < : redirect stdin Special one: >> : redirect stdout, but append to the output16 / 30 Bart Van Loon Command line essentials
  17. 17. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Piping You can also “pipe” streams to link commands: $ program1 | program2 is the same as $ program1 > tempfile $ program2 < tempfile $ rm tempfile17 / 30 Bart Van Loon Command line essentials
  18. 18. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Piping18 / 30 Bart Van Loon Command line essentials
  19. 19. Introduction bash Working on the command line bash prompt Manuals some bash features Essential command line tools Learn from history DRY is also a principle on the shell: ↑ and ↓ : navigate through your history ctrl-r : search the command history history : print your recent history !<n> : repeat command number <n> !! : repeat the last command !$ : special variable that contains the last word of the previous command19 / 30 Bart Van Loon Command line essentials
  20. 20. Introduction Working on the command line Manuals Essential command line tools Before we begin. . . The most important command you’ll ever learn, is man: man : format and display the manual pages Most manual pages contain a synopsis of the command in question: mysql [options] db name mysql can take some options but has to have a name of a database as argument xpdf [options] [PDF-file [page | +dest]] xpdf can take some options and a PDF-file as arguments. If you pass a PDF-file as argument you can also give it a page or a destination, preceded by a +-symbol. Now check the synopsis of the ssh command.20 / 30 Bart Van Loon Command line essentials
  21. 21. Introduction Working on the command line Manuals Essential command line tools Essential command line tools “The right tool for the right job” cut : remove sections from each line of files du : estimate file space usage grep : print lines matching a pattern head : output the first part of files nice : run a program with modified scheduling priority sort : sort lines of text files tail : output the last part of files wc : print newline, word, and byte counts21 / 30 Bart Van Loon Command line essentials
  22. 22. Introduction Working on the command line Manuals Essential command line tools cut Name : cut Description : remove sections from each line of files Synopsis : cut OPTION... [FILE]... Useful options: -d DELIM : use DELIM instead of TAB for field delimiter -f LIST : select only these fields A LIST is made up or ranges separated by commas. A range is N, N-, N-M or -M.22 / 30 Bart Van Loon Command line essentials
  23. 23. Introduction Working on the command line Manuals Essential command line tools du Name : du Description : estimate file space usage Synopsis : du [OPTION]... [FILE]... Useful options: -c : produce a grand total -s : display only a total for each argument -h : print sizes in human readable format23 / 30 Bart Van Loon Command line essentials
  24. 24. Introduction Working on the command line Manuals Essential command line tools grep Name : grep Description : print lines matching a pattern Synopsis : grep [OPTIONS] PATTERN [FILE...] Useful options: -i : ignore case distinctions in the PATTERN -v : invert the sense of matching, to select non-matching lines -n : prefix each line of output with the 1-based line number within its input file24 / 30 Bart Van Loon Command line essentials
  25. 25. Introduction Working on the command line Manuals Essential command line tools head Name : head Description : output the first part of files Synopsis : head [OPTION]... [FILE]... Useful options: -n K : print the first K lines instead of the first 1025 / 30 Bart Van Loon Command line essentials
  26. 26. Introduction Working on the command line Manuals Essential command line tools nice Name : nice Description : run a program with modified scheduling priority Synopsis : nice [OPTION] [COMMAND [ARG]...] Useful options: -n N : add integer N to the niceness (default 10)26 / 30 Bart Van Loon Command line essentials
  27. 27. Introduction Working on the command line Manuals Essential command line tools sort Name : sort Description : sort lines of text files Synopsis : sort [OPTION]... [FILE]... Useful options: -h : compare human readable numbers -n : compare according to string numerical value -r : reverse the result of comparisons -u : output only the first of an equal run27 / 30 Bart Van Loon Command line essentials
  28. 28. Introduction Working on the command line Manuals Essential command line tools tail Name : tail Description : output the last part of files Synopsis : tail [OPTION]... [FILE]... Useful options: -f : output appended data as the file grows -n K : print the last K lines instead of the last 1028 / 30 Bart Van Loon Command line essentials
  29. 29. Introduction Working on the command line Manuals Essential command line tools wc Name : wc Description : print newline, word, and byte counts for each file Synopsis : wc [OPTION]... [FILE]... Useful options: -l : print the newline counts29 / 30 Bart Van Loon Command line essentials
  30. 30. Introduction Working on the command line Manuals Essential command line tools References http://en.wikipedia.org/wiki/Computer_terminal http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29 http://tldp.org/HOWTO/Bash-Prompt-HOWTO http://en.wikipedia.org/wiki/Redirection_%28computing%2930 / 30 Bart Van Loon Command line essentials

×