Linux Applications You Must Be Familiar With If You Plan on Landing a Linux Job

Landing a Linux job really doesn’t have much to do with your school qualifications or what your resume says. With Linux, it’s all about experience. What you actually know will determine how far you get with a Linux job. Now, I’m not declaring that you must know everything listed in this article, but it’s important to be well versed in all aspects of Linux. Besides, if you plan to make Linux a part of your career, why not learn everything you can? In this document I will present you with Linux applications and what you should know about them at the very least. I then will present you with some outside links for further reading so that you can indulge and become more familiar with each Linux application listed.

If you’re looking to land a Linux job you must be familiar with these Linux applications or daemons.

Apache

Apache is the Apache HyperText Transfer Protocol (HTTP) server program. A large portion of the Internet web sites you visit run Apache on the server the site is hosted on to serve your web pages. If you don’t know apache I suggest you learn the basics. Most Linux jobs will require you to at least dip your feet in some sort of apache administration.

At the Least, You Should Know:

How to install Apache.

How to configure Apache.

How to view Apache logs.

Must reads for Apache:

Official Apache HTTP Server Documentation

apt-get

apt-get is the command-line tool for handling packages, and may be considered the user’s “back-end” to other tools using the APT library. apt-get is used mainly on Debian and Ubuntu but is cross-platform and the actual APT library has many different front-ends built for it. Apt-get is a pretty simple tool to use, so theres not much to learn here, but you should still be familiar with how it works.

At the Least, You Should Know:

How to install a package.

How to remove a package.

Must reads for apt-get:

Apt-get Man Page

How to use apt-get

Bash – GNU Bourne-Again SHell

Bash is an sh-compatible command language interpreter that executes commands read from the standard input or from a file. Bash also incorporates useful features from the Korn and C shells (ksh and csh).

It’s important to know how to program in Bash. There are a million ways to save time and energy if you can whip up a little bash script that automates something on the command line for you.

At the Least, You Should Know:

How to write a basic Bash script.

How to configure Bash to execute jobs during login or logout.

Must reads for Bash:

Bash Man Page

Bash Guide for Beginners

Advanced Bash Scripting

Bash by Example

Bash Tutorial

chmod

chmod changes the permissions of each given file according to mode, which can be either a symbolic representation of changes to make, or an octal number representing the bit pattern for the new permissions.

Chmod is vital to any Linux user. If you don’t understand how to change permissions on files then you really shouldn’t be using Linux.

At the Least, You Should Know:

How to set file and folder permissions with chmod.

Must reads for chmod:

Chmod Man Page

Linux File Permissions

Crontab

crontab is the program used to install, deinstall or list the tables used to drive the cron(8) daemon in Vixie Cron. Each user can have their own crontab, and though these are files in /var/spool/cron/crontabs, they are not intended to be edited directly.

Crontab is important to know if you want to execute a sort of “scheduled task” command that cron manages.

At the Least, You Should Know:

How to schedule tasks with crontab.

How to edit each users crontab.

How to allow and disallow users to use crontab.

Crontab format.

Must reads for Crontab:

Crontab Man Page

Understanding Cron Jobs in 5 Minutes

Crontab: Scheduling Tasks

Find

GNU find searches the directory tree rooted at each given file name by evaluating the given expression from left to right, according to the rules of precedence (see section OPERATORS), until the outcome is known (the left hand side is false for and operations, true for or), at which point find moves on to the next file name.

Using find is crucial to saving time and energy on the Linux command line. You’ll find that the more you know about the awesome capabilities of find, the better off you are.

At the Least, You Should Know:

How to find files throughout the whole system.

How to find only directories.

How to find files owned by a certain user.

Must reads for Find:

Study of Find

CLI Magic: Searching with Find

10 Useful uses of the find command

Iptables

Iptables is used to set up, maintain, and inspect the tables of IP packet filter rules in the Linux kernel. Several different tables may be defined. Each table contains a number of built-in chains and may also contain user-defined chains.

With iptables you have the ability to create firewall rules on your Linux computer to allow or restrict access in and out through each network interface.

At the Least, You Should Know:

How to list iptables rules.

How to filter an IP from hitting your interface.

How to remove rules.

Must reads for iptables:

