CertPrep
Back to Resources

LPIC-1 101-500 Deep Dive: System Architecture, Linux Installation, and Package Management

Mon Jul 13 2026 00:00:00 GMT+0000 (Coordinated Universal Time)~7 min read

The LPIC-1 101-500 exam is the first of two exams required for the LPIC-1 certification. It covers system architecture, Linux installation and package management, GNU and Unix commands, devices and filesystems, and the Filesystem Hierarchy Standard.

This guide provides an objective-by-objective breakdown with commands, configuration examples, and exam-relevant details you need to know.

Topic 101: System Architecture (weight 8)

101.1 Determine and Configure Hardware Settings

Key commands and files:

# List all PCI devices
lspci
lspci -v          # Verbose
lspci -vv         # Very verbose with capabilities
lspci -nn         # Show vendor/device IDs as numbers
lspci -s 00:02.0  # Filter by bus address

# List USB devices
lsusb
lsusb -v          # Verbose
lsusb -t          # Tree view

# List block devices
lsblk
lsblk -f          # Filesystem info
lsblk -m          # Permissions and owner

# Display kernel ring buffer (boot messages)
dmesg
dmesg | grep -i usb   # Filter USB-related messages
dmesg | grep -i error # Filter errors
dmesg -w              # Watch for new messages (like tail -f)

# View and manage kernel modules
lsmod              # List loaded modules
modinfo module_name # Display module information
modprobe module_name # Load module with dependency resolution
modprobe -r module_name # Remove module
insmod /path/to/module.ko # Load module directly (no deps)
rmmod module_name  # Remove module

Key files:

  • /proc/interrupts — IRQ assignments
  • /proc/ioports — I/O port addresses
  • /proc/dma — DMA channel assignments
  • /sys/ — sysfs, device and driver info in tree structure

Module configuration:

# List modules loaded automatically at boot
cat /etc/modules

# Blacklist a module
echo "blacklist pcspkr" > /etc/modprobe.d/disable-beep.conf

# Module options
echo "options 8250 nr_uarts=4" > /etc/modprobe.d/8250.conf

Hotplug devices: Modern Linux uses udev. Device rules stored in /etc/udev/rules.d/. Reload rules with udevadm control --reload-rules.

Coldplug devices: Connected at boot time. Detected during kernel initialization.

101.2 Boot the System

Boot process sequence:

  1. BIOS/UEFI firmware → POST
  2. Bootloader (GRUB 2) → reads /boot/grub/grub.cfg
  3. Kernel initialization → decompresses, mounts initramfs
  4. init/systemd → PID 1 starts services

GRUB 2 commands:

# Install GRUB
grub-install /dev/sda

# Generate configuration
grub-mkconfig -o /boot/grub/grub.cfg

# Manual boot entry configuration
cat /etc/default/grub
# GRUB_TIMEOUT=5
# GRUB_CMDLINE_LINUX="quiet splash"

Boot parameters:

# Common kernel boot parameters
single              # Single-user mode (recovery)
root=/dev/sda2      # Specify root partition
ro                  # Mount root read-only initially
rw                  # Mount root read-write
init=/bin/bash      # Use custom init
nomodeset           # Disable kernel mode setting
acpi=off            # Disable ACPI

Init and runlevels (SysV):

| Runlevel | Purpose | | -------- | ---------------------------------------------- | | 0 | Halt | | 1 | Single-user mode | | 2 | Multi-user (no network, Debian/Ubuntu default) | | 3 | Multi-user (text mode, RHEL default) | | 4 | Undefined/custom | | 5 | Multi-user with GUI | | 6 | Reboot |

# Change runlevel
telinit 1
init 1

# View current runlevel
runlevel
who -r

Systemd targets (replaces runlevels):

