llms.txt
# WebTerm
> Learn Linux terminal commands, the Vim editor, and Git by typing them in your browser
## About
WebTerm is a free, browser-based platform for practising Linux terminal commands, Vim, and Git through hands-on interactive tutorials. Every command runs against a simulated file system inside the browser tab, so nothing touches the real machine. No installation and no account are required.
- Website: https://webterm.app
- Interactive tutorials: 15 (156 missions in total)
- Simulated commands: 130+ commands, including a working vim editor and Git
- Languages: English, Japanese, French, German, Spanish, Portuguese, Dutch, Arabic
## Tutorials (English)
### Terminal
- [Getting Started](https://webterm.app/en/tutorials/terminal-basics): Learn essential terminal input methods, cursor navigation with arrow keys and Emacs shortcuts, command history, and tab completion. The perfect first step for complete beginners to the command line. (7 missions)
- [Beginner](https://webterm.app/en/tutorials/beginner): Master fundamental Linux commands: pwd, ls, cd, mkdir, touch, and rm. Practice navigating directories, creating files and folders, and managing your file system in a safe browser-based terminal. (9 missions)
- [Fundamentals](https://webterm.app/en/tutorials/basic): Learn essential Linux file operations: cat, ls -l, cp, mv, mkdir -p, echo, grep, and find. Practice viewing file contents, copying, moving, and searching files interactively. (14 missions)
- [Advanced](https://webterm.app/en/tutorials/advanced): Master advanced Linux commands: head, tail, less, wc, sort, tree, chmod, and stat. Learn file permissions, text processing, and directory visualization for real-world scenarios. (9 missions)
### Vim
- [Vim Basics](https://webterm.app/en/tutorials/vim-basics): Stuck in Vim? Learn how to exit Vim (:q, :wq, :q!, ZZ), enter insert mode, move with hjkl, and search with / - all in an interactive browser terminal. No setup required. (14 missions)
- [Vim Editing](https://webterm.app/en/tutorials/vim-editing): Practice real Vim editing: delete with x and dd, undo with u, copy and paste with yy and p, operators like dw and ciw, and global substitution with :%s. Interactive browser terminal, no setup. (13 missions)
### Git
- [What is Git?](https://webterm.app/en/tutorials/git-what): Understand what Git is, why version control matters, and learn core concepts like repositories, commits, and branches. A conceptual introduction to Git for absolute beginners. (6 missions)
- [Git Basics](https://webterm.app/en/tutorials/git-intro): Practice the essential Git workflow: git init, git status, git add, git commit, and git log. Build your first Git repository step by step in an interactive browser terminal. (9 missions)
- [Git Fundamentals](https://webterm.app/en/tutorials/git-basic): Master everyday Git operations: branching with git checkout, viewing changes with git diff, managing staging with git reset, and undoing changes with git restore. Hands-on practice with 19 missions. (19 missions)
### Git Troubleshooting
- [Undo a Commit](https://webterm.app/en/tutorials/git-trouble-undo-commit): Accidentally committed the wrong files? Learn how to safely undo your last Git commit with git reset --soft. Practice step by step in an interactive browser terminal. (8 missions)
- [Resolve Merge Conflicts](https://webterm.app/en/tutorials/git-trouble-conflict): Merge conflicts are inevitable in team development. Learn to read conflict markers, resolve conflicts, and complete the merge - all in an interactive browser terminal. (12 missions)
- [Committed to Wrong Branch](https://webterm.app/en/tutorials/git-trouble-wrong-branch): Accidentally committed to main instead of a feature branch? Learn to rescue your commits using git branch and git reset in an interactive browser terminal. (8 missions)
- [Recover Lost Commits](https://webterm.app/en/tutorials/git-trouble-lost-commit): Accidentally ran git reset --hard and lost your commits? Learn to find and restore them using git reflog in an interactive browser terminal. (9 missions)
- [Emergency Branch Switch](https://webterm.app/en/tutorials/git-trouble-stash): Need to switch branches but have uncommitted changes? Learn to use git stash to temporarily save your work and restore it later. (10 missions)
- [Remove Committed Secrets](https://webterm.app/en/tutorials/git-trouble-secret): Accidentally committed API keys or passwords? Learn to remove sensitive files from Git tracking using git rm --cached and .gitignore. (9 missions)
## Command reference (English)
- [Linux command list](https://webterm.app/en/commands): Every Linux command the WebTerm terminal implements. Nothing to install, and you can run any of them straight away without touching your real files.
- [ls command: list files and directories](https://webterm.app/en/commands/ls): ls prints what is inside a directory. Learn what -l and -a do, and how to read every column of ls -l, by typing the commands in a real terminal in your browser.
- [pwd command: show the directory you are in](https://webterm.app/en/commands/pwd): pwd prints where you currently are, as an absolute path. Learn how to check your bearings after moving around with cd, by running the commands in a real terminal in your browser.
- [cd command: move between directories](https://webterm.app/en/commands/cd): cd changes the directory you are working in. Learn what .. , - and a bare cd each do, by running the commands in a real terminal in your browser.
- [mkdir command: create directories](https://webterm.app/en/commands/mkdir): mkdir creates directories. Learn how -p builds a whole path at once and how to read a File exists error, by running the commands in a real terminal in your browser.
- [touch command: create empty files and update timestamps](https://webterm.app/en/commands/touch): touch creates an empty file, or updates the timestamp of one that already exists. Learn when each behaviour applies, by running the commands in a real terminal in your browser.
- [rm command: delete files and directories](https://webterm.app/en/commands/rm): rm deletes files. There is no recycle bin and no undo. Learn what -r and -f really do, and why the combination is feared, in a browser terminal where nothing can go wrong.
- [cat command: print the contents of a file](https://webterm.app/en/commands/cat): cat prints a file straight to the screen. Learn how to add line numbers, join files together, and why it is the wrong tool for long files, by running the commands in a real terminal in your browser.
- [cp command: copy files and directories](https://webterm.app/en/commands/cp): cp copies a file and leaves the original in place. Learn how to copy under a new name, copy into a directory, duplicate a whole directory with -r, and avoid the silent overwrite, by running the commands in a real terminal in your browser.
- [mv command: move files and rename them](https://webterm.app/en/commands/mv): mv moves a file, and renaming is the same operation seen from a different angle. Learn how moving within one directory becomes a rename, and how to avoid the silent overwrite, by running the commands in a real terminal in your browser.
- [grep command: find text inside files](https://webterm.app/en/commands/grep): grep prints the lines of a file that match what you are looking for. Learn -n for line numbers, -i to ignore case and -r to search a whole directory, by running the commands in a real terminal in your browser.
- [find command: locate files by name or type](https://webterm.app/en/commands/find): find walks a directory tree and lists what matches. Learn -name to filter by name, -type to separate files from directories and -maxdepth to stop it going deeper, by running the commands in a real terminal in your browser.
- [less command: page through a long file](https://webterm.app/en/commands/less): less shows a long file one screen at a time. Learn the movement keys, searching with /, and how to get out with q, by running the commands in a real terminal in your browser.
- [head command: show the beginning of a file](https://webterm.app/en/commands/head): head prints just the start of a file. Learn the default of ten lines, how to set the count with -n, and what happens with several files, by running the commands in a real terminal in your browser.
- [tail command: show the end of a file](https://webterm.app/en/commands/tail): tail prints just the end of a file. Learn the default of ten lines, how to set the count with -n, and how -f follows a log as it is written, by running the commands in a real terminal in your browser.
- [chmod command: change file permissions](https://webterm.app/en/commands/chmod): chmod changes who may read, write and run a file. Learn how to read rwx, what numbers like 755 and 644 mean, and when to use +x instead, by running the commands in a real terminal in your browser.
- [man command: read a command's manual](https://webterm.app/en/commands/man): man opens the official manual for a command. Learn which sections to read first, how to search for the option you need, and how to get out with q, by running the commands in a real terminal in your browser.
- [echo command: print text and variable values](https://webterm.app/en/commands/echo): echo prints whatever you hand it. Learn how to check what is inside an environment variable, when to use single or double quotes, and how `>` writes the text to a file, by running the commands in a real terminal in your browser.
- [wc command: count lines, words and bytes](https://webterm.app/en/commands/wc): wc counts the lines, words and bytes in a file. Learn how to count log lines, how to count what `grep` found, and how to get the number on its own, by running the commands in a real terminal in your browser.
- [sort command: put lines in order](https://webterm.app/en/commands/sort): sort reorders the lines of a file. Learn when you need `-n` for numbers, how `-u` drops duplicates, and how `-t` and `-k` pick a column in a CSV, by running the commands in a real terminal in your browser.
- [tree command: see the directory structure as a diagram](https://webterm.app/en/commands/tree): tree draws the contents of a directory as a branching diagram. Learn how `-L` limits the depth, how `-d` shows directories only, and how `-a` reveals hidden files, by running the commands in a real terminal in your browser.
- [du command: find out which directory is using the space](https://webterm.app/en/commands/du): du reports how much space each directory uses. Learn the `-sh` total, the `--max-depth=1` breakdown, and how to list the biggest directories first, by running the commands in a real terminal in your browser.
- [df command: check how much disk space is left](https://webterm.app/en/commands/df): df shows how much space each filesystem has left. Learn how to read `-h` output, how `df -h .` names the filesystem you are writing to, and why `df -i` explains a full disk with space on it, by running the commands in a real terminal in your browser.
- [ps command: see what is running right now](https://webterm.app/en/commands/ps): ps lists the processes that are running. Learn how to read the columns of `ps aux`, how to find one process with `grep`, and how to get the PID that `kill` needs, by running the commands in a real terminal in your browser.
- [kill command: stop a running process](https://webterm.app/en/commands/kill): kill asks a running process to stop. Learn how to find the PID, when `-9` is the right answer and why it usually is not, and what the signals mean, by running the commands in a real terminal in your browser.
- [tar command: pack a directory into a single file](https://webterm.app/en/commands/tar): tar bundles files into one compressed archive. Learn the three shapes you actually use, `-czf` to create, `-tzf` to look inside and `-xzf` to extract, by running the commands in a real terminal in your browser.
- [which command: find out which program actually runs](https://webterm.app/en/commands/which): which tells you which file a command name actually runs. Learn how PATH decides the order, how to diagnose `command not found`, and why your own script is invisible until two things are true, by running the commands in a real terminal in your browser.
- [chown command: change who owns a file](https://webterm.app/en/commands/chown): chown changes the owner and group of a file. Learn why it needs `sudo`, what the `user:user` form means, and how `-R` covers a whole directory, by running the commands in a real terminal in your browser.
- [ssh command: log in to another machine](https://webterm.app/en/commands/ssh): ssh logs you in to a remote server. Learn how to create a key and hand over the public half, what Permission denied (publickey) really means, and how to run a single command remotely, in a real terminal in your browser.
- [vim command: edit a file inside the terminal](https://webterm.app/en/commands/vim): vim is the editor that runs in your terminal. Learn how to get out with `:q!`, how the modes work, and the handful of movement and editing keys worth knowing, in a real terminal in your browser.
- [git command: record your changes as history](https://webterm.app/en/commands/git): git records changes to your code. Learn how to read `git status`, what separates `add` from `commit`, and how to read the history with `git log`, by running the commands in a real terminal in your browser.
- [sed command: replace text without opening the file](https://webterm.app/en/commands/sed): sed substitutes text in a file without opening it. Learn the `s/old/new/` form, how `-i` edits the file itself, and how to select or delete lines, by running the commands in a real terminal in your browser.
- [diff command: show what changed between two files](https://webterm.app/en/commands/diff): diff compares two files line by line. Learn how to read `<` and `>`, when to use `-u` or `-y`, and how `-q` answers the yes-or-no question, by running the commands in a real terminal in your browser.
- [cut command: keep only the columns you need](https://webterm.app/en/commands/cut): cut takes selected fields or characters out of every line. Learn when to use `-d` with `-f` and when to cut by character position with `-c`, by running the commands in a real terminal in your browser.
- [uniq command: collapse repeated lines and count them](https://webterm.app/en/commands/uniq): uniq collapses adjacent identical lines. Learn why it is always paired with `sort`, how `-c` counts occurrences, and what `-d` and `-u` are for, by running the commands in a real terminal in your browser.
- [tr command: replace or delete characters](https://webterm.app/en/commands/tr): tr translates and deletes characters. Learn how to change case, how to turn a separator into newlines, and how `-s` squeezes runs of spaces, by running the commands in a real terminal in your browser.
- [tee command: print to the screen and save to a file](https://webterm.app/en/commands/tee): tee writes what passes through a pipe to a file as well as the screen. Learn how it differs from `>`, when to add `-a`, and why `sudo tee` is the way to edit a root-owned file, by running the commands in a real terminal in your browser.
- [xargs command: turn a list into arguments](https://webterm.app/en/commands/xargs): xargs takes what comes down a pipe and hands it to the next command as arguments. Learn how to act on `find` results, when to use `-n`, and how `-I {}` places the value, by running the commands in a real terminal in your browser.
- [awk command: pick columns, filter rows, add them up](https://webterm.app/en/commands/awk): awk splits each line into columns and works on them. Learn how `$1` picks a column, how a condition filters rows, and how `END` produces a total, by running the commands in a real terminal in your browser.
- [sudo command: run one command as the administrator](https://webterm.app/en/commands/sudo): sudo runs a single command with administrator rights. Learn exactly what changes, why it has no effect on `>`, and why `sudo tee` exists, by running the commands in a real terminal in your browser.
- [systemctl command: start, stop and inspect services](https://webterm.app/en/commands/systemctl): systemctl controls the services on a Linux machine. Learn how to read `status`, why `start` and `enable` are different, and how to list what is running, by running the commands in a real terminal in your browser.
- [journalctl command: read the logs of a service](https://webterm.app/en/commands/journalctl): journalctl reads the logs systemd collects. Learn how `-u` narrows to one service, how `-n` shows just the end, and what `-f` does, by running the commands in a real terminal in your browser.
- [crontab command: run a command on a schedule](https://webterm.app/en/commands/crontab): crontab registers jobs that run on a schedule. Learn how to read the five time fields, the `-l` and `-e` workflow, and how to load a schedule from a file, by running the commands in a real terminal in your browser.
- [top command: find what is eating the machine](https://webterm.app/en/commands/top): top shows running processes and keeps refreshing. Learn how to read the screen, how to get out, and how `-b` makes it usable from a script, by running the commands in a real terminal in your browser.
- [ping command: check whether you can reach a host](https://webterm.app/en/commands/ping): ping tests whether packets reach a host and come back. Learn why you want `-c`, how to read the output, and how to tell a name problem from a network problem, by running the commands in a real terminal in your browser.
- [curl command: make HTTP requests from the terminal](https://webterm.app/en/commands/curl): curl fetches a URL from the terminal. Learn how `-I` shows just the headers, how `-o` and `-O` save to a file, and how `-X`, `-d` and `-H` call an API, by running the commands in a real terminal in your browser.
- [scp command: copy files to and from a server](https://webterm.app/en/commands/scp): scp copies files over the SSH connection. Learn how sending and fetching are written, why directories need `-r`, and why the port flag is a capital `-P`, by running the commands in a real terminal in your browser.
## Other pages (English)
- [Tutorials](https://webterm.app/en/tutorials): Hands-on, interactive lessons for the Linux terminal and Git. Pick a tutorial and practice directly in your browser, no setup required.
- [Practice Git in Your Browser](https://webterm.app/en/git): Run real Git commands against a live repository and watch what each one does. No install, no sign-up. Start with your first commit and work up to fixing merge conflicts.
- [Practice Vim in your browser](https://webterm.app/en/vim): From getting out of Vim to editing text, learn by typing in a browser terminal. Nothing to install, no sign-up.
- [Free Play](https://webterm.app/en/free-play): Practice Linux terminal commands freely in a safe browser-based sandbox. No installation required. Experiment with file operations, Git commands, and more without risk.
## チュートリアル(日本語)
### ターミナル
- [はじめに](https://webterm.app/ja/tutorials/terminal-basics): ターミナルの基本的な入力方法、矢印キーやEmacsショートカットによるカーソル移動、コマンド履歴、タブ補完を学びます。コマンドライン初心者に最適な第一歩です。(全7ミッション)
- [入門](https://webterm.app/ja/tutorials/beginner): Linuxの基本コマンドpwd、ls、cd、mkdir、touch、rmを習得。ディレクトリの移動、ファイルやフォルダの作成・削除をブラウザ上の安全なターミナルで練習できます。(全9ミッション)
- [基礎](https://webterm.app/ja/tutorials/basic): Linuxの必須ファイル操作コマンドcat、ls -l、cp、mv、mkdir -p、echo、grep、findを学習。ファイルの表示、コピー、移動、検索をインタラクティブに練習できます。(全14ミッション)
- [応用](https://webterm.app/ja/tutorials/advanced): head、tail、less、wc、sort、tree、chmod、statなどの応用Linuxコマンドを習得。ファイル権限の管理、テキスト処理、ディレクトリの可視化を実践的に学べます。(全9ミッション)
### Vim
- [Vim入門](https://webterm.app/ja/tutorials/vim-basics): 「Vimから出られない」をここで卒業。:q・:wq・:q!・ZZ での終了、i での入力、hjkl での移動、/ での検索を、ブラウザのインタラクティブなターミナルで練習できます。インストール不要。(全14ミッション)
- [Vim編集操作](https://webterm.app/ja/tutorials/vim-editing): x・dd での削除、u / Ctrl+r の取り消しとやり直し、yy /