Iptables Man Page

Linux Firewalls using iptables

Designing a firewall using Iptables for the home user

Using iptables

MySQL

mysql is a simple SQL shell (with GNU readline capabilities). It supports interactive and non-interactive use. When used interactively, query results are presented in an ASCII-table format. When used non-interactively (for example, as a filter), the result is presented in tab-separated format. The output format can be changed using command options.

As a Linux user looking to land a Linux job, there is a strong possibility that you will be working in an environment that uses Linux-Apache-MySQL-PHP (LAMP). You should be familiar with administrating a mysql server.

At the Least, You Should Know:

How to install MySQL.

How to configure MySQL.

How to view MySQL error logs.

How To Add and Remove MySQL users.

Must reads for MySQL:

MySQL Man Page

Official MySQL Documentation

OpenSSH and SSH

Ssh (SSH client) is a program for logging into a remote machine and for executing commands on a remote machine. You’ll probably find yourself using SSH on a daily basis if you land a Linux job.

At the Least, You Should Know:

How to connect to a server with SSH.

How to set up key based authentication for SSH.

Perl

Perl is a language optimized for scanning arbitrary text files, extracting information from those text files, and printing reports based on that information. It’s also a good language for many system management tasks. The language is intended to be practical (easy to use, efficient, complete) rather than beautiful (tiny, elegant, minimal).

You’ll find administration tasks that you can create Perl scripts for will save you a ton of work in the long run if you know Perl.

At the Least, You Should Know:

How to execute a perl script.

How to troubleshoot perl errors.

Must reads for Perl:

Perl Man Page

Official Perl Documentation

Simple Perl Scripts

Postfix

Postfix is a mail transfer agent (MTA) used on Linux as an alternative to Qmail and Sendmail. It handles the routing and delivery of email. Chances are you’ll run into some sort of postfix work in your Linux career, so why not learn what you can?

At the Least, You Should Know:

How to configure the postfix main.cf and master.cf files.

How to troubleshoot postfix errors and issues.

Must reads for Postfix:

Postfix Man Page

Official Postfix Documentation

Postfix Wiki

Postfix config How To

PHP

PHP (recursive acronym for “PHP: Hypertext Preprocessor”) is a widely-used Open Source general-purpose scripting language that is especially suited for Web development and can be embedded into HTML. Learning a bit about PHP as well as Apache and MySQL is essential to your Linux career and landing that Linux job.

At the Least, You Should Know:

How to install and configure PHP on Linux.

How to debug and troubleshoot a PHP error.

Must reads for PHP:

Official PHP Documentation

How To Write PHP Scripts

Qmail

Qmail is a secure, reliable, efficient, simple message transfer agent. If your Linux job isn’t running Postfix or Sendmail, you’re probably going to need to know Qmail.

At the Least, You Should Know:

How to Install and Configure Qmail.

How to find and interpret the Qmail log files.

How to debug and troubleshoot Qmail errors.

Must reads for Qmail:

Qmail Man Page

The Qmail Documentation Project

Qmail HowTo

Life With Qmail

RPM

rpm is a powerful Package Manager, which can be used to build, install, query, verify, update, and erase individual software packages. If you’re trying to land a Linux job with a large corporation, theres a good chance they run Red Hat, which uses RPM as it’s default package manager.

At the Least, You Should Know:

How to install RPM packages.

How to remove RPM packages.

How to check for RPM dependencies.

Must reads for RPM:

RPM Man Page

Official RPM Documentation

rsync

rsync uses the rsync remote-update protocol to greatly speed up file transfers when the destination file is being updated. Rsync basically only copies the diffs of files that have been changed.

Rsync is great for backing up files to another Linux host. If you plan on landing a Linux job you’ll definitely need to know rsync.

At the Least, You Should Know:

The syntax of using rsync to copy files to another host machine.

Must reads for rsync:

rsync Documentation

rsync Tips and Tricks

Using rsync and SSH

Samba

The Samba software suite is a collection of programs that implements the Server Message Block (commonly abbreviated as SMB) protocol for UNIX systems. This protocol is sometimes also referred to as the Common Internet File System (CIFS). For a more thorough description, see http://www.ubiqx.org/cifs/. Samba also implements the NetBIOS protocol in nmbd.