| Target | Runlevel Alias | Purpose | | ----------------- | -------------- | --------------- | | poweroff.target | 0 | Power off | | rescue.target | 1 | Single-user | | multi-user.target | 3 | Multi-user text | | graphical.target | 5 | Multi-user GUI | | reboot.target | 6 | Reboot |

# Set default target
systemctl set-default multi-user.target

# Switch to target now
systemctl isolate multi-user.target

# View current target
systemctl get-default

Shutdown and reboot:

shutdown -h now     # Halt immediately
shutdown -r +5      # Reboot in 5 minutes
shutdown -c         # Cancel pending shutdown
reboot              # Reboot now
halt                # Halt system
poweroff            # Power off
systemctl reboot    # Reboot (systemd)
systemctl poweroff  # Power off (systemd)

101.3 Change Runlevels / Boot Targets and Shutdown or Reboot System

Already covered above. Additional commands:

# Who is logged in
who
w
users

# Notify users of shutdown
wall "System will go down in 5 minutes"
shutdown -k +5 "Maintenance in 5 minutes"  # Fake warning, no shutdown

# Alternative: message of the day
cat /etc/motd

Topic 102: Linux Installation and Package Management (weight 10)

102.1 Design Hard Disk Layout

Partitioning considerations:

  • /boot — typically 512 MB–1 GB, must be accessible by GRUB
  • / (root) — core system, minimum 10-20 GB
  • /home — user data, allocate remaining space
  • /var — logs and spool, separate partition prevents fill-up from crashing system
  • swap — swap space, traditionally 2× RAM, modern systems 1× RAM or less with hibernation support

Partition table types:

| Type | Max Disks | Max Partition Size | Legacy Support | | ---- | --------- | ------------------ | ---------------------- | | MBR | 2 TB | 2 TB | Universal | | GPT | No limit | 9.4 ZB | UEFI required for boot |

Partitioning tools:

fdisk /dev/sda       # MBR partitioning (legacy)
gdisk /dev/sda       # GPT partitioning
parted /dev/sda      # Both MBR and GPT
parted /dev/sda mklabel gpt  # Create GPT label
parted /dev/sda mkpart primary ext4 1MiB 100GiB  # Create partition

Swap management:

# Create swap file
dd if=/dev/zero of=/swapfile bs=1M count=4096
chmod 600 /swapfile
mkswap /swapfile
swapon /swapfile

# Add to /etc/fstab
echo "/swapfile none swap sw 0 0" >> /etc/fstab

# View swap usage
swapon --show
free -h

102.2 Install a Boot Manager

GRUB 2 configuration hierarchy:

/etc/default/grub          # Main config file
/etc/grub.d/               # Scripts merged into grub.cfg
  00_header                # Base settings
  10_linux                 # Linux entries
  30_os-prober             # Other OS entries
  40_custom                # Custom entries
/boot/grub/grub.cfg        # Generated config (do not edit directly)

GRUB interactive boot:

During boot, press Shift (BIOS) or Esc (UEFI) to enter GRUB menu. Press e to edit entry. Common edits:

  • Add single to end of linux line for single-user mode
  • Change ro to rw for early read-write mounting

Password-protect GRUB:

grub-mkpasswd-pbkdf2
# Enter password, copy hash

# Create /etc/grub.d/01_password:
cat <<EOF > /etc/grub.d/01_password
cat <<EOF
set superusers="admin"
password_pbkdf2 admin grub.pbkdf2.sha512.10000.HASH...
EOF

chmod +x /etc/grub.d/01_password
grub-mkconfig -o /boot/grub/grub.cfg

102.3 Manage Shared Libraries

# List shared libraries
ldconfig -p | grep libssl

# Display library dependencies of a binary
ldd /bin/ls
ldd /usr/bin/nginx

# Configure library path
cat /etc/ld.so.conf
# Include files from /etc/ld.so.conf.d/*.conf

# Add custom path
echo /usr/local/lib > /etc/ld.so.conf.d/local.conf
ldconfig  # Update cache

