Learning Linux - Free Guide

Linux Basic Fundamentals Guide and Tutorial

Welcome to the Land of Linux's tutorials and guides. Here you will find instructions and tutorials explaining how to use Linux from the command line using the BASH shell. The Linux basic fundamentals guide will take you through the necessary basics in preparation for the LPI (Linux Professional Institute) exams as well as cover many popular administration tasks.
The Tutorials are broken into various sections along with examples and videos of the commands in operation.

You will learn how to use simple commands to take advantage of Linux. You will learn basic file handling commands to copy/move and navigate your way through the filesystems. Set and change permissions of files plus much more.

Throughout this tutorial I will be using Ubuntu 14.04 LTS, Centos and openSUSE to demonstrate the command line functionality unless otherwise stated. However, you may use any other popular Linux distribution.

Part 1 - Learning Linux

Part 1 of Learning Linux will cover the following areas:

  • What is Linux? : An introduction to the GNU/Linux Operating System. How did Linux get its name?
  • Linux Distributions : A quick look at some of the popular Linux distributions : Arch, CentOS, Debian, Linux Mint, RHEL, SUSE, Ubuntu, Mageia, Fedora, Puppy
  • Linux Desktops : A quick look at some of the popular desktops available for Linux: Unity, KDE, GNOME, LXDE, XFCE, MATE
  • Live CDs and DVDs : How to try out Linux without having to install any software.
  • Getting Help : Man Pages and Documentation
  • Installing Linux : Linux installation guides for desktops, workstations and Enterprise Servers.

Part 2 - Learning Linux

Part 2 of Learning Linux will cover the following areas:

  • Linux Shell : Introduction to the Linux shell. What is a Shell? Internal and external shell commands explained. Shell Variables.
  • Text Editors : An introduction to the VI and VIM text editor.
  • Viewing Files : How to view files using "pagers". Introduction to cat, tac, more, less, pg head and tail commands.
  • Creating Files : Using touch to create and modify files.
  • Wild Cards : Using wildcards and pattern matching - Shell Expansion.

Part 3 - Learning Linux

Part 3 of Learning Linux will cover the following areas:

  • File Handling : Howto find files, sorting files, comparing files, joining and splitting files.
  • Linux File Permissions : Managing user and group permissions. Assigning permissions.
  • AWK and GAWK : An introduction to processing files using "awk". AWK Examples.
  • SED : An introduction to SED the Stream Editor. SED Examples.
  • Archive and Compression : Howto use tar, cpio, gzip, gunzip, bzip2 and compress commands.
  • Z Commands : Working with Compressed files: zcat, zgrep, zmore, zless, zdiff and znew command examples.
  • Links : Hard and Soft Links. Creating symbolic links.

Part 4 - Learning Linux

Part 4 of Learning Linux will cover the following areas:

  • Installing Software : Installing, Deleting and Updating Software Packages.
  • Package Management : dpkg : Examples of using the Debian Package Manager
  • Package Management : rpm : Examples of using the Red Hat Package management tool.
  • Package Management : apt-get : Examples of using the APT Package handling utility
  • Package Management : pacman : Examples of using the Arch Linux package management tool
  • Package Management : yum : Examples of using the yum package management tool.
  • Package Management : dnf : Examples of using the DNF package management tool.
  • Package Management : yast : The multi purpose Administration tool.
  • Package Management : Alien : Howto convert packages from Debian to Redhat and from Red Hat to Debian.

Part 5 - Learning Linux

Part 5 of Learning Linux will cover the following areas:

  • Monitoring : Howto monitor a Linux system using htop, nmon, ntop, iptraf, dstat, sar, vmstat, iostat, mpstat, free, nagios and FAN.
  • Processes : Working with Processes. Howto use ps, renice, nice, fg, bg, jobs, top commands with processes.
  • SysV Init : An introduction to SysV Init.
  • Systemd : An introduction to Systemd.
  • Services : Starting, stopping and restarting Services on Linux.
  • Runlevels : Working with runlevel.
  • Filesystems : Working with Filesystems: ext2, ext3, ext4, xfs, btrfs and reiserfs.
  • Filesystems : Repairing and Checking Filesystems: Linux fsck command examples.
  • Partitions : Creating partitions, Managing Disk, Managing Filesystems.
  • LUKS : Introduction to using cryptsetup with LUKS.
  • Printing : An introduction to printing with CUPS (Common Unix Printing System). Printing using the command line.

Part 6 - Learning Linux

Part 6 of Learning Linux will cover the following areas:

  • Networks : Basic Principles and Transferring Files across networks
  • Interfaces : Managing interfaces. Configuring IP addresses.
  • Network Tools : ip, route, dig, nslookup, ping, traceroute, netstat, ethtool, lsof, netcat and nc
  • tcpdump : How to capture and analyse network packets.
  • Wireshark : Graphical interface for analysing network packets.

Part 7 - Learning Linux

Part 7 of Learning Linux will cover the following areas:

  • Server Administration
  • Connecting to servers : ssh, scp, and sftp examples.
  • Creating Custom Banner Pages : Creating custom ssh login banner pages with colour.
  • Transferring files : wget and curl command examples.
  • FTP and SFTP : Howto transfer files across networks. Configuring sftp jails.
  • NFS : Network File System. Managing NFS mounts.
  • Journalctl : Viewing Journals with journalctl. Configuring journal persistency.
  • Message Logs : Linux message log locations.
  • Log Rotation : Managing log files with log rotation.
  • SWAP : Working with SWAP. Adding extra swap space.
  • Shared Memory : Working with /dev/shm
  • fsck : Checking and repairing filesystems
  • RCS : Revision Control System. Managing versions of code/scripts.
  • Scheduling : An introduction to scheduling on Linux. Howto use "crontab" and the "at" command.
  • rsync : An introduction to copying files locally and remotely using rsync. Synchronising directories, using rsync as a backup tool.
  • LVM : Logical Volume Manager. Creating Physical Volumes, Volume Groups and Logical Volumes. Managing Disks and filesystems.

Part 8 - Learning Linux

Part 8 of Learning Linux will cover the following areas:

  • Hardware and Modules : Listing hardware and devices, displaying kernel Modules. Loading and unloading kernel modules.
  • Apache Web Server : Howto install an Apache Web Server.
  • SAMBA : File sharing: Sharing files between computers using Samba.
  • SAMBA Shares : Creating shared areas on Samba
  • SWAT : SWAT : Samba Web Administration Tool. SWAT - GUI interface for configuring SAMBA.
  • WEBMIN : WEBMIN Systems Administration Tool. Installing and configuring.
  • Cron and Crontab : Scheduling jobs/tasks to run at specified times and intervals.
  • AT : Scheduling adhoc jobs to run at a specified time.

Part 9 - Learning Linux

Part 9 of Learning Linux will cover the following areas:

  • Basic Security
  • SELinux : Working with SELinux, activating, disabling and configuration.
  • Apparmor : An introduction to Apparmor.
  • Firewalls : Working with "iptables", "ufw", "firewalld", "firewall-config" and "firewall-cmd"
  • Fail2ban : Installing and configuring fail2ban.

Part 10 - Learning Linux

Part 10 of Learning Linux will cover the following areas:

  • Miscellaneous
  • Must Know Commands : Overview of everyday System Administration Commands.
  • Kickstart : Howto install Red Hat based Linux systems using kickstart. Automating installations with Kickstart.
  • Linux Containers : An introduction to Linux Containers Introducing "Docker".
  • Just for Fun : Having fun with Linux. A look at some quirky funny command and utilities on Linux. Hidden Easter Eggs.