How To Start Learning Linux

How To Start Learning Linux

Reading time1 min
#Linux#OpenSource#Tech#CommandLine#Shell

Mastering Linux from the Command Line: The Essential First Step for New Learners

You’ll eventually need the terminal. Syslog flooded? Locked out of a service? SSH’d into a remote VPS? The GUI is often irrelevant. Proficiency at the shell is not just a legacy skill—it’s the primary interface for real diagnostics, automation, and system management on Linux.

A brand new install of Ubuntu 22.04 LTS or CentOS Stream 9 will show you the same: launch a terminal (typically Ctrl+Alt+T), and you’re dropped at a prompt like:

devops@laptop:~$

This prompt reveals: username, hostname, current directory. Minimal noise.

Why Bother With the Command Line?

Graphical tools simplify basic workflows—file browsing, software install, perhaps a few settings. Their abstraction, however, hides the complexity and limits control:

  • Complex debugging (journalctl -xe or dmesg for kernel logs).
  • Batch operations (mass file moves, scripted backups).
  • System resource checks (top, htop, free -m, df -h).
  • Non-interactive (cron jobs, headless servers, pipelines).
  • Universality—skills transfer between Debian, RHEL, Alpine, Arch, embedded environments.

Note: Command syntax and available options may differ between distributions.

Essential Command Line Operations

Most Linux work starts here. These commands establish orientation and control:

TaskCommand ExampleRemarks
Check locationpwdShows full path—useful in scripts.
List contentsls -lh-l long form, -h human-readable sizes.
Change dircd /var/logAbsolute/relative paths both valid.
Create filetouch README.mdNo content added; just an inode.
View fileless /etc/fstabPaged, reversible navigation.
Create foldermkdir -p backup/2024-p ensures parent dirs are created.
Move/renamemv nginx.conf nginx.oldUsed for both renaming and moving.
Copy filecp -av src/ dst/-a archive, -v verbose, preserves attrs.
Removerm -rf temp/-r: recursive, -f: force – irreversible.

Caution: rm -rf is unforgiving—no trash bin, no “undo.” Always double-check targets, especially under /.

Practical Example: Basic Project Setup

Provisioning a workspace or conducting an infra POC typically involves directory and file scaffolding:

mkdir -p ~/prototest/scripts
cd ~/prototest
echo "# Project Notes" > notes.md
touch .env config.yaml
mv notes.md scripts/
ls -a scripts/

You now have a hierarchy suitable for source, configs, and scripts. The hidden .env is a pattern used throughout real deployments for environment variables.

Digging Deeper: Viewing System State

When troubleshooting or resource planning, raw file inspection and system info become essential:

  • Kernel & OS data: uname -a
  • IPs/DNS/gateway: ip a, cat /etc/resolv.conf
  • Disk usage: df -hT, du -sh *
  • Memory: free -m
  • Recently updated packages (Debian/Ubuntu): grep " upgrade " /var/log/dpkg.log | tail -5
  • Service status: systemctl status sshd

Sample output (unexpectedly full disk):

$ df -hT
Filesystem     Type   Size  Used Avail Use% Mounted on
/dev/vda1      ext4    48G   46G  204M 100% /

Gotcha: At 100% disk, some processes may refuse writes, and logins can hang. Always monitor root (/) partition size.

Learning Effectively: Real Usage and Shortcuts

  • Manuals: man rsync, man find—the depth is often overlooked; recipes are included by maintainers.
  • Tab completion: Bash/zsh expand files and commands—doubles typing speed, prevents typos.
  • History: Arrow up/down cycles previous commands; history | grep ssh finds past invocations.
  • Kill background jobs: Ctrl+C interrupts, Ctrl+Z suspends, jobs lists jobs, kill %1 stops them.
  • Quick command substitution: $(...) for nesting, e.g., cat $(find . -name "*.log") streams all .log files.

Non-obvious tip: Use screen or tmux

When running updates or long operations over SSH, terminal multiplexers (tmux, screen) prevent job loss during disconnects. Example:

tmux new -s upgrade
sudo apt update && sudo apt upgrade -y
# Detach with Ctrl+B then D, later re-attach with 'tmux attach -t upgrade'

This mitigates remote interruption risk.

Side Notes and Trade-offs

  • Bash is the default shell in most distributions, but many ops teams prefer zsh or fish for their richer autocompletion and prompts.
  • Some commands (ls, rm) alias differently on various distros (rm -i, etc). Always check .bashrc and /etc/profile.

Conclusion—in the Middle

Command line skills are foundational. GUIs come and go; scripts, CI/CD tasks, and remote management all depend on solid terminal proficiency. Automation, reliability, and deep system understanding are all built at the prompt.


Deeper questions? Real-world problems? Post logs, error traces, or examples. Learning Linux is iterative—each misstep (even the infamous rm -rf /) is a lesson embedded for next time.