Daily Weekly Monthly

Daily Shaarli

May 4, 2025

System information, root recovery, environment variables, shortcuts

Finding System Information

  • cat /etc/redhat-release → Red Hat version
  • uname -a → Linux hostname, kernel, architecture
  • dmidecode → hardware, BIOS, system info
  • arch → x86_64 or i386/32-bit

Common Keyboard Shortcuts

  • Ctrl + U → erase command line
  • Ctrl + C → stop/kill current command
  • Ctrl + Z → suspend command
  • Ctrl + D → exit interactive session

Record Terminal Session

  • script mylog.log → record shell session

    • Use exit to stop recording

Root Password Recovery

  1. Reboot → enter GRUB menu
  2. Press e → edit boot params
  3. Add rd.break at end of kernel line
  4. Ctrl + X to boot
  5. Mount root with chroot /sysroot
  6. passwd root → change password
  7. touch /.autorelabel → SELinux relabeling on reboot

View Environment Variables

  • printenv, echo $PATH, echo $SHELL

Set Environment Variables

  • Temporary: export TEST=1, echo $TEST
  • Permanent:

    vi ~/.bashrc
    TEST=123
    export TEST

Global → vi /etc/profile or /etc/bashrc

SED: Stream Editor for Text Manipulation
  • Basic Replace Syntax:

    • sed -i 's/KENNY/LENNY/g' filename

    • Substitute all occurrences of "KENNY" with "LENNY"

  • Delete Line Containing String:

    • sed -i '/SEINFELD/d' filename
  • Delete Empty Lines:

    • sed -i '/^$/d' filename
  • Delete First Line:

    • sed '1d' filename
  • sed '1,2d' filename → delete the first two lines

  • sed 's/\t/ /g' filename → replace tabs with spaces

  • sed -n '12,18p' filename → print only lines 12 to 18

  • sed '12,18d' filename → delete lines 12 to 18

  • sed G filename → insert an empty line after every line

  • sed '8!s/seinfeld/S1/' filename → replace "seinfeld" with "S1" on every line except line 8

Crontab / at

Crontab Basics

  • crontab -e → edit crontab
  • crontab -l → list crontab entries
  • crontab -r → remove crontab entries
  • systemctl status crond → check crond service status

AT: One-time Scheduled Tasks

  • Used to schedule jobs only once.

Scheduling Examples:

  • at HH:MM PM → schedule a job interactively
  • at 11:23AM 12/24/25

    • Enter job (e.g., echo "test") and press Ctrl + D to finish
  • at 2:45PM 01/30/25
  • at 4PM + 4 days
  • at now + 5 hours
  • at 8:00AM Sun
  • at 10:00AM next month

Managing AT Jobs

  • atq → list the scheduled at jobs
  • atrm # → remove a specific at job (use number from atq)
  • systemctl status atd → check atd daemon status
Disk usage, logging, shutdown, hostname

Disk and Memory Info

  • df → disk partition info
  • df -h → human-readable format
  • du → size of file/directory
  • free → memory info
  • cat /proc/cpuinfo → CPU info
  • cat /proc/meminfo → memory info

System Logs & Diagnostics

  • dmesg → check kernel ring buffer logs
  • iostat → check disk I/O stats
  • ip route | column -t → check routing table
  • ss → view open ports/sockets

Log Directory Structure

  • Logs in /var/log/

    • boot → startup records
    • chronyd → NTP info
    • cron → cron jobs
    • maillog → mail daemon
    • secure → login/logout tracking
    • messages → general trace logs
    • httpd → web server errors

Log Monitoring

  • tail -f filename → follow log file in real time

System Shutdown & Boot Control

  • shutdown → graceful shutdown
  • init 0-6 → runlevels (0=off, 3=multi-user, 6=reboot)
  • reboot → reboot system
  • halt → force shutdown immediately

Hostname Management

  • cat /etc/hostname → current hostname
  • hostnamectl set-hostname myhostname → change hostname
User management
  • Essential Commands:

    • useradd, groupadd, userdel, groupdel, usermod
    • Modify 3 files: /etc/passwd, /etc/group, /etc/shadow

Create User with Custom Options

useradd -G mygroup -s /bin/bash \
  -c "User Description" -m \
  -d "/home/myuser" myuser

Other Useful User Commands

  • useradd myuser → create user
  • id myuser → check if user exists
  • groupadd → create group
  • cat /etc/group → check group
  • userdel -r myuser → delete user and home directory
  • groupdel mygroup → delete group
  • usermod -G mygroup myuser → change user's group
  • chgrp -R mygroup myuser → change group ownership recursively
  • passwd myuser → set or update user's password

Password Aging with chage

  • chage → manage password aging

    • -m → minimum days
    • -M → maximum days
    • -d → last password change
    • -I → inactive days
    • -E → expiration date
    • -W → warning days
  • Example:

    • chage -M 5 -M 90 -W 10 -I 10 username

Edit Password Policies

  • File: /etc/login.defs

    • PASS_MAX_DAYS 9999
    • PASS_MIN_DAYS 0
    • PASS_MIN_LEN 5
    • PASS_WARN_AGE 7

Switch User Privileges

  • visudo → edit sudo permissions config (/etc/sudoers)

    • Add user to wheel group for sudo access
  • usermod -aG wheel myuser → grant sudo rights

User Info and Monitoring Commands

  • who → see logged in users
  • last → list last login records
  • w → who is logged in with more details
  • finger → show user details
  • id → show UID, GID and groups
  • id myuser → check user info

Send Messages to Users

  • wall → broadcast message to all users

    • Type message, then Ctrl + D to send
  • write myuser → send message to specific user

    • Type message, then Ctrl + D to send
Systemctl, process management

Basic System Info Commands

  • uptime → time, uptime, users, load average
  • hostname → current hostname
  • ip hostname → show IP & hostname
  • uname -a → current OS and kernel info
  • which command → path to a command
  • cal → calendar for current month/year

    • cal 2025 → full year
  • bc → basic calculator

System Monitoring

  • systemctl → interact with systemd system manager
  • ps → view current processes
  • top → dynamic view of process usage

Systemctl Usage

  • systemctl start|stop|status servicename.service → manage service state
  • systemctl enable servicename.service → start service at boot
  • systemctl restart|reload servicename → restart or reload service
  • systemctl list-units --all → list all units
  • To add a service:

    • Create a unit file in /etc/systemd/system/servicename.service

Process Management

  • Start a process in the background:

    • Ctrl + Z then jobs → suspend and background
    • bg → continue in background
    • fg → bring back to foreground
  • Run process detached from terminal:

    • nohup process & → keep running after logout
    • nohup process > /dev/null 2>&1 & → suppress all logs/output

Killing and Prioritizing

  • pkill name → kill process by name
  • nice → start process with a priority (range -20 to 19)

    • lower = higher priority
    • nice -20 top

Jobs Monitoring

  • jobs → list background/foreground job states
Vi Editor

Vi Editor Commands

  • i → insert mode
  • I → insert at line start
  • ESC → escape to command mode
  • R → replace mode
  • x → delete character
  • dd → delete line
  • yy → copy line
  • p → paste
  • v → visual mode
  • o → open new line below and insert
  • O → open new line above and insert
  • a → append after cursor
  • A → append at end of line
  • :q! → quit without saving
  • :wq or ZZ → save and quit