Skip to content

Arch Linux System Configuration

Mattscreative edited this page Nov 19, 2025 · 3 revisions

⚙️ Arch Linux System Configuration Guide

Complete beginner-friendly guide to configuring Arch Linux system settings, including systemd, services, users, and system administration.


📋 Table of Contents

  1. Systemd Basics
  2. Service Management
  3. User Management
  4. System Information
  5. Time and Locale
  6. Hostname Configuration
  7. System Maintenance

🎯 Systemd Basics

What is Systemd?

systemd is the init system and service manager.

Functions:

  • Manages services
  • Handles boot process
  • Controls system resources
  • Manages users and sessions

Systemd Components

Main components:

  • systemd: Core system manager
  • systemctl: Service control
  • journalctl: Log viewing
  • systemd-analyze: Boot analysis

🔧 Service Management

Enable Service

Start service at boot:

# Enable service
sudo systemctl enable service-name

# Enable and start
sudo systemctl enable --now service-name

Example:

# Enable NetworkManager
sudo systemctl enable NetworkManager

# Enable and start
sudo systemctl enable --now NetworkManager

Start/Stop Service

Control services:

# Start service
sudo systemctl start service-name

# Stop service
sudo systemctl stop service-name

# Restart service
sudo systemctl restart service-name

# Reload service (if supported)
sudo systemctl reload service-name

Service Status

Check service status:

# Check status
systemctl status service-name

# Check if running
systemctl is-active service-name

# Check if enabled
systemctl is-enabled service-name

Example output:

● NetworkManager.service - Network Manager
     Loaded: loaded (/usr/lib/systemd/system/NetworkManager.service; enabled; preset: disabled)
     Active: active (running) since Mon 2024-01-15 10:00:00 UTC; 5min ago

List Services

List all services:

# List all services
systemctl list-units --type=service

# List running services
systemctl list-units --type=service --state=running

# List enabled services
systemctl list-unit-files --type=service --state=enabled

Disable Service

Stop service from starting:

# Disable service
sudo systemctl disable service-name

# Disable and stop
sudo systemctl disable --now service-name

👤 User Management

Create User

Add new user:

# Create user
sudo useradd -m -G wheel username

# Set password
sudo passwd username

Explanation:

  • -m: Create home directory
  • -G wheel: Add to wheel group (sudo access)

User Groups

Common groups:

  • wheel: Sudo access
  • audio: Audio device access
  • video: Video device access
  • optical: Optical drive access
  • storage: Storage device access

Add user to group:

# Add to group
sudo usermod -aG group-name username

# Example: Add to audio group
sudo usermod -aG audio username

Log out and back in for groups to take effect.

Delete User

Remove user:

# Remove user (keep home directory)
sudo userdel username

# Remove user and home directory
sudo userdel -r username

Sudo Configuration

Configure sudo:

# Edit sudoers
sudo visudo

Ensure wheel group has sudo:

%wheel ALL=(ALL) ALL

Test sudo:

# Test sudo
sudo whoami
# Should output: root

📊 System Information

System Info

Get system information:

# Kernel version
uname -r

# System information
uname -a

# Hostname
hostname

# Uptime
uptime

Hardware Info

Check hardware:

# CPU info
lscpu

# Memory info
free -h

# Disk info
df -h

# PCI devices
lspci

# USB devices
lsusb

Install Info Tools

Useful tools:

# Install neofetch
sudo pacman -S neofetch

# Display system info
neofetch

# Install inxi
sudo pacman -S inxi

# Detailed system info
inxi -F

⏰ Time and Locale

Set Timezone

Configure timezone:

# List timezones
timedatectl list-timezones

# Set timezone
sudo timedatectl set-timezone America/New_York

# Check timezone
timedatectl

Set System Time

Configure time:

# Enable NTP
sudo timedatectl set-ntp true

# Set time manually (if needed)
sudo timedatectl set-time "2024-01-15 10:00:00"

# Check time
timedatectl status

Configure Locale

Set locale:

# Edit locale
sudo vim /etc/locale.gen

Uncomment desired locale:

en_US.UTF-8 UTF-8

Generate locale:

# Generate locale
sudo locale-gen

# Set locale
echo "LANG=en_US.UTF-8" | sudo tee /etc/locale.conf

Set for user:

# Add to ~/.bashrc or ~/.zshrc
export LANG=en_US.UTF-8

🏷️ Hostname Configuration

Set Hostname

Configure hostname:

# Set hostname
sudo hostnamectl set-hostname myhostname

# Check hostname
hostnamectl

# Or
hostname

Edit Hosts File

Configure hosts file:

# Edit hosts
sudo vim /etc/hosts

Add entries:

127.0.0.1   localhost
::1         localhost
127.0.1.1   myhostname.localdomain myhostname

🔧 System Maintenance

System Updates

Update system:

# Update package database
sudo pacman -Sy

# Update all packages
sudo pacman -Syu

# Check for updates
pacman -Qu

Clean Package Cache

Clean old packages:

# Remove old packages
sudo pacman -Sc

# Remove all cached packages
sudo pacman -Scc

Remove Orphan Packages

Clean unused packages:

# List orphans
pacman -Qdt

# Remove orphans
sudo pacman -Rns $(pacman -Qdtq)

System Logs

View system logs:

# View journal logs
journalctl

# View recent logs
journalctl -n 50

# Follow logs
journalctl -f

# View boot logs
journalctl -b

Boot Time

Analyze boot time:

# Boot time analysis
systemd-analyze

# Detailed boot time
systemd-analyze blame

# Critical chain
systemd-analyze critical-chain

📝 Summary

This guide covered:

  1. Systemd basics - Init system
  2. Service management - Enable/disable services
  3. User management - Create/manage users
  4. System information - Hardware and system info
  5. Time and locale - Timezone and language
  6. Hostname - System name
  7. Maintenance - System upkeep

Key Takeaways:

  • systemd manages services
  • Use systemctl for services
  • Configure users and groups
  • Set timezone and locale
  • Regular maintenance keeps system healthy

🔗 Next Steps


This guide is based on the ArchWiki. For the most up-to-date information, always refer to the official ArchWiki.

Clone this wiki locally