An Introduction to Linux
13th November 2001
Why install Linux, and how to
go about doing so.
What is Linux?
• For the purposes of this talk, a Unix like
• It‟s not directly descended from Unix, but
it‟s designed to work along the same lines
• At the introductory level of this talk, much
of what we say about Linux applies to
other Unix like systems, for example
• Stable • Why not?
• Powerful – It‟s not Windows;
– Wide range of capabilities need to learn
– Flexible user interface something new
• Free (Open Source) – Doesn‟t run MS Office
– Doesn‟t run many of
• Wide range of tools the latest games
– Particularly for
development, networking – The Unix command
and so on. line isn‟t for everybody
• A great learning resource
What is Linux really?
• Linux itself is just kernel • The kernel is only useful
– The heart of the system; when used in conjunction
takes care of memory with other software
management, interrupt – GNU Project
– First released by Linus
Torvalds on 17th September – Others
– Still maintained by Linus, • All this comes nicely
with input & patches from packaged up for you in a
interested developers all distribution
over the world.
What does a distribution do?
• Takes the kernel & • Provide a method for
other software and installing and
sells/gives them to removing extra
• Provide a “friendly” – A „packaging‟ system
method of installing • Provide their own
the system utility software, e.g.
• Provide security – Printer setup,
updates and bug fixes – Network setup,
– And so on
Which distribution to use?
• A matter of personal • Mandrake
preference – Aims to be very easy
• RedHat to install and use
– Big, professional, very • SuSE
– Compromise between
• Debian RH and Mandrake(?)
– Open development
model, excellent • Slackware
packaging system – Most traditional; little
– I use Debian extra help
• Varies from distribution to distribution
• Most modern distibutions make it easy:
– Buy CD / download and burn CD image
– Follow instructions
• Need to think about partitioning.
• Will install a boot loader (probably LILO or
GRUB, maybe something else). This needs to be
configured to boot whatever other operating
systems you have installed.
Useful resources for part one
Ok, so it‟s installed – what next?!
• Linux is an intrinsically multi-user system
• Every user on the system has their own username &
• The root user has ultimate power to run the system.
You should not log in as root unless you really need to
– Even if you think you need to be root, consider tools such as
• During installation, you should have been prompted for a
root password and also a username & password for an
ordinary user account.
• Demonstrate multi-user capabilities.
• After logging in, hit Alt+F2. You can now log in
again – as a different user if you like – on this
• After logging in, type w to see that you really are
logged in twice.
• You could also log in from a remote system
(using SSH or similar) while still being logged in
at the console.
• The shell reads your input at the command line and
translates it to the operating system
• Can run external programs (e.g. mozilla) or internal
shell commands (e.g. cd)
• String multiple commands together in a shell script
• Various different shells available:
– bash (standard)
Files and directories
• Linux shares the concept of files and directories
with most other everyday systems.
• In general, a filename can contain any character
except “/”, and is limited to 256 characters long.
• Directories work in much the same way as in
DOS based systems, except that instead of “\”
we use “/”.
• Note the case sensitivity – Mozilla and
mozilla are not the same!
The directory tree
• Unlike DOS, not directly related
to the physical disk/partition
• Some directories are actual
filesystems; others, like /proc,
are generated by the kernel
• Device files, usually in the
/dev directory are not
standard files, but actually an
interface to devices. For
example, reading /dev/mouse
might show data coming from
• A disk partition can be mounted
on any directory in the tree
• /bin • /proc
– Programs needed to run the – Provides information about
system running process and the state of
• /dev the kernel
– Device files • /sbin
• /etc – Like /bin, but commands only
needed by root user
– Configuration files
– Programs, libraries, etc not
– Users home directories essential for system running.
• /lib • /var
– Shared libraries needed to run – Log files, mail spool and so on.
• cd • cp
– Change directory
– Equivalents: – Copy files/directories
• cd /home/jds • rm
• cd ~jds – Delete files or directories
• cd (assuming you‟re
logged in as jds) • mv
• ls – Move files or directories
– List directory contents • less (or more)
– Make a new directory – View the contents of files
Help! Too many commands!
• man is your friend.
– man cp
• Help on cp
– man -k cp
• List of everything which has “cp” in its description (ok, there‟s lots
of them, bad example ;-) )
– man man
• How does man actually work?
• info is the preferred GNU system for documentation.
– A pain in the neck to use
– Try the pinfo viewer
Standard I/O streams
• Many programs take input from standard input
and produce output on standard ourput.
• Error messages are sent to standard error.
• Often, stdin is the keyboard and stdout & stderr
are the screen
– But they can be redirected.
• Example: cat.
– Reads data from stdin. Sends it to stdout.
• We can redirect standard output to a file
– cat > filename
• Or bring standard output in from a file
– cat < filename
• Or both
– cat < file1 > file2
• We can also send the standard output of one command
to the standard output of others
– cat < file1 | cat > file2
• The “Unix philosophy”: don‟t have one monolithic, do
everything application. Have small programs that do one
thing well & can work together.
Groups & permissions
• Each user can be a • Permissions can be set
member of one or more for each of owner, group
groups and others.
– groups command – chmod command
• Each file/directory is • Permissions are listed in
owned by a user and a the form rwxrwxrwx in
group the output of ls –l
– ls –l – Three groups of three
• The file owner can set – Read, write, execute for
permission on who can each of
read/write/execute a file. – User, group, others
– The first character
represents the type of file
• Give a single file more than one name
• Create links using ln
• Hard links
– Multiple file names pointing to the same inode
– ls –I
– ls –l displays number of links to file
– A directory is a file containing information about link to inode
• Every directory contains at least two links: “.”, pointing to itself, and
“..” pointing to its parent
• Symbolic links (symlinks)
– Not linked by having the same inode
– ls –l displays link target – note the filetype!
• Linux is a multitasking system – there can be many
processes running at the same time
• Each process has a unique process ID („pid‟) number
• Processes can run in the foreground or in the
– There can only be one foreground process at any given time. It
is this processes with which the user interacts.
• Suspended processes are temporarily stopped, and can
be sent either to the foreground or background as
• The shell can control processes
• Kill the foreground process: Ctrl+C
• Suspend the foreground process: Ctrl+Z
• Send the suspended process to the:
– Foreground: fg
– Background: bg
• Start a process in the background: append an & to the
– E.g. yes &
– Note the PID and job number
• Check the status of processes
• Use the kill command
– Either with the PID, for example:
• kill 22916
– Or with the job number:
• Kill %2
– Note the „%‟!
• Or use killall with the command name:
– yes > /dev/null & killall yes
– Be warned that killall may not have the desired
effect on non-Linux systems
Useful resources for part 2
• Your own distribution‟s documentation
• man hier
• man bash
• Other man pages (ps, ls, ln, kill, killall…)
• Everybody needs a text editor
• Pick one and learn how to use it well – it‟ll save
you a lot of time in the long run
• Traditional choices are Emacs and Vi (or Vim –
• Also worth considering simpler editors for
• Lots of other editors out there if these don‟t suit
• The “Unix philosophy” again – • Mail Delivery Agent (MDA)
several small tools working (optional)
together. Contrast with, e.g. – Delivers messages to local
Outlook which tries to do users
everything. – User configurable filtering,
• Mail User Agent (MUA) bounces, etc
– Reads & writes mail. Handles • May also need a program to
display, threading, etc retrieve messages from a
• Mail Transport Agent (MTA) POP3/IMAP server and deliver
– Sends and receives messages them to the MTA using SMTP
using SMTP • Of course, there are also
monolithic, Outlook style
applications out there
• Varies from distribution to distribution
• Most common system is RPM, developed & used by
– Also used by Mandrake, SuSE etc
• Also .deb packages, as used by Debian and derivatives
• Provides for installing new packages, satisfying
dependencies, full system upgrades etc.
– The apt-get system used by Debian for this is very powerful.
– Similar, but perhaps less widely used, systems in the RPM using
• It‟s worth learning how to use your distributions package
management tools properly
• Assuming you don‟t want to use binary packages
all the time, you‟ll need a compiler
– You‟ll want to compile new kernels yourself, if nothing
• Any sane distribution should ship with gcc, the
GNU Compiler Collection (formerly GNU C
• Run gcc.
Useful resources for part 3
The X Window System, or how to
make a 50-MIPS workstation run
like a 4.77MHz IBM PC
X: A graphical interface for Unix
• If the designers of X- • Despite the above quote, X isn‟t
all bad. It‟s actually a remarkably
Windows built cars, there powerful, network aware
would be no fewer than windowing system which has
five steering wheels shown a great deal of adaptability
hidden about the cockpit,
none of which followed • Most Linux distributions come with
the same principles – but – An open source implementation of
you'd be able to shift the X Window Specification
gears with your car • X is a huge subject; we‟re not
stereo. Useful feature, going to attempt to cover it all
here. Instead, I‟ll aim to give a
that. flavour of the things X can do and
– Marus J. Ranum, Digital the graphical environments which
Equipment Corporation make use of it.
Clients and servers
• X is network aware
– Run a program on one machine, have it display on another
• The terminology around this is, perhaps,
• An X server runs on the machine where the display is to
• The X client runs on a remote machine and sends data
to the server to display
• So, contrary to the usual definitions, you sit at the server
and the clients run remotely!
• (Most of the time on your Linux workstation, the clients
and the server run on the same machine.)
X and the GUI
• X itself provides the back end • There are various different toolkits
needed for a GUI. It doesn‟t, for creating graphical applications,
however, provide an interface providing libraries of widgets such
itself. as buttons etc. These range from
• Window management functions – the old and ugly (Motif) to the
e.g. moving or resizing windows new and shiny (GTK+, Qt)
– are performed by a window • No two users can be assumed to
manager, which is itself an X have the same window manager
client. These range from the and different applications can use
spartan (twm) to the complex and different toolkits (or even write
graphically intensive their own). Therefore, there‟s a
(Enlightenment). lack of consistency about the
average X desktop – this makes
things ugly and can be hard to
• Attempt to produce a consistent environment
and set of applications
• Two major projects along the same lines
– GNOME, using the GTK+ toolkit
– KDE, using the Qt toolkit
– (also XFce, which aims to be more lightweight)
• Some people (including me) find that the
desktop environments are big, slow and ugly
without actually adding much usability
– Luckily, it‟s possible to use most KDE/GNOME
software without running the whole environment
Useful resources for part four
Comments, questions, pub…