Most large companies that run a Linux and Windows environment use Samba to share files across the network. You should be familiar with Samba as much as possible.

At the Least, You Should Know:

How to install and configure Samba.

How to set up Samba users.

How to set up Samba shares.

Must reads for Samba:

Samba Man Page

Official Samba Documentation

Samba Setup Guide for Linux

SCP

scp copies files between hosts on a network. It uses ssh for data transfer, and uses the same authentication and provides the same security as ssh. scp will ask for passwords or passphrases if they are needed for authentication.

SCP is important to know if you need to copy files between Linux hosts over a public or private network with security in mind.

At the Least, You Should Know:

The syntax for copying a file from one host to another host.

Must reads for SCP:

SCP Man Page

SCP Tricks

Sendmail

Sendmail is another Mail Transfer Agent, similar to Qmail and Postfix, that sends a message to one or more recipients, routing the message over whatever networks are necessary. Sendmail does internetwork forwarding as necessary to deliver the message to the correct place. A majoriy of servers run Sendmail as their MTA so it’s important to know.

At the Least, You Should Know:

How to Install Sendmail.

How to configure Sendmail to send and receive Email.

How to view Sendmail logs.

Must reads for Sendmail:

Sendmail Man Page

Official Sendmail Documentation

Tar

Tar is an archiving program designed to store and extract files from an archive file known as a tarfile. You most defenitley need to know tar if you plan on landing any Linux job.

At the Least, You Should Know:

How to extract a tarball and tar/gzip file.

How to create a tar file.

Must reads for Tar:

Tar Man Page

GNU tar Documentation

VI/Vim

Vim is a text editor that is upwards compatible to Vi. It can be used to edit all kinds of plain text. It is especially useful for editing programs.

It’s important to know vim because it is the one text editor that is almost always available by default on most Linux distributions. You can’t say the same for the simpler editors like pico and nano. Learn vim!

At the Least, You Should Know:

How to open a file and make a change.

How to save a file.

How to exit vim.

Must reads for Vim:

Vi/Vim Man Page

Official Vim Documentation

The Vim Commands Cheat Sheet

Vim Graphical Cheat Sheet based Tutorial

vsftpd

vsftpd is the Very Secure File Transfer Protocol Daemon. Most Linux servers that run an FTP daemon use vsftpd.

At the Least, You Should Know:

How to install vsftpd.

How to configure vsftpd.

How to view vsftpd logs and troubleshoot issues.

Must Reads for vsftpd:

Vsftpd.conf Man Page

A vsftpd Guide

I’ve covered all the applications I believe you should be familiar with if you’re trying to land a Linux job.  You may not use all of them in an everyday Linux job, but these applications are the most widely used with Linux administration and Linux engineering jobs.

Do you have any other applications you feel should be on this list?  Let us know by leaving a comment below.

Subscribe to the RSS feed!

10 Linux Books You Must Own

Here is a quick list of 10 Linux books you must own as a Linux user.

In the Beginning…was the Command Line

21wjteqav3l_aa_sl160_.jpg

Running Linux

21gevionz8l_aa_sl160_.jpg

Understanding the Linux Kernel

21dkpgzdawl_aa_sl160_.jpg

A Practical Guide to Linux – Commands, Editors, and Shell Programming

31-jefrgjml_aa_sl160_.jpg

Linux Bible, 2008 Edition: Boot up to Ubuntu, Fedora, KNOPPIX, Debian, openSUSE, and 11 Other Distributions

21zlrtzyehl_aa_sl160_.jpg

sed & awk

21rgubfzv8l_aa_sl160_.jpg

Linux Administration Handbook (2nd Edition)

21ja4p59efl_aa_sl160_.jpg

The Linux Programmer’s Toolbox

21jqih6xoel_aa_sl160_.jpg

Essential System Administration, Third Edition

21lzzuhwthl_aa_sl160_.jpg

Linux System Programming: Talking Directly to the Kernel and C Library

31sjkdkg6bl_aa_sl160_.jpg

20 Linux Articles You Absolutely Must Read

