Upload
bart-van-loon
View
2.341
Download
0
Embed Size (px)
DESCRIPTION
A very quick introductory course on the GNU/Linux command line. Part of our standard training courses for offshore software developers at Zeropoint.IT.
Citation preview
IntroductionWorking on the command line
ManualsEssential command line tools
Command line essentials
Bart Van Loon
1st February 2012
1 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
1 Introduction
2 Working on the command linebash
bash promptsome bash features
3 Manuals
4 Essential command line tools
2 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
Some ancient history
When computers were big, incomprehensible beasts, like
you could “talk” to it using punched cards, paper tape or aterminal.
3 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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
IntroductionWorking on the command line
ManualsEssential command line tools
Some ancient history
These terminals gave you an interface for text entry and displaythrough various standard “streams”.
5 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
A little less ancient now
Today, most UNIX-like operating systems such as Linux andFreeBSD have virtual terminals to provide several text terminals ona 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
IntroductionWorking on the command line
ManualsEssential command line tools
Modern times
In today’s graphical world, we have terminal emulators, like
I xterm
I gnome-terminal
I rxvt
I . . .
7 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
Modern times
These terminal emulators run text-based applications. The mostfundamental types of such applications are shells, like
I bash
I tcsh
I zsh
I . . .
A shell gives you a command line interface (CLI).
8 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
Working on the command line
Let’s assume you are running bash.
I bash is program, namely a shell meant for interactive use
I bash is also a powerful scripting language
9 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
bash in interactive mode
When it starts, it runs one or more scripts:I When started as an interactive login shell:
/etc/profile
~/.bash profile, ~/.bash login, or ~/.profile
I When exited as a login shell:
~/.bash logout
I When started as an interactive shell (but not a login shell):
~/.bashrc
10 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
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 root
11 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
Your bash prompt
You can change the look of this prompt! Why would you do so?
I it looks cool;
I it’s useful to keep track of system information;
I different machines/users can get different colours;
I have information about work environment available at all time;
I to quickly spot the prompt when you use scrollback;
I . . .
12 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
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 root
13 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
Your bash prompt
Try the following command (put it on one line with spaces inbetween):
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
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
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 task
15 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
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 output
16 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
Piping
You can also “pipe” streams to link commands:
$ program1 | program2
is the same as
$ program1 > tempfile
$ program2 < tempfile
$ rm tempfile
17 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
Piping
18 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
bashbash promptsome bash features
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 theprevious command
19 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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 inquestion:
I mysql [options] db name
mysql can take some options but has to have a name of adatabase as argument
I xpdf [options] [PDF-file [page | +dest]]
xpdf can take some options and a PDF-file as arguments. Ifyou pass a PDF-file as argument you can also give it a page ora destination, preceded by a +-symbol.
Now check the synopsis of the ssh command.
20 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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 counts
21 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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
IntroductionWorking on the command line
ManualsEssential 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 format
23 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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 selectnon-matching lines
-n : prefix each line of output with the 1-based linenumber within its input file
24 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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 10
25 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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
IntroductionWorking on the command line
ManualsEssential 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 run
27 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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 10
28 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential 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 counts
29 / 30 Bart Van Loon Command line essentials
IntroductionWorking on the command line
ManualsEssential command line tools
References
I http://en.wikipedia.org/wiki/Computer_terminal
I http://en.wikipedia.org/wiki/Bash_%28Unix_shell%29
I http://tldp.org/HOWTO/Bash-Prompt-HOWTO
I http://en.wikipedia.org/wiki/Redirection_%28computing%29
30 / 30 Bart Van Loon Command line essentials