01 - Linux System Administration Overview

Linux System (Review)

You are expected to be already familiar with the following concepts.

Linux Distros

Linux is only the kernel and not the full operating system. Linux distributions bundle additional utilities and software, and sometimes services to provide a full operating system. Linux distros usually include the following in their OS:

Linux Filesystem

Users and Groups

Access to System Shell

Terminal is text-only input and output. Types of terminals are:

The user uses the terminal to access the CLI Shell. Shell is the software program that allows users to interact with the system. There are CLI (Command Line Interface) and GUI (Graphical User Interface) shells, but GUI shells are rarely installed on servers.

Using the CLI

Hardware Management

In Linux, device drivers are either included and compiled with the Linux kernel (preferred, easiest to use) or loaded as kernel modules (for proprietary, non-standard, or non-open-source hardware). Generally, you are not required to load or install device drivers in Linux. The system boots and loads the Linux kernel, and your hardware is either detected and functions out of the box, or is incompatible with the version of the kernel and will not work.

Hardware vendors provide proprietary drivers for their hardware in the form of special versions of the Linux kernel, or as kernel modules to load alongside your regular kernel. The kernel module version must match your kernel. Most vendors submit their open-source drivers and their firmware to the mainline Linux kernel for inclusion. Firmware can be proprietary, but the inclusion of the drivers and firmware in the mainline Linux Kernel by the hardware vendor is the most desirable and advantageous solution for users.

Utilities for viewing hardware information:

lshw # list all recognized hardware
lspci # list all PCI devices
lsusb # list USB devices
lsblk # list block devices
lscpu # display information about the CPU architecture
lshw # list all recognized hardware
lspci # list all PCI devices
lsusb # list USB devices
lsblk # list block devices
lscpu # display information about the CPU architecture

Storage and Storage Devices

System Activity Monitoring

ps, vmstat, prtstat, netstat, top (utilities that show system utilization)
many flavours or variations of the top utility available
Examples: htop, vtop, iftop, slabtop
Other utilities: memstat, mpstat, nfsiostat, cifsiostat

Here is a screenshot from htop, an equivalent to, but easier to use than, the top utility:
b23ce81b1ccc845a5e13d4ef7ca62239.png

Package management (Ubuntu)

Example screenshots:
a16986561696fcfc2c61317197a09859.png

10730e338a4a139cc8cb042495d14cfb.png

Linux Administration

There are different aspects of (any) system administration:

When you are working as an IT administrator, you may have to take on one or multiple of these roles. The IT field is very vast, and there is more knowledge and skills than any one person can learn and manage. In very large deployments or large organizations, some roles are narrowly focused, for example, Cloud Specialist, Storage Specialist, Network Specialist, System or Network Security specialist, Database Specialist, etc.

The goal of this course is to provide a general baseline of skills and information required to get you started in the field. You may find yourself working as a "generalist" in one field, while you may find a need to become a "specialist" in another sub-field in your career.

Basic Linux Installation Requirements

There are multiple methods of creating a Linux instance depending on the target system and mission requirements. As examples, you may deploy an installation on bare-metal hardware, virtual machines, or create templates for cloud deployments or containers. In general, any Linux system installation needs the following information:

Interesting Files, Utilities, and Commands