# LD_LIBRARY_PATH environment variable
export LD_LIBRARY_PATH=/opt/mylib:$LD_LIBRARY_PATH

# Important library dirs
ls /lib
ls /usr/lib
ls /usr/local/lib

102.4 Use Debian Package Management

dpkg commands:

# Install
dpkg -i package.deb

# Remove (keep config)
dpkg -r packagename

# Purge (remove config too)
dpkg -P packagename

# List installed
dpkg -l
dpkg -l | grep nginx

# Query
dpkg -L packagename     # List files installed by a package
dpkg -S /bin/ls         # Which package owns this file
dpkg -s packagename     # Package status
dpkg -p packagename     # Package info from the .deb

# Reconfigure
dpkg-reconfigure packagename

APT commands:

# Update package index
apt update

# Upgrade all packages
apt upgrade
apt dist-upgrade      # Upgrades with dependency changes
apt full-upgrade      # Same as dist-upgrade

# Install/remove
apt install nginx
apt remove nginx
apt purge nginx
apt autoremove         # Remove orphaned dependencies

# Search
apt search webserver
apt show nginx

# Cache
apt-cache search keyword
apt-cache show packagename
apt-cache depends packagename  # Dependencies
apt-cache rdepends packagename # Reverse dependencies

# Package states
apt-mark hold packagename    # Prevent upgrade
apt-mark unhold packagename
apt-mark showhold

APT configuration:

cat /etc/apt/sources.list
# deb http://archive.ubuntu.com/ubuntu focal main restricted

ls /etc/apt/sources.list.d/

cat /etc/apt/preferences  # Pinning

# Add repository
add-apt-repository ppa:graphics-drivers/ppa

Key Debian directories:

  • /var/cache/apt/archives/ — Downloaded .deb files
  • /var/lib/dpkg/ — dpkg database

102.5 Use RPM and YUM Package Management

RPM commands:

# Install
rpm -ivh package.rpm    # Verbose, hash progress

# Upgrade
rpm -Uvh package.rpm

# Remove
rpm -e packagename

# Query
rpm -q nginx                   # Is package installed
rpm -qa                        # All installed packages
rpm -qa | grep nginx
rpm -ql nginx                  # List files
rpm -qf /etc/nginx/nginx.conf  # Which package owns file
rpm -qi nginx                  # Package info
rpm -qd nginx                  # Documentation files
rpm -qR nginx                  # Requires (dependencies)
rpm -q --changelog nginx       # Changelog

# Verify
rpm -V nginx                   # Changed files since install
rpm -Va                        # All packages

YUM (Yellowdog Update Manager):

yum update
yum install nginx
yum remove nginx
yum search nginx
yum info nginx
yum list installed | grep nginx
yum provides /etc/nginx/nginx.conf  # Which package provides file
yum groupinstall "Web Server"
yum repolist

DNF (next-gen YUM, Fedora/RHEL 8+):

dnf update
dnf install nginx
dnf remove nginx
dnf search nginx
dnf info nginx
dnf list installed
dnf provides /etc/nginx/nginx.conf
dnf group install "Web Server"
dnf repolist
dnf history
dnf autoremove

Key RPM directories:

  • /var/lib/rpm/ — RPM database
  • /etc/yum.repos.d/ — YUM repository configs
  • /etc/dnf/dnf.conf — DNF config

102.6 Virtualization as a Concept and Tool

Hypervisor types:

| Type | Description | Examples | | ------ | ----------- | ------------------------------ | | Type 1 | Bare-metal | VMware ESXi, KVM, Xen, Hyper-V | | Type 2 | Hosted | VirtualBox, VMware Workstation |

KVM/QEMU:

# Check CPU virtualization support
grep -E "(vmx|svm)" /proc/cpuinfo
kvm-ok

# Create VM
virt-install \
  --name ubuntu-vm \
  --ram 2048 \
  --vcpus 2 \
  --disk size=20 \
  --cdrom ubuntu.iso

