You are expected to be already familiar with the following concepts.
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:
coreutils utilities are standard (cd, ls, cp, rm, mv, pwd, … )
/ (root)-rwxr-xr-x = 755)/ (root)./directory/file (starts with ./ or ../ relative to current working path)/home/user/directory/file (starts with /, pointing from root to specific file)/etc/passwd and /etc/shadow files contain user accounts and their authentication definitions and propertiesadduser, addgroup, deluser, delgroup, etc./etc/skel contains files that are copied to users’ home directory (like a “template”) by the adduser utility when creating a new user accountTerminal is text-only input and output. Types of terminals are:
sshd)
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.
sh, bash, zsh, fish, etc.whatis and man utilitiessu and sudo utilitiesid, who, last, w<, >, ~, '', "", ``, |, \, ., .., etc.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/dev
/dev/sda, /dev/sdb, /dev/fda, or /dev/nvmep1s0, etc.lsblk (list block devices) or fdisk -l to list all block storage devices and their partitions/boot (partition that contains the Linux kernel images and kernel modules used at boot time)mount, umount, and eject (for removable media) utilitiesdf command to view mounted filesystems (example: df –h # -h shows output in “human readable format”)du to see the disk usage of filesiostat and sar can be used to monitor storage activityps, 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:
Ubuntu is based on Debian: uses .deb package formats and dpkg utility for package management
apt-get is a “front-end” utility for dpkg, to offer ease of use for end users
apt is a “front-end” utility for the apt-get utility, to simplify the operations even more for end users
Package managers maintain their own database
sudo apt update updates the local DB from the online repositorysudo apt upgrade upgrades the local software packages to the latest version available from the repositorysudo apt [install | remove] <package name>dpkg is still used, although less often, for manual and advanced tasks
sudo dpkg –i <packagename.deb> (-i for install)sudo dpkg -L <packagename> (-L for listing all files owned by a package)sudo dpkg -S <file or directory> (-S to search the database for finding which software package uses a file or directory, basically a reverse search if you want to find out who put this file here)For re-configuring packages (re-running the installation script):
sudo dpkg-reconfigure <packagename>Example screenshots:
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.
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:
hostnamectluseradd, usermod, userdeladduser, delusergroupadd, groupmod, groupdeladdgroup, delgroupssh, ssh-keygenid, who, w, lastmkfs, mount, umount, eject, fdisklshw, lspci, lsusb, lscpu, lsblkiostatdf, du, lstreesarps, vmstat, prtstat, vmstat, top,memstat, mpstat, nfsiostat, freecifsiostatapt, apt-getdpkg, dpkg-reconfigure/dev/boot/etc/fstab/etc/default/sysstat/var/etc/hostname/etc/hosts/etc/skel/etc/sshd_config~/.ssh