We’ve all stumbled on those Linux articles that you read and either change your opinion on Linux or add to your understanding of Linux. I’m not talking about Linux howto’s or Linux documents, I’m specifically providing you with Linux articles you must read as a Linux user. Here is a list of what I believe are 20 Linux articles you definitely have to read if you call yourself a Linux user.

Linux Wikipedia Entry

Obviously a great place to start

A Timeline of Linux

Linux Journal put together a Linux timeline in 2006 in celebration of Linux turning 15.

The beginning stages and History of Linux by Linus Torvalds

Some of the first e-mail transcripts written by Linus Torvalds himself in regards to his new project in Minix. He later goes on to call this project Linux and the rest is history.

The History Of Linux

This is written by a college computer science student, so it’s not official. It is very well put together though.

History and Overview of the GNU System

The GNU operating system is a complete free software system, upward-compatible with Unix. GNU stands for “GNU’s Not Unix”.

Linux and the GNU Project

An article written by Richard Stallman, the founder of the GNU project explaining GNU and it’s relation to Linux.

Introduction to Linux (pdf)

A hands on article explaining Linux.

Interview with Linus Torvalds

This interview is from 1993 and is one of the first interviews done with Linus regarding the Linux operating system.

Anatomy of the Linux Kernel

History and arhitectural decomposition of the Linux kernel.

Anatomy of the Linux Networking Stack

This article explores the structure of the Linux networking stack from the perspective of its layers and also examines some of its major structures.

Why Attracting More Users to Linux Matters

A great article on why Linux needs more users in order to become a successful desktop operating system.

Why Customers are Flocking to Linux

Great article from 2005 stating some of the advantages of Linux and why it can be attractive to customers.

What a Linux Distribution is

Basic explanation and understanding of a Linux distribution.

20 Must Read HowTos and Guides for Linux

A collection of must read documents for new and old Linux users.

10 Steps to Convert a Windows user to Linux

Ten steps to help you introduce Linux to a Windows user.

Linux vs Windows Comparision

A non biased comparison of Linux and Windows.

What is this “Linux” thing and why should I try it?

A great explaination of Linux for people who haven’t really heard of it along with some reasons why they should try it.

Industry of Change: Linux Storms Hollywood

A nice article describing Linux taking over in the Hollywood visual effects department.

Linux: GUI vs. Command Line

A comparison of using the Linux Graphical User Interface and the Command Line.

Linux 101: A Newcomer’s Guide

A step-by-step information that you may use for the process of comparing operating systems, deciding if Linux is for you, choosing a Linux distribution, installing and configuring it, and getting software applications for your Linux environment.

How To Backup Your iPod Music on Linux

As an iPod owner and Linux user, there are a few options I have on Linux for managing my iPod music library. In my opinion, the best option available is gtkpod. One great option of gtkpod is the ability to backup your iPod music to your hard drive for free. The purpose of this guide is to explain a little about gtkpod and show you how to backup your iPod to your hard drive on Linux. I am using Ubuntu to back up my iPod music with gtkpod. gtkpod is available for any Linux distribution that is running gnome libraries and has X installed.

About gtkpod

gtkpod is a platform independent Graphical User Interface for Apple’s iPod using GTK2. It supports the first to fifth Generation including the iPod mini, iPod Photo, iPod Shuffle, iPod nano, and iPod Video.

What can gtkpod do?

  • Read your existing iTunesDB (i.e. import the existing contents of your iPod including playcounts, ratings and on-the-go playlists).
  • Add MP3, WAV, M4A (non-protected AAC), M4B (audio book), podcasts, and various video files (single files, directories or existing playlists) to the iPod. You need a third party product to download podcasts, like ‘bashpodder’ or ‘gpodder’
  • View, add and modify Cover Art
  • Browse the contents of your local harddisk by album/artist/genre by adding all your songs to the ‘local’ database. From there the tracks can be dragged over to the iPod/Shuffle easily.
  • Create and modify playlists, including smart playlists.
  • You can choose the charset the ID3 tags are encoded in from within gtkpod. The default is the charset currently used by your locale setting.
  • Extract tag information (artist, album, title…) from the filename if you supply a template.
  • Detect duplicates when adding songs (optional).
  • Remove and export tracks from your iPod.
  • Modify ID3 tags — changes are also updated in the original file (optional).
  • Refresh ID3 tags from file (if you have changed the tags in the original file).
  • Sync directories.
  • Normalize the volume of your tracks (uses mp3gain or the replay-gain tag)
  • Write the updated iTunesDB and added songs to your iPod.
  • Work offline and synchronize your new playlists / songs with the iPod at a later time.
  • Export your korganizer/kaddressbook/thunderbird/evocalendar/evolution/webcalendar… data to the iPod (scripts for other programs can be added).

