An introduction to Linux/Unix programming


This talk is a brief guide to Linux programming languages, tools and concepts.

It is aimed at programming novices or programmers migrating from a Windows system (and your first question is probably "Where's the IDE???").

The aim is to introduce you to the concepts, the possibilities and the tools used in Unix programming, focusing on Linux in particular.

You will not come away from this talk with an advanced knowledge of C pointers, OOP design in Python or how to hack a network driver in the Linux kernel. There are limits to what you learn in one hour!


  1. Firstly - my biases.
    Everyone has them - here are mine, so there is no confusion!

  2. The Unix philosophy of small tools
    One problem, many solutions.

  3. Editors
    EMACS vs vi, other editors, and some useful features to look out for.

  4. From shells scripts to interpreters to compilers and back again
    An introduction to some common Unix languages, including Guile, Perl, Python and Tcl

  5. C - the language of Unix
    A brief look at C and C++.

  6. A bug's life
    Debugging with GDB in 5 easy steps.

  7. Tools
    Make, diff, patch, autoconf, automake, yacc & flex, indent and other tools.

  8. Revisions and versions
    RCS and CVS.

  9. I want my IDE!!!
    The mystery of the missing IDE.

  10. Documentation
    Software documentation with troff, man, texinfo, HTML and SGML.

  11. Some final thoughts
    Portability, software licences and helping the free software movement...

  12. Further reading...
    Books, mailing lists and web sites to guide you along the way.

Overheads for the March 1999 LUV meeting.

Written by Graeme Cross.

Thanks to the following people for corrections: Silvio Rizzi <>