Learn ethical hacking by doing
Let’s Hack Me is a hands-on academy for white-hat hackers. Every lesson explains the real terms first, shows example commands with their output, and lets you practise in a realistic Linux simulator.
Linux 101: the command line and system administration
A complete beginner course: the command line, files, users and permissions, software, the shell, text tools, networking, editors, processes, services and scheduling.
Section 1: Introduction
- 1.1 What is Linux? — Hardware, software, operating system and kernel; where Linux came from (Unix, GNU, Linus Torvalds) and why it runs most of the world's…
- 1.2 Linux distributions — Why there are many Linuxes: distributions, packages, package managers and repositories; the Debian and Red Hat families, LTS releases,…
- 1.3 Kernel, shell and terminal — The difference between the terminal, the shell and the kernel; CLI vs GUI; reading the prompt; what happens between typing a command and…
Section 2: Getting started with the command line
- 2.1 Introduction to the command line — How a command line session works: running a command, reading its output and its error messages, case sensitivity, command history, Tab…
- 2.2 Command line arguments and options — The grammar of a command line: command name, options (short, long, combined, with values) and arguments; hidden files. Lab: ls with -l,…
- 2.3 Getting help on the command line — Manual pages and how to read them, --help, whatis and apropos for finding commands, and shell builtins that have no man page (type and…
- 2.4 Looking at text files: cat, less and more — Text files vs binary files; printing and joining files with cat (-n); reading long files page by page with the pagers less and more.
Section 3: Files and the filesystem
- 3.1 The Linux filesystem hierarchy — One tree that starts at /: what lives in /etc, /home, /root, /var, /tmp, /usr, /bin, /dev, /proc and /boot (the FHS), and how disks,…
- 3.2 Absolute and relative paths — Paths as addresses in the tree: absolute paths from /, relative paths from where you are, the shortcuts . .. ~ and -, and moving with pwd…
- 3.3 Working with files and directories — Create, copy, move, rename and delete: touch, mkdir (-p), cp (-r), mv, rm (-r, -i) and rmdir; why there is no recycle bin on the command…
- 3.4 Spaces in paths and file names — Why a space splits a name into two arguments, and the three ways to keep it together: double quotes, single quotes and the backslash; how…
- 3.5 Wildcards and path expansion — Let the shell fill in file names: * ? and [ ] match existing files (globbing), { } builds lists of words, ~ expands to your home; preview…
- 3.6 More ways to look at text: head, tail, wc, sort and uniq — The classic small tools: the beginning and the end of a file, counting lines and words, sorting alphabetically and numerically, and…
- 3.7 Hard and symbolic links — How a name points to a file (inodes), hard links as a second name for the same data, symbolic links as signposts to a path, link counts,…
- 3.8 Compressing and archiving files — The difference between an archive and compression: tar to pack (c), list (t) and extract (x) many files as one, gzip/gunzip/zcat to…
- 3.9 Searching the filesystem: find and locate — Finding files by name, type, size, age and owner with find, acting on every match with -exec, and the fast database search of locate; plus…
Section 4: Users and groups
- 4.1 Working with users and groups — Why Linux has many users (most of them not people), UID and GID, what each field of /etc/passwd and /etc/group means, groups as shared…
- 4.2 File and directory permissions — Reading -rwxr-x---: owner, group and others, read/write/execute and what they mean for directories; changing them with chmod in symbolic…
- 4.3 Changing users: su and sudo — Why you work as an ordinary user, how sudo runs a single command as root (and logs it), sudo -l, -u and -i, why su to root fails on…
- 4.4 Changing passwords — How Linux stores passwords (hashes and salt in /etc/shadow, not the passwords themselves), changing your own and another user's password…
Section 5: Installing software
- 5.1 Linux package management — How software gets onto a Linux machine: packages, repositories, dependencies, signatures and the package manager that ties them together;…
- 5.2 Package management on Debian and Ubuntu: apt — The everyday apt cycle: update the package index, see and apply upgrades, search, install with dependencies, run the new program, remove…
- 5.3 Package management on Red Hat systems: dnf — The same ideas on Rocky Linux (a Red Hat Enterprise Linux clone): dnf instead of apt, rpm instead of dpkg, .rpm packages, repositories in…
- 5.4 Installing software by hand — When a program isn't in any repository: verify the download's checksum, unpack a release archive into /opt, link it into /usr/local/bin so…
Section 6: The shell
- 6.1 Common command line shells — sh, bash, dash, zsh and fish: where they come from and how they differ; login vs interactive shells; which shell you use, which are…
- 6.2 Environment variables — Shell variables and environment variables: setting, reading, exporting and unsetting them; the important ones ($HOME, $USER, $PATH, $PWD,…
- 6.3 Shell start-up files — Which files bash reads when it starts (/etc/profile, ~/.profile, ~/.bashrc), what belongs in each, aliases, making changes permanent,…
- 6.4 Redirecting input and output — The three standard streams and their numbers, writing output to files with > and >>, reading input with <, separating errors with 2>,…
- 6.5 Pipes — The | operator: connecting stdout of one command to stdin of the next, the Unix philosophy of small tools, filters, building a pipeline…
- 6.6 Command history — How bash remembers commands, the ~/.bash_history file, reusing commands with !!, !N, !string and !$, searching with Ctrl+R, the HISTSIZE…
- 6.7 Command substitution — $(command): putting a command's output inside another command or a variable; quoting the result; the old backtick form; arithmetic with…
Section 7: More utilities
- 7.1 Searching text with grep — grep in depth: searching files and logs for a pattern, counting (-c), line numbers (-n), ignoring case (-i), whole words (-w), inverting…
- 7.2 Transforming text: cut, tr, sed and awk — Four classic filters on a server inventory: cut takes columns out, tr translates or deletes characters, sed edits lines with substitutions…
- 7.3 Networking from the command line — The basic network facts of a Linux machine and the commands that show them: IP address and network interface (ip a, hostname -I), the…
- 7.4 Transferring files: wget, curl, scp and rsync — Downloading from the web with wget and curl and checking the download, logging in to another machine with SSH (host keys, known_hosts,…
- 7.5 Converting text files: line endings and encodings — Why text files from Windows misbehave on Linux: CRLF versus LF line endings, seeing invisible characters with cat -A and file, the 'bad…
Section 8: Text editors
- 8.1 Editing files with nano — Why you need a terminal text editor, the parts of the nano screen, creating and saving a file (^O), leaving (^X), cutting and pasting…
- 8.2 Vim basics: modes, saving and quitting — What vi and Vim are and why they're on every server, the idea of modes (normal, insert, command-line), typing text with i and Esc, saving…
- 8.3 Working efficiently in Vim — Vim's grammar of operators and motions, counts (3dd, 5j), jumping (gg, G, :N, line numbers), searching with / and n, copying and pasting…
Section 9: Process management
- 9.1 Processes and ps — What a process is and how it differs from a program, process IDs (PID) and parent processes (PPID), PID 1 (systemd), listing processes…
- 9.2 Monitoring the system: top, uptime and free — Load average and what it means relative to the number of CPUs, free memory versus available memory, and top: its summary lines, its…
- 9.3 Signals: kill, killall and pkill — What a signal is, the important ones (SIGTERM, SIGKILL, SIGINT, SIGHUP, SIGSTOP, SIGCONT) and their numbers, ending a process politely…
- 9.4 Foreground and background jobs — Foreground and background, starting a job with &, listing jobs, stopping the foreground program with Ctrl+C, pausing it with Ctrl+Z,…
- 9.5 Services with systemd and journalctl — What a service is and how systemd manages it: units and unit files, systemctl status and how to read it, start, stop, restart and reload,…
- 9.6 Scheduling tasks with cron — The cron daemon and crontab files, the five time fields (minute, hour, day of month, month, day of week) with *, lists, ranges and steps,…
Türkçe