# tinkerpad13 Quick Reference — Day-to-Day Admin and General Linux Basics My own enthusiast-level quick reference for my personal device (openSUSE Tumbleweed) day-to-day administration. Covers shell navigation, zypper package management, systemd services, users/permissions, storage and Btrfs/Snapper, networking, logs, troubleshooting, and system updates. Most commands are general Linux, not SUSE-specific; sections calling out SUSE-specific behavior are tagged explicitly, and a few notes below are specific to how *this* system is actually configured, not a general SUSE default. [WARNING] This is a quick reference for common day-to-day tasks, not a substitute for the official documentation for the exact SUSE release in use. Commands, defaults, and package names shift between versions — check documentation.suse.com or `man ` when something here doesn't match what's on screen. --- ## SECTION: Shell and navigation To show the current directory: ```sh pwd ``` To list files including sizes and hidden files: ```sh ls -lah ``` To change directory: ```sh cd /path/to/directory ``` `cd ..` moves up one directory level. To copy a file or folder (recursive for folders): ```sh cp -r source destination ``` To move or rename a file or folder: ```sh mv source destination ``` To delete a folder and its contents: ```sh rm -r directory/ ``` [WARNING] `rm -r` has no undo and no trash — deleted files and folders are not recoverable this way. To search for files by name: ```sh find / -name "pattern*" ``` To search inside files for text: ```sh grep -r "search text" directory/ ``` To page through a file's contents (press `q` to quit): ```sh less filename ``` To read the manual page for a command: ```sh man command ``` To search past commands: ```sh history | grep search-term ``` [NOTE] Tab-completion works everywhere in the shell — press Tab instead of typing full paths or command names. --- ## SECTION: Package management with zypper zypper is SUSE's command-line package manager, used across Leap, SLES, and Tumbleweed. To search for a package: ```sh zypper se search-term ``` To install a package: ```sh zypper in package-name ``` To remove a package: ```sh zypper rm package-name ``` To show details about a package: ```sh zypper info package-name ``` To check whether a package is installed and which version: ```sh zypper if package-name ``` To list configured repositories: ```sh zypper lr ``` To refresh repository metadata: ```sh zypper ref ``` To update installed packages on Leap or SLES: ```sh zypper up ``` To fully sync packages on Tumbleweed: ```sh zypper dup ``` [WARNING] On Tumbleweed, always use `zypper dup`, never `zypper up`. Mixing the two commands can break dependency resolution on a rolling release. To check whether a reboot is actually required after updates: ```sh zypper ps -s ``` --- ## SECTION: Users, groups, and permissions To show the current user: ```sh whoami ``` To show which groups the current user belongs to: ```sh groups ``` To run a single command as root: ```sh sudo command ``` To switch to another user's shell: ```sh su - username ``` To add a new user with a home directory: ```sh sudo useradd -m username ``` To add an existing user to a group: ```sh sudo usermod -aG groupname username ``` To set file permissions (owner/group/other): ```sh chmod 750 filename ``` To change file ownership: ```sh chown user:group filename ``` To change your own password: ```sh passwd ``` [WARNING] If sudo ever asks for root's password on this system, that means elevation is not possible — root is locked (confirmed via `passwd -l root`), so there is no password that will authenticate against it. This is not a "try harder" situation — retyping it more carefully won't help, there is no correct answer to give it. It means the intended sudo configuration (own-password authentication via `sudo-policy-wheel-auth-self` + `wheel` membership) is not in effect, and the system needs to be fixed at the console or reinstalled, not worked around. Ask me how I know. --- ## SECTION: Services with systemd To check whether a service is running, with recent log lines: ```sh systemctl status service-name ``` To start a service immediately: ```sh sudo systemctl start service-name ``` To stop a service immediately: ```sh sudo systemctl stop service-name ``` To restart a service (stop then start): ```sh sudo systemctl restart service-name ``` To make a service start automatically at boot: ```sh sudo systemctl enable service-name ``` To prevent a service from starting at boot: ```sh sudo systemctl disable service-name ``` To list every service that failed to start: ```sh systemctl --failed ``` To list all known services: ```sh systemctl list-units --type=service ``` [NOTE] `enable` and `start` are separate actions — enabling a service does not start it immediately, and starting a service does not make it survive a reboot. To do both at once: ```sh sudo systemctl enable --now service-name ``` --- ## SECTION: Storage and disks To show free space per mounted filesystem: ```sh df -h ``` To show the total size of a folder: ```sh du -sh directory/ ``` To list block devices and partitions: ```sh lsblk ``` To show what's currently mounted and where: ```sh mount ``` To mount a device manually: ```sh sudo mount /dev/device-name /mount-point ``` To check a drive's health quickly: ```sh sudo smartctl -H /dev/device-name ``` --- ## SECTION: Btrfs and Snapper — SUSE default root filesystem SUSE uses Btrfs as the default root filesystem, with Snapper managing automatic snapshots. To list available snapshots: ```sh snapper list ``` To roll back to a specific snapshot number: ```sh sudo snapper rollback snapshot-number ``` To show real Btrfs space usage: ```sh btrfs filesystem usage / ``` [NOTE] Snapper automatically takes snapshots before and after package changes — a broken update is usually a rollback away from being fixed, without needing to reinstall anything. --- ## SECTION: Networking To show interfaces and IP addresses: ```sh ip a ``` To show the routing table: ```sh ip r ``` To show what's listening on which port: ```sh ss -tlnp ``` To test basic reachability to a host: ```sh ping hostname-or-ip ``` To show a NetworkManager device overview: ```sh nmcli device status ``` To show current firewall rules for the default zone: ```sh sudo firewall-cmd --list-all ``` To apply firewall configuration changes: ```sh sudo firewall-cmd --reload ``` [WARNING] Firewall changes made with `firewall-cmd` alone are temporary and do not survive a reboot. Add `--permanent` to the change itself, then run `--reload` to apply it. --- ## SECTION: Logs and troubleshooting To show recent logs with explanations, newest entries last: ```sh journalctl -xe ``` To show logs for one specific service: ```sh journalctl -u service-name ``` To show logs since the last boot: ```sh journalctl -b ``` To show logs within a specific time window: ```sh journalctl --since "1 hour ago" ``` To show kernel and hardware messages with timestamps: ```sh dmesg -T | tail -50 ``` To generate a full diagnostic bundle for SUSE support: ```sh sudo supportconfig ``` [NOTE] When something breaks unexpectedly, check `systemctl --failed` first to find what's actually broken, then run `journalctl -u -xe` to see the actual error. --- ## SECTION: Processes and resources To show a live view of processes and resource usage (press `q` to quit): ```sh top ``` A friendlier alternative, if installed: ```sh htop ``` To find a specific running process: ```sh ps aux | grep process-name ``` To ask a process to stop: ```sh kill process-id ``` To force-stop a process as a last resort: ```sh kill -9 process-id ``` To show memory usage in human-readable form: ```sh free -h ``` To show how long since the last reboot and the current load average: ```sh uptime ``` --- ## SECTION: Files you'll actually open | File | Type | Purpose | |---|---|---| | `/etc/hostname` | `path` | The system's hostname | | `/etc/fstab` | `path` | What mounts automatically at boot | | `/etc/ssh/sshd_config` | `path` | SSH server settings | | `/etc/sudoers.d/` | `path` | Sudo permission drop-in files | | `/var/log/` | `path` | Traditional log location — most logging now lives in `journalctl` instead | | `~/.bashrc` | `path` | The current user's own shell startup customizations | [WARNING] Never hand-edit `/etc/sudoers` directly — always use `visudo` or a file in `/etc/sudoers.d/`. A syntax error in sudoers can lock out sudo access entirely. --- ## SECTION: Updating the system To refresh and update on Leap or SLES: ```sh zypper ref && zypper up ``` To refresh and fully sync on Tumbleweed: ```sh zypper ref && zypper dup ``` To list available patches on Leap or SLES: ```sh zypper lp ``` To apply patches specifically: ```sh zypper patch ``` To confirm whether a reboot is required after updating: ```sh zypper ps -s ``` [NOTE] A snapshot is taken automatically before most updates via Snapper — if an update goes wrong, rollback (Section: Btrfs and Snapper) is usually available without reinstalling anything. --- ## SECTION: Quick glossary | Term | Type | Meaning | |---|---|---| | `YaST` | `string` | SUSE's central configuration tool, available as TUI or GUI | | `zypper` | `string` | SUSE's command-line package manager | | `Snapper` | `string` | Automatic Btrfs snapshot manager | | `AutoYaST` | `string` | SUSE's unattended/scripted install system | | `targetpw` | `string` | SUSE's default sudo behavior — asks for root's password, not the invoking user's own, unless changed | | `wheel` | `string` | The group typically granted sudo access | --- ## SECTION: When you're stuck 1. Run `systemctl --failed` — confirm what's actually broken. 2. Run `journalctl -u -xe` — see what the actual error says. 3. Run `snapper list` — check whether a rollback is the fastest fix. 4. Check documentation.suse.com for the exact release in use before assuming a fix found elsewhere applies. 5. If still stuck, run `sudo supportconfig` and hand the resulting bundle to whoever supports the system. [WARNING] This reference covers the commands used most days. It is not a substitute for the official documentation for the specific SUSE release in use — commands, defaults, and package names shift between versions. --- **Source:** CE OS — tinkerpad13 personal quick reference, developed 2026-07-26 **Source-type:** `ce-authored` **Licence:** John A. Hoeven with the ethical assistance of Claude AI — personal working document **Verified-on:** tinkerpad13 (openSUSE Tumbleweed) — sudo/root behavior confirmed on this system directly; general commands are standard SUSE-family behavior **Session:** 2026-07-26