Unix Command Documentaion Syntax

Command-line syntax for Unix and Unix-like systems.

Unix Command Documentation Syntax

Notation

[] - Optional: Can be omitted

1
ls [OPTIONS] [FILE...]  # All valid: ls, ls -l, ls /home

<> - Required: Must provide actual values

1
docker exec <CONTAINER> <COMMAND>  # Must specify: docker exec myapp bash

... - Multiple: Can specify multiple values

1
cp <SOURCE>... <DEST>  # Copy multiple: cp file1.txt file2.txt /backup/

| - Alternatives: Choose one (mutually exclusive)

1
git log [--oneline | --graph]  # Use only one

Options vs Arguments

Short options: Single character with - (can combine: -lah)

Long options: Full words with -- (GNU extension: --verbose)

Arguments: Required data (filenames, values)

Option-arguments: Values that options need

1
2
3
4
5
tar -f archive.tar file.txt
# ^ ^ ^
# | | argument
# | option-argument
# option

Option-arguments can be space-separated (-f file) or attached (-ffile). Long options use --output=file or --output file.

Common Patterns

1
2
command [SHORT_OPTIONS] [--long-options] <REQUIRED> [OPTIONAL...]
docker run [-d] [--name NAME] [-p HOST:CONTAINER] <IMAGE> [COMMAND]

Standard options: -h/--help, -v/--version, -V/--verbose End options marker: -- (everything after treated as arguments)

The syntax follows POSIX standards with GNU extensions for long options. Double dashes prevent ambiguity since -recursive would be interpreted as -r -e -c -u -r -s -i -v -e.

References: POSIX Utility Conventions, GNU Standards, getopt_long(3)