# List VMs
virsh list
virsh list --all
virsh start vm-name
virsh shutdown vm-name
virsh destroy vm-name  # Force off

# Container-level virtualization
lxc-checkconfig
docker ps
podman ps

Topic 103: GNU and Unix Commands (weight 14)

103.1 Work on the Command Line

# Basic commands
echo $PATH
echo "Hello $USER"
type command_name   # Show command type (builtin, alias, path)
which command_name  # Show full path
alias ll='ls -l'
unalias ll
unalias -a          # Remove all aliases
history
history -c          # Clear history
!100                # Re-execute command 100 from history
!!                  # Re-execute last command

Shell expansions:

echo {1..10}            # Brace expansion: 1 2 3 ...
echo {a,b,c}.txt        # a.txt b.txt c.txt
echo ~                  # Home directory
echo ~user              # user's home directory
echo $(date)            # Command substitution
echo `date`             # Legacy command substitution
echo $((2 + 3))         # Arithmetic expansion

Quoting:

echo "Variable: $HOME"   # Variable expanded
echo 'Literal: $HOME'    # No expansion
echo "Escape: \$HOME"    # Escaped

103.2 Process Text Streams Using Filters

cat       # Concatenate and display files
tac       # Reverse order (last line first)
head -n 5 file
tail -n 10 file
tail -f /var/log/syslog   # Follow (live updates)
less /var/log/syslog      # Pager with search
more /var/log/syslog      # Simple pager

nl file                   # Number lines
od file                   # Octal dump
sort file                 # Sort lines
sort -r                   # Reverse sort
sort -n                   # Numeric sort
sort -u                   # Unique (like sort | uniq)
sort -k2                  # Sort by 2nd field

uniq                      # Filter duplicate adjacent lines
uniq -c                   # Prefix lines by count
uniq -d                   # Only print duplicates

cut -d: -f1 /etc/passwd   # Extract first field
cut -c1-5 file            # Extract first 5 characters

paste file1 file2          # Merge lines side by side
join file1 file2           # Join lines on common field
expand file                # Convert tabs to spaces
unexpand file              # Convert spaces to tabs

wc -l file                # Line count
wc -w file                # Word count
wc -c file                # Byte count

tr 'a-z' 'A-Z' < file     # Translate characters (uppercase)
tr -d '\n' < file         # Delete newlines
tr -s ' ' < file          # Squeeze repeated spaces

rev                       # Reverse each line

103.3 Perform Basic File Management

# Copy, move, delete
cp source dest
cp -r sourcedir destdir
cp -a sourcedir destdir  # Archive (preserve attributes)
cp -p source dest        # Preserve timestamps
mv source dest
rm file
rm -r dir
rm -f file               # Force (no prompt)
rmdir emptydir

# List files
ls
ls -l                    # Long format
ls -a                    # All files (including .)
ls -la
ls -lh                   # Human-readable sizes
ls -lS                   # Sort by size
ls -lt                   # Sort by time
ls -R                    # Recursive

# File tree
tree

# Create directories
mkdir dir
mkdir -p parent/child    # Create parent directories

File timestamps:

touch file               # Create or update timestamp
touch -t 202601010000 file  # Set specific timestamp
stat file                # Display all file stats
ls -l --time=atime file  # Access time
ls -l --time=ctime file  # Change time

# atime vs mtime vs ctime
# atime: access time (read)
# mtime: modification time (content changed)
# ctime: change time (metadata or content changed)

Find files:

find / -name "*.conf" -type f
find / -size +100M
find / -mtime -7         # Modified in last 7 days
find / -user weiss
find / -perm 644
find / -exec ls -l {} \;
find / -ok rm {} \;      # Prompts before executing

locate nginx.conf         # Fast database search
updatedb                  # Update locate database

which command_name        # Search PATH
whereis command_name      # Binary, source, man page locations

