The Ultimate RHCSA Cheat Sheet for Exam Day - Updated Edition
Published On: 24 December 2025
Objective
Red Hat Certified System Administrator (RHCSA) exam preparation may be challenging, but it can be simplified with a professional and well-organized cheat sheet. This guide was created to help you learn key tools and concepts for RHEL 10, starting with the fundamentals and progressing to more complex areas including advanced automation, security, and modern application management. Use it to solidify your learning and approach the test with confidence and accuracy.
Important Note for RHEL 10: The RHCSA exam based on RHEL 10 (EX200 v10) includes significant changes from RHEL 9. Container management with Podman has been removed from the objectives, while Flatpak package management has been added as a key requirement. Approximately 20-25% of the content has been modified, with enhanced focus on security and modern system administration practices.
Table of Contents
- 1. Core Commands and Utilities
- 2. System Configuration and Management
- 3. Security and Access Control
- 4. Advanced Storage and Filesystem Operations
- 5. Automation and Configuration Management
- 6. Backup, Recovery, and Automation
- 7. Performance Tuning and Optimization
- 8. Troubleshooting and Diagnostics
- 9. Flatpak Package Management (NEW for RHEL 10)
- 10. Systemd Timers (NEW for RHEL 10)
- 11. Quick Reference Commands
- 12. Exam Tips and Best Practices
1. Core Commands and Utilities
File and Directory Management
Managing files and directories is a fundamental skill for any Linux administrator. Here are the essential commands:
ls - List directory contents
Inspects files and directories in a specific location, ensuring quick navigation and status checks.
Syntax: ls [options] [path]
Examples:
ls -l- detailed view with permissionsls -a- show hidden filesls -lah- human-readable sizes with hidden filesls -ltr- sort by modification time (oldest first)ls -lS- sort by file size
cp - Copy files or directories
Duplicates files or creates backups of directories.
Syntax: cp [options] source destination
Examples:
cp -r source/ destination/- copy directories recursivelycp -p file1 file2- preserve timestamps and permissionscp -a source/ destination/- preserve all attributes (archive mode)cp -i file1 file2- interactive mode (asks before overwriting)
mv - Move or rename files or directories
Relocates files or renames them within the filesystem.
Syntax: mv [options] source destination
Examples:
mv oldname newname- rename a filemv *.txt /backup/- move all text filesmv -i file /path/- interactive mode (asks before overwriting)mv -n file /path/- no clobber (do not overwrite)
rm - Remove files or directories
Deletes files or directories. Use with caution, especially with -rf.
Syntax: rm [options] file_or_directory
Examples:
rm -rf directory/- forced, recursive deletionrm -i file- interactive deletionrm -v file- verbose output
find - Search for files or directories
Locates files or directories using various attributes like name, size, or modification date.
Syntax: find [path] [options]
Examples:
find /path -name "filename"- search by namefind /home -size +100M- find files larger than 100MBfind /etc -mtime -7- find files modified in last 7 daysfind /var -type f -perm 755- find executable filesfind /tmp -type f -mtime +30 -delete- find and delete old filesfind /home -user username- find files owned by userfind /var -type f -name "*.log" -exec rm {} \;- find and execute command
Advanced File Operations
stat - Display detailed file information
Syntax: stat filename
Example: stat /etc/passwd - shows timestamps, permissions, and inode info
file - Determine file type
Syntax: file filename
Example: file /bin/ls - identifies the file type and architecture
touch - Create empty files or update timestamps
Syntax: touch filename
Example: touch newfile.txt - creates an empty file
ln - Create links
ln -s /path/to/file linkname- create symbolic linkln /path/to/file linkname- create hard link
Text Processing
Linux provides powerful tools for text processing, critical for parsing logs and configuration files:
grep - Search text using patterns
Quickly locates specific strings or patterns within files for troubleshooting or analysis.
Syntax: grep [options] pattern file
Examples:
grep "pattern" file- find matching linesgrep -r "error" /var/log/- search recursivelygrep -v "comment" file- exclude lines containing "comment"grep -E "pattern1|pattern2" file- multiple patterns (extended regex)grep -i "error" file- case-insensitive searchgrep -n "pattern" file- show line numbersgrep -c "pattern" file- count matching linesgrep -l "pattern" /path/*- list files containing pattern
awk - Analyze and manipulate text
Extracts and processes data from structured text files, such as logs or configuration files.
Syntax: awk [options] 'program' file
Examples:
awk '{print $1}' file- print the first columnawk -F: '{print $1,$3}' /etc/passwd- print username and UIDawk '/pattern/ {print $2}' file- print second field of matching linesawk '{sum+=$1} END {print sum}' file- sum values in first columnawk 'NR==5' file- print line 5
sed - Perform text transformations
Modifies file content by substituting, deleting, or inserting text.
Syntax: sed [options] 'script' file
Examples:
sed 's/old/new/g' file- replace text globallysed -i 's/old/new/g' file- edit file in placesed '5d' file- delete line 5sed -n '1,10p' file- print lines 1-10sed '/pattern/d' file- delete lines matching patternsed -i.bak 's/old/new/g' file- edit in place with backup
vim / nano - Edit files
Edits configuration files or scripts directly from the terminal.
Syntax: vim file or nano file
Vim Essential Commands:
i- enter insert modeEsc- exit insert mode:w- save file:q- quit:wq- save and quit:q!- quit without saving/pattern- search for patterndd- delete lineyy- copy linep- pasteu- undo
Additional Text Processing Tools
cut - Extract columns from text
Syntax: cut -d delimiter -f field file
Example: cut -d: -f1,3 /etc/passwd - extracts username and UID
sort - Sort lines in text files
Examples:
sort -n file- numerical sortsort -k2 file- sort by second fieldsort -r file- reverse sortsort -u file- sort and remove duplicates
uniq - Report or omit repeated lines
Syntax: uniq [options] file
Example: sort file | uniq -c - counts occurrences of each line
head / tail - Display beginning or end of files
head -n 20 file- shows first 20 linestail -n 50 file- shows last 50 linestail -f /var/log/messages- follows log file in real-time
wc - Word, line, and character count
wc -l file- count lineswc -w file- count wordswc -c file- count bytes
System Monitoring
Monitoring system resources helps maintain optimal performance and identify issues:
top - Real-time process monitoring
Provides a live view of running processes and their resource usage.
Syntax: top [options]
Examples:
top -u username- filter by usertop -p PID- monitor specific process- Press
Mto sort by memory,Pfor CPU usage - Press
kto kill a process,1to show all CPU cores - Press
qto quit
df - Check disk space usage
Displays available and used disk space on all mounted filesystems.
Syntax: df [options] [path]
Examples:
df -h- human-readable formatdf -i- show inode usagedf -T- display filesystem typedf -h /home- check specific mount point
du - Summarize file/directory size
Helps identify large files or directories consuming disk space.
Syntax: du [options] [path]
Examples:
du -sh /directory- concise outputdu -ah /path | sort -rh | head -10- find top 10 largest filesdu --max-depth=1 /home- limit directory depth
free - View memory usage
Shows total, used, and available memory, including swap.
Examples:
free -m- memory in megabytesfree -h- human-readable formatfree -s 5- update every 5 seconds
ps - Display process information
Lists currently running processes along with details such as PID, CPU, and memory usage.
Examples:
ps aux | grep processname- find specific processesps -ef- full format listingps -u username- show processes for specific userps aux --sort=-%mem | head- show top memory consumersps aux --sort=-%cpu | head- show top CPU consumers
Additional Monitoring Tools
lscpu- display CPU informationlsmem --summary- display memory informationiostat -x 1- monitor disk I/O performancess -tuln- display network connections (modern replacement for netstat)uptime- show system uptime and load averagesvmstat 1- virtual memory statistics
2. System Configuration and Management
Network Configuration
Networking is a critical area for administrators, and these commands are indispensable:
nmcli - Manage network connections
Configures network settings, including connections, devices, and profiles.
Syntax: nmcli [object] [command]
Examples:
nmcli connection show- list connectionsnmcli device status- show device statusnmcli connection add type ethernet con-name "static-eth0" ifname eth0 ip4 192.168.1.100/24 gw4 192.168.1.1- add static connectionnmcli connection modify "static-eth0" ipv4.dns "8.8.8.8,8.8.4.4"- modify DNSnmcli connection up "static-eth0"- activate connectionnmcli connection down "static-eth0"- deactivate connectionnmcli connection reload- reload after manual config file editsnmcli device disconnect eth0- disconnect interface
nmtui - Text-based UI for NetworkManager
Alternative to nmcli with a user-friendly text interface
Syntax: nmtui
ip - Advanced network configuration
Provides detailed network information and allows for configuring IP addresses, routes, and interfaces.
Syntax: ip [options] object command
Examples:
ip addr show- display IP addressesip route show- display routing tableip addr add 192.168.1.100/24 dev eth0- add IP addressip link set eth0 up- bring interface upip link set eth0 down- bring interface downip route add default via 192.168.1.1- add default gatewayip neigh show- show ARP table
hostnamectl - Manage system hostname
Examples:
hostnamectl- show current hostnamehostnamectl set-hostname server1.example.com- set hostnamehostnamectl status- show system information
ping - Test network connectivity
Tests reachability of a host and measures round-trip time for messages.
ping -c 4 google.com- send 4 packetsping6 -c 4 ipv6.google.com- IPv6 connectivity test
Additional Network Tools
traceroute destination- trace network pathdig domain.comornslookup domain.com- DNS lookupss -tuln- show listening portsss -tuln | grep :22- check SSH port
Time Synchronization with Chrony
Chrony is the default NTP client in RHEL 10 for time synchronization.
chronyd - Time synchronization daemon
Service Management:
systemctl start chronyd- start servicesystemctl enable chronyd- enable at bootsystemctl status chronyd- check statussystemctl restart chronyd- restart after config changes
chronyc - Chrony command-line client
Examples:
chronyc tracking- check synchronization statuschronyc sources- list time sourceschronyc sourcestats- show source statisticschronyc -a makestep- force immediate time sync
Configuration File: /etc/chrony.conf
Common directives:
server 0.rhel.pool.ntp.org iburst- add NTP serverallow 192.168.1.0/24- allow clients (for NTP server)makestep 1.0 3- step clock if off by more than 1 second
timedatectl - Time and date management:
timedatectl- show time and date settingstimedatectl set-timezone America/New_York- set timezonetimedatectl list-timezones- list available timezonestimedatectl set-ntp true- enable NTP synchronization
User and Group Management
Efficient user and group management ensures system security and accessibility:
useradd - Add a new user
Creates user accounts, assigning default configurations.
Syntax: useradd [options] username
Examples:
useradd -m username- create a user with a home directoryuseradd -m -s /bin/bash -G wheel username- create user with bash shell and wheel groupuseradd -m -e 2025-12-31 username- set account expirationuseradd -r systemuser- create system accountuseradd -u 1500 -g developers username- specify UID and primary group
usermod - Modify a user
Alters user properties, such as group memberships.
Examples:
usermod -aG groupname username- add a user to a groupusermod -s /bin/bash username- change user shellusermod -L username- lock accountusermod -U username- unlock accountusermod -d /new/home -m username- change home directory
userdel - Remove a user
Examples:
userdel username- removes user but keeps home directoryuserdel -r username- removes user and home directory
passwd - Set or update passwords
Examples:
passwd username- change a user's passwordpasswd -l username- lock passwordpasswd -u username- unlock passwordpasswd -e username- expire password (force change on next login)passwd -S username- show password status
chage - Password aging
Examples:
chage -l username- list password aging infochage -M 90 username- set maximum password age to 90 dayschage -E 2025-12-31 username- set account expirationchage -d 0 username- force password change on next login
Group Management
groupadd groupname- create new groupgroupadd -g 1500 developers- create group with specific GIDgroupmod -n newname oldname- rename groupgroupdel groupname- delete groupgroups username- display user groupsid username- display user and group IDs
Permission Management
Basic Permissions
chmod - Change file permissions
chmod 755 file- sets rwxr-xr-xchmod u+x file- adds execute for ownerchmod -R 644 /directory- sets permissions recursivelychmod o-rwx file- remove all permissions for others
chown - Change file ownership
chown user:group file- changes owner and groupchown -R user /directory- changes ownership recursivelychgrp groupname file- change group only
Access Control Lists (ACLs)
ACLs provide fine-grained permission control beyond traditional Unix permissions.
getfacl - Display ACLs
Syntax: getfacl filename
setfacl - Set ACLs
setfacl -m u:username:rwx file- grant user specific permissionssetfacl -m g:groupname:rx directory- grant group permissionssetfacl -x u:username file- remove user ACLsetfacl -b file- remove all ACLssetfacl -R -m u:username:rwx directory/- recursive ACLsetfacl -m d:u:username:rwx directory/- set default ACL
Special Permissions
| Permission | Numeric | Description | Command |
|---|---|---|---|
| SUID | 4xxx | Execute with owner's permissions | chmod u+s file or chmod 4755 file |
| SGID | 2xxx | Execute with group's permissions; files inherit directory group | chmod g+s directory or chmod 2755 directory |
| Sticky Bit | 1xxx | Only owner can delete files in directory | chmod +t directory or chmod 1777 directory |
3. Security and Access Control
SELinux Management
SELinux is a mandatory access control system critical for RHCSA exam. Never disable SELinux during the exam.
SELinux Modes
getenforce- shows current mode (Enforcing/Permissive/Disabled)setenforce 0- sets to Permissive (temporary)setenforce 1- sets to Enforcing (temporary)sestatus- detailed SELinux status
Permanent configuration: Edit /etc/selinux/config
Set SELINUX=enforcing or SELINUX=permissive
SELinux Context Management
ls -Z - View SELinux contexts
ls -Z /var/www/html
chcon - Change SELinux context (temporary)
chcon -t httpd_sys_content_t /var/www/html/index.htmlchcon -R -t samba_share_t /shared- recursive context change
restorecon - Restore default SELinux context (permanent)
restorecon -v /var/www/html/index.htmlrestorecon -Rv /var/www/html- recursive restore
semanage - Manage SELinux policy (persistent)
semanage fcontext -l- list file contextssemanage fcontext -a -t httpd_sys_content_t "/web(/.*)?"- add contextsemanage port -l- list port contextssemanage port -a -t http_port_t -p tcp 8080- add portsemanage boolean -l- list SELinux booleans
setsebool - Set SELinux booleans
getsebool -a | grep httpd- list httpd booleanssetsebool httpd_can_network_connect on- temporarysetsebool -P httpd_can_network_connect on- permanent with -P
SELinux Troubleshooting
ausearch -m avc -ts recent- find recent SELinux denialssealert -a /var/log/audit/audit.log- analyze audit logaudit2why < /var/log/audit/audit.log- explain denials
Firewall Management (firewalld)
Firewalld is the dynamic firewall manager in RHEL 10.
Basic Commands
firewall-cmd --state- check firewall statusfirewall-cmd --get-default-zone- show default zonefirewall-cmd --get-active-zones- show active zonesfirewall-cmd --list-all- list all settings for default zonefirewall-cmd --list-all-zones- list all zones
Service Management
firewall-cmd --add-service=http- add service (temporary)firewall-cmd --add-service=https --permanent- add permanentlyfirewall-cmd --remove-service=http --permanent- remove servicefirewall-cmd --list-services- list allowed services
Port Management
firewall-cmd --add-port=8080/tcp --permanent- add portfirewall-cmd --remove-port=8080/tcp --permanent- remove portfirewall-cmd --list-ports- list open ports
Zone Management
firewall-cmd --set-default-zone=public- set default zonefirewall-cmd --zone=public --add-source=192.168.1.0/24 --permanent- add sourcefirewall-cmd --zone=dmz --change-interface=eth1 --permanent- assign interface
Apply Changes
firewall-cmd --reload- reload firewall (apply permanent rules)firewall-cmd --runtime-to-permanent- make runtime rules permanent
SSH Configuration and Management
SSH Client Commands
ssh username@hostname- basic connectionssh -p 2222 user@host- custom portssh -i ~/.ssh/id_rsa user@host- specific key
scp - Secure copy
scp file user@host:/path/- copy to remotescp user@host:/path/file .- copy from remotescp -r directory/ user@host:/path/- copy directory
ssh-keygen - Generate SSH keys
ssh-keygen -t rsa -b 4096- generate RSA keyssh-keygen -t ed25519- generate Ed25519 key (recommended)
ssh-copy-id - Copy public key to remote host
ssh-copy-id user@host
SSH Server Configuration
Configuration file: /etc/ssh/sshd_config
Important settings:
Port 22- change SSH portPermitRootLogin no- disable root loginPasswordAuthentication no- key-only authenticationPubkeyAuthentication yes- enable key authentication
After config changes:
sshd -t- test config syntaxsystemctl restart sshd- restart SSH service
4. Advanced Storage and Filesystem Operations
Partition Management
lsblk - List block devices
lsblk- list all block deviceslsblk -f- show filesystem information
parted - Disk partitioning tool
parted /dev/sdb print- show partition tableparted /dev/sdb mklabel gpt- create GPT partition tableparted /dev/sdb mkpart primary ext4 1MiB 100%- create partitionparted /dev/sdb rm 1- remove partition 1
gdisk - GPT fdisk
Interactive partitioning for GPT disks
gdisk /dev/sdb then use commands: n (new), d (delete), w (write), q (quit)
fdisk - MBR partitioning
fdisk /dev/sdb - for MBR partition tables
Filesystem Operations
mkfs - Create filesystems
mkfs.ext4 /dev/sdb1- create ext4 filesystemmkfs.xfs /dev/sdb1- create XFS filesystemmkfs.ext4 -L "Data" /dev/sdb1- with labelmkfs.vfat /dev/sdb1- create FAT filesystem
mount / umount - Mount filesystems
mount /dev/sdb1 /mnt- mount filesystemmount -t xfs /dev/sdb1 /data- specify filesystem typemount -o ro /dev/sdb1 /mnt- read-only mountumount /mnt- unmount filesystemmount -a- mount all filesystems in /etc/fstab
/etc/fstab - Persistent mounts
Format: device mountpoint fstype options dump pass
Examples:
# Mount by UUID (recommended) UUID=xxx-xxx-xxx /data xfs defaults 0 0 # Mount by device path /dev/sdb1 /backup ext4 defaults,noatime 0 2 # Mount LVM volume /dev/vg_data/lv_web /var/www xfs defaults 0 0 # NFS mount server:/share /mnt/nfs nfs defaults 0 0
Find UUID: blkid /dev/sdb1 or lsblk -f
Filesystem Management
resize2fs /dev/sdb1- resize ext4 filesystemxfs_growfs /mountpoint- expand XFS filesystemfsck /dev/sdb1- check ext filesystems (unmounted)xfs_repair /dev/sdb1- repair XFS (unmounted)tune2fs -L NewLabel /dev/sdb1- change ext labelxfs_admin -L NewLabel /dev/sdb1- change XFS label
LVM - Logical Volume Management
LVM provides flexible disk management with dynamic volume sizing.
Physical Volume (PV) Management
pvcreate /dev/sdb1- create physical volumepvdisplay- display PV informationpvs- short PV summarypvremove /dev/sdb1- remove PV
Volume Group (VG) Management
vgcreate vg_data /dev/sdb1- create volume groupvgextend vg_data /dev/sdc1- add PV to VGvgdisplay- display VG informationvgs- short VG summaryvgreduce vg_data /dev/sdc1- remove PV from VGvgremove vg_data- remove VG
Logical Volume (LV) Management
lvcreate -L 10G -n lv_data vg_data- create 10GB LVlvcreate -l 100%FREE -n lv_backup vg_data- use all free spacelvdisplay- display LV informationlvs- short LV summarylvextend -L +5G /dev/vg_data/lv_data- extend by 5GBlvextend -l +100%FREE /dev/vg_data/lv_data- extend to use all free spacelvreduce -L -2G /dev/vg_data/lv_data- reduce by 2GB (careful!)lvremove /dev/vg_data/lv_data- remove LV
Complete LVM Workflow Example
# Create physical volumes pvcreate /dev/sdb1 /dev/sdc1 # Create volume group vgcreate vg_data /dev/sdb1 /dev/sdc1 # Create logical volume lvcreate -L 20G -n lv_web vg_data # Create filesystem mkfs.xfs /dev/vg_data/lv_web # Create mount point and mount mkdir /var/www mount /dev/vg_data/lv_web /var/www # Add to /etc/fstab for persistence echo "/dev/vg_data/lv_web /var/www xfs defaults 0 0" >> /etc/fstab # Extend LV and filesystem lvextend -L +10G /dev/vg_data/lv_web xfs_growfs /var/www
Swap Management
Swap Partition
mkswap /dev/sdb2- create swap areaswapon /dev/sdb2- enable swapswapon -sorswapon --show- show swap usageswapoff /dev/sdb2- disable swap
Add to /etc/fstab: /dev/sdb2 swap swap defaults 0 0
Swap File
# Create swap file dd if=/dev/zero of=/swapfile bs=1M count=2048 chmod 600 /swapfile mkswap /swapfile swapon /swapfile # Add to /etc/fstab echo "/swapfile swap swap defaults 0 0" >> /etc/fstab
Stratis Storage Management
Stratis is a modern storage management solution in RHEL 10.
Stratis Pool Management
stratis pool create pool1 /dev/sdb- create poolstratis pool list- list poolsstratis pool add-data pool1 /dev/sdc- add device to poolstratis pool destroy pool1- remove pool
Stratis Filesystem Management
stratis filesystem create pool1 fs1- create filesystemstratis filesystem list- list filesystemsstratis filesystem snapshot pool1 fs1 snapshot1- create snapshotstratis filesystem destroy pool1 fs1- remove filesystem
Mount Stratis Filesystem:
mkdir /mnt/stratis mount /stratis/pool1/fs1 /mnt/stratis # Add to /etc/fstab UUID=xxx /mnt/stratis xfs defaults,x-systemd.requires=stratisd.service 0 0
NFS and Autofs
NFS Client Configuration
showmount -e server- show exports from servermount server:/share /mnt/nfs- mount NFS share
/etc/fstab entry:
server:/share /mnt/nfs nfs defaults 0 0
Autofs Configuration
Autofs automatically mounts filesystems on demand.
Master map: /etc/auto.master
# Direct map /- /etc/auto.direct # Indirect map /mnt/nfs /etc/auto.nfs
Indirect map example: /etc/auto.nfs
share -rw,sync server:/export/share data -ro server:/export/data
Enable autofs:
systemctl enable --now autofs
5. Automation and Configuration Management
Systemd Service Management
Systemd is the init system and service manager in RHEL 10.
Service Management
systemctl start servicename- start servicesystemctl stop servicename- stop servicesystemctl restart servicename- restart servicesystemctl reload servicename- reload config without restartsystemctl status servicename- check statussystemctl enable servicename- enable at bootsystemctl disable servicename- disable at bootsystemctl enable --now servicename- enable and startsystemctl is-enabled servicename- check if enabledsystemctl is-active servicename- check if running
System Management
systemctl list-units- list active unitssystemctl list-unit-files- list all unit filessystemctl daemon-reload- reload unit filessystemctl get-default- show default targetsystemctl set-default multi-user.target- set default targetsystemctl isolate multi-user.target- change to target immediately
System Targets (Runlevels)
| Target | Description |
|---|---|
| poweroff.target | Shut down system |
| rescue.target | Single user mode |
| multi-user.target | Multi-user, non-graphical |
| graphical.target | Multi-user, graphical |
| reboot.target | Reboot system |
| emergency.target | Emergency shell |
journalctl - Query systemd logs
journalctl- show all logsjournalctl -u servicename- logs for specific servicejournalctl -f- follow logs in real-timejournalctl -b- logs since last bootjournalctl -p err- show only errorsjournalctl --since "2025-12-01" --until "2025-12-05"- date rangejournalctl -n 50- show last 50 entriesjournalctl --disk-usage- show journal disk usage
Persistent Journal Storage
mkdir -p /var/log/journal systemd-tmpfiles --create --prefix /var/log/journal systemctl restart systemd-journald
Cron and Scheduled Tasks
crontab - Schedule recurring tasks
Syntax: * * * * * command (minute hour day month weekday)
crontab -e- edit current user's crontabcrontab -l- list current crontabcrontab -r- remove current crontabcrontab -u username -e- edit another user's crontab
Crontab Examples:
# Run daily at 2 AM 0 2 * * * /path/to/backup.sh # Run every 15 minutes */15 * * * * /path/to/script.sh # Run weekly on Sunday at midnight 0 0 * * 0 /path/to/weekly.sh # Run monthly on 1st at midnight 0 0 1 * * /path/to/monthly.sh # Run weekdays at 4:30 AM 30 4 * * 1-5 /path/to/weekday.sh
System-wide cron directories:
/etc/crontab- system crontab file/etc/cron.d/- drop-in directory for cron jobs/etc/cron.hourly/- scripts run hourly/etc/cron.daily/- scripts run daily/etc/cron.weekly/- scripts run weekly/etc/cron.monthly/- scripts run monthly
at - Schedule one-time tasks
at 10:00 PM- schedule task for 10 PMat now + 1 hour- schedule task for 1 hour from nowat 14:00 tomorrow- schedule for tomorrow at 2 PMatq- list scheduled at jobsatrm jobnumber- remove scheduled job
Package Management with DNF
DNF is the package manager in RHEL 10.
Basic Operations
dnf install packagename- install packagednf remove packagename- remove packagednf update- update all packagesdnf update packagename- update specific packagednf search keyword- search for packagesdnf info packagename- show package informationdnf list installed- list installed packagesdnf list available- list available packages
Package Groups
dnf group list- list available groupsdnf group install "Group Name"- install groupdnf group remove "Group Name"- remove group
Repository Management
dnf repolist- list enabled repositoriesdnf repolist all- list all repositoriesdnf config-manager --add-repo URL- add repositorydnf config-manager --enable reponame- enable repositorydnf config-manager --disable reponame- disable repository
Other DNF Commands
dnf provides /path/to/file- find which package provides a filednf history- show transaction historydnf history undo ID- undo a transactiondnf clean all- clean cachednf makecache- rebuild cache
6. Backup, Recovery, and Automation
Archive and Compression
tar - Archive files
tar -cvf archive.tar /path/to/files- create archivetar -czvf archive.tar.gz /path/to/files- create gzip compressed archivetar -cjvf archive.tar.bz2 /path/to/files- create bzip2 compressed archivetar -cJvf archive.tar.xz /path/to/files- create xz compressed archivetar -xvf archive.tar- extract archivetar -xzvf archive.tar.gz- extract gzip archivetar -xvf archive.tar -C /destination- extract to specific directorytar -tvf archive.tar- list contents without extracting
Compression Tools
gzip file- compress file (creates file.gz)gunzip file.gz- decompressbzip2 file- compress with bzip2bunzip2 file.bz2- decompress bzip2xz file- compress with xzunxz file.xz- decompress xz
System Recovery
Reset Root Password
- Reboot the system
- At GRUB menu, press
eto edit - Find the line starting with
linux - Add
rd.breakat the end of the line - Press
Ctrl+Xto boot - At the prompt, run:
mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit exit
Boot into Rescue Mode
- At GRUB menu, press
e - Add
systemd.unit=rescue.targetto linux line - Press
Ctrl+Xto boot
Boot into Emergency Mode
- At GRUB menu, press
e - Add
systemd.unit=emergency.targetto linux line - Press
Ctrl+Xto boot
GRUB Configuration
/etc/default/grub- GRUB configuration filegrub2-mkconfig -o /boot/grub2/grub.cfg- regenerate GRUB configgrubby --default-kernel- show default kernelgrubby --set-default /boot/vmlinuz-version- set default kernel
7. Performance Tuning and Optimization
Tuned - System Tuning
Tuned provides dynamic system tuning based on profiles.
Tuned Commands
tuned-adm list- list available profilestuned-adm active- show active profiletuned-adm profile profilename- activate profiletuned-adm recommend- show recommended profiletuned-adm off- disable tuned
Common Profiles
| Profile | Use Case |
|---|---|
| balanced | Default, balance between performance and power saving |
| powersave | Maximum power saving |
| throughput-performance | Maximum throughput |
| latency-performance | Minimum latency |
| virtual-guest | Optimized for virtual machines |
| virtual-host | Optimized for virtualization hosts |
Process Priority
nice and renice
nice -n 10 command- run command with niceness 10renice -n 5 -p PID- change niceness of running processrenice -n -5 -u username- change niceness for all user processes
Nice values range from -20 (highest priority) to 19 (lowest priority)
8. Troubleshooting and Diagnostics
Log Analysis
/var/log/messages- general system messages/var/log/secure- authentication logs/var/log/boot.log- boot messages/var/log/audit/audit.log- SELinux audit log
journalctl for Troubleshooting
journalctl -xe- show recent errors with explanationsjournalctl -k- show kernel messagesjournalctl --since "1 hour ago"- logs from last hourjournalctl _SYSTEMD_UNIT=sshd.service- logs for specific service
Common Issues
Network Troubleshooting
ping -c 4 gateway- test gateway connectivityip route- verify routingss -tuln- check listening portsfirewall-cmd --list-all- verify firewall rules
Service Troubleshooting
systemctl status servicename- check service statusjournalctl -u servicename- check service logssystemctl cat servicename- view service unit file
Filesystem Troubleshooting
mount -a- test /etc/fstab entriesfindmnt- show mount treeblkid- show block device UUIDs
9. Flatpak Package Management (NEW for RHEL 10)
Flatpak is a new addition to the RHCSA EX200 v10 exam objectives. It provides a universal package format for Linux applications.
Flatpak Basics
Install Flatpak
dnf install flatpak- install Flatpak
Repository Management
flatpak remote-add --if-not-exists flathub https://flathub.org/repo/flathub.flatpakrepo- add Flathub repositoryflatpak remotes- list configured remotesflatpak remote-delete remotename- remove remote
Application Management
flatpak search appname- search for applicationsflatpak install flathub org.application.Name- install applicationflatpak list- list installed applicationsflatpak update- update all applicationsflatpak uninstall org.application.Name- remove applicationflatpak run org.application.Name- run applicationflatpak info org.application.Name- show application info
System vs User Installation
flatpak install --system flathub org.app.Name- system-wide installflatpak install --user flathub org.app.Name- user-only install
10. Systemd Timers (NEW for RHEL 10)
Systemd timers provide a modern alternative to cron for scheduling tasks.
Timer Unit Structure
Service Unit File
Create /etc/systemd/system/backup.service:
[Unit] Description=Backup Service [Service] Type=oneshot ExecStart=/usr/local/bin/backup.sh
Timer Unit File
Create /etc/systemd/system/backup.timer:
[Unit] Description=Daily Backup Timer [Timer] OnCalendar=daily Persistent=true [Install] WantedBy=timers.target
Timer Management
systemctl daemon-reload- reload after creating unitssystemctl enable --now backup.timer- enable and start timersystemctl list-timers- list all timerssystemctl list-timers --all- list all timers including inactivesystemctl status backup.timer- check timer statussystemctl stop backup.timer- stop timersystemctl disable backup.timer- disable timer
OnCalendar Syntax Examples
| Expression | Description |
|---|---|
daily |
Every day at midnight |
weekly |
Every Monday at midnight |
monthly |
First day of month at midnight |
*-*-* 02:00:00 |
Every day at 2 AM |
Mon *-*-* 09:00:00 |
Every Monday at 9 AM |
*-*-01 00:00:00 |
First day of every month |
Other Timer Options
OnBootSec=5min- run 5 minutes after bootOnUnitActiveSec=1h- run 1 hour after last activationPersistent=true- run missed executions after system comes up
Test calendar expressions:
systemd-analyze calendar "Mon *-*-* 09:00:00"
11. Quick Reference Commands
Essential Commands by Category
| Category | Commands |
|---|---|
| File Operations | ls, cp, mv, rm, find, touch, ln |
| Text Processing | grep, awk, sed, cut, sort, uniq, wc |
| User Management | useradd, usermod, userdel, passwd, chage |
| Group Management | groupadd, groupmod, groupdel, groups |
| Permissions | chmod, chown, chgrp, setfacl, getfacl |
| Network | nmcli, ip, ping, ss, hostnamectl |
| Firewall | firewall-cmd |
| SELinux | getenforce, setenforce, semanage, restorecon, setsebool |
| Storage | lsblk, fdisk, parted, mkfs, mount, umount |
| LVM | pvcreate, vgcreate, lvcreate, lvextend, pvs, vgs, lvs |
| Services | systemctl, journalctl |
| Packages | dnf, flatpak |
| Scheduling | crontab, at, systemctl (for timers) |
| Archiving | tar, gzip, bzip2, xz |
12. Exam Tips and Best Practices
Before the Exam
- Practice with RHEL 10 or CentOS Stream 10
- Complete multiple full mock exams under timed conditions
- Master man page navigation
- Ensure all configurations persist after reboot
During the Exam
- Read each question carefully before starting
- Manage time - allocate 7-10 minutes per task
- Do not spend too long on any single task
- Use man pages effectively
- Test your configurations before moving on
- Verify persistence - use
systemctl enableand check /etc/fstab
Critical Reminders
- Never disable SELinux - learn to troubleshoot it properly
- Always use
--permanentwith firewall-cmd when required - Test /etc/fstab entries with
mount -abefore rebooting - Use
systemctl enable --nowto start and enable services - Verify configurations survive reboot during practice
- Focus on new RHEL 10 topics: Flatpak and systemd timers
Man Page Tips
man -k keyword- search man pages by keywordman 5 filename- view config file documentation/pattern- search within man pagen/N- next/previous search resultq- quit man page
Good Luck! With consistent practice and proper preparation using this cheat sheet, you will be well-equipped to pass the RHCSA EX200 v10 exam. Remember to practice hands-on with real systems, as the exam is entirely performance-based.
Ready to practice? Visit LinuxCert.GURU for interactive labs, mock exams, and structured learning paths designed specifically for RHCSA EX200 v10 certification.