Glossary

Commands

15 of 15 commands

C top

chmod Linux
$ chmod 644 file
$ chmod g+r file

Change a file’s permission bits.

Two notations, and both are worth knowing. Symbolic (g+r) changes only what you name and leaves the rest alone. Numeric (644) sets all nine bits at once. Reach for symbolic when adjusting one thing, numeric when you want a known end state.

$ chmod 600 ~/.ssh/id_ed25519

Careful: Removing your own read or execute bit is easy and immediately confusing. Numeric notation overwrites every bit, not just the one you were thinking about.

curl Networking
$ curl -sSI https://example.com

Make an HTTP request and show what comes back.

The fastest way to prove a service answers, and to see the headers it sets. -I fetches headers only, -s silences the progress meter, and -S puts errors back after -s removed them.

$ curl -sS -o /dev/null -w '%{http_code} %{time_total}s\n' https://example.com

D top

dig Networking
$ dig +short example.com

Query DNS and show the answer.

Use it rather than ping when the question is about name resolution. +short gives just the answer; @resolver asks a specific server, which is how you tell “DNS is broken” apart from “this resolver is broken”.

$ dig +short @9.9.9.9 example.com

F top

free Linux
$ free -h

Show physical memory and swap use.

Reads its numbers from /proc/meminfo. The available column is the one to look at — Linux deliberately uses spare memory for cache, so a small free figure is normal rather than a problem.

G top

grep Linux
$ grep -r pattern path

Find lines matching a pattern.

Most often the middle of a pipeline rather than a command on its own. -r recurses, -n gives line numbers, -i ignores case, and -v inverts the match.

$ ps -ef | grep sshd

I top

ip Networking
$ ip -br address
$ ip route

Show and configure addresses, routes, and interfaces.

The modern replacement for ifconfig and route. -br gives a brief one-line-per-interface view, -4 and -6 restrict it to one family, and ip -s link adds error and drop counters — a link can negotiate fine and still be marginal.

$ ip -6 neigh show

L top

ln Linux
$ ln -s target linkname

Create a link to a file or directory.

With -s it makes a symbolic link. The argument order is the thing that catches people: the target that already exists comes first, the name being created second.

ls Linux
$ ls -l
$ ls -la

List directory contents.

-l is the form worth reading closely: ten characters of mode, then links, owner, group, size, time, and name. -a includes dot files, which is most of a home directory.

$ ls -ld /bin

M top

man Linux
$ man 5 passwd
$ man -k "disk space"

Read the manual page for a command, file format, or system call.

Sections matter — the same name can appear in several. Section 1 is user commands, 5 is file formats, 8 is administration. man -k searches the descriptions when you do not know the name. Press / to search within a page.

P top

ping Networking
$ ping -c2 host

Send ICMP echo requests to test reachability.

Proves a host answers ICMP. It says nothing about whether a service is listening — use ss or curl for that. Plenty of hosts drop ICMP by policy, so silence is not proof of absence.

Careful: A quiet ping is weak evidence in both directions. Do not conclude a host is down from it.

ps Linux
$ ps -ef
$ ps -ef --forest

List running processes.

--forest draws the parent/child tree, which makes the result of fork() visible — every process descends from the first one. Usually piped into grep to find a particular service.

$ ps -ef --forest | head -20

S top

ss Networking
$ ss -tln

Show sockets — what is listening, and what is connected.

The replacement for netstat. -t is TCP, -l listening only, -n skips name resolution so the output is fast and unambiguous. Compare services bound to loopback against those bound to a wildcard: the first group is reachable only from the machine itself.

$ ss -tlnp

T top

tar Linux
$ tar czf archive.tar.gz dir/
$ tar tvf archive.tar.gz

Bundle many files into one archive, optionally compressed.

The flags are positional and old-fashioned: c create, x extract, t list, v verbose, f naming the file, which must come last of the letters. Run tar tvf before extracting so you know whether the archive expands into a directory or scatters files where you stand.

$ zcat archive.tar.gz | tar xvf -

Careful: Ownership is restored by numeric ID and needs root to reproduce. ACLs, extended attributes, and SELinux contexts each need asking for explicitly.

tcpdump Networking
$ tcpdump -i eth0 udp port 4789

Capture and print packets crossing an interface.

The instrument for questions no status command answers — what is actually on the wire, and whether an encapsulated frame really carries what you think. Needs root, and a filter expression, or it will drown you.

Careful: Captures may contain credentials and payload data. Use purpose-built fixtures for examples you intend to share.

U top

umask Linux
$ umask 022
$ umask 077

Set the permission bits removed from newly created files.

Subtractive, and from different bases: 666 for files and 777 for directories. 022 gives 644 and 755; 077 gives 600 and 700. It applies to the shell that runs it, so persistence means putting it in a startup file.