103.4 Use Streams, Pipes, and Redirects

File descriptors:

| Number | Name | Default Binding | | ------ | ------ | --------------- | | 0 | stdin | Keyboard | | 1 | stdout | Terminal | | 2 | stderr | Terminal |

Redirect examples:

command > file          # stdout to file (overwrite)
command >> file         # stdout to file (append)
command 2> file         # stderr to file
command 2>> file        # stderr append
command &> file         # Both stdout and stderr
command 2>&1            # stderr to stdout
command > file 2>&1     # Combined redirect
command > /dev/null     # Discard stdout
command 2> /dev/null    # Discard stderr

# Pipes
command1 | command2
command1 |& command2    # Pipe both stdout and stderr

# Tee (write to file and stdout)
command | tee file
command | tee -a file   # Append
command | tee file1 file2 file3

# Here documents
cat <<EOF > file
line 1
line 2
EOF

103.5 Create, Monitor, and Kill Processes

# Process listing
ps aux
ps -ef
ps axo pid,user,%cpu,%mem,command

# Process tree
pstree
pstree -p              # With PIDs

# Top-like tools
top
htop
atop

# Job control
jobs                   # Background jobs
bg %1                  # Resume job 1 in background
fg %1                  # Bring job 1 to foreground
Ctrl+Z                 # Suspend foreground job
Ctrl+C                 # Terminate foreground job

# Signal table
# 1  HUP   (hang up)
# 2  INT   (interrupt - Ctrl+C)
# 3  QUIT  (quit)
# 9  KILL  (force kill)
# 15 TERM  (terminate - default)
# 18 CONT  (continue)
# 19 STOP  (stop/suspend)
# 20 TSTP  (stop from tty - Ctrl+Z)

kill PID               # Send SIGTERM
kill -9 PID            # Send SIGKILL
killall process_name    # Kill by name
pkill process_name      # Kill by name pattern
pgrep process_name      # PID by name

nice -n 10 command      # Start with lower priority (-20 to 19)
renice -n 5 -p 1234     # Change priority of running process

/proc filesystem:

cat /proc/cpuinfo       # CPU info
cat /proc/meminfo       # Memory info
cat /proc/version       # Kernel version
ls /proc/PID/           # Per-process information
cat /proc/PID/environ   # Process environment
cat /proc/PID/cmdline   # Process command line
cat /proc/PID/fd/       # Open file descriptors

103.6 Modify Process Execution Priorities

Already covered under 103.5. Key nice/renice details for the exam:

  • Privileged user (root) can set any priority from -20 to 19
  • Regular user can only increase niceness (0 to 19), cannot lower it
  • Lower nice value = higher priority
  • Default nice value: 0
# Start firefox with low priority
nice -n 19 firefox

# Check nice value
ps -l PID            # NI column
top                  # NI column

# Change priority of PID 1234
renice -n 5 -p 1234
renice -n -5 -u root  # Change all root processes

103.7 Search Text Files Using Regular Expressions