Go here to download gtkpod directly. For installation instructions on Ubuntu, see below.

Installing and Configuring gtkpod on Ubuntu

# sudo apt-get install gtkpod

Next, open gtkpod by navigating to the Applications > Sound & Video menu and selecting gtkpod.

Select gtkpod from Gnome Menu


Now with gtkpod open, plug in your iPod via USB to your computer and power on the iPod. gtkpod should load your iPod automatically.

Screenshot of gtkpod main screen

Next, select what tracks you would like to back up to your computer by highlighting the tracks.

Once you have selected the tracks (note: you can select All then highlight all of your music if you want to back up your entire iPod) select File > Export Tracks From Database > Selected Tracks

gtkpod Export tracks from database

You then will be prompted to select where you would like to save the tracks. Choose a directory and click Save.

Now sit back and let gtkpod back up your iPod music.

5 Firefox Plugins Related to Linux

Here are 5 Firefox plugins related to Linux. These Firefox Add-ons are not just compatible with Linux, but have something to do with Linux specifically.

Auto Copy

Select text and it’s automatically copied to the clipboard. Like Linux or mIRC.

Works with: Firefox: 1.0 – 2.0.0.*

Install Now

Clear Text Fields

Clear Text Fields allows you to right click form text inputs and clear their contents. This is handy for Linux/X11 users who want to clear a form element but don’t want it’s contents placed in the clipboard, overwriting what you intended to paste into it.

Works with Firefox: 1.5 – 2.0.0.*

Install Now

Konquefox

Konquefox is an extension for Mozilla Firefox that adds some useful buttons: Clear URL, Go Up and Zoom, for a better integration in Linux or KDE environment.

Works with: Firefox: 1.5 – 3.0b4

Install Now

Ubuntu Human Theme for Firefox

Ubuntu Human Icons, derived from Ubuntu Linux OS. Tested in Ubuntu Linux, other Linux and Windows (including Vista).

Works with: Firefox: 2.0 – 2.0.0.*

Install Now

Ubuntu Forums Menu Plugin for Firefox

Additional navigation menu for Ubuntu Forums via main-menu and context menu.

Works with: Firefox: 1.0 – 3.0a8

Install Now

 

Play Windows Games on Linux with CrossOver Games

CodeWeavers, Inc has announced that their new application suite, CrossOver Games, similar to their CrossOver Office suite, is now available. Now you can play those popular Windows games on your Mac or Linux with ease.

From the press release:

Crossover Games delivers gamers a low-cost tool allowing them to play popular windows games including World of Warcraft, Guild Wars, and many Steam games including Team Fortress 2, Counterstrike Source, Civilization 4, Peggle, and many others on the platform and machine of their choice.

“One of the differences between CrossOver Games and our current CrossOver products is that it’s going to be a little more ‘bleeding edge’,” said Jeremy White, President and CEO of CodeWeavers. “The Wine development community, including CodeWeavers, is cranking out a lot of important improvements to game support. We want to get those improvements into the hands of gamers now. CrossOver Games, we think, will fit in with the edgier technology needs of gamers.”

CrossOver Games features many recent game advancements developed in the open-source community. “This is our way of promoting the incredible work of the open-source community,” said White. “It also marks a positional change in our product line. There’s a perception that our products primarily make Windows office productivity applications run under our CrossOver products. The truth is, CrossOver also runs many popular games on Macs and Linux PCs as well.”

CrossOver Games is available for purchase directly from CodeWeavers and its authorized resellers. It is a download-only product. The cost for the product is $39.95, which includes 12 months of free product support and software updates.

This is great news for the Linux desktop community. A big reason users have strayed away from Linux is due to the fact that gaming on Linux is just not as good as it is on Windows. Much respect to CodeWeavers for trying to close the gap in the lack of Linux gaming department.

Educational Linux Software For Children

