Practical introduction to the terminal

A hands-on course from the first command through files, editors, structured data, search, archives, networks, databases, hosting diagnostics, security and automation. Try a command, read the result, change one thing and verify what changed.

This is not a test and there is no progress score. Read the parts in order or open the one that matches today’s task. Every exercise is designed for a separate lil-playground directory that can be removed after practice.

Part 1

The terminal as a working language

Stop treating the terminal as a black screen full of magic words. It is a short conversation: name an action, add its object, read the result.

Open part →
Part 2

Files and directories without fear

Build a small project tree, inspect it, then practice the difference between copying, moving, renaming, searching and deleting.

Open part →
Part 3

From plain text to the code editor

Learn when to read a file, when to use the lightweight editor, when syntax-aware editing helps, and why tiny verified changes beat blind rewrites.

Open part →
Part 4

Structured configuration: change the value, not the punctuation

INI, JSON, YAML, TOML, XML, conf and properties look different, but the day-to-day task is often the same: locate a logical key, inspect it, change it and validate the result.

Open part →
Part 5

Search, select and transform without opening every file

Turn a project tree into something you can ask questions about. Search by name or content, narrow the scope, preview a mass change, then make the verified transformation repeatable.

Open part →
Part 6

Archives, transfer and media: move a project without losing the method

Use archives as checkpoints, inspect them before extraction, move files through the browser boundary, and build a safe image routine from inspection to repeatable conversion.

Open part →
Part 7

Network work without guessing: diagnose one layer at a time

Separate names, addresses, ports, TLS and HTTP. A network problem becomes much less mysterious when every command answers one specific layer instead of trying random fixes.

Open part →
Part 8

Databases: inspect structured state before you write it

Start with a disposable SQLite database, learn the common database rhythm, make structured writes with JSON, then understand where native SQL and remote credentials enter the picture.

Open part →
Part 9

Hosting is a system: establish the facts before changing anything

Read the host as a living system: Core, PHP, extensions, storage, permissions, logs, environment and mail. Build a small baseline before you try to repair a symptom.

Open part →
Part 10

Secrets, sessions and trust: not every value belongs in a script

Separate ordinary configuration from credentials, session state, integrity checks and encrypted data. Learn what hashing, encryption and permissions do — and what they do not do.

Open part →
Part 11

From a sequence to a workflow: let `.lil` make decisions

Move from simple #lil command lists to the run workflow language with variables, conditions, capture, failure policy, nesting and dry runs.

Open part →
Part 12

Rebuild your environment, not your memory

Treat installed modules, interface packages, setup scripts and update policy as a recipe that can be inspected, recreated and tested on another host.

Open part →
Part 13

Build a personal library: turn useful work into transferable craft

Organize small routines, record changes, use compact utilities, maintain the environment and finish with a capstone workflow that can travel to the next project.

Open part →

All 13 parts are published. The early parts establish command-line and file habits, the middle parts cover data, archives, networks and databases, and the final parts move into hosting diagnostics, trust boundaries, workflows and a reproducible personal environment.