Getting Started in Linux

By Dave Fisher

1. What is Linux?

  • Linux kernel
    • Developed by Linus Torvalds
    • Strictly speaking, ‘Linux’ is just the kernel
  • Associated utilities
    • Standard tools found on (nearly) all Linux systems
    • Many important parts come from the GNU project
      • Free Software Foundation’s project to make a free Unix
      • Some claim the OS as a whole should be ‘GNU/Linux’
  • Linux distributions
    • Kernel plus utilities plus other tools, packaged up for end users
    • Generally with installation program
    • Distributors include: Red Hat, Debian, SuSE, Mandrake

2. What Can You Do with Linux/Unix?

  • Virtually anything that you can do with a computer:
    • General purpose office PCs, thin-clients and servers
    • Home consumer PCs (games, multi-media, etc.) — a weak spot
    • Software development — free languages, compilers, tools
    • Single-use devices and systems
    • Vast multi-purpose data centres and server farms
    • Build the Internet
  • Largely depends on motivation, effort, co-operation and experience
  • Learning and mastering it is a bit like natural language acquisition:
    • You can get going with pre-verbal sounds and gestures
    • Takes years of learning and practice to acquire fluency
    • No one knows more than a fraction of the whole

3. Linux Isn’t Windows

  • More flexible, powerful, stable and secure
  • Primarily, because it’s made up of simple, tiny, components which can be assembled and configured in infinite ways
  • The X windowing system is networked, OS-independent and older
  • Command lines are used for power and productivity, not inertia
  • Data files typically plain text (ASCII) rather than binary
    • Allowing re-use and re-assembly by any program or application
  • Underlying architectures are designed but implementations evolve
    • Innovative divergence then convergence around best practice
    • Inconsistencies remain if they’re not ‘important’ enough to fix
  • Supported by fewer hardware vendors and ISVs

4. Getting Linux

  • All applications and distributions released under open source licences can be freely copied from any source
    • Some commercial installers and config tools are proprietary
  • Try before you install, using a run-from-CD distro
  • Buy/copy binary CDs used by friends, colleagues, or WYLUGers, if:
    • They use a beginner-friendly distro
    • It’s a popular distro which others can help you with
    • They install/configure an easy maintenance distro
  • Buy an established commercial distribution with a good manual
  • Burn binary CD images, or install directly, from the Internet
  • Build, combine and configure every component from source code

5. Hardware Requirements

  • Depend entirely on what you want to do with your system
  • Linux runs on just about every CPU and platform you’ve heard of
  • Trouble-free installation and functionality is most likely with established, generic, popular components
  • Some common uses of Intel-compatible systems:
    • Single-use console min. — 386 CPU, 4 Mb RAM, 50 Mb HDD
    • Basic X window min. — 486 CPU, 16-32 Mb RAM, 100 Mb HDD
    • Acceptable office thin client — 586 CPU, Fast XVGA, Fast Ethernet, Twin P3 Server
    • Basic office PC — 500+ MHz 686, 128 Mb RAM, 10 GB HDD
    • Typical SoHo Multi-media PC — 1+ GHz P4/Athlon, 512 Mb RAM, 120 Gb HDD

6. Installing Linux

  • Installing a modern commercial distribution on dedicated, modern, vanilla hardware is easier and quicker than Windows:
    1. Insert a bootable installation CD
    2. Turn on your machine
    3. Accept all the default configration choices
  • Some can even install dual-boot systems in the same way
  • Less polished or custom installs require knowledge of hardware specs, HDD partitions, and TCP/IP networking
  • Installing on esoteric hardware, including laptops, is difficult
  • In the last two cases, get help from friends, user groups, mailing lists, ‘install fests’, HOWTOs, Google, etc.

7. Unix and Linux

  • Linux is based on Unix
    • Unix philosophy
    • Unix commands
    • Unix standards and conventions
  • There is some variation between Unix operating systems
    • Especially regarding system administration
    • Often Linux-specific things in these areas