It is my belief that educational software applications on Linux are an important factor for growth on the Linux desktop. While there have always been educational games for Linux, both on the desktop and on the command line, there is always room for improvement.

I have put together the following collection of educational Linux software available specifically for children. There is a ton of it out there, the following only illustrates a few of the good applications I find useful to child education.

Blinken

Blinken is the KDE version of the well-known game Simon Says. Follow the pattern of sounds and lights as long as you can! Press the start game button to begin. Watch the computer and copy the pattern it makes. Complete the sequence in the right order to win.

GCompris

GCompris is an educational software suite comprising of numerous activities for children aged 2 to 10. Some of the activities are game orientated, but nonetheless still educational. Below you can find a list of categories with some of the activities available in that category.

The KDE Education Project

There is of course a whole suit of applications that KDE has been developing for some time now under the KDE Education Project. From the website, the “primary focus is on schoolchildren aged 3 to 18, and the specialized user interface needs of young users. However, we also have programs to aid teachers in planning lessons, and others that are of interest to university students and anyone else with a desire to learn!” The next two applications are two of my favorites from the KDE Education Project.

KMessedWords

KMessedWords is a simple mind-training game, in which you have to “figure out” the word that has been given in the program. It is recommended for children over 10 years, as the game is solvable harder as it looks.

KWordQuiz

KWordQuiz is the KDE version of the flashcard and vocabulary learning program WordQuiz. KWordQuiz is published under the GPL.

KWordQuiz can read and write WordQuiz files. KWordQuiz also supports the KDE vocabulary document format .kvtml. KWordQuiz features Flashcard, Multiple Choice and Question & Answer functions. Question & Answer also has a special Fill-in-the-blank mode.

mFlash

Multiplication Flash (mFlash) is just a way to save the mess, bother, and expense of paper flashcards.

SchoolsPlay

SchoolsPlay is a collection of educational activities for schools and kids based off the Linux game Childsplay.

TuxMath

Tux of Math Command is an educational math tutor for children starring Tux, the Linux Penguin.

TuxMathScrabble

TuxMathScrabble is a math version of the classic word game “Scrabble” (Trademark of Hasbro,Inc) which challenges kids to construct compound equations and to consider multiple abstract possibilities. There are four skill levels for practice, from basic addition with small numbers, through multiplication and division with larger numbers. The game can be played by 0, 1 or 2 human players.

TuxPaint

Tux Paint is a free drawing program for children ages 3 to 12 (for example, preschool and K-6 in the US, key stages 1 & 2 in the UK). It combines an easy-to-use interface, fun sound effects, and an encouraging cartoon mascot who guides children as they use the program.

Tux Typing

Tux Typing is an educational typing tutor for children. It features several different types of gameplay, at a variety of difficulty levels.

Typing Trainer

Typing Trainer is an application suite that is directed towards students, from the novice to those who have the basic knowledge of the kebyoard finger layout, and want to train and exercise their expertese in typing. The design of the latter program, also allows for an environment where students ability in typing, can be examined by the program. And the results stored in a central database and characters given.

TuxWordSmith

TuxWordSmith is similar to the classic word game “Scrabble”, but with unicode support for multiple languages and character sets. The game is currently distributed with forty-two (42) dictionary resources for playing Language[i]-Language[j] “Scrabble”. For example, if configured to use the French-German dictionary, then the distribution of available tiles will be computed based on frequency of occurrence of each character of Language[i] (French), and for each submission the corresponding definition will be given in Language[j] (German)

If Linux game developers can continue to work on creating fun, entertaining, and informative games for children on the Linux desktop, then Linux will continue to strive and grow in the education world. Imagine how much money schools could save by converting to open source platforms and getting rid of their expensive software license fees that are “discounted” for schools.

Quickzi: How To Change PostgreSQL Root Password

Here is how to change the PostgreSQL root password from the Linux command line. Replace “root” with any user name to change any password. It is important to note that PostgreSQL does not have an actual “root” user name. The “postgres” user is the super-user for PostgreSQL.

# su postgres
# psql -d template1
template1=# ALTER USER postgres WITH PASSWORD '${POSTGRESQL_POSTGRES_PASSWORD}';

You can replace “postgres” with any user name.