Document Sample
linux Powered By Docstoc
					An Introduction to Linux
      John Swinbank
    13th November 2001
         Part One
Why install Linux, and how to
     go about doing so.
What is Linux?

• For the purposes of this talk, a Unix like
  operating system
• 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
Why Linux?
• 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
                                     – XFree86
   – 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
    you                       software
•   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
      widely used
                                  – 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
   – Boot
   – 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
           Part Two
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
      sudo instead
• During installation, you should have been prompted for a
    root password and also a username & password for an
    ordinary user account.
Virtual consoles
• 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
    new console.
•   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)
   –   tcsh
   –   zsh
   –   Others…
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
  the mouse
• A disk partition can be mounted
  on any directory in the tree
Noteworthy directories
• /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
                                     • /usr
• /home
                                       – 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.
    the system
• 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)
• mkdir
   – 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
    – ps
• 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
Job Control
• 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
   – jobs
Killing 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…)
Part Three
Essential tools
Text Editor
• 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 –
    Vi Improved)
•   Also worth considering simpler editors for
    getting started
    – Joe
    – Pico
• 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
Package Management
• 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
         Part Four
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
Desktop environments
• 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

       The End
Comments, questions, pub…