neulab/tldr huggingface dataset:
-l     produce a listing of the compiled bytecode for Lua's virtual machine.  Listing bytecodes is useful to learn about Lua's virtual machine.  If no files are given, then luac loads luac.out and lists its contents.  Use -l -l for a full listing.
-o file output to file, instead of the default luac.out.  (You can use '-' for standard output, but not on platforms that open standard output in text mode.)  The output file may be one of the given files because all files are loaded before the output file is written.  Be careful not to overwrite precious files.
-p     load files but do not generate any output file.  Used mainly for syntax checking and for testing precompiled chunks: corrupted files will probably generate errors when loaded.  If no files are given, then luac loads luac.out and tests its contents.  No messages are displayed if the file loads without errors.
-s     strip debug information before writing the output file.  This saves some space in very large chunks, but if errors occur when running a stripped chunk, then the error messages may not contain the full information they usually do.  In particular, line numbers and names of local variables are lost.
-v     show version information.
--     stop handling options.
-      stop handling options and process standard input.
lua(1) The documentation at lua.org.
Error messages should be self explanatory.
R. Ierusalimschy, L. H. de Figueiredo, W. Celes
GIT-RESTORE(1)                     Git Manual                     GIT-RESTORE(1)
git-restore - Restore working tree files
git restore [<options>] [--source=<tree>] [--staged] [--worktree] [--] <pathspec>... git restore [<options>] [--source=<tree>] [--staged] [--worktree] --pathspec-from-file=<file> [--pathspec-file-nul] git restore (-p|--patch) [<options>] [--source=<tree>] [--staged] [--worktree] [--] [<pathspec>...]
Restore specified paths in the working tree with some contents from a restore source. If a path is tracked but does not exist in the restore source, it will be removed to match the source.
The command can also be used to restore the content in the index with --staged, or restore both the working tree and the index with --staged --worktree.
By default, if --staged is given, the contents are restored from HEAD, otherwise from the index. Use --source to restore from a different commit.
See "Reset, restore and revert" in git(1) for the differences between the three commands.
THIS COMMAND IS EXPERIMENTAL. THE BEHAVIOR MAY CHANGE.
-s <tree>, --source=<tree> Restore the working tree files with the content from the given tree. It is common to specify the source tree by naming a commit, branch or tag associated with it.
If not specified, the contents are restored from HEAD if --staged is given, otherwise from the index.
-p, --patch Interactively select hunks in the difference between the restore source and the restore location. See the “Interactive Mode” section of git-add(1) to learn how to operate the --patch mode.
Note that --patch can accept no pathspec and will prompt to restore all modified paths.
-W, --worktree, -S, --staged Specify the restore location. If neither option is specified, by default the working tree is restored. Specifying --staged will only restore the index. Specifying both restores both.
-q, --quiet Quiet, suppress feedback messages. Implies --no-progress.
--progress, --no-progress Progress status is reported on the standard error stream by default when it is attached to a terminal, unless --quiet is specified. This flag enables progress reporting even if not attached to a terminal, regardless of --quiet.
--ours, --theirs When restoring files in the working tree from the index, use stage #2 (ours) or #3 (theirs) for unmerged paths.
Note that during git rebase and git pull --rebase, ours and theirs may appear swapped. See the explanation of the same options in git- checkout(1) for details.
-m, --merge When restoring files on the working tree from the index, recreate the conflicted merge in the unmerged paths.
--conflict=<style> The same as --merge option above, but changes the way the conflicting hunks are presented, overriding the merge.conflictStyle configuration variable. Possible values are "merge" (default) and "diff3" (in addition to what is shown by "merge" style, shows the original contents).
--ignore-unmerged When restoring files on the working tree from the index, do not abort the operation if there are unmerged entries and neither --ours, --theirs, --merge or --conflict is specified. Unmerged paths on the working tree are left alone.
--ignore-skip-worktree-bits In sparse checkout mode, by default is to only update entries matched by <pathspec> and sparse patterns in $GIT_DIR/info/sparse-checkout. This option ignores the sparse patterns and unconditionally restores any files in <pathspec>.
--recurse-submodules, --no-recurse-submodules If <pathspec> names an active submodule and the restore location includes the working tree, the submodule will only be updated if this option is given, in which case its working tree will be restored to the commit recorded in the superproject, and any local modifications overwritten. If nothing (or --no-recurse-submodules) is used, submodules working trees will not be updated. Just like git- checkout(1), this will detach HEAD of the submodule.
--overlay, --no-overlay In overlay mode, the command never removes files when restoring. In no-overlay mode, tracked files that do not appear in the --source tree are removed, to make them match <tree> exactly. The default is no-overlay mode.
--pathspec-from-file=<file> Pathspec is passed in <file> instead of commandline args. If <file> is exactly - then standard input is used. Pathspec elements are separated by LF or CR/LF. Pathspec elements can be quoted as explained for the configuration variable core.quotePath (see git- config(1)). See also --pathspec-file-nul and global --literal-pathspecs.
--pathspec-file-nul Only meaningful with --pathspec-from-file. Pathspec elements are separated with NUL character and all other characters are taken literally (including newlines and quotes).
<pathspec>... Limits the paths affected by the operation.
For more details, see the pathspec entry in gitglossary(7).
The following sequence switches to the master branch, reverts the Makefile to two revisions back, deletes hello.c by mistake, and gets it back from the index.
$ git switch master $ git restore --source master~2 Makefile  (1) $ rm -f hello.c $ git restore hello.c                     (2)
1. take a file out of another commit 2. restore hello.c from the index
If you want to restore all C source files to match the version in the index, you can say
$ git restore '*.c'
Note the quotes around *.c. The file hello.c will also be restored, even though it is no longer in the working tree, because the file globbing is used to match entries in the index (not in the working tree by the shell).
To restore all files in the current directory
$ git restore .
or to restore all working tree files with top pathspec magic (see gitglossary(7))
$ git restore :/
To restore a file in the index to match the version in HEAD (this is the same as using git-reset(1))
$ git restore --staged hello.c
or you can restore both the index and the working tree (this the same as using git-checkout(1))
$ git restore --source=HEAD --staged --worktree hello.c
or the short form which is more practical but less readable:
$ git restore -s@ -SW hello.c
git-checkout(1), git-reset(1)
WRITE(1)                          User Commands                         WRITE(1)
write - send a message to another user
write user [ttyname]
write allows you to communicate with other users, by copying lines from your terminal to theirs.
When you run the write command, the user you are writing to gets a message of the form:
Message from yourname@yourhost on yourtty at hh:mm ...
Any further lines you enter will be copied to the specified user’s terminal. If the other user wants to reply, they must run write as well.
When you are done, type an end-of-file or interrupt character. The other user will see the message EOF indicating that the conversation is over.
You can prevent people (other than the superuser) from writing to you with the mesg(1) command. Some commands, for example nroff(1) and pr(1), may automatically disallow writing, so that the output they produce isn’t overwritten.
If the user you want to write to is logged in on more than one terminal, you can specify which terminal to write to by giving the terminal name as the second operand to the write command. Alternatively, you can let write select one of the terminals - it will pick the one with the shortest idle time. This is so that if the user is logged in at work and also dialed up from home, the message will go to the right place.
The traditional protocol for writing to someone is that the string -o, either at the end of a line or on a line by itself, means that it’s the other person’s turn to talk. The string oo means that the person believes the conversation to be over.
A write command appeared in Version 6 AT&T UNIX.
mesg(1), talk(1), who(1)
The write command is part of the util-linux package which can be downloaded from Linux Kernel Archive <https://www.kernel.org/pub/linux/utils/util-linux/>.
jps(1)                       General Commands Manual                      jps(1)
Name jps - Java Virtual Machine Process Status Tool
jps [ options ] [ hostid ]
options Command-line options.
hostid The host identifier of the host for which the process report should be generated. The hostid may include optional components that indicate the communications protocol, port number, and other implementation specific data.
The jps tool lists the instrumented HotSpot Java Virtual Machines (JVMs) on the target system. The tool is limited to reporting information on JVMs for which it has the access permissions.
If jps is run without specifying a hostid, it will look for instrumented JVMs on the local host. If started with a hostid, it will look for JVMs on the indicated host, using the specified protocol and port. A jstatd process is assumed to be running on the target host.
The jps command will report the local VM identifier, or lvmid, for each instrumented JVM found on the target system. The lvmid is typically, but not necessarily, the operating system's process identifier for the JVM process. With no options, jps will list each Java application's lvmid followed by the short form of the application's class name or jar file name. The short form of the class name or JAR file name omits the class's package information or the JAR files path information.
The jps command uses the java launcher to find the class name and arguments passed to the main method. If the target JVM is started with a custom launcher, the class name (or JAR file name) and the arguments to the main method will not be available. In this case, the jps command will output the string Unknown for the class name or JAR file name and for the arguments to the main method.
The list of JVMs produced by the jps command may be limited by the permissions granted to the principal running the command. The command will only list the JVMs for which the principle has access rights as determined by operating system specific access control mechanisms.
NOTE: This utility is unsupported and may not be available in future versions of the JDK. It is not currently available on Windows 98 and Windows ME platforms.
The jps command supports a number of options that modify the output of the command. These options are subject to change or removal in the future.
-q Suppress the output of the class name, JAR file name, and arguments passed to the main method, producing only a list of local VM identifiers.
-m Output the arguments passed to the main method. The output may be null for embedded JVMs.
-l Output the full package name for the application's main class or the full path name to the application's JAR file.
-v Output the arguments passed to the JVM.
-V Output the arguments passed to the JVM through the flags file (the .hotspotrc file or the file specified by the -XX:Flags=<filename> argument).
-Joption Pass option to the java launcher called by jps. For example, -J-Xms48m sets the startup memory to 48 megabytes. It is a common convention for -J to pass options to the underlying VM executing applications written in Java.
HOST IDENTIFIER The host identifier, or hostid is a string that indicates the target system. The syntax of the hostid string largely corresponds to the syntax of a URI:
[protocol:][[//]hostname][:port][/servername]
protocol The communications protocol. If the protocol is omitted and a hostname is not specified, the default protocol is a platform specific, optimized, local protocol. If the protocol is omitted and a hostname is specified, then the default protocol is rmi.
hostname A hostname or IP address indicating the target host. If hostname is omitted, then the target host is the local host.
port The default port for communicating with the remote server. If the hostname is omitted or the protocol specifies an optimized, local protocol, then port is ignored. Otherwise, treatment of the port parameter is implementation specific. For the default rmi protocol the port indicates the port number for the rmiregistry on the remote host. If port is omitted, and protocol indicates rmi, then the default rmiregistry port (1099) is used.
servername The treatment of this parameter depends on the implementation. For the optimized, local protocol, this field is ignored. For the rmi protocol, this parameter is a string representing the name of the RMI remote object on the remote host. See the -n option for the jstatd(1) command.
The output of the jps command follows the following pattern:
lvmid [ [ classname | JARfilename | "Unknown"] [ arg* ] [ jvmarg* ] ]
Where all output tokens are separated by white space. An arg that includes embedded white space will introduce ambiguity when attempting to map arguments to their actual positional parameters. NOTE: You are advised not to write scripts to parse jps output since the format may change in future releases. If you choose to write scripts that parse jps output, expect to modify them for future releases of this tool.
This section provides examples of the jps command.
Listing the instrumented JVMs on the local host:
18027 Java2Demo.JAR
18032 jps
18005 jstat
Listing the instrumented JVMs on a remote host:
This example assumes that the jstat server and either the its internal RMI registry or a separate external rmiregistry process are running on the remote host on the default port (port 1099). It also assumes that the local host has appropriate permissions to access the remote host. This example also includes the -l option to output the long form of the class names or JAR file names.
jps -l remote.domain
3002 /opt/jdk1.7.0/demo/jfc/Java2D/Java2Demo.JAR
2857 sun.tools.jstatd.jstatd
Listing the instrumented JVMs on a remote host with a non-default port for the RMI registry
This example assumes that the jstatd server, with an internal RMI registry bound to port 2002, is running on the remote host. This example also uses the -m option to include the arguments passed to the main method of each of the listed Java applications.
jps -m remote.domain:2002
3102 sun.tools.jstatd.jstatd -p 2002
o java(1) - the Java Application Launcher
o jstat(1) - the Java virtual machine Statistics Monitoring Tool
o jstatd(1) - the jstat daemon
o rmiregistry(1) - the Java Remote Object Registry
man(8)                          fwupdmgr man page                         man(8)
fwupdmgr - firmware update manager client utility
fwupdmgr [CMD]
fwupdmgr is a command line fwupd client intended to be used interactively.  The output between versions of fwupd is not guaranteed to be stable.
The fwupdmgr command takes various options depending on the action.  Run fwupdmgr --help for the full list.
Commands that successfully execute will return "0", but commands that have no actions but successfully execute will return "2".
fwupdagent(1), fwupdtool(1)
Richard Hughes (richard@hughsie.com)
REALPATH(1)                       User Commands                      REALPATH(1)
realpath - print the resolved path
realpath [OPTION]... FILE...
Print the resolved absolute file name; all but the last component must exist
-e, --canonicalize-existing all components of the path must exist
-m, --canonicalize-missing no path components need exist or be a directory
-L, --logical resolve '..' components before symlinks
-P, --physical resolve symlinks as encountered (default)
-q, --quiet suppress most error messages
--relative-to=DIR print the resolved path relative to DIR
--relative-base=DIR print absolute paths unless paths below DIR
-s, --strip, --no-symlinks don't expand symlinks
readlink(1), readlink(2), realpath(3)
Full documentation <https://www.gnu.org/software/coreutils/realpath> or available locally via: info '(coreutils) realpath invocation'
RTV(1)                         Usage and Commands                         RTV(1)
RTV - Reddit Terminal Viewer
rtv [URL] [-s SUBREDDIT]
RTV (Reddit Terminal Viewer) is a terminal interface to view and interact with reddit.
URL    [optional] Full URL of a submission to open
-h, --help show this help message and exit
-s SUBREDDIT Name of the subreddit that will be loaded on start
--log FILE Log HTTP requests to the given file
--config FILE Load configuration settings from the given file
--ascii Enable ascii-only mode
--monochrome Disable color
--theme FILE Color theme to use, see --list-themes for valid options
--list-themes List all of the available color themes
--non-persistent Forget the authenticated user when the program exits
--no-autologin Do not authenticate automatically on startup
--clear-auth Remove any saved user data before launching
--copy-config Copy the default configuration to {HOME}/.config/rtv/rtv.cfg
--copy-mailcap Copy an example mailcap configuration to {HOME}/.mailcap
--enable-media Open external links using programs defined in the mailcap config
-V, --version show program's version number and exit
--no-flash Disable screen flashing
--debug-info Show system and environment information and exit
Move the cursor using the arrow keys or vim style movement. Press up and down to scroll through submissions. Press right to view the selected submission and left to return. Press ? to open the help screen.
$XDG_CONFIG_HOME/rtv/rtv.cfg The configuration file can be used to customize default program settings.
$XDG_DATA_HOME/rtv/refresh-token After you login to reddit, your most recent OAuth refresh token will be stored for future sessions.
$XDG_DATA_HOME/rtv/history.log This file stores URLs that have been recently opened in order to visually highlight them as "seen".
RTV_EDITOR Text editor to use when editing comments and submissions. Will fallback to $EDITOR.
RTV_URLVIEWER Url viewer to use to extract links from comments.  Requires a compatible program to be installed.
RTV_BROWSER Web browser to use when opening links. Will fallback to $BROWSER.
Michael Lazar <lazar.michael22@gmail.com> (2017).
Report bugs to https://github.com/michael-lazar/rtv/issues
compsize(8)                           btrfs                          compsize(8)
compsize - calculate compression ratio of a set of files on btrfs
compsize file-or-dir [ file-or-dir ... ]
compsize takes a list of files on a btrfs filesystem (recursing directories) and measures used compression types and the effective compression ratio.  Besides compression, compsize shows the effect of reflinks (cp --reflink, snapshots, deduplication), and certain types of btrfs waste.
The program gives a report similar to: Processed 90319 files. Type       Perc     Disk Usage   Uncompressed Referenced TOTAL       79%      1.4G         1.8G         1.9G none       100%      1.0G         1.0G         1.0G lzo         53%      446M         833M         843M
The fields above are:
Type   compression algorithm
Perc   disk usage/uncompressed (compression ratio)
Disk Usage blocks on the disk; this is what storing these files actually costs you (save for RAID considerations)
Uncompressed uncompressed extents; what you would need without compression - includes deduplication savings and pinned extent waste
Referenced apparent file sizes (sans holes); this is what a traditional filesystem that supports holes and efficient tail packing, or tar -S, would need to store these files
Let's see this on an example: a file 128K big is stored as a single extent A which compressed to a single 4K page.  It then receives a write of 32K at offset 32K, which also compressed to a single 4K page, stored as extent B.
The file now appears as: +-------+-------+---------------+ extent A | used  | waste | used          | +-------+-------+---------------+ extent B         | used  | +-------+
The "waste" inside extent A can't be gotten rid until the whole extent is rewritten (for example by defrag).  If compressed, the whole extent needs to be read every time that part of the file is being read, thus the "waste" is still required.
In this case, we have: Disk Usage: 8KB, Uncompressed: 160K, Referenced: 128K.
-b/--bytes Show raw byte counts rather than human-friendly sizes.
-x/--one-file-system Skip files and directories on different file systems.
USR1   Displays partial data for files processed so far.
Recently written files may show as not taking any space until they're actually allocated and compressed; this happens once they're synced or on natural writeout, typically on the order of 30 seconds.
The ioctls used by this program require root.
Inline extents are considered to be always unique, even if they share the same bytes on the disk.
This program doesn't currently support filesystems above 8TB on 32-bit machines  but neither do other btrfs tools.
MOSQUITTO(8)               System management commands               MOSQUITTO(8)
mosquitto - an MQTT broker
mosquitto [-c config file] [-d | --daemon] [-p port number] [-v]
mosquitto is a broker for the MQTT protocol version 5.0/3.1.1/3.1.
-c, --config-file Load configuration from a file. If not given, then the broker will listen on port 1883 bound to the loopback interface, and the default values as described in mosquitto.conf(5) are used.
Important See the -p option for a description of changes in behaviour from 1.6.x to 2.0.
-d, --daemon Run mosquitto in the background as a daemon. All other behaviour remains the same.
-p, --port Listen on the port specified. May be specified up to 10 times to open multiple sockets listening on different ports.
Important In version 1.6.x and earlier, the listener defined by -p (or the default port of 1883) would be bound to all interfaces and so be accessible from any network. It could also be used in combination with -c.
From version 2.0 onwards, the listeners defined with -p are bound to the loopback interface only, and so can only be connected to from the local machine. If both -p is used and a listener is defined in a configuration file, then the -p options are IGNORED.
-v, --verbose Use verbose logging. This is equivalent to setting log_type to all in the configuration file. This overrides and logging options given in the configuration file.
The broker can be configured using a configuration file as described in mosquitto.conf(5) and this is the main point of information for mosquitto. The files required for SSL/TLS support are described in mosquitto-tls(7).
Some versions of Windows have limitations on the number of concurrent connections due to the Windows API being used. In modern versions of Windows, e.g. Windows 10 or Windows Server 2019, this is approximately 8192 connections. In earlier versions of Windows, this limit is 2048 connections.
Mosquitto supports MQTT v5.0, v3.1.1, and v3.1.
MQTT v5.0 Mosquitto provides full MQTT v5.0 support, but some features are not used directly. The following sections describe the new features and explain where Mosquitto does not make use of a feature.
Features Enhanced authentication Basic MQTT authentication uses username/password checks. Enhanced authentication allows different authentication schemes to be integrated into MQTT, and even those schemes with multiple step processes. Clients request a particular type of authentication and if the broker is configured for that scheme the authentication continues. Mosquitto supports enhanced authentication through plugins.
Error handling Most MQTT packets now have the concept of a reason code which indicates success or failure, and what the failure was. Mosquitto provides full support for reason codes, but does not make use of the reason string feature which can be used to provide a human readable error string to explain the reason code.
Flow control The number of "in flight" messages for QoS 1 and QoS 2 can be controlled by both the client and the broker.
Request / response MQTT v5.0 adds a request/response pattern that allows a client to publish a message and instruct the subscribers of that message where to publish a response.
Server redirection Server redirection is the concept of telling a client to connect to a different MQTT broker, either on CONNECT or with a broker initiated DISCONNECT. Mosquitto does not currently make use of this feature.
Shared subscriptions When multiple clients subscribe to the same shared subscription, only one client out of the group will receive each message which allows for distributing work loads.
Packet properties MQTT v5.0 allows properties to be added to packets to control certain behaviour. Unless noted, Mosquitto support the properties listed below.
•   Authentication data
•   Authentication method
•   Maximum packet size
•   Receive maximum
•   Request problem information - supported but not used
•   Request response information - supported but not used
•   Session expiry interval
•   Topic alias maximum
•   User property
Last will and testament
•   Content type
•   Correlation data
•   Message expiry interval
•   Payload format indicator
•   Response topic
•   Will delay interval
CONNACK
•   Assigned client identifier
•   Maximum qos
•   Reason string - supported but not used
•   Response information - supported but not used
•   Retain available
•   Server keep alive
•   Server reference - supported but not used
•   Shared subscription available
•   Subscription identifiers available
•   Wildcard subscription available
•   Subscription identifier
•   Topic alias
PUBACK / PUBREC / PUBREL / PUBCOMP / SUBACK / SUBSCRIBE / SUBACK
MQTT v3.1.1 Mosquitto provides full MQTT v3.1.1 support.
MQTT v3.1 Mosquitto provides full MQTT v3.1 support.
MQTT v3 MQTT v3 is an obsolete version of the protocol that does not support username/password authentication and used the clean start flag in the CONNECT packet which applied only to the start of a session. An MQTT v3 client will be able to successfully connect to a Mosquitto instance that does not require authentication.
Clients can find information about the broker by subscribing to topics in the $SYS hierarchy as follows. Topics marked as static are only sent once per client on subscription. All other topics are updated every sys_interval seconds. If sys_interval is 0, then updates are not sent.
Note that if you are using a command line client to interact with the $SYS topics and your shell interprets $ as an environment variable, you need to place the topic in single quotes '$SYS/...' or to escape the dollar symbol: \$SYS/... otherwise the $SYS will be treated as an environment variable.
$SYS/broker/bytes/received The total number of bytes received since the broker started.
$SYS/broker/bytes/sent The total number of bytes sent since the broker started.
$SYS/broker/clients/connected, $SYS/broker/clients/active (deprecated) The number of currently connected clients.
$SYS/broker/clients/expired The number of disconnected persistent clients that have been expired and removed through the persistent_client_expiration option.
$SYS/broker/clients/disconnected, $SYS/broker/clients/inactive (deprecated) The total number of persistent clients (with clean session disabled) that are registered at the broker but are currently disconnected.
$SYS/broker/clients/maximum The maximum number of clients that have been connected to the broker at the same time.
$SYS/broker/clients/total The total number of active and inactive clients currently connected and registered on the broker.
$SYS/broker/connection/# When bridges are configured to/from the broker, common practice is to provide a status topic that indicates the state of the connection. This is provided within $SYS/broker/connection/ by default. If the value of the topic is 1 the connection is active, if 0 then it is not active. See the Bridges section below for more information on bridges.
$SYS/broker/heap/current size The current size of the heap memory in use by mosquitto. Note that this topic may be unavailable depending on compile time options.
$SYS/broker/heap/maximum size The largest amount of heap memory used by mosquitto. Note that this topic may be unavailable depending on compile time options.
$SYS/broker/load/connections/+ The moving average of the number of CONNECT packets received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of connections received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/bytes/received/+ The moving average of the number of bytes received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of bytes received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/bytes/sent/+ The moving average of the number of bytes sent by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of bytes sent in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/messages/received/+ The moving average of the number of all types of MQTT messages received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of messages received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/messages/sent/+ The moving average of the number of all types of MQTT messages sent by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of messages send in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/publish/dropped/+ The moving average of the number of publish messages dropped by the broker over different time intervals. This shows the rate at which durable clients that are disconnected are losing messages. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of messages dropped in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/publish/received/+ The moving average of the number of publish messages received by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of publish messages received in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/publish/sent/+ The moving average of the number of publish messages sent by the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of publish messages sent in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/load/sockets/+ The moving average of the number of socket connections opened to the broker over different time intervals. The final "+" of the hierarchy can be 1min, 5min or 15min. The value returned represents the number of socket connections in 1 minute, averaged over 1, 5 or 15 minutes.
$SYS/broker/messages/inflight The number of messages with QoS>0 that are awaiting acknowledgments.
$SYS/broker/messages/received The total number of messages of any type received since the broker started.
$SYS/broker/messages/sent The total number of messages of any type sent since the broker started.
$SYS/broker/publish/messages/dropped The total number of publish messages that have been dropped due to inflight/queuing limits. See the max_inflight_messages and max_queued_messages options in mosquitto.conf(5) for more information.
$SYS/broker/publish/messages/received The total number of PUBLISH messages received since the broker started.
$SYS/broker/publish/messages/sent The total number of PUBLISH messages sent since the broker started.
$SYS/broker/retained messages/count The total number of retained messages active on the broker.
$SYS/broker/store/messages/count, $SYS/broker/messages/stored (deprecated) The number of messages currently held in the message store. This includes retained messages and messages queued for durable clients.
$SYS/broker/store/messages/bytes The number of bytes currently held by message payloads in the message store. This includes retained messages and messages queued for durable clients.
$SYS/broker/subscriptions/count The total number of subscriptions active on the broker.
$SYS/broker/version The version of the broker. Static.
In addition to allowing clients to subscribe to specific topics, mosquitto also allows the use of two wildcards in subscriptions.  + is the wildcard used to match a single level of hierarchy. For example, for a topic of "a/b/c/d", the following example subscriptions will match:
•   a/b/c/d
•   +/b/c/d
•   a/+/c/d
•   a/+/+/d
•   +/+/+/+
The following subscriptions will not match:
•   a/b/c
•   b/+/c/d
•   +/+/+
The second wildcard is # and is used to match all subsequent levels of hierarchy. With a topic of "a/b/c/d", the following example subscriptions will match:
•   #
•   a/#
•   a/b/#
•   a/b/c/#
•   +/b/c/#
The $SYS hierarchy does not match a subscription of "#". If you want to observe the entire $SYS hierarchy, subscribe to $SYS/#.
Note that the wildcards must be only ever used on their own, so a subscription of "a/b+/c" is not valid use of a wildcard. The # wildcard must only ever be used as the final character of a subscription.
Multiple brokers can be connected together with the bridging functionality. This is useful where it is desirable to share information between locations, but where not all of the information needs to be shared. An example could be where a number of users are running a broker to help record power usage and for a number of other reasons. The power usage could be shared through bridging all of the user brokers to a common broker, allowing the power usage of all users to be collected and compared. The other information would remain local to each broker.
For information on configuring bridges, see mosquitto.conf(5).
On POSIX systems Mosquitto can receive signals and act on them as described below. To send signals, use e.g.  kill -HUP <process id of mosquitto>
SIGHUP Upon receiving the SIGHUP signal, mosquitto will attempt to reload configuration file data, assuming that the -c argument was provided when mosquitto was started. Not all configuration parameters can be reloaded without restarting. See mosquitto.conf(5) for details.
If TLS certificates are in use, then mosquitto will also reload certificate on receiving a SIGHUP.
SIGUSR1 Upon receiving the SIGUSR1 signal, mosquitto will write the persistence database to disk. This signal is only acted upon if persistence is enabled.
SIGUSR2 The SIGUSR2 signal causes mosquitto to print out the current subscription tree, along with information about where retained messages exist. This is intended as a testing feature only and may be removed at any time.
/etc/mosquitto/mosquitto.conf Configuration file. See mosquitto.conf(5).
/var/lib/mosquitto/mosquitto.db Persistent message data storage location if persist enabled.
/etc/hosts.allow, /etc/hosts.deny Host access control via tcp-wrappers as described in hosts_access(5).
mosquitto bug information can be found at https://github.com/eclipse/mosquitto/issues
mqtt(7), mosquitto-tls(7), mosquitto.conf(5), hosts_access(5), mosquitto_ctrl(1), mosquitto_passwd(1), mosquitto_pub(1), mosquitto_rr(1), mosquitto_sub(1), libmosquitto(3)
Thanks to Andy Stanford-Clark for being one of the people who came up with MQTT in the first place. Thanks to Andy and Nicholas O'Leary for providing clarifications of the protocol.
Thanks also to everybody at the Ubuntu UK Podcast and Linux Outlaws for organising OggCamp, where Andy gave a talk that inspired mosquitto.
Roger Light <roger@atchoo.org>
OBJDUMP(1)                    GNU Development Tools                   OBJDUMP(1)
objdump - display information from object files
objdump [-a|--archive-headers] [-b bfdname|--target=bfdname] [-C|--demangle[=style] ] [-d|--disassemble[=symbol]] [-D|--disassemble-all] [-z|--disassemble-zeroes] [-EB|-EL|--endian={big | little }] [-f|--file-headers] [-F|--file-offsets] [--file-start-context] [-g|--debugging] [-e|--debugging-tags] [-h|--section-headers|--headers] [-i|--info] [-j section|--section=section] [-l|--line-numbers] [-S|--source] [--source-comment[=text]] [-m machine|--architecture=machine] [-M options|--disassembler-options=options] [-p|--private-headers] [-P options|--private=options] [-r|--reloc] [-R|--dynamic-reloc] [-s|--full-contents] [-W[lLiaprmfFsoORtUuTgAckK]| --dwarf[=rawline,=decodedline,=info,=abbrev,=pubnames,=aranges,=macro,=frames,=frames-interp,=str,=str-offsets,=loc,=Ranges,=pubtypes,=trace_info,=trace_abbrev,=trace_aranges,=gdb_index,=addr,=cu_index,=links,=follow-links]] [--ctf=section] [-G|--stabs] [-t|--syms] [-T|--dynamic-syms] [-x|--all-headers] [-w|--wide] [--start-address=address] [--stop-address=address] [--no-addresses] [--prefix-addresses] [--[no-]show-raw-insn] [--adjust-vma=offset] [--dwarf-depth=n] [--dwarf-start=n] [--ctf-parent=section] [--no-recurse-limit|--recurse-limit] [--special-syms] [--prefix=prefix] [--prefix-strip=level] [--insn-width=width] [--visualize-jumps[=color|=extended-color|=off] [-V|--version] [-H|--help] objfile...
objdump displays information about one or more object files.  The options control what particular information to display.  This information is mostly useful to programmers who are working on the compilation tools, as opposed to programmers who just want their program to compile and work.
objfile... are the object files to be examined.  When you specify archives, objdump shows information on each of the member object files.
The long and short forms of options, shown here as alternatives, are equivalent.  At least one option from the list -a,-d,-D,-e,-f,-g,-G,-h,-H,-p,-P,-r,-R,-s,-S,-t,-T,-V,-x must be given.
-a --archive-header If any of the objfile files are archives, display the archive header information (in a format similar to ls -l).  Besides the information you could list with ar tv, objdump -a shows the object file format of each archive member.
--adjust-vma=offset When dumping information, first add offset to all the section addresses.  This is useful if the section addresses do not correspond to the symbol table, which can happen when putting sections at particular addresses when using a format which can not represent section addresses, such as a.out.
-b bfdname --target=bfdname Specify that the object-code format for the object files is bfdname. This option may not be necessary; objdump can automatically recognize many formats.
objdump -b oasys -m vax -h fu.o
displays summary information from the section headers (-h) of fu.o, which is explicitly identified (-m) as a VAX object file in the format produced by Oasys compilers.  You can list the formats available with the -i option.
-C --demangle[=style] Decode (demangle) low-level symbol names into user-level names. Besides removing any initial underscore prepended by the system, this makes C++ function names readable.  Different compilers have different mangling styles. The optional demangling style argument can be used to choose an appropriate demangling style for your compiler.
--recurse-limit --no-recurse-limit --recursion-limit --no-recursion-limit Enables or disables a limit on the amount of recursion performed whilst demangling strings.  Since the name mangling formats allow for an infinite level of recursion it is possible to create strings whose decoding will exhaust the amount of stack space available on the host machine, triggering a memory fault.  The limit tries to prevent this from happening by restricting recursion to 2048 levels of nesting.
The default is for this limit to be enabled, but disabling it may be necessary in order to demangle truly complicated names.  Note however that if the recursion limit is disabled then stack exhaustion is possible and any bug reports about such an event will be rejected.
-g --debugging Display debugging information.  This attempts to parse STABS debugging format information stored in the file and print it out using a C like syntax.  If no STABS debugging was found this option falls back on the -W option to print any DWARF information in the file.
-e --debugging-tags Like -g, but the information is generated in a format compatible with ctags tool.
-d --disassemble --disassemble=symbol Display the assembler mnemonics for the machine instructions from the input file.  This option only disassembles those sections which are expected to contain instructions.  If the optional symbol argument is given, then display the assembler mnemonics starting at symbol.  If symbol is a function name then disassembly will stop at the end of the function, otherwise it will stop when the next symbol is encountered.  If there are no matches for symbol then nothing will be displayed.
Note if the --dwarf=follow-links option has also been enabled then any symbol tables in linked debug info files will be read in and used when disassembling.
-D --disassemble-all Like -d, but disassemble the contents of all sections, not just those expected to contain instructions.
This option also has a subtle effect on the disassembly of instructions in code sections.  When option -d is in effect objdump will assume that any symbols present in a code section occur on the boundary between instructions and it will refuse to disassemble across such a boundary.  When option -D is in effect however this assumption is supressed.  This means that it is possible for the output of -d and -D to differ if, for example, data is stored in code sections.
If the target is an ARM architecture this switch also has the effect of forcing the disassembler to decode pieces of data found in code sections as if they were instructions.
--no-addresses When disassembling, don't print addresses on each line or for symbols and relocation offsets.  In combination with --no-show-raw-insn this may be useful for comparing compiler output.
--prefix-addresses When disassembling, print the complete address on each line.  This is the older disassembly format.
-EB -EL --endian={big|little} Specify the endianness of the object files.  This only affects disassembly.  This can be useful when disassembling a file format which does not describe endianness information, such as S-records.
-f --file-headers Display summary information from the overall header of each of the objfile files.
-F --file-offsets When disassembling sections, whenever a symbol is displayed, also display the file offset of the region of data that is about to be dumped.  If zeroes are being skipped, then when disassembly resumes, tell the user how many zeroes were skipped and the file offset of the location from where the disassembly resumes.  When dumping sections, display the file offset of the location from where the dump starts.
--file-start-context Specify that when displaying interlisted source code/disassembly (assumes -S) from a file that has not yet been displayed, extend the context to the start of the file.
-h --section-headers --headers Display summary information from the section headers of the object file.
File segments may be relocated to nonstandard addresses, for example by using the -Ttext, -Tdata, or -Tbss options to ld.  However, some object file formats, such as a.out, do not store the starting address of the file segments.  In those situations, although ld relocates the sections correctly, using objdump -h to list the file section headers cannot show the correct addresses.  Instead, it shows the usual addresses, which are implicit for the target.
Note, in some cases it is possible for a section to have both the READONLY and the NOREAD attributes set.  In such cases the NOREAD attribute takes precedence, but objdump will report both since the exact setting of the flag bits might be important.
-H --help Print a summary of the options to objdump and exit.
-i --info Display a list showing all architectures and object formats available for specification with -b or -m.
-j name --section=name Display information only for section name.
-l --line-numbers Label the display (using debugging information) with the filename and source line numbers corresponding to the object code or relocs shown. Only useful with -d, -D, or -r.
-m machine --architecture=machine Specify the architecture to use when disassembling object files. This can be useful when disassembling object files which do not describe architecture information, such as S-records.  You can list the available architectures with the -i option.
If the target is an ARM architecture then this switch has an additional effect.  It restricts the disassembly to only those instructions supported by the architecture specified by machine.  If it is necessary to use this switch because the input file does not contain any architecture information, but it is also desired to disassemble all the instructions use -marm.
-M options --disassembler-options=options Pass target specific information to the disassembler.  Only supported on some targets.  If it is necessary to specify more than one disassembler option then multiple -M options can be used or can be placed together into a comma separated list.
For ARC, dsp controls the printing of DSP instructions, spfp selects the printing of FPX single precision FP instructions, dpfp selects the printing of FPX double precision FP instructions, quarkse_em selects the printing of special QuarkSE-EM instructions, fpuda selects the printing of double precision assist instructions, fpus selects the printing of FPU single precision FP instructions, while fpud selects the printing of FPU double precision FP instructions. Additionally, one can choose to have all the immediates printed in hexadecimal using hex.  By default, the short immediates are printed using the decimal representation, while the long immediate values are printed as hexadecimal.
cpu=... allows one to enforce a particular ISA when disassembling instructions, overriding the -m value or whatever is in the ELF file. This might be useful to select ARC EM or HS ISA, because architecture is same for those and disassembler relies on private ELF header data to decide if code is for EM or HS.  This option might be specified multiple times - only the latest value will be used.  Valid values are same as for the assembler -mcpu=... option.
If the target is an ARM architecture then this switch can be used to select which register name set is used during disassembler. Specifying -M reg-names-std (the default) will select the register names as used in ARM's instruction set documentation, but with register 13 called 'sp', register 14 called 'lr' and register 15 called 'pc'.  Specifying -M reg-names-apcs will select the name set used by the ARM Procedure Call Standard, whilst specifying -M reg- names-raw will just use r followed by the register number.
There are also two variants on the APCS register naming scheme enabled by -M reg-names-atpcs and -M reg-names-special-atpcs which use the ARM/Thumb Procedure Call Standard naming conventions. (Either with the normal register names or the special register names).
This option can also be used for ARM architectures to force the disassembler to interpret all instructions as Thumb instructions by using the switch --disassembler-options=force-thumb.  This can be useful when attempting to disassemble thumb code produced by other compilers.
For AArch64 targets this switch can be used to set whether instructions are disassembled as the most general instruction using the -M no-aliases option or whether instruction notes should be generated as comments in the disasssembly using -M notes.
For the x86, some of the options duplicate functions of the -m switch, but allow finer grained control.
"x86-64" "i386" "i8086" Select disassembly for the given architecture.
"intel" "att" Select between intel syntax mode and AT&T syntax mode.
"amd64" "intel64" Select between AMD64 ISA and Intel64 ISA.