Transcript Document

Introduction to Unix
Bent Thomsen
Institut for Datalogi
Aalborg Universitet
Unix Philosophy
•
•
•
•
•
•
Designed by programmers for programmers
Toolbox approach
Flexibility and freedom
Networked – designed for server use
Multi-user / Multitasking
Conciseness
– Everything is a file or a process
• File system has places
• Processes have life
October 2002
Bent Thomsen - FIT 1-2
2
Unix Structure
Programs
Kernel
System Calls
Hardware
October 2002
Bent Thomsen - FIT 1-2
3
Interacting with Unix
• Sometimes through a GUI interface
October 2002
Bent Thomsen - FIT 1-2
4
OpenLook on Sun
October 2002
Bent Thomsen - FIT 1-2
5
Common Desktop Environment
October 2002
Bent Thomsen - FIT 1-2
6
MacOS X
October 2002
Bent Thomsen - FIT 1-2
7
Interacting with Unix
• But most likely through a shell
– Xterm, telnet, Secure Shell
– A shell is the command line interpreter
(like the DOS or command prompt in Windows)
• A shell is just another program
– There are several shells (sh, csh, tcsh, bash …)
• A program or command
– Interacts with the kernel
– May be any of:
• Built-in shell command
• Interpreted script
• Compiled object code file
October 2002
Bent Thomsen - FIT 1-2
8
Telnet
October 2002
Bent Thomsen - FIT 1-2
9
SSH Secure Shell
October 2002
Bent Thomsen - FIT 1-2
10
Getting started - login
• The login is the user’s unique name
• Password is changeable
– Only known to user, not to system staff
– Except initial issued password
•
•
•
•
Unix is case sensitive
Login and password prompt
System messages – you have new mail
The command prompt % $ [machine]>
October 2002
Bent Thomsen - FIT 1-2
11
Example of login
October 2002
Bent Thomsen - FIT 1-2
12
Password - Do
• Make sure nobody is looking over your
shoulder when you type your password
• Change your password often
• Choose a password you can remember
• Use eight characters or more, some
numeric, some not letters, i.e. # ! ( ] …
October 2002
Bent Thomsen - FIT 1-2
13
Password – Don’t
•
•
•
•
•
•
•
Use a word (or words) in any language
Use a proper name
Use information in your wallet
Use information commonly known about you
Use control characters
Write your password anywhere
EVER give your password to anybody
October 2002
Bent Thomsen - FIT 1-2
14
Passwords
Your password is your account security:
• Change your initial password immediately
• Use the passwd command to change your
password
% passwd -where '%' is the prompt
Changing password for bt
Old password: -type in your old password
New password: -type in your new password
Retype new password: -and again, to make sure
%
October 2002
Bent Thomsen - FIT 1-2
15
The command prompt
•
•
•
•
Commands are the way to do things in Unix
Commands are typed at the prompt
Commands, as everything else, are case sensitive in Unix
A command consists of a name, options (or flags) and
sometimes arguments
[prompt]> <command> <flags> <args>
October 2002
Bent Thomsen - FIT 1-2
16
Two Basic Commands
• The most useful commands you’ll ever learn:
– man
– help
(short for “manual”)
• They help you find information about other
commands
– man <cmd> retrieves detailed information about <cmd>
– help lists useful commands
October 2002
Bent Thomsen - FIT 1-2
17
Who am I?
• Commands that tell you who you are:
– whoami
– id
displays your username
displays your username and groups
• Commands that tell you who others are:
– finger [<name>] displays info for <name>
– id [<username>] displays info for <username>
• Commands that change who you are:
– su <username>
– login
October 2002
“switch user” to <username>
login as a different user
Bent Thomsen - FIT 1-2
18
Files and Directories
• In Unix, files are grouped together in other files called directories,
which are analogous to folders in Windows
• Directory paths are separated by a forward slash /
– Example /home/bt/FIT/docs
• The hierarchical structure of directories (the directory tree) begins
at a special directory called the root, or /
– Absolute paths start at /
• Example /home/bt/FIT/docs
– Relative paths start in the current directory
• Example FIT/docs (if you’re currently in /home/bt)
• Your home directory is where your personal files are located, and
where you start when you log in.
– Example /home/bt
October 2002
Bent Thomsen - FIT 1-2
19
The File System
October 2002
Bent Thomsen - FIT 1-2
20
Directories (cont’d)
• Handy directories to know
~ Your home directory
.. The parent directory
. The current directory
• Other important directories
/bin
/tmp
October 2002
Bent Thomsen - FIT 1-2
21
• ls
Simple commands
– LiSts the contents of specified files or directories (or
the current directory if no files are specified)
– Syntax: ls [<file> … ]
– Example: ls backups
• pwd
– Print Working Directory
October 2002
Bent Thomsen - FIT 1-2
22
More commands
• cd
– Change Directory (or your home directory if
unspecified)
– Syntax: cd <directory>
– Examples:
• cd backups/unix-tutorial
• cd ../class-notes
• mkdir
– MaKe DIRectory
– Syntax: mkdir <directories>
– Example: mkdir backups class-notes
October 2002
Bent Thomsen - FIT 1-2
23
More commands
• rm
–
–
–
–
ReMove
Syntax: rm [<options>] <files>
Example: rm class-notes.txt
Example: rm –ir backups
• rmdir
– ReMove DIRectory, which must be empty
– Syntax: rmdir <directories>
– Example: rmdir backups class-notes
October 2002
Bent Thomsen - FIT 1-2
24
Files (cont’d)
• cp
– CoPies a file, preserving the original
– Syntax: cp <sources> <destination>
– Example: cp tutorial.txt tutorial.txt.bak
• mv
– MoVes or renames a file, destroying the original
– Syntax: mv <sources> <destination>
– Examples:
• mv tutorial.txt tutorial.txt.bak
• mv tutorial.txt tutorial-slides.ppt backups/
Note: Both of these commands will over-write existing files
without warning you!
October 2002
Bent Thomsen - FIT 1-2
25
File Permissions
• Every file has three access levels:
– user
– group
– other
(the user owner of the file)
(the group owner of the file)
(everyone else)
• At each level, there are three access types:
– read
– write
– execute
October 2002
(looking at the contents)
(altering the contents)
(executing the contents)
Bent Thomsen - FIT 1-2
26
What You Can Do With Permissions
Permission
File
Directory
r (read)
Read a file
List files in …
w (write)
Write a file
x (execute)
Execute a file
(eg shell script)
Create a file in …
Rename a file in …
Delete a file in …
Read a file in …
Write to a file in …
Execute a file/shell
script in …
October 2002
Bent Thomsen - FIT 1-2
27
Changing Permissions
• The “change mode” command:
chmod <level><op><permissions>[,…] <filename>
<level>
string of: u, g, o, a (user, group, other, all)
<op>
one of +, -, = (gets, loses, equals)
<permissions> string of: r, w, x, s, t, u, g, o
(read, write, execute, set-id, text,
same as user, same as group, same as other),
• Examples:
chmod u+rwx,go-w foobar
chmod g=u,+t temp/
chmod u=rwx,g=rwxs,o= shared/
October 2002
Bent Thomsen - FIT 1-2
28
Process Management
• What can you do with it?
–
–
–
–
–
–
–
Start programs in the background
Run more than one program per terminal
Kill bad and/or crashing programs
Suspend programs mid-execution
List all jobs running in a shell
Move foreground jobs to the background
More …
October 2002
Bent Thomsen - FIT 1-2
29
Three States of a Process
• Foreground
– Attached to keyboard
– Outputs to the screen
– Shell waits until the process ends
• Background, running
– Not attached to keyboard
– Might output to the screen
– Shell immediately gives you another prompt
• Background, suspended
– Paused mid-execution
– Can be resumed in background or foreground
October 2002
Bent Thomsen - FIT 1-2
30
Background Processes
• Listing jobs:
– jobs
– ps
– %<job#>
lists background “jobs” and job #’s
lists processes and their process id (“pid”)
expands to the process id of the job
• Stopping foreground jobs
– Press ^Z (Ctrl-Z) in the terminal window
• Starting a process in the background
– Append a & character to the command line
– Examples:
ls –lR > ls-lR.out &
• Resuming a stopped job
– In the foreground:
– In the background:
October 2002
fg [<pid>]
bg [<pid>]
Bent Thomsen - FIT 1-2
31
Killing Processes
• The “kill” command:
kill [-<signal>] <pid>
Send <signal> to process <pid>
• The “killall” command:
killall [-<signal>] <command>
Send <signal> to all processes that start with <command>
• Useful signals (kill –l for the complete list):
TERM
KILL
HUP
STOP
October 2002
the default, “terminate”, kills things nicely
will kill anything, but not nicely
“hangup”, used to reload configurations
stops (suspends) a running process
Bent Thomsen - FIT 1-2
32
Redirecting input and output
• Simple!
<program> < <FILE>
<program> > <FILE>
• Example
sort < my_grades.txt
ls > dirlist
Note a file called dirlist will be created if it doesn’t exist
Dirlist will be overwritten. >> appends
October 2002
Bent Thomsen - FIT 1-2
33
Piping
• Piping is connecting programs together by using the
output of one program as the input to the next.
• Syntax:
<program1> | <program2> | … | <programN>
• A simple example (view a sorted file-listing a page at a
time):
ls | sort | less
• By combining Unix utilities in a pipeline, you can build
tools “on-the-fly” as you need them.
October 2002
Bent Thomsen - FIT 1-2
34
Shell Shortcuts
• Tab completion
– Type part of a file/directory name, hit <tab>, and the shell will finish as
much of the name as it can
– Works if you’re running tcsh or bash
• Command history
– Don’t re-type previous commands – use the up-arrow to access them
• Wildcards
– Special character(s) which can be expanded to match other file/directory
names
* Zero or more characters
? Zero or one character
– Examples:
• ls *.txt
• rm may-?-notes.txt
October 2002
Bent Thomsen - FIT 1-2
35
Editing Text
• Which text editor is “the best” is a holy war. Pick one and
get comfortable with it.
• Three text editors you should be aware of:
– vi – A lighter editor, used in programming
– emacs – A heavily-featured editor commonly used in
programming
– pico – Comes with pine (Dante’s email program)
October 2002
Bent Thomsen - FIT 1-2
36
Printing
• Printing:
–
–
–
–
Use lpr to print
Check the print queue with lpq
lprm to remove print jobs
For the above commands, you’ll need to specify the
printer with
–P<printer name>
October 2002
Bent Thomsen - FIT 1-2
37
Exiting
• Logout – leave the system
• Exit – leave the shell
• ^C interrupt
• ^D can log user off – often disabled
October 2002
Bent Thomsen - FIT 1-2
38
Remember
• In Unix, you’re expected to know what you’re
doing.
– Many commands will print a message only if
something went wrong.
– Most often there is no undo button
– Make a backup copy if you are unsure
– Some commands have interactive options
• E.g. rm –i
• Unix can be hard to learn, but it is loads of fun to
use when you know what you are doing!
October 2002
Bent Thomsen - FIT 1-2
39