Linux Tutorials
Linux Tutorials are a great way to learn more about managing Linux servers and getting more familiar with this operating system. Below is our collection of Linux tutorials where you should be able to find the right Linux tutorial to suit your need.
![]() |
How to Install PHP 5 on Linux Dec 21st by Richard Laffers
This tutorial explains the installation of Apache web server, bundled with PHP and MySQL server on a Linux machine. The tutorial is primarily for SuSE 9.2, 9.3, 10.0 & 10.1, but most of the steps ought to be valid for all Linux-like operating systems. |
![]() |
How to Install Apache 2 on Linux Dec 20th by Richard Laffers
This tutorial explains the installation of Apache web server, bundled with PHP and MySQL server on a Linux machine. The tutorial is primarily for SuSE 9.2, 9.3, 10.0 & 10.1, but most of the steps ought to be valid for all Linux-like operating systems. |
![]() |
How to Install MySQL 5.0 on Linux Dec 19th by Richard Laffers
This tutorial explains the installation of Apache web server, bundled with PHP and MySQL server on a Linux machine. The tutorial is primarily for SuSE 9.2, 9.3, 10.0 & 10.1 operating systems, but most of the steps ought to be valid for all Linux-like operating systems. |
![]() |
SMB Caching Jun 1st by Tony Lawrence
A customer had a particular shared folder setup so that only he had access to it. This happened to be a SCO Visionfs system, but you could run into similar problems with Samba. |
![]() |
Mound --Bind Apr 29th by Tony Lawrence
Most Linux and Unix file systems don't allow hard links to directories (except for the . and .. entries that mkdir creates itself). The reasons are are pretty obvious: you could really confuse programs like ls (ls -R), find and of course fsck if you created links that recursed back to themselves. |
![]() |
Tar Wild Card Interpretation Apr 23rd by Tony Lawrence
I had this email earlier this week:I am trying to restore a file "\GL050". I can see it on the tape listing, but I can't get edge to find it. I have tried listing it the following ways: |
![]() |
Lost Root Password - Linux Apr 13th by Tony Lawrence
Have you ever forgotten your root password? I have a very good memory. I remember most of my client's passwords (there are a few I forget regularly for no reason that I can understand, but I really do know most), I remember telephone numbers, and of course I know my own passwords. |
![]() |
Enabling Linux Telnet Mar 8th by Tony Lawrence
This has to be one of the more common support calls that I get. The telnet daemon is no longer usually installed by default, so people are surprised when their newly installed Linux system won't answer telnets. |
![]() |
Undoing Bad Archives Oct 19th by Tony Lawrence
Most zip or tar archives are made so that they unpack into a sub-directory. However, every now and then you run into one that wasn't done that way, and if you happen to unpack it in a directory that already has files, you end up with confusion: what was just unpacked and what was already here? |
![]() |
Symlinks Oct 19th by Tony Lawrence
Linux "symlinks" is a handy utility for managing symbolic links. It can clean up the sort of problems that come from carelesness when creating symbolic links. |
![]() |
Bash 3.00 brace expansion Oct 4th by Tony Lawrence
Ah, finally: no more of for i in 1 2 3 4 5 6 7 8 9 0 do .. whatever done |
![]() |
ps sorting Sep 2nd by Tony Lawrence
In the beginning, when large creatures lumbered through damp tropical forests and furry mammals hid quivering in their burrows, "ps" had no built in abilty to change its sort order. You got what it gave, and if you wanted it otherwise, you ran it through "sort" yourself. That is the Unix Way: small tools, working together... |
![]() |
Bash Aliases Sep 2nd by Tony Lawrence
Most shells have some provision for aliases. Aliases can assign default behavior to a command (for example "rm" is often aliased to "rm -i") or can be used to create new commands (a typical example is "ll" aliased to be "ls -l"). |
![]() |
How to Build Your Own Linux Distribution Jul 6th by Frank Pohlmann
Linux® From Scratch (LFS) and its descendants represent a new way to teach users how the Linux operating systems work. LFS is based on the assumption that compiling a complete operating system piece by piece not only teaches how the operating system works but also allows an independent operator to build systems for speed,... |
![]() |
Linux, Outside the (x86) Box Jun 29th by Peter Seebach
It's obvious -- Linux has become an attractive option for non-x86 platforms. Why? In this article, the author examines the reasons for this, including the fact that Linux on non-x86 enables affordable, easy-to-do virtualization; provides for better reliability, power consumption, and extended memory support; covers the... |
![]() |
Port Windows IPC Apps to Linux, Part 1: Processes and Threads Jun 16th by Srinivasan S. Muthuswamy, Kavitha Varadarajan
The wave of migration to open source in business has the potential to cause a tremendous porting traffic jam as developers move the pervasive Windows® applications to the Linux platform™. In this three-part series, get a mapping guide, complete with examples, to ease your transition from Windows to Linux. Part 1 introduces... |
![]() |
Build a Push Proxy Gateway on Linux Jun 15th by Manas Ranjan Behera
Learn how to set up a PPG on your own, configure the settings to your own taste, develop push content, and test it with a mobile handset simulator over a TCP/IP network on a LAN. |
![]() |
Monitor Linux File System Events with Inotify May 31st by Eli M. Dow
Inotify is a file system event-monitoring mechanism slated for inclusion in upcoming Linux™ kernels that is designed to serve as an effective replacement for dnotify, which was the de facto file-monitoring mechanism supported in older kernels. Inotify is a powerful, fine-grained, asynchronous mechanism ideally suited for a... |
![]() |
Use Shared Objects on Linux May 27th by Sachin O. Agrawal
Making the most of shared memory isn't always easy. In this article, IBM's Sachin Agrawal shares his expertise in C++, showing how the object-oriented among us can take key advantage of a uniquely useful interprocess communications channel. |
![]() |
Build a WAP Gateway On Linux May 27th by Manas Ranjan Behera
The hottest technology for implementing mobile services is the Wireless Application Protocol (WAP). This article discusses the advantages of working with the open source gateway for WAP, which performs the protocol conversion between a Web server and a mobile phone |
![]() |
Secure Programmer: Minimizing Privileges May 27th by David A. Wheeler
Secure programs must minimize privileges so that any bugs are less likely to be become security vulnerabilities. This article discusses how to minimize privileges by minimizing the privileged modules, the privileges granted, and the time the privileges are active. The article discusses not only some of the traditional... |
![]() |
Loadkeys, Dumpkeys May 18th by Tony Lawrence
You can change the output of the console keyboard with loadkeys. It's an extremely powerful command, and the man page can be confusing, but for simple use (which is often all we need it for), it's very easy. |
![]() |
PATH, Command May 13th by Tony Lawrence
Your PATH (echo $PATH) is where your shell will search for executables. If a command you want to run isn't included in $PATH, you have to be specific: /somewhere/someprog. One confusion for Unix/Linux newcomers is that if PATH doesn't include "." (current directory), then trying to run a program you can see right in front... |
![]() |
Loglevel May 13th by Tony Lawrence
Syslog is a wonderful thing. In theory, it lets an administrator fully control where and how messages get logged. Of course, the first requirement is that the program you wish to control uses syslog for logging, but even assuming that it does, it can still be difficult to get what you want. |
![]() |
Higher Order Functions May 13th by Jonathan Bartlett
Functions are the wonderful and powerful building blocks of computer programs. Functions allow you to break code down into simpler, more manageable steps. They also allow you to break programs into reusable parts -- parts that are both reusable within the program and in other programs as well. In this article, learn how to... |


