LFCS: Linux Foundation Certified System Administrator
This is an effort to provide a set of links to material that should be helpful in studying for the Linux Foundation Certified System Administrator (LFCS) exam. Their site only provides a list of the required topics, without going into any detail, so I can’t be sure if these links will cover too much or too little depth of information. But I hope they will at least provide a starting point for others to study for this exam (which I have yet to take).
A Linux Foundation Certified System Administrator (LFCS) has the skills to do basic to intermediate system administration from the command-line for systems running Linux. Linux Foundation Certified System Administrators are knowledgeable in the operational support of Linux systems and services. They are responsible for first line troubleshooting and analysis, and decide when to escalate issues to engineering teams.
A command-line interface or command language interpreter (CLI), also known as command-line user interface, console user interface, and character user interface (CUI), is a means of interacting with a computer program where the user (or client) issues commands to the program in the form of successive lines of text (command lines).
The CLI was the primary means of interaction with most computer systems until the introduction of the video display terminal in the mid-1960s, and continued to be used throughout the 1970s and 1980s on OpenVMS, Unix systems and personal computer systems including MS-DOS, CP/M and Apple DOS. The interface is usually implemented with a command line shell, which is a program that accepts commands as text input and converts commands to appropriate operating system functions.
Command-line interfaces to computer operating systems are less widely used by casual computer users, who favor graphical user interfaces.
Alternatives to the command line include, but are not limited to text user interface menus (see IBM AIX SMIT for example), keyboard shortcuts, and various other desktop metaphors centered on the pointer (usually controlled with a mouse). Examples of this include the Windows versions 1, 2, 3, 3.1, and 3.11 (an OS shell that runs in DOS), DosShell, and Mouse Systems PowerPanel.
Command-line interfaces are often preferred by more advanced computer users, as they often provide a more concise and powerful means to control a program or operating system.
Programs with command-line interfaces are generally easier to automate via scripting.
Command line interfaces for software other than operating systems include a number of programming languages such as Tcl/Tk, PHP and others, as well as utilities such as the compression utilities WinZip and UltimateZip, and some FTP and ssh/telnet clients.
- Learn Linux, 101: The Linux command line
- Learn Linux, 101: Streams, pipes, and redirects
- Introduction to the Command Line
- Linux Essentials L02.1 Command Line Basics (YouTube)
- Linux BASH builtin commands (YouTube)
- Starting and Stopping Shells (YouTube)
Editing Text Files on the Command Line
- How to Install and Use vi/vim as a Full Text Editor – Part 2
- Learn Linux, 101: File editing with vi
- Using vi The basics (YouTube)
Manipulating Text Files from the Command Line
- How to use GNU ‘sed’ Command to Create, Edit, and Manipulate files in Linux
- Learn Linux, 101: Text streams and filters
- Learn Linux, 101: Search text files using regular expressions
- Linux Essentials L3.2 Searching and Extracting Data from Files (YouTube)
Filesystem & storage
In computing, a file system or filesystem is used to control how data is stored and retrieved. Without a file system, information placed in a storage medium would be one large body of data with no way to tell where one piece of information stops and the next begins. By separating the data into pieces and giving each piece a name, the information is easily isolated and identified. Taking its name from the way paper-based information systems are named, each group of data is called a "file". The structure and logic rules used to manage the groups of information and their names is called a "file system".
There are many different kinds of file systems. Each one has different structure and logic, properties of speed, flexibility, security, size and more. Some file systems have been designed to be used for specific applications. For example, the ISO 9660 file system is designed specifically for optical discs.
File systems can be used on numerous different types of storage devices that use different kinds of media. The most common storage device in use today is a hard disk drive. Other kinds of media that are used include flash memory, magnetic tapes, and optical discs. In some cases, such as with tmpfs, the computer's main memory (random-access memory, RAM) is used to create a temporary file system for short-term use.
Some file systems are used on local data storage devices; others provide file access via a network protocol (for example, NFS, SMB, or 9P clients). Some file systems are "virtual", meaning that the supplied "files" (called virtual files) are computed on request (e.g. procfs) or are merely a mapping into a different file system used as a backing store. The file system manages access to both the content of files and the metadata about those files. It is responsible for arranging storage space; reliability, efficiency, and tuning with regard to the physical storage medium are important design considerations.
- File systems
- Linux Essentials L2.3 Using Directories and Listing Files (YouTube)
- Linux Essentials L2.4 Working with files and directories (YouTube)
Archiving and compressing files and directories
- How to Archive/Compress Files & Directories, Setting File Attributes and Finding Files in Linux
- Linux Essentials L3.1 Archiving Files on the Command Line (YouTube)
Assembling partitions as raid devices
Configuring swap partitions
Finding files on the filesystem
Mounting filesystems automatically at boot time
Mounting networked filesystems
Partitioning storage devices
- Partitioning Storage Devices, Formatting Filesystems and Configuring Swap Partition
- Learn Linux, 101: Create partitions and filesystems
Troubleshooting filesystem issues
Local system administration
A system administrator, or sysadmin, is a person who is responsible for the upkeep, configuration, and reliable operation of computer systems; especially multi-user computers, such as servers.
The system administrator seeks to ensure that the uptime, performance, resources, and security of the computers he or she manages meet the needs of the users, without exceeding the budget.
To meet these needs, a system administrator may acquire, install, or upgrade computer components and software; provide routine automation; maintain security policies; troubleshoot; train or supervise staff; or offer technical support for projects.
Creating local user groups
- Users and groups
- Linux Essentials Topic 5.1 User Types (YouTube)
- Linux Essentials Topic 5 2 Users and Groups (YouTube)
Managing file permissions
Managing fstab entries
Managing local users accounts
Managing the startup process and related services
Managing user accounts
- Managing Users & Groups, File Permissions & Attributes and Enabling sudo Access on Accounts
- LPIC-1 102 Managing Users and Groups (YouTube)
Managing user account attributes
Managing user processes
- Learn Linux, 101: Create, monitor, and kill processes
- Learn Linux, 101: Process execution priorities
Restoring backed up data
Setting file permissions and ownership
- Learn Linux, 101: Manage file permissions and ownership
- LPIC-1 101 File Permissions and Ownership (YouTube)
Computer security, also known as cybersecurity or IT security, is the protection of computer systems from the theft or damage to the hardware, software or the information on them, as well as from disruption or misdirection of the services they provide.
It includes controlling physical access to the hardware, as well as protecting against harm that may come via network access, data and code injection, and due to malpractice by operators, whether intentional, accidental, or due to them being tricked into deviating from secure procedures.
The field is of growing importance due to the increasing reliance on computer systems and the Internet in most societies, wireless networks such as Bluetooth and Wi-Fi – and the growth of "smart" devices, including smartphones, televisions and tiny devices as part of the Internet of Things.
Accessing the root account
Using sudo to manage access to the root account
A shell script is a computer program designed to be run by the Unix shell, a command-line interpreter. The various dialects of shell scripts are considered to be scripting languages.
Typical operations performed by shell scripts include file manipulation, program execution, and printing text. A script which sets up the environment, runs the program, and does any necessary cleanup, logging, etc. is called a wrapper.
The term is also used more generally to mean the automated mode of running an operating system shell; in specific operating systems they are called other things such as batch files (MSDos-Win95 stream, OS/2), command procedures (VMS), and shell scripts (Windows NT stream and third-party derivatives like 4NT—article is at cmd.exe), and mainframe operating systems are associated with a number of terms.
The typical Unix/Linux/Posix-compliant installation includes the Korn Shell (ksh) in several possible versions such as ksh88, Korn Shell '93 and others. The oldest shell still in common use is the Bourne shell (sh); Unix systems invariably include also the C Shell (csh), Bourne Again Shell (bash), a remote shell (rsh), a secure shell for SSL telnet connections (ssh), and a shell which is a main component of the Tcl/Tk installation usually called tclsh; wish is a GUI-based Tcl/Tk shell. The C and Tcl shells have syntax quite similar to that of said programming languages, and the Korn shells and Bash are developments of the Bourne shell, which is based on the ALGOL language with elements of a number of others added as well. On the other hand, the various shells plus tools like awk, sed, grep, and BASIC, Lisp, C and so forth contributed to the Perl programming language.
Other shells available on a machine or available for download and/or purchase include ash, msh, ysh, zsh (a particularly common enhanced Korn Shell), the Tenex C Shell (tcsh), a Perl-like shell (psh) and others. Related programmes such as shells based on Python, Ruby, C, Java, Perl, Pascal, Rexx &c in various forms are also widely available. Another somewhat common shell is osh, whose manual page states it "is an enhanced, backward-compatible port of the standard command interpreter from Sixth Edition UNIX."
Windows-Unix interoperability software such as the MKS Toolkit, Cygwin, UWIN, Interix and others make the above shells and Unix programming available on Windows systems all the way down to such things as signals and other inter-process communication, system calls and APIs; the Hamilton C Shell is a Windows shell very similar to the Unix C Shell, and Microsoft distributes Windows Services for UNIX for use with its NT-based operating systems in particular, which have a Posix environmental subsystem.
Basic bash shell scripting
- Understanding & Learning Basic Shell Scripting and Linux Filesystem Troubleshooting – Part 10
- Bash shell scripting
- LPIC-1 102 Customize and Write Simple Scripts (YouTube)
A package manager or package management system is a collection of software tools that automates the process of installing, upgrading, configuring, and removing computer programs for a computer's operating system in a consistent manner. A package manager deals with packages, distributions of software and data in archive files. Packages contain metadata, such as the software's name, description of its purpose, version number, vendor, checksum, and a list of dependencies necessary for the software to run properly. Upon installation, metadata is stored in a local package database. Package managers typically maintain a database of software dependencies and version information to prevent software mismatches and missing prerequisites. They work closely with software repositories, binary repository managers, and app stores.
Package managers are designed to eliminate the need for manual installs and updates. This can be particularly useful for large enterprises whose operating systems are based on Linux and other Unix-like systems, typically consisting of hundreds or even tens of thousands of distinct software packages.
- Package management
- Package Management with RPM and YUM (YouTube)
- Package Management with DPKG and APT (YouTube)
Installing software packages
- Linux Package Management with Yum, RPM, Apt, Dpkg, Aptitude and Zypper – Part 9
- Learn Linux, 101: Debian package management
- Learn Linux, 101: RPM and YUM package management
These are some of the sources for the above links:
- Ops School: Unix fundamentals 101
- IBM developerWorks: Learn Linux, 101: A roadmap for LPIC-1
- Linux Foundation/edX: LFS101x Introduction to Linux
- Ubuntu Help CommunityHelpWiki
- Wikipedia & Wikimedia Commons
In particular, Tecmint have the following 10-part series which covers parts of the LFCS: