neulab/tldr huggingface dataset:
mail {--mbox file|--send} [-m text] [-M file] [--prefix prefix] [--sender ...] [--from ...] [--to ...] [--cc ...] [--bcc ...] [--subject ...] [--reply-to message] [--charset ...] [--signature file] [first_patch [last_patch]]
Create mail messages from a specified range of patches, or all patches in the series file, and either store them in a mailbox file, or send them immediately. The editor is opened with a template for the introduction.  Please see /usr/share/doc/quilt/README.MAIL for details.  When specifying a range of patches, a first patch name of `-' denotes the first, and a last patch name of `-' denotes the last patch in the series.
-m text
Text to use as the text in the introduction. When this option is used, the editor will not be invoked, and the patches will be processed immediately.
-M file
Like the -m option, but read the introduction from file.
--prefix prefix
Use an alternate prefix in the bracketed part of the subjects generated. Defaults to `patch'.
--mbox file
Store all messages in the specified file in mbox format. The mbox can later be sent using formail, for example.
--send
Send the messages directly.
--sender
The envelope sender address to use. The address must be of the form `user@domain.name'. No display name is allowed.
--from, --subject
The values for the From and Subject headers to use. If no --from option is given, the value of the --sender option is used.
--to, --cc, --bcc
Append a recipient to the To, Cc, or Bcc header.
--charset
Specify a particular message encoding on systems which don't use UTF-8 or ISO-8859-15. This character encoding must match the one used in the patches.
--signature file
Append the specified signature to messages (defaults to ~/.signature if found; use `-' for no signature).
--reply-to message
Add the appropriate headers to reply to the specified message.
new [-p n|-p ab] {patchname}
Create a new patch with the specified file name, and insert it after the topmost patch. The name can be prefixed with a sub-directory name, allowing for grouping related patches together.
Quilt can be used in sub-directories of a source tree. It determines the root of a source tree by searching for a patches directory above the current working directory. Create a patches directory in the intended root directory if quilt chooses a top- level directory that is too high up in the directory tree.
next [patch]
Print the name of the next patch after the specified or topmost patch in the series file.
patches [-v] [--color[=always|auto|never]] {file} [files...]
Print the list of patches that modify any of the specified files. (Uses a heuristic to determine which files are modified by unapplied patches.  Note that this heuristic is much slower than scanning applied patches.)
pop [-afRqv] [--refresh] [num|patch]
Remove patch(es) from the stack of applied patches.  Without options, the topmost patch is removed.  When a number is specified, remove the specified number of patches.  When a patch name is specified, remove patches until the specified patch end up on top of the stack.  Patch names may include the patches/ prefix, which means that filename completion can be used.
-a  Remove all applied patches.
-f  Force remove. The state before the patch(es) were applied will be restored from backup files.
-R  Always verify if the patch removes cleanly; don't rely on timestamp checks.
-v  Verbose operation.
--refresh
Automatically refresh every patch before it gets unapplied.
previous [patch]
Print the name of the previous patch before the specified or topmost patch in the series file.
push [-afqvm] [--fuzz=N] [--merge[=merge|diff3]] [--leave-rejects] [--color[=always|auto|never]] [--refresh] [num|patch]
Apply patch(es) from the series file.  Without options, the next patch in the series file is applied.  When a number is specified, apply the specified number of patches.  When a patch name is specified, apply all patches up to and including the specified patch. Patch names may include the patches/ prefix, which means that filename completion can be used.
-a  Apply all patches in the series file.
-f  Force apply, even if the patch has rejects.
--fuzz=N
Set the maximum fuzz factor (default: 2).
-m, --merge[=merge|diff3]
Merge the patch file into the original files (see patch(1)).
--leave-rejects
Leave around the reject files patch produced, even if the patch is not actually applied.
Automatically refresh every patch after it was successfully applied.
refresh [-p n|-p ab] [-u|-U num|-c|-C num] [-z[new_name]] [-f] [--no- timestamps] [--no-index] [--diffstat] [--sort] [--backup] [--strip- trailing-whitespace] [patch]
Refreshes the specified patch, or the topmost patch by default. Documentation that comes before the actual patch in the patch file is retained.
It is possible to refresh patches that are not on top.  If any patches on top of the patch to refresh modify the same files, the script aborts by default.  Patches can still be refreshed with -f. In that case this script will print a warning for each shadowed file, changes by more recent patches will be ignored, and only changes in files that have not been modified by any more recent patches will end up in the specified patch.
-p n Create a -p n style patch (-p0 or -p1 supported).
-z[new_name]
Create a new patch containing the changes instead of refreshing the topmost patch. If no new name is specified, `-2' is added to the original patch name, etc. (See the fork command.)
--diffstat
Add a diffstat section to the patch header, or replace the existing diffstat section.
-f  Enforce refreshing of a patch that is not on top.
Strip trailing whitespace at the end of lines.
remove [-P patch] {file} ...
Remove one or more files from the topmost or named patch.  Files that are modified by patches on top of the specified patch cannot be removed.
Remove named files from the named patch.
rename [-P patch] new_name
Rename the topmost or named patch.
Patch to rename.
revert [-P patch] {file} ...
Revert uncommitted changes to the topmost or named patch for the specified file(s): after the revert, 'quilt diff -z' will show no differences for those files. Changes to files that are modified by patches on top of the specified patch cannot be reverted.
Revert changes in the named patch.
series [--color[=always|auto|never]] [-v]
Print the names of all patches in the series file.
setup [-d path-prefix] [-v] [--sourcedir dir] [--fuzz=N] [--slow|--fast] {specfile|seriesfile}
Initializes a source tree from an rpm spec file or a quilt series file.
-d  Optional path prefix for the resulting source tree.
--sourcedir
Directory that contains the package sources. Defaults to `.'.
-v  Verbose debug output.
Set the maximum fuzz factor (needs rpm 4.6 or later).
--slow Use the original, slow method to process the spec file. This is the default for now, but that might change in the future. In this mode, rpmbuild generates a working tree in a temporary directory while all its actions are recorded, and then everything is replayed from scratch in the target directory.
--fast Use an alternative, faster method to process the spec file. In this mode, rpmbuild is told to generate a working tree directly in the target directory.
snapshot [-d]
Take a snapshot of the current working state.  After taking the snapshot, the tree can be modified in the usual ways, including pushing and popping patches.  A diff against the tree at the moment of the snapshot can be generated with `quilt diff --snapshot'.
-d  Only remove current snapshot.
Print the name of the topmost patch on the current stack of applied patches.
unapplied [patch]
Print a list of patches that are not applied, or all patches that follow the specified patch in the series file.
Upgrade the meta-data in a working tree from an old version of quilt to the current version. This command is only needed when the quilt meta-data format has changed, and the working tree still contains old-format meta-data. In that case, quilt will request to run `quilt upgrade'.
Runs the command in bash trace mode (-x). For internal debugging.
--quiltrc file
Use the specified configuration file instead of ~/.quiltrc (or /etc/quilt.quiltrc if ~/.quiltrc does not exist).  See the pdf documentation for details about its possible contents.  The special value "-" causes quilt not to read any configuration file.
Print the version number and exit immediately.
The exit status is 0 if the sub-command was successfully executed, and 1 in case of error.
An exit status of 2 denotes that quilt did not do anything to complete the command.  This happens in particular when asking to push when the whole stack is already pushed, or asking to pop when the whole stack is already popped.  This behavior is intended to ease the scripting around quilt.
work/ ├── patches/ │    ├── series         (list of patches to apply) │    ├── patch1.diff    (one particular patch) │    ├── patch2.diff │    └── ... ├── .pc/ │    ├── .quilt_patches (content of QUILT_PATCHES) │    ├── .quilt_series  (content of QUILT_SERIES) │    ├── patch1.diff/   (copy of patched files) │    │    └── ... │    ├── patch2.diff/ │    │    └── ... │    └── ... └── ...
The patches/ directory is precious as it contains all your patches as well as the order in which it should be applied.
The .pc/ directory contains some metadata about the current state of your patch serie. Changing its content is not advised. This directory can usually be regenerated from the initial files and the content of the patches/ directory (provided that all patches were regenerated before the removal).
Please refer to the pdf documentation for a full example of use.
Upon startup, quilt evaluates the file .quiltrc in the user's home directory, or the file specified with the --quiltrc option.  This file is a regular bash script. Default options can be passed to any COMMAND by defining a QUILT_${COMMAND}_ARGS variable.  For example, QUILT_DIFF_ARGS="--color=auto" causes the output of quilt diff to be syntax colored when writing to a terminal.
In addition to that, quilt recognizes the following variables:
The program to run to edit files.  If it isn't redefined in the configuration file, $EDITOR as defined in the environment will be used.
The arguments used to invoke the pager.  Inherits the existing value of $LESS if LESS is already set in the environment, otherwise defaults to "-FRSX".
QUILT_DIFF_OPTS
Additional options that quilt shall pass to GNU diff when generating patches. A useful setting for C source code is "-p", which causes GNU diff to show in the resulting patch which function a change is in.
QUILT_PATCH_OPTS
Additional options that quilt shall pass to GNU patch when applying patches.  For example, recent versions of GNU patch support the "--reject-format=unified" option for generating reject files in unified diff style (older patch versions used "--unified-reject- files" for that).
You may also want to add the "-E" option if you have issues with quilt not deleting empty files when you think it should. The documentation of GNU patch says that "normally this option is unnecessary", but when patch is in POSIX mode or if the patch format doesn't allow to distinguish empty files from deleted files, patch deletes empty files only if the -E option is given. Beware that when passing -E to patch, quilt will no longer be able to deal with empty files, which is why using -E is no longer the default.
QUILT_DIFFSTAT_OPTS
Additional options that quilt shall pass to diffstat when generating patch statistics. For example, "-f0" can be used for an alternative output format. Recent versions of diffstat also support alternative rounding methods ("-r1", "-r2").
QUILT_PC
The location of backup files and any other data relating to the current state of the working directory from quilt's perspective. Defaults to ".pc".
QUILT_PATCHES
The location of patch files, defaulting to "patches".
QUILT_SERIES
The name of the series file, defaulting to "series". Unless an absolute path is used, the search algorithm described above applies.
QUILT_PATCHES_PREFIX
If set to anything, quilt will prefix patch names it prints with their directory (QUILT_PATCHES).
QUILT_NO_DIFF_INDEX
By default, quilt prepends an Index: line to the patches it generates.  If this variable is set to anything, no line is prepended.  This is a shortcut to adding --no-index to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS.
QUILT_NO_DIFF_TIMESTAMPS
By default, quilt includes timestamps in headers when generating patches.  If this variable is set to anything, no timestamp will be included.  This is a shortcut to adding --no-timestamps to both QUILT_DIFF_ARGS and QUILT_REFRESH_ARGS.
QUILT_PAGER
The pager quilt shall use for commands which produce paginated output. If unset, the values of GIT_PAGER or PAGER is used.  If none of these variables is set, "less -R" is used.  An empty value indicates that no pager should be used.
QUILT_COLORS
By default, quilt uses its predefined color set in order to be more comprehensible when distiguishing various types of patches, eg. applied/unapplied, failed, etc.
To override one or more color settings, set the QUILT_COLORS variable in following syntax - colon (:) separated list of elements, each being of the form <format name>=<foreground color>[;<background color>]
Format names with their respective default values are listed below, along with their usage(s).  Color codes(values) are standard bash coloring escape codes.  See more at http://tldp.org/LDP/abs/html/colorizing.html#AEN20229
diff_hdr  Used in 'quilt diff' to color the index line. Defaults to 32 (green).
diff_add  Used in 'quilt diff' to color added lines. Defaults to 36 (azure).
diff_mod  Used in 'quilt diff' to color modified lines. Defaults to 35 (purple).
diff_rem  Used in 'quilt diff' to color removed lines. Defaults to 35 (purple).
diff_hunk Used in 'quilt diff' to color hunk header. Defaults to 33 (brown/orange).
diff_ctx  Used in 'quilt diff' to color the text after end of hunk header (diff --show-c-function generates this). Defaults to 35 (purple).
diff_cctx Used in 'quilt diff' to color the 15-asterisk sequence before or after a hunk. Defaults to 33 (brown/orange).
patch_fuzz Used in 'quilt push' to color the patch fuzz information. Defaults to 35 (purple).
patch_fail Used in 'quilt push' to color the fail message. Defaults to 31 (red).
series_app Used in 'quilt series' and 'quilt patches' to color the applied patch names. Defaults to 32 (green).
series_top Used in 'quilt series' and 'quilt patches' to color the top patch name. Defaults to 33 (brown/orange).
series_una Used in 'quilt series' and 'quilt patches' to color unapplied patch names. Defaults to 0 (no special color).
In addition, the clear format name is used to turn off special coloring. Its value is 0; it is not advised to modify it.
The content of QUILT_COLORS supersedes default values. So the value diff_hdr=35;44 will get you the diff headers in magenta over blue instead of the default green over unchanged background. For that, add the following content to ~/.quiltrc (or /etc/quilt.quiltrc):
QUILT_DIFF_ARGS="--color" QUILT_COLORS='diff_hdr=35;44'
Quilt started as a series of scripts written by Andrew Morton (patch- scripts). Based on Andrew's ideas, Andreas Gruenbacher completely rewrote the scripts, with the help of several other contributors (see AUTHORS file in the distribution).
This man page was written by Martin Quinson, based on information found in the pdf documentation, and in the help messages of each commands.
The pdf documentation, which should be under /usr/share/doc/quilt/quilt.pdf.  Note that some distributors compress this file.  zxpdf(1) can be used to display compressed pdf files.
diff(1), patch(1), guards(1).
ALEX(1)                  Alex Lexical Analyser Generator                 ALEX(1)
alex - the lexical analyser generator for Haskell
alex [OPTION]... file [OPTION]...
This manual page documents briefly the alex command.
This manual page was written for the Debian GNU/Linux distribution because the original program does not have a manual page.  Instead, it has documentation in various other formats, including DVI, Info and HTML; see below.
Alex is a lexical analyser generator system for Haskell. It is similar to the tool lex or flex for C/C++.
Input files are expected to be of the form file.x and alex will produce output in file.y
Caveat: When using hbc (Chalmers Haskell) the command argument structure is slightly different.  This is because the hbc run time system takes some flags as its own (for setting things like the heap size, etc).  This problem can be circumvented by adding a single dash (`-') to your command line.  So when using a hbc generated version of Alex, the argument structure is:
alex - [OPTION]... file [OPTION]...
The programs follow the usual GNU command line syntax, with long options starting with two dashes (`--').  A summary of options is included below. For a complete description, see the other documentation.
-d, --debug Instructs Alex to generate a lexer which will output debugging messages as it runs.
-g, --ghc Instructs Alex to generate a lexer which is optimised for compiling with GHC. The lexer will be significantly more efficient, both in terms of the size of the compiled lexer and its runtime.
-o FILE, --outfile=FILE Specifies the filename in which the output is to be placed. By default, this is the name of the input file with the .x suffix replaced by .hs
-i [FILE], --info[=FILE] Produces a human-readable rendition of the state machine (DFA) that Alex derives from the lexer, in FILE (default: file.info where the input file is file.x ).
The format of the info file is currently a bit basic, and not particularly informative.
-v, --version Print version information on standard output then exit successfully.
@DATADIR@
/usr/share/doc/alex, the Alex homepage (http://haskell.org/alex/) ⟨http://haskell.org/alex/⟩
Alex Version 3.2.5
Copyright (c) 1995-2003, Chris Dornan and Simon Marlow
This manual page was written by Ian Lynagh <igloo@debian.org>, based on the happy manpage, for the Debian GNU/Linux system (but may be used by others).
Z(1)                              User Commands                             Z(1)
z - jump around
z [-chlrtx] [regex1 regex2 ... regexn]
bash, zsh
Tracks your most used directories, based on 'frecency'.
After a short learning phase, z will take you to the most 'frecent' directory that matches ALL of the regexes given on the command line, in order.
For example, z foo bar would match /foo/bar but not /bar/foo.
-c     restrict matches to subdirectories of the current directory
-e     echo the best match, don't cd
-h     show a brief help message
-l     list only
-r     match by rank only
-t     match by recent access only
-x     remove the current directory from the datafile
z foo         cd to most frecent dir matching foo
z foo bar     cd to most frecent dir matching foo, then bar
z -r foo      cd to highest ranked dir matching foo
z -t foo      cd to most recently accessed dir matching foo
z -l foo      list all dirs matching foo (by frecency)
Installation: Put something like this in your $HOME/.bashrc or $HOME/.zshrc:
. /usr/share/z/z.sh
cd around for a while to build up the db.
PROFIT!!
Optionally: Set $_Z_CMD to change the command name (default z). Set $_Z_DATA to change the datafile (default $HOME/.z). Set $_Z_NO_RESOLVE_SYMLINKS to prevent symlink resolution. Set $_Z_NO_PROMPT_COMMAND to handle PROMPT_COMMAND/precmd yourself. Set $_Z_EXCLUDE_DIRS to an array of directory trees to exclude. Set $_Z_OWNER to allow usage when in 'sudo -s' mode. (These settings should go in .bashrc/.zshrc before the line added above.) Install the provided man page z.1 somewhere in your MANPATH, like /usr/local/man/man1.
Aging: The rank of directories maintained by z undergoes aging based on a simple formula. The rank of each entry is incremented every time it is accessed. When the sum of ranks is over 9000, all ranks are multiplied by 0.99. Entries with a rank lower than 1 are forgotten.
Frecency: Frecency is a portmanteau of 'recent' and 'frequency'. It is a weighted rank that depends on how often and how recently something occurred. As far as I know, Mozilla came up with the term.
To z, a directory that has low ranking but has been accessed recently will quickly have higher rank than a directory accessed frequently a long time ago.
Frecency is determined at runtime.
Common: When multiple directories match all queries, and they all have a common prefix, z will cd to the shortest matching directory, without regard to priority.  This has been in effect, if undocumented, for quite some time, but should probably be configurable or reconsidered.
Tab Completion: z supports tab completion. After any number of arguments, press TAB to complete on directories that match each argument. Due to limitations of the completion implementations, only the last argument will be completed in the shell.
Internally, z decides you've requested a completion if the last argument passed is an absolute path to an existing directory. This may cause unexpected behavior if the last argument to z begins with /.
A function _z() is defined.
The contents of the variable $_Z_CMD is aliased to _z 2>&1. If not set, $_Z_CMD defaults to z.
The environment variable $_Z_DATA can be used to control the datafile location. If it is not defined, the location defaults to $HOME/.z.
The environment variable $_Z_NO_RESOLVE_SYMLINKS can be set to prevent resolving of symlinks. If it is not set, symbolic links will be resolved when added to the datafile.
In bash, z appends a command to the PROMPT_COMMAND environment variable to maintain its database. In zsh, z appends a function _z_precmd to the precmd_functions array.
The environment variable $_Z_NO_PROMPT_COMMAND can be set if you want to handle PROMPT_COMMAND or precmd yourself.
The environment variable $_Z_EXCLUDE_DIRS can be set to an array of directory trees to exclude from tracking. $HOME is always excluded. Directories must be full paths without trailing slashes.
The environment variable $_Z_OWNER can be set to your username, to allow usage of z when your sudo environment keeps $HOME set.
Data is stored in $HOME/.z. This can be overridden by setting the $_Z_DATA environment variable. When initialized, z will raise an error if this path is a directory, and not function correctly.
A man page (z.1) is provided.
regex(7), pushd, popd, autojump, cdargs
Please file bugs at https://github.com/rupa/z/
erl(1)                            User Commands                           erl(1)
erl - The Erlang emulator.
The erl program starts an Erlang runtime system. The exact details (for example, whether erl is a script or a program and which other programs it calls) are system-dependent.
Windows users probably want to use the werl program instead, which runs in its own window with scrollbars and supports command-line editing. The erl program on Windows provides no line editing in its shell, and on Windows 95 there is no way to scroll back to text that has scrolled off the screen. The erl program must be used, however, in pipelines or if you want to redirect standard input or output.
Note: As from ERTS 5.9 (Erlang/OTP R15B) the runtime system does by default not bind schedulers to logical processors. For more information, see system flag +sbt.
erl <arguments>
Starts an Erlang runtime system.
The arguments can be divided into emulator flags, flags, and plain arguments:
* Any argument starting with character + is interpreted as an emulator flag.
As indicated by the name, emulator flags control the behavior of the emulator.
* Any argument starting with character - (hyphen) is interpreted as a flag, which is to be passed to the Erlang part of the runtime system, more specifically to the init system process, see init(3erl).
The init process itself interprets some of these flags, the init flags. It also stores any remaining flags, the user flags. The latter can be retrieved by calling init:get_argument/1.
A small number of "-" flags exist, which now actually are emulator flags, see the description below.
* Plain arguments are not interpreted in any way. They are also stored by the init process and can be retrieved by calling init:get_plain_arguments/0. Plain arguments can occur before the first flag, or after a -- flag. Also, the -extra flag causes everything that follows to become plain arguments.
% erl +W w -sname arnie +R 9 -s my_init -extra +bertie (arnie@host)1> init:get_argument(sname). {ok,[["arnie"]]} (arnie@host)2> init:get_plain_arguments(). ["+bertie"]
Here +W w and +R 9 are emulator flags. -s my_init is an init flag, interpreted by init. -sname arnie is a user flag, stored by init. It is read by Kernel and causes the Erlang runtime system to become distributed. Finally, everything after -extra (that is, +bertie) is considered as plain arguments.
% erl -myflag 1 1> init:get_argument(myflag). {ok,[["1"]]} 2> init:get_plain_arguments(). []
Here the user flag -myflag 1 is passed to and stored by the init process. It is a user-defined flag, presumably used by some user- defined application.
In the following list, init flags are marked "(init flag)". Unless otherwise specified, all other flags are user flags, for which the values can be retrieved by calling init:get_argument/1. Notice that the list of user flags is not exhaustive, there can be more application-specific flags that instead are described in the corresponding application documentation.
-- (init flag): Everything following -- up to the next flag (-flag or +flag) is considered plain arguments and can be retrieved using init:get_plain_arguments/0.
-Application Par Val: Sets the application configuration parameter Par to the value Val for the application Application; see app(5) and application(3erl).
-args_file FileName: Command-line arguments are read from the file FileName. The arguments read from the file replace flag '-args_file FileName' on the resulting command line.
The file FileName is to be a plain text file and can contain comments and command-line arguments. A comment begins with a # character and continues until the next end of line character. Backslash (\\) is used as quoting character. All command-line arguments accepted by erl are allowed, also flag -args_file FileName. Be careful not to cause circular dependencies between files containing flag -args_file, though.
The flag -extra is treated in special way. Its scope ends at the end of the file. Arguments following an -extra flag are moved on the command line into the -extra section, that is, the end of the command line following after an -extra flag.
-async_shell_start: The initial Erlang shell does not read user input until the system boot procedure has been completed (Erlang/OTP 5.4 and later). This flag disables the start synchronization feature and lets the shell start in parallel with the rest of the system.
-boot File: Specifies the name of the boot file, File.boot, which is used to start the system; see init(3erl). Unless File contains an absolute path, the system searches for File.boot in the current and $ROOT/bin directories.
-boot_var Var Dir: If the boot script contains a path variable Var other than $ROOT, this variable is expanded to Dir. Used when applications are installed in another directory than $ROOT/lib; see systools:make_script/1,2 in SASL.
-code_path_cache: Enables the code path cache of the code server; see code(3erl).
-compile Mod1 Mod2 ...: Compiles the specified modules and then terminates (with non-zero exit code if the compilation of some file did not succeed). Implies -noinput.
Not recommended; use erlc instead.
-config Config [Config ...]: Specifies the name of one or more configuration files, Config.config, which is used to configure applications; see app(5) and application(3erl). See the documentation for the configuration file format for a description of the configuration format and the order in which configuration parameters are read.
-configfd FD [FD ...]: Specifies the name of one or more file descriptors (called configuration file descriptors from here on) with configuration data for applications; see app(5) and application(3erl). See the documentation for the configuration file format for a description of the configuration format and the order in which configuration parameters are read.
A configuration file descriptor will be read until its end and will then be closed.
The content of a configuration file descriptor is stored so that it can be reused when init:restart/0 or init:restart/1 is called.
The parameter -configfd 0 implies -noinput.
Note: It is not recommended to use file descriptors 1 (standard output), and 2 (standard error) together with -configfd as these file descriptors are typically used to print information to the console the program is running in.
Examples (Unix shell):
$ erl \ -noshell \ -configfd 3 \ -eval \ 'io:format("~p~n",[application:get_env(kernel, logger_level)]),erlang:halt()' 3< \ <(echo '[{kernel, [{logger_level, warning}]}].') {ok,warning}
$ echo '[{kernel, [{logger_level, warning}]}].' > test1.config $ echo '[{kernel, [{logger_level, error}]}].' > test2.config $ erl \ -noshell \ -configfd 3 \ -configfd 4 \ -eval \ 'io:format("~p~n",[application:get_env(kernel, logger_level)]),erlang:halt()' \ 3< test1.config 4< test2.config {ok,error}
-connect_all false: If this flag is present, global does not maintain a fully connected network of distributed Erlang nodes, and then global name registration cannot be used; see global(3erl).
-cookie Cookie: Obsolete flag without any effect and common misspelling for -setcookie. Use -setcookie instead.
-detached: Starts the Erlang runtime system detached from the system console. Useful for running daemons and backgrounds processes. Implies -noinput.
-emu_args: Useful for debugging. Prints the arguments sent to the emulator.
-emu_flavor emu|jit|smp: Start an emulator of a different flavor. Normally only one flavor is available, more can be added by building specific flavors. The currently available flavors are: emu and jit. The smp flavor is an alias for the current default flavor. You can combine this flag with --emu_type. You can get the current flavor at run-time using erlang:system_info(emu_flavor). (The emulator with this flavor must be built. You can build a specific flavor by doing make FLAVOR=$FLAVOR in the Erlang/OTP source repository.)
-emu_type Type: Start an emulator of a different type. For example, to start the lock-counter emulator, use -emu_type lcnt. You can get the current type at run-time using erlang:system_info(build_type). (The emulator of this type must already be built. Use the configure option --enable-lock-counter to build the lock-counter emulator.)
-env Variable Value: Sets the host OS environment variable Variable to the value Value for the Erlang runtime system. Example:
% erl -env DISPLAY gin:0
In this example, an Erlang runtime system is started with environment variable DISPLAY set to gin:0.
-epmd_module Module (init flag): Configures the module responsible to communicate to epmd. Defaults to erl_epmd.
-erl_epmd_port Port (init flag): Configures the port used by erl_epmd to listen for connection and connect to other nodes. See erl_epmd for more details. Defaults to 0.
-eval Expr (init flag): Makes init evaluate the expression Expr; see init(3erl).
-extra (init flag): Everything following -extra is considered plain arguments and can be retrieved using init:get_plain_arguments/0.
-heart: Starts heartbeat monitoring of the Erlang runtime system; see heart(3erl).
-hidden: Starts the Erlang runtime system as a hidden node, if it is run as a distributed node. Hidden nodes always establish hidden connections to all other nodes except for nodes in the same global group. Hidden connections are not published on any of the connected nodes, that is, none of the connected nodes are part of the result from nodes/0 on the other node. See also hidden global groups; global_group(3erl).
-hosts Hosts: Specifies the IP addresses for the hosts on which Erlang boot servers are running, see erl_boot_server(3erl). This flag is mandatory if flag -loader inet is present.
The IP addresses must be specified in the standard form (four decimal numbers separated by periods, for example, "150.236.20.74". Hosts names are not acceptable, but a broadcast address (preferably limited to the local network) is.
-id Id: Specifies the identity of the Erlang runtime system. If it is run as a distributed node, Id must be identical to the name supplied together with flag -sname or -name.
-init_debug: Makes init write some debug information while interpreting the boot script.
-instr (emulator flag): Selects an instrumented Erlang runtime system (virtual machine) to run, instead of the ordinary one. When running an instrumented runtime system, some resource usage data can be obtained and analyzed using the instrument module. Functionally, it behaves exactly like an ordinary Erlang runtime system.
-loader Loader: Specifies the method used by erl_prim_loader to load Erlang modules into the system; see erl_prim_loader(3erl). Two Loader methods are supported:
* efile, which means use the local file system, this is the default.
* inet, which means use a boot server on another machine. The flags -id, -hosts and -setcookie must also be specified.
If Loader is something else, the user-supplied Loader port program is started.
-make: Makes the Erlang runtime system invoke make:all() in the current working directory and then terminate; see make(3erl). Implies -noinput.
-man Module: Displays the manual page for the Erlang module Module. Only supported on Unix.
-mode interactive | embedded: Modules are auto loaded when they are first referenced if the runtime system runs in interactive mode, which is the default. In embedded mode modules are not auto loaded. The latter is recommended when the boot script preloads all modules, as conventionally happens in OTP releases. See code(3erl).
-name Name: Makes the Erlang runtime system into a distributed node. This flag invokes all network servers necessary for a node to become distributed; see net_kernel(3erl). It is also ensured that epmd runs on the current host before Erlang is started; see epmd(1) and the -start_epmd option.
The node name will be Name@Host, where Host is the fully qualified host name of the current host. For short names, use flag -sname instead.
If Name is set to undefined the node will be started in a special mode optimized to be the temporary client of another node. When enabled the node will request a dynamic node name from the first node it connects to. In addition these distribution settings will be set:
-dist_listen false -hidden -dist_auto_connect never
Because -dist_auto_connect is set to never, the system will have to manually call net_kernel:connect_node/1 in order to start the distribution. If the distribution channel is closed, when a node uses a dynamic node name, the node will stop the distribution and a new call to net_kernel:connect_node/1 has to be made. Note that the node name may change if the distribution is dropped and then set up again.
Note: The dynamic node name feature is supported from OTP 23. Both the temporary client node and the first connected peer node (supplying the dynamic node name) must be at least OTP 23 for it to work.
Warning: Starting a distributed node without also specifying -proto_dist inet_tls will expose the node to attacks that may give the attacker complete access to the node and in extension the cluster. When using un-secure distributed nodes, make sure that the network is configured to keep potential attackers out.
-no_epmd: Specifies that the distributed node does not need epmd at all.
This option ensures that the Erlang runtime system does not start epmd and does not start the erl_epmd process for distribution either.
This option only works if Erlang is started as a distributed node with the -proto_dist option using an alternative protocol for Erlang distribution which does not rely on epmd for node registration and discovery. For more information, see How to implement an Alternative Carrier for the Erlang Distribution.
-noinput: Ensures that the Erlang runtime system never tries to read any input. Implies -noshell.
-noshell: Starts an Erlang runtime system with no shell. This flag makes it possible to have the Erlang runtime system as a component in a series of Unix pipes.
-nostick: Disables the sticky directory facility of the Erlang code server; see code(3erl).
-oldshell: Invokes the old Erlang shell from Erlang/OTP 3.3. The old shell can still be used.
-pa Dir1 Dir2 ...: Adds the specified directories to the beginning of the code path, similar to code:add_pathsa/1. Note that the order of the given directories will be reversed in the resulting path.
As an alternative to -pa, if several directories are to be prepended to the code path and the directories have a common parent directory, that parent directory can be specified in environment variable ERL_LIBS; see code(3erl).
-pz Dir1 Dir2 ...: Adds the specified directories to the end of the code path, similar to code:add_pathsz/1; see code(3erl).
-path Dir1 Dir2 ...: Replaces the path specified in the boot script; see script(5).
-proto_dist Proto:
Specifies a protocol for Erlang distribution:
inet_tcp: TCP over IPv4 (the default)
inet_tls: Distribution over TLS/SSL, See the  Using SSL for Erlang Distribution User's Guide for details on how to setup a secure distributed node.
inet6_tcp: TCP over IPv6
For example, to start up IPv6 distributed nodes:
% erl -name test@ipv6node.example.com -proto_dist inet6_tcp
-remsh Node: Starts Erlang with a remote shell connected to Node.
If no -name or -sname is given the node will be started using -sname undefined. If Node does not contain a hostname, one is automatically taken from -name or -sname
Note: Before OTP-23 the user needed to supply a valid -sname or -name for -remsh to work. This is still the case if the target node is not running OTP-23 or later.
-rsh Program: Specifies an alternative to ssh for starting a slave node on a remote host; see slave(3erl).
-run Mod [Func [Arg1, Arg2, ...]] (init flag): Makes init call the specified function. Func defaults to start. If no arguments are provided, the function is assumed to be of arity 0. Otherwise it is assumed to be of arity 1, taking the list [Arg1,Arg2,...] as argument. All arguments are passed as strings. See init(3erl).
-s Mod [Func [Arg1, Arg2, ...]] (init flag): Makes init call the specified function. Func defaults to start. If no arguments are provided, the function is assumed to be of arity 0. Otherwise it is assumed to be of arity 1, taking the list [Arg1,Arg2,...] as argument. All arguments are passed as atoms. See init(3erl).
-setcookie Cookie: Sets the magic cookie of the node to Cookie; see erlang:set_cookie/2.
-setcookie Node Cookie: Sets the magic cookie for Node to Cookie; see erlang:set_cookie/2.
-shutdown_time Time: Specifies how long time (in milliseconds) the init process is allowed to spend shutting down the system. If Time milliseconds have elapsed, all processes still existing are killed. Defaults to infinity.
-sname Name: Makes the Erlang runtime system into a distributed node, similar to -name, but the host name portion of the node name Name@Host will be the short name, not fully qualified.
This is sometimes the only way to run distributed Erlang if the Domain Name System (DNS) is not running. No communication can exist between nodes running with flag -sname and those running with flag -name, as node names must be unique in distributed Erlang systems.
-start_epmd true | false: Specifies whether Erlang should start epmd on startup. By default this is true, but if you prefer to start epmd manually, set this to false.
This only applies if Erlang is started as a distributed node, i.e. if -name or -sname is specified. Otherwise, epmd is not started even if -start_epmd true is given.
Note that a distributed node will fail to start if epmd is not running.
-version (emulator flag): Makes the emulator print its version number. The same as erl +V.
erl invokes the code for the Erlang emulator (virtual machine), which supports the following flags:
+a size: Suggested stack size, in kilowords, for threads in the async thread pool. Valid range is 16-8192 kilowords. The default suggested stack size is 16 kilowords, that is, 64 kilobyte on 32-bit architectures. This small default size has been chosen because the number of async threads can be large. The default size is enough for drivers delivered with Erlang/OTP, but might not be large enough for other dynamically linked-in drivers that use the driver_async() functionality. Notice that the value passed is only a suggestion, and it can even be ignored on some platforms.
+A size: Sets the number of threads in async thread pool. Valid range is 1-1024. The async thread pool is used by linked-in drivers to handle work that may take a very long time. Since OTP 21 there are very few linked-in drivers in the default Erlang/OTP distribution that uses the async thread pool. Most of them have been migrated to dirty IO schedulers. Defaults to 1.
+B [c | d | i]: Option c makes Ctrl-C interrupt the current shell instead of invoking the emulator break handler. Option d (same as specifying +B without an extra option) disables the break handler. Option i makes the emulator ignore any break signal.
If option c is used with oldshell on Unix, Ctrl-C will restart the shell process rather than interrupt it.
Notice that on Windows, this flag is only applicable for werl, not erl (oldshell). Notice also that Ctrl-Break is used instead of Ctrl-C on Windows.
+c true | false: Enables or disables time correction:
true: Enables time correction. This is the default if time correction is supported on the specific platform.
false: Disables time correction.
For backward compatibility, the boolean value can be omitted. This is interpreted as +c false.
+C no_time_warp | single_time_warp | multi_time_warp: Sets time warp mode:
no_time_warp: No time warp mode (the default)
single_time_warp: Single time warp mode
multi_time_warp: Multi-time warp mode
+d: If the emulator detects an internal error (or runs out of memory), it, by default, generates both a crash dump and a core dump. The core dump is, however, not very useful as the content of process heaps is destroyed by the crash dump generation.
Option +d instructs the emulator to produce only a core dump and no crash dump if an internal error is detected.
Calling erlang:halt/1 with a string argument still produces a crash dump. On Unix systems, sending an emulator process a SIGUSR1 signal also forces a crash dump.
+dcg DecentralizedCounterGroupsLimit: Limits the number of decentralized counter groups used by decentralized counters optimized for update operations in the Erlang runtime system. By default, the limit is 256.
When the number of schedulers is less than or equal to the limit, each scheduler has its own group. When the number of schedulers is larger than the groups limit, schedulers share groups. Shared groups degrade the performance for updating counters while many reader groups degrade the performance for reading counters. So, the limit is a tradeoff between performance for update operations and performance for read operations. Each group consumes 64 bytes in each counter.
Notice that a runtime system using decentralized counter groups benefits from binding schedulers to logical processors, as the groups are distributed better between schedulers with this option.
This option only affects decentralized counters used for the counters that are keeping track of the memory consumption and the number of terms in ETS tables of type ordered_set with the write_concurrency option activated.
+e Number: Sets the maximum number of ETS tables. This limit is partially obsolete.
+ec: Forces option compressed on all ETS tables. Only intended for test and evaluation.
+fnl: The virtual machine works with filenames as if they are encoded using the ISO Latin-1 encoding, disallowing Unicode characters with code points > 255.
For more information about Unicode filenames, see section Unicode Filenames in the STDLIB User's Guide. Notice that this value also applies to command-line parameters and environment variables (see section  Unicode in Environment and Parameters in the STDLIB User's Guide).
+fnu[{w|i|e}]: The virtual machine works with filenames as if they are encoded using UTF-8 (or some other system-specific Unicode encoding). This is the default on operating systems that enforce Unicode encoding, that is, Windows MacOS X and Android.
The +fnu switch can be followed by w, i, or e to control how wrongly encoded filenames are to be reported:
* w means that a warning is sent to the error_logger whenever a wrongly encoded filename is "skipped" in directory listings. This is the default.
* i means that those wrongly encoded filenames are silently ignored.
* e means that the API function returns an error whenever a wrongly encoded filename (or directory name) is encountered.
Notice that file:read_link/1 always returns an error if the link points to an invalid filename.
+fna[{w|i|e}]: Selection between +fnl and +fnu is done based on the current locale settings in the OS. This means that if you have set your terminal for UTF-8 encoding, the filesystem is expected to use the same encoding for filenames. This is the default on all operating systems, except Android, MacOS X and Windows.
The +fna switch can be followed by w, i, or e. This has effect if the locale settings cause the behavior of +fnu to be selected; see the description of +fnu above. If the locale settings cause the behavior of +fnl to be selected, then w, i, or e have no effect.
+hms Size: Sets the default heap size of processes to the size Size.
+hmbs Size: Sets the default binary virtual heap size of processes to the size Size.
+hmax Size: Sets the default maximum heap size of processes to the size Size. Defaults to 0, which means that no maximum heap size is used. For more information, see process_flag(max_heap_size, MaxHeapSize).
+hmaxel true|false: Sets whether to send an error logger message or not for processes reaching the maximum heap size. Defaults to true. For more information, see process_flag(max_heap_size, MaxHeapSize).
+hmaxk true|false: Sets whether to kill processes reaching the maximum heap size or not. Default to true. For more information, see process_flag(max_heap_size, MaxHeapSize).
+hpds Size: Sets the initial process dictionary size of processes to the size Size.
+hmqd off_heap|on_heap: Sets the default value of the message_queue_data process flag. Defaults to on_heap. If +hmqd is not passed, on_heap will be the default. For more information, see process_flag(message_queue_data, MQD).
+IOp PollSets: Sets the number of IO pollsets to use when polling for I/O. This option is only used on platforms that support concurrent updates of a pollset, otherwise the same number of pollsets are used as IO poll threads. The default is 1.
+IOt PollThreads: Sets the number of IO poll threads to use when polling for I/O. The maximum number of poll threads allowed is 1024. The default is 1.
A good way to check if more IO poll threads are needed is to use microstate accounting and see what the load of the IO poll thread is. If it is high it could be a good idea to add more threads.
+IOPp PollSetsPercentage: Similar to +IOp but uses percentages to set the number of IO pollsets to create, based on the number of poll threads configured. If both +IOPp and +IOp are used, +IOPp is ignored.
+IOPt PollThreadsPercentage: Similar to +IOt but uses percentages to set the number of IO poll threads to create, based on the number of schedulers configured. If both +IOPt and +IOt are used, +IOPt is ignored.
+JPperf true|false: Enables or disables support for the `perf` profiler when running with the JIT on Linux. Defaults to false.
For more details about how to run perf see the perf support section in the BeamAsm internal documentation.
+L: Prevents loading information about source filenames and line numbers. This saves some memory, but exceptions do not contain information about the filenames and line numbers.
+MFlag Value: Memory allocator-specific flags. For more information, see erts_alloc(3erl).
+pc Range: Sets the range of characters that the system considers printable in heuristic detection of strings. This typically affects the shell, debugger, and io:format functions (when ~tp is used in the format string).
Two values are supported for Range:
latin1: The default. Only characters in the ISO Latin-1 range can be considered printable. This means that a character with a code point > 255 is never considered printable and that lists containing such characters are displayed as lists of integers rather than text strings by tools.