10. Glossary

builtin command
[Unix shells] A command identifier which execution is provided and implemented within the shell.
call expression
[cmdse] A call expression is a valid shell-processable character sequence of optional variable assignments followed by a word reffered to as the “command identifier” and a list of words, namely “arguments”. This command identifier cannot be a compound command, since it is semantically closer to a control construct. When such expression is evaluated, the first word specifies the command identifier, and is passed as positional parameter zero. The remaining argument expressions are passed as positional parameters to the invoked command. When a substitution expression is encountered, it will be evaluated before the command identifier executable is invoked.
character
The meaning of character is loose. It can either mean a glyph or a character literal, which is not the same since a glyph can be the result of merging two literals as it often happens with dead keystrokes. For example, pressing ` followed by a will result in à glyph, but in the UTF-8 encoding, is not the same as à symbol.
character symbol
character literal
A unique element in a charset.
charset
Strictly saying, a set of symbols that can be used. Often confused with encoding.
command
[Unix shells] A command is a one-line processable text chunk[3] to be converted in command invocation. Command invocation consists in passing to the operating system a file to be read and executed (extrapolated from the utility name) with a list of arguments (argv).
command identifier
[Unix shells] A command identifier is a word which maps to a set of instructions, either through a builtin command, a declared function, or with a utility name.
command parameter
[cmdse] A command snippet parameter is a string which should be substituted with user input when the corresponding snippet is invoked.
command snippet
[cmdse] A shell-processable text.
command snippet metadata

[cmdse] Structured data about a command snippet. Such information may be comprised of the following fields:

  • a list of utility interface models reffered to in the snippet;
  • text description of the snippet;
  • a list of tags applied to the snippet;
  • a list of command parameters consisting each of a name, a description field and an optional default value.
compound command
[Unix shells] Compound commands are the shell programming constructs. Each construct begins with a reserved word or control operator and is terminated by a corresponding reserved word or operator. They are introduced by a keyword such as if or while.
encoding
The in-memory representation of a charset.
glyph
The non-reductable sum of pixels corresponding to a representation of it’s corresponding character symbol(s).
operand
[Unix shells] An operand is a non-option command identifier argument, typically the subject(s) upon which the command will operate (file name, remote, … etc).
option description
[cmdse] Structured data composed of a description text field and a collection of match models. Each match model is related to an option expression variant and has a one-or-two groups regular expression. When two groups can be matched, the latest is the option parameter of an explicit option assignments.
option description model
[cmdse] An option description model is a set of option descriptions.
option expression variant
[cmdse] A pattern to recognize one or many arguments as members of an option flag or option assignment (see Table 2.1).
option scheme
[cmdse] A set of option expression variants supported by a utility (see Table 2.1).
rune
code point
A representation in the form of character of a unicode byte sequence. Rune is the Go synonym for a code point.
string
An arbitrary sequence of bytes. Note that with this definition, a string alone is not sufficient to get a textual representation. A charset and its encoding must be provided along.
string literal
A string with valid utf-8 sequences.
sub-command
A sub command is a utility argument which operates as the alias of an inner command. Exemple of such is git add git-add(1)
synopsis
[Unix shells] A text pattern describing a set of possible call expressions.
ucs-2
An encoding for a subset of the Unicode charset. This subset is known as the Basic Multilingual Plane and is composed of the first 65,536 code points. This encoding uses 2-bytes for each character.
utf-8
An encoding for the unicode(7) charset. See utf-8(7).
utility executable
[Unix shells] An executable file which supports positional text arguments. See the POSIX.1-2008 section on utility search and execution[4].
utility interface model

[cmdse] Structured data describing the command line interface capabilities of a utility executable identified by its utility name. The capabilities are defined through:

Those are defined for a peculiar version range. The term “utility” is directly borrowed from the POSIX.1-2008 reference[1].

utility name
[Unix shells] The basename of a utility executable file that the shell will try to locate with PATH environment variable.
version range
[cmdse] A version range is an expression describing a range of software versions. Such an expression is written with semver syntax[2].
word
[Unix shells] “Word” has a special meaning in shells. In a quote-free context, it is a sequence of non-meta characters separated with blanks. Otherwise, any quoted expression is interpreted as a single word.

[1]See POSIX.1-2008, sec. 12.1, “Utility Conventions”
[2]Semantic versionning definition is available here: semver.org. Semver ranges are defined here: semver.npmjs.com.
[3]Four exceptions: multiple lines can be processed in one row when terminated with the escape character, \ and here-documents are read multilines until the provided WORD is matched. Also compound commands such as for construct may be written in multiple lines, needing some look-ahead line processing before execution. Finally, the semicolon ; metacharacter is interpreted as a line delimiter.
[4]See POSIX.1-2008, sec. 2.9.1