neulab/tldr huggingface dataset:
trace2.eventNesting Integer. Specifies desired depth of nested regions in the event output. Regions deeper than this value will be omitted. May be overridden by the GIT_TRACE2_EVENT_NESTING environment variable. Defaults to 2.
trace2.configParams A comma-separated list of patterns of "important" config settings that should be recorded in the trace2 output. For example, core.*,remote.*.url would cause the trace2 output to contain events listing each configured remote. May be overridden by the GIT_TRACE2_CONFIG_PARAMS environment variable. Unset by default.
trace2.envVars A comma-separated list of "important" environment variables that should be recorded in the trace2 output. For example, GIT_HTTP_USER_AGENT,GIT_CONFIG would cause the trace2 output to contain events listing the overrides for HTTP user agent and the location of the Git configuration file (assuming any are set). May be overridden by the GIT_TRACE2_ENV_VARS environment variable. Unset by default.
trace2.destinationDebug Boolean. When true Git will print error messages when a trace target destination cannot be opened for writing. By default, these errors are suppressed and tracing is silently disabled. May be overridden by the GIT_TRACE2_DST_DEBUG environment variable.
trace2.maxFiles Integer. When writing trace files to a target directory, do not write additional traces if we would exceed this many files. Instead, write a sentinel file that will block further tracing to this directory. Defaults to 0, which disables this check.
transfer.fsckObjects When fetch.fsckObjects or receive.fsckObjects are not set, the value of this variable is used instead. Defaults to false.
When set, the fetch or receive will abort in the case of a malformed object or a link to a nonexistent object. In addition, various other issues are checked for, including legacy issues (see fsck.<msg-id>), and potential security issues like the existence of a .GIT directory or a malicious .gitmodules file (see the release notes for v2.2.1 and v2.17.1 for details). Other sanity and security checks may be added in future releases.
On the receiving side, failing fsckObjects will make those objects unreachable, see "QUARANTINE ENVIRONMENT" in git-receive-pack(1). On the fetch side, malformed objects will instead be left unreferenced in the repository.
Due to the non-quarantine nature of the fetch.fsckObjects implementation it cannot be relied upon to leave the object store clean like receive.fsckObjects can.
As objects are unpacked they’re written to the object store, so there can be cases where malicious objects get introduced even though the "fetch" failed, only to have a subsequent "fetch" succeed because only new incoming objects are checked, not those that have already been written to the object store. That difference in behavior should not be relied upon. In the future, such objects may be quarantined for "fetch" as well.
For now, the paranoid need to find some way to emulate the quarantine environment if they’d like the same protection as "push". E.g. in the case of an internal mirror do the mirroring in two steps, one to fetch the untrusted objects, and then do a second "push" (which will use the quarantine) to another internal repo, and have internal clients consume this pushed-to repository, or embargo internal fetches and only allow them once a full "fsck" has run (and no new fetches have happened in the meantime).
transfer.hideRefs String(s) receive-pack and upload-pack use to decide which refs to omit from their initial advertisements. Use more than one definition to specify multiple prefix strings. A ref that is under the hierarchies listed in the value of this variable is excluded, and is hidden when responding to git push or git fetch. See receive.hideRefs and uploadpack.hideRefs for program-specific versions of this config.
You may also include a !  in front of the ref name to negate the entry, explicitly exposing it, even if an earlier entry marked it as hidden. If you have multiple hideRefs values, later entries override earlier ones (and entries in more-specific config files override less-specific ones).
If a namespace is in use, the namespace prefix is stripped from each reference before it is matched against transfer.hiderefs patterns. In order to match refs before stripping, add a ^ in front of the ref name. If you combine !  and ^, !  must be specified first.
For example, if refs/heads/master is specified in transfer.hideRefs and the current namespace is foo, then refs/namespaces/foo/refs/heads/master is omitted from the advertisements. If uploadpack.allowRefInWant is set, upload-pack will treat want-ref refs/heads/master in a protocol v2 fetch command as if refs/namespaces/foo/refs/heads/master did not exist.  receive-pack, on the other hand, will still advertise the object id the ref is pointing to without mentioning its name (a so-called ".have" line).
Even if you hide refs, a client may still be able to steal the target objects via the techniques described in the "SECURITY" section of the gitnamespaces(7) man page; it’s best to keep private data in a separate repository.
transfer.unpackLimit When fetch.unpackLimit or receive.unpackLimit are not set, the value of this variable is used instead. The default value is 100.
transfer.advertiseSID Boolean. When true, client and server processes will advertise their unique session IDs to their remote counterpart. Defaults to false.
uploadarchive.allowUnreachable If true, allow clients to use git archive --remote to request any tree, whether reachable from the ref tips or not. See the discussion in the "SECURITY" section of git-upload-archive(1) for more details. Defaults to false.
uploadpack.hideRefs This variable is the same as transfer.hideRefs, but applies only to upload-pack (and so affects only fetches, not pushes). An attempt to fetch a hidden ref by git fetch will fail. See also uploadpack.allowTipSHA1InWant.
uploadpack.allowTipSHA1InWant When uploadpack.hideRefs is in effect, allow upload-pack to accept a fetch request that asks for an object at the tip of a hidden ref (by default, such a request is rejected). See also uploadpack.hideRefs. Even if this is false, a client may be able to steal objects via the techniques described in the "SECURITY" section of the gitnamespaces(7) man page; it’s best to keep private data in a separate repository.
uploadpack.allowReachableSHA1InWant Allow upload-pack to accept a fetch request that asks for an object that is reachable from any ref tip. However, note that calculating object reachability is computationally expensive. Defaults to false. Even if this is false, a client may be able to steal objects via the techniques described in the "SECURITY" section of the gitnamespaces(7) man page; it’s best to keep private data in a separate repository.
uploadpack.allowAnySHA1InWant Allow upload-pack to accept a fetch request that asks for any object at all. Defaults to false.
uploadpack.keepAlive When upload-pack has started pack-objects, there may be a quiet period while pack-objects prepares the pack. Normally it would output progress information, but if --quiet was used for the fetch, pack-objects will output nothing at all until the pack data begins. Some clients and networks may consider the server to be hung and give up. Setting this option instructs upload-pack to send an empty keepalive packet every uploadpack.keepAlive seconds. Setting this option to 0 disables keepalive packets entirely. The default is 5 seconds.
uploadpack.packObjectsHook If this option is set, when upload-pack would run git pack-objects to create a packfile for a client, it will run this shell command instead. The pack-objects command and arguments it would have run (including the git pack-objects at the beginning) are appended to the shell command. The stdin and stdout of the hook are treated as if pack-objects itself was run. I.e., upload-pack will feed input intended for pack-objects to the hook, and expects a completed packfile on stdout.
Note that this configuration variable is ignored if it is seen in the repository-level config (this is a safety measure against fetching from untrusted repositories).
uploadpack.allowFilter If this option is set, upload-pack will support partial clone and partial fetch object filtering.
uploadpackfilter.allow Provides a default value for unspecified object filters (see: the below configuration variable). If set to true, this will also enable all filters which get added in the future. Defaults to true.
uploadpackfilter.<filter>.allow Explicitly allow or ban the object filter corresponding to <filter>, where <filter> may be one of: blob:none, blob:limit, object:type, tree, sparse:oid, or combine. If using combined filters, both combine and all of the nested filter kinds must be allowed. Defaults to uploadpackfilter.allow.
uploadpackfilter.tree.maxDepth Only allow --filter=tree:<n> when <n> is no more than the value of uploadpackfilter.tree.maxDepth. If set, this also implies uploadpackfilter.tree.allow=true, unless this configuration variable had already been set. Has no effect if unset.
uploadpack.allowRefInWant If this option is set, upload-pack will support the ref-in-want feature of the protocol version 2 fetch command. This feature is intended for the benefit of load-balanced servers which may not have the same view of what OIDs their refs point to due to replication delay.
url.<base>.insteadOf Any URL that starts with this value will be rewritten to start, instead, with <base>. In cases where some site serves a large number of repositories, and serves them with multiple access methods, and some users need to use different access methods, this feature allows people to specify any of the equivalent URLs and have Git automatically rewrite the URL to the best alternative for the particular user, even for a never-before-seen repository on the site. When more than one insteadOf strings match a given URL, the longest match is used.
Note that any protocol restrictions will be applied to the rewritten URL. If the rewrite changes the URL to use a custom protocol or remote helper, you may need to adjust the protocol.*.allow config to permit the request. In particular, protocols you expect to use for submodules must be set to always rather than the default of user. See the description of protocol.allow above.
url.<base>.pushInsteadOf Any URL that starts with this value will not be pushed to; instead, it will be rewritten to start with <base>, and the resulting URL will be pushed to. In cases where some site serves a large number of repositories, and serves them with multiple access methods, some of which do not allow push, this feature allows people to specify a pull-only URL and have Git automatically use an appropriate URL to push, even for a never-before-seen repository on the site. When more than one pushInsteadOf strings match a given URL, the longest match is used. If a remote has an explicit pushurl, Git will ignore this setting for that remote.
user.name, user.email, author.name, author.email, committer.name, committer.email The user.name and user.email variables determine what ends up in the author and committer field of commit objects. If you need the author or committer to be different, the author.name, author.email, committer.name or committer.email variables can be set. Also, all of these can be overridden by the GIT_AUTHOR_NAME, GIT_AUTHOR_EMAIL, GIT_COMMITTER_NAME, GIT_COMMITTER_EMAIL and EMAIL environment variables.
Note that the name forms of these variables conventionally refer to some form of a personal name. See git-commit(1) and the environment variables section of git(1) for more information on these settings and the credential.username option if you’re looking for authentication credentials instead.
user.useConfigOnly Instruct Git to avoid trying to guess defaults for user.email and user.name, and instead retrieve the values only from the configuration. For example, if you have multiple email addresses and would like to use a different one for each repository, then with this configuration option set to true in the global config along with a name, Git will prompt you to set up an email before making new commits in a newly cloned repository. Defaults to false.
user.signingKey If git-tag(1) or git-commit(1) is not selecting the key you want it to automatically when creating a signed tag or commit, you can override the default selection with this variable. This option is passed unchanged to gpg’s --local-user parameter, so you may specify a key using any method that gpg supports. If gpg.format is set to "ssh" this can contain the literal ssh public key (e.g.: "ssh-rsa XXXXXX identifier") or a file which contains it and corresponds to the private key used for signing. The private key needs to be available via ssh-agent. Alternatively it can be set to a file containing a private key directly. If not set git will call gpg.ssh.defaultKeyCommand (e.g.: "ssh-add -L") and try to use the first key available.
versionsort.prereleaseSuffix (deprecated) Deprecated alias for versionsort.suffix. Ignored if versionsort.suffix is set.
versionsort.suffix Even when version sort is used in git-tag(1), tagnames with the same base version but different suffixes are still sorted lexicographically, resulting e.g. in prerelease tags appearing after the main release (e.g. "1.0-rc1" after "1.0"). This variable can be specified to determine the sorting order of tags with different suffixes.
By specifying a single suffix in this variable, any tagname containing that suffix will appear before the corresponding main release. E.g. if the variable is set to "-rc", then all "1.0-rcX" tags will appear before "1.0". If specified multiple times, once per suffix, then the order of suffixes in the configuration will determine the sorting order of tagnames with those suffixes. E.g. if "-pre" appears before "-rc" in the configuration, then all "1.0-preX" tags will be listed before any "1.0-rcX" tags. The placement of the main release tag relative to tags with various suffixes can be determined by specifying the empty suffix among those other suffixes. E.g. if the suffixes "-rc", "", "-ck" and "-bfs" appear in the configuration in this order, then all "v4.8-rcX" tags are listed first, followed by "v4.8", then "v4.8-ckX" and finally "v4.8-bfsX".
If more than one suffixes match the same tagname, then that tagname will be sorted according to the suffix which starts at the earliest position in the tagname. If more than one different matching suffixes start at that earliest position, then that tagname will be sorted according to the longest of those suffixes. The sorting order between different suffixes is undefined if they are in multiple config files.
web.browser Specify a web browser that may be used by some commands. Currently only git-instaweb(1) and git-help(1) may use it.
worktree.guessRemote If no branch is specified and neither -b nor -B nor --detach is used, then git worktree add defaults to creating a new branch from HEAD. If worktree.guessRemote is set to true, worktree add tries to find a remote-tracking branch whose name uniquely matches the new branch name. If such a branch exists, it is checked out and set as "upstream" for the new branch. If no such match can be found, it falls back to creating a new branch from the current HEAD.
When using the deprecated [section.subsection] syntax, changing a value will result in adding a multi-line key instead of a change, if the subsection is given with at least one uppercase character. For example when the config looks like
[section.subsection] key = value1
and running git config section.Subsection.key value2 will result in
[section.subsection] key = value1 key = value2
1. user1@example.com mailto:user1@example.com
2. user2@example.com mailto:user2@example.com
3. Documentation/technical/pack-format.txt file:///usr/share/doc/git-doc/../technical/pack-format.html
4. wire protocol version 2 file:///usr/share/doc/git-doc/technical/protocol-v2.html
DIRENV(1)                         User Manuals                         DIRENV(1)
direnv - unclutter your .profile
direnv command ...
direnv is an environment variable manager for your shell. It knows how to hook into bash, zsh and fish shell to load or unload environment variables depending on your current directory. This allows you to have project-specific environment variables and not clutter the "~/.profile" file.
Before each prompt it checks for the existence of an .envrc file in the current and parent directories. If the file exists, it is loaded into a bash sub-shell and all exported variables are then captured by direnv and then made available to your current shell, while unset variables are removed.
Because direnv is compiled into a single static executable it is fast enough to be unnoticeable on each prompt. It is also language agnostic and can be used to build solutions similar to rbenv, pyenv, phpenv, ...
$ cd ~/my_project $ echo ${FOO-nope} nope $ echo export FOO=foo > .envrc \.envrc is not allowed $ direnv allow . direnv: reloading direnv: loading .envrc direnv export: +FOO $ echo ${FOO-nope} foo $ cd .. direnv: unloading direnv export: ~PATH $ echo ${FOO-nope} nope
For direnv to work properly it needs to be hooked into the shell. Each shell has it's own extension mechanism:
BASH Add the following line at the end of the ~/.bashrc file:
eval "$(direnv hook bash)"
Make sure it appears even after rvm, git-prompt and other shell extensions that manipulate the prompt.
ZSH Add the following line at the end of the ~/.zshrc file:
eval "$(direnv hook zsh)"
FISH Add the following line at the end of the $XDG_CONFIG_HOME/fish/config.fish file:
direnv hook fish | source
Fish supports 3 modes you can set with with the global environment variable direnv_fish_mode:
set -g direnv_fish_mode eval_on_arrow    # trigger direnv at prompt, and on every arrow-based directory change (default) set -g direnv_fish_mode eval_after_arrow # trigger direnv at prompt, and only after arrow-based directory changes before executing command set -g direnv_fish_mode disable_arrow    # trigger direnv at prompt only, this is similar functionality to the original behavior
TCSH Add the following line at the end of the ~/.cshrc file:
eval `direnv hook tcsh`
Elvish Run:
$> direnv hook elvish > ~/.elvish/lib/direnv.elv
and add the following line to your ~/.elvish/rc.elv file:
In some target folder, create an .envrc file and add some export(1) and unset(1) directives in it.
On the next prompt you will notice that direnv complains about the .envrc being blocked. This is the security mechanism to avoid loading new files automatically. Otherwise any git repo that you pull, or tar archive that you unpack, would be able to wipe your hard drive once you cd into it.
So here we are pretty sure that it won't do anything bad. Type direnv allow .  and watch direnv loading your new environment. Note that direnv edit . is a handy shortcut that opens the file in your $EDITOR and automatically reloads it if the file's modification time has changed.
Now that the environment is loaded you can notice that once you cd out of the directory it automatically gets unloaded. If you cd back into it it's loaded again. That's the base of the mechanism that allows you to build cool things.
Exporting variables by hand is a bit repetitive so direnv provides a set of utility functions that are made available in the context of the .envrc file.  Check the direnv-stdlib(1) man page for more details. You can also define your own extensions inside $XDG_CONFIG_HOME/direnv/direnvrc or $XDG_CONFIG_HOME/direnv/lib/*.sh files.
Hopefully this is enough to get you started.
$XDG_CONFIG_HOME/direnv/direnvrc direnv configuration
$XDG_CONFIG_HOME/direnv/lib/*.sh Third-party extensions to direnv-stdlib.
$XDG_DATA_HOME/direnv/allow Records which .envrc files have been direnv allowed.
Bug reports, contributions and forks are welcome.
All bugs or other forms of discussion happen on http://github.com/direnv/direnv/issues ⟨http://github.com/direnv/direnv/issues⟩
There is also a wiki available where you can share your usage patterns or other tips and tricks https://github.com/direnv/direnv/wiki ⟨https://github.com/direnv/direnv/wiki⟩
Or drop by on the #direnv channel on FreeNode ⟨irc://#direnv@FreeNode⟩ to have a chat.
MIT licence - Copyright (C) 2019 @zimbatm and contributors
direnv-stdlib(1), direnv.toml(1), direnv-fetchurl(1)
GSETTINGS(1)                      User Commands                     GSETTINGS(1)
gsettings - GSettings configuration tool
gsettings get SCHEMA [:PATH]  KEY
gsettings monitor SCHEMA [:PATH]  [KEY]
gsettings writable SCHEMA [:PATH]  KEY
gsettings range SCHEMA [:PATH]  KEY
gsettings describe SCHEMA [:PATH]  KEY
gsettings set SCHEMA [:PATH]  KEY VALUE
gsettings reset SCHEMA [:PATH]  KEY
gsettings reset-recursively SCHEMA [:PATH]
gsettings list-schemas [--print-paths]
gsettings list-relocatable-schemas
gsettings list-keys SCHEMA [:PATH]
gsettings list-children SCHEMA [:PATH]
gsettings list-recursively [SCHEMA [:PATH]]
gsettings help [COMMAND]
gsettings offers a simple commandline interface to GSettings. It lets you get, set or monitor an individual key for changes.
The SCHEMA and KEY arguments are required for most commands to specify the schema id and the name of the key to operate on. The schema id may optionally have a :PATH suffix. Specifying the path is only needed if the schema does not have a fixed path.
When setting a key, you also need specify a VALUE The format for the value is that of a serialized GVariant, so e.g. a string must include explicit quotes: "'foo'". This format is also used when printing out values.
Note that gsettings needs a D-Bus session bus connection to write changes to the dconf database.
get Gets the value of KEY. The value is printed out as a serialized GVariant.
monitor Monitors KEY for changes and prints the changed values. If no KEY is specified, all keys in the schema are monitored. Monitoring will continue until the process is terminated.
writable Finds out whether KEY is writable.
range Queries the range of valid values for KEY.
describe Queries the description of valid values for KEY.
set Sets the value of KEY to VALUE. The value is specified as a serialized GVariant.
reset Resets KEY to its default value.
reset-recursively Reset all keys under the given SCHEMA.
list-schemas Lists the installed, non-relocatable schemas. See list-relocatable-schemas if you are interested in relocatable schemas. If [--print-paths] is given, the path where each schema is mapped is also printed.
list-relocatable-schemas Lists the installed, relocatable schemas. See list-schemas if you are interested in non-relocatable schemas.
list-keys Lists the keys in SCHEMA.
list-children Lists the children of SCHEMA.
list-recursively Lists keys and values, recursively. If no SCHEMA is given, list keys in all schemas.
help Prints help and exits.
RTCWAKE(8)                    System Administration                   RTCWAKE(8)
rtcwake - enter a system sleep state until specified wakeup time
rtcwake [options] [-d device] [-m standby_mode] {-s seconds|-t time_t}
This program is used to enter a system sleep state and to automatically wake from it at a specified time.
This uses cross-platform Linux interfaces to enter a system sleep state, and leave it no later than a specified time. It uses any RTC framework driver that supports standard driver model wakeup flags.
This is normally used like the old apmsleep utility, to wake from a suspend state like ACPI S1 (standby) or S3 (suspend-to-RAM). Most platforms can implement those without analogues of BIOS, APM, or ACPI.
On some systems, this can also be used like nvram-wakeup, waking from states like ACPI S4 (suspend to disk). Not all systems have persistent media that are appropriate for such suspend modes.
Note that alarm functionality depends on hardware; not every RTC is able to setup an alarm up to 24 hours in the future.
The suspend setup may be interrupted by active hardware; for example wireless USB input devices that continue to send events for some fraction of a second after the return key is pressed. rtcwake tries to avoid this problem and it waits to terminal to settle down before entering a system sleep.
-A, --adjfile file Specify an alternative path to the adjust file.
-a, --auto Read the clock mode (whether the hardware clock is set to UTC or local time) from the adjtime file, where hwclock(8) stores that information. This is the default.
--date timestamp Set the wakeup time to the value of the timestamp. Format of the timestamp can be any of the following:
┌────────────────────┬─────────────────────────────┐ │                    │                             │ │YYYYMMDDhhmmss      │                             │ ├────────────────────┼─────────────────────────────┤ │                    │                             │ │YYYY-MM-DD hh:mm:ss │                             │ ├────────────────────┼─────────────────────────────┤ │                    │                             │ │YYYY-MM-DD hh:mm    │ (seconds will be set to 00) │ ├────────────────────┼─────────────────────────────┤ │                    │                             │ │YYYY-MM-DD          │ (time will be set to        │ │                    │ 00:00:00)                   │ ├────────────────────┼─────────────────────────────┤ │                    │                             │ │hh:mm:ss            │ (date will be set to today) │ ├────────────────────┼─────────────────────────────┤ │                    │                             │ │hh:mm               │ (date will be set to today, │ │                    │ seconds to 00)              │ ├────────────────────┼─────────────────────────────┤ │                    │                             │ │tomorrow            │ (time is set to 00:00:00)   │ ├────────────────────┼─────────────────────────────┤ │                    │                             │ │+5min               │                             │ └────────────────────┴─────────────────────────────┘
-d, --device device Use the specified device instead of rtc0 as realtime clock. This option is only relevant if your system has more than one RTC. You may specify rtc1, rtc2, ... here.
-l, --local Assume that the hardware clock is set to local time, regardless of the contents of the adjtime file.
--list-modes List available --mode option arguments.
-m, --mode mode Go into the given standby state. Valid values for mode are:
standby ACPI state S1. This state offers minimal, though real, power savings, while providing a very low-latency transition back to a working system. This is the default mode.
freeze The processes are frozen, all the devices are suspended and all the processors idled. This state is a general state that does not need any platform-specific support, but it saves less power than Suspend-to-RAM, because the system is still in a running state. (Available since Linux 3.9.)
mem ACPI state S3 (Suspend-to-RAM). This state offers significant power savings as everything in the system is put into a low-power state, except for memory, which is placed in self-refresh mode to retain its contents.
disk ACPI state S4 (Suspend-to-disk). This state offers the greatest power savings, and can be used even in the absence of low-level platform support for power management. This state operates similarly to Suspend-to-RAM, but includes a final step of writing memory contents to disk.
off ACPI state S5 (Poweroff). This is done by calling '/sbin/shutdown'. Not officially supported by ACPI, but it usually works.
no Don’t suspend, only set the RTC wakeup time.
on Don’t suspend, but read the RTC device until an alarm time appears. This mode is useful for debugging.
disable Disable a previously set alarm.
show Print alarm information in format: "alarm: off|on <time>". The time is in ctime() output format, e.g., "alarm: on Tue Nov 16 04:48:45 2010".
-n, --dry-run This option does everything apart from actually setting up the alarm, suspending the system, or waiting for the alarm.
-s, --seconds seconds Set the wakeup time to seconds in the future from now.
-t, --time time_t Set the wakeup time to the absolute time time_t. time_t is the time in seconds since 1970-01-01, 00:00 UTC. Use the date(1) tool to convert between human-readable time and time_t.
-u, --utc Assume that the hardware clock is set to UTC (Universal Time Coordinated), regardless of the contents of the adjtime file.
Some PC systems can’t currently exit sleep states such as mem using only the kernel code accessed by this driver. They need help from userspace code to make the framebuffer work again.
The program was posted several times on LKML and other lists before appearing in kernel commit message for Linux 2.6 in the GIT commit 87ac84f42a7a580d0dd72ae31d6a5eb4bfe04c6d.
The program was written by David Brownell <dbrownell@users.sourceforge.net> and improved by Bernhard Walle <bwalle@suse.de>.
This is free software. You may redistribute copies of it under the terms of the GNU General Public License <http://www.gnu.org/licenses/gpl.html>. There is NO WARRANTY, to the extent permitted by law.
hwclock(8), date(1)
The rtcwake 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/>.
ADB(1)                             adb Manuals                            ADB(1)
adb [-d|-e|-s serialNumber] command
WARNING: This manual might be outdated, please refer to the official documentation.
Android Debug Bridge (adb) is a versatile command line tool that lets you communicate with an emulator instance or connected Android-powered device.  It is a client-server program that includes three components:
• A client, which sends commands.  The client runs on your development machine.  You can invoke a client from a shell by issuing an adb command.  Other Android tools such as DDMS also create adb clients.
• A daemon, which runs commands on a device.  The daemon runs as a background process on each emulator or device instance.
• A server, which manages communication between the client and the daemon.  The server runs as a background process on your development machine.
If there's only one emulator running or only one device connected, the adb command is sent to that device by default.  If multiple emulators are running and/or multiple devices are attached, you need to use the -d, -e, or -s option to specify the target device to which the command should be directed.
-a     Directs adb to listen on all interfaces for a connection.
-d     Directs command to the only connected USB device.  Returns an error if more than one USB device is present.
-e     Directs command to the only running emulator.  Returns an error if more than one emulator is running.
-s specific device Directs command to the device or emulator with the given serial number or qualifier.  Overrides ANDROID_SERIAL environment variable.
-p product name or path Simple product name like sooner, or a relative/absolute path to a product out directory like out/target/product/sooner.  If -p is not specified, the ANDROID_PRODUCT_OUT environment variable is used, which must be an absolute path.
-H     Name of adb server host (default: localhost)
-P     Port of adb server (default: 5037)
adb devices [-l] List all connected devices.  -l will also list device qualifiers.
adb connect host[:port] Connect to a device via TCP/IP.  Port 5555 is used by default if no port number is specified.
adb disconnect [host[:port]] Disconnect from a TCP/IP device.  Port 5555 is used by default if no port number is specified.  Using this command with no additional arguments will disconnect from all connected TCP/IP devices.
Device commands adb push local... remote Copy file/dir to device.
adb pull [-a] remote [local] Copy file/dir from device.  -a means copy timestamp and mode.
adb sync [-l] [directory] Copy host->device only if changed.  -l means list but don't copy.
If directory is not specified, /system, /vendor (if present), /oem (if present) and /data partitions will be updated.
If it is system, vendor, oem or data, only the corresponding partition is updated.
adb shell [-e escape] [-n] [-T|-t] [-x] [command] Run remote shell command (interactive shell if no command given)
• -e: Choose escape character, or none; default ~
• -n: Don't read from stdin
• -T: Disable PTY allocation
• -t: Force PTY allocation
• -x: Disable remote exit codes and stdout/stderr separation
adb emu command Run emulator console command
adb logcat [filter-spec] View device log.
adb forward --list List all forward socket connections.  The format is a list of lines with the following format: serial " " local " " remote ""
adb forward local remote Forward socket connections.
Forward specs are one of:
• tcp:port
• localabstract:unix domain socket name
• localreserved:unix domain socket name
• localfilesystem:unix domain socket name
• dev:character device name
• jdwp:process pid (remote only)
adb forward --no-rebind local remote Same as "adb forward local remote" but fails if local is already forwarded
adb forward --remove local Remove a specific forward socket connection.
adb forward --remove-all Remove all forward socket connections.
adb reverse --list List all reverse socket connections from device.
adb reverse remote local Reverse socket connections.
Reverse specs are one of:
adb reverse --no-rebind remote local Same as 'adb reverse remote local' but fails if remote is already reversed.
adb reverse --remove remote Remove a specific reversed socket connection.
adb reverse --remove-all Remove all reversed socket connections from device.
adb jdwp List PIDs of processes hosting a JDWP transport.
adb install [-lrtsdg] file Push this package file to the device and install it.
• -l: Forward lock application.
• -r: Replace existing application.
• -t: Allow test packages.
• -s: Install application on sdcard.
• -d: Allow version code downgrade (debuggable packages only).
• -g: Grant all runtime permissions.
adb install-multiple [-lrtsdpg] file... Push this package file to the device and install it.
• -p: Partial application install.
adb uninstall [-k] package Remove this app package from the device.  -k means keep the data and cache directories.
adb bugreport [zipfile] Return all information from the device that should be included in a bug report.
adb backup [-f file] [-apk|-noapk] [-obb|-noobb] [-shared|-noshared] [-all] [-system|-nosystem] [packages...] Write an archive of the device's data to file.  If no -f option is supplied then the data is written to backup.ab in the current directory.
-apk | -noapk enable/disable backup of the .apks themselves in the archive; the default is noapk.
-obb | -noobb enable/disable backup of any installed apk expansion (aka .obb) files associated with each application; the default is noobb.
-shared | -noshared enable/disable backup of the device's shared storage / SD card contents; the default is noshared.
-all means to back up all installed applications.
-system | -nosystem toggles whether -all automatically includes system applications; the default is to include system apps.
packages... is the list of applications to be backed up.  If the -all or -shared flags are passed, then the package list is optional. Applications explicitly given on the command line will be included even if -nosystem would ordinarily cause them to be omitted.
adb restore file Restore device contents from the file backup archive.
adb disable-verity Disable dm-verity checking on USERDEBUG builds.
adb enable-verity Re-enable dm-verity checking on USERDEBUG builds.
adb keygen file Generate adb public/private key.  The private key is stored in file, and the public key is stored in file.pub.  Any existing files are overwritten.
adb help Show help message.
adb version Show version number.
Scripting adb wait-for-[-transport]-state Wait for device to be in the given state: device, recovery, sideload, or bootloader.  transport is: usb, local or any (default = any)
adb start-server Ensure that there is a server running.
adb kill-server Kill the server if it is running.
adb get-state Prints: offline | bootloader | device
adb get-serialno Prints: serial-number.
adb get-devpath Prints: device-path.
adb remount Remounts the /system, /vendor (if present) and /oem (if present) partitions on the device read-write.
adb reboot [bootloader|recovery] Reboots the device, optionally into the bootloader or recovery program.
adb reboot sideload Reboots the device into the sideload mode in recovery program (adb root required).
adb reboot sideload-auto-reboot Reboots into the sideload mode, then reboots automatically after the sideload regardless of the result.
adb sideload file Sideloads the given package.
adb root Restarts the adbd daemon with root permissions.
adb unroot Restarts the adbd daemon without root permissions.
adb usb Restarts the adbd daemon listening on USB.
adb tcpip port Restarts the adbd daemon listening on TCP on the specified port.
Networking adb ppp tty [parameters] Run PPP over USB.
parameters: E.g.  defaultroute debug dump local notty usepeerdns
Note: you should not automatically start a PPP connection.  tty refers to the tty for PPP stream.  E.g.  dev:/dev/omap_csmi_tty1
Internal Debugging adb reconnect Kick current connection from host side and make it reconnect.
adb reconnect device Kick current connection from device side and make it reconnect.
ADB_TRACE Print debug information.  A comma separated list of the following values 1 or all, adb, sockets, packets, rwx, usb, sync, sysdeps, transport, jdwp
ANDROID_SERIAL The serial number to connect to.  -s takes priority over this if given.
ANDROID_LOG_TAGS When used with the logcat option, only these debug tags are printed.
https://developer.android.com/tools/help/adb.html
The Android Open Source Project.
SALT-KEY(1)                           Salt                           SALT-KEY(1)
salt-key - salt-key Documentation
salt-key [ options ]
Salt-key executes simple management of Salt server public keys used for authentication.
salt(7) salt-master(1) salt-minion(1)
DIG(1)                               BIND 9                               DIG(1)
dig - DNS lookup utility
dig [@server] [-b address] [-c class] [-f filename] [-k filename] [-m] [-p port#] [-q name] [-t type] [-v] [-x addr] [-y [hmac:]name:key] [ [-4] | [-6] ] [name] [type] [class] [queryopt...]
dig [-h]
dig [global-queryopt...] [query...]
dig is a flexible tool for interrogating DNS name servers. It performs DNS lookups and displays the answers that are returned from the name server(s) that were queried. Most DNS administrators use dig to troubleshoot DNS problems because of its flexibility, ease of use, and clarity of output. Other lookup tools tend to have less functionality than dig.
Although dig is normally used with command-line arguments, it also has a batch mode of operation for reading lookup requests from a file. A brief summary of its command-line arguments and options is printed when the -h option is given. The BIND 9 implementation of dig allows multiple lookups to be issued from the command line.
Unless it is told to query a specific name server, dig tries each of the servers listed in /etc/resolv.conf. If no usable server addresses are found, dig sends the query to the local host.
When no command-line arguments or options are given, dig performs an NS query for "." (the root).
It is possible to set per-user defaults for dig via ${HOME}/.digrc. This file is read and any options in it are applied before the command-line arguments. The -r option disables this feature, for scripts that need predictable behavior.
The IN and CH class names overlap with the IN and CH top-level domain names. Either use the -t and -c options to specify the type and class, use the -q to specify the domain name, or use "IN." and "CH." when looking up these top-level domains.
A typical invocation of dig looks like:
dig @server name type
server is the name or IP address of the name server to query. This can be an IPv4 address in dotted-decimal notation or an IPv6 address in colon-delimited notation. When the supplied server argument is a hostname, dig resolves that name before querying that name server.
If no server argument is provided, dig consults /etc/resolv.conf; if an address is found there, it queries the name server at that address. If either of the -4 or -6 options are in use, then only addresses for the corresponding transport are tried. If no usable addresses are found, dig sends the query to the local host. The reply from the name server that responds is displayed.
name   is the name of the resource record that is to be looked up.
type   indicates what type of query is required - ANY, A, MX, SIG, etc. type can be any valid query type. If no type argument is supplied, dig performs a lookup for an A record.
-4     This option indicates that only IPv4 should be used.
-6     This option indicates that only IPv6 should be used.
-b address[#port] This option sets the source IP address of the query. The address must be a valid address on one of the host's network interfaces, or "0.0.0.0" or "::". An optional port may be specified by appending #port.
-c class This option sets the query class. The default class is IN; other classes are HS for Hesiod records or CH for Chaosnet records.
-f file This option sets batch mode, in which dig reads a list of lookup requests to process from the given file. Each line in the file should be organized in the same way it would be presented as a query to dig using the command-line interface.
-k keyfile This option tells named to sign queries using TSIG using a key read from the given file. Key files can be generated using tsig-keygen. When using TSIG authentication with dig, the name server that is queried needs to know the key and algorithm that is being used. In BIND, this is done by providing appropriate key and server statements in named.conf.
-m     This option enables memory usage debugging.
-p port This option sends the query to a non-standard port on the server, instead of the default port 53. This option is used to test a name server that has been configured to listen for queries on a non-standard port number.
-q name This option specifies the domain name to query. This is useful to distinguish the name from other arguments.
-r     This option indicates that options from ${HOME}/.digrc should not be read. This is useful for scripts that need predictable behavior.
-t type This option indicates the resource record type to query, which can be any valid query type. If it is a resource record type supported in BIND 9, it can be given by the type mnemonic (such as NS or AAAA). The default query type is A, unless the -x option is supplied to indicate a reverse lookup. A zone transfer can be requested by specifying a type of AXFR. When an incremental zone transfer (IXFR) is required, set the type to ixfr=N. The incremental zone transfer contains all changes made to the zone since the serial number in the zone's SOA record was N.
All resource record types can be expressed as TYPEnn, where nn is the number of the type. If the resource record type is not supported in BIND 9, the result is displayed as described in RFC 3597.
-u     This option indicates that print query times should be provided in microseconds instead of milliseconds.
-v     This option prints the version number and exits.
-x addr This option sets simplified reverse lookups, for mapping addresses to names. The addr is an IPv4 address in dotted-decimal notation, or a colon-delimited IPv6 address. When the -x option is used, there is no need to provide the name, class, and type arguments. dig automatically performs a lookup for a name like 94.2.0.192.in-addr.arpa and sets the query type and class to PTR and IN respectively. IPv6 addresses are looked up using nibble format under the IP6.ARPA domain.
-y [hmac:]keyname:secret This option signs queries using TSIG with the given authentication key.  keyname is the name of the key, and secret is the base64-encoded shared secret. hmac is the name of the key algorithm; valid choices are hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, or hmac-sha512. If hmac is not specified, the default is hmac-md5; if MD5 was disabled, the default is hmac-sha256.
NOTE: Only the -k option should be used, rather than the -y option, because with -y the shared secret is supplied as a command-line argument in clear text. This may be visible in the output from ps1 or in a history file maintained by the user's shell.
dig provides a number of query options which affect the way in which lookups are made and the results displayed. Some of these set or reset flag bits in the query header, some determine which sections of the answer get printed, and others determine the timeout and retry strategies.
Each query option is identified by a keyword preceded by a plus sign (+). Some keywords set or reset an option; these may be preceded by the string no to negate the meaning of that keyword. Other keywords assign values to options, like the timeout interval. They have the form +keyword=value. Keywords may be abbreviated, provided the abbreviation is unambiguous; for example, +cd is equivalent to +cdflag. The query options are:
+[no]aaflag This option is a synonym for +[no]aaonly.
+[no]aaonly This option sets the aa flag in the query.
+[no]additional This option displays [or does not display] the additional section of a reply. The default is to display it.
+[no]adflag This option sets [or does not set] the AD (authentic data) bit in the query. This requests the server to return whether all of the answer and authority sections have been validated as secure, according to the security policy of the server. AD=1 indicates that all records have been validated as secure and the answer is not from a OPT-OUT range. AD=0 indicates that some part of the answer was insecure or not validated.  This bit is set by default.
+[no]all This option sets or clears all display flags.
+[no]answer This option displays [or does not display] the answer section of a reply. The default is to display it.
+[no]authority This option displays [or does not display] the authority section of a reply. The default is to display it.
+[no]badcookie This option retries the lookup with a new server cookie if a BADCOOKIE response is received.
+[no]besteffort This option attempts to display the contents of messages which are malformed. The default is to not display malformed answers.
+bufsize[=B] This option sets the UDP message buffer size advertised using EDNS0 to B bytes.  The maximum and minimum sizes of this buffer are 65535 and 0, respectively.  +bufsize=0 disables EDNS (use +bufsize=0 +edns to send an EDNS message with an advertised size of 0 bytes). +bufsize restores the default buffer size.
+[no]cdflag This option sets [or does not set] the CD (checking disabled) bit in the query. This requests the server to not perform DNSSEC validation of responses.
+[no]class This option displays [or does not display] the CLASS when printing the record.
+[no]cmd This option toggles the printing of the initial comment in the output, identifying the version of dig and the query options that have been applied. This option always has a global effect; it cannot be set globally and then overridden on a per-lookup basis. The default is to print this comment.
+[no]comments This option toggles the display of some comment lines in the output, with information about the packet header and OPT pseudosection, and the names of the response section. The default is to print these comments.
Other types of comments in the output are not affected by this option, but can be controlled using other command-line switches. These include +[no]cmd, +[no]question, +[no]stats, and +[no]rrcomments.
+[no]cookie=#### This option sends [or does not send] a COOKIE EDNS option, with an optional value. Replaying a COOKIE from a previous response allows the server to identify a previous client. The default is +cookie.
+cookie is also set when +trace is set to better emulate the default queries from a nameserver.
+[no]crypto This option toggles the display of cryptographic fields in DNSSEC records. The contents of these fields are unnecessary for debugging most DNSSEC validation failures and removing them makes it easier to see the common failures. The default is to display the fields. When omitted, they are replaced by the string [omitted] or, in the DNSKEY case, the key ID is displayed as the replacement, e.g. [ key id = value ].
+[no]defname This option, which is deprecated, is treated as a synonym for +[no]search.
+[no]dnssec This option requests that DNSSEC records be sent by setting the DNSSEC OK (DO) bit in the OPT record in the additional section of the query.
+domain=somename This option sets the search list to contain the single domain somename, as if specified in a domain directive in /etc/resolv.conf, and enables search list processing as if the +search option were given.