8. Unix System Architecture

  • The shell and the window environment are programs
  • Programs’ only access to hardware is via the kernel

9. Unix Philosophy

  • Multi-user
    • A user needs an account to use a computer
    • Each user must log in
    • Complete separation of different users’ files and configuration settings
  • Small components
    • Each component should perform a single task
    • Multiple components can be combined and chained together for more complex tasks
    • An individual component can be subsituted for another, without affecting other components

10. Graphical Interfaces

  • May look/behave like Microsoft, but fundamentally different
    • Networked, platform-independent, multi-head, heterogeneous
    • Typical users work with 3–4+ ‘virtual desktops’
  • Made up of independent components:
    • Display Managers (xdm, etc.) — login session management
    • X — primitive mechanisms for drawing objects on screens
    • Window Managers — provide decorations, controls, menus
    • Desktop Environments (Gnome/KDE) — drag & drop, integration between applications, common key bindings, etc.
  • Application crashes may ‘freeze’ the screen, or even bring down X, but rarely affect the rest of the system
    • Control from consoles (Ctrl+Alt+F1–F6) or remote shell

11. Command Line Productivity

  • Command line interfaces (CLIs) give simultaneous access to otherwise impossible combinations of tools, options and data
  • Experienced users find them quicker and simpler than mousing
  • Many old Unix hands are unaware of the productivity and usability features in Linux shells like bash, e.g.
    • Command and filename completion
    • Command history
    • Command substitution
  • Increasingly long and sophisticated command lines, eventually get saved as shell scripts (programs)
    • Cutting out much of the human effort entirely

12. Text Editors

  • Text editors are for editing plain text files
    • Don’t provide advanced formatting like word processors
    • Extremely important — manipulating text is Unix’s raison d’tre
  • Particularly useful for markup, programming, config files
  • Emacs and Vim are most popular, powerful and sophisticated, but take time to learn
    • Simpler editors include Nano, Pico, Kedit and Gedit
  • Some programs run a text editor for you
    • They use the $EDITOR variable to decide which editor to use
    • Usually it is set to vi, but it can be changed
    • Another example of the component philosophy

13. A Minimal Set of Command Line Tools

  • Shells — bash, ssh
  • File manipulation — cp, mv, rm, scp, cat, lpr, dd, chmod, chown
  • Directories — pwd, ls, mkdir, rmdir, du
  • Searching — find, locate, grep
  • Viewing files — less, head/tail, cat
  • Documentation — man, info, help
  • Resources & job control — ps, df, jobs, bg/fg
  • Backup/archiving — tar, gzip, bzip2, zip
  • A web browser — lynx, or links, or elinks
  • A mailer — mutt, or pine

14. Common Sets of Desktop Tools

  • Web browsers — Galeon, Konqueror, Opera, Mozilla
  • Office suites — Star/Open Office, K Office, Gnome Office, MS-Office (via Wine, VMware, Crossover Office)
  • Single wordprocessors, spreadsheets, etc. — mixed and matched
  • Graphics — Gimp (bitmap), Sodipodi (vector), Kontour (vector)
  • Viewers — Ghostview (PostScript/PDF), Acroread (PDF), xpdf (PDF)
  • Multimedia — Xmms, gmplayer, gPhoto, Linux VideoStudio, TV/radio
  • Email clients — Kmail, Evolution, Balsa, Mozilla Mail
  • News Readers — Knews, Pan, Mozilla News
  • Misc — scanning, OCR, voice, speech, file sharing, IDEs, etc

15. Information Sources

  • Your own system documentation
    • /usr/share/doc/appname
    • man appname or man -k keyword
    • info appname
    • appname --help or appname -h
  • Linux Documentation Project http://www.tldp.org/
  • User group web sites and mailing lists — for almost all apps
  • Distribution sites — SuSE, Red Hat, Mandrake, Debian, SuSE
  • Really good books — Unix rewards reading and learning
    • Look for many editions and user recommendations
  • Google

Comments are closed.