# grep basics
grep pattern file
grep -i pattern file       # Case insensitive
grep -v pattern file       # Inverted (lines NOT matching)
grep -c pattern file       # Count matches
grep -n pattern file       # Show line numbers
grep -r pattern dir/       # Recursive
grep -l pattern dir/*      # Show only filenames
grep -E "pattern" file     # Extended regex
grep -P "pattern" file     # Perl-compatible regex (PCRE)

# sed basics
sed 's/old/new/' file       # Replace first occurrence per line
sed 's/old/new/g' file      # Replace all occurrences
sed 's/old/new/2' file      # Replace 2nd occurrence
sed '/pattern/d' file       # Delete matching lines
sed -n '/pattern/p' file    # Print only matching lines
sed -i 's/old/new/g' file   # In-place edit
sed '1,10d' file            # Delete lines 1-10

# Basic regex metacharacters
# .    any single character
# *    zero or more of previous
# +    one or more of previous (ERE)
# ?    zero or one of previous (ERE)
# ^    start of line
# $    end of line
# []   character class
# [^]  negated character class
# \(\)  group (BRE)
# ()    group (ERE)
# \|    alternation (ERE)

103.8 Basic File Editing

# vi/vim modes
# Normal mode: navigation, copy, paste, delete
# Insert mode: text entry (i, a, o)
# Command mode: :w, :q, :q!, :wq, :set

vi basics:
  i        # Enter insert mode
  Esc      # Back to normal mode
  :w       # Save
  :q       # Quit
  :wq      # Save and quit
  :q!      # Quit without saving
  h/j/k/l  # Cursor movement
  x        # Delete character
  dd       # Delete line
  yy       # Yank (copy) line
  p        # Paste after
  P        # Paste before
  u        # Undo
  Ctrl+r   # Redo
  /pattern # Search forward
  ?pattern # Search backward
  n        # Next match
  N        # Previous match
  :%s/old/new/g  # Search and replace all
  :set nu  # Show line numbers
  :set ic  # Case-insensitive search
  gg       # Go to first line
  G        # Go to last line
  :NUM     # Go to line NUM

Topic 104: Devices, Linux Filesystems, and FHS (weight 14)

104.1 Create Partitions and Filesystems

# Partition table management
fdisk /dev/sda
gdisk /dev/sda
parted /dev/sda

# Create filesystem
mkfs.ext4 /dev/sda1
mkfs.xfs /dev/sda2
mkfs.btrfs /dev/sda3
mkfs.vfat /dev/sda4

# Swap
mkswap /dev/sda5

# Filesystem check
fsck /dev/sda1
fsck.ext4 /dev/sda1
fsck -N /dev/sda1  # Dry run
fsck -y /dev/sda1  # Auto yes

# Filesystem info
blkid /dev/sda1
tune2fs -l /dev/sda1  # ext2/3/4 superblock info
dumpe2fs /dev/sda1     # All superblock and block group info

104.2 Maintain the Integrity of Filesystems

# Check filesystem usage
df -h
df -T                 # Show filesystem type
df -i                 # Inode usage

# Check directory size
du -sh /home
du -sh * | sort -h    # Size of each item, sorted
du -hc --max-depth=1 /home

# Check for errors
fsck
smartctl -a /dev/sda  # S.M.A.R.T. disk health
badblocks -v /dev/sda # Scan for bad blocks

104.3 Control Mounting and Unmounting of Filesystems

# Mount
mount /dev/sda1 /mnt
mount -t ext4 /dev/sda1 /mnt
mount -o ro /dev/sda1 /mnt    # Read-only
mount -o noexec /dev/sda1 /mnt  # No execution
mount -o loop image.iso /mnt  # Loop device (ISO)

# Unmount
umount /mnt
umount /dev/sda1
umount -l /mnt        # Lazy unmount (when device busy)

# View mounts
mount
mount | grep /dev/sda
findmnt                # Tree view

# /etc/fstab format
# <device>    <mountpoint>    <type>    <options>    <dump>    <pass>
# /dev/sda1    /               ext4      defaults      0         1
# UUID=xxx     /boot           ext4      defaults      0         2
# //server/share /mnt/smb       cifs     credentials=/etc/smb.txt,uid=1000 0 0
# 192.168.1.1:/export /mnt/nfs  nfs4     defaults      0         0

# Mount all fstab entries
mount -a

# Check what's using a filesystem
fuser -v /mnt          # Show processes using /mnt
lsof /mnt              # List open files on /mnt

104.4 Manage Disk Quotas

# Enable quotas in fstab
# /dev/sda1 /home ext4 defaults,usrquota,grpquota 0 1

# Create quota files
quotacheck -avug
quotacheck -cvm /home  # Create quota database

# Set quotas
edquota -u username
edquota -g groupname
edquota -p user1 user2 user3  # Copy quota profile
repquota -a            # Report quota usage

# Quota commands
quota username
quota -v               # Verbose
quotastats

104.5 Manage File Permissions and Ownership

# Permission notation
# rwx rwx rwx  = 421 421 421
# user group other

chmod 755 file         # rwxr-xr-x
chmod u+x file         # Add execute for user
chmod g=rw file        # Set group to rw
chmod o-r file         # Remove read from others
chmod -R 755 dir/      # Recursive

chown user:group file
chown user file
chown :group file
chown -R user:group dir/

# Special permissions
chmod u+s file         # SUID (4xxx) - execute as file owner
chmod g+s file         # SGID (2xxx) - execute as group
chmod +t dir/          # Sticky bit (1xxx) - only owner can delete
chmod 1777 /tmp        # rwxrwxrwt
chmod 4755 /usr/bin/sudo  # rwsr-xr-x

# umask
umask                   # Show current mask
umask 022               # Default permissions: 755 for dirs, 644 for files
# umask subtracts from 777 (dirs) or 666 (files)

104.6 Create and Change Hard and Symbolic Links

# Hard link (same inode, same filesystem only)
ln target link_name

# Symbolic link (any filesystem, can point to directories)
ln -s target link_name

# Identify links
ls -li                  # Show inode number
stat file               # Inode and link count
readlink link_name      # Show symlink target

Key differences:

| Aspect | Hard Link | Symbolic Link | | ---------------- | ----------- | -------------- | | Inode | Same | Different | | Cross-filesystem | No | Yes | | Directory target | No | Yes | | Broken target | Stays valid | Becomes broken | | Size on disk | 0 | Path length | | rm target | Link stays | Link breaks |

104.7 Find System Files and Place Files in Correct Directories

Filesystem Hierarchy Standard (FHS):

| Directory | Purpose | | ------------ | --------------------------------------------------------------- | | / | Root filesystem | | /bin | Essential user binaries (symlink to /usr/bin in modern systems) | | /sbin | System binaries (symlink to /usr/sbin) | | /etc | Configuration files | | /home | User home directories | | /root | Root user home | | /var | Variable data (logs, spool, temporary) | | /tmp | Temporary files (deleted on boot) | | /boot | Boot loader files, kernel images | | /dev | Device files | | /proc | Process and kernel information (virtual) | | /sys | Device and driver information (virtual) | | /lib | Shared libraries (symlink to /usr/lib) | | /opt | Add-on application packages | | /srv | Service data (e.g., web server files) | | /media | Removable media mount points | | /mnt | Temporary mount points | | /usr | Secondary hierarchy (read-only user data) | | /usr/local | Locally compiled software |

# Find files
locate pattern
find / -name "filename"
which command_name
whereis command_name

# Library and system file search
ldconfig -p | grep library_name
dpkg -S filename      # Which package installed this (Debian)
rpm -qf filename      # Which package installed this (RHEL)

Exam Tips

  1. Run commands on a real system — reading is not enough. Set up a virtual machine and practice every command.
  2. Know your man pagesman -k keyword (apropos) for finding commands, man 5 crontab for configuration file formats.
  3. Master the exam objectives — print the official LPI objectives list and check off each one.
  4. Time management — 90 minutes for 60 questions. Skip hard questions and return to them.
  5. Focus on commands, not GUIs — the exam tests command-line proficiency almost exclusively.

Test Your Knowledge with Practice Exams

Ready to put this knowledge to the test? Our LPI practice portal includes 200+ realistic questions covering LPIC-1, LPIC-2, LPIC-3, and DevOps Tools Engineer certifications. Study mode, timed exams, domain breakdowns, and weak-area analysis included.

Start Free Preview →

Related Articles

Ready to Test Your Knowledge?

Try our practice exams with hundreds of realistic questions.

Start Practicing →