# CommandSection

title: TLDR
content:
<b>List all installed development platforms</b>`pio platform list`<br><b>Search for existing development platforms</b>`pio platform search [platform]`<br><b>Show details about a development platform</b>`pio platform show [platform]`<br><b>Install a development platform</b>`pio platform install [platform]`<br><b>Update installed development platforms</b>`pio platform update`<br><b>Uninstall a development platform</b>`pio platform uninstall [platform]`<br><b>List all supported frameworks</b>`pio platform frameworks`


title: TLDR
content:
<b>List all valid generators</b>`fakedata --generators`<br><b>Generate data using one or more generators</b>`fakedata [generator1] [generator2]`<br><b>Generate data with a specific output format</b>`fakedata [[-f|--format]] [csv|tab|sql] [generator]`<br><b>Generate a given number of data items (defaults to 10)</b>`fakedata [[-l|--limit]] [n] [generator]`<br><b>Generate data using a custom output template (the first letter of generator names must be capitalized)</b>`echo "[\{\{Generator\}\]}" | fakedata`


title: TLDR
content:
<b>List available modems</b>`mmcli --list-modems`<br><b>Print information about a modem</b>`mmcli --modem=[modem]`<br><b>Enable a modem</b>`mmcli --modem=[modem] --enable`<br><b>List SMS messages available on the modem</b>`sudo mmcli --modem=[modem] --messaging-list-sms`<br><b>Delete a message from the modem, specifying its path</b>`sudo mmcli --modem=[modem] --messaging-delete-sms=[path/to/message_file]`


title: TLDR
content:
<b>Generate a random UUID</b>`uuidd [[-r|--random]]`<br><b>Generate a bulk number of random UUIDs</b>`uuidd [[-r|--random]] [[-n|--uuids]] [number_of_uuids]`<br><b>Generate a time-based UUID, based on the current time and MAC address of the system</b>`uuidd [[-t|--time]]`


title: TLDR
content:
<b>Perform a brute-force attack (mode 3) with the default hashcat mask</b>`hashcat --hash-type [hash_type_id] --attack-mode [3] [hash_value]`<br><b>Perform a brute-force attack (mode 3) with a known pattern of 4 digits</b>`hashcat --hash-type [hash_type_id] --attack-mode [3] [hash_value] "[?d?d?d?d]"`<br><b>Perform a brute-force attack (mode 3) using at most 8 of all printable ASCII characters</b>`hashcat --hash-type [hash_type_id] --attack-mode [3] --increment [hash_value] "[?a?a?a?a?a?a?a?a]"`<br><b>Perform a dictionary attack (mode 0) using the RockYou wordlist of a Kali Linux box</b>`hashcat --hash-type [hash_type_id] --attack-mode [0] [hash_value] [/usr/share/wordlists/rockyou.txt]`<br><b>Perform a rule-based dictionary attack (mode 0) using the RockYou wordlist mutated with common password variations</b>`hashcat --hash-type [hash_type_id] --attack-mode [0] --rules-file [/usr/share/hashcat/rules/best64.rule] [hash_value] [/usr/share/wordlists/rockyou.txt]`<br><b>Perform a combination attack (mode 1) using the concatenation of words from two different custom dictionaries</b>`hashcat --hash-type [hash_type_id] --attack-mode [1] [hash_value] /[path/to/dictionary1.txt] /[path/to/dictionary2.txt]`<br><b>Show result of an already cracked hash</b>`hashcat --show [hash_value]`<br><b>Show all example hashes</b>`hashcat --example-hashes`


title: TLDR
content:
<b>List available Qt versions from the configuration files</b>`qtchooser --list-versions`<br><b>Print environment information</b>`qtchooser --print-env`<br><b>Run the specified tool using the specified Qt version</b>`qtchooser --run-tool=[tool] --qt=[version_name]`<br><b>Add a Qt version entry to be able to choose from</b>`qtchooser --install [version_name] [path/to/qmake]`<br><b>Display help</b>`qtchooser --help`


title: TLDR
content:
<b>Display power and battery information</b>`upower [[-d|--dump]]`<br><b>List all power devices</b>`upower [[-e|--enumerate]]`<br><b>Watch for and print power status changes</b>`upower [[-m|--monitor]]`<br><b>Watch for and print detailed power status changes</b>`upower --monitor-detail`<br><b>Display version</b>`upower [[-v|--version]]`


title: TLDR
content:
<b>Clone a virtual machine and automatically generate a new name, storage path, and MAC address</b>`virt-clone [[-o|--original]] [vm_name] --auto-clone`<br><b>Clone a virtual machine and specify the new name, storage path, and MAC address</b>`virt-clone [[-o|--original]] [vm_name] [[-n|--name]] [new_vm_name] [[-f|--file]] [path/to/new_storage] [[-m|--mac]] [ff:ff:ff:ff:ff:ff|RANDOM]`


title: TLDR
content:
<b>Extract the patch and author data from an email message</b>`git mailinfo [message|patch]`<br><b>Extract but remove leading and trailing whitespace</b>`git mailinfo -k [message|patch]`<br><b>Remove everything from the body before a scissors line (e.g. "-->* --") and retrieve the message or patch</b>`git mailinfo --scissors [message|patch]`


title: TLDR
content:
<b>Display logs and changes for recent commits</b>`git whatchanged`<br><b>Display logs and changes for recent commits within the specified time frame</b>`git whatchanged --since "[2 hours ago]"`<br><b>Display logs and changes for recent commits for specific files or directories</b>`git whatchanged [path/to/file_or_directory]`


title: TLDR
content:
<b>Install or update an application anonymously</b>`steamcmd +login [anonymous] +app_update [appid] +quit`<br><b>Install or update an application using the specified credentials</b>`steamcmd +login [username] +app_update [appid] +quit`<br><b>Install an application for a specific platform</b>`steamcmd +@sSteamCmdForcePlatformType [windows] +login [anonymous] +app_update [appid] validate +quit`<br><b>Clear cached login credentials for a user</b>`steamcmd +login [username] +logout +quit`


title: TLDR
content:
<b>Open specific files</b>`kate [path/to/file1 path/to/file2 ...]`<br><b>Open specific remote files</b>`kate [https://example.com/path/to/file1 https://example.com/path/to/file2 ...]`<br><b>Create a new editor instance even if one is already open</b>`kate [[-n|--new]]`<br><b>Open a file with the cursor at the specific line</b>`kate [[-l|--line]] [line_number] [path/to/file]`<br><b>Open a file with the cursor at the specific line and column</b>`kate [[-l|--line]] [line_number] [[-c|--column]] [column_number] [path/to/file]`<br><b>Create a file from stdin</b>`cat [path/to/file] | kate [[-i|--stdin]]`<br><b>Display help</b>`kate [[-h|--help]]`


title: TLDR
content:
<b>Launch a Git daemon with a whitelisted set of directories</b>`git daemon --export-all [path/to/directory1 path/to/directory2 ...]`<br><b>Launch a Git daemon with a specific base directory and allow pulling from all sub-directories that look like Git repositories</b>`git daemon --base-path=[path/to/directory] --export-all --reuseaddr`<br><b>Launch a Git daemon for the specified directory, verbosely printing log messages and allowing Git clients to write to it</b>`git daemon [path/to/directory] --enable=receive-pack --informative-errors --verbose`


title: TLDR
content:
<b>Write a specific key value</b>`dconf write /[path/to/key] "[value]"`<br><b>Write a specific string key value</b>`dconf write /[path/to/key] "'[string]'"`<br><b>Write a specific integer key value</b>`dconf write /[path/to/key] "[5]"`<br><b>Write a specific boolean key value</b>`dconf write /[path/to/key] "[true|false]"`<br><b>Write a specific array key value</b>`dconf write /[path/to/key] "[['first', 'second', ...]]"`<br><b>Write a specific empty array key value</b>`dconf write /[path/to/key] "@as []"`


title: TLDR
content:
<b>List connected (and authorized) devices</b>`boltctl`<br><b>List connected devices, including unauthorized ones</b>`boltctl list`<br><b>Authorize a device temporarily</b>`boltctl authorize [device_uuid]`<br><b>Authorize and remember a device</b>`boltctl enroll [device_uuid]`<br><b>Revoke a previously authorized device</b>`boltctl forget [device_uuid]`<br><b>Show more information about a device</b>`boltctl info [device_uuid]`


title: TLDR
content:
<b>Build a Flatpak and export it to a new repository</b>`flatpak-builder [path/to/build_directory] [path/to/manifest]`<br><b>Build a Flatpak and export it to the specified repository</b>`flatpak-builder --repo [repository_name] [path/to/build_directory] [path/to/manifest]`<br><b>Build a Flatpak and install it locally</b>`flatpak-builder --install [path/to/build_directory] [path/to/manifest]`<br><b>Build and sign a Flatpak and export it to the specified repository</b>`flatpak-builder --gpg-sign [key_id] --repo [repository_name] [path/to/manifest]`<br><b>Run a shell inside of an application sandbox without installing it</b>`flatpak-builder --run [path/to/build_directory] [path/to/manifest] [sh]`


title: TLDR
content:
<b>Start ntpq in interactive mode</b>`ntpq`<br><b>Print a list of NTP peers</b>`ntpq [[-p|--peers]]`<br><b>Print a list of NTP peers without resolving hostnames from IP addresses</b>`ntpq [[-n|--numeric]] [[-p|--peers]]`<br><b>Use ntpq in debugging mode</b>`ntpq [[-d|--debug-level]]`<br><b>Print NTP system variables values</b>`ntpq [[-c|--command]] [rv]`


title: TLDR
content:
<b>Launch Anbox into the app manager</b>`anbox launch --package=[org.anbox.appmgr] --component=[org.anbox.appmgr.AppViewActivity]`


title: TLDR
content:
<b>Overwrite free space and inodes of a disk with 38 writes (slow but secure)</b>`sfill /[path/to/mounted_disk_directory]`<br><b>Overwrite free space and inodes of a disk with 6 writes (fast but [l]ess secure) and show status ([v]erbose)</b>`sfill -l -v /[path/to/mounted_disk_directory]`<br><b>Overwrite free space and inodes of a disk with 1 write (very fast but [l]ess secure [v]erbose) and show status</b>`sfill -ll -v /[path/to/mounted_disk_directory]`<br><b>Overwrite only free space of a d[I]sk</b>`sfill -I /[path/to/mounted_disk_directory]`<br><b>Overwrite only free [i]nodes of a disk</b>`sfill -i /[path/to/mounted_disk_directory]`


title: TLDR
content:
<b>Generate a UUIDv1 (based on time and system's hardware address, if present)</b>`uuid`<br><b>Generate a UUIDv4 (based on random data)</b>`uuid -v [4]`<br><b>Generate multiple UUIDv4 identifiers at once</b>`uuid -v [4] -n [number_of_uuids]`<br><b>Generate a UUIDv4 and specify the output format</b>`uuid -v [4] -F [BIN|STR|SIV]`<br><b>Generate a UUIDv4 and write the output to a file</b>`uuid -v [4] -o [path/to/file]`<br><b>Generate a UUIDv5 (based on the supplied object name) with a specified namespace prefix</b>`uuid -v [5] ns:[DNS|URL|OID|X500] [object_name]`<br><b>Decode a given UUID</b>`uuid -d [uuid]`


title: TLDR
content:
<b>Start chronyc in interactive mode</b>`chronyc`<br><b>Display tracking stats for the Chrony daemon</b>`chronyc tracking`<br><b>Print the time sources that Chrony is currently using</b>`chronyc sources`<br><b>Display stats for sources currently used by chrony daemon as a time source</b>`chronyc sourcestats`<br><b>Step the system clock immediately, bypassing any slewing</b>`chronyc makestep`<br><b>Display verbose information about each NTP source</b>`chronyc ntpdata`


title: TLDR
content:
<b>Generate a UUIDv4</b><br>`genid uuid`<br><br><b>Generate a UUIDv5 using a namespace UUID and a specific name</b><br>`genid uuidv5 [{ce598faa-8dd0-49ee-8525-9e24fff71dca]} [name]`<br><br><b>Generate a Discord Snowflake, without a trailing newline (useful in shell scripts)</b><br>`genid --script snowflake`<br><br><b>Generate a Generic Anonymous ID with a specific "real ID"</b><br>`genid gaid [real_id]`<br><br><b>Generate a Snowflake with the epoch set to a specific date</b><br>`genid snowflake --epoch=[unix_epoch_time]`<br>


title: TLDR
content:
<b>Start QJoyPad</b>`qjoypad`<br><b>Start QJoyPad and look for devices in a specific directory</b>`qjoypad --device=[path/to/directory]`<br><b>Start QJoyPad but don't show a system tray icon</b>`qjoypad --notray`<br><b>Start QJoyPad and force the window manager to use a system tray icon</b>`qjoypad --force-tray`<br><b>Force a running instance of QJoyPad to update its list of devices and layouts</b>`qjoypad --update`<br><b>Load the given layout in an already running instance of QJoyPad, or start QJoyPad using the given layout</b>`qjoypad "[layout]"`


title: TLDR
content:
<b>Launch the file manager</b>`dolphin`<br><b>Open specific directories</b>`dolphin [path/to/directory1 path/to/directory2 ...]`<br><b>Open with specific files or directories selected</b>`dolphin --select [path/to/file_or_directory1 path/to/file_or_directory2 ...]`<br><b>Open a new window</b>`dolphin --new-window`<br><b>Open specific directories in split view</b>`dolphin --split [path/to/directory1] [path/to/directory2]`<br><b>Launch the daemon (only required to use the D-Bus interface)</b>`dolphin --daemon`<br><b>Display help</b>`dolphin [[-h|--help]]`


title: TLDR
content:
<b>Start a new VPN session</b>`openvpn3 session-start [[-c|--config]] [path/to/config.conf]`<br><b>List established sessions</b>`openvpn3 sessions-list`<br><b>Disconnect the currently established session started with given configuration</b>`openvpn3 session-manage [[-c|--config]] [path/to/config.conf] [[-D|--disconnect]]`<br><b>Import VPN configuration</b>`openvpn3 config-import [[-c|--config]] [path/to/config.conf]`<br><b>List imported configurations</b>`openvpn3 configs-list`


title: TLDR
content:
<b>Print a specific key value</b>`dconf read /[path/to/key]`<br><b>Print a specific path sub-directories and sub-keys</b>`dconf list /[path/to/directory]/`<br><b>Write a specific key value</b>`dconf write /[path/to/key] "[value]"`<br><b>Reset a specific key value</b>`dconf reset /[path/to/key]`<br><b>Watch a specific key/directory for changes</b>`dconf watch /[path/to/key|/path/to/directory]/`<br><b>Dump a specific directory in INI file format</b>`dconf dump /[path/to/directory]/`


title: TLDR
content:
<b>Roll a single 20 sided dice</b>`rolldice d[20]`<br><b>Roll two six sided dice and drop the lowest roll</b>`rolldice [2]d[6]s[1]`<br><b>Roll two 20 sided dice and add a modifier value</b>`rolldice [2]d[20][+5]`<br><b>Roll a 20 sided dice two times</b>`rolldice [2]xd[20]`


title: TLDR
content:
<b>Display a cursor to send a window to the system tray when pressing the left mouse button (press any other mouse button to cancel)</b>`kdocker`<br><b>Open an application and send it to the system tray</b>`kdocker [application]`<br><b>Send focused window to the system tray</b>`kdocker -f`<br><b>Display a cursor to send a window to the system tray with a custom icon when pressing the left mouse button</b>`kdocker -i /[path/to/icon]`<br><b>Open an application, send it to the system tray and if focus is lost, minimize it</b>`kdocker -l [application]`<br><b>Display version</b>`kdocker --version`


title: TLDR
content:
<b>Open an LXTerminal window</b>`lxterminal`<br><b>Open an LXTerminal window, run a command, and then exit</b>`lxterminal [[-e|--command]] "[command]"`<br><b>Open an LXTerminal window with multiple tabs</b>`lxterminal --tabs=[tab_name1,tab_name2,...]`<br><b>Open an LXTerminal window with a specific title</b>`lxterminal --title=[title_name]`<br><b>Open an LXTerminal window with a specific working directory</b>`lxterminal --working-directory=[path/to/directory]`


title: TLDR
content:
<b>Display keys which are currently being pressed on the screen</b>`screenkey`<br><b>Display keys and mouse buttons which are currently being pressed on the screen</b>`screenkey [[-M|--mouse]]`<br><b>Launch the settings menu of screenkey</b>`screenkey --show-settings`<br><b>Launch screenkey at a specific position</b>`screenkey [[-p|--position]] [top|center|bottom|fixed]`<br><b>Change the format of the key modifiers displayed on screen</b>`screenkey --mods-mode [normal|emacs|mac|win|tux]`<br><b>Change the appearance of screenkey</b>`screenkey --bg-color "[#a1b2c3]" [[-f|--font]] [Hack] --font-color [yellow] --opacity [0.8]`<br><b>Drag and select a window on screen to display screenkey</b>`screenkey [[-p|--position]] fixed [[-g|--geometry]] [$(slop --nodecorations --format '%g')]`


title: TLDR
content:
<b>Merge two (or more) PDFs</b>`pdfjam [path/to/file1.pdf path/to/file2.pdf ...] [[-o|--outfile]] [path/to/output_file.pdf]`<br><b>Merge the first page of each file together</b>`pdfjam [path/to/file1.pdf 1 path/to/file2.pdf 1 ...] [[-o|--outfile]] [path/to/output_file.pdf]`<br><b>Merge subranges from two PDFs</b>`pdfjam [path/to/file1.pdf 3-5,1] [path/to/file2.pdf 4-6] [[-o|--outfile]] [path/to/output_file.pdf]`<br><b>Sign an A4 page (adjust delta to height for other formats) with a scanned signature by overlaying them</b>`pdfjam [path/to/file.pdf] [path/to/signature] --fitpaper true [[-o|--outfile]] [path/to/signed.pdf] --nup "[1x2]" --delta "[0 -842pt]"`<br><b>Arrange the pages from the input file into a fancy 2x2 grid</b>`pdfjam [path/to/file.pdf] --nup [2x2] --suffix [4up] --preamble '[\usepackage{fancyhdr} \pagestyle{fancy]}'`<br><b>Reverse the order of pages within each given file and concatenate them</b>`pdfjam [path/to/file1.pdf last-1 path/to/file2.pdf last-1 ...] --suffix [reversed]`


title: TLDR
content:
<b>Issue a certificate using webroot mode</b>`acme.sh --issue [[-d|--domain]] [example.com] [[-w|--webroot]] /[path/to/webroot]`<br><b>Issue a certificate for multiple domains using standalone mode using port 80</b>`acme.sh --issue --standalone [[-d|--domain]] [example.com] [[-d|--domain]] [www.example.com]`<br><b>Issue a certificate using standalone TLS mode using port 443</b>`acme.sh --issue --alpn [[-d|--domain]] [example.com]`<br><b>Issue a certificate using a working Nginx configuration</b>`acme.sh --issue --nginx [[-d|--domain]] [example.com]`<br><b>Issue a certificate using a working Apache configuration</b>`acme.sh --issue --apache [[-d|--domain]] [example.com]`<br><b>Issue a wildcard (\*) certificate using an automatic DNS API mode</b>`acme.sh --issue --dns [dns_cf] [[-d|--domain]] [*.example.com]`<br><b>Install certificate files into the specified locations (useful for automatic certificate renewal)</b>`acme.sh [[-i|--install-cert]] [[-d|--domain]] [example.com] --key-file /[path/to/example.com.key] --fullchain-file /[path/to/example.com.cer] --reloadcmd "[systemctl force-reload nginx]"`


title: TLDR
content:
<b>Remove a file with sensitive data but leave the latest commit untouched</b>`bfg --delete-files [file_with_sensitive_data]`<br><b>Remove all text mentioned in the specified file wherever it can be found in the repository's history</b>`bfg --replace-text [path/to/file.txt]`


title: TLDR
content:
<b>Create a package.json file</b>`pnpm init`<br><b>Download all the packages listed as dependencies in package.json</b>`pnpm [[i|install]]`<br><b>Download a specific version of a package and add it to the list of dependencies in package.json</b>`pnpm add [module_name]@[version]`<br><b>Download a package and add it to the list of dev dependencies in package.json</b>`pnpm add [module_name] [[-D|--save-dev]]`<br><b>Download a package and install it globally</b>`pnpm add [module_name] [[-g|--global]]`<br><b>Uninstall a package and remove it from the list of dependencies in package.json</b>`pnpm [[rm|remove]] [module_name]`<br><b>Print a tree of locally installed modules</b>`pnpm [[ls|list]]`<br><b>List top-level globally installed modules</b>`pnpm [[ls|list]] [[-g|--global]] --depth [0]`


title: TLDR
content:
<b>Print information about the operating system, shell, PHP, and WP-CLI (wp) installation</b>`wp --info`<br><b>Update WP-CLI</b>`wp cli update`<br><b>Download a fresh WordPress installation to current directory, optionally specifying the locale</b>`wp core download --locale=[locale]`<br><b>Create basic wpconfig file (assuming database on localhost)</b>`wp config create --dbname=[dbname] --dbuser=[dbuser] --dbpass=[dbpass]`<br><b>Install and activate a WordPress plugin</b>`wp plugin install [plugin] --activate`<br><b>Replace all instances of a string in the database</b>`wp search-replace [old_string] [new_string]`<br><b>Import the contents of a WordPress Extended RSS (WXR) file</b>`wp import [path/to/file.xml]`


title: TLDR
content:
<b>Reset a file to HEAD</b>`git reset-file [path/to/file]`<br><b>Reset a file to a specific commit</b>`git reset-file [path/to/file] [commit_hash]`


title: TLDR
content:
<b>Open the first upstream in the default browser</b>`git browse`<br><b>Open a specific upstream in the default browser</b>`git browse [upstream]`


title: TLDR
content:
<b>Print the starship integration code for the specified shell</b>`starship init [bash|elvish|fish|ion|powershell|tcsh|zsh|nu|xonsh|cmd]`<br><b>Explain each part of the current prompt and show the time taken to render them</b>`starship explain`<br><b>Print the computed starship configuration (use --default to print default configuration instead)</b>`starship print-config`<br><b>List supported modules</b>`starship module --list`<br><b>Edit the starship configuration in the default editor</b>`starship config`<br><b>Create a bug report GitHub issue pre-populated with information about the system and starship configuration</b>`starship bug-report`<br><b>Print the completion script for the specified shell</b>`starship completions [bash|elvish|fish|powershell|zsh]`<br><b>Display help for a subcommand</b>`starship [subcommand] --help`


title: TLDR
content:
<b>Start a daemon with the default settings</b>`distccd --daemon`<br><b>Start a daemon, accepting connections from IPv4 private network ranges</b>`distccd --daemon --allow-private`<br><b>Start a daemon, accepting connections from a specific network address or address range</b>`distccd --daemon [[-a|--allow]] [ip_address|network_prefix]`<br><b>Start a daemon with a lowered priority that can run a maximum of 4 tasks at a time</b>`distccd --daemon [[-j|--jobs]] [4] [[-N|--nice]] [5]`<br><b>Start a daemon and register it via mDNS/DNS-SD (Zeroconf)</b>`distccd --daemon --zeroconf`


title: TLDR
content:
<b>Delete only the virtual machine configuration file</b>`virsh undefine --domain [vm_name]`<br><b>Delete the configuration file and all associated storage volumes</b>`virsh undefine --domain [vm_name] --remove-all-storage`<br><b>Delete the configuration file and the specified storage volumes using the target name or the source name (as obtained from the virsh domblklist command)</b>`virsh undefine --domain [vm_name] --storage [sda,sdb,path/to/source,...]`


title: TLDR
content:
<b>Display data about a Git repository</b>`git summary`<br><b>Display data about a Git repository since a commit-ish</b>`git summary [commit|branch_name|tag_name]`<br><b>Display data about a Git repository, merging committers using different emails into 1 statistic for each author</b>`git summary --dedup-by-email`<br><b>Display data about a Git repository, showing the number of lines modified by each contributor</b>`git summary --line`


title: TLDR
content:
<b>Run all tests in all environments of the current PlatformIO project</b>`pio test`<br><b>Test only specific environments</b>`pio test [[-e|--environment]] [environment1] [[-e|--environment]] [environment2]`<br><b>Run only tests whose name matches a specific glob pattern</b>`pio test [[-f|--filter]] "[pattern]"`<br><b>Ignore tests whose name matches a specific glob pattern</b>`pio test [[-i|--ignore]] "[pattern]"`<br><b>Specify a port for firmware uploading</b>`pio test --upload-port [upload_port]`<br><b>Specify a custom configuration file for running the tests</b>`pio test [[-c|--project-conf]] [path/to/platformio.ini]`


title: TLDR
content:
<b>Display each file in the repository, showing commits and active days</b>`git effort`<br><b>Display files modified by a specific number of commits or more, showing commits and active days</b>`git effort --above [5]`<br><b>Display files modified by a specific author, showing commits and active days</b>`git effort -- --author="[username]"`<br><b>Display files modified since a specific time/date, showing commits and active days</b>`git effort -- --since="[last month]"`<br><b>Display only the specified files or directories, showing commits and active days</b>`git effort [path/to/file_or_directory1 path/to/file_or_directory2 ...]`<br><b>Display all files in a specific directory, showing commits and active days</b>`git effort [path/to/directory/*]`


title: TLDR
content:
<b>Import a JSON file into a specific collection</b>`mongoimport --file [path/to/file.json] --uri [mongodb_uri] [[-c|--collection]] [collection_name]`<br><b>Import a CSV file, using the first line of the file to determine field names</b>`mongoimport --type [csv] --file [path/to/file.csv] [[-d|--db]] [database_name] [[-c|--collection]] [collection_name]`<br><b>Import a JSON array, using each element as a separate document</b>`mongoimport --jsonArray --file [path/to/file.json]`<br><b>Import a JSON file using a specific mode and a query to match existing documents</b>`mongoimport --file [path/to/file.json] --mode [delete|merge|upsert] --upsertFields "[field1,field2,...]"`<br><b>Import a CSV file, reading field names from a separate CSV file and ignoring fields with empty values</b>`mongoimport --type [csv] --file [path/to/file.csv] --fieldFile [path/to/field_file.csv] --ignoreBlanks`<br><b>Display help</b>`mongoimport --help`


title: TLDR
content:
<b>Encode a file and print the result to stdout</b>`uuencode [path/to/input_file] [output_file_name_after_decoding]`<br><b>Encode a file and write the result to a file</b>`uuencode -o [path/to/output_file] [path/to/input_file] [output_file_name_after_decoding]`<br><b>Encode a file using Base64 instead of the default uuencode encoding and write the result to a file</b>`uuencode [[-m|--base64]] -o [path/to/output_file] [path/to/input_file] [output_file_name_after_decoding]`


title: TLDR
content:
<b>List the virsh commands grouped into related categories</b>`virsh help`<br><b>List the command categories</b>`virsh help | grep "keyword"`<br><b>List the commands in a category</b>`virsh help [category_keyword]`<br><b>Display help for a command</b>`virsh help [command]`


title: TLDR
content:
<b>List files from the current checked out branch that differ from the main branch</b>`git delta [main]`<br><b>List files from a specific branch that differ from another specific branch</b>`git delta [branch_1] [branch_2]`


title: TLDR
content:
<b>Erase the existence of specific files</b>`git obliterate [file_1 file_2 ...]`<br><b>Erase the existence of specific files between 2 commits</b>`git obliterate [file_1 file_2 ...] -- [commit_hash_1]..[commit_hash_2]`


title: TLDR
content:
<b>Launch colorpicker and print the hexadecimal and RGB value of each clicked pixel to stdout</b>`colorpicker`<br><b>Only print the color of one clicked pixel and then exit</b>`colorpicker --one-shot`<br><b>Print the color of each clicked pixel and quit when a key is pressed</b>`colorpicker --quit-on-keypress`<br><b>Only print the RGB value</b>`colorpicker --rgb`<br><b>Only print the hexadecimal value</b>`colorpicker --hex`


title: TLDR
content:
<b>Create a Git repository in the current directory and commit all files</b>`git setup`<br><b>Create a Git repository in a specific directory and commit all files</b>`git setup [path/to/directory]`


title: TLDR
content:
<b>Create a new environment named py39, install Python 3.9, NumPy v1.11 or above in it, and the latest stable version of SciPy. Say yes to all confirmations</b>`conda create [[-ny|--name --yes]] [py39] python=[3.9] "[numpy>=1.11 scipy]"`<br><b>Create a new environment named myenv and install packages listed in files</b>`conda create [[-n|--name]] myenv --file [file1.yml] --file [file2.yml]`<br><b>Create a new environment named myenv at custom path (i.e. prefix)</b>`conda create [[-p|--prefix]] [path/to/myenv]`<br><b>Make exact copy of an environment named py39</b>`conda create --clone py39 [[-n|--name]] [py39-copy]`<br><b>Display help</b>`conda create [[-h|--help]]`


title: TLDR
content:
<b>Install or upgrade git-extras commands</b>`git extras update`<br><b>Display help</b>`git extras [[-h|--help]]`<br><b>Display version</b>`git extras [[-v|--version]]`


title: TLDR
content:
<b>Issue a certificate using an automatic DNS API mode</b>`acme.sh --issue --dns [gnd_gd] --domain [example.com]`<br><b>Issue a wildcard certificate (denoted by an asterisk) using an automatic DNS API mode</b>`acme.sh --issue --dns [dns_namesilo] --domain [example.com] --domain [*.example.com]`<br><b>Issue a certificate using a DNS alias mode</b>`acme.sh --issue --dns [dns_cf] --domain [example.com] --challenge-alias [alias-for-example-validation.com]`<br><b>Issue a certificate while disabling automatic Cloudflare/Google DNS polling after the DNS record is added by specifying a custom wait time in seconds</b>`acme.sh --issue --dns [dns_namecheap] --domain [example.com] --dnssleep [300]`<br><b>Issue a certificate using a manual DNS mode</b>`acme.sh --issue --dns --domain [example.com] --yes-I-know-dns-manual-mode-enough-go-ahead-please`


title: TLDR
content:
<b>List the target name and source path of the block devices</b>`virsh domblklist --domain [vm_name]`<br><b>List the disk type and device value as well as the target name and source path</b>`virsh domblklist --domain [vm_name] --details`


title: TLDR
content:
<b>Launch document viewer</b>`okular`<br><b>Open specific documents</b>`okular [path/to/file1 path/to/file2 ...]`<br><b>Open a document at a specific page</b>`okular [[-p|--page]] [page_number] [path/to/file]`<br><b>Open a specific document in presentation mode</b>`okular --presentation [path/to/file]`<br><b>Open a specific document and start a print dialog</b>`okular --print [path/to/file]`<br><b>Open a document and search for a specific string</b>`okular --find [search_string] [path/to/file]`


title: TLDR
content:
<b>Set a secret for the current repository (user will be prompted for the value)</b>`gh secret set [name]`<br><b>Set a secret from a file for the current repository</b>`gh < [path/to/file] secret set [name]`<br><b>Set a secret for a specific repository</b>`gh secret set [name] [[-b|--body]] [value] [[-R|--repo]] [owner]/[repository]`<br><b>Set an organization secret for specific repositories</b>`gh secret set [name] [[-o|--org]] [organization] [[-r|--repos]] "[repository1,repository2,...]"`<br><b>Set an organization secret with a specific visibility</b>`gh secret set [name] [[-o|--org]] [organization] [[-v|--visibility]] [all|private|selected]`


title: TLDR
content:
<b>Open a directory</b>`xplr [path/to/directory]`<br><b>Focus on a file</b>`xplr [path/to/file]`<br><b>Focus on a directory</b>`xplr --force-focus [path/to/directory]`<br><b>Open a directory with specific files or directories selected</b>`xplr [path/to/directory] [path/to/selected_file_or_directory1] [path/to/selected_file_or_directory2]`


title: TLDR
content:
<b>List all aliases</b>`git alias`<br><b>Create a new alias</b>`git alias "[name]" "[command]"`<br><b>Search for an existing alias</b>`git alias ^[name]`


title: TLDR
content:
<b>List all active Remote Agents</b>`pio remote agent list`<br><b>Start a new Remote Agent with a specific name and share it with friends</b>`pio remote agent start [[-n|--name]] [agent_name] [[-s|--share]] [example1@example.com] [[-s|--share]] [example2@example.com]`<br><b>List devices from specified Agents (omit --agent to specify all Agents)</b>`pio remote --agent [agent_name1] --agent [agent_name2] device list`<br><b>Connect to the serial port of a remote device</b>`pio remote --agent [agent_name] device monitor`<br><b>Run all targets on a specified Agent</b>`pio remote --agent [agent_name] run`<br><b>Update installed core packages, development platforms and global libraries on a specific Agent</b>`pio remote --agent [agent_name] update`<br><b>Run all tests in all environments on a specific Agent</b>`pio remote --agent [agent_name] test`


title: TLDR
content:
<b>List all devices</b>`kdeconnect-cli --list-devices`<br><b>List available (paired and reachable) devices</b>`kdeconnect-cli --list-available`<br><b>Request pairing with a specific device, specifying its ID</b>`kdeconnect-cli --pair --device [device_id]`<br><b>Ring a device, specifying its name</b>`kdeconnect-cli --ring --name "[device_name]"`<br><b>Share an URL or file with a paired device, specifying its ID</b>`kdeconnect-cli --share [url|path/to/file] --device [device_id]`<br><b>Send an SMS with an optional attachment to a specific number</b>`kdeconnect-cli --name "[device_name]" --send-sms "[message]" --destination [phone_number] --attachment [path/to/file]`<br><b>Unlock a specific device</b>`kdeconnect-cli --name "[device_name]" --unlock`<br><b>Simulate a key press on a specific device</b>`kdeconnect-cli --name "[device_name]" --send-keys [key]`


title: TLDR
content:
<b>Rename an existing Git tag locally and remotely</b>`git rename-tag [old_tag_name] [new_tag_name]`


title: TLDR
content:
<b>Convert an STL file to a GTS file</b>`stl2gts < [path/to/file.stl] > [path/to/file.gts]`<br><b>Convert an STL file to a GTS file and revert face normals</b>`stl2gts < [path/to/file.stl] --revert > [path/to/file.gts]`<br><b>Convert an STL file to a GTS file and do not merge vertices</b>`stl2gts < [path/to/file.stl] --nomerge > [path/to/file.gts]`<br><b>Convert an STL file to a GTS file and display surface statistics</b>`stl2gts < [path/to/file.stl] --verbose > [path/to/file.gts]`<br><b>Display help</b>`stl2gts --help`


title: TLDR
content:
<b>Print the total number of commits</b>`git count`<br><b>Print the number of commits per contributor and the total number of commits</b>`git count --all`


title: TLDR
content:
<b>Create a local branch</b>`git create-branch [branch_name]`<br><b>Create a branch locally and on origin</b>`git create-branch [[-r|--remote]] [branch_name]`<br><b>Create a branch locally and on upstream (through forks)</b>`git create-branch [[-r|--remote]] upstream [branch_name]`


title: TLDR
content:
<b>Pretty-print JSON or JSON-Lines data from stdin to stdout</b>`cat [file.json] | jello`<br><b>Output a schema of JSON or JSON Lines data from stdin to stdout (useful for grep)</b>`cat [file.json] | jello -s`<br><b>Output all elements from arrays (or all the values from objects) in JSON or JSON-Lines data from stdin to stdout</b>`cat [file.json] | jello -l`<br><b>Output the first element in JSON or JSON-Lines data from stdin to stdout</b>`cat [file.json] | jello _[0]`<br><b>Output the value of a given key of each element in JSON or JSON-Lines data from stdin to stdout</b>`cat [file.json] | jello '[i.[key_name] for i in _]'`<br><b>Output the value of multiple keys as a new JSON object (assuming the input JSON has the keys key_name1 and key_name2)</b>`cat [file.json] | jello '[{"key1": _.key_name1, "key2": _.key_name2, ...]}'`<br><b>Output the value of a given key to a string (and disable JSON output)</b>`cat [file.json] | jello -r '"[some text]: " + _.[key_name]'`


title: TLDR
content:
<b>Open qutebrowser with a specified storage directory</b>`qutebrowser --basedir [path/to/directory]`<br><b>Open a qutebrowser instance with temporary settings</b>`qutebrowser --set [content.geolocation] [true|false]`<br><b>Restore a named session of a qutebrowser instance</b>`qutebrowser --restore [session_name]`<br><b>Launch qutebrowser, opening all URLs using the specified method</b>`qutebrowser --target [auto|tab|tab-bg|tab-silent|tab-bg-silent|window|private-window]`<br><b>Open qutebrowser with a temporary base directory and print logs to stdout as JSON</b>`qutebrowser --temp-basedir --json-logging`


title: TLDR
content:
<b>Launch GnuCash and load the previously opened file</b>`gnucash`<br><b>Launch GnuCash and load the specified file</b>`gnucash [path/to/file.gnucash]`<br><b>Launch GnuCash and load an empty file</b>`gnucash --nofile`


title: TLDR
content:
<b>Convert a bitcode file as LLVM IR and write the result to stdout</b>`llvm-dis [path/to/input.bc] -o -`<br><b>Convert a bitcode file to an LLVM IR file with the same filename</b>`llvm-dis [path/to/file.bc]`<br><b>Convert a bitcode file to LLVM IR, writing the result to the specified file</b>`llvm-dis [path/to/input.bc] -o [path/to/output.ll]`


title: TLDR
content:
<b>Start skim on all files in the specified directory</b>`find [path/to/directory] -type f | sk`<br><b>Start skim for running processes</b>`ps aux | sk`<br><b>Start skim with a specified query</b>`sk --query "[query]"`<br><b>Select multiple files with <Shift Tab> and write to a file</b>`find [path/to/directory] -type f | sk --multi > [path/to/file]`


title: TLDR
content:
<b>Print the absolute path of the current Git repository</b>`git root`<br><b>Print the current working directory relative to the root of the current Git repository</b>`git root [[-r|--relative]]`


title: TLDR
content:
<b>Start Caddy in the foreground</b>`caddy run`<br><b>Start Caddy with the specified Caddyfile</b>`caddy run --config [path/to/Caddyfile]`<br><b>Start Caddy in the background</b>`caddy start`<br><b>Stop a background Caddy process</b>`caddy stop`<br><b>Run a simple file server on the specified port with a browsable interface</b>`caddy file-server --listen :[8000] --browse`<br><b>Run a reverse proxy server</b>`caddy reverse-proxy --from :[80] --to localhost:[8000]`


title: TLDR
content:
<b>Fork and clone a GitHub repository by its URL</b>`git fork [https://github.com/tldr-pages/tldr]`<br><b>Fork and clone a GitHub repository by its slug</b>`git fork [tldr-pages/tldr]`


title: TLDR
content:
<b>Rename the branch you are currently on</b>`git rename-branch [new_branch_name]`<br><b>Rename a specific branch</b>`git rename-branch [old_branch_name] [new_branch_name]`


title: TLDR
content:
<b>Protect branches of a GitHub repository (create branch protection rules)</b>`protector [branches_regex] -repos [organization/repository]`<br><b>Use the dry run to see what would be protected (can also be used for freeing)</b>`protector -dry-run [branches_regex] -repos [organization/repository]`<br><b>Free branches of a GitHub repository (delete branch protection rules)</b>`protector -free [branches_regex] -repos [organization/repository]`


title: TLDR
content:
<b>Print a full list of committers to stdout instead of to the AUTHORS file</b>`git authors [[-l|--list]]`<br><b>Append the list of committers to the AUTHORS file and open it in the default editor</b>`git authors`<br><b>Append the list of committers, excluding emails, to the AUTHORS file and open it in the default editor</b>`git authors --no-email`


title: TLDR
content:
<b>Start an interactive shell session</b>`nu`<br><b>Execute specific commands</b>`nu --commands "[echo 'nu is executed']"`<br><b>Execute a specific script</b>`nu [path/to/script.nu]`<br><b>Execute a specific script with logging</b>`nu --log-level [error|warn|info|debug|trace] [path/to/script.nu]`


title: TLDR
content:
<b>List information about running virtual machines</b>`virsh list`<br><b>List information about virtual machines regardless of state</b>`virsh list --all`<br><b>List information about virtual machines with autostart either enabled or disabled</b>`virsh list --all --[autostart|no-autostart]`<br><b>List information about virtual machines either with or without snapshots</b>`virsh list --all --[with-snapshot|without-snapshot]`


title: TLDR
content:
<b>Display commits since yesterday</b>`git commits-since [yesterday]`<br><b>Display commits since last week</b>`git commits-since [last week]`<br><b>Display commits since last month</b>`git commits-since [last month]`<br><b>Display commits since yesterday 2pm</b>`git commits-since [yesterday 2pm]`


title: TLDR
content:
<b>Start Qt Creator</b>`qtcreator`<br><b>Start Qt Creator and restore the last session</b>`qtcreator -lastsession`<br><b>Start Qt Creator but don't load the specified plugin</b>`qtcreator -noload [plugin]`<br><b>Start Qt Creator but don't load any plugins</b>`qtcreator -noload [all]`<br><b>Start Qt Creator in presentation mode with pop-ups for keyboard shortcuts</b>`qtcreator -presentationMode`<br><b>Start Qt Creator and show the diff from a specific commit</b>`qtcreator -git-show [commit]`


title: TLDR
content:
<b>Diff the changes of two individual commits</b>`git range-diff [commit_1]^! [commit_2]^!`<br><b>Diff the changes of ours and theirs from their common ancestor, e.g. after an interactive rebase</b>`git range-diff [theirs]...[ours]`<br><b>Diff the changes of two commit ranges, e.g. to check whether conflicts have been resolved appropriately when rebasing commits from base1 to base2</b>`git range-diff [base1]..[rev1] [base2]..[rev2]`


title: TLDR
content:
<b>Update ibmcloud to the latest version</b>`ibmcloud update`<br><b>List all available IBM Cloud regions</b>`ibmcloud regions`<br><b>Display help</b>`ibmcloud help`<br><b>Display help for a subcommand</b>`ibmcloud help [subcommand]`<br><b>Display version</b>`ibmcloud version`


title: TLDR
content:
<b>Send a GET request (shows response headers and content)</b>`xh [https://postman-echo.com/get]`<br><b>Send a POST request with a JSON body (key-value pairs are added to a top-level JSON object - e.g. {"name": "john", "age": 25})</b>`xh post [https://postman-echo.com/post] [name=john] [age=25]`<br><b>Send a GET request with query parameters (e.g. https://postman-echo.com/response-headers?foo1=bar1&foo2=bar2)</b>`xh get [https://postman-echo.com/response-headers] [foo1==bar1] [foo2==bar2]`<br><b>Send a GET request with a custom header</b>`xh get [https://postman-echo.com] [header-name:header-value]`<br><b>Make a GET request and save the response body to a file</b>`xh [[-d|--download]] [https://example.com] [[-o|--output]] [path/to/file]`<br><b>Construct a request but do not send it (similar to a dry-run)</b>`xh --offline [get|delete|...] [https://example.com]`<br><b>Show equivalent curl command (this will not send any request)</b>`xh --[curl|curl-long] [--follow --verbose get https://example.com user-agent:curl]`


title: TLDR
content:
<b>Delete one or more local and remote Git branches</b>`git delete-branch [branch_name1 branch_name2 ...]`


title: TLDR
content:
<b>Launch JOSM</b>`josm`<br><b>Launch JOSM in maximized mode</b>`josm --maximize`<br><b>Launch JOSM and set a specific language</b>`josm --language [de]`<br><b>Launch JOSM and reset all preferences to their default values</b>`josm --reset-preferences`<br><b>Launch JOSM and download a specific bounding box</b>`josm --download [minlat,minlon,maxlat,maxlon]`<br><b>Launch JOSM and download a specific bounding box as raw GPS</b>`josm --downloadgps [minlat,minlon,maxlat,maxlon]`<br><b>Launch JOSM without plugins</b>`josm --skip-plugins`


title: TLDR
content:
<b>Debug the PlatformIO project in the current directory</b>`pio debug`<br><b>Debug a specific PlatformIO project</b>`pio debug [[-d|--project-dir]] [path/to/platformio_project]`<br><b>Debug a specific environment</b>`pio debug [[-e|--environment]] [environment]`<br><b>Debug a PlatformIO project using a specific configuration file</b>`pio debug [[-c|--project-conf]] [path/to/platformio.ini]`<br><b>Debug a PlatformIO project using the gdb debugger</b>`pio debug --interface [gdb] [gdb_options]`


title: TLDR
content:
<b>Copy an existing file in a Git repo, staying in the same directory</b>`git cp [file] [new_file]`<br><b>Copy an existing file in a Git repo and place it elsewhere</b>`git cp [path/to/file] [path/to/new_file]`


title: TLDR
content:
<b>Execute a TypeScript file without compiling (node + tsc)</b>`ts-node [path/to/file.ts]`<br><b>Execute a TypeScript file without loading tsconfig.json</b>`ts-node --skipProject [path/to/file.ts]`<br><b>Evaluate TypeScript code passed as a literal</b>`ts-node [[-e|--eval]] '[console.log("Hello World")]'`<br><b>Execute a TypeScript file in script mode</b>`ts-node --script-mode [path/to/file.ts]`<br><b>Transpile a TypeScript file to JavaScript without executing it</b>`ts-node [[-T|--transpileOnly]] [path/to/file.ts]`<br><b>Display help</b>`ts-node [[-h|--help]]`


title: TLDR
content:
<b>Generate a new keypair at the default location</b>`minisign -G`<br><b>Sign a file</b>`minisign -Sm [path/to/file]`<br><b>Sign a file, adding a trusted (signed) and an untrusted (unsigned) comment in the signature</b>`minisign -Sm [path/to/file] -c "[Untrusted comment]" -t "[Trusted comment]"`<br><b>Verify a file and the trusted comments in its signature using the specified public key file</b>`minisign -Vm [path/to/file] -p [path/to/publickey.pub]`<br><b>Verify a file and the trusted comments in its signature, specifying a public key as a Base64 encoded literal</b>`minisign -Vm [path/to/file] -P "[public_key_base64]"`


title: TLDR
content:
<b>Decode a file that was encoded with uuencode and print the result to stdout</b>`uudecode [path/to/encoded_file]`<br><b>Decode a file that was encoded with uuencode and write the result to a file</b>`uudecode -o [path/to/decoded_file] [path/to/encoded_file]`


title: TLDR
content:
<b>Check a file for nits</b>`idnits [path/to/file.txt]`<br><b>Count nits without displaying them</b>`idnits --nitcount [path/to/file.txt]`<br><b>Show extra information about offending lines</b>`idnits --verbose [path/to/file.txt]`<br><b>Expect the specified year in the boilerplate instead of the current year</b>`idnits --year [2021] [path/to/file.txt]`<br><b>Assume the document is of the specified status</b>`idnits --doctype [standard|informational|experimental|bcp|ps|ds] [path/to/file.txt]`


title: TLDR
content:
<b>List available templates</b>`git ignore-io list`<br><b>Generate a .gitignore template</b>`git ignore-io [item_a,item_b,...]`


title: TLDR
content:
<b>Calculate contributions for the current Git repository</b>`git fame`<br><b>Exclude files/directories that match the specified regex</b>`git fame --excl "[regex]"`<br><b>Calculate contributions made after the specified date</b>`git fame --since "[3 weeks ago|2021-05-13]"`<br><b>Display contributions in the specified format</b>`git fame --format [pipe|yaml|json|csv|tsv]`<br><b>Display contributions per file extension</b>`git fame [[-t|--bytype]]`<br><b>Ignore whitespace changes</b>`git fame [[-w|--ignore-whitespace]]`<br><b>Detect inter-file line moves and copies</b>`git fame -C`<br><b>Detect intra-file line moves and copies</b>`git fame -M`


title: TLDR
content:
<b>Show the remote addresses table only</b>`bandwhich [[-a|--addresses]]`<br><b>Show DNS queries</b>`bandwhich [[-s|--show-dns]]`<br><b>Show total (cumulative) usage</b>`bandwhich [[-t|--total-utilization]]`<br><b>Show the network utilization for a specific network interface</b>`bandwhich [[-i|--interface]] [eth0]`<br><b>Show DNS queries with a given DNS server</b>`bandwhich [[-s|--show-dns]] [[-d|--dns-server]] [dns_server_ip]`


title: TLDR
content:
<b>Log in by using an interactive prompt</b>`ibmcloud login`<br><b>Log in to a specific API endpoint (default is cloud.ibm.com)</b>`ibmcloud login -a [api_endpoint]`<br><b>Log in by providing username, password and the targeted region as parameters</b>`ibmcloud login -u [username] -p [password] -r [us-south]`<br><b>Log in with an API key, passing it as an argument</b>`ibmcloud login --apikey [api_key_string]`<br><b>Log in with an API key, passing it as a file</b>`ibmcloud login --apikey @[path/to/api_key_file]`<br><b>Log in with a federated ID (single sign-on)</b>`ibmcloud login --sso`


title: TLDR
content:
<b>Display remote locations, remote and local branches, most recent commit data and .git/config settings</b>`git info`<br><b>Display remote locations, remote and local branches and most recent commit data</b>`git info --no-config`


title: TLDR
content:
<b>Connect to the default hypervisor</b>`virsh connect`<br><b>Connect as root to the local QEMU/KVM hypervisor</b>`virsh connect qemu:///system`<br><b>Launch a new instance of the hypervisor and connect to it as the local user</b>`virsh connect qemu:///session`<br><b>Connect as root to a remote hypervisor using SSH</b>`virsh connect qemu+ssh://[user_name@host_name]/system`


title: TLDR
content:
<b>Synchronize once, without enabling autorefresh</b>`offlineimap -o`<br><b>Synchronize a specific account</b>`offlineimap -a [account]`<br><b>Synchronize a specific folder</b>`offlineimap -f [folder]`


title: TLDR
content:
<b>Create and push a release</b>`git release [tag_name]`<br><b>Create and push a signed release</b>`git release [tag_name] -s`<br><b>Create and push a release with a message</b>`git release [tag_name] -m "[message]"`


title: TLDR
content:
<b>Display information about a Matroska file</b>`mkvmerge --identify [path/to/file.mkv]`<br><b>Extract the audio from track 1 of a specific file</b>`mkvextract tracks [path/to/file.mkv] [1]:[path/to/output.webm]`<br><b>Extract the subtitle from track 3 of a specific file</b>`mkvextract tracks [path/to/file.mkv] [3]:[path/to/subs.srt]`<br><b>Add a subtitle track to a file</b>`mkvmerge --output [path/to/output.mkv] [path/to/file.mkv] [path/to/subs.srt]`


title: TLDR
content:
<b>Remove the most recent commit</b>`git undo`<br><b>Remove a specific number of the most recent commits</b>`git undo [3]`


title: TLDR
content:
<b>Check commits for a GPG signature</b>`git verify-commit [commit_hash1 optional_commit_hash2 ...]`<br><b>Check commits for a GPG signature and show details of each commit</b>`git verify-commit [commit_hash1 optional_commit_hash2 ...] [[-v|--verbose]]`<br><b>Check commits for a GPG signature and print the raw details</b>`git verify-commit [commit_hash1 optional_commit_hash2 ...] --raw`


title: TLDR
content:
<b>List all available project targets</b>`pio run --list-targets`<br><b>List all available project targets of a specific environment</b>`pio run --list-targets [[-e|--environment]] [environment]`<br><b>Run all targets</b>`pio run`<br><b>Run all targets of specified environments</b>`pio run [[-e|--environment]] [environment1] [[-e|--environment]] [environment2]`<br><b>Run specified targets</b>`pio run [[-t|--target]] [target1] [[-t|--target]] [target2]`<br><b>Run the targets of a specified configuration file</b>`pio run [[-c|--project-conf]] [path/to/platformio.ini]`


title: TLDR
content:
<b>Print the starship integration code for the specified shell</b>`starship init [bash|elvish|fish|ion|powershell|tcsh|zsh]`<br><b>Append the starship integration code to ~/.bashrc</b>`starship init [bash] >> [~/.bashrc]`<br><b>Append the starship integration code to ~/.zshrc</b>`starship init [zsh] >> [~/.zshrc]`<br><b>Display help</b>`starship init --help`


title: TLDR
content:
<b>Display all commit hashes and their corresponding commit messages from a specific author</b>`git contrib [author]`


title: TLDR
content:
<b>Launch VLC in a container</b>`x11docker [[-p|--pulseaudio]] --share [$HOME/Videos] [jess/vlc]`<br><b>Launch Xfce in a window</b>`x11docker [[-d|--desktop]] [x11docker/xfce]`<br><b>Launch GNOME in a window</b>`x11docker [[-d|--desktop]] [[-g|--gpu]] --init=[systemd] [x11docker/gnome]`<br><b>Launch KDE Plasma in a window</b>`x11docker [[-d|--desktop]] [[-g|--gpu]] --init=[systemd] [x11docker/kde-plasma]`<br><b>Display help</b>`x11docker --help`


title: TLDR
content:
<b>List all supported operations (enabled operations are indicated with asterisks)</b>`virt-sysprep --list-operations`<br><b>Remove sensitive system data from a virtual machine image</b>`sudo virt-sysprep [[-a|--add]] [path/to/image.qcow2]`<br><b>Specify a virtual machine by its name and run all enabled operations but don't actually apply the changes</b>`sudo virt-sysprep [[-d|--domain]] [vm_name] [[-n|--dry-run]]`<br><b>Run only the specified operations</b>`sudo virt-sysprep [[-d|--domain]] [vm_name] --operations [operation1,operation2,...]`<br><b>Generate a new /etc/machine-id file and enable customizations to be able to change the host name to avoid network conflicts</b>`sudo virt-sysprep [[-d|--domain]] [vm_name] --enable [customizations] --hostname [host_name] --operation [machine-id]`<br><b>Display help</b>`virt-sysprep [[-he|--help]]`


title: TLDR
content:
<b>Create a new issue against the current repository interactively</b>`gh issue [[new|create]]`<br><b>Create a new issue with the bug label interactively</b>`gh issue [[new|create]] [[-l|--label]] "bug"`<br><b>Create a new issue interactively and assign it to the specified users</b>`gh issue [[new|create]] [[-a|--assignee]] [user1,user2,...]`<br><b>Create a new issue with a title, body and assign it to the current user</b>`gh issue [[new|create]] [[-t|--title]] "[title]" [[-b|--body]] "[body]" [[-a|--assignee]] "@me"`<br><b>Create a new issue interactively, reading the body text from a file</b>`gh issue [[new|create]] [[-F|--body-file]] [path/to/file]`<br><b>Create a new issue in the default web browser</b>`gh issue [[new|create]] [[-w|--web]]`<br><b>Display help</b>`gh issue [[new|create]] [[-h|--help]]`


title: TLDR
content:
<b>Execute the binary from a given npm module</b>`pnpx [module_name]`<br><b>Execute a specific binary from a given npm module, in case the module has multiple binaries</b>`pnpx --package [package_name] [module_name]`<br><b>Display help</b>`pnpx --help`


title: TLDR
content:
<b>Get quotes for currencies and stocks specified in a file and print them</b>`gnucash-cli [[-Q|--quotes]] get [path/to/file.gnucash]`<br><b>Generate a financial report of a specific type, specified by --name</b>`gnucash-cli --report run --name "[Balance Sheet]" [path/to/file.gnucash]`


title: TLDR
content:
<b>Start an interactive Git shell</b>`git repl`<br><b>Run a Git command while in the interactive Git shell</b>`[git_subcommand] [command_arguments]`<br><b>Run an external (non-Git) command while in the interactive Git shell</b>`![command] [command_arguments]`<br><b>Exit the interactive Git shell (or press <Ctrl d>)</b>`exit`


title: TLDR
content:
<h2>Test if a given variable is equal to a given string</h2>`[ "[$VARIABLE]" == "[/bin/zsh]" ]`<br><h2>Test if a given variable is empty</h2>`[ -z "[$GIT_BRANCH]" ]`<br><h2>Test if a file exists</h2>`[ -f "[path/to/file]" ]`<br><h2>Test if a directory does not exist</h2>`[ ! -d "[path/to/directory]" ]`<br><h2>If-else statement</h2>`[ [condition] ] && [echo "true"] || [echo "false"]`


title: TLDR
content:
<b>Merge all commits not present on the target branch from the source branch to target branch, and delete the source branch</b>`git graft [source_branch] [target_branch]`


title: TLDR
content:
<b>Generate an encrypted file that can be decrypted with a passphrase</b>`age --passphrase --output [path/to/encrypted_file] [path/to/unencrypted_file]`<br><b>Encrypt a file with one or more public keys entered as literals (repeat the --recipient flag to specify multiple public keys)</b>`age --recipient [public_key] --output [path/to/encrypted_file] [path/to/unencrypted_file]`<br><b>Encrypt a file to one or more recipients with their public keys specified in a file (one per line)</b>`age --recipients-file [path/to/recipients_file] --output [path/to/encrypted_file] [path/to/unencrypted_file]`<br><b>Decrypt a file with a passphrase</b>`age --decrypt --output [path/to/decrypted_file] [path/to/encrypted_file]`<br><b>Decrypt a file with a private key file</b>`age --decrypt --identity [path/to/private_key_file] --output [path/to/decrypted_file] [path/to/encrypted_file]`


title: TLDR
content:
<b>Display the current month's calendar</b>`ical`<br><b>Convert a Gregorian date to a Hijri date</b>`ical --gregorian [yyyymmdd]`<br><b>Convert a Hirji date to a Gregorian date</b>`ical --hijri [yyyymmdd]`


title: TLDR
content:
<b>Notify the operating system kernel of partition table changes</b>`sudo partprobe`<br><b>Notify the kernel of partition table changes and show a summary of devices and their partitions</b>`sudo partprobe [[-s|--summary]]`<br><b>Show a summary of devices and their partitions but don't notify the kernel</b>`sudo partprobe [[-s|--summary]] [[-d|--dry-run]]`


title: TLDR
content:
<b>Monitor all device events</b>`sudo udevadm monitor`<br><b>Print uevents sent out by the kernel</b>`sudo udevadm monitor [[-k|--kernel]]`<br><b>Print device events after being processed by udev</b>`sudo udevadm monitor [[-u|--udev]]`<br><b>List attributes of device /dev/sda</b>`sudo udevadm info [[-a|--attribute-walk]] [/dev/sda]`<br><b>Reload all udev rules</b>`sudo udevadm control [[-R|--reload]]`<br><b>Trigger all udev rules to run</b>`sudo udevadm trigger`<br><b>Test an event run by simulating loading of /dev/sda</b>`sudo udevadm test [/dev/sda]`


title: TLDR
content:
<b>Display the routing policy</b>`ip [[ru|rule]]`<br><b>Create a new generic routing rule with a higher priority than main</b>`sudo ip [[ru|rule]] [[a|add]] from all lookup [100]`<br><b>Add a new rule based on packet source addresses</b>`sudo ip [[ru|rule]] [[a|add]] from [192.168.178.2/32]`<br><b>Add a new rule based on packet destination addresses</b>`sudo ip [[ru|rule]] [[a|add]] to [192.168.178.2/32]`<br><b>Delete a rule based on packet source addresses</b>`sudo ip [[ru|rule]] [[d|delete]] from [192.168.178.2/32]`<br><b>Remove all routing rules</b>`sudo ip [[ru|rule]] [[f|flush]]`<br><b>Save all rules to a file</b>`ip [[ru|rule]] [[s|save]] > [path/to/ip_rules.dat]`<br><b>Restore all rules from a file</b>`sudo ip < [path/to/ip_rules.dat] [[ru|rule]] [[r|restore]]`


title: TLDR
content:
<b>Start the daemon</b>`bluetoothd`<br><b>Start the daemon, logging to stdout</b>`bluetoothd [[-n|--nodetach]]`<br><b>Start the daemon with a specific configuration file (defaults to /etc/bluetooth/main.conf)</b>`bluetoothd [[-f|--configfile]] [path/to/file]`<br><b>Start the daemon with verbose output to stderr</b>`bluetoothd [[-d|--debug]]`<br><b>Start the daemon with verbose output coming from specific files in the bluetoothd or plugins source</b>`bluetoothd [[-d|--debug=]][path/to/file1:path/to/file2:...]`


title: TLDR
content:
<b>Change the activation status of logical volumes in all volume groups</b>`sudo vgchange [[-a|--activate]] [y|n]`<br><b>Change the activation status of logical volumes in the specified volume group (determine with vgscan)</b>`sudo vgchange [[-a|--activate]] [y|n] [volume_group]`


title: TLDR
content:
<b>Scan for Bluetooth devices</b>`hcitool scan`<br><b>Output the name of a device, returning its MAC address</b>`hcitool name [bdaddr]`<br><b>Fetch information about a remote Bluetooth device</b>`hcitool info [bdaddr]`<br><b>Check the link quality to a Bluetooth device</b>`hcitool lq [bdaddr]`<br><b>Modify the transmit power level</b>`hcitool tpl [bdaddr] [0|1]`<br><b>Display the link policy</b>`hcitool lp`<br><b>Request authentication with a specific device</b>`hcitool auth [bdaddr]`<br><b>Display local devices</b>`hcitool dev`


title: TLDR
content:
<b>Run a command with a file lock as soon as the lock is not required by others</b>`flock [path/to/lock.lock] --command "[command]"`<br><b>Run a command with a file lock, and exit if the lock doesn't exist</b>`flock [path/to/lock.lock] --nonblock --command "[command]"`<br><b>Run a command with a file lock, and exit with a specific error code if the lock doesn't exist</b>`flock [path/to/lock.lock] --nonblock --conflict-exit-code [error_code] -c "[command]"`


title: TLDR
content:
<b>Set the value of a key. Fails if the key doesn't exist or the value is out of range</b>`gsettings set [org.example.schema] [example-key] [value]`<br><b>Print the value of a key or the schema-provided default if the key has not been set in dconf</b>`gsettings get [org.example.schema] [example-key]`<br><b>Unset a key, so that its schema default value will be used</b>`gsettings reset [org.example.schema] [example-key]`<br><b>Display all (non-relocatable) schemas, keys, and values</b>`gsettings list-recursively`<br><b>Display all keys and values (default if not set) from one schema</b>`gsettings list-recursively [org.example.schema]`<br><b>Display schema-allowed values for a key (helpful with enum keys)</b>`gsettings range [org.example.schema] [example-key]`<br><b>Display the human-readable description of a key</b>`gsettings describe [org.example.schema] [example-key]`


title: TLDR
content:
<b>Scan for volume groups and print information about each group found</b>`sudo vgscan`<br><b>Scan for volume groups and add the special files in /dev, if they don't already exist, needed to access the logical volumes in the found groups</b>`sudo vgscan --mknodes`


title: TLDR
content:
<b>Display the name of the root window</b>`xprop -root WM_NAME`<br><b>Display the window manager hints for a window</b>`xprop -name "[window_name]" WM_HINTS`<br><b>Display the point size of a font</b>`xprop -font "[font_name]" POINT_SIZE`<br><b>Display all the properties of the window with the ID 0x200007</b>`xprop -id [0x200007]`


title: TLDR
content:
<b>Read an IDX file for a Git packfile and dump its contents to stdout</b>`git show-index [path/to/file.idx]`<br><b>Specify the hash algorithm for the index file (experimental)</b>`git show-index --object-format [sha1|sha256] [path/to/file]`


title: TLDR
content:
<b>Check tags for a GPG signature</b>`git verify-tag [tag1 optional_tag2 ...]`<br><b>Check tags for a GPG signature and show details for each tag</b>`git verify-tag [tag1 optional_tag2 ...] [[-v|--verbose]]`<br><b>Check tags for a GPG signature and print the raw details</b>`git verify-tag [tag1 optional_tag2 ...] --raw`


title: TLDR
content:
<b>List devices with changeable brightness</b>`brightnessctl [[-l|--list]]`<br><b>Print the current brightness of the default device</b>`brightnessctl [[g|get]]`<br><b>Print the current brightness of a specific device (can be a wildcard)</b>`brightnessctl [[g|get]] [[-d|--device]] '[device_name]'`<br><b>Set the brightness to a specified percentage</b>`brightnessctl [[s|set]] [50]%`<br><b>Increase brightness by a specified percentage</b>`brightnessctl [[s|set]] +[10]%`<br><b>Decrease brightness by a specified percentage</b>`brightnessctl [[s|set]] [10]%-`


title: TLDR
content:
<b>Enumerate directories using [c]olored output and a [w]ordlist specifying a target [u]RL</b>`ffuf -c -w [path/to/wordlist.txt] -u [http://example.com/FUZZ]`<br><b>Enumerate webservers of subdomains by changing the position of the keyword</b>`ffuf -w [path/to/subdomains.txt] -u [http://FUZZ.example.com]`<br><b>Fuzz with specified [t]hreads (default: 40) and pro[x]ying the traffic and save [o]utput to a file</b>`ffuf -o -w [path/to/wordlist.txt] -u [http://example.com/FUZZ] -t [500] -x [http://127.0.0.1:8080]`<br><b>Fuzz a specific [H]eader ("Name: Value") and [m]atch HTTP status [c]odes</b>`ffuf -w [path/to/wordlist.txt] -u [http://example.com] -H "[Host: FUZZ]" -mc [200]`<br><b>Fuzz with specified HTTP method and [d]ata, while [f]iltering out comma separated status [c]odes</b>`ffuf -w [path/to/postdata.txt] -X [POST] -d "[username=admin\&password=FUZZ]" -u [http://example.com/login.php] -fc [401,403]`<br><b>Fuzz multiple positions with multiple wordlists using different modes</b>`ffuf -w [path/to/keys:KEY] -w [path/to/values:VALUE] -mode [pitchfork|clusterbomb] -u [http://example.com/id?KEY=VALUE]`<br><b>Proxy requests through a HTTP MITM pro[x]y (such as Burp Suite or mitmproxy)</b>`ffuf -w [path/to/wordlist] -x [http://127.0.0.1:8080] -u [http://example.com/FUZZ]`


title: TLDR
content:
<b>Convert a translated PO file back to a document</b>`po4a-translate --format [text] --master [path/to/master.doc] --po [path/to/result.po] --localized [path/to/translated.txt]`<br><b>List all available formats</b>`po4a-translate --help-format`


title: TLDR
content:
<b>Interactively log into a NordVPN account</b>`nordvpn login`<br><b>Display the connection status</b>`nordvpn status`<br><b>Connect to the nearest NordVPN server</b>`nordvpn [[c|connect]]`<br><b>List all available countries</b>`nordvpn countries`<br><b>Connect to a NordVPN server in a specific country</b>`nordvpn [[c|connect]] [Germany]`<br><b>Connect to a NordVPN server in a specific country and city</b>`nordvpn [[c|connect]] [Germany] [Berlin]`<br><b>Set autoconnect option</b>`nordvpn [[s|set]] autoconnect on`


title: TLDR
content:
<b>Display all information about a PE file</b>`readpe [path/to/executable]`<br><b>Display all the headers present in a PE file</b>`readpe --all-headers [path/to/executable]`<br><b>Display all the sections present in a PE file</b>`readpe --all-sections [path/to/executable]`<br><b>Display a specific header from a PE file</b>`readpe --header [dos|coff|optional] [path/to/executable]`<br><b>List all imported functions</b>`readpe --imports [path/to/executable]`<br><b>List all exported functions</b>`readpe --exports [path/to/executable]`


title: TLDR
content:
<b>Show all outputs and configuration files to attach to a bug report</b>`kscreen-console bug`<br><b>Show paths to KScreen configuration files</b>`kscreen-console config`<br><b>Show KScreen output information and configuration</b>`kscreen-console outputs`<br><b>Monitor for changes</b>`kscreen-console monitor`<br><b>Show the current KScreen configuration as JSON</b>`kscreen-console json`<br><b>Display help</b>`kscreen-console [[-h|--help]]`<br><b>Display help including Qt specific command-line options</b>`kscreen-console --help-all`


title: TLDR
content:
<b>View the pinout information and GPIO header diagram for the current Raspberry Pi</b>`pinout`<br><b>Open <https://pinout.xyz/> in the default browser</b>`pinout [[-x|--xyz]]`


title: TLDR
content:
<b>Dump all information using the given LDAP account</b>`ldapdomaindump [[-u|--user]] [domain]\[username] [[-p|--password]] [password|ntlm_hash] [hostname|ip]`<br><b>Dump all information, resolving computer hostnames</b>`ldapdomaindump [[-r|--resolve]] [[-u|--user]] [domain]\[username] [[-p|--password]][password] [hostname|ip]`<br><b>Dump all information, resolving computer hostnames with the selected DNS server</b>`ldapdomaindump [[-r|--resolve]] [[-n|--dns-server]] [domain_controller_ip] [[-u|--user]] [domain]\[username] [[-p|--password]][password] [hostname|ip]`<br><b>Dump all information to the given directory without JSON output</b>`ldapdomaindump --no-json [[-o|--outdir]] [path/to/directory] [[-u|--user]] [domain]\[username] [[-p|--password]][password] [hostname|ip]`


title: TLDR
content:
<b>List the names of installed packages</b>`synopkg list --name`<br><b>List packages which depend on a specific package</b>`synopkg list --depend-on [package]`<br><b>Start/Stop a package</b>`sudo synopkg [start|stop] [package]`<br><b>Print the status of a package</b>`synopkg status [package]`<br><b>Uninstall a package</b>`sudo synopkg uninstall [package]`<br><b>Check if updates are available for a package</b>`synopkg checkupdate [package]`<br><b>Upgrade all packages to the latest version</b>`sudo synopkg upgradeall`<br><b>Install a package from a synopkg file</b>`sudo synopkg install [path/to/package.spk]`


title: TLDR
content:
<b>Output a summary of the last 2: months, days, and all-time</b>`vnstati --summary --iface [network_interface] --output [path/to/output.png]`<br><b>Output the 10 most traffic-intensive days of all time</b>`vnstati --top 10 --iface [network_interface] --output [path/to/output.png]`<br><b>Output monthly traffic statistics from the last 12 months</b>`vnstati --months --iface [network_interface] --output [path/to/output.png]`<br><b>Output hourly traffic statistics from the last 24 hours</b>`vnstati --hours --iface [network_interface] --output [path/to/output.png]`


title: TLDR
content:
<b>Mount a .raw image file into a DMG container file</b>`xmount --in [raw] [path/to/image.dd] --out [dmg] [mountpoint]`<br><b>Mount an EWF image file with write-cache support into a VHD file to boot from</b>`xmount --cache [path/to/cache.ovl] --in [ewf] [path/to/image.E??] --out [vhd] [mountpoint]`<br><b>Mount the first partition at sector 2048 into a new .raw image file</b>`xmount --offset [2048] --in [raw] [path/to/image.dd] --out [raw] [mountpoint]`


title: TLDR
content:
<b>Open a file</b>`zathura [path/to/file]`<br><b>Navigate left/up/down/right</b>`[<h>|<j>|<k>|<l>|<ArrowKeys>]`<br><b>Rotate</b>`<r>`<br><b>Invert Colors</b>`<Ctrl r>`<br><b>Search for text by a given string</b>`</>[string]`<br><b>Create/delete bookmarks</b>`<:>[bmark|bdelete] [bookmark_name]<Enter>`<br><b>List bookmarks</b>`<:>blist<Enter>`


title: TLDR
content:
<b>Create an empty IP set which will contain IP addresses</b>`ipset create [set_name] hash:ip`<br><b>Destroy a specific IP set</b>`ipset destroy [set_name]`<br><b>Add an IP address to a specific set</b>`ipset add [set_name] [192.168.1.25]`<br><b>Delete a specific IP address from a set</b>`ipset del [set_name] [192.168.1.25]`<br><b>Save an IP set</b>`ipset save [set_name] > [path/to/ip_set]`


title: TLDR
content:
<b>Connect to ProtonVPN interactively</b><br>`protonvpn-cli connect`<br><br><b>Connect to ProtonVPN using the fastest server available</b><br>`protonvpn-cli connect --fastest`<br><br><b>Connect to ProtonVPN using a specific server with a specific protocol</b><br>`protonvpn-cli connect [server_name] --protocol [udp|tcp]`<br><br><b>Connect to ProtonVPN using a random server with a specific protocol</b><br>`protonvpn-cli connect --random --protocol [udp|tcp]`<br><br><b>Connect to ProtonVPN using the fastest Tor-supporting server</b><br>`protonvpn-cli connect --tor`<br><br><b>Display help</b><br>`protonvpn-cli connect --help`<br>


title: TLDR
content:
<b>List all processes showing the PID, user, CPU usage, memory usage, and the command which started them</b>`procs`<br><b>List all processes as a tree</b>`procs --tree`<br><b>List information about processes, if the commands which started them contain Zsh</b>`procs [zsh]`<br><b>List information about all processes sorted by CPU time in [a]scending or [d]escending order</b>`procs [--sorta|--sortd] cpu`<br><b>List information about processes with either a PID, command, or user containing 41 or firefox</b>`procs --or [PID|command|user] [41] [firefox]`<br><b>List information about processes with both PID 41 and a command or user containing zsh</b>`procs --and [41] [zsh]`


title: TLDR
content:
<b>Update a PO file according to the modification of its origin file</b>`po4a-updatepo --format [text] --master [path/to/master.txt] --po [path/to/result.po]`<br><b>List available formats</b>`po4a-updatepo --help-format`<br><b>Update several PO files according to the modification of their origin file</b>`po4a-updatepo --format [text] --master [path/to/master.txt] --po [path/to/po1.po] --po [path/to/po2.po]`


title: TLDR
content:
<b>Create a loopback device with the default loopback behavior</b>`pw-loopback`<br><b>Create a loopback device that automatically connects to the speakers</b>`pw-loopback [[-m|--channel-map]] '[[FL FR]]' [[-i|--capture-props]] '[media.class=Audio/Sink]'`<br><b>Create a loopback device that automatically connects to the microphone</b>`pw-loopback [[-m|--channel-map]] '[[FL FR]]' [[-o|--playback-props]] '[media.class=Audio/Source]'`<br><b>Create a dummy loopback device that doesn't automatically connect to anything</b>`pw-loopback [[-m|--channel-map]] '[[FL FR]]' [[-i|--capture-props]] '[media.class=Audio/Sink]' [[-o|--playback-props]] '[media.class=Audio/Source]'`<br><b>Create a loopback device that automatically connects to the speakers and swaps the left and right channels between the sink and source</b>`pw-loopback [[-i|--capture-props]] '[media.class=Audio/Sink audio.position=[FL FR]]' [[-o|--playback-props]] '[audio.position=[FR FL]]'`<br><b>Create a loopback device that automatically connects to the microphone and swaps the left and right channels between the sink and source</b>`pw-loopback [[-i|--capture-props]] '[audio.position=[FR FL]]' [[-o|--playback-props]] '[media.class=Audio/Source audio.position=[FL FR]]'`


title: TLDR
content:
<b>Discover LXI devices on available networks</b>`lxi discover`<br><b>Capture a screenshot, detecting a plugin automatically</b>`lxi screenshot [[-a|--address]] [ip_address]`<br><b>Capture a screenshot using a specified plugin</b>`lxi screenshot [[-a|--address]] [ip_address] [[-p|--plugin]] [rigol-1000z]`<br><b>Send an SCPI command to an instrument</b>`lxi scpi [[-a|--address]] [ip_address] "[*IDN?]"`<br><b>Run a benchmark for request and response performance</b>`lxi benchmark [[-a|--address]] [ip_address]`


title: TLDR
content:
<b>Interactively create the file ~/.config/aurvote containing your AUR username and password</b>`aurvote --configure`<br><b>Vote for one or more AUR packages</b>`aurvote [package1 package2 ...]`<br><b>Unvote one or more AUR packages</b>`aurvote [[-u|--unvote]] [package1 package2 ...]`<br><b>Check if one or more AUR packages have already been voted</b>`aurvote [[-c|--check]] [package1 package2 ...]`<br><b>Display help</b>`aurvote [[-h|--help]]`


title: TLDR
content:
<b>Check if upgrades are available</b>`sudo synoupgrade --check`<br><b>Check for patches without upgrading the DSM version</b>`sudo synoupgrade --check-smallupdate`<br><b>Download the latest upgrade available (use --download-smallupdate for patches)</b>`sudo synoupgrade --download`<br><b>Start the upgrade process</b>`sudo synoupgrade --start`<br><b>Upgrade to the latest version automatically</b>`sudo synoupgrade --auto`<br><b>Apply patches without upgrading the DSM version automatically</b>`sudo synoupgrade --auto-smallupdate`<br><b>Upgrade the DSM using a patch file (should be an absolute path)</b>`sudo synoupgrade --patch /[path/to/file.pat]`<br><b>Display help</b>`synoupgrade`


title: TLDR
content:
<b>Show display output information</b>`kscreen-doctor [[-o|--outputs]]`<br><b>Set the rotation of a display output with an ID of 1 to the right</b>`kscreen-doctor [output.1.rotation.right]`<br><b>Set the scale of a display output with an ID of HDMI-2 to 2 (200%)</b>`kscreen-doctor [output.HDMI-2.scale.2]`


title: TLDR
content:
<b>List all available commands</b>`vcgencmd commands`<br><b>Print the current CPU temperature</b>`vcgencmd measure_temp`<br><b>Print the current voltage</b>`vcgencmd measure_volts`<br><b>Print the throttled state of the system as a bit pattern</b>`vcgencmd get_throttled`<br><b>Print the bootloader configuration (only available on Raspberry Pi 4 models)</b>`vcgencmd bootloader_config`<br><b>Display help</b>`vcgencmd --help`


title: TLDR
content:
<b>Search for packages from the official repositories and AUR</b>`aura --aursync --both --search [keyword|regex]`<br><b>Install a package from the AUR</b>`aura --aursync [package]`<br><b>Update all AUR packages in a verbose mode and remove all make dependencies</b>`aura --aursync --diff --sysupgrade --delmakedeps --unsuppress`<br><b>Install a package from the official repositories</b>`aura --sync [package]`<br><b>Synchronize and update all packages from the official repositories</b>`aura --sync --refresh --sysupgrade`<br><b>Downgrade a package using the package cache</b>`aura --downgrade [package]`<br><b>Remove a package and its dependencies</b>`aura --remove --recursive --unneeded [package]`<br><b>Remove orphan packages (installed as dependencies but not required by any package)</b>`aura --orphans --abandon`


title: TLDR
content:
<b>View documentation for the terminal emulator</b>`tldr st.1`<br><b>View documentation for the statistics tool</b>`tldr st.2`


title: TLDR
content:
<b>Initialize the pacman keyring</b>`sudo pacman-key --init`<br><b>Add the default Arch Linux keys</b>`sudo pacman-key --populate`<br><b>List keys from the public keyring</b>`pacman-key [[-l|--list-keys]]`<br><b>Add the specified keys</b>`sudo pacman-key [[-a|--add]] [path/to/keyfile.gpg]`<br><b>Receive a key from a key server</b>`sudo pacman-key [[-r|--recv-keys]] "[uid|name|email]"`<br><b>Print the fingerprint of a specific key</b>`pacman-key [[-f|--finger]] "[uid|name|email]"`<br><b>Sign an imported key locally</b>`sudo pacman-key --lsign-key "[uid|name|email]"`<br><b>Remove a specific key</b>`sudo pacman-key [[-d|--delete]] "[uid|name|email]"`


title: TLDR
content:
<b>Set up a wireless connection interactively</b>`wifi-menu`<br><b>Interactively set up a connection to a network and obscure the password</b>`wifi-menu [[-o|--obscure]]`<br><b>Display help</b>`wifi-menu [[-h|--help]]`


title: TLDR
content:
<b>Update PO files and documents according to the specified configuration file</b>`po4a [path/to/config_file]`


title: TLDR
content:
<b>Convert a text file to PO file</b>`po4a-gettextize --format [text] --master [path/to/master.txt] --po [path/to/result.po]`<br><b>List all available formats</b>`po4a-gettextize --help-format`<br><b>Convert a text file along with a translated document to a PO file (-l option can be provided multiple times)</b>`po4a-gettextize --format [text] --master [path/to/master.txt] --localized [path/to/translated.txt] --po [path/to/result.po]`


title: TLDR
content:
<b>Log in to the ProtonVPN account</b><br>`protonvpn-cli login [username]`<br><br><b>Start a kill switch upon connecting to ProtonVPN</b><br>`protonvpn-cli killswitch --on`<br><br><b>Connect to ProtonVPN interactively</b><br>`protonvpn-cli connect`<br><br><b>Display connection status</b><br>`protonvpn-cli status`<br><br><b>Block malware using ProtonVPN NetShield</b><br>`protonvpn-cli netshield --malware`<br><br><b>Disconnect from ProtonVPN</b><br>`protonvpn-cli disconnect`<br><br><b>Display the current ProtonVPN configuration</b><br>`protonvpn-cli config --list`<br><br><b>Display help for a subcommand</b><br>`protonvpn-cli [subcommand] --help`<br>


title: TLDR
content:
<b>List outdated processes</b>`needrestart`<br><b>Interactively restart services</b>`sudo needrestart`<br><b>List outdated processes in [v]erbose or [q]uiet mode</b>`needrestart -[v|q]`<br><b>Check if the [k]ernel is outdated</b>`needrestart -k`<br><b>Check if the CPU microcode is outdated</b>`needrestart -w`<br><b>List outdated processes in [b]atch mode</b>`needrestart -b`<br><b>List outdated processed using a specific [c]onfiguration file</b>`needrestart -c [path/to/config]`<br><b>Display help</b>`needrestart --help`


title: TLDR
content:
<b>Combine several graph layouts (that already have layout information)</b>`gvpack [path/to/layout1.gv path/to/layout2.gv ...] > [path/to/output.gv]`<br><b>Combine several graph layouts at the graph level, keeping graphs separate</b>`gvpack -g [path/to/layout1.gv path/to/layout2.gv ...] > [path/to/output.gv]`<br><b>Combine several graph layouts at the node level, ignoring clusters</b>`gvpack -n [path/to/layout1.gv path/to/layout2.gv ...] > [path/to/output.gv]`<br><b>Combine several graph layouts without packing</b>`gvpack -u [path/to/layout1.gv path/to/layout2.gv ...] > [path/to/output.gv]`<br><b>Display help</b>`gvpack -?`


title: TLDR
content:
<b>Render a PNG image with a filename based on the input filename and output format (uppercase -O)</b>`twopi -T [png] -O [path/to/input.gv]`<br><b>Render a SVG image with the specified output filename (lowercase -o)</b>`twopi -T [svg] -o [path/to/image.svg] [path/to/input.gv]`<br><b>Render the output in PS, PDF, SVG, Fig, PNG, GIF, JPEG, JSON, or DOT format</b>`twopi -T [format] -O [path/to/input.gv]`<br><b>Render a GIF image using stdin and stdout</b>`echo "[digraph {this -> that} ]" | twopi -T [gif] > [path/to/image.gif]`<br><b>Display help</b>`twopi -?`


title: TLDR
content:
<b>Open the homepage of the current repository in the default web browser</b>`gh browse`<br><b>Open the homepage of a specific repository in the default web browser</b>`gh browse [owner]/[repository]`<br><b>Open the settings page of the current repository in the default web browser</b>`gh browse [[-s|--settings]]`<br><b>Open the wiki of the current repository in the default web browser</b>`gh browse [[-w|--wiki]]`<br><b>Open a specific issue or pull request in the web browser</b>`gh browse [issue_number|pull_request_number]`<br><b>Open a specific branch in the web browser</b>`gh browse [[-b|--branch]] [branch_name]`<br><b>Open a specific file or directory of the current repository in the web browser</b>`gh browse [path/to/file_or_directory]`<br><b>Print the destination URL without open the web browser</b>`gh browse [[-n|--no-browser]]`


title: TLDR
content:
<b>Add a task</b>`todoist add "[task_name]"`<br><b>Add a high priority task with a label, project, and due date</b>`todoist add "[task_name]" --priority [1] --label-ids "[label_id]" --project-name "[project_name]" --date "[tmr 9am]"`<br><b>Add a high priority task with a label, project, and due date in quick mode</b>`todoist quick '#[project_name] "[tmr 9am]" p[1] [task_name] @[label_name]'`<br><b>List all tasks with a header and color</b>`todoist --header --color list`<br><b>List all high priority tasks</b>`todoist list --filter p[1]`<br><b>List today's tasks with high priority that have the specified label</b>`todoist list --filter '(@[label_name] | [today]) & p[1]'`


title: TLDR
content:
<b>Stop a storage pool specified by name or UUID (determine using virsh pool-list)</b>`virsh pool-destroy --pool [name|uuid]`


title: TLDR
content:
<b>Generate a SHA-512 timestamp request of a specific file and output to file.tsq</b>`openssl ts -query -data [path/to/file] -sha512 -out [path/to/file.tsq]`<br><b>Check the date and metadata of a specific timestamp response file</b>`openssl ts -reply -in [path/to/file.tsr] -text`<br><b>Verify a timestamp request file and a timestamp response file from the server with an SSL certificate file</b>`openssl ts -verify -in [path/to/file.tsr] -queryfile [path/to/file.tsq] -partial_chain -CAfile [path/to/cert.pem]`<br><b>Create a timestamp response for request using key and signing certificate and output it to file.tsr</b>`openssl ts -reply -queryfile [path/to/file.tsq] -inkey [path/to/tsakey.pem] -signer tsacert.pem -out [path/to/file.tsr]`


title: TLDR
content:
<b>Add the Corepack shims to the Node.js installation directory to make them available as global commands</b>`corepack enable`<br><b>Add the Corepack shims to a specific directory</b>`corepack enable --install-directory [path/to/directory]`<br><b>Remove the Corepack shims from the Node.js installation directory</b>`corepack disable`<br><b>Prepare a specific package manager</b>`corepack prepare [package_manager]@[version] --activate`<br><b>Prepare the package manager configured for the project in the current path</b>`corepack prepare`<br><b>Use a package manager without installing it as a global command</b>`corepack [npm|pnpm|yarn] [package_manager_arguments]`<br><b>Install a package manager from the specified archive</b>`corepack hydrate [path/to/corepack.tgz]`<br><b>Display help for a subcommand</b>`corepack [subcommand] --help`


title: TLDR
content:
<b>Display the ASCII art and default fields</b>`pfetch`<br><b>Display only the ASCII art and color palette fields</b>`PF_INFO="[ascii palette]" pfetch`<br><b>Display all possible fields</b>`PF_INFO="[ascii title os host kernel uptime pkgs memory shell editor wm de palette]" pfetch`<br><b>Display a different username and hostname</b>`USER="[user]" HOSTNAME="[hostname]" pfetch`<br><b>Display without colors</b>`PF_COLOR=[0] pfetch`


title: TLDR
content:
<b>Generate an HTML report for a specific website and save it to a file in the current directory</b>`lighthouse [https://example.com]`<br><b>Generate a JSON report and print it</b>`lighthouse --output [json] [https://example.com]`<br><b>Generate a JSON report and save it to a specific file</b>`lighthouse --output [json] --output-path [path/to/file.json] [https://example.com]`<br><b>Generate a report using the browser in headless mode without logging to stdout</b>`lighthouse --quiet --chrome-flags="[--headless]" [https://example.com]`<br><b>Generate a report, using the HTTP header key/value pairs in the specified JSON file for all requests</b>`lighthouse --extra-headers=[path/to/file.json] [https://example.com]`<br><b>Generate a report for specific categories only</b>`lighthouse --only-categories=[performance,accessibility,best-practices,seo,pwa] [https://example.com]`<br><b>Generate a report with device emulation and all throttling disabled</b>`lighthouse --screenEmulation.disabled --throttling-method=[provided] --no-emulatedUserAgent [https://example.com]`<br><b>Display help</b>`lighthouse --help`


title: TLDR
content:
<b>Delete elements matching an XPATH from an XML document</b>`xml [[ed|edit]] [[-d|--delete]] "[XPATH1]" [path/to/input.xml|URI]`<br><b>Move an element node of an XML document from XPATH1 to XPATH2</b>`xml [[ed|edit]] [[-m|--move]] "[XPATH1]" "[XPATH2]" [path/to/input.xml|URI]`<br><b>Rename all attributes named "id" to "ID"</b>`xml [[ed|edit]] [[-r|--rename]] "[//*/@id]" -v "[ID]" [path/to/input.xml|URI]`<br><b>Rename sub-elements of the element "table" that are named "rec" to "record"</b>`xml [[ed|edit]] [[-r|--rename]] "[/xml/table/rec]" -v "[record]" [path/to/input.xml|URI]`<br><b>Update the XML table record with "id=3" to the value "id=5"</b>`xml [[ed|edit]] [[-u|--update]] "[xml/table/rec[@id=3]/@id]" [[-v|--value]] [5] [path/to/input.xml|URI]`<br><b>Display help</b>`xml [[ed|edit]] [[-h|--help]]`


title: TLDR
content:
<b>Allow the current user to operate on the Tailscale daemon</b>`sudo tailscale set --operator $USER`<br><b>Connect to Tailscale</b>`tailscale up`<br><b>Disconnect from Tailscale</b>`tailscale down`<br><b>Display all devices connected to Tailscale (with their IP addresses)</b>`tailscale status`<br><b>Ping a peer node at the Tailscale layer and display which route it took for each response</b>`tailscale ping [ip|hostname]`<br><b>Analyze the local network conditions and display the result</b>`tailscale netcheck`<br><b>Start a web server for controlling the Tailscale daemon</b>`tailscale web`<br><b>Display a shareable identifier to help diagnose issues</b>`tailscale bugreport`


title: TLDR
content:
<b>List the name, state, and whether autostart is enabled or disabled for active storage pools</b>`virsh pool-list`<br><b>List information for active and inactive or just inactive storage pools</b>`virsh pool-list --[all|inactive]`<br><b>List extended information about persistence, capacity, allocation, and available space for active storage pools</b>`virsh pool-list --details`<br><b>List information for active storage pools with either autostart enabled or disabled</b>`virsh pool-list --[autostart|no-autostart]`<br><b>List information for active storage pools that are either persistent or transient</b>`virsh pool-list --[persistent|transient]`<br><b>List the name and UUID of active storage pools</b>`virsh pool-list --name --uuid`


title: TLDR
content:
<b>Colorize edges of one or more graph layouts (that already have layout information) to clarify crossing edges</b>`edgepaint [path/to/layout1.gv path/to/layout2.gv ...] > [path/to/output.gv]`<br><b>Colorize edges using a color scheme. (See <https://graphviz.org/doc/info/colors.html#brewer>)</b>`edgepaint -color-scheme=[accent7] [path/to/layout.gv] > [path/to/output.gv]`<br><b>Lay out a graph and colorize its edges, then convert to a PNG image</b>`dot [path/to/input.gv] | edgepaint | dot -T [png] > [path/to/output.png]`<br><b>Display help</b>`edgepaint -?`


title: TLDR
content:
<b>Start an interactive yacas session</b>`yacas`<br><b>While in a yacas session, execute a statement</b>`[Integrate(x)Cos(x)];`<br><b>While in a yacas session, display an example</b>`Example();`<br><b>Quit from a yacas session</b>`quit`<br><b>Execute one or more yacas scripts (without terminal or prompts), then exit</b>`yacas -p -c [path/to/script1 path/to/script2 ...]`<br><b>Execute and print the result of one statement, then exit</b>`echo "[Echo( Deriv(x)Cos(1/x) );]" | yacas -p -c /dev/stdin`


title: TLDR
content:
<b>Convert a graph from gv to gxl format</b>`gv2gxl -o [output.gxl] [input.gv]`<br><b>Convert a graph using stdin and stdout</b>`cat [input.gv] | gv2gxl > [output.gxl]`<br><b>Display help</b>`gv2gxl -?`


title: TLDR
content:
<b>Convert a graph from mm to gv format</b>`mm2gv -o [output.gv] [input.mm]`<br><b>Convert a graph using stdin and stdout</b>`cat [input.mm] | mm2gv > [output.gv]`<br><b>Display help</b>`mm2gv -?`


title: TLDR
content:
<b>Compile and link an LLVM based program</b>`clang++ $(llvm-config --cxxflags --ldflags --libs) --output [path/to/output_executable] [path/to/source.cc]`<br><b>Print the PREFIX of your LLVM installation</b>`llvm-config --prefix`<br><b>Print all targets supported by your LLVM build</b>`llvm-config --targets-built`


title: TLDR
content:
<b>Start peco on all files in the specified directory</b>`find [path/to/directory] -type f | peco`<br><b>Start peco for running processes</b>`ps aux | peco`<br><b>Start peco with a specified query</b>`peco --query "[query]"`


title: TLDR
content:
<b>Print current brightness and maximal brightness, shortened and separated by a slash</b>`ybacklight Sc/Sm`<br><b>Specify the brightness</b>`ybacklight s[420]`<br><b>Increase the brightness by 42 big steps (4200 by default)</b>`ybacklight Si42`<br><b>Decrease the brightness by 300</b>`ybacklight d300`


title: TLDR
content:
<b>Initialize a new GitHub CLI extension project in a directory of the same name</b>`gh [[ext|extension]] create [extension_name]`<br><b>Install an extension from a GitHub repository</b>`gh [[ext|extension]] install [owner]/[repository]`<br><b>List installed extensions</b>`gh [[ext|extension]] [[ls|list]]`<br><b>Upgrade a specific extension</b>`gh [[ext|extension]] upgrade [extension_name]`<br><b>Upgrade all extensions</b>`gh [[ext|extension]] upgrade --all`<br><b>List installed extensions</b>`gh [[ext|extension]] [[ls|list]]`<br><b>Remove an extension</b>`gh [[ext|extension]] remove [extension_name]`<br><b>Display help about a subcommand</b>`gh [[ext|extension]] [subcommand] [[-h|--help]]`


title: TLDR
content:
<b>List available databases</b>`dict [[-D|--dbs]]`<br><b>Get information about a database</b>`dict [[-i|--info]] [database_name]`<br><b>Look up a word in a specific database</b>`dict [[-d|--database]] [database_name] [word]`<br><b>Look up a word in all available databases</b>`dict [word]`<br><b>Show information about the DICT server</b>`dict [[-I|--serverinfo]]`


title: TLDR
content:
<b>Start a HTTP server for the current directory</b>`updog`<br><b>Start a HTTP server for a specified directory</b>`updog --directory /[path/to/directory]`<br><b>Start a HTTP server on a specified port</b>`updog --port [port]`<br><b>Start a HTTP server with a password (To log in, leave the username blank and enter the password in the password field)</b>`updog --password [password]`<br><b>Enable transport encryption via SSL</b>`updog --ssl`


title: TLDR
content:
<b>Make an XML document canonical, preserving comments</b>`xml [[c14n|canonic]] [path/to/input.xml|URI] > [path/to/output.xml]`<br><b>Make an XML document canonical, removing comments</b>`xml [[c14n|canonic]] --without-comments [path/to/input.xml|URI] > [path/to/output.xml]`<br><b>Make XML exclusively canonical, using an XPATH from a file, preserving comments</b>`xml [[c14n|canonic]] --exc-with-comments [path/to/input.xml|URI] [path/to/c14n.xpath]`<br><b>Display help</b>`xml [[c14n|canonic]] --help`


title: TLDR
content:
<b>Enable autostart for the storage pool specified by name or UUID (determine using virsh pool-list)</b>`virsh pool-autostart --pool [name|uuid]`<br><b>Disable autostart for the storage pool specified by name or UUID</b>`virsh pool-autostart --pool [name|uuid] --disable`


title: TLDR
content:
<b>Export a collection to stdout, formatted as JSON</b>`mongoexport --uri=[connection_string] --collection=[collection_name]`<br><b>Export the documents in the specified collection that match a query to a JSON file</b>`mongoexport --db=[database_name] --collection=[collection_name] --query="[query_object]" --out=[path/to/file.json]`<br><b>Export documents as a JSON array instead of one object per line</b>`mongoexport --collection=[collection_name] --jsonArray`<br><b>Export documents to a CSV file</b>`mongoexport --collection=[collection_name] --type=[csv] --fields="[field1,field2,...]" --out=[path/to/file.csv]`<br><b>Export documents that match the query in the specified file to a CSV file, omitting the list of field names on the first line</b>`mongoexport --collection=[collection_name] --type=[csv] --fields="[field1,field2,...]" --queryFile=[path/to/file] --noHeaderLine --out=[path/to/file.csv]`<br><b>Export documents to stdout, formatted as human-readable JSON</b>`mongoexport --uri=[mongodb_uri] --collection=[collection_name] --pretty`<br><b>Display help</b>`mongoexport --help`


title: TLDR
content:
<b>Lint a file or directory recursively</b>`flake8 [path/to/file_or_directory]`<br><b>Lint a file or directory recursively and show the line on which each error occurred</b>`flake8 --show-source [path/to/file_or_directory]`<br><b>Lint a file or directory recursively and ignore a list of rules. (All available rules can be found at <https://www.flake8rules.com/>)</b>`flake8 --ignore [rule1,rule2,...] [path/to/file_or_directory]`<br><b>Lint a file or directory recursively but exclude files matching the given globs or substrings</b>`flake8 --exclude [substring1,glob2] [path/to/file_or_directory]`


title: TLDR
content:
<b>Display general help, including the list of subcommands</b>`xml --help`<br><b>Execute a subcommand with input from a file or URI, printing to stdout</b>`xml [subcommand] [options] [path/to/input.xml|URI]`<br><b>Execute a subcommand using stdin and stdout</b>`xml [subcommand] [options]`<br><b>Execute a subcommand with input from a file or URI and output to a file</b>`xml [subcommand] [options] [path/to/input.xml|URI] > [path/to/output]`<br><b>Display help for a specific subcommand</b>`xml [subcommand] --help`<br><b>Display version</b>`xml --version`


title: TLDR
content:
<b>Convert an XML document to PYX format</b>`xml pyx [path/to/input.xml|URI] > [path/to/output.pyx]`<br><b>Convert an XML document from stdin to PYX format</b>`cat [path/to/input.xml] | xml pyx > [path/to/output.pyx]`<br><b>Display help</b>`xml pyx --help`


title: TLDR
content:
<b>Adjust one or more directed graphs to improve the layout aspect ratio</b>`unflatten [path/to/input1.gv path/to/input2.gv ...] > [path/to/output.gv]`<br><b>Use unflatten as a preprocessor for dot layout to improve aspect ratio</b>`unflatten [path/to/input.gv] | dot -T [png] [path/to/output.png]`<br><b>Display help</b>`unflatten -?`


title: TLDR
content:
<b>Check the last commit message</b>`gitlint`<br><b>The range of commits to lint</b>`gitlint --commits [single_refspec_argument]`<br><b>Path to a directory or Python module with extra user-defined rules</b>`gitlint --extra-path [path/to/directory]`<br><b>Start a specific CI job</b>`gitlint --target [path/to/target_directory]`<br><b>Path to a file containing a commit-msg</b>`gitlint --msg-filename [path/to/file]`<br><b>Read staged commit meta-info from the local repository</b>`gitlint --staged`


title: TLDR
content:
<b>Convert a graph from gml to gv format</b>`gml2gv -o [output.gv] [input.gml]`<br><b>Convert a graph using stdin and stdout</b>`cat [input.gml] | gml2gv > [output.gv]`<br><b>Display help</b>`gml2gv -?`


title: TLDR
content:
<b>Start an interactive shell session</b>`pwsh`<br><b>Start an interactive shell session without loading startup configs</b>`pwsh -NoProfile`<br><b>Execute specific commands</b>`pwsh -Command "[echo 'powershell is executed']"`<br><b>Execute a specific script</b>`pwsh -File [path/to/script.ps1]`<br><b>Start a session with a specific version of PowerShell</b>`pwsh -Version [version]`<br><b>Prevent a shell from exit after running startup commands</b>`pwsh -NoExit`<br><b>Describe the format of data sent to PowerShell</b>`pwsh -InputFormat [Text|XML]`<br><b>Determine how an output from PowerShell is formatted</b>`pwsh -OutputFormat [Text|XML]`


title: TLDR
content:
<b>Build a PlatformIO project in the default system temporary directory and delete it afterwards</b>`pio ci [path/to/project]`<br><b>Build a PlatformIO project and specify specific libraries</b>`pio ci [[-l|--lib]] [path/to/library_directory] [path/to/project]`<br><b>Build a PlatformIO project and specify a specific board (pio boards lists all of them)</b>`pio ci [[-b|--board]] [board] [path/to/project]`<br><b>Build a PlatformIO project in a specific directory</b>`pio ci --build-dir [path/to/build_directory] [path/to/project]`<br><b>Build a PlatformIO project and don't delete the build directory</b>`pio ci --keep-build-dir [path/to/project]`<br><b>Build a PlatformIO project using a specific configuration file</b>`pio ci [[-c|--project-conf]] [path/to/platformio.ini]`


title: TLDR
content:
<b>Compile a PDF document</b>`xetex [source.tex]`<br><b>Compile a PDF document, specifying an output directory</b>`xetex -output-directory=[path/to/directory] [source.tex]`<br><b>Compile a PDF document, exiting if errors occur</b>`xetex -halt-on-error [source.tex]`


title: TLDR
content:
<b>Format an XML document, indenting with tabs</b>`xml [[fo|format]] [[-t|--indent-tab]] [path/to/input.xml|URI] > [path/to/output.xml]`<br><b>Format an HTML document, indenting with 4 spaces</b>`xml [[fo|format]] [[-H|--html]] [[-s|--indent-spaces]] [4] [path/to/input.html|URI] > [path/to/output.html]`<br><b>Recover parsable parts of a malformed XML document, without indenting</b>`xml [[fo|format]] [[-R|--recover]] [[-n|--noindent]] [path/to/malformed.xml|URI] > [path/to/recovered.xml]`<br><b>Format an XML document from stdin, removing the DOCTYPE declaration</b>`cat [path\to\input.xml] | xml [[fo|format]] [[-D|--dropdtd]] > [path/to/output.xml]`<br><b>Format an XML document, omitting the XML declaration</b>`xml [[fo|format]] [[-o|--omit-decl]] [path\to\input.xml|URI] > [path/to/output.xml]`<br><b>Display help</b>`xml [[fo|format]] --help`


title: TLDR
content:
<b>Display help</b>`aws help`<br><b>List all available topics</b>`aws help topics`<br><b>Display help about a specific topic</b>`aws help [topic_name]`


title: TLDR
content:
<b>Extract strongly connected components of one or more directed graphs</b>`sccmap -S [path/to/input1.gv path/to/input2.gv ...] > [path/to/output.gv]`<br><b>Print statistics about a graph, producing no output graph</b>`sccmap -v -s [path/to/input1.gv path/to/input2.gv ...]`<br><b>Display help</b>`sccmap -?`


title: TLDR
content:
<b>Build the storage pool specified by name or UUID (determine using virsh pool-list)</b>`virsh pool-build --pool [name|uuid]`


title: TLDR
content:
<b>Authenticate Docker with the default registry (username is AWS)</b>`aws ecr get-login-password --region [region] | [docker login] --username AWS --password-stdin [aws_account_id].dkr.ecr.[region].amazonaws.com`<br><b>Create a repository</b>`aws ecr create-repository --repository-name [repository] --image-scanning-configuration scanOnPush=[true|false] --region [region]`<br><b>Tag a local image for ECR</b>`docker tag [container_name]:[tag] [aws_account_id].dkr.ecr.[region].amazonaws.com/[container_name]:[tag]`<br><b>Push an image to a repository</b>`docker push [aws_account_id].dkr.ecr.[region].amazonaws.com/[container_name]:[tag]`<br><b>Pull an image from a repository</b>`docker pull [aws_account_id].dkr.ecr.[region].amazonaws.com/[container_name]:[tag]`<br><b>Delete an image from a repository</b>`aws ecr batch-delete-image --repository-name [repository] --image-ids imageTag=[latest]`<br><b>Delete a repository</b>`aws ecr delete-repository --repository-name [repository] --force`<br><b>List images within a repository</b>`aws ecr list-images --repository-name [repository]`


title: TLDR
content:
<b>Create a new identity</b>`git bug user create`<br><b>Create a new bug</b>`git bug add`<br><b>Push a new bug entry to a remote</b>`git bug push`<br><b>Pull for updates</b>`git bug pull`<br><b>List existing bugs</b>`git bug ls`<br><b>Filter and sort bugs using a query</b>`git bug ls "[status]:[open] [sort]:[edit]"`<br><b>Search for bugs by text content</b>`git bug ls "[search_query]" baz`


title: TLDR
content:
<b>Convert a graph from gxl to gv format</b>`gxl2gv -o [output.gv] [input.gxl]`<br><b>Convert a graph using stdin and stdout</b>`cat [input.gxl] | gxl2gv > [output.gv]`<br><b>Display help</b>`gxl2gv -?`


title: TLDR
content:
<b>Add a specified package to go.mod in module-mode or install the package in GOPATH-mode</b>`go get [example.com/pkg]`<br><b>Modify the package with a given version in module-aware mode</b>`go get [example.com/pkg]@[v1.2.3]`<br><b>Remove a specified package</b>`go get [example.com/pkg]@[none]`


title: TLDR
content:
<b>Colorize one or more ranked digraph (that were already processed by dot)</b>`gvcolor [path/to/layout1.gv path/to/layout2.gv ...] > [path/to/output.gv]`<br><b>Lay out a graph and colorize it, then convert to a PNG image</b>`dot [path/to/input.gv] | gvcolor | dot -T [png] > [path/to/output.png]`<br><b>Display help</b>`gvcolor -?`


title: TLDR
content:
<b>Show commits which aren't shared between the currently checked-out branch and another branch</b>`git missing [branch]`<br><b>Show commits which aren't shared between two branches</b>`git missing [branch_1] [branch_2]`


title: TLDR
content:
<b>Delete the underlying storage system for the storage pool specified by name or UUID (determine using virsh pool-list)</b>`virsh pool-delete --pool [name|uuid]`


title: TLDR
content:
<b>Show a decorated tree graph for all branches annotated with tags and branch names</b>`git show-tree`


title: TLDR
content:
<b>Make a directed graph acyclic by reversing some edges</b>`acyclic [path/to/input.gv] > [path/to/output.gv]`<br><b>Print if a graph is acyclic, has a cycle, or is undirected, producing no output graph</b>`acyclic -v -n [path/to/input.gv]`<br><b>Display help</b>`acyclic -?`


title: TLDR
content:
<b>Log out from the active account</b>`az logout`<br><b>Log out a specific username</b>`az logout --username [alias@example.com]`


title: TLDR
content:
<b>Open a file</b>`openscad [path/to/button.scad]`<br><b>Convert a file to STL</b>`openscad -o [path/to/button.stl] [path/to/button.scad]`<br><b>Render a file to PNG in a specific colorscheme</b>`openscad -o [path/to/button.png] --colorscheme [Sunset] [path/to/button.scad]`


title: TLDR
content:
<b>Render a PNG image with a filename based on the input filename and output format (uppercase -O)</b>`sfdp -T [png] -O [path/to/input.gv]`<br><b>Render a SVG image with the specified output filename (lowercase -o)</b>`sfdp -T [svg] -o [path/to/image.svg] [path/to/input.gv]`<br><b>Render the output in PS, PDF, SVG, Fig, PNG, GIF, JPEG, JSON, or DOT format</b>`sfdp -T [format] -O [path/to/input.gv]`<br><b>Render a GIF image using stdin and stdout</b>`echo "[digraph {this -> that} ]" | sfdp -T [gif] > [path/to/image.gif]`<br><b>Display help</b>`sfdp -?`


title: TLDR
content:
<b>Launch Dillo</b>`dillo`<br><b>Launch Dillo with a specific window size and screen location</b>`dillo [[-g|--geometry]] [width]x[height]+[x_position]+[y_position]`<br><b>Launch Dillo and open a specific URL</b>`dillo [duckduckgo.com]`<br><b>Launch Dillo and open a file or directory</b>`dillo [path/to/file_or_directory]`<br><b>Launch Dillo in full-screen mode</b>`dillo [[-f|--fullwindow]]`<br><b>Display version</b>`dillo [[-v|--version]]`<br><b>Display help</b>`dillo [[-h|--help]]`


title: TLDR
content:
<b>Test the package found in the current directory</b>`go test`<br><b>[v]erbosely test the package in the current directory</b>`go test -v`<br><b>Test the packages in the current directory and all subdirectories (note the ...)</b>`go test -v ./...`<br><b>Test the package in the current directory and run all benchmarks</b>`go test -v -bench .`<br><b>Test the package in the current directory and run all benchmarks for 50 seconds</b>`go test -v -bench . -benchtime 50s`<br><b>Test the package with coverage analysis</b>`go test -cover`


title: TLDR
content:
<b>Pretty-print one or more graphs in canonical format</b>`nop [path/to/input1.gv path/to/input2.gv ...] > [path/to/output.gv]`<br><b>Check one or more graphs for validity, producing no output graph</b>`nop -p [path/to/input1.gv path/to/input2.gv ...]`<br><b>Display help</b>`nop -?`


title: TLDR
content:
<b>Interactively show the disk usage of the current directory</b>`gdu`<br><b>Interactively show the disk usage of a given directory</b>`gdu [path/to/directory]`<br><b>Interactively show the disk usage of all mounted disks</b>`gdu --show-disks`<br><b>Interactively show the disk usage of the current directory but ignore some sub-directories</b>`gdu --ignore-dirs [path/to/directory1,path/to/directory2,...]`<br><b>Ignore paths by regex</b>`gdu --ignore-dirs-pattern '[.*[abc]+]'`<br><b>Ignore hidden directories</b>`gdu --no-hidden`<br><b>Only print the result, do not enter interactive mode</b>`gdu --non-interactive [path/to/directory]`<br><b>Do not show the progress in non-interactive mode (useful in scripts)</b>`gdu --no-progress [path/to/directory]`


title: TLDR
content:
<b>Start a PXE boot server which provides a netboot.xyz boot image</b>`pixiecore [quick] xyz --dhcp-no-bind`<br><b>Start a new PXE boot server which provides an Ubuntu boot image</b>`pixiecore [quick] ubuntu --dhcp-no-bind`<br><b>List all available boot images for quick mode</b>`pixiecore quick --help`


title: TLDR
content:
<b>Escape special XML characters in a string</b>`xml [[esc|escape]] "[<a1>]"`<br><b>Escape special XML characters from stdin</b>`echo "[<a1>]" | xml [[esc|escape]]`<br><b>Display help</b>`xml [[esc|escape]] --help`


title: TLDR
content:
<b>Write the current directory's listing to an XML document</b>`xml [[ls|list]] > [path/to/dir_list.xml]`<br><b>Write the specified directory's listing to an XML document</b>`xml [[ls|list]] [path/to/directory] > [path/to/dir_list.xml]`<br><b>Display help</b>`xml [[ls|list]] --help`


title: TLDR
content:
<b>Make a new draft</b>`zm new`<br><b>Edit a draft</b>`zm edit`<br><b>Publish a draft and commit it with git</b>`zm publish`


title: TLDR
content:
<b>Create an AWS cost and usage report definition from a JSON file</b>`aws cur put-report-definition --report-definition file://[path/to/report_definition.json]`<br><b>List usage report definitions defined for the logged in account</b>`aws cur describe-report-definitions`<br><b>Delete a usage report definition</b>`aws cur --region [aws_region] delete-report-definition --report-name [report]`


title: TLDR
content:
<b>Run Ganache</b>`ganache-cli`<br><b>Run Ganache with a specific number of accounts</b>`ganache-cli --accounts=[number_of_accounts]`<br><b>Run Ganache and lock available accounts by default</b>`ganache-cli --secure`<br><b>Run Ganache server and unlock specific accounts</b>`ganache-cli --secure --unlock "[account_private_key1]" --unlock "[account_private_key2]"`<br><b>Run Ganache with a specific account and balance</b>`ganache-cli --account="[account_private_key],[account_balance]"`<br><b>Run Ganache with accounts with a default balance</b>`ganache-cli --defaultBalanceEther=[default_balance]`<br><b>Run Ganache and log all requests to stdout</b>`ganache-cli --verbose`


title: TLDR
content:
<b>Compile a file to an object file</b>`adscript --output [path/to/file.o] [path/to/input_file.adscript]`<br><b>Compile and link a file to a standalone executable</b>`adscript --executable --output [path/to/file] [path/to/input_file.adscript]`<br><b>Compile a file to LLVM IR instead of native machine code</b>`adscript --llvm-ir --output [path/to/file.ll] [path/to/input_file.adscript]`<br><b>Cross-compile a file to an object file for a foreign CPU architecture or operating system</b>`adscript --target-triple [i386-linux-elf] --output [path/to/file.o] [path/to/input_file.adscript]`


title: TLDR
content:
<b>Convert a PYX (ESIS - ISO 8879) document to XML format</b>`xml [[p2x|depyx]] [path/to/input.pyx|URI] > [path/to/output.xml]`<br><b>Convert a PYX document from stdin to XML format</b>`cat [path/to/input.pyx] | xml [[p2x|depyx]] > [path/to/output.xml]`<br><b>Display help</b>`xml [[p2x|depyx]] --help`


title: TLDR
content:
<b>Bundle the edges of one or more graph layouts (that already have layout information)</b>`mingle [path/to/layout1.gv path/to/layout2.gv ...] > [path/to/output.gv]`<br><b>Perform layout, bundling, and output to a picture with one command</b>`dot [path/to/input.gv] | mingle | dot -T [png] > [path/to/output.png]`<br><b>Display help</b>`mingle -?`


title: TLDR
content:
<b>Install packages from a Brewfile at the current path</b>`brew bundle`<br><b>Install packages from a specific Brewfile at a specific path</b>`brew bundle --file [path/to/file]`<br><b>Create a Brewfile from all installed packages</b>`brew bundle dump`<br><b>Uninstall all formulae not listed in the Brewfile</b>`brew bundle cleanup --force`<br><b>Check if there is anything to install or upgrade in the Brewfile</b>`brew bundle check`<br><b>List all entries in the Brewfile</b>`brew bundle list --all`


title: TLDR
content:
<b>Apply a patch</b>`xdelta -d -s [path/to/input_file] [path/to/delta_file.xdelta] [path/to/output_file]`<br><b>Create a patch</b>`xdelta -e -s [path/to/old_file] [path/to/new_file] [path/to/output_file.xdelta]`


title: TLDR
content:
<b>Decompose one or more graphs into their biconnected components</b>`bcomps [path/to/input1.gv path/to/input2.gv ...] > [path/to/output.gv]`<br><b>Print the number of blocks and cutvertices in one or more graphs</b>`bcomps -v -s [path/to/input1.gv path/to/input2.gv ...]`<br><b>Write each block and block-cutvertex tree to multiple numbered filenames based on output.gv</b>`bcomps -x -o [path/to/output.gv] [path/to/input1.gv path/to/input2.gv ...]`<br><b>Display help</b>`bcomps -?`


title: TLDR
content:
<b>Validate one or more XML documents for well-formedness only</b>`xml [[val|validate]] [path/to/input1.xml|URI1 path/to/input2.xml|URI2 ...]`<br><b>Validate one or more XML documents against a Document Type Definition (DTD)</b>`xml [[val|validate]] [[-d|--dtd]] [path/to/schema.dtd] [path/to/input1.xml|URI1 path/to/input2.xml|URI2 ...]`<br><b>Validate one or more XML documents against an XML Schema Definition (XSD)</b>`xml [[val|validate]] [[-s|--xsd]] [path/to/schema.xsd] [path/to/input1.xml|URI1 path/to/input2.xml|URI2 ...]`<br><b>Validate one or more XML documents against a Relax NG schema (RNG)</b>`xml [[val|validate]] [[-r|--relaxng]] [path/to/schema.rng] [path/to/input1.xml|URI1 path/to/input2.xml|URI2 ...]`<br><b>Display help</b>`xml [[val|validate]] --help`


title: TLDR
content:
<b>Display all input data using the specified data configuration</b>`ffe [[-c|--configuration]] [path/to/config.ffe] [path/to/input]`<br><b>Convert an input file to an output file in a new format</b>`ffe --output=[path/to/output] [[-c|--configuration]] [path/to/config.ffe] [path/to/input]`<br><b>Select input structure and print format from definitions in ~/.fferc configuration file</b>`ffe [[-s|--structure]] [structure] [[-p|--print]] [format] [path/to/input]`<br><b>Write only the selected fields</b>`ffe [[-f|--field-list]] "[FirstName,LastName,Age]" [[-c|--configuration]] [path/to/config.ffe] [path/to/input]`<br><b>Write only the records that match an expression</b>`ffe [[-e|--expression]] "[LastName=Smith]" [[-c|--configuration]] [path/to/config.ffe] [path/to/input]`<br><b>Display help</b>`ffe [[-?|--help]]`


title: TLDR
content:
<b>Start the GUI</b>`git cola`<br><b>Start the GUI in amend mode</b>`git cola --amend`<br><b>Prompt for a Git repository. Defaults to the current directory</b>`git cola --prompt`<br><b>Open the Git repository at mentioned path</b>`git cola [[-r|--repo]] [path/to/git-repository]`<br><b>Apply the path filter to the status widget</b>`git cola [[-s|--status-filter]] [filter]`


title: TLDR
content:
<b>Search entries</b>`keepassxc-cli search [path/to/database_file] [name]`<br><b>List the contents of a folder</b>`keepassxc-cli ls [path/to/database_file] [path/to/directory]`<br><b>Add an entry with an auto-generated password</b>`keepassxc-cli add [[-g|--generate]] [path/to/database_file] [entry_name]`<br><b>Delete an entry</b>`keepassxc-cli rm [path/to/database_file] [entry_name]`<br><b>Copy an entry's password to the clipboard</b>`keepassxc-cli clip [path/to/database_file] [entry_name]`<br><b>Copy a TOTP code to the clipboard</b>`keepassxc-cli clip [[-t|--totp]] [path/to/database_file] [entry_name]`<br><b>Generate a passphrase with 7 words</b>`keepassxc-cli diceware [[-W|--words]] 7`<br><b>Generate a password with 16 printable ASCII characters</b>`keepassxc-cli generate [[-lUns|--lower --upper --numeric --special]] [[-L|--length]] 16`


title: TLDR
content:
<b>Run an nginx pod and expose port 80</b>`kubectl run [nginx-dev] --image nginx --port 80`<br><b>Run an nginx pod, setting the TEST_VAR environment variable</b>`kubectl run [nginx-dev] --image nginx --env "[TEST_VAR]=[testing]"`<br><b>Show API calls that would be made to create an nginx container</b>`kubectl run [nginx-dev] --image nginx --dry-run=[none|server|client]`<br><b>Run an Ubuntu pod interactively, never restart it, and remove it when it exits</b>`kubectl run [temp-ubuntu] --image ubuntu:22.04 --restart Never --rm -- /bin/bash`<br><b>Run an Ubuntu pod, overriding the default command with echo, and specifying custom arguments</b>`kubectl run [temp-ubuntu] --image ubuntu:22.04 --command -- echo [argument1 argument2 ...]`


title: TLDR
content:
<b>Start a GUI for tlmgr</b>`sudo tlmgr gui`<br><b>Start a GUI specifying the background color</b>`sudo tlmgr gui -background "[#f39bc3]"`<br><b>Start a GUI specifying the foreground color</b>`sudo tlmgr gui -foreground "[#0ef3bd]"`<br><b>Start a GUI specifying the font and font size</b>`sudo tlmgr gui -font "[helvetica 18]"`<br><b>Start a GUI setting a specific geometry</b>`sudo tlmgr gui -geometry [width]x[height]-[xpos]+[ypos]`<br><b>Start a GUI passing an arbitrary X resource string</b>`sudo tlmgr gui -xrm [xresource]`


title: TLDR
content:
<b>Interactively create a pull request</b>`gh pr [[new|create]]`<br><b>Create a pull request, determining the title and description from the commit messages of the current branch</b>`gh pr [[new|create]] [[-f|--fill]]`<br><b>Create a draft pull request</b>`gh pr [[new|create]] [[-d|--draft]]`<br><b>Create a pull request specifying the base branch, title, and description</b>`gh pr [[new|create]] [[-B|--base]] [base_branch] [[-t|--title]] "[title]" [[-b|--body]] "[body]"`<br><b>Start opening a pull request in the default web browser</b>`gh pr [[new|create]] [[-w|--web]]`


title: TLDR
content:
<b>Render a PNG image with a filename based on the input filename and output format (uppercase -O)</b>`neato -T [png] -O [path/to/input.gv]`<br><b>Render a SVG image with the specified output filename (lowercase -o)</b>`neato -T [svg] -o [path/to/image.svg] [path/to/input.gv]`<br><b>Render the output in PS, PDF, SVG, Fig, PNG, GIF, JPEG, JSON, or DOT format</b>`neato -T [format] -O [path/to/input.gv]`<br><b>Render a GIF image using stdin and stdout</b>`echo "[graph {this -- that} ]" | neato -T [gif] > [path/to/image.gif]`<br><b>Display help</b>`neato -?`


title: TLDR
content:
<b>Decompose one or more graphs into their connected components</b>`ccomps [path/to/input1.gv path/to/input2.gv ...] > [path/to/output.gv]`<br><b>Print the number of nodes, edges, and connected components in one or more graphs</b>`ccomps -v -s [path/to/input1.gv path/to/input2.gv ...]`<br><b>Write each connected component to numbered filenames based on output.gv</b>`ccomps -x -o [path/to/output.gv] [path/to/input1.gv path/to/input2.gv ...]`<br><b>Display help</b>`ccomps -?`


title: TLDR
content:
<b>Log in interactively</b>`az login`<br><b>Log in with a service principal using a client secret</b>`az login --service-principal [[-u|--username]] [http://azure-cli-service-principal] [[-p|--password]] [secret] --tenant [someone.onmicrosoft.com]`<br><b>Log in with a service principal using a client certificate</b>`az login --service-principal [[-u|--username]] [http://azure-cli-service-principal] [[-p|--password]] [path/to/cert.pem] [[-t|--tenant]] [someone.onmicrosoft.com]`<br><b>Log in using a VM's system assigned identity</b>`az login [[-i|--identity]]`<br><b>Log in using a VM's user assigned identity</b>`az login [[-i|--identity]] [[-u|--username]] /subscriptions/[subscription_id]/resourcegroups/[my_rg]/providers/Microsoft.ManagedIdentity/userAssignedIdentities/[my_id]`


title: TLDR
content:
<b>Start sdcv interactively</b>`sdcv`<br><b>List installed dictionaries</b>`sdcv --list-dicts`<br><b>Display a definition from a specific dictionary</b>`sdcv --use-dict [dictionary_name] [search_term]`<br><b>Look up a definition with a fuzzy search</b>`sdcv [search_term]`<br><b>Look up a definition with an exact search</b>`sdcv --exact-search [search_term]`<br><b>Look up a definition and format the output as JSON</b>`sdcv --json [search_term]`<br><b>Search for dictionaries in a specific directory</b>`sdcv --data-dir [path/to/directory] [search_term]`


title: TLDR
content:
<b>Print the 5th item from a line (starting from 0)</b>`choose [4]`<br><b>Print the first, 3rd, and 5th item from a line, where items are separated by ':' instead of whitespace</b>`choose [[-f|--field-separator]] '[:]' [0] [2] [4]`<br><b>Print everything from the 2nd to 5th item on the line, including the 5th</b>`choose [1]:[4]`<br><b>Print everything from the 2nd to 5th item on the line, excluding the 5th</b>`choose [[-x|--exclusive]] [1]:[4]`<br><b>Print the beginning of the line to the 3rd item</b>`choose :[2]`<br><b>Print all items from the beginning of the line until the 3rd item (exclusive)</b>`choose [[-x|--exclusive]] :[2]`<br><b>Print all items from the 3rd to the end of the line</b>`choose [2]:`<br><b>Print the last item from a line</b>`choose [-1]`


title: TLDR
content:
<b>List all available TeX Live packages, prefexing installed ones with i</b>`tlmgr info`<br><b>List all available collections</b>`tlmgr info collections`<br><b>List all available schemes</b>`tlmgr info scheme`<br><b>Show information about a specific package</b>`tlmgr info [package]`<br><b>List all files contained in a specific package</b>`tlmgr info [package] --list`<br><b>List all installed packages</b>`tlmgr info --only-installed`<br><b>Show only specific information about a package</b>`tlmgr info [package] --data "[name],[category],[installed],[size],[depends],[...]"`<br><b>Print all available packages as JSON encoded array</b>`tlmgr info --json`


title: TLDR
content:
<b>Start the storage pool specified by name or UUID (determine using virsh pool-list) and create the underlying storage system if it doesn't exist</b>`virsh pool-start --pool [name|uuid] --build`


title: TLDR
content:
<b>Unescape special XML characters from a string</b>`xml [[unesc|unescape]] "[&lt;a1&gt;]"`<br><b>Unescape special XML characters from stdin</b>`echo "[&lt;a1&gt;]" | xml [[unesc|unescape]]`<br><b>Display help</b>`xml [[esc|escape]] --help`


title: TLDR
content:
<b>Convert one or more images to a single PDF, each image being on its own page</b>`img2pdf [path/to/image1.ext path/to/image2.ext ...] --output [path/to/file.pdf]`<br><b>Convert only the first frame of a multi-frame image to PDF</b>`img2pdf [path/to/file.gif] --first-frame-only --output [path/to/file.pdf]`<br><b>Auto orient the image, use a specific page size in landscape mode, and set a border of specific sizes horizontally and vertically</b>`img2pdf [path/to/image.ext] --auto-orient --pagesize [A4^T] --border [2cm]:[5.1cm] --output [path/to/file.pdf]`<br><b>Shrink only larger images to a rectangle of specified dimensions inside a page with a specific size</b>`img2pdf [path/to/image.ext] --pagesize [30cm]x[20cm] --imgsize [10cm]x[15cm] --fit [shrink] --output [path/to/file.pdf]`<br><b>Convert an image to PDF, and specify metadata for the resulting file</b>`img2pdf [path/to/image.ext] --title [title] --author [author] --creationdate [1970-01-31] --keywords [keyword1 keyword2] --subject [subject] --output [path/to/file.pdf]`


title: TLDR
content:
<b>Convert a graph from gv to gml format</b>`gv2gml -o [output.gml] [input.gv]`<br><b>Convert a graph using stdin and stdout</b>`cat [input.gv] | gv2gml > [output.gml]`<br><b>Display help</b>`gv2gml -?`


title: TLDR
content:
<b>List all subscriptions for the logged in account</b>`az account list`<br><b>Set a subscription to be the currently active subscription</b>`az account set [[-s|--subscription]] [subscription_id]`<br><b>List supported regions for the currently active subscription</b>`az account list-locations`<br><b>Print an access token to be used with MS Graph API</b>`az account get-access-token --resource-type [ms-graph]`<br><b>Print details of the currently active subscription in a specific format</b>`az account show [[-o|--output]] [json|tsv|table|yaml]`


title: TLDR
content:
<b>Start a REPL (interactive shell)</b>`carp`<br><b>Start a REPL with a custom prompt</b>`carp --prompt "[> ]"`<br><b>Build a carp file</b>`carp -b [path/to/file.carp]`<br><b>Build and run a file</b>`carp -x [path/to/file.carp]`<br><b>Build a file with optimizations enabled</b>`carp -b --optimize [path/to/file.carp]`<br><b>Transpile a file to C code</b>`carp --generate-only [path/to/file.carp]`


title: TLDR
content:
<b>Add a timestamp to the beginning of each line</b>`[command] | ts`<br><b>Add timestamps with microsecond precision</b>`[command] | ts "[%b %d %H:%M:%.S]"`<br><b>Add [i]ncremental timestamps with microsecond precision, starting from zero</b>`[command] | ts -i "[%H:%M:%.S]"`<br><b>Convert existing timestamps in a text file (eg. a log file) into [r]elative format</b>`cat [path/to/file] | ts -r`


title: TLDR
content:
<b>Upload a file to transfer.sh</b>`transfersh [path/to/file]`<br><b>Upload a file showing a progress bar (requires Python package requests_toolbelt)</b>`transfersh --progress [path/to/file]`<br><b>Upload a file using a different file name</b>`transfersh --name [filename] [path/to/file]`<br><b>Upload a file to a custom transfer.sh server</b>`transfersh --servername [upload.server.name] [path/to/file]`<br><b>Upload all files from a directory recursively</b>`transfersh --recursive [path/to/directory]/`<br><b>Upload a specific directory as an uncompressed tar</b>`transfersh -rt [path/to/directory]`


title: TLDR
content:
<b>Show the default paper size used by all TeX Live programs</b>`tlmgr paper`<br><b>Set the default paper size for all TeX Live programs to A4</b>`sudo tlmgr paper [a4]`<br><b>Show the default paper size used by a specific TeX Live program</b>`tlmgr [pdftex] paper`<br><b>Set the default paper size for a specific TeX Live program to A4</b>`sudo tlmgr [pdftex] paper [a4]`<br><b>List all available paper sizes for a specific TeX Live program</b>`tlmgr [pdftex] paper --list`<br><b>Dump the default paper size used by all TeX Live programs in JSON format</b>`tlmgr paper --json`


title: TLDR
content:
<b>Create bucket in a specific region</b>`aws s3api create-bucket --bucket [bucket_name] --region [region] --create-bucket-configuration LocationConstraint=[region]`<br><b>Delete a bucket</b>`aws s3api delete-bucket --bucket [bucket_name]`<br><b>List buckets</b>`aws s3api list-buckets`<br><b>List the objects inside of a bucket and only show each object's key and size</b>`aws s3api list-objects --bucket [bucket_name] --query '[Contents[].{Key: Key, Size: Size]}'`<br><b>Add an object to a bucket</b>`aws s3api put-object --bucket [bucket_name] --key [object_key] --body [path/to/file]`<br><b>Download object from a bucket (The output file is always the last argument)</b>`aws s3api get-object --bucket [bucket_name] --key [object_key] [path/to/output_file]`<br><b>Apply an Amazon S3 bucket policy to a specified bucket</b>`aws s3api put-bucket-policy --bucket [bucket_name] --policy file://[path/to/bucket_policy.json]`<br><b>Download the Amazon S3 bucket policy from a specified bucket</b>`aws s3api get-bucket-policy --bucket [bucket_name] --query Policy --output [json|table|text|yaml|yaml-stream] > [path/to/bucket_policy]`


title: TLDR
content:
<b>Extract elements from an XML document (producing XPATH expressions)</b>`xml [[el|elements]] [path/to/input.xml|URI] > [path/to/elements.xpath]`<br><b>Extract elements and their attributes from an XML document</b>`xml [[el|elements]] -a [path/to/input.xml|URI] > [path/to/elements.xpath]`<br><b>Extract elements and their attributes and values from an XML document</b>`xml [[el|elements]] -v [path/to/input.xml|URI] > [path/to/elements.xpath]`<br><b>Print sorted unique elements from an XML document to see its structure</b>`xml [[el|elements]] -u [path/to/input.xml|URI]`<br><b>Print sorted unique elements from an XML document up to a depth of 3</b>`xml [[el|elements]] -d[3] [path/to/input.xml|URI]`<br><b>Display help</b>`xml [[el|elements]] --help`


title: TLDR
content:
<b>Construct the transitive reduction graph of one or more directed graphs</b>`tred [path/to/input1.gv path/to/input2.gv ...] > [path/to/output.gv]`<br><b>Display help</b>`tred -?`


title: TLDR
content:
<b>Initialize a new Dart project in a directory of the same name</b>`dart create [project_name]`<br><b>Run a Dart file</b>`dart run [path/to/file.dart]`<br><b>Download dependencies for the current project</b>`dart pub get`<br><b>Run unit tests for the current project</b>`dart test`<br><b>Update an outdated project's dependencies to support null-safety</b>`dart pub upgrade --null-safety`<br><b>Compile a Dart file to a native binary</b>`dart compile exe [path/to/file.dart]`<br><b>Apply automated fixes to the current project</b>`dart fix --apply`


title: TLDR
content:
<b>Transform an XML document using an XSL stylesheet, passing one XPATH parameter and one literal string parameter</b>`xml [[tr|transform]] [path/to/stylesheet.xsl] -p "[Count='count(/xml/table/rec)']" -s [Text="Count="] [path/to/input.xml|URI]`<br><b>Display help</b>`xml [[tr|transform]] --help`


title: TLDR
content:
<b>Search for formulas and casks</b><br>`brew search [text]`<br><br><b>Install a cask</b><br>`brew install --cask [cask_name]`<br><br><b>List all installed casks</b><br>`brew list --cask`<br><br><b>List installed casks that have newer versions available</b><br>`brew outdated --cask`<br><br><b>Upgrade an installed cask (if no cask name is given, all installed casks are upgraded)</b><br>`brew upgrade --cask [cask_name]`<br><br><b>Uninstall a cask</b><br>`brew uninstall --cask [cask_name]`<br><br><b>Uninstall a cask and remove related settings and files</b><br>`brew zap --cask [cask_name]`<br><br><b>Display information about a given cask</b><br>`brew info --cask [cask_name]`<br>


title: TLDR
content:
<b>Take a specific secret key and generate a text file with the secret data</b>`paperkey --secret-key [path/to/secret_key.gpg] --output [path/to/secret_data.txt]`<br><b>Take the secret key data in secret_data.txt and combine it with the public key to reconstruct the secret key</b>`paperkey --pubring [path/to/public_key.gpg] --secrets [path/to/secret_data.txt] --output [secret_key.gpg]`<br><b>Export a specific secret key and generate a text file with the secret data</b>`gpg --export-secret-key [key] | paperkey --output [path/to/secret_data.txt]`


title: TLDR
content:
<b>Interactively update modules on a device</b>`circup update`<br><b>Install a new library</b>`circup install [library_name]`<br><b>Search for a library</b>`circup show [partial_name]`<br><b>List all libraries on a connected device in requirements.txt format</b>`circup freeze`<br><b>Save all libraries on a connected device in requirements.txt in current directory</b>`circup freeze [[-r|--requirement]]`


title: TLDR
content:
<b>Render a PNG image with a filename based on the input filename and output format (uppercase -O)</b>`patchwork -T [png] -O [path/to/input.gv]`<br><b>Render a SVG image with the specified output filename (lowercase -o)</b>`patchwork -T [svg] -o [path/to/image.svg] [path/to/input.gv]`<br><b>Render the output in PS, PDF, SVG, Fig, PNG, GIF, JPEG, JSON, or DOT format</b>`patchwork -T [format] -O [path/to/input.gv]`<br><b>Render a gif image using stdin and stdout</b>`echo "[digraph {this -> that} ]" | patchwork -T [gif] > [path/to/image.gif]`<br><b>Display help</b>`patchwork -?`


title: TLDR
content:
<b>Display available fonts</b>`showfigfonts`<br><b>Display available fonts using a specific text</b>`showfigfonts [input_text]`


title: TLDR
content:
<b>List the name, UUID, state, persistence type, autostart status, capacity, space allocated, and space available for the storage pool specified by name or UUID (determine using virsh pool-list)</b>`virsh pool-info --pool [name|uuid]`


title: TLDR
content:
<b>Print a table from JSON or JSON Lines input</b>`cat [file.json] | jtbl`<br><b>Print a table and specify the column width for wrapping</b>`cat [file.json] | jtbl --cols=[width]`<br><b>Print a table and truncate rows instead of wrapping</b>`cat [file.json] | jtbl [[-t|--truncate]]`<br><b>Print a table and don't wrap or truncate rows</b>`cat [file.json] | jtbl [[-n|--no-wrap]]`


title: TLDR
content:
<b>Format a file and print the result to stdout</b>`prettier [path/to/file]`<br><b>Check if a specific file has been formatted</b>`prettier --check [path/to/file]`<br><b>Run with a specific configuration file</b>`prettier --config [path/to/config_file] [path/to/file]`<br><b>Format a file or directory, replacing the original</b>`prettier --write [path/to/file_or_directory]`<br><b>Format files or directories recursively using single quotes and no trailing commas</b>`prettier --single-quote --trailing-comma [none] --write [path/to/file_or_directory]`<br><b>Format JavaScript and TypeScript files recursively, replacing the original</b>`prettier --write "**/*.{js,jsx,ts,tsx}"`


title: TLDR
content:
<b>Serve a directory</b>`miniserve [path/to/directory]`<br><b>Serve a single file</b>`miniserve [path/to/file]`<br><b>Serve a directory using HTTP basic authentication</b>`miniserve --auth [username]:[password] [path/to/directory]`


title: TLDR
content:
<b>Delete the configuration for the storage pool specified name or UUID (determine using virsh pool-list)</b>`virsh pool-undefine --pool [name|uuid]`


title: TLDR
content:
<b>Make a new draft</b>`lb new`<br><b>Edit a draft</b>`lb edit`<br><b>Delete a draft</b>`lb trash`<br><b>Publish a draft</b>`lb publish`<br><b>Delete a published post</b>`lb delete`<br><b>Unpublish a published post to edit it as a draft again</b>`lb revise`


title: TLDR
content:
<b>Open moe and create a backup file (file~) when saving edits</b>`moe [path/to/file]`<br><b>Open a file as read-only</b>`moe [[-o|--read-only]] [path/to/file]`<br><b>Edit a file without creating backups</b>`moe [[-B|--no-backup]] [path/to/file]`<br><b>Edit a file ignoring case in searches</b>`moe [[-i|--ignore-case]] [path/to/file]`<br><b>Save and Quit</b>`<Ctrl x>`


title: TLDR
content:
<b>Render a PNG image with a filename based on the input filename and output format (uppercase -O)</b>`fdp -T png -O [path/to/input.gv]`<br><b>Render a SVG image with the specified output filename (lowercase -o)</b>`fdp -T svg -o [path/to/image.svg] [path/to/input.gv]`<br><b>Render the output in a specific format</b>`fdp -T [ps|pdf|svg|fig|png|gif|jpg|json|dot] -O [path/to/input.gv]`<br><b>Render a gif image using stdin and stdout</b>`echo "[digraph {this -> that} ]" | fdp -T gif > [path/to/image.gif]`<br><b>Display help</b>`fdp -?`


title: TLDR
content:
<b>Connect to Tailscale</b>`tailscale up`<br><b>Connect and offer the current machine to be an exit node for internet traffic</b>`tailscale up --advertise-exit-node`<br><b>Connect using a specific node for internet traffic</b>`tailscale up --exit-node [exit_node_ip]`<br><b>Connect and block incoming connections to the current node</b>`tailscale up --shields-up`<br><b>Connect and don't accept DNS configuration from the admin panel (defaults to true)</b>`tailscale up --accept-dns=false`<br><b>Connect and configure Tailscale as a subnet router</b>`tailscale up --advertise-routes [10.0.0.0/24,10.0.1.0/24,...]`<br><b>Connect and accept subnet routes from Tailscale</b>`tailscale up --accept-routes`<br><b>Reset unspecified settings to their default values and connect</b>`tailscale up --reset`


title: TLDR
content:
<b>Render a PNG image with a filename based on the input filename and output format (uppercase -O)</b>`osage -T [png] -O [path/to/input.gv]`<br><b>Render a SVG image with the specified output filename (lowercase -o)</b>`osage -T [svg] -o [path/to/image.svg] [path/to/input.gv]`<br><b>Render the output in PS, PDF, SVG, Fig, PNG, GIF, JPEG, JSON, or DOT format</b>`osage -T [format] -O [path/to/input.gv]`<br><b>Render a GIF image using stdin and stdout</b>`echo "[digraph {this -> that} ]" | osage -T [gif] > [path/to/image.gif]`<br><b>Display help</b>`osage -?`


title: TLDR
content:
<b>Create a new resume.json file in the current working directory</b>`resume init`<br><b>Validate a resume.json against schema tests to ensure it complies with the standard</b>`resume validate`<br><b>Export a resume locally in a stylized HTML or PDF format</b>`resume export [path/to/html_or_pdf]`<br><b>Start a web server that serves a local resume.json</b>`resume serve`


title: TLDR
content:
<b>Convert a WebP file into a PNG file</b>`dwebp [path/to/input.webp] -o [path/to/output.png]`<br><b>Convert a WebP file into a specific filetype</b>`dwebp [path/to/input.webp] -bmp|-tiff|-pam|-ppm|-pgm|-yuv -o [path/to/output]`<br><b>Convert a WebP file, using multi-threading if possible</b>`dwebp [path/to/input.webp] -o [path/to/output.png] -mt`<br><b>Convert a WebP file, but also crop and scale at the same time</b>`dwebp [input.webp] -o [output.png] -crop [x_pos] [y_pos] [width] [height] -scale [width] [height]`<br><b>Convert a WebP file and flip the output</b>`dwebp [path/to/input.webp] -o [path/to/output.png] -flip`<br><b>Convert a WebP file and don't use in-loop filtering to speed up the decoding process</b>`dwebp [path/to/input.webp] -o [path/to/output.png] -nofilter`


title: TLDR
content:
<b>Create a new searchable PDF/A file from a scanned PDF or image file</b>`ocrmypdf [path/to/input] [path/to/output.pdf]`<br><b>Skip pages of a mixed-format input PDF file that already contain text</b>`ocrmypdf --skip-text [path/to/input.pdf] [path/to/output.pdf]`<br><b>Clean, de-skew, and rotate pages of a poor scan</b>`ocrmypdf --clean --deskew --rotate-pages [path/to/input.pdf] [path/to/output.pdf]`<br><b>Perform lossy optimization on a PDF without performing any OCR</b>`ocrmypdf --tesseract-timeout 0 --optimize 2 --skip-text [path/to/input.pdf] [path/to/output.pdf]`<br><b>Set the metadata of a searchable PDF file</b>`ocrmypdf --title "[title]" --author "[author]" --subject "[subject]" --keywords "[keyword; key phrase; ...]" [path/to/input.pdf] [path/to/output.pdf]`<br><b>Display help</b>`ocrmypdf --help`


title: TLDR
content:
<b>Convert a specific .adoc file to HTML (the default output format)</b>`asciidoctor [path/to/file.adoc]`<br><b>Convert a specific .adoc file to HTML and link a CSS stylesheet</b>`asciidoctor [[-a|--attribute]] stylesheet=[path/to/stylesheet.css] [path/to/file.adoc]`<br><b>Convert a specific .adoc file to embeddable HTML, removing everything except the body</b>`asciidoctor [[-e|--embedded]] [path/to/file.adoc]`<br><b>Convert a specific .adoc file to a PDF using the asciidoctor-pdf library</b>`asciidoctor [[-b|--backend]] pdf [[-r|--require]] asciidoctor-pdf [path/to/file.adoc]`


title: TLDR
content:
<b>Convert a graph from gml to gv format</b>`graphml2gv -o [output.gv] [input.gml]`<br><b>Convert a graph using stdin and stdout</b>`cat [input.gml] | graphml2gv > [output.gv]`<br><b>Display help</b>`graphml2gv -?`


title: TLDR
content:
<b>Select all elements matching "XPATH1" and print the value of their sub-element "XPATH2"</b>`xml [[sel|select]] [[-t|--template]] [[-m|--match]] "[XPATH1]" [[-v|--value-of]] "[XPATH2]" [path/to/input.xml|URI]`<br><b>Match "XPATH1" and print the value of "XPATH2" as text with new-lines</b>`xml [[sel|select]] [[-T|--text]] [[-t|--template]] [[-m|--match]] "[XPATH1]" [[-v|--value-of]] "[XPATH2]" [[-n|--nl]] [path/to/input.xml|URI]`<br><b>Count the elements of "XPATH1"</b>`xml [[sel|select]] [[-t|--template]] [[-v|--value-of]] "count([XPATH1])" [path/to/input.xml|URI]`<br><b>Count all nodes in one or more XML documents</b>`xml [[sel|select]] [[-T|--text]] [[-t|--template]] [[-f|--inp-name]] [[-o|--output]] " " [[-v|--value-of]] "count(node())" [[-n|--nl]] [path/to/input1.xml|URI] [path/to/input2.xml|URI]`<br><b>Display help</b>`xml [[sel|select]] --help`


title: TLDR
content:
<b>Interactively log into a registry</b>`docker login`<br><b>Log into a registry with a specific username (user will be prompted for a password)</b>`docker login [[-u|--username]] [username]`<br><b>Log into a registry with username and password</b>`docker login [[-u|--username]] [username] [[-p|--password]] [password] [server]`<br><b>Log into a registry with password from stdin</b>`echo "[password]" | docker login [[-u|--username]] [username] --password-stdin`


title: TLDR
content:
<b>Create the configuration file for a storage pool called pool_name using /var/vms as the underlying storage system</b>`virsh pool-define-as --name [pool_name] --type [dir] --target [/var/vms]`


title: TLDR
content:
<b>Render a PNG image with a filename based on the input filename and output format (uppercase -O)</b>`circo -T [png] -O [path/to/input.gv]`<br><b>Render a SVG image with the specified output filename (lowercase -o)</b>`circo -T [svg] -o [path/to/image.svg] [path/to/input.gv]`<br><b>Render the output in PS, PDF, SVG, Fig, PNG, GIF, JPEG, JSON, or DOT format</b>`circo -T [format] -O [path/to/input.gv]`<br><b>Render a GIF image using stdin and stdout</b>`echo "[digraph {this -> that} ]" | circo -T [gif] > [path/to/image.gif]`<br><b>Display help</b>`circo -?`


title: TLDR
content:
<b>Show secrets stored by the secrets manager in the current account</b>`aws secretsmanager list-secrets`<br><b>List all secrets but only show the secret names and ARNs (easy to view)</b>`aws secretsmanager list-secrets --query 'SecretList[*].{Name: Name, ARN: ARN}'`<br><b>Create a secret</b>`aws secretsmanager create-secret --name [name] --description "[secret_description]" --secret-string '[secret]'`<br><b>Delete a secret (append --force-delete-without-recovery to delete immediately without any recovery period)</b>`aws secretsmanager delete-secret --secret-id [name|arn]`<br><b>View details of a secret except for secret text</b>`aws secretsmanager describe-secret --secret-id [name|arn]`<br><b>Retrieve the value of a secret (to get the latest version of the secret omit --version-stage)</b>`aws secretsmanager get-secret-value --secret-id [name|arn] --version-stage [version_of_secret]`<br><b>Rotate the secret immediately using a Lambda function</b>`aws secretsmanager rotate-secret --secret-id [name|arn] --rotation-lambda-arn [arn_of_lambda_function]`<br><b>Rotate the secret automatically every 30 days using a Lambda function</b>`aws secretsmanager rotate-secret --secret-id [name|arn] --rotation-lambda-arn [arn_of_lambda_function] --rotation-rules AutomaticallyAfterDays=[30]`


title: TLDR
content:
<b>Display a table of available Virtual Machines</b>`az vm list --output table`<br><b>Create a virtual machine using the default Ubuntu image and generate SSH keys</b>`az vm create [[-g|--resource-group]] [rg] [[-n|--name]] [vm_name] --image [UbuntuLTS] --admin-user [azureuser] --generate-ssh-keys`<br><b>Stop a Virtual Machine</b>`az vm stop [[-g|--resource-group]] [rg] [[-n|--name]] [vm_name]`<br><b>Deallocate a Virtual Machine</b>`az vm deallocate [[-g|--resource-group]] [rg] [[-n|--name]] [vm_name]`<br><b>Start a Virtual Machine</b>`az vm start [[-g|--resource-group]] [rg] [[-n|--name]] [vm_name]`<br><b>Restart a Virtual Machine</b>`az vm restart [[-g|--resource-group]] [rg] [[-n|--name]] [vm_name]`<br><b>List VM images available in the Azure Marketplace</b>`az vm image list`


title: TLDR
content:
<b>Initialize a workspace in the current directory</b>`avo init`<br><b>Log into the Avo platform</b>`avo login`<br><b>Switch to an existing Avo branch</b>`avo checkout [branch_name]`<br><b>Pull analytics wrappers for the current path</b>`avo pull`<br><b>Display the status of the Avo implementation</b>`avo status`<br><b>Resolve Git conflicts in Avo files</b>`avo conflict`<br><b>Open the current Avo workspace in the default web browser</b>`avo edit`<br><b>Display help for a subcommand</b>`avo [subcommand] --help`


title: TLDR
content:
<b>Compile a set of source code files into an executable binary</b>`clang++ [path/to/source1.cpp path/to/source2.cpp ...] [[-o|--output]] [path/to/output_executable]`<br><b>Activate output of all errors and warnings</b>`clang++ [path/to/source.cpp] -Wall [[-o|--output]] [output_executable]`<br><b>Show common warnings, debug symbols in output, and optimize without affecting debugging</b>`clang++ [path/to/source.cpp] -Wall [[-g|--debug]] -Og [[-o|--output]] [path/to/output_executable]`<br><b>Choose a language standard to compile for</b>`clang++ [path/to/source.cpp] -std=[c++20] [[-o|--output]] [path/to/output_executable]`<br><b>Include libraries located at a different path than the source file</b>`clang++ [path/to/source.cpp] [[-o|--output]] [path/to/output_executable] -I[path/to/header_path] -L[path/to/library_path] -l[path/to/library_name]`<br><b>Compile source code into LLVM Intermediate Representation (IR)</b>`clang++ [[-S|--assemble]] -emit-llvm [path/to/source.cpp] [[-o|--output]] [path/to/output.ll]`<br><b>Optimize the compiled program for performance</b>`clang++ [path/to/source.cpp] -O[1|2|3|fast] [[-o|--output]] [path/to/output_executable]`<br><b>Display version</b>`clang++ --version`


title: TLDR
content:
<b>Generate an SM3 hash for a file</b>`gmssl sm3 [path/to/file]`<br><b>Encrypt a file using the SM4 cipher</b>`gmssl sms4 -e -in [path/to/file] -out [path/to/file.sms4]`<br><b>Decrypt a file using the SM4 cipher</b>`gmssl sms4 -d -in [path/to/file.sms4]`<br><b>Generate an SM2 private key</b>`gmssl sm2 -genkey -out [path/to/file.pem]`<br><b>Generate an SM2 public key from an existing private key</b>`gmssl sm2 -pubout -in [path/to/file.pem] -out [path/to/file.pem.pub]`<br><b>Encrypt a file using the ZUC cipher</b>`gmssl zuc -e -in [path/to/file] -out [path/to/file.zuc]`<br><b>Decrypt a file using the ZUC cipher</b>`gmssl zuc -d -in [path/to/file.zuc]`<br><b>Display version</b>`gmssl version`


title: TLDR
content:
<b>List all files, including hidden files</b>`dir [[-a|--all]]`<br><b>List files including their author (-l is required)</b>`dir -l --author`<br><b>List files excluding those that match a specified blob pattern</b>`dir --hide [pattern]`<br><b>List subdirectories recursively</b>`dir [[-R|--recursive]]`<br><b>Display help</b>`dir --help`


title: TLDR
content:
<b>List keys in a specific keyring</b>`keyctl list [target_keyring]`<br><b>List current keys in the user default session</b>`keyctl list [@us]`<br><b>Store a key in a specific keyring</b>`keyctl add [type_keyring] [key_name] [key_value] [target_keyring]`<br><b>Store a key with its value from stdin</b>`echo -n [key_value] | keyctl padd [type_keyring] [key_name] [target_keyring]`<br><b>Put a timeout on a key</b>`keyctl timeout [key_name] [timeout_in_seconds]`<br><b>Read a key and format it as a hex-dump if not printable</b>`keyctl read [key_name]`<br><b>Read a key and format as-is</b>`keyctl pipe [key_name]`<br><b>Revoke a key and prevent any further action on it</b>`keyctl revoke [key_name]`


title: TLDR
content:
<b>Bind a raw character device to a block device</b>`raw /dev/raw/raw[1] [/dev/block_device]`<br><b>Query an existing binding instead of setting a new one</b>`raw /dev/raw/raw[1]`<br><b>Query all bound raw devices</b>`raw [[-qa|--query --all]]`


title: TLDR
content:
<b>Remove a module from the kernel</b>`sudo rmmod [module_name]`<br><b>Remove a module from the kernel and display verbose information</b>`sudo rmmod --verbose [module_name]`<br><b>Remove a module from the kernel and send errors to syslog instead of stderr</b>`sudo rmmod --syslog [module_name]`<br><b>Display help</b>`rmmod --help`<br><b>Display version</b>`rmmod --version`


title: TLDR
content:
<b>Replace the input file with its stripped version</b>`strip [path/to/file]`<br><b>Strip symbols from a file, saving the output to a specific file</b>`strip [path/to/input_file] -o [path/to/output_file]`<br><b>Strip debug symbols only</b>`strip [[-d|--strip-debug]] [path/to/file.o]`


title: TLDR
content:
<b>Start xrdb in interactive mode</b>`xrdb`<br><b>Load values (e.g. style rules) from a resource file</b>`xrdb -load [~/.Xresources]`<br><b>Query the resource database and print currently set values</b>`xrdb -query`


title: TLDR
content:
<b>Search for extended regex (supporting ?, +, {}, () and |) in a compressed file (case-sensitive)</b>`bzegrep "[search_pattern]" [path/to/file]`<br><b>Search for extended regex (supporting ?, +, {}, () and |) in a compressed file (case-insensitive)</b>`bzegrep [[-i|--ignore-case]] "[search_pattern]" [path/to/file]`<br><b>Search for lines that do not match a pattern</b>`bzegrep [[-v|--invert-match]] "[search_pattern]" [path/to/file]`<br><b>Print file name and line number for each match</b>`bzegrep [[-H|--with-filename]] [[-n|--line-number]] "[search_pattern]" [path/to/file]`<br><b>Search for lines matching a pattern, printing only the matched text</b>`bzegrep [[-o|--only-matching]] "[search_pattern]" [path/to/file]`<br><b>Recursively search files in a bzip2 compressed tar archive for a pattern</b>`bzegrep [[-r|--recursive]] "[search_pattern]" [path/to/file]`


title: TLDR
content:
<b>Search for lines matching the list of search strings separated by new lines in a compressed file (case-sensitive)</b>`bzfgrep "[search_string]" [path/to/file]`<br><b>Search for lines matching the list of search strings separated by new lines in a compressed file (case-insensitive)</b>`bzfgrep [[-i|--ignore-case]] "[search_string]" [path/to/file]`<br><b>Search for lines that do not match the list of search strings separated by new lines in a compressed file</b>`bzfgrep [[-v|--invert-match]] "[search_string]" [path/to/file]`<br><b>Print file name and line number for each match</b>`bzfgrep [[-H|--with-filename]] [[-n|--line-number]] "[search_string]" [path/to/file]`<br><b>Search for lines matching a pattern, printing only the matched text</b>`bzfgrep [[-o|--only-matching]] "[search_string]" [path/to/file]`<br><b>Recursively search files in a bzip2 compressed tar archive for the given list of strings</b>`bzfgrep [[-r|--recursive]] "[search_string]" [path/to/file]`


title: TLDR
content:
<b>Parse optional verbose/version flags with shorthands</b>`getopt [[-o|--options]] vV [[-l|--longoptions]] verbose,version -- --version --verbose`<br><b>Add a --file option with a required argument with shorthand -f</b>`getopt [[-o|--options]] f: [[-l|--longoptions]] file: -- --file=somefile`<br><b>Add a --verbose option with an optional argument with shorthand -v, and pass a non-option parameter arg</b>`getopt [[-o|--options]] v:: [[-l|--longoptions]] verbose:: -- --verbose arg`<br><b>Accept a -r and --verbose flag, a --accept option with an optional argument and add a --target with a required argument option with shorthands</b>`getopt [[-o|--options]] rv::s::t: [[-l|--longoptions]] verbose,source::,target: -- -v --target target`


title: TLDR
content:
<b>Connect to a FreeRDP server</b>`xfreerdp /u:[username] /p:[password] /v:[ip_address]`<br><b>Connect to a FreeRDP server and activate audio output redirection using sys:alsa device</b>`xfreerdp /u:[username] /p:[password] /v:[ip_address] /sound:[sys:alsa]`<br><b>Connect to a FreeRDP server with dynamic resolution</b>`xfreerdp /v:[ip_address] /u:[username] /p:[password] /dynamic-resolution`<br><b>Connect to a FreeRDP server with clipboard redirection</b>`xfreerdp /v:[ip_address] /u:[username] /p:[password] +clipboard`<br><b>Connect to a FreeRDP server ignoring any certificate checks</b>`xfreerdp /v:[ip_address] /u:[username] /p:[password] /cert:ignore`<br><b>Connect to a FreeRDP server with a shared directory</b>`xfreerdp /v:[ip_address] /u:[username] /p:[password] /drive:[path/to/directory],[share_name]`


title: TLDR
content:
<b>Show the current settings of the system locale and keyboard mapping</b>`localectl`<br><b>List available locales</b>`localectl list-locales`<br><b>Set a system locale variable</b>`localectl set-locale [LANG]=[en_US.UTF-8]`<br><b>List available keymaps</b>`localectl list-keymaps`<br><b>Set the system keyboard mapping for the console and X11</b>`localectl set-keymap [us]`


title: TLDR
content:
<b>Disable the screensaver</b>`xset s off`<br><b>Disable the bell sound</b>`xset b off`<br><b>Set the screensaver to start after 60 minutes of inactivity</b>`xset s 3600 3600`<br><b>Disable DPMS (Energy Star) features</b>`xset -dpms`<br><b>Enable DPMS (Energy Star) features</b>`xset +dpms`<br><b>Query information on any X server</b>`xset -display :[0] q`


title: TLDR
content:
<b>List all Samba users (use verbose flag to show their settings)</b>`sudo pdbedit --list --verbose`<br><b>Add an existing Unix user to Samba (will prompt for password)</b>`sudo pdbedit --user [username] --create`<br><b>Remove a Samba user</b>`sudo pdbedit --user [username] --delete`<br><b>Reset a Samba user's failed password counter</b>`sudo pdbedit --user [username] --bad-password-count-reset`


title: TLDR
content:
<b>Synchronize and set date and time</b>`sudo ntpdate [host]`<br><b>Query the host without setting the time</b>`ntpdate -q [host]`<br><b>Use an unprivileged port in case a firewall is blocking privileged ports</b>`sudo ntpdate -u [host]`<br><b>Force time to be stepped using settimeofday instead of slewed</b>`sudo ntpdate -b [host]`


title: TLDR
content:
<b>List all global environment variables describing the user's locale</b>`locale`<br><b>List all available locales</b>`locale [[-a|--all-locales]]`<br><b>Display all available locales and the associated metadata</b>`locale [[-a|--all-locales]] [[-v|--verbose]]`<br><b>Display the current date format</b>`locale date_fmt`


title: TLDR
content:
<b>Create an empty repository</b>`repo-add [path/to/database.db.tar.gz]`<br><b>Add packages to the repository</b>`repo-add [path/to/database.db.tar.gz] [package1.pkg.tar.zst package2.pkg.tar.zst ...]`<br><b>Add all package binaries in the current directory and remove any outdated package files</b>`repo-add [[-R|--remove]] [path/to/database.db.tar.gz] [*.pkg.tar.zst]`<br><b>Add all package binaries in the current directory in silent mode except for warning and error messages</b>`repo-add [[-q|--quiet]] [path/to/database.db.tar.gz] [*.pkg.tar.zst]`<br><b>Add all package binaries in the current directory without showing color</b>`repo-add --nocolor [path/to/database.db.tar.gz] [*.pkg.tar.zst]`


title: TLDR
content:
<b>Start daemon in the background</b>`sshd`<br><b>Run sshd in the foreground</b>`sshd -D`<br><b>Run with verbose output (for debugging)</b>`sshd -D -d`<br><b>Run on a specific port</b>`sshd -p [port]`


title: TLDR
content:
<b>Scan an IP or network subnet for port 80</b>`masscan [ip_address|network_prefix] [[-p|--ports]] [80]`<br><b>Scan a class B subnet for the top 100 ports at 100,000 packets per second</b>`masscan [10.0.0.0/16] --top-ports [100] --rate [100000]`<br><b>Scan a class B subnet avoiding ranges from a specific exclude file</b>`masscan [10.0.0.0/16] --top-ports [100] --excludefile [path/to/file]`<br><b>Scan a class B subnet with Nmap-like version detection (banner grabbing)</b>`masscan [10.0.0.0/16] [[-p|--ports]] [22,80] --banners --rate [100000]`<br><b>Scan the Internet for web servers running on port 80 and 443</b>`masscan [0.0.0.0/0] [[-p|--ports]] [80,443] --rate [10000000]`<br><b>Scan the Internet for DNS servers running on UDP port 53</b>`masscan [0.0.0.0/0] [[-p|--ports]] [U:53] --rate [10000000]`<br><b>Scan the Internet for a specific port range and export to a file</b>`masscan [0.0.0.0/0] [[-p|--ports]] [0-65535] --output-format [binary|grepable|json|list|xml] --output-filename [path/to/file]`<br><b>Read binary scan results from a file and output to stdout</b>`masscan --readscan [path/to/file]`


title: TLDR
content:
<b>Search for a pattern within a compressed file</b>`bzgrep "[search_pattern]" [path/to/file]`<br><b>Use extended regex (supports ?, +, {}, () and |), in case-insensitive mode</b>`bzgrep [[-E|--extended-regexp]] [[-i|--ignore-case]] "[search_pattern]" [path/to/file]`<br><b>Print 3 lines of [C]ontext around, [B]efore, or [A]fter each match</b>`bzgrep --[context|before-context|after-context] [3] "[search_pattern]" [path/to/file]`<br><b>Print file name and line number for each match</b>`bzgrep [[-H|--with-filename]] [[-n|--line-number]] "[search_pattern]" [path/to/file]`<br><b>Search for lines matching a pattern, printing only the matched text</b>`bzgrep [[-o|--only-matching]] "[search_pattern]" [path/to/file]`<br><b>Recursively search files in a bzip2 compressed tar archive for a pattern</b>`bzgrep [[-r|--recursive]] "[search_pattern]" [path/to/tar_file]`<br><b>Search stdin for lines that do not match a pattern</b>`cat [path/to/bz_compressed_file] | bzgrep [[-v|--invert-match]] "[search_pattern]"`


title: TLDR
content:
<b>Play a media file</b>`ffplay [path/to/file]`<br><b>Play audio from a media file without a GUI</b>`ffplay -nodisp [path/to/file]`<br><b>Play media passed by ffmpeg through stdin</b>`ffmpeg -i [path/to/file] -c [copy] -f [media_format] - | ffplay -`<br><b>Play a video and show motion vectors in real time</b>`ffplay -flags2 +export_mvs -vf codecview=mv=pf+bf+bb [path/to/file]`<br><b>Show only video keyframes</b>`ffplay -vf select="[eq(pict_type\,PICT_TYPE_I)]" [path/to/file]`


title: TLDR
content:
<b>Search for a pattern within a file</b>`egrep "[search_pattern]" [path/to/file]`<br><b>Search for a pattern within multiple files</b>`egrep "[search_pattern]" [path/to/file1 path/to/file2 ...]`<br><b>Search stdin for a pattern</b>`cat [path/to/file] | egrep [search_pattern]`<br><b>Print file name and line number for each match</b>`egrep [[-H|--with-filename]] [[-n|--line-number]] "[search_pattern]" [path/to/file]`<br><b>Search for a pattern in all files recursively in a directory, ignoring binary files</b>`egrep [[-r|--recursive]] --binary-files=[without-match] "[search_pattern]" [path/to/directory]`<br><b>Search for lines that do not match a pattern</b>`egrep [[-v|--invert-match]] "[search_pattern]" [path/to/file]`


title: TLDR
content:
<b>Search for a pattern within one or more tar archives</b>`ptargrep "[search_pattern]" [path/to/file1 path/to/file2 ...]`<br><b>Extract to the current directory using the basename of the file from the archive</b>`ptargrep [[-b|--basename]] "[search_pattern]" [path/to/file]`<br><b>Search for a case-insensitive pattern matching within a tar archive</b>`ptargrep [[-i|--ignore-case]] "[search_pattern]" [path/to/file]`


title: TLDR
content:
<b>Start cupsd in the background, aka. as a daemon</b>`cupsd`<br><b>Start cupsd on the [f]oreground</b>`cupsd -f`<br><b>[l]aunch cupsd on-demand (commonly used by launchd or systemd)</b>`cupsd -l`<br><b>Start cupsd using the specified cupsd.conf [c]onfiguration file</b>`cupsd -c [path/to/cupsd.conf]`<br><b>Start cupsd using the specified cups-files.conf configuration file</b>`cupsd -s [path/to/cups-files.conf]`<br><b>[t]est the cupsd.conf [c]onfiguration file for errors</b>`cupsd -t -c [path/to/cupsd.conf]`<br><b>[t]est the cups-files.conf configuration file for errors</b>`cupsd -t -s [path/to/cups-files.conf]`<br><b>Display [h]elp</b>`cupsd -h`


title: TLDR
content:
<b>Search for a pattern within a Zip archive</b>`zipgrep "[search_pattern]" [path/to/file.zip]`<br><b>Print file name and line number for each match</b>`zipgrep [[-H|--with-filename]] [[-n|--line-number]] "[search_pattern]" [path/to/file.zip]`<br><b>Search for lines that do not match a pattern</b>`zipgrep [[-v|--invert-match]] "[search_pattern]" [path/to/file.zip]`<br><b>Specify files inside a Zip archive from search</b>`zipgrep "[search_pattern]" [path/to/file.zip] [file/to/search1] [file/to/search2]`<br><b>Exclude files inside a Zip archive from search</b>`zipgrep "[search_pattern]" [path/to/file.zip] [[-x|--line-regexp]] [file/to/exclude1] [file/to/exclude2]`


title: TLDR
content:
<b>Search for an exploit, shellcode, or paper</b>`searchsploit [search_terms]`<br><b>Search for a known specific version, e.g. sudo version 1.8.27</b>`searchsploit sudo 1.8.27`<br><b>Show the exploit-db link to the found resources</b>`searchsploit [[-w|--www]] [search_terms]`<br><b>Copy the resource to the current directory (requires the number of the exploit)</b>`searchsploit [[-m|--mirror]] [exploit_number]`<br><b>Examine the resource, using the pager defined in the $PAGER environment variable</b>`searchsploit [[-x|--examine]] [exploit_number]`<br><b>Update the local Exploit Database</b>`searchsploit [[-u|--update]]`<br><b>Search for the [c]ommon [v]ulnerabilities and [e]xposures (CVE) value</b>`searchsploit --cve [2021-44228]`<br><b>Check results in nmap's XML output with service version (nmap -sV -oX nmap-output.xml) for known exploits</b>`searchsploit --nmap [path/to/nmap-output.xml]`


title: TLDR
content:
<b>Process input with pictures, saving the output for future typesetting with groff to PostScript</b>`pic [path/to/input.pic] > [path/to/output.roff]`<br><b>Typeset input with pictures to PDF using the [me] macro package</b>`pic -T [pdf] [path/to/input.pic] | groff -[me] -T [pdf] > [path/to/output.pdf]`


title: TLDR
content:
<b>Process input with equations, saving the output for future typesetting with groff to PostScript</b>`eqn [path/to/input.eqn] > [path/to/output.roff]`<br><b>Typeset an input file with equations to PDF using the [me] macro package</b>`eqn -T [pdf] [path/to/input.eqn] | groff -[me] -T [pdf] > [path/to/output.pdf]`


title: TLDR
content:
<b>Ping a destination with 4 ICMP ping requests</b>`hping3 --icmp --count [4] [ip_or_hostname]`<br><b>Ping an IP address over UDP on port 80</b>`hping3 --udp --destport [80] --syn [ip_or_hostname]`<br><b>Scan TCP port 80, scanning from the specific local source port 5090</b>`hping3 --verbose --syn --destport [80] --baseport [5090] [ip_or_hostname]`<br><b>Traceroute using a TCP scan to a specific destination port</b>`hping3 --traceroute --verbose --syn --destport [80] [ip_or_hostname]`<br><b>Scan a set of TCP ports on a specific IP address</b>`hping3 --scan [80,3000,9000] --syn [ip_or_hostname]`<br><b>Perform a TCP ACK scan to check if a given host is alive</b>`hping3 --count [2] --verbose --destport [80] --ack [ip_or_hostname]`<br><b>Perform a charge test on port 80</b>`hping3 --flood --destport [80] --syn [ip_or_hostname]`


title: TLDR
content:
<b>Store a reference by a name</b>`git symbolic-ref refs/[name] [ref]`<br><b>Store a reference by name, including a message with a reason for the update</b>`git symbolic-ref -m "[message]" refs/[name] refs/heads/[branch_name]`<br><b>Read a reference by name</b>`git symbolic-ref refs/[name]`<br><b>Delete a reference by name</b>`git symbolic-ref [[-d|--delete]] refs/[name]`<br><b>For scripting, hide errors with --quiet and use --short to simplify ("refs/heads/X" prints as "X")</b>`git symbolic-ref [[-q|--quiet]] --short refs/[name]`


title: TLDR
content:
<b>Format output for a PostScript printer, saving the output to a file</b>`troff [path/to/input.roff] | grops > [path/to/output.ps]`<br><b>Format output for a PostScript printer using the me macro package, saving the output to a file</b>`troff -[me] [path/to/input.roff] | grops > [path/to/output.ps]`<br><b>Format output as ASCII text using the man macro package</b>`troff -T [ascii] -[man] [path/to/input.roff] | grotty`<br><b>Format output as a pdf file, saving the output to a file</b>`troff -T [pdf] [path/to/input.roff] | gropdf > [path/to/output.pdf]`


title: TLDR
content:
<b>Process input with tables, saving the output for future typesetting with groff to PostScript</b>`tbl [path/to/input_file] > [path/to/output.roff]`<br><b>Typeset input with tables to PDF using the [me] macro package</b>`tbl -T [pdf] [path/to/input.tbl] | groff -[me] -T [pdf] > [path/to/output.pdf]`


title: TLDR
content:
<b>Monitor all occurring X events</b>`xev`<br><b>Monitor all X events of the root window instead of creating a new one</b>`xev -root`<br><b>Monitor all X events of a particular window</b>`xev -id [window_id]`<br><b>Monitor X events from a given category (can be specified multiple times)</b>`xev -event [event_category]`


title: TLDR
content:
<b>List all the currently connected printers</b>`lpinfo -v`<br><b>List all the currently installed printer drivers</b>`lpinfo -m`<br><b>Search installed printer drivers by make and model</b>`lpinfo --make-and-model "[printer_model]" -m`


title: TLDR
content:
<b>List all files in a Zip file in long format (permissions, ownership, size, and modification date)</b>`zipinfo [path/to/archive.zip]`<br><b>List all files in a Zip file</b>`zipinfo -1 [path/to/archive.zip]`


title: TLDR
content:
<b>Compare all changed files</b>`git diff-files`<br><b>Compare only specified files</b>`git diff-files [path/to/file]`<br><b>Show only the names of changed files</b>`git diff-files --name-only`<br><b>Output a summary of extended header information</b>`git diff-files --summary`


title: TLDR
content:
<b>Start an interactive shell session</b>`csh`<br><b>Start an interactive shell session [f]aster without loading startup configs</b>`csh -f`<br><b>Execute specific [c]ommands</b>`csh -c "[echo 'csh is executed']"`<br><b>Execute a specific script</b>`csh [path/to/script.csh]`


title: TLDR
content:
<b>Open a compressed file</b>`zmore [path/to/file.txt.gz]`<br><b>Display the next page of the file</b>`<Space>`<br><b>Search for a pattern in the file (press <n> to go to next match)</b>`</>[regex]`<br><b>Exit</b>`<q>`<br><b>Display interactive command help</b>`<h>`


title: TLDR
content:
<b>Log out of i3</b>`i3exit logout`<br><b>Lock i3</b>`i3exit lock`<br><b>Shut down the system</b>`i3exit shutdown`<br><b>Suspend the system</b>`i3exit suspend`<br><b>Switch to the login screen to log in as a different user</b>`i3exit switch_user`<br><b>Hibernate the system</b>`i3exit hibernate`<br><b>Reboot the system</b>`i3exit reboot`


title: TLDR
content:
<b>Check the status of a tape drive</b>`mt -f [/dev/nstX] status`<br><b>Rewind the tape to beginning</b>`mt -f [/dev/nstX] rewind`<br><b>Move forward a given files, then position the tape on first block of next file</b>`mt -f [/dev/nstX] fsf [count]`<br><b>Rewind the tape, then position the tape at beginning of the given file</b>`mt -f [/dev/nstX] asf [count]`<br><b>Position the tape at the end of valid data</b>`mt -f [/dev/nstX] eod`<br><b>Rewind the tape and unload/eject it</b>`mt -f [/dev/nstX] eject`<br><b>Write EOF (End-of-file) mark at the current position</b>`mt -f [/dev/nstX] eof`


title: TLDR
content:
<b>Print the status line to stdout periodically, using the default configuration</b>`i3status`<br><b>Print the status line to stdout periodically, using a specific configuration</b>`i3status -c [path/to/i3status.conf]`<br><b>Display help and version</b>`i3status -h`


title: TLDR
content:
<b>List all virtual machines</b>`qm list`<br><b>Using an ISO file uploaded on the local storage, create a virtual machine with a 4 GB SCSI disk on the local-lvm storage and an ID of 100</b>`qm [[cr|create]] [100] --scsi0 [local-lvm:4] --net0 [e1000] --cdrom [local:iso/proxmox-mailgateway_2.1.iso]`<br><b>Show the configuration of a virtual machine, specifying its ID</b>`qm [[co|config]] [100]`<br><b>Start a specific virtual machine</b>`qm start [100]`<br><b>Send a shutdown request, then wait until the virtual machine is stopped</b>`qm [[shu|shutdown]] [100] && qm [[w|wait]] [100]`<br><b>Destroy a virtual machine and remove all related resources</b>`qm [[des|destroy]] [100] --purge`


title: TLDR
content:
<b>Verify all stored fingerprints for the current user</b>`fprintd-verify`<br><b>Verify a specific fingerprint for the current user</b>`fprintd-verify [[-f|--finger]] [left-thumb|left-index-finger|left-middle-finger|left-ring-finger|left-little-finger|right-thumb|...]`<br><b>Verify fingerprints for a specific user</b>`fprintd-verify [username]`<br><b>Verify a specific fingerprint for a specific user</b>`fprintd-verify [[-f|--finger]] [finger_name] [username]`<br><b>Fail the process if a fingerprint doesn't match with ones stored in the database for the current user</b>`fprintd-verify --g-fatal-warnings`<br><b>Display help</b>`fprintd-verify [[-h|--help]]`


title: TLDR
content:
<b>Create a new [g]roup</b>`cgcreate -g [group_type]:[group_name]`<br><b>Create a new [g]roup with multiple cgroup types</b>`cgcreate -g [group_type1],[group_type2]:[group_name]`<br><b>Create a subgroup</b>`mkdir /sys/fs/cgroup/[group_type]/[group_name]/[subgroup_name]`


title: TLDR
content:
<b>Analyze one or more log files in interactive mode</b>`goaccess [path/to/logfile1 path/to/file2 ...]`<br><b>Use a specific log-format (or pre-defined formats like "combined")</b>`goaccess [path/to/logfile] --log-format=[format]`<br><b>Analyze a log from stdin</b>`tail [[-f|--follow]] [path/to/logfile] | goaccess -`<br><b>Analyze a log and write it to an HTML file in real-time</b>`goaccess [path/to/logfile] [[-o|--output]] [path/to/file.html] --real-time-html`


title: TLDR
content:
<b>View and set the wallpapers from a specific directory</b>`nitrogen [path/to/directory]`<br><b>Set the wallpaper with automatic size settings</b>`nitrogen --set-auto [path/to/file]`<br><b>Restore the previous wallpaper</b>`nitrogen --restore`


title: TLDR
content:
<b>Print the dependency tree of a specific package</b>`pactree [package]`<br><b>Print what packages depend on a specific package</b>`pactree [[-r|--reverse]] [package]`<br><b>Dump dependencies one per line, skipping duplicates</b>`pactree [[-u|--unique]] [package]`<br><b>Include optional dependencies of a specific package and colorize the output</b>`pactree [[-co|--color --optional]] [package]`<br><b>Display help</b>`pactree`


title: TLDR
content:
<b>Display a list of missing language packages based on installed software and enabled locales</b>`check-language-support`<br><b>List packages for a specific locale</b>`check-language-support [[-l|--language]] [en]`<br><b>Display installed packages as well as missing ones</b>`check-language-support --show-installed`


title: TLDR
content:
<b>List all available networks</b>`lxc network list`<br><b>Show the configuration of a specific network</b>`lxc network show [network_name]`<br><b>Add a running instance to a specific network</b>`lxc network attach [network_name] [container_name]`<br><b>Create a new managed network</b>`lxc network create [network_name]`<br><b>Set a bridge interface of a specific network</b>`lxc network set [network_name] bridge.external_interfaces [eth0]`<br><b>Disable NAT for a specific network</b>`lxc network set [network_name] ipv[4].nat false`


title: TLDR
content:
<b>List enrolled fingerprints for a specific user</b>`fprintd-list [username]`<br><b>List enrolled fingerprints for one or more users</b>`fprintd-list [username1 username2 ...]`<br><b>Display help</b>`fprintd-list`


title: TLDR
content:
<b>Build the package in the current directory and run all tests directly on the system</b>`autopkgtest -- [null]`<br><b>Run a specific test for the package in the current directory</b>`autopkgtest --test-name=[test_name] -- [null]`<br><b>Download and build a specific package with apt-get, then run all tests</b>`autopkgtest [package] -- [null]`<br><b>Test the package in the current directory using a new root directory</b>`autopkgtest -- [chroot] [path/to/new_root]`<br><b>Test the package in the current directory without rebuilding it</b>`autopkgtest [[-B|--no-built-binaries]] -- [null]`


title: TLDR
content:
<b>Prepare the root filesystem for use with fscrypt</b>`sudo fscrypt setup`<br><b>Prepare a specific mountpoint for use with fscrypt</b>`fscrypt setup [path/to/directory]`<br><b>Enable filesystem encryption for a directory</b>`fscrypt encrypt [path/to/directory]`<br><b>Unlock an encrypted directory</b>`fscrypt unlock [path/to/encrypted_directory]`<br><b>Lock an encrypted directory</b>`fscrypt lock [path/to/encrypted_directory]`


title: TLDR
content:
<b>Convert a specific PNG image to AVIF</b>`avifenc [path/to/input.png] [path/to/output.avif]`<br><b>Encode with a specific speed (6=default, 0=slowest and 10=fastest)</b>`avifenc --speed [2] [path/to/input.png] [path/to/output.avif]`


title: TLDR
content:
<b>Display all devices detected by fwupd</b>`fwupdmgr get-devices`<br><b>Download the latest firmware metadata from LVFS</b>`fwupdmgr refresh`<br><b>List the updates available for devices on your system</b>`fwupdmgr get-updates`<br><b>Install firmware updates</b>`fwupdmgr update`<br><b>Remount /boot with more privileges if update complains about a read-only filesystem</b>`sudo mount [[-o|--options]] uid=1000,gid=1000,umask=0022 [/dev/sdX] /boot`<br><b>Show firmware update history</b>`fwupdmgr get-history`


title: TLDR
content:
<b>View documentation for cgclassify</b>`tldr cgclassify`<br><b>View documentation for cgcreate</b>`tldr cgcreate`<br><b>View documentation for cgexec</b>`tldr cgexec`


title: TLDR
content:
<b>Scan a webserver using the default wordlist</b>`dirb [https://example.org]`<br><b>Scan a webserver using a custom wordlist</b>`dirb [https://example.org] [path/to/wordlist.txt]`<br><b>Scan a webserver non-recursively</b>`dirb [https://example.org] -r`<br><b>Scan a webserver using a specified user-agent and cookie for HTTP-requests</b>`dirb [https://example.org] -a [user_agent_string] -c [cookie_string]`


title: TLDR
content:
<b>Lock the screen to a blurred screenshot of the current screen</b>`blurlock`<br><b>Lock the screen and disable the unlock indicator (removes feedback on keypress)</b>`blurlock [[-u|--no-unlock-indicator]]`<br><b>Lock the screen and don't hide the mouse pointer</b>`blurlock [[-p|--pointer]] [default]`<br><b>Lock the screen and show the number of failed login attempts</b>`blurlock [[-f|--show-failed-attempts]]`


title: TLDR
content:
<b>List vulnerable installed packages on the current host</b>`debsecan`<br><b>List vulnerable installed packages of a specific suite</b>`debsecan --suite [release_code_name]`<br><b>List only fixed vulnerabilities</b>`debsecan --suite [release_code_name] --only-fixed`<br><b>List only fixed vulnerabilities of unstable ("sid") and mail to root</b>`debsecan --suite [sid] --only-fixed --format [report] --mailto [root] --update-history`<br><b>Upgrade vulnerable installed packages</b>`sudo apt upgrade $(debsecan --only-fixed --format [packages])`


title: TLDR
content:
<b>Plot the values 1, 2 and 3 (Note: cat prevents ttyplot from exiting)</b>`{ echo [1 2 3]; cat; } | ttyplot`<br><b>Set a specific title and unit</b>`{ echo [1 2 3]; cat; } | ttyplot -t [title] -u [unit]`<br><b>Use a while loop to continuously plot random values</b>`{ while [true]; do echo [$RANDOM]; sleep [1]; done } | ttyplot`<br><b>Parse the output from ping and visualize it</b>`ping [8.8.8.8] | sed -u '[s/^.*time=//g; s/ ms//g]' | ttyplot -t "[ping to 8.8.8.8]" -u [ms]`


title: TLDR
content:
<b>List available properties (and descriptions) for the given btrfs object</b>`sudo btrfs [[p|property]] [[l|list]] [path/to/btrfs_object]`<br><b>Get all properties for the given btrfs object</b>`sudo btrfs [[p|property]] [[g|get]] [path/to/btrfs_object]`<br><b>Get the label property for the given btrfs filesystem or device</b>`sudo btrfs [[p|property]] [[g|get]] [path/to/btrfs_filesystem] label`<br><b>Get all object type-specific properties for the given btrfs filesystem or device</b>`sudo btrfs [[p|property]] [[g|get]] -t [subvol|filesystem|inode|device] [path/to/btrfs_filesystem]`<br><b>Set the compression property for a given btrfs inode (either a file or directory)</b>`sudo btrfs [[p|property]] [[s|set]] [path/to/btrfs_inode] compression [zstd|zlib|lzo|none]`


title: TLDR
content:
<b>Search for extended regex (supporting ?, +, {}, () and |) in a compressed file (case-sensitive)</b>`zegrep "[search_pattern]" [path/to/file]`<br><b>Search for extended regex (supporting ?, +, {}, () and |) in a compressed file (case-insensitive)</b>`zegrep [[-i|--ignore-case]] "[search_pattern]" [path/to/file]`<br><b>Search for lines that do not match a pattern</b>`zegrep [[-v|--invert-match]] "[search_pattern]" [path/to/file]`<br><b>Print file name and line number for each match</b>`zegrep [[-H|--with-filename]] [[-n|--line-number]] "[search_pattern]" [path/to/file]`<br><b>Search for lines matching a pattern, printing only the matched text</b>`zegrep [[-o|--only-matching]] "[search_pattern]" [path/to/file]`<br><b>Recursively search files in a compressed file for a pattern</b>`zegrep [[-r|--recursive]] "[search_pattern]" [path/to/file]`


title: TLDR
content:
<b>List all subkeys of a given option key</b>`nixos-option [option_key]`<br><b>List current boot kernel modules</b>`nixos-option boot.kernelModules`<br><b>List authorized keys for a specific user</b>`nixos-option users.users.[username].openssh.authorizedKeys.[keyFiles|keys]`<br><b>List all remote builders</b>`nixos-option nix.buildMachines`<br><b>List all subkeys of a given key on another NixOS configuration</b>`NIXOS_CONFIG=[path_to_configuration.nix] nixos-option [option_key]`<br><b>Show recursively all values of a user</b>`nixos-option [[-r|--recursive]] users.users.[user]`


title: TLDR
content:
<b>List all available profiles</b>`lxc profile list`<br><b>Show the configuration of a specific profile</b>`lxc profile show [profile_name]`<br><b>Edit a specific profile in the default editor</b>`lxc profile edit [profile_name]`<br><b>Edit a specific profile importing the configuration values from a file</b>`lxc < [config.yaml] profile edit [profile_name]`<br><b>Launch a new container with specific profiles</b>`lxc launch [container_image] [container_name] [[-p|--profile]] [profile1] [[-p|--profile]] [profile2]`<br><b>Change the profiles of a running container</b>`lxc profile assign [container_name] [profile1,profile2]`


title: TLDR
content:
<b>List running containers</b>`sudo nixos-container list`<br><b>Create a NixOS container with a specific configuration file</b>`sudo nixos-container create [container_name] --config-file [path/to/nix_config_file]`<br><b>Start, stop, terminate, or destroy a specific container</b>`sudo nixos-container [start|stop|terminate|destroy|status] [container_name]`<br><b>Run a command in a running container</b>`sudo nixos-container run [container_name] -- [command] [command_arguments]`<br><b>Update a container configuration</b>`sudo $EDITOR /var/lib/container/[container_name]/etc/nixos/configuration.nix && sudo nixos-container update [container_name]`<br><b>Enter an interactive shell session on an already-running container</b>`sudo nixos-container root-login [container_name]`


title: TLDR
content:
<b>Restore all files from a btrfs filesystem to a given directory</b>`sudo btrfs [[rest|restore]] [path/to/btrfs_device] [path/to/target_directory]`<br><b>List (don't write) files to be restored from a btrfs filesystem</b>`sudo btrfs [[rest|restore]] [[-D|--dry-run]] [path/to/btrfs_device] [path/to/target_directory]`<br><b>Restore files matching a given regex ([c]ase-insensitive) files to be restored from a btrfs filesystem (all parent directories of target file(s) must match as well)</b>`sudo btrfs [[rest|restore]] --path-regex [regex] -c [path/to/btrfs_device] [path/to/target_directory]`<br><b>Restore files from a btrfs filesystem using a specific root [t]ree bytenr (see btrfs-find-root)</b>`sudo btrfs [[rest|restore]] -t [bytenr] [path/to/btrfs_device] [path/to/target_directory]`<br><b>Restore files from a btrfs filesystem (along with metadata, extended attributes, and Symlinks), overwriting files in the target</b>`sudo btrfs [[rest|restore]] [[-m|--metadata]] [[-x|--xattr]] [[-S|--symlinks]] [[-o|--overwrite]] [path/to/btrfs_device] [path/to/target_directory]`


title: TLDR
content:
<b>List binary packages which would be generated from a RPM spec file</b>`rpmspec --query [path/to/rpm.spec]`<br><b>List all options for --queryformat</b>`rpmspec --querytags`<br><b>Get summary information for single binary packages generated from a RPM spec file</b>`rpmspec --query --queryformat "[%{name}: %{summary}\n]" [path/to/rpm.spec]`<br><b>Get the source package which would be generated from a RPM spec file</b>`rpmspec --query --srpm [path/to/rpm.spec]`<br><b>Parse a RPM spec file to stdout</b>`rpmspec --parse [path/to/rpm.spec]`


title: TLDR
content:
<b>Update the checksums in a PKGBUILD</b>`updpkgsums`<br><b>Display help</b>`updpkgsums [[-h|--help]]`<br><b>Display version</b>`updpkgsums [[-v|--version]]`


title: TLDR
content:
<b>Pause/Unpause/Toggle desktop notifications</b>`dunstctl set-paused [true|false|toggle]`<br><b>Close all notifications</b>`dunstctl close-all`<br><b>Delete all notifications from history</b>`dunstctl history-clear`<br><b>Display the latest notification from history</b>`dunstctl history-pop`<br><b>Reload the configuration file</b>`dunstctl reload`<br><b>Display help</b>`dunstctl [[-h|--help]]`


title: TLDR
content:
<b>Remove all fingerprints for a specific user</b>`fprintd-delete [username]`<br><b>Remove a specific fingerprints for a specific user</b>`fprintd-delete [username] [[-f|--finger]] [left-thumb|left-index-finger|left-middle-finger|left-ring-finger|left-little-finger|right-thumb|...]`<br><b>Display help</b>`fprintd-delete`


title: TLDR
content:
<b>Define two virtual desktops</b>`bspc monitor [[-d|--reset-desktops]] [desktop_name1] [desktop_name2]`<br><b>Focus the given desktop</b>`bspc desktop [[-f|--focus]] [number]`<br><b>Close the windows rooted at the selected node</b>`bspc node [[-c|--close]]`<br><b>Send the selected node to the given desktop</b>`bspc node [[-d|--to-desktop]] [number]`<br><b>Toggle full screen mode for the selected node</b>`bspc node [[-t|--state]] ~fullscreen`<br><b>Set the value of a specific setting</b>`bspc config [setting_name] [value]`


title: TLDR
content:
<b>Get the status of the current mirrors</b>`shiny-mirrors status`<br><b>Generate a mirror list using the default behavior</b>`sudo shiny-mirrors refresh`<br><b>Display the current configuration file</b>`shiny-mirrors config show`<br><b>Switch to a different branch interactively</b>`sudo shiny-mirrors config --branch`


title: TLDR
content:
<b>List available power profiles</b>`powerprofilesctl list`<br><b>Set a specific power profile</b>`powerprofilesctl set [profile_name]`


title: TLDR
content:
<b>Display library packages (from the "libs" section of the package repository) which are not required by another package</b>`deborphan`<br><b>List orphan packages from the "libs" section as well as orphan packages that have a name that looks like a library name</b>`deborphan --guess-all`<br><b>Find packages which are only recommended or suggested (but not required) by another package</b>`deborphan [[-n|--nice-mode]]`


title: TLDR
content:
<b>Disable the swap file</b>`dphys-swapfile swapoff`<br><b>Enable the swap file</b>`dphys-swapfile swapon`<br><b>Create a new swap file</b>`dphys-swapfile setup`


title: TLDR
content:
<b>List all users in the SAM file</b>`chntpw -l [path/to/sam_file]`<br><b>Edit user interactively</b>`chntpw -u [username] [path/to/sam_file]`<br><b>Use chntpw interactively</b>`chntpw -i [path/to/sam_file]`


title: TLDR
content:
<b>Execute a process in a given c[g]roup with given controller</b>`cgexec -g [controller]:[cgroup_name] [process_name]`


title: TLDR
content:
<b>Create and install a package with default settings</b>`sudo checkinstall [[-y|--default]]`<br><b>Create a package but don't install it</b>`sudo checkinstall --install=[no]`<br><b>Create a package without documentation</b>`sudo checkinstall --nodoc`<br><b>Create a package and set the name</b>`sudo checkinstall --pkgname [package]`<br><b>Create a package and specify where to save it</b>`sudo checkinstall --pakdir [path/to/directory]`


title: TLDR
content:
<b>Display a cow saying "hello, world"</b>`xcowsay "[hello, world]"`<br><b>Display a cow with output from another command</b>`ls | xcowsay`<br><b>Display a cow at the specified X and Y coordinates</b>`xcowsay --at [X],[Y]`<br><b>Display a different sized cow</b>`xcowsay --cow-size [small|med|large]`<br><b>Display a thought bubble instead of a speech bubble</b>`xcowsay --think`<br><b>Display a different image instead of the default cow</b>`xcowsay --image [path/to/file]`


title: TLDR
content:
<b>Copy the text to the clipboard</b>`wl-copy "[text]"`<br><b>Pipe the command (ls) output to the clipboard</b>`[ls] | wl-copy`<br><b>Copy for only one paste and then clear it</b>`wl-copy --paste-once "[text]"`<br><b>Copy an image</b>`wl-copy < [path/to/image]`<br><b>Clear the clipboard</b>`wl-copy --clear`


title: TLDR
content:
<b>Search for a specific username on social networks saving the results to a file</b>`sherlock [username] --output [path/to/file]`<br><b>Search for specific usernames on social networks saving the results into a directory</b>`sherlock [username1 username2 ...] --folderoutput [path/to/directory]`<br><b>Search for a specific username on social networks using the Tor network</b>`sherlock --tor [username]`<br><b>Make requests over Tor with a new Tor circuit after each request</b>`sherlock --unique-tor [username]`<br><b>Search for a specific username on social networks using a proxy</b>`sherlock [username] --proxy [proxy_url]`<br><b>Search for a specific username on social networks and open results in the default web browser</b>`sherlock [username] --browse`<br><b>Display help</b>`sherlock --help`


title: TLDR
content:
<b>Synchronize the Portage tree</b>`ego sync`<br><b>Update the bootloader configuration</b>`ego boot update`<br><b>Read a Funtoo wiki page by name</b>`ego doc [wiki_page]`<br><b>Print current profile</b>`ego profile show`<br><b>Enable/Disable mix-ins</b>`ego profile mix-in +[gnome] -[kde-plasma-5]`<br><b>Query Funtoo bugs, related to a specified package</b>`ego query bug [package]`


title: TLDR
content:
<b>Paste the contents of the clipboard</b>`wl-paste`<br><b>Paste the contents of the primary clipboard (highlighted text)</b>`wl-paste --primary`<br><b>Write the contents of the clipboard to a file</b>`wl-paste > [path/to/file]`<br><b>Pipe the contents of the clipboard to a command</b>`wl-paste | [command]`


title: TLDR
content:
<b>Execute a Fossil subcommand</b>`fossil [subcommand]`<br><b>Display help</b>`fossil help`<br><b>Display help for a specific subcommand (like add, commit, etc.)</b>`fossil help [subcommand]`<br><b>Display version</b>`fossil version`


title: TLDR
content:
<b>Print the contents of a file in pride colors to stdout</b>`pridecat [path/to/file]`<br><b>Print contents of a file in trans colors</b>`pridecat [path/to/file] [[--trans|--transgender]]`<br><b>Alternate between lesbian and bisexual pride flags</b>`pridecat [path/to/file] --lesbian [[--bi|--bisexual]]`<br><b>Print contents of a file with the background colors changed</b>`pridecat [path/to/file] [[-b|--background]]`<br><b>List directory contents in pride flag colors</b>`ls | pridecat --[flag]`


title: TLDR
content:
<b>Update the list of available packages and versions</b>`wajig update`<br><b>Install a package, or update it to the latest available version</b>`wajig install [package]`<br><b>Remove a package and its configuration files</b>`wajig purge [package]`<br><b>Perform an update and then a dist-upgrade</b>`wajig daily-upgrade`<br><b>Display the sizes of installed packages</b>`wajig sizes`<br><b>List the version and distribution for all installed packages</b>`wajig versions`<br><b>List versions of upgradable packages</b>`wajig toupgrade`<br><b>Display packages which have some form of dependency on the given package</b>`wajig dependents [package]`


title: TLDR
content:
<b>Play a WAV file over the default target</b>`pw-cat [[-p|--playback]] [path/to/file.wav]`<br><b>Play a WAV file with a specified resampler quality (4 by default)</b>`pw-cat [[-q|--quality]] [0..15] [[-p|--playback]] [path/to/file.wav]`<br><b>Record a sample recording at a volume level of 125%</b>`pw-cat [[-r|--record]] --volume [1.25] [path/to/file.wav]`<br><b>Record a sample recording using a different sample rate</b>`pw-cat [[-r|--record]] --rate [6000] [path/to/file.wav]`<br><b>Display help</b>`pw-cat [[-h|--help]]`


title: TLDR
content:
<b>Move a running process to your current terminal</b>`reptyr [pid]`<br><b>Attach to a process using its name</b>`reptyr $(pidof [htop])`


title: TLDR
content:
<b>Check a specific PKGBUILD file</b>`namcap [path/to/pkgbuild]`<br><b>Check a specific package file</b>`namcap [path/to/package.pkg.tar.zst]`<br><b>Check a file, printing extra informational messages</b>`namcap [[-i|--info]] [path/to/file]`


title: TLDR
content:
<b>Show DNS settings</b>`resolvectl status`<br><b>Resolve the IPv4 and IPv6 addresses for one or more domains</b>`resolvectl query [domain1 domain2 ...]`<br><b>Retrieve the domain of a specified IP address</b>`resolvectl query [ip_address]`<br><b>Flush all local DNS caches</b>`resolvectl flush-caches`<br><b>Display DNS statistics (transactions, cache, and DNSSEC verdicts)</b>`resolvectl statistics`<br><b>Retrieve an MX record of a domain</b>`resolvectl --legend [no] [[-t|--type]] [MX] query [domain]`<br><b>Resolve an SRV record, for example _xmpp-server._tcp gmail.com</b>`resolvectl service _[service]._[protocol] [name]`<br><b>Retrieve a TLS key</b>`resolvectl tlsa tcp [domain]:443`


title: TLDR
content:
<b>View logs of a program, specifying log files, directories or URLs</b>`lnav [path/to/log_or_directory|url]`<br><b>View logs of a specific remote host (SSH passwordless login required)</b>`lnav [ssh] [user]@[host1.example.com]:[/var/log/syslog.log]`<br><b>Validate the format of log files against the configuration and report any errors</b>`lnav -C [path/to/log_directory]`


title: TLDR
content:
<b>Run a video using mpv</b>`xwinwrap -b -nf -ov -- [mpv] --wid [wid] --loop --no-audio --no-resume-playback --panscan=[1.0] [path/to/video.mp4]`<br><b>Run a video in fullscreen using mpv</b>`xwinwrap -b -nf -fs -ov -- [mpv] --wid [wid] --loop --no-audio --no-resume-playback --panscan=[1.0] [path/to/video.mp4]`<br><b>Run a video using mpv with 80% opacity</b>`xwinwrap -b -nf -ov -o 0.8 --- [mpv] --wid [wid] --loop --no-audio --no-resume-playback --panscan=[1.0] [path/to/video.mp4]`<br><b>Run a video using mpv in a second monitor 1600x900 with 1920 offset on X-axis</b>`xwinwrap -g 1600x900+1920 -b -nf -ov -- [mpv] --wid [wid] --loop --no-audio --no-resume-playback --panscan=[1.0] [path/to/video.mkv]`


title: TLDR
content:
<b>List all compatible displays</b>`ddcutil detect`<br><b>Change the brightness (option 0x10) of display 1 to 50%</b>`ddcutil [[-d|--display]] [1] setvcp [10] [50]`<br><b>Increase the contrast (option 0x12) of display 1 by 5%</b>`ddcutil [[-d|--display]] [1] setvcp [12] [+] [5]`<br><b>Read the settings of display 1</b>`ddcutil [[-d|--display]] [1] getvcp [ALL]`


title: TLDR
content:
<b>Check a btrfs filesystem</b>`sudo btrfs [[c|check]] [path/to/partition]`<br><b>Check and repair a btrfs filesystem (dangerous)</b>`sudo btrfs [[c|check]] --repair [path/to/partition]`<br><b>Show the progress of the check</b>`sudo btrfs [[c|check]] [[-p|--progress]] [path/to/partition]`<br><b>Verify the checksum of each data block (if the filesystem is good)</b>`sudo btrfs [[c|check]] --check-data-csum [path/to/partition]`<br><b>Use the n-th superblock (n can be 0, 1 or 2)</b>`sudo btrfs [[c|check]] [[-s|--super]] [n] [path/to/partition]`<br><b>Rebuild the checksum tree</b>`sudo btrfs [[c|check]] --repair --init-csum-tree [path/to/partition]`<br><b>Rebuild the extent tree</b>`sudo btrfs [[c|check]] --repair --init-extent-tree [path/to/partition]`


title: TLDR
content:
<b>Enroll the right index finger for the current user</b>`fprintd-enroll`<br><b>Enroll a specific finger for the current user</b>`fprintd-enroll [[-f|--finger]] [left-thumb|left-index-finger|left-middle-finger|left-ring-finger|left-little-finger|right-thumb|...]`<br><b>Enroll the right index finger for a specific user</b>`fprintd-enroll [username]`<br><b>Enroll a specific finger for a specific user</b>`fprintd-enroll [[-f|--finger]] [finger_name] [username]`<br><b>Display help</b>`fprintd-enroll --help`


title: TLDR
content:
<b>Recursively search for a pattern in the current working directory</b>`rgrep "[search_pattern]"`<br><b>Recursively search for a case-insensitive pattern in the current working directory</b>`rgrep [[-i|--ignore-case]] "[search_pattern]"`<br><b>Recursively search for an extended regex pattern (supports ?, +, {}, () and |) in the current working directory</b>`rgrep [[-E|--extended-regexp]] "[search_pattern]"`<br><b>Recursively search for an exact string (disables regex) in the current working directory</b>`rgrep [[-F|--fixed-strings]] "[exact_string]"`<br><b>Recursively search for a pattern in a specified directory (or file)</b>`rgrep "[search_pattern]" [path/to/file_or_directory]`


title: TLDR
content:
<b>Print superblock's information</b>`sudo btrfs [[i|inspect-internal]] [[dump-s|dump-super]] [path/to/partition]`<br><b>Print superblock's and all of its copies' information</b>`sudo btrfs [[i|inspect-internal]] [[dump-s|dump-super]] [[-a|--all]] [path/to/partition]`<br><b>Print filesystem's metadata information</b>`sudo btrfs [[i|inspect-internal]] [[dump-t|dump-tree]] [path/to/partition]`<br><b>Print list of files in inode n-th</b>`sudo btrfs [[i|inspect-internal]] [[i|inode-resolve]] [n] [path/to/btrfs_mount]`<br><b>Print list of files at a given logical address</b>`sudo btrfs [[i|inspect-internal]] [[lo|logical-resolve]] [logical_address] [path/to/btrfs_mount]`<br><b>Print stats of root, extent, csum and fs trees</b>`sudo btrfs [[i|inspect-internal]] [[t|tree-stats]] [path/to/partition]`


title: TLDR
content:
<b>Open a given serial port</b>`sudo minicom [[-D|--device]] [/dev/ttyXYZ]`<br><b>Open a given serial port with a given baud rate</b>`sudo minicom [[-D|--device]] [/dev/ttyXYZ] [[-b|--baudrate]] [115200]`<br><b>Enter the configuration menu before communicating with a given serial port</b>`sudo minicom [[-D|--device]] [/dev/ttyXYZ] [[-s|--setup]]`<br><b>Capture the output of a serial port to a file</b>`sudo minicom [[-D|--device]] [/dev/ttyXYZ] [[-C|--capturefile]] [path/to/file]`<br><b>Exit minicom</b>`<Ctrl a><x><Enter>`<br><b>Display help</b>`minicom [[-h|--help]]`


title: TLDR
content:
<b>Capture a screenshot of the whole screen and save it to the default directory</b>`i3-scrot`<br><b>Capture a screenshot of the active window</b>`i3-scrot --window`<br><b>Capture a screenshot of a specific rectangular selection</b>`i3-scrot --select`<br><b>Capture a screenshot of the whole screen and copy it to the clipboard</b>`i3-scrot --desk-to-clipboard`<br><b>Capture a screenshot of the active window and copy it to the clipboard</b>`i3-scrot --window-to-clipboard`<br><b>Capture a screenshot of a specific selection and copy it to the clipboard</b>`i3-scrot --select-to-clipboard`<br><b>Capture a screenshot of the active window after a delay of 5 seconds</b>`i3-scrot --window [5]`


title: TLDR
content:
<b>Convert an existing Debian package to gbp</b>`gbp import-dsc [path/to/package.dsc]`<br><b>Build the package in the current directory using the default builder (debuild)</b>`gbp buildpackage -jauto -us -uc`<br><b>Build a package in a pbuilder environment for Debian Bullseye</b>`DIST=[bullseye] ARCH=[amd64] gbp buildpackage -jauto -us -uc --git-builder=[git-pbuilder]`<br><b>Specify a package to be a source-only upload in the .changes file (see <https://wiki.debian.org/SourceOnlyUpload>)</b>`gbp buildpackage -jauto -us -uc --changes-options=[-S]`<br><b>Import a new upstream release</b>`gbp import-orig --pristine-tar [path/to/package.tar.gz]`


title: TLDR
content:
<b>Restore virtual machine from given backup file on the original storage</b>`qmrestore [path/to/vzdump-qemu-100.vma.lzo] [100]`<br><b>Overwrite existing virtual machine from a given backup file on the original storage</b>`qmrestore [path/to/vzdump-qemu-100.vma.lzo] [100] --force true`<br><b>Restore the virtual machine from a given backup file on specific storage</b>`qmrestore [path/to/vzdump-qemu-100.vma.lzo] [100] --storage [local]`<br><b>Start virtual machine immediately from the backup while restoring in the background (only on Proxmox Backup Server)</b>`qmrestore [path/to/vzdump-qemu-100.vma.lzo] [100] --live-restore true`


title: TLDR
content:
<b>Search for videos on YouTube with thumbnail previews</b>`ytfzf --show-thumbnails [search_pattern]`<br><b>Play only the audio of the first item in a loop</b>`ytfzf --audio-only --auto-select --loop [search_pattern]`<br><b>Download a video from the history</b>`ytfzf --download --choose-from-history`<br><b>Play all the music found in a search</b>`ytfzf --audio-only --select-all [search_pattern]`<br><b>See the trending videos in an external menu</b>`ytfzf --trending --ext-menu [search_pattern]`<br><b>Search on PeerTube instead of YouTube</b>`ytfzf --peertube [search_pattern]`


title: TLDR
content:
<b>Rebuild the filesystem metadata tree (very slow)</b>`sudo btrfs [[resc|rescue]] [[ch|chunk-recover]] [path/to/partition]`<br><b>Fix device size alignment related problems (e.g. unable to mount the filesystem with super total bytes mismatch)</b>`sudo btrfs [[resc|rescue]] [[fix-de|fix-device-size]] [path/to/partition]`<br><b>Recover a corrupted superblock from correct copies (recover the root of filesystem tree)</b>`sudo btrfs [[resc|rescue]] [[s|super-recover]] [path/to/partition]`<br><b>Recover from an interrupted transactions (fixes log replay problems)</b>`sudo btrfs [[resc|rescue]] [[z|zero-log]] [path/to/partition]`<br><b>Create a /dev/btrfs-control control device when mknod is not installed</b>`sudo btrfs [[resc|rescue]] [[c|create-control-device]]`


title: TLDR
content:
<b>List all video devices</b>`v4l2-ctl [[-A|--list-devices]]`<br><b>List supported video formats and resolutions of default video device /dev/video0</b>`v4l2-ctl --list-formats-ext`<br><b>List supported video formats and resolutions of a specific video device</b>`v4l2-ctl --list-formats-ext [[-d|--device]] [path/to/video_device]`<br><b>Get all details of a video device</b>`v4l2-ctl --all [[-d|--device]] [path/to/video_device]`<br><b>Capture a JPEG photo with a specific resolution from video device</b>`v4l2-ctl [[-d|--device]] [path/to/video_device] --set-fmt-video=width=[width],height=[height],pixelformat=MJPG --stream-mmap --stream-to=[path/to/output.jpg] --stream-count=1`<br><b>Capture a raw video stream from video device</b>`v4l2-ctl [[-d|--device]] [path/to/video_device] --set-fmt-video=width=[width],height=[height],pixelformat=[format] --stream-mmap --stream-to=[path/to/output] --stream-count=[number_of_frames_to_capture]`<br><b>List all video device's controls and their values</b>`v4l2-ctl [[-l|--list-ctrls]] [[-d|--device]] [path/to/video_device]`<br><b>Set the value of a video device control</b>`v4l2-ctl [[-d|--device]] [path/to/video_device] [[-c|--set-ctrl]] [control_name]=[value]`


title: TLDR
content:
<b>Put a file or directory under version control, so it will be in the current checkout</b>`fossil add [path/to/file_or_directory]`<br><b>Remove all added files from the current checkout</b>`fossil add --reset`


title: TLDR
content:
<b>Search the package database for a package name</b>`pacstall --search [query]`<br><b>Install a package</b>`pacstall --install [package]`<br><b>Remove a package</b>`pacstall --remove [package]`<br><b>Add a repository to the database (only GitHub and GitLab are supported)</b>`pacstall --add-repo [remote_repository_location]`<br><b>Update pacstall's scripts</b>`pacstall --update`<br><b>Update all packages</b>`pacstall --upgrade`<br><b>Display information about a package</b>`pacstall --cache-info [package]`<br><b>List all installed packages</b>`pacstall --list`


title: TLDR
content:
<b>Print the time and memory usage of a command</b>`runlim [command] [command_arguments]`<br><b>Log statistics to a file instead of stdout</b>`runlim --output-file=[path/to/file] [command] [command_arguments]`<br><b>Limit time to an upper bound (in seconds)</b>`runlim --time-limit=[number] [command] [command_arguments]`<br><b>Limit real-time to an upper bound (in seconds)</b>`runlim --real-time-limit=[number] [command] [command_arguments]`<br><b>Limit space to an upper bound (in MB)</b>`runlim --space-limit=[number] [command] [command_arguments]`


title: TLDR
content:
<b>Display the watchdog status</b>`wdctl`<br><b>Display the watchdog status in a single line in key-value pairs</b>`wdctl [[-O|--oneline]]`<br><b>Display only specific watchdog flags (list is driver specific)</b>`wdctl [[-f|--flags]] [flag_list]`


title: TLDR
content:
<b>Convert a specific installation file to Debian format (.deb extension)</b>`sudo alien [[-d|--to-deb]] [path/to/file]`<br><b>Convert a specific installation file to Red Hat format (.rpm extension)</b>`sudo alien [[-r|--to-rpm]] [path/to/file]`<br><b>Convert a specific installation file to a Slackware installation file (.tgz extension)</b>`sudo alien [[-t|--to-tgz]] [path/to/file]`<br><b>Convert a specific installation file to Debian format and install on the system</b>`sudo alien [[-d|--to-deb]] [[-i|--install]] [path/to/file]`


title: TLDR
content:
<b>List information about loaded eBPF programs</b>`bpftool prog list`<br><b>List eBPF program attachments in the kernel networking subsystem</b>`bpftool net list`<br><b>List all active links</b>`bpftool link list`<br><b>List all raw_tracepoint, tracepoint, kprobe attachments in the system</b>`bpftool perf list`<br><b>List BPF Type Format (BTF) data</b>`bpftool btf list`<br><b>List information about loaded maps</b>`bpftool map list`<br><b>Probe a network device "eth0" for supported eBPF features</b>`bpftool feature probe dev [eth0]`<br><b>Run commands in batch mode from a file</b>`bpftool batch file [myfile]`


title: TLDR
content:
<b>Start bspwm (note that a pre-existing window manager must not be open when this command is run)</b>`bspwm -c [path/to/config]`


title: TLDR
content:
<b>Add a new abbreviation</b>`abbr [[-a|--add]] [abbreviation_name] [command] [command_arguments]`<br><b>Rename an existing abbreviation</b>`abbr --rename [old_name] [new_name]`<br><b>Erase an existing abbreviation</b>`abbr [[-e|--erase]] [abbreviation_name]`<br><b>Import the abbreviations defined on another host over SSH</b>`ssh [host_name] abbr [[-s|--show]] | source`


title: TLDR
content:
<b>Show the status of a running or paused balance operation</b>`sudo btrfs [[b|balance]] status [path/to/btrfs_filesystem]`<br><b>Balance all block groups (slow; rewrites all blocks in filesystem)</b>`sudo btrfs [[b|balance]] start [path/to/btrfs_filesystem]`<br><b>Balance data block groups which are less than 15% utilized, running the operation in the background</b>`sudo btrfs [[b|balance]] start [[--bg|--background]] -dusage=[15] [path/to/btrfs_filesystem]`<br><b>Balance a max of 10 metadata chunks with less than 20% utilization and at least 1 chunk on a given device devid (see btrfs filesystem show)</b>`sudo btrfs [[b|balance]] start -musage=[20],limit=[10],devid=[devid] [path/to/btrfs_filesystem]`<br><b>Convert data blocks to the raid6 and metadata to raid1c3 (see mkfs.btrfs(8) for profiles)</b>`sudo btrfs [[b|balance]] start -dconvert=[raid6] -mconvert=[raid1c3] [path/to/btrfs_filesystem]`<br><b>Convert data blocks to raid1, skipping already converted chunks (e.g. after a previous cancelled conversion operation)</b>`sudo btrfs [[b|balance]] start -dconvert=[raid1],soft [path/to/btrfs_filesystem]`<br><b>Cancel, pause, or resume a running or paused balance operation</b>`sudo btrfs [[b|balance]] [cancel|pause|resume] [path/to/btrfs_filesystem]`


title: TLDR
content:
<b>Create a new version containing all the changes in the current checkout; user will be prompted for a comment</b>`fossil [[ci|commit]]`<br><b>Create a new version containing all the changes in the current checkout, using the specified [m]essage</b>`fossil [[ci|commit]] [[-m|--comment]] "[comment]"`<br><b>Create a new version containing all the changes in the current checkout with a comment read from a specific file</b>`fossil [[ci|commit]] [[-M|--message-file]] [path/to/commit_message_file]`<br><b>Create a new version containing changes from the specified files; user will be prompted for a comment</b>`fossil [[ci|commit]] [path/to/file1 path/to/file2 ...]`


title: TLDR
content:
<b>List files in an archive</b>`atool [[-l|--list]] [path/to/archive.zip]`<br><b>Extract an archive (safely creates a subdirectory if needed)</b>`atool [[-x|--extract]] [archive.tar.gz]`<br><b>Extract an archive to a specific directory</b>`atool [[-X|--extract-to]] [path/to/output_directory] [archive.rar]`<br><b>Display a specific file's content from an archive to stdout (like cat)</b>`atool [[-c|--cat]] [archive.tar] [path/to/file_in_archive.txt]`<br><b>Create a new archive from specified files and/or directories</b>`atool [[-a|--add]] [new_archive.zip] [path/to/file1 path/to/file2 ...]`<br><b>List files in an archive and send the output through a pager</b>`atool [[-l|--list]] [[-p|--pager]] [large_archive.tar.bz2]`<br><b>Extract multiple archives at once (each to its own subdirectory if needed)</b>`atool [[-x|--extract]] [[-e|--each]] [archive1.zip] [archive2.tar.gz] [*.rar]`<br><b>Repack an archive from one format to another (e.g., .tar.gz to .tar.7z)</b>`atool [[-r|--repack]] [old_archive.tar.gz] [new_archive.tar.7z]`


title: TLDR
content:
<b>Remove a file or directory from Fossil version control</b>`fossil [[rm|delete]] [path/to/file_or_directory]`<br><b>Remove a file or directory from Fossil version control, and also delete it from the disk</b>`fossil [[rm|delete]] --hard [path/to/file_or_directory]`<br><b>Re-add all previously removed and uncommitted files to Fossil version control</b>`fossil [[rm|delete]] --reset`


title: TLDR
content:
<b>[l]isten on a specified [p]ort and print any data received</b>`cryptcat -k [password] -l -p [port]`<br><b>Connect to a certain port</b>`cryptcat -k [password] [ip_address] [port]`<br><b>Specify the timeout ([w])</b>`cryptcat -k [password] -w [timeout_in_seconds] [ip_address] [port]`<br><b>Scan ([z]) the open ports of a specified host</b>`cryptcat -v -z [ip_address] [port]`<br><b>Act as proxy and forward data from a local TCP port to the given remote host</b>`cryptcat -k [password] -l -p [local_port] | cryptcat -k [password] [hostname] [remote_port]`


title: TLDR
content:
<b>Download files from a mega.nz link into the current directory</b>`megatools-dl [https://mega.nz/...]`<br><b>Download files from a mega.nz link into a specific directory</b>`megatools-dl --path [path/to/directory] [https://mega.nz/...]`<br><b>Interactively choose which files to download</b>`megatools-dl --choose-files [https://mega.nz/...]`<br><b>Limit the download speed in KiB/s</b>`megatools-dl --limit-speed [speed] [https://mega.nz/...]`


title: TLDR
content:
<b>Open a text file</b>`kwrite [path/to/file]`<br><b>Open multiple text files</b>`kwrite [file1 file2 ...]`<br><b>Open a text file with a specific encoding</b>`kwrite --encoding [UTF-8] [path/to/file]`<br><b>Open a text file and navigate to a specific line and column</b>`kwrite --line [line_number] --column [column_number] [path/to/file]`


title: TLDR
content:
<b>Start the default shell as fakeroot</b>`fakeroot`<br><b>Run a command as fakeroot</b>`fakeroot -- [command] [command_arguments]`<br><b>Run a command as fakeroot and [s]ave the environment to a file on exit</b>`fakeroot -s [path/to/file] -- [command] [command_arguments]`<br><b>Load a fakeroot environment and run a command as fakeroot</b>`fakeroot -i [path/to/file] -- [command] [command_arguments]`<br><b>Run a command keeping the real ownership of files instead of pretending they are owned by root</b>`fakeroot [[-u|--unknown-is-real]] -- [command] [command_arguments]`<br><b>Display help</b>`fakeroot [[-h|--help]]`


title: TLDR
content:
<b>Display limit values for all current resources for the running parent process</b>`prlimit`<br><b>Display limit values for all current resources of a specified process</b>`prlimit [[-p|--pid]] [pid_number]`<br><b>Run a command with a custom number of open files limit</b>`prlimit [[-n|--nofile=]][10] [command]`


title: TLDR
content:
<b>Start a rolling restart of a resource</b>`kubectl rollout restart [resource_type]/[resource_name]`<br><b>Watch the rolling update status of a resource</b>`kubectl rollout status [resource_type]/[resource_name]`<br><b>Roll back a resource to the previous revision</b>`kubectl rollout undo [resource_type]/[resource_name]`<br><b>View the rollout history of a resource</b>`kubectl rollout history [resource_type]/[resource_name]`


title: TLDR
content:
<b>Open the specified mailbox</b>`neomutt -f [path/to/mailbox]`<br><b>Start writing an email and specify a subject and a cc recipient</b>`neomutt -s "[subject]" -c [cc@example.com] [recipient@example.com]`<br><b>Send an email with files attached</b>`neomutt -a [path/to/file1 path/to/file2 ...] -- [recipient@example.com]`<br><b>Specify a file to include as the message body</b>`neomutt -i [path/to/file] [recipient@example.com]`<br><b>Specify a draft file containing the header and the body of the message, in RFC 5322 format</b>`neomutt -H [path/to/file] [recipient@example.com]`


title: TLDR
content:
<b>Start gpg-tui</b>`gpg-tui`<br><b>Start gpg-tui with color and ASCII armored output</b>`gpg-tui --style [colored] --armor`<br><b>Quit gpg-tui</b>`<q>`<br><b>Interactively generate a new key</b>`<g>`<br><b>Export the selected key</b>`<x>`<br><b>Set the detail level for the selected key</b>`<1>|<2>|<3>`<br><b>Refresh gpg-tui</b>`<r>`<br><b>Display help in gpg-tui</b>`<?>`


title: TLDR
content:
<b>Create a new Azure Pipeline (YAML based)</b>`az pipelines create [[--org|--organization]] [organization_url] [[-p|--project]] [project_name] --name [pipeline_name] --description [description] --repository [repository_name] --branch [branch_name]`<br><b>Delete a specific pipeline</b>`az pipelines delete [[--org|--organization]] [organization_url] [[-p|--project]] [project_name] --id [pipeline_id]`<br><b>List pipelines</b>`az pipelines list [[--org|--organization]] [organization_url] [[-p|--project]] [project_name]`<br><b>Enqueue a specific pipeline to run</b>`az pipelines run [[--org|--organization]] [organization_url] [[-p|--project]] [project_name] --name [pipeline_name]`<br><b>Get the details of a specific pipeline</b>`az pipelines show [[--org|--organization]] [organization_url] [[-p|--project]] [project_name] --name [pipeline_name]`<br><b>Update a specific pipeline</b>`az pipelines update [[--org|--organization]] [organization_url] [[-p|--project]] [project_name] --name [pipeline_name] --new-name [pipeline_new_name] --new-folder-path [user1/production_pipelines]`<br><b>List all agents in a pool</b>`az pipelines agent list [[--org|--organization]] [organization_url] --pool-id [agent_pool]`


title: TLDR
content:
<b>Configure ia with API keys (some functions won't work without this step)</b>`ia configure`<br><b>Upload one or more items to archive.org</b>`ia upload [identifier] [path/to/file] --metadata="[mediatype:data]" --metadata="[title:example]"`<br><b>Download one or more items from archive.org</b>`ia download [item]`<br><b>Delete one or more items from archive.org</b>`ia delete [identifier] [file]`<br><b>Search on archive.org, returning results as JSON</b>`ia search '[subject:"subject" collection:collection]'`


title: TLDR
content:
<b>Assemble an IR file</b>`llvm-as -o [path/to/out.bc] [path/to/source.ll]`<br><b>Assemble an IR file and include a module hash in the produced Bitcode file</b>`llvm-as --module-hash -o [path/to/out.bc] [path/to/source.ll]`<br><b>Read an IR file from stdin and assemble it</b>`cat [path/to/source.ll] | llvm-as -o [path/to/out.bc]`


title: TLDR
content:
<b>Use current directory as the repository, initialize a SFTP storage and encrypt the storage with a password</b>`duplicacy init [[-e|-encrypt]] [snapshot_id] [sftp://user@192.168.2.100/path/to/storage]/`<br><b>Save a snapshot of the repository to the default storage</b>`duplicacy backup`<br><b>List snapshots of current repository</b>`duplicacy list`<br><b>Restore the repository to a previously saved snapshot</b>`duplicacy restore -r [revision]`<br><b>Check the integrity of snapshots</b>`duplicacy check`<br><b>Add another storage to be used for the existing repository</b>`duplicacy add [storage_name] [snapshot_id] [storage_url]`<br><b>Prune a specific revision of snapshot</b>`duplicacy prune -r [revision]`<br><b>Prune revisions, keeping one revision every n days for all revisions older than m days</b>`duplicacy prune -keep [n:m]`


title: TLDR
content:
<b>Start a REPL (interactive shell)</b>`kotlinc`<br><b>Compile a Kotlin file</b>`kotlinc [path/to/file.kt]`<br><b>Compile several Kotlin files</b>`kotlinc [path/to/file1.kt path/to/file2.kt ...]`<br><b>Execute a specific Kotlin Script file</b>`kotlinc -script [path/to/file.kts]`<br><b>Compile a Kotlin file into a self contained jar file with the Kotlin runtime library included</b>`kotlinc [path/to/file.kt] -include-runtime -d [path/to/file.jar]`


title: TLDR
content:
<b>Install a package, automatically installing dependencies</b>`raco pkg install --auto [package_source]`<br><b>Install the current directory as a package</b>`raco pkg install`<br><b>Build (or rebuild) bytecode, documentation, executables, and metadata indexes for collections</b>`raco setup [collection1 collection2 ...]`<br><b>Run tests in files</b>`raco test [path/to/tests1.rkt path/to/tests2.rkt ...]`<br><b>Search local documentation</b>`raco docs [search_terms]`<br><b>Display help</b>`raco help`


title: TLDR
content:
<b>Create a new receipt rule set</b>`aws ses create-receipt-rule-set --rule-set-name [rule_set_name] --generate-cli-skeleton`<br><b>Describe the active receipt rule set</b>`aws ses describe-active-receipt-rule-set --generate-cli-skeletion`<br><b>Describe a specific receipt rule</b>`aws ses describe-receipt-rule --rule-set-name [rule_set_name] --rule-name [rule_name] --generate-cli-skeleton`<br><b>List all receipt rule sets</b>`aws ses list-receipt-rule-sets --starting-token [token_string] --max-items [integer] --generate-cli-skeleton`<br><b>Delete a specific receipt rule set (the currently active rule set cannot be deleted)</b>`aws ses delete-receipt-rule-set --rule-set-name [rule_set_name] --generate-cli-skeleton`<br><b>Delete a specific receipt rule</b>`aws ses delete-receipt-rule --rule-set-name [rule_set_name] --rule-name [rule_name] --generate-cli-skeleton`<br><b>Send an email</b>`aws ses send-email --from [from_address] --destination "ToAddresses=[addresses]" --message "Subject={Data=[subject_text],Charset=utf8},Body={Text={Data=[body_text],Charset=utf8},Html={Data=[message_body_containing_html],Charset=utf8]"`<br><b>Display help for a specific SES subcommand</b>`aws ses [subcommand] help`


title: TLDR
content:
<b>Scan a Docker image for vulnerabilities and exposed secrets</b>`trivy image [image:tag]`<br><b>Scan a Docker image filtering the output by severity</b>`trivy image [[-s|--severity]] [HIGH,CRITICAL] [alpine:3.15]`<br><b>Scan a Docker image ignoring any unfixed/unpatched vulnerabilities</b>`trivy image --ignore-unfixed [alpine:3.15]`<br><b>Scan the filesystem for vulnerabilities and misconfigurations</b>`trivy fs --security-checks [vuln,config] [path/to/project_directory]`<br><b>Scan a IaC (Terraform, CloudFormation, ARM, Helm and Dockerfile) directory for misconfigurations</b>`trivy config [path/to/iac_directory]`<br><b>Scan a local or remote Git repository for vulnerabilities</b>`trivy repo [path/to/local_repository_directory|remote_repository_URL]`<br><b>Scan a Git repository up to a specific commit hash</b>`trivy repo --commit [commit_hash] [repository]`<br><b>Generate output with a SARIF template</b>`trivy image [[-f|--format]] [template] [[-t|--template]] "[@sarif.tpl]" [[-o|--output]] [path/to/report.sarif] [image:tag]`


title: TLDR
content:
<b>Print a balance report showing totals</b>`ledger balance --file [path/to/ledger.journal]`<br><b>List all postings in Expenses ordered by amount</b>`ledger register [expenses] --sorted [amount]`<br><b>Print total Expenses other than Drinks and Food</b>`ledger balance [Expenses] and not ([Drinks] or [Food])`<br><b>Print a budget report</b>`ledger budget`<br><b>Print summary information about all the postings</b>`ledger stats`


title: TLDR
content:
<b>List releases in a Gitlab repository, limited to 30 items</b>`glab release list`<br><b>Display information about a specific release</b>`glab release view [tag]`<br><b>Create a new release</b>`glab release create [tag]`<br><b>Delete a specific release</b>`glab release delete [tag]`<br><b>Download assets from a specific release</b>`glab release download [tag]`<br><b>Upload assets to a specific release</b>`glab release upload [tag] [path/to/file1 path/to/file2 ...]`


title: TLDR
content:
<b>Check if a version string respects the semantic versioning format (prints an empty string if it does not match)</b>`semver [1.2]`<br><b>Convert a version string to the semantic versioning format</b>`semver --coerce [1.2]`<br><b>Test if 1.2.3 matches the ^1.0 range (prints an empty string if it does not match)</b>`semver [1.2.3] --range "[^1.0]"`<br><b>Test with multiple ranges</b>`semver [1.2.3] --range "[>=1.0]" "[<2.0]"`<br><b>Test multiple version strings and return only the ones that match</b>`semver [1.2.3] [2.0.0] --range "[^1.0]"`


title: TLDR
content:
<b>Create a merge request</b>`glab mr create`<br><b>Check out a specific merge request locally</b>`glab mr checkout [mr_number]`<br><b>View the changes made in the merge request</b>`glab mr diff`<br><b>Approve the merge request for the current branch</b>`glab mr approve`<br><b>Merge the merge request associated with the current branch interactively</b>`glab mr merge`<br><b>Edit a merge request interactively</b>`glab mr update`<br><b>Edit the target branch of a merge request</b>`glab mr update --target-branch [branch_name]`


title: TLDR
content:
<b>Start a new named session</b>`zellij [[-s|--session]] [name]`<br><b>List existing sessions</b>`zellij [[ls|list-sessions]]`<br><b>Attach to the most recently used session</b>`zellij [[a|attach]]`<br><b>Open a new pane (inside a zellij session)</b>`<Alt n>`<br><b>Detach from the current session (inside a zellij session)</b>`<Ctrl o><d>`


title: TLDR
content:
<b>Start ORCA with an empty workspace</b>`orca-c`<br><b>Start ORCA and open a specific file</b>`orca-c [path/to/file.orca]`<br><b>Start ORCA and set a specific tempo (defaults to 120)</b>`orca-c --bpm [beats_per_minute]`<br><b>Start ORCA and set the size of the grid</b>`orca-c --initial-size [columns]x[rows]`<br><b>Start ORCA and set the maximum number of undo steps (defaults to 100)</b>`orca-c --undo-limit [limit]`<br><b>Show the main menu inside of ORCA</b>`<F1>`<br><b>Show all shortcuts inside of ORCA</b>`<?>`<br><b>Show all ORCA operators inside of ORCA</b>`<Ctrl g>`


title: TLDR
content:
<b>Print all configurations</b>`az config get`<br><b>Print configurations for a specific section</b>`az config get [section_name]`<br><b>Set a configuration</b>`az config set [configuration_name]=[value]`<br><b>Unset a configuration</b>`az config unset [configuration_name]`


title: TLDR
content:
<b>Change an author's email and name across the whole Git repository</b>`git reauthor [[-o|--old-email]] [old@example.com] [[-e|--correct-email]] [new@example.com] [[-n|--correct-name]] "[name]"`<br><b>Change the email and name to the ones defined in the Git config</b>`git reauthor [[-o|--old-email]] [old@example.com] [[-c|--use-config]]`<br><b>Change the email and name of all commits, regardless of their original author</b>`git reauthor [[-a|--all]] [[-e|--correct-email]] [name@example.com] [[-n|--correct-name]] [name]`


title: TLDR
content:
<b>Generate and show an execution plan</b>`terragrunt plan`<br><b>Build or change infrastructure</b>`terragrunt apply`<br><b>Show current deployment (from state)</b>`terragrunt show`<br><b>Show module output values</b>`terragrunt output`<br><b>Destroy Terraform-managed infrastructure</b>`terragrunt destroy`<br><b>Build or change infrastructure from a tree of Terragrunt modules (stack)</b>`terragrunt run-all apply`


title: TLDR
content:
<b>Start listening on a specific port</b>`rc -lp [port]`<br><b>Start a reverse shell</b>`rc [host] [port] -r [shell]`


title: TLDR
content:
<b>Format Go source files in the current directory</b>`go fmt`<br><b>Format a specific Go package in your import path ($GOPATH/src)</b>`go fmt [path/to/package]`<br><b>Format the package in the current directory and all subdirectories (note the ...)</b>`go fmt [./...]`<br><b>Print what format commands would've been run, without modifying anything</b>`go fmt -n`<br><b>Print which format commands are run as they are run</b>`go fmt -x`


title: TLDR
content:
<b>Initialize the email database, optionally specifying the Maildir directory and email addresses</b>`mu init --maildir=[path/to/directory] --my-address=[name@example.com]`<br><b>Index new emails</b>`mu index`<br><b>Find messages using a specific keyword (in message body, subject, sender, ...)</b>`mu find [keyword]`<br><b>Find messages to Alice with subject jellyfish containing the words apples or oranges</b>`mu find to:[alice] subject:[jellyfish] [apples] OR [oranges]`<br><b>Find unread messages about words starting with soc (the * only works at the end of the search term) in the Sent Items folder</b>`mu find 'subject:[soc]*' flag:[unread] maildir:'/[Sent Items]'`<br><b>Find messages from Sam with attached images, between 2 KiB and 2 MiB, written in 2021</b>`mu find 'mime:[image/*] size:[2k..2m] date:[20210101..20211231] from:[sam]`<br><b>List contacts with Bob in either name or email address</b>`mu cfind [Bob]`


title: TLDR
content:
<b>Clone an existing repository into a specific directory (defaults to the repository name)</b>`dolt clone [repository_url] [path/to/directory]`<br><b>Clone an existing repository and add a specific remote (defaults to origin)</b>`dolt clone --remote [remote_name] [repository_url]`<br><b>Clone an existing repository only fetching a specific branch (defaults to all branches)</b>`dolt clone [[-b|--branch]] [branch_name] [repository_url]`<br><b>Clone a repository, using an AWS region (uses the profile's default region if none is provided)</b>`dolt clone --aws-region [region_name] [repository_url]`<br><b>Clone a repository, using an AWS credentials file</b>`dolt clone --aws-creds-file [credentials_file] [repository_url]`<br><b>Clone a repository, using an AWS credentials profile (uses the default profile if none is provided)</b>`dolt clone --aws-creds-profile [profile_name] [repository_url]`<br><b>Clone a repository, using an AWS credentials type</b>`dolt clone --aws-creds-type [credentials_type] [repository_url]`


title: TLDR
content:
<b>Scaffold a tye.yaml file representing the application</b>`tye init`<br><b>Run an application locally</b>`tye run`<br><b>Build an application's containers</b>`tye build`<br><b>Push an application's containers</b>`tye push`<br><b>Deploy an application to Kubernetes</b>`tye deploy`<br><b>Remove a deployed application from Kubernetes</b>`tye undeploy`


title: TLDR
content:
<b>List all available repositories from which a package can be installed</b>`tlmgr candidates [package]`


title: TLDR
content:
<b>Compile a bitcode or IR file to an assembly file with the same base name</b>`llc [path/to/file.ll]`<br><b>Enable all optimizations</b>`llc -O3 [path/to/input.ll]`<br><b>Output assembly to a specific file</b>`llc --output [path/to/output.s]`<br><b>Emit fully relocatable, position independent code</b>`llc -relocation-model=pic [path/to/input.ll]`


title: TLDR
content:
<b>Display all information from YubiKey</b>`ykinfo -a`<br><b>Get only serial in decimal from YubiKey</b>`ykinfo -s -q`<br><b>Get capabilities from YubiKey</b>`ykinfo -c`


title: TLDR
content:
<b>Render an image or animated GIF</b>`viu [path/to/file]`<br><b>Render an image or GIF from the internet using curl</b>`curl [[-s|--silent]] [https://example.com/image.png] | viu -`<br><b>Render an image with a transparent background</b>`viu [[-t|--transparent]] [path/to/file]`<br><b>Render an image with a specific width and height in pixels</b>`viu [[-w|--width]] [width] [[-h|--height]] [height] [path/to/file]`<br><b>Render an image or GIF and display its file name</b>`viu [[-n|--name]] [path/to/file]`


title: TLDR
content:
<b>Open a new terminal</b>`kitty`<br><b>Open a terminal with the specified title for the window</b>`kitty --title "[title]"`<br><b>Start the theme-chooser builtin</b>`kitty +kitten themes`<br><b>Display an image in the terminal</b>`kitty +kitten icat [path/to/image]`<br><b>Copy the contents of stdin to the clipboard</b>`echo [example] | kitty +kitten clipboard`


title: TLDR
content:
<b>Initialize git-secret in a local repository</b>`git secret init`<br><b>Grant access to the current Git user's email</b>`git secret tell -m`<br><b>Grant access by email</b>`git secret tell [email]`<br><b>Revoke access by email</b>`git secret killperson [email]`<br><b>List emails with access to secrets</b>`git secret whoknows`<br><b>Register a secret file</b>`git secret add [path/to/file]`<br><b>Encrypt secrets</b>`git secret hide`<br><b>Decrypt secret files</b>`git secret reveal`


title: TLDR
content:
<b>Bundle all plugins for static loading</b>`antibody < [~/.zsh_plugins.txt] bundle > [~/.zsh_plugins.sh]`<br><b>Update all bundles</b>`antibody update`<br><b>List all installed plugins</b>`antibody list`


title: TLDR
content:
<b>List workloads currently running in the cluster on specific namespace</b>`fluxctl --k8s-fwd-ns=[namespace] list-workloads`<br><b>Show deployed and available images</b>`fluxctl list-images`<br><b>Synchronize the cluster with the Git repository</b>`fluxctl sync`<br><b>Turn on automatic deployment for a workload</b>`fluxctl automate`


title: TLDR
content:
<b>Compile and begin debugging the main package in the current directory (by default, with no arguments)</b>`dlv debug`<br><b>Compile and begin debugging a specific package</b>`dlv debug [package] [arguments]`<br><b>Compile a test binary and begin debugging the compiled program</b>`dlv test`<br><b>Connect to a headless debug server</b>`dlv connect [ip_address]`<br><b>Attach to a running process and begin debugging</b>`dlv attach [pid]`<br><b>Compile and begin tracing a program</b>`dlv trace [package] --regexp '[regex]'`


title: TLDR
content:
<b>Open a new file in JOE</b>`joe`<br><b>Open a specific file</b>`joe [path/to/file]`<br><b>Open a specific file, positioning the cursor at the specified line</b>`joe +[line] [path/to/file]`<br><b>Open a specific file in read-only mode</b>`joe -rdonly [path/to/file]`


title: TLDR
content:
<b>Build an appliance</b>`kiwi-ng system build --description=[path/to/directory] --target-dir=[path/to/directory]`<br><b>Show build result of built appliance</b>`kiwi-ng result list --target-dir=[path/to/directory]`<br><b>Display help</b>`kiwi-ng help`<br><b>Display version</b>`kiwi-ng -v`


title: TLDR
content:
<b>Apply a manifest</b>`puppet apply [path/to/manifest]`<br><b>Execute puppet code</b>`puppet apply --execute [code]`<br><b>Use a specific module and hiera configuration file</b>`puppet apply --modulepath [path/to/directory] --hiera_config [path/to/file] [path/to/manifest]`


title: TLDR
content:
<b>Combine labels equal in their high-order bits</b>`ipaggmanip [[-p|--prefix]] [16] [path/to/file]`<br><b>Remove labels with a count smaller than a given number of bytes and output a random sample of such labels</b>`ipaggmanip --cut-smaller [100] --cull-labels [5] [path/to/file]`<br><b>Replace each label's count with 1 if it is non-zero</b>`ipaggmanip [[-P|--posterize]] [path/to/file]`


title: TLDR
content:
<b>List startable tasks</b>`todo list --startable`<br><b>Add a new task to the work list</b>`todo new [thing_to_do] --list [work]`<br><b>Add a location to a task with a given ID</b>`todo edit --location [location_name] [task_id]`<br><b>Show details about a task</b>`todo show [task_id]`<br><b>Mark tasks with the specified IDs as completed</b>`todo done [task_id1 task_id2 ...]`<br><b>Delete a task</b>`todo delete [task_id]`<br><b>Delete done tasks and reset the IDs of the remaining tasks</b>`todo flush`


title: TLDR
content:
<b>Print the lines in the specified CSV file that match an SQL query to stdout</b>`textql -sql "[SELECT * FROM filename]" [path/to/filename.csv]`<br><b>Query a TSV file</b>`textql -dlm=tab -sql "[SELECT * FROM filename]" [path/to/filename.tsv]`<br><b>Query file with header row</b>`textql -dlm=[delimiter] -header -sql "[SELECT * FROM filename]" [path/to/filename.csv]`<br><b>Read data from stdin</b>`cat [path/to/file] | textql -sql "[SELECT * FROM stdin]"`<br><b>Join two files on a specified common column</b>`textql -header -sql "SELECT * FROM [path/to/file1] JOIN [file2] ON [path/to/file1].[c1] = [file2].[c1] LIMIT [10]" -output-header [path/to/file1.csv] [path/to/file2.csv]`<br><b>Format output using an output delimiter with an output header line</b>`textql -output-dlm=[delimiter] -output-header -sql "SELECT [column] AS [alias] FROM [filename]" [path/to/filename.csv]`


title: TLDR
content:
<b>Download a blob to a file path specifying a source container</b>`az storage blob download --account-name [account_name] --account-key [account_key] [[-c|--container-name]] [container_name] [[-n|--name]] [blob_name] [[-f|--file]] [path/to/file]`<br><b>Download blobs from a blob container recursively</b>`az storage blob download-batch --account-name [account_name] --account-key [account_key] [[-s|--source]] [container_name] --pattern [filename_regex] [[-d|--destination]] [path/to/destination]`<br><b>Upload a local file to blob storage</b>`az storage blob upload --account-name [account_name] --account-key [account_key] [[-c|--container-name]] [container_name] [[-n|--name]] [blob_name] [[-f|--file]] [path/to/file]`<br><b>Delete a blob object</b>`az storage blob delete --account-name [account_name] --account-key [account_key] [[-c|--container-name]] [container_name] [[-n|--name]] [blob_name]`<br><b>Generate a shared access signature for a blob</b>`az storage blob generate-sas --account-name [account_name] --account-key [account_key] [[-c|--container-name]] [container_name] [[-n|--name]] [blob_name] --permissions [permission_set] --expiry [Y-m-d'T'H:M'Z'] --https-only`


title: TLDR
content:
<b>Update existing file or create a new History.md file with the commit messages since the latest Git tag</b>`git changelog`<br><b>List commits from the current version</b>`git changelog [[-l|--list]]`<br><b>List a range of commits from the tag named 2.1.0 to now</b>`git changelog [[-l|--list]] [[-s|--start-tag]] [2.1.0]`<br><b>List pretty formatted range of commits between the tag 0.5.0 and the tag 1.0.0</b>`git changelog [[-s|--start-tag]] [0.5.0] [[-f|--final-tag]] [1.0.0]`<br><b>List pretty formatted range of commits between the commit 0b97430 and the tag 1.0.0</b>`git changelog --start-commit [0b97430] [[-f|--final-tag]] [1.0.0]`<br><b>Specify CHANGELOG.md as the output file</b>`git changelog [CHANGELOG.md]`<br><b>Replace contents of current changelog file entirely</b>`git changelog [[-p|--prune-old]]`


title: TLDR
content:
<b>Get balance of the account associated with the current context</b>`doctl balance [[g|get]]`<br><b>Get the balance of an account associated with an access token</b>`doctl balance [[g|get]] [[-t|--access-token]] [access_token]`<br><b>Get the balance of an account associated with a specified context</b>`doctl balance [[g|get]] --context`


title: TLDR
content:
<b>Play the specified file or URL</b>`mplayer [path/to/file|url]`<br><b>Play multiple files</b>`mplayer [path/to/file1 path/to/file2 ...]`<br><b>Play a specific file repeatedly</b>`mplayer -loop [0] [path/to/file]`<br><b>Pause playback</b>`<Space>`<br><b>Quit mplayer</b>`<Esc>`<br><b>Seek backward or forward 10 seconds</b>`[<ArrowLeft>|<ArrowRight>]`


title: TLDR
content:
<b>Replace a sensitive string in all files</b>`git filter-repo --replace-text <(echo '[find]==>[replacement]')`<br><b>Extract a single folder, keeping history</b>`git filter-repo --path [path/to/folder]`<br><b>Remove a single folder, keeping history</b>`git filter-repo --path [path/to/folder] --invert-paths`<br><b>Move everything from sub-folder one level up</b>`git filter-repo --path-rename [path/to/folder]/:`


title: TLDR
content:
<b>Change the committer and author of a commit</b>`git blame-someone-else "[author <someone@example.com>]" [commit]`


title: TLDR
content:
<b>Run tests for a configuration file</b>`smalltalkci [path/to/.smalltalk.ston]`<br><b>Run tests for the .smalltalk.ston configuration in the current directory</b>`smalltalkci`<br><b>Debug tests in headful mode (show VM window)</b>`smalltalkci --headful`<br><b>Download and prepare a well-known smalltalk image for the tests</b>`smalltalkci --smalltalk [Squeak64-Trunk]`<br><b>Specify a custom Smalltalk image and VM</b>`smalltalkci --image [path/to/Smalltalk.image] --vm [path/to/vm]`<br><b>Clean up caches and delete builds</b>`smalltalkci --clean`


title: TLDR
content:
<b>Show lint errors in a file</b>`pylint [path/to/file.py]`<br><b>Lint a package or module (must be importable; no .py suffix)</b>`pylint [package_or_module]`<br><b>Lint a package from a directory path (must contain an __init__.py file)</b>`pylint [path/to/directory]`<br><b>Lint a file and use a configuration file (usually named pylintrc)</b>`pylint --rcfile [path/to/pylintrc] [path/to/file.py]`<br><b>Lint a file and disable a specific error code</b>`pylint --disable [C,W,no-error,design] [path/to/file]`


title: TLDR
content:
<b>Name a hash</b>`nth [[-t|--text]] [5f4dcc3b5aa765d61d8327deb882cf99]`<br><b>Name hashes in a file</b>`nth [[-f|--file]] [path/to/hashes]`<br><b>Print in JSON format</b>`nth [[-t|--text]] [5f4dcc3b5aa765d61d8327deb882cf99] [[-g|--greppable]]`<br><b>Decode hash in Base64 before naming it</b>`nth [[-t|--text]] [NWY0ZGNjM2I1YWE3NjVkNjFkODMyN2RlYjg4MmNmOTkK] [[-b64|--base64]]`


title: TLDR
content:
<b>Create an App Configuration</b>`az appconfig create [[-n|--name]] [name] [[-g|--resource-group]] [group_name] [[-l|--location]] [location]`<br><b>Delete a specific App Configuration</b>`az appconfig delete [[-g|--resource-group]] [rg_name] [[-n|--name]] [appconfig_name]`<br><b>List all App Configurations under the current subscription</b>`az appconfig list`<br><b>List all App Configurations under a specific resource group</b>`az appconfig list [[-g|--resource-group]] [rg_name]`<br><b>Show properties of an App Configuration</b>`az appconfig show [[-n|--name]] [appconfig_name]`<br><b>Update a specific App Configuration</b>`az appconfig update [[-g|--resource-group]] [rg_name] [[-n|--name]] [appconfig_name]`


title: TLDR
content:
<b>Start the server and serve the rendered README file of a current directory</b>`grip`<br><b>Start the server and serve a specific Markdown file</b>`grip [path/to/file.md]`<br><b>Start the server and open the README file of the current directory in the browser</b>`grip [[-b|--browser]]`<br><b>Start the server in the specified port and serve the rendered README file of the current directory</b>`grip [port]`


title: TLDR
content:
<b>Execute a bitcode or IR file</b>`lli [path/to/file.ll]`<br><b>Execute with command-line arguments</b>`lli [path/to/file.ll] [argument1 argument2 ...]`<br><b>Enable all optimizations</b>`lli -O3 [path/to/file.ll]`<br><b>Load a dynamic library before linking</b>`lli --dlopen=[path/to/library.dll] [path/to/file.ll]`


title: TLDR
content:
<b>Update the Maza database</b>`maza update`<br><b>Start Maza</b>`sudo maza start`<br><b>Stop Maza</b>`sudo maza stop`<br><b>Show the status of Maza</b>`maza status`


title: TLDR
content:
<b>Update the database to a specified migration</b>`dotnet ef database update [migration]`<br><b>Drop the database</b>`dotnet ef database drop`<br><b>List available DbContext types</b>`dotnet ef dbcontext list`<br><b>Generate code for a DbContext and entity types for a database</b>`dotnet ef dbcontext scaffold [connection_string] [provider]`<br><b>Add a new migration</b>`dotnet ef migrations add [name]`<br><b>Remove the last migration, rolling back the code changes that were done for the latest migration</b>`dotnet ef migrations remove`<br><b>List available migrations</b>`dotnet ef migrations list`<br><b>Generate an SQL script from migrations range</b>`dotnet ef migrations script [from_migration] [to_migration]`


title: TLDR
content:
<b>Install a package and its dependencies</b>`sudo tlmgr install [package]`<br><b>Reinstall a package</b>`sudo tlmgr install --reinstall [package]`<br><b>Simulate installing a package without making any changes</b>`tlmgr install --dry-run [package]`<br><b>Install a package without its dependencies</b>`sudo tlmgr install --no-depends [package]`<br><b>Install a package from a specific file</b>`sudo tlmgr install --file [path/to/package]`


title: TLDR
content:
<b>Run with concurrent users and a specified amount of requests per second</b>`loadtest [[-c|--concurrency]] [10] [[--rps|--requestsPerSecond]] [200] [https://example.com]`<br><b>Run with a custom HTTP header</b>`loadtest --headers "[accept:text/plain;text-html]" [https://example.com]`<br><b>Run with a specific HTTP method</b>`loadtest [[-m|--method]] [GET] [https://example.com]`


title: TLDR
content:
<b>Transpile a specified input file and output to stdout</b>`swc [path/to/file]`<br><b>Transpile the input file every time it is changed</b>`swc [path/to/file] --watch`<br><b>Transpile a specified input file and output to a specific file</b>`swc [path/to/input_file] --out-file [path/to/output_file]`<br><b>Transpile a specified input directory and output to a specific directory</b>`swc [path/to/input_directory] --out-dir [path/to/output_directory]`<br><b>Transpile a specified input directory using a specific configuration file</b>`swc [path/to/input_directory] --config-file [path/to/.swcrc]`<br><b>Ignore files in a directory specified using glob path</b>`swc [path/to/input_directory] --ignore [path/to/ignored_file1 path/to/ignored_file2 ...]`


title: TLDR
content:
<b>Display statistics for a PDF file</b>`pdf-parser [[-a|--stats]] [path/to/file.pdf]`<br><b>Display objects of a specific type (/Font, /URI, ...) in a PDF file</b>`pdf-parser [[-t|--type]] [/object_type] [path/to/file.pdf]`<br><b>Search for strings in indirect objects</b>`pdf-parser [[-s|--search]] [search_string] [path/to/file.pdf]`


title: TLDR
content:
<h2>Test if a given variable is equal/not equal to the specified string</h2>`[[ $[variable] [==|!=] "[string]" ]]`<br><h2>Test if a given string conforms the specified glob/regex</h2>`[[ $[variable] [==|=~] [pattern] ]]`<br><h2>Test if a given variable is [eq]ual/[n]ot [e]qual/[g]reater [t]han/[l]ess [t]han/[g]reater than or [e]qual/[l]ess than or [e]qual to the specified number</h2>`[[ $[variable] -[eq|ne|gt|lt|ge|le] [integer] ]]`<br><h2>Test if the specified variable has a [n]on-empty value</h2>`[[ -n $[variable] ]]`<br><h2>Test if the specified variable has an empty value</h2>`[[ -z $[variable] ]]`<br><h2>Test if the specified [f]ile exists</h2>`[[ -f [path/to/file] ]]`<br><h2>Test if the specified [d]irectory exists</h2>`[[ -d [path/to/directory] ]]`<br><h2>Test if the specified file or directory [e]xists</h2>`[[ -e [path/to/file_or_directory] ]]`


title: TLDR
content:
<h2>Test if a given variable is equal/not equal to the specified string</h2>`[ "$[variable]" [==|!=] "[string]" ]`<br><h2>Test if a given variable is [eq]ual/[n]ot [e]qual/[g]reater [t]han/[l]ess [t]han/[g]reater than or [e]qual/[l]ess than or [e]qual to the specified number</h2>`[ "$[variable]" -[eq|ne|gt|lt|ge|le] [integer] ]`<br><h2>Test if the specified variable has a [n]on-empty value</h2>`[ -n "$[variable]" ]`<br><h2>Test if the specified variable has an empty value</h2>`[ -z "$[variable]" ]`<br><h2>Test if the specified [f]ile exists</h2>`[ -f [path/to/file] ]`<br><h2>Test if the specified [d]irectory exists</h2>`[ -d [path/to/directory] ]`<br><h2>Test if the specified file or directory [e]xists</h2>`[ -e [path/to/file_or_directory] ]`


title: TLDR
content:
<b>Log in with an interactive prompt</b>`mozillavpn login`<br><b>Connect to Mozilla VPN</b>`mozillavpn activate`<br><b>Display the connection status</b>`mozillavpn status`<br><b>List available servers</b>`mozillavpn servers`<br><b>Select a specific server</b>`mozillavpn select [server_name]`<br><b>Disconnect from Mozilla VPN</b>`mozillavpn deactivate`<br><b>Log out</b>`mozillavpn logout`<br><b>Display help for a subcommand</b>`mozillavpn [subcommand] --help`


title: TLDR
content:
<b>Download a pre-built Truffle project (Truffle Box)</b>`truffle unbox [box_name]`<br><b>Compile contract source files in the current directory</b>`truffle compile`<br><b>Run JavaScript and Solidity tests</b>`truffle test`<br><b>Run migrations to deploy contracts</b>`truffle migrate`<br><b>Display help for a subcommand</b>`truffle help [subcommand]`


title: TLDR
content:
<b>Produce a complete HTML document from a source code file</b>`highlight [[-o|--out-format]] [html] [[-s|--style]] [theme_name] [[-S|--syntax]] [language] [path/to/source_code]`<br><b>Produce an HTML fragment, suitable for inclusion in a larger document</b>`highlight [[-o|--out-format]] [html] [[-f|--fragment]] [[-S|--syntax]] [language] [source_file]`<br><b>Inline the CSS styling in every tag</b>`highlight [[-o|--out-format]] [html] --inline-css [[-S|--syntax]] [language] [source_file]`<br><b>List all supported languages, themes, or plugins</b>`highlight --list-scripts [langs|themes|plugins]`<br><b>Print a CSS stylesheet for a theme</b>`highlight [[-o|--out-format]] [html] --print-style [[-s|--style]] [theme_name] [[-S|--syntax]] [language] --stdout`


title: TLDR
content:
<b>Check the consistency of the whole TeX Live installation</b>`tlmgr check all`<br><b>Check the consistency of the whole TeX Live information in verbose mode</b>`tlmgr check all -v`<br><b>Check for missing dependencies</b>`tlmgr check depends`<br><b>Check if all TeX Live executables are present</b>`tlmgr check executes`<br><b>Check if all files listed in the local TLPDB are present</b>`tlmgr check files`<br><b>Check for duplicate filenames in the runfiles sections</b>`tlmgr check runfiles`


title: TLDR
content:
<b>Validate the current commit</b>`core-validate-commit`<br><b>Validate a specific commit</b>`core-validate-commit [commit_hash]`<br><b>Validate a range of commits</b>`git rev-list [commit_hash]..HEAD | xargs core-validate-commit`<br><b>List all validation rules</b>`core-validate-commit [[-l|--list]]`<br><b>List all valid Node.js subsystems</b>`core-validate-commit [[-ls|--list-subsystem]]`<br><b>Validate the current commit formatting the output in tap format</b>`core-validate-commit [[-t|--tap]]`<br><b>Display help</b>`core-validate-commit [[-h|--help]]`


title: TLDR
content:
<b>Merge the merge request associated with the current branch interactively</b>`glab mr merge`<br><b>Merge the specified merge request, interactively</b>`glab mr merge [mr_number]`<br><b>Merge the merge request, removing the branch on both the local and the remote</b>`glab mr merge [[-d|--remove-source-branch]]`<br><b>Squash the current merge request into one commit with the message body and merge</b>`glab mr merge [[-s|--squash]] [[-m|--message]] "[commit_message_body]"`<br><b>Display help</b>`glab mr merge --help`


title: TLDR
content:
<b>Compile and install the current package</b>`go install`<br><b>Compile and install a specific local package</b>`go install [path/to/package]`<br><b>Install the latest version of a program, ignoring go.mod in the current directory</b>`go install [golang.org/x/tools/gopls]@[latest]`<br><b>Install a program at the version selected by go.mod in the current directory</b>`go install [golang.org/x/tools/gopls]`


title: TLDR
content:
<b>Start an interactive session</b>`swipl`<br><b>Execute a command without showing any output</b>`swipl --quiet -t "[command]"`<br><b>Execute a script</b>`swipl [path/to/file.pl]`<br><b>Print all shell configuration variables</b>`swipl --dump-runtime-variables`<br><b>Display version</b>`swipl --version`


title: TLDR
content:
<b>Open a file</b>`ex [path/to/file]`<br><b>Save and Quit</b>`wq<Enter>`<br><b>Undo the last operation</b>`undo<Enter>`<br><b>Search for a pattern in the file</b>`/[search_pattern]<Enter>`<br><b>Perform a regex substitution in the whole file</b>`%s/[regex]/[replacement]/g<Enter>`<br><b>Insert text</b>`i<Enter>[text]<Ctrl c>`<br><b>Switch to Vim</b>`visual<Enter>`


title: TLDR
content:
<b>Start an HTTP server listening on the default port to serve the current directory</b>`http-server`<br><b>Start an HTTP server on a specific port to serve a specific directory</b>`http-server [path/to/directory] [[-p|--port]] [port]`<br><b>Start an HTTP server using basic authentication</b>`http-server --username [username] --password [password]`<br><b>Start an HTTP server with directory listings disabled</b>`http-server -d [false]`<br><b>Start an HTTPS server on the default port using the specified certificate</b>`http-server [[-S|--ssl]] [[-C|--cert]] [path/to/cert.pem] [[-K|--key]] [path/to/key.pem]`<br><b>Start an HTTP server and include the client's IP address in the output logging</b>`http-server --log-ip`<br><b>Start an HTTP server with CORS enabled by including the Access-Control-Allow-Origin: * header in all responses</b>`http-server --cors`<br><b>Start an HTTP server with logging disabled</b>`http-server [[-s|--silent]]`


title: TLDR
content:
<b>List network resources in a region that are used against a subscription quota</b>`az network list-usages`<br><b>List all virtual networks in a subscription</b>`az network vnet list`<br><b>Create a virtual network</b>`az network vnet create --address-prefixes [10.0.0.0/16] [[-n|--name]] [vnet] [[-g|--resource-group]] [group_name] --subnet-name [subnet] --subnet-prefixes [10.0.0.0/24]`<br><b>Enable accelerated networking for a network interface card</b>`az network nic update --accelerated-networking true [[-n|--name]] [nic] [[-g|--resource-group]] [resource_group]`


title: TLDR
content:
<b>Print statistics about a Bitcode file</b>`llvm-bcanalyzer [path/to/file.bc]`<br><b>Print an SGML representation and statistics about a Bitcode file</b>`llvm-bcanalyzer -dump [path/to/file.bc]`<br><b>Read a Bitcode file from stdin and analyze it</b>`cat [path/to/file.bc] | llvm-bcanalyzer`


title: TLDR
content:
<b>Apply a Puppet manifest file to configure the system</b>`puppet apply [path/to/file.pp]`<br><b>Apply a manifest in no operation (dry-run) mode to preview changes</b>`puppet apply --noop [path/to/file.pp]`<br><b>Validate the syntax of a Puppet manifest</b>`puppet parser validate [path/to/file.pp]`<br><b>Run the Puppet agent to fetch and apply configurations from the master</b>`puppet agent [[-t|--test]]`<br><b>Display help for a specific subcommand</b>`puppet help [subcommand]`<br><b>Display general help</b>`puppet [[-h|--help]]`<br><b>Display version</b>`puppet [[-V|--version]]`


title: TLDR
content:
<b>Interactively create a merge request</b>`glab mr create`<br><b>Create a merge request, determining the title and description from the commit messages of the current branch</b>`glab mr create [[-f|--fill]]`<br><b>Create a draft merge request</b>`glab mr create --draft`<br><b>Create a merge request specifying the target branch, title, and description</b>`glab mr create [[-b|--target-branch]] [target_branch] [[-t|--title]] "[title]" [[-d|--description]] "[description]"`<br><b>Start opening a merge request in the default web browser</b>`glab mr create [[-w|--web]]`


title: TLDR
content:
<b>Scan a file or directory for vulnerabilities</b>`clamdscan [path/to/file_or_directory]`<br><b>Scan data from stdin</b>`[command] | clamdscan -`<br><b>Scan the current directory and output only infected files</b>`clamdscan --infected`<br><b>Print the scan report to a log file</b>`clamdscan --log [path/to/log_file]`<br><b>Move infected files to a specific directory</b>`clamdscan --move [path/to/quarantine_directory]`<br><b>Remove infected files</b>`clamdscan --remove`<br><b>Use multiple threads to scan a directory</b>`clamdscan --multiscan`<br><b>Pass the file descriptor instead of streaming the file to the daemon</b>`clamdscan --fdpass`


title: TLDR
content:
<b>Create a codespace in GitHub interactively</b>`gh [[cs|codespace]] create`<br><b>List all available codespaces</b>`gh [[cs|codespace]] [[ls|list]]`<br><b>Connect to a codespace via SSH interactively</b>`gh [[cs|codespace]] ssh`<br><b>Transfer a specific file to a codespace interactively</b>`gh [[cs|codespace]] cp [path/to/source_file] remote:[path/to/remote_file]`<br><b>List the ports of a codespace interactively</b>`gh [[cs|codespace]] ports`<br><b>Display the logs from a codespace interactively</b>`gh [[cs|codespace]] logs`<br><b>Delete a codespace interactively</b>`gh [[cs|codespace]] delete`<br><b>Display help for a subcommand</b>`gh [[cs|codespace]] [code|cp|create|delete|edit|...] [[-h|--help]]`


title: TLDR
content:
<b>Test a server on port 443</b>`sslscan [example.com]`<br><b>Test a specified port</b>`sslscan [example.com]:[465]`<br><b>Show certificate information</b>`testssl --show-certificate [example.com]`


title: TLDR
content:
<b>Merge all commits from a specific branch into the current branch as a single commit</b>`git squash [source_branch]`<br><b>Squash all commits starting with a specific commit on the current branch</b>`git squash [commit]`<br><b>Squash the n latest commits and commit with a message</b>`git squash HEAD~[n] "[message]"`<br><b>Squash the n latest commits and commit concatenating all individual messages</b>`git squash --squash-msg HEAD~[n]`


title: TLDR
content:
<b>Open the project in the current directory using the correct Unity version</b>`u3d`<br><b>List installed versions of Unity</b>`u3d list`<br><b>List available versions of Unity that can be downloaded</b>`u3d available`<br><b>Download and install latest stable Unity version</b>`u3d install latest_stable`<br><b>Download and install Unity version and editor [p]ackages</b>`u3d install [2021.2.0f1] -p [Unity,iOS,Android]`


title: TLDR
content:
<b>Start a REPL (interactive shell)</b>`pypy`<br><b>Execute script in a given Python file</b>`pypy [path/to/file.py]`<br><b>Execute script as part of an interactive shell</b>`pypy -i [path/to/file.py]`<br><b>Execute a Python expression</b>`pypy -c "[expression]"`<br><b>Run library module as a script (terminates option list)</b>`pypy -m [module] [arguments]`<br><b>Install a package using pip</b>`pypy -m pip install [package]`<br><b>Interactively debug a Python script</b>`pypy -m pdb [path/to/file.py]`


title: TLDR
content:
<b>List files one per line</b>`colorls -1`<br><b>List all files, including hidden files</b>`colorls --all`<br><b>Long format list (permissions, ownership, size, and modification date) of all files</b>`colorls --long --all`<br><b>Only list directories</b>`colorls --dirs`


title: TLDR
content:
<b>Check if a specific package name is available in the npm registry</b>`npm-name [package]`<br><b>Find similar package names in the npm registry</b>`npm-name --similar [package]`


title: TLDR
content:
<b>Insert an entity into a table</b>`az storage entity insert [[-e|--entity]] [space_separated_key_value_pairs] [[-t|--table-name]] [table_name] --account-name [storage_account_name] --account-key [storage_account_key]`<br><b>Delete an existing entity from a table</b>`az storage entity delete --partition-key [partition_key] --row-key [row_key] [[-t|--table-name]] [table_name] --account-name [storage_account_name] --account-key [storage_account_key]`<br><b>Update an existing entity by merging its properties</b>`az storage entity merge [[-e|--entity]] [space_separated_key_value_pairs] [[-t|--table-name]] [table_name] --account-name [storage_account_name] --account-key [storage_account_key]`<br><b>List entities which satisfy a query</b>`az storage entity query --filter [query_filter] [[-t|--table-name]] [table_name] --account-name [storage_account_name] --account-key [storage_account_key]`<br><b>Get an entity from the specified table</b>`az storage entity show --partition-key [partition_key] --row-key [row_key] [[-t|--table-name]] [table_name] --account-name [storage_account_name] --account-key [storage_account_key]`


title: TLDR
content:
<b>Create a storage account specifying a location</b>`az storage account create [[-g|--resource-group]] [group_name] [[-n|--name]] [account_name] [[-l|--location]] [location] --sku [account_sku]`<br><b>List all storage accounts in a resource group</b>`az storage account list [[-g|--resource-group]] [group_name]`<br><b>List the access keys for a storage account</b>`az storage account keys list [[-g|--resource-group]] [group_name] [[-n|--name]] [account_name]`<br><b>Delete a storage account</b>`az storage account delete [[-g|--resource-group]] [group_name] [[-n|--name]] [account_name]`<br><b>Update the minimum tls version setting for a storage account</b>`az storage account update --min-tls-version [TLS1_0|TLS1_1|TLS1_2] [[-g|--resource-group]] [group_name] [[-n|--name]] [account_name]`


title: TLDR
content:
<b>List all TeX Live settings</b>`tlmgr option showall`<br><b>List all currently set Tex Live settings</b>`tlmgr option show`<br><b>Print all TeX Live settings in JSON format</b>`tlmgr option showall --json`<br><b>Show the value of a specific TeX Live setting</b>`tlmgr option [setting]`<br><b>Modify the value of a specific TeX Live setting</b>`tlmgr option [setting] [value]`<br><b>Set TeX Live to get future updates from the internet after installing from DVD</b>`tlmgr option [repository] [https://mirror.ctan.org/systems/texlive/tlnet]`


title: TLDR
content:
<b>Reformat all .scala files in the current directory recursively</b>`scalafmt`<br><b>Reformat specific files or directories with a custom formatting configuration</b>`scalafmt --config [path/to/.scalafmt.conf] [path/to/file_or_directory1 path/to/file_or_directory2 ...]`<br><b>Check if files are correctly formatted, returning 0 if all files respect the formatting style</b>`scalafmt --config [path/to/.scalafmt.conf] --test`<br><b>Exclude files or directories</b>`scalafmt --exclude [path/to/file_or_directory1 path/to/file_or_directory2 ...]`<br><b>Format only files that were edited against the current Git branch</b>`scalafmt --config [path/to/.scalafmt.conf] --mode diff`


title: TLDR
content:
<b>Process a grap file and save the output file for future processing with pic and groff</b>`grap [path/to/input.grap] > [path/to/output.pic]`<br><b>Typeset a grap file to PDF using the [me] macro package, saving the output to a file</b>`grap [path/to/input.grap] | pic -T [pdf] | groff -[me] -T [pdf] > [path/to/output.pdf]`


title: TLDR
content:
<b>Run a Go file</b>`go run [path/to/file.go]`<br><b>Run a main Go package</b>`go run [path/to/package]`


title: TLDR
content:
<b>Check if a DocBook XML file is valid</b>`daps [[-d|--docconfig]] [path/to/file.xml] validate`<br><b>Convert a DocBook XML file into PDF</b>`daps [[-d|--docconfig]] [path/to/file.xml] pdf`<br><b>Convert a DocBook XML file into a single HTML file</b>`daps [[-d|--docconfig]] [path/to/file.xml] html --single`<br><b>Display help</b>`daps [[-h|--help]]`<br><b>Display version</b>`daps --version`


title: TLDR
content:
<b>Count the number of packets sent from each source address appearing in a PCAP file</b>`ipaggcreate --src [path/to/file.pcap]`<br><b>Group and count packets read from a network interface by IP packet length</b>`ipaggcreate --interface [eth0] --length`<br><b>Count the number of bytes sent between each address pair appearing in a PCAP file</b>`ipaggcreate --address-pairs --bytes [path/to/file.pcap]`


title: TLDR
content:
<b>Tag a Git repo and signing the resulting link file</b>`in-toto-run [[-n|--step-name]] [tag] [[-p|--products]] [.] --signing-key [key_file] -- [git tag v1.0]`<br><b>Create a tarball, storing files as materials and the tarball as product</b>`in-toto-run [[-n|--step-name]] [package] [[-m|--materials]] [project] [[-p|--products]] [project.tar.gz] -- [tar czf project.tar.gz project]`<br><b>Generate signed attestations for review work</b>`in-toto-run [[-n|--step-name]] [review] --signing-key [key_file] [[-m|--materials]] [document.pdf] [[-x|--no-command]]`<br><b>Scan the image using Trivy and generate link file</b>`in-toto-run [[-n|--step-name]] [scan] --signing-key [key_file] [[-p|--products]] [report.json] -- /bin/sh -c "trivy --output report.json --format json [path/to/image]"`


title: TLDR
content:
<b>Show where CUPS is currently installed</b>`cups-config --serverbin`<br><b>Show the location of CUPS' configuration directory</b>`cups-config --serverroot`<br><b>Show the location of CUPS' data directory</b>`cups-config --datadir`<br><b>Display help</b>`cups-config --help`<br><b>Display CUPS version</b>`cups-config --version`


title: TLDR
content:
<b>Show logs for a single-container pod</b>`kubectl logs [pod_name]`<br><b>Show logs for a specified container in a pod</b>`kubectl logs [[-c|--container]] [container_name] [pod_name]`<br><b>Show logs for all containers in a pod</b>`kubectl logs --all-containers=[true] [pod_name]`<br><b>Stream pod logs</b>`kubectl logs [[-f|--follow]] [pod_name]`<br><b>Show pod logs newer than a relative time like 10s, 5m, or 1h</b>`kubectl logs --since [relative_time] [pod_name]`<br><b>Show the 10 most recent logs in a pod</b>`kubectl logs --tail [10] [pod_name]`<br><b>Show all pod logs for a given deployment</b>`kubectl logs [[deploy|deployment]]/[deployment_name]`


title: TLDR
content:
<b>Display account info</b>`doctl account [[g|get]]`<br><b>Show the hourly API limit, progress towards it, and when the rate limit resets</b>`doctl account [[rl|ratelimit]]`<br><b>Display help</b>`doctl account [[-h|--help]]`


title: TLDR
content:
<b>Open a file</b>`helix [path/to/file]`<br><b>Open files and show them one next each other</b>`helix --vsplit [path/to/file1 path/to/file2]`<br><b>Show the tutorial to learn Helix (or access it within Helix by pressing <Esc> and typing <:>tutor<Enter>)</b>`helix --tutor`<br><b>Change the Helix theme</b>`<:>theme [theme_name]`<br><b>Save and Quit</b>`<:>wq<Enter>`<br><b>Force-quit without saving</b>`<:>q!<Enter>`<br><b>Undo the last operation</b>`<u>`<br><b>Search for a pattern in the file (press <n>/<N> to go to next/previous match)</b>`</>[search_pattern]<Enter>`


title: TLDR
content:
<b>Save RAW data from a frequency (specified in Hz) to a file</b>`rtl_sdr -f [100000000] [path/to/file]`<br><b>Pipe data to another program</b>`rtl_sdr -f [100000000] - | [aplay]`<br><b>Read a specified number of samples</b>`rtl_sdr -f [100000000] -n [20] -`<br><b>Specify the sample rate in Hz (ranges 225001-300000 and 900001-3200000)</b>`rtl_sdr -f [100000000] -s [2400000] -`<br><b>Specify the device by its index</b>`rtl_sdr -f [100000000] -d [0] -`<br><b>Specify the gain</b>`rtl_sdr -f [100000000] -g [20] -`<br><b>Specify the output block size</b>`rtl_sdr -f [100000000] -b [9999999] -`<br><b>Use synchronous output</b>`rtl_sdr -f [100000000] -S -`


title: TLDR
content:
<b>Print marketplace terms</b>`az term show --product "[product_identifier]" --plan "[plan_identifier]" --publisher "[publisher_identifier]"`<br><b>Accept marketplace terms</b>`az term accept --product "[product_identifier]" --plan "[plan_identifier]" --publisher "[publisher_identifier]"`


title: TLDR
content:
<b>Generate a bonsai in live mode</b>`cbonsai [[-l|--live]]`<br><b>Generate a bonsai in infinite mode</b>`cbonsai [[-i|--infinite]]`<br><b>Set the growth factor of the tree (default: 32)</b>`cbonsai [[-L|--life]] [0..200]`<br><b>Set the branching factor of the tree (default: 5)</b>`cbonsai [[-M|--multiplier]] [0..20]`<br><b>Run in screensaver mode (equivalent to --live --infinite but any keypress exits)</b>`cbonsai [[-S|--screensaver]]`<br><b>Append a message to the bonsai</b>`cbonsai [[-m|--message]] "[message]"`<br><b>Display extra information about the bonsai</b>`cbonsai [[-v|--verbose]]`<br><b>Display help</b>`cbonsai [[-h|--help]]`


title: TLDR
content:
<b>Create a tag value</b>`az tag add-value [[-n|--name]] [tag_name] --value [tag_value]`<br><b>Create a tag in the subscription</b>`az tag create [[-n|--name]] [tag_name]`<br><b>Delete a tag from the subscription</b>`az tag delete [[-n|--name]] [tag_name]`<br><b>List all tags on a subscription</b>`az tag list --resource-id /subscriptions/[subscription_id]`<br><b>Delete a tag value for a specific tag name</b>`az tag remove-value [[-n|--name]] [tag_name] --value [tag_value]`


title: TLDR
content:
<b>Start the text-based installer (default on Unix systems)</b>`install-tl -no-gui`<br><b>Start the GUI installer (default on macOS and Windows, requires Tcl/Tk)</b>`install-tl -gui`<br><b>Install TeX Live as defined in a specific profile file</b>`install-tl -profile [path/to/texlive.profile]`<br><b>Start the installer with the settings from a specific profile file</b>`install-tl -init-from-file [path/to/texlive.profile]`<br><b>Start the installer for installation on a portable device, like a USB stick</b>`install-tl -portable`<br><b>Display help</b>`install-tl -help`


title: TLDR
content:
<b>Configure exercism following instructions for the API token</b>`exercism configure`<br><b>Download hello-world for any programming language into exercism workspace</b>`exercism download --track [programming_language] --exercise hello-world`<br><b>Open an exercise directory on the website</b>`exercism open [path/to/directory]`<br><b>Test your solution. It will also tell you if you are missing tools for the programming language</b>`exercism test [path/to/directory]`<br><b>Submit your solution. You can share from the website or ask a community mentor for help</b>`exercism submit [path/to/directory]`


title: TLDR
content:
<b>List all available platforms in the package repository</b>`tlmgr platform list`<br><b>Add the executables for a specific platform</b>`sudo tlmgr platform add [platform]`<br><b>Remove the executables for a specific platform</b>`sudo tlmgr platform remove [platform]`<br><b>Auto-detect and switch to the current platform</b>`sudo tlmgr platform set auto`<br><b>Switch to a specific platform</b>`sudo tlmgr platform set [platform]`


title: TLDR
content:
<b>Register a node at a Puppet server and apply the received catalog</b>`puppet agent --test --server [puppetserver_fqdn] --serverport [port] --waitforcert [poll_time]`<br><b>Run the agent in the background (uses settings from puppet.conf)</b>`puppet agent`<br><b>Run the agent once in the foreground, then exit</b>`puppet agent --test`<br><b>Run the agent in dry-mode</b>`puppet agent --test --noop`<br><b>Log every resource being evaluated (even if nothing is being changed)</b>`puppet agent --test --evaltrace`<br><b>Disable the agent</b>`puppet agent --disable "[message]"`<br><b>Enable the agent</b>`puppet agent --enable`


title: TLDR
content:
<b>Open the npm page of a specific package in the web browser</b>`npm-home [package]`<br><b>Open the GitHub repository of a specific package in the web browser</b>`npm-home [[-g|--github]] [package]`<br><b>Open the Yarn page of a specific package in the web browser</b>`npm-home [[-y|--yarn]] [package]`


title: TLDR
content:
<b>Uninstall a package</b>`pip uninstall [package]`<br><b>Uninstall packages listed in a specific file</b>`pip uninstall [[-r|--requirement]] [path/to/requirements.txt]`<br><b>Uninstall package without asking for confirmation</b>`pip uninstall [[-y|--yes]] [package]`


title: TLDR
content:
<b>Generate and show the execution plan in the currently directory</b>`terraform plan`<br><b>Show a plan to destroy all remote objects that currently exist</b>`terraform plan -destroy`<br><b>Show a plan to update the Terraform state and output values</b>`terraform plan -refresh-only`<br><b>Specify values for input variables</b>`terraform plan -var '[name1]=[value1]' -var '[name2]=[value2]'`<br><b>Focus Terraform's attention on only a subset of resources</b>`terraform plan -target [resource_type.resource_name[instance index]]`<br><b>Output a plan as JSON</b>`terraform plan -json`<br><b>Write a plan to a specific file</b>`terraform plan -no-color > [path/to/file]`


title: TLDR
content:
<b>Enable the ability to commit changes of a previously-locked local file</b>`git unlock [path/to/file]`


title: TLDR
content:
<b>Make a backup of one or more packages</b>`tlmgr backup [package1 package2 ...]`<br><b>Make a backup of all packages</b>`tlmgr backup --all`<br><b>Make a backup to a custom directory</b>`tlmgr backup [package] --backupdir [path/to/backup_directory]`<br><b>Remove a backup of one or more packages</b>`tlmgr backup clean [package1 package2 ...]`<br><b>Remove all backups</b>`tlmgr backup clean --all`


title: TLDR
content:
<b>Add symlinks to TeX Live files</b>`sudo tlmgr path add`<br><b>Remove symlinks to TeX Live files</b>`sudo tlmgr path remove`


title: TLDR
content:
<b>Check the Go package in the current directory</b>`go vet`<br><b>Check the Go package in the specified path</b>`go vet [path/to/file_or_directory]`<br><b>List available checks that can be run with go vet</b>`go tool vet help`<br><b>View details and flags for a particular check</b>`go tool vet help [check_name]`<br><b>Display offending lines plus n lines of surrounding context</b>`go vet -c=[n]`<br><b>Output analysis and errors in JSON format</b>`go vet -json`


title: TLDR
content:
<b>List all the aliases glab is configured to use</b>`glab alias list`<br><b>Create a glab subcommand alias</b>`glab alias set [mrv] '[mr view]'`<br><b>Set a shell command as a glab subcommand</b>`glab alias set [[-s|--shell]] [alias_name] [command]`<br><b>Delete a command shortcut</b>`glab alias delete [alias_name]`<br><b>Display the subcommand help</b>`glab alias`


title: TLDR
content:
<b>Compile the project in the current directory</b>`zig build`<br><b>Compile and run the project in the current directory</b>`zig build run`<br><b>Initialize a zig build project with library and executable</b>`zig init`<br><b>Create and run a test build</b>`zig test [path/to/file.zig]`<br><b>Cross compile, build and run a project for x86_64 architecture and windows operating system</b>`zig build run -fwine -Dtarget=x86_64-windows`<br><b>Reformat Zig source into canonical form</b>`zig fmt [path/to/file.zig]`<br><b>Translate a C file to zig</b>`zig translate-c -lc [path/to/file.c]`<br><b>Use Zig as a drop-in C++ compiler</b>`zig c++ [path/to/file.cpp]`


title: TLDR
content:
<b>Dump a guest virtual machine into the default dump directory (usually /var/lib/vz/dump/), excluding snapshots</b>`vzdump [vm_id]`<br><b>Back up the guest virtual machines with the IDs 101, 102, and 103</b>`vzdump [101 102 103]`<br><b>Dump a guest virtual machine using a specific mode</b>`vzdump [vm_id] --mode [suspend|snapshot]`<br><b>Back up all guest systems and send an notification email to the root and admin users</b>`vzdump --all --mode [suspend] --mailto [root] --mailto [admin]`<br><b>Use snapshot mode (no downtime required) and a non-default dump directory</b>`vzdump [vm_id] --dumpdir [path/to/directory] --mode [snapshot]`<br><b>Back up all guest virtual machines excluding the IDs 101 and 102</b>`vzdump --mode [suspend] --exclude [101, 102]`


title: TLDR
content:
<b>Generate a new initial TypeORM project structure</b>`typeorm init`<br><b>Create an empty migration file</b>`typeorm migration:create --name [migration_name]`<br><b>Create a migration file with the SQL statements to update the schema</b>`typeorm migration:generate --name [migration_name]`<br><b>Run all pending migrations</b>`typeorm migration:run`<br><b>Create a new entity file in a specific directory</b>`typeorm entity:create --name [entity] --dir [path/to/directory]`<br><b>Display the SQL statements to be executed by typeorm schema:sync on the default connection</b>`typeorm schema:log`<br><b>Execute a specific SQL statement on the default connection</b>`typeorm query [sql_sentence]`<br><b>Display help for a subcommand</b>`typeorm [subcommand] --help`


title: TLDR
content:
<b>View a running pipeline on the current branch</b>`glab pipeline status`<br><b>View a running pipeline on a specific branch</b>`glab pipeline status --branch [branch_name]`<br><b>Get the list of pipelines</b>`glab pipeline list`<br><b>Run a manual pipeline on the current branch</b>`glab pipeline run`<br><b>Run a manual pipeline on a specific branch</b>`glab pipeline run --branch [branch_name]`


title: TLDR
content:
<b>Start the record (creates a preliminary link file)</b>`in-toto-record start [[-n|--step-name]] [path/to/edit_file1 path/to/edit_file2 ...] --signing-key [path/to/key_file] [[-m|--materials]] [.]`<br><b>Stop the record (expects a preliminary link file)</b>`in-toto-record stop [[-n|--step-name]] [path/to/edit_file1 path/to/edit_file2 ...] --signing-key [path/to/key_file] [[-p|--products]] [.]`


title: TLDR
content:
<b>List files and directories, one per line</b>`lsd [[-1|--oneline]]`<br><b>List all files and directories, including hidden ones, in the current directory</b>`lsd [[-a|--all]]`<br><b>List files and directories with trailing / added to directory names</b>`lsd [[-F|--classify]]`<br><b>List all files and directories in long format (permissions, ownership, size in human-readable format, and modification date)</b>`lsd [[-lha|--long --human-readable --all]]`<br><b>List files and directories in long format, sorted by size (descending)</b>`lsd [[-lS|--long --sizesort]]`<br><b>List files and directories in long format, sorted by modification date (oldest first)</b>`lsd [[-ltr|--long --timesort --reverse]]`<br><b>Only list directories</b>`lsd [[-d|--directory-only]] [*/]`<br><b>Recursively list all directories in a tree format</b>`lsd --tree [[-d|--directory-only]]`


title: TLDR
content:
<b>Start an HTTP server on the default port to upload files to the current directory</b>`http-server-upload`<br><b>Start an HTTP server with the specified maximum allowed file size for uploads in MiB (defaults to 200 MiB)</b>`MAX_FILE_SIZE=[size_in_megabytes] http-server-upload`<br><b>Start an HTTP server on a specific port to upload files to the current directory</b>`PORT=[port] http-server-upload`<br><b>Start an HTTP server, storing the uploaded files in a specific directory</b>`UPLOAD_DIR=[path/to/directory] http-server-upload`<br><b>Start an HTTP server using a specific directory to temporarily store files during the upload process</b>`UPLOAD_TMP_DIR=[path/to/directory] http-server-upload`<br><b>Start an HTTP server accepting uploads with a specific token field in the HTTP post</b>`TOKEN=[secret] http-server-upload`


title: TLDR
content:
<b>Generate a Zip file with information about the system configuration and the WARP connection</b>`warp-diag`<br><b>Generate a Zip file with debug information including a timestamp to the output filename</b>`warp-diag --add-ts`<br><b>Save the output file under a specific directory</b>`warp-diag --output [path/to/directory]`<br><b>Submit a new feedback to Cloudflare's WARP interactively</b>`warp-diag feedback`


title: TLDR
content:
<b>Install Bicep CLI</b>`az bicep install`<br><b>Build a Bicep file</b>`az bicep build [[-f|--file]] [path/to/file.bicep]`<br><b>Attempt to decompile an ARM template file to a Bicep file</b>`az bicep decompile [[-f|--file]] [path/to/template_file.json]`<br><b>Upgrade Bicep CLI to the latest version</b>`az bicep upgrade`<br><b>Display the installed version of Bicep CLI</b>`az bicep version`<br><b>List all available versions of Bicep CLI</b>`az bicep list-versions`<br><b>Uninstall Bicep CLI</b>`az bicep uninstall`


title: TLDR
content:
<b>Display general information about a YubiKey (serial number, firmware version, capabilities, etc.)</b>`ykman info`<br><b>List connected YubiKeys with short, one-line descriptions (including the serial number)</b>`ykman list`<br><b>View documentation for enabling and disabling applications</b>`tldr ykman config`<br><b>View documentation for managing the FIDO applications</b>`tldr ykman fido`<br><b>View documentation for managing the OATH application</b>`tldr ykman oath`<br><b>View documentation for managing the OpenPGP application</b>`tldr ykman openpgp`


title: TLDR
content:
<b>Sync the current local branch with its remote branch</b>`git sync`<br><b>Sync the current local branch with the remote main branch</b>`git sync origin main`<br><b>Sync without cleaning untracked files</b>`git sync [[-s|--soft]] [remote_name] [branch_name]`


title: TLDR
content:
<b>Start CliFM</b>`clifm`<br><b>Open the file or directory whose ELN (entry list number) is 12</b>`12`<br><b>Create a new file and a new directory</b>`<n>file dir/`<br><b>Search for PDF files in the current directory</b>`</>*.pdf`<br><b>Select all PNG files in the current directory</b>`<s> *.png`<br><b>Remove the previously selected files (use <t> to send the files to the recycle bin instead)</b>`<r>sel`<br><b>Display help</b>`<?>`<br><b>Exit CliFM</b>`<q>`


title: TLDR
content:
<b>Start a REPL (interactive shell)</b>`racket`<br><b>Execute a Racket script</b>`racket [path/to/script.rkt]`<br><b>Execute a Racket expression</b>`racket [[-e|--eval]] "[expression]"`<br><b>Run module as a script (terminates option list)</b>`racket [[-l|--lib]] [module_name] [[-m|--main]] [arguments]`<br><b>Start a REPL (interactive shell) for the typed/racket hashlang</b>`racket -I typed/racket`


title: TLDR
content:
<b>Run default checks on a source file</b>`clang-tidy [path/to/file.cpp]`<br><b>Don't run any checks other than the cppcoreguidelines checks on a file</b>`clang-tidy [path/to/file.cpp] -checks=[-*,cppcoreguidelines-*]`<br><b>List all available checks</b>`clang-tidy -checks=[*] -list-checks`<br><b>Specify defines and includes as compilation options (after --)</b>`clang-tidy [path/to/file.cpp] -- -I[my_project/include] -D[definitions]`


title: TLDR
content:
<b>Show the currently selected Perl version and how it was selected</b>`plenv version`<br><b>List all available installed Perl versions</b>`plenv versions`<br><b>Set the global Perl version (used unless a local or shell version takes priority)</b>`plenv global [version]`<br><b>Set the local application-specific Perl version (used in the current directory and all directories below it)</b>`plenv local [version]`<br><b>Set the shell-specific Perl version (used for the current session only)</b>`plenv shell [version]`<br><b>Display help</b>`plenv`<br><b>Display help for a command</b>`plenv help [command]`


title: TLDR
content:
<b>Decompile a Dex file into a directory</b>`jadx [path/to/file]`<br><b>Decompile a Dex file into a specific directory</b>`jadx [[-d|--output-dir]] [path/to/directory] [path/to/file]`


title: TLDR
content:
<b>Register the current device to WARP (must be run before first connection)</b>`warp-cli registration new`<br><b>Connect to WARP</b>`warp-cli connect`<br><b>Disconnect from WARP</b>`warp-cli disconnect`<br><b>Display the WARP connection status</b>`warp-cli status`<br><b>Switch to a specific mode</b>`warp-cli set-mode [mode]`<br><b>Display help</b>`warp-cli help`<br><b>Display help for a subcommand</b>`warp-cli help [subcommand]`


title: TLDR
content:
<b>Create a new repository (if the repository name is not set, the default name will be the name of the current directory)</b>`glab repo create [name]`<br><b>Clone a repository</b>`glab repo clone [owner]/[repository]`<br><b>Fork and clone a repository</b>`glab repo fork [owner]/[repository] [[-c|--clone]]`<br><b>View a repository in the default web browser</b>`glab repo view [owner]/[repository] [[-w|--web]]`<br><b>Search some repositories in the GitLab instance</b>`glab repo search [[-s|--search]] [search_string]`


title: TLDR
content:
<b>Replace the specified text in the current repository</b>`git sed '[find_text]' '[replace_text]'`<br><b>Replace the specified text and then commit the resulting changes with a standard commit message</b>`git sed -c '[find_text]' '[replace_text]'`<br><b>Replace the specified text, using regex</b>`git sed -f g '[find_text]' '[replace_text]'`<br><b>Replace a specific text in all files under a given directory</b>`git sed '[find_text]' '[replace_text]' -- [path/to/directory]`


title: TLDR
content:
<b>Start a REPL (interactive shell)</b>`d8`<br><b>Run a JavaScript file</b>`d8 [path/to/file.js]`<br><b>Evaluate a JavaScript expression</b>`d8 -e "[code]"`


title: TLDR
content:
<b>Concatenate Bitcode files</b>`llvm-cat [path/to/file1.bc] [path/to/file2.bc] -o [path/to/out.bc]`


title: TLDR
content:
<b>Sign 'unsigned.layout' with two keys and write it to 'root.layout'</b>`in-toto-sign [[-f|--file]] [unsigned.layout] [[-k|--keep]] [priv_key1] [priv_key2] [[-o|--output]] [root.layout]`<br><b>Replace signature in link file and write to default filename</b>`in-toto-sign [[-f|--file]] [package.2f89b927.link] [[-k|--keep]] [priv_key]`<br><b>Verify a layout signed with 3 keys</b>`in-toto-sign [[-f|--file]] [root.layout] [[-k|--keep]] [pub_key0] [pub_key1] [pub_key2] --verify`<br><b>Sign a layout with the default GPG key in default GPG keyring</b>`in-toto-sign [[-f|--file]] [root.layout] [[-g|--gpg]]`<br><b>Verify a layout with a GPG key identified by keyid '...439F3C2'</b>`in-toto-sign [[-f|--file]] [root.layout] --verify [[-g|--gpg]] [...439F3C2]`


title: TLDR
content:
<b>Start an interactive shell session</b>`elvish`<br><b>Execute specific [c]ommands</b>`elvish -c "[echo 'elvish is executed']"`<br><b>Execute a specific script</b>`elvish [path/to/script.elv]`


title: TLDR
content:
<b>Add the current node to an existing cluster</b>`pvecm add [hostname_or_ip]`<br><b>Add a node to the cluster configuration (internal use)</b>`pvecm [[addn|addnode]] [node]`<br><b>Display the version of the cluster join API available on this node</b>`pvecm [[ap|apiver]]`<br><b>Generate new cluster configuration</b>`pvecm [[c|create]] [clustername]`<br><b>Remove a node from the cluster configuration</b>`pvecm [[d|delnode]] [node]`<br><b>Display the local view of the cluster nodes</b>`pvecm [[n|nodes]]`<br><b>Display the local view of the cluster status</b>`pvecm [[s|status]]`


title: TLDR
content:
<b>Mount an MTP device to a directory</b>`jmtpfs [path/to/directory]`<br><b>Set mount options</b>`jmtpfs -o [allow_other,auto_unmount] [path/to/directory]`<br><b>List available MTP devices</b>`jmtpfs [[-l|--listDevices]]`<br><b>If multiple devices are present, mount a specific device</b>`jmtpfs -device=[bus_id],[device_id] [path/to/directory]`<br><b>Unmount MTP device</b>`fusermount -u [path/to/directory]`


title: TLDR
content:
<b>Compile and print all firewall rules</b>`pve-firewall [[c|compile]]`<br><b>Show information about the local network</b>`pve-firewall [[l|localnet]]`<br><b>Restart the Proxmox VE Firewall service</b>`pve-firewall [[r|restart]]`<br><b>Start the Proxmox VE Firewall service</b>`pve-firewall start`<br><b>Stop the Proxmox VE Firewall service</b>`pve-firewall stop`<br><b>Simulate all firewall rules</b>`pve-firewall [[si|simulate]]`<br><b>Show the status of Proxmox VE Firewall</b>`pve-firewall status`


title: TLDR
content:
<b>Run a script</b>`Rscript [path/to/file.R]`<br><b>Run a script in vanilla mode (i.e. a blank session that doesn't save the workspace at the end)</b>`Rscript --vanilla [path/to/file.R]`<br><b>Execute one or more R expressions</b>`Rscript -e [expression1] -e [expression2]`<br><b>Display R version</b>`Rscript --version`


title: TLDR
content:
<b>Build all targets</b>`dune build`<br><b>Clean up the workspace</b>`dune clean`<br><b>Run all tests</b>`dune runtest`<br><b>Start the utop REPL with compiled modules automatically loaded into it, to remove the need to load them by hand</b>`dune utop`


title: TLDR
content:
<b>Create an image from a specific container</b>`docker commit [container] [image]:[tag]`<br><b>Apply a CMD Dockerfile instruction to the created image</b>`docker commit [[-c|--change]] "CMD [command]" [container] [image]:[tag]`<br><b>Apply an ENV Dockerfile instruction to the created image</b>`docker commit [[-c|--change]] "ENV [name]=[value]" [container] [image]:[tag]`<br><b>Create an image with a specific author in the metadata</b>`docker commit [[-a|--author]] "[author]" [container] [image]:[tag]`<br><b>Create an image with a specific comment in the metadata</b>`docker commit [[-m|--message]] "[comment]" [container] [image]:[tag]`<br><b>Create an image without pausing the container during commit</b>`docker commit [[-p|--pause]] [false] [container] [image]:[tag]`<br><b>Display help</b>`docker commit --help`


title: TLDR
content:
<b>Start an interactive shell session</b>`tcsh`<br><b>Start an interactive shell session without loading startup configs</b>`tcsh -f`<br><b>Execute specific [c]ommands</b>`tcsh -c "[echo 'tcsh is executed']"`<br><b>Execute a specific script</b>`tcsh [path/to/script.tcsh]`<br><b>Check a specific script for syntax errors</b>`tcsh -n [path/to/script.tcsh]`<br><b>Execute specific commands from stdin</b>`[echo "echo 'tcsh is executed'"] | tcsh`


title: TLDR
content:
<b>List all installed tools</b>`volta list`<br><b>Install the latest version of a tool</b>`volta install [node|npm|yarn|package_name]`<br><b>Install a specific version of a tool</b>`volta install [node|npm|yarn]@version`<br><b>Choose a tool version for a project (will store it in package.json)</b>`volta pin [node|npm|yarn]@version`<br><b>Display help</b>`volta help`<br><b>Display help for a subcommand</b>`volta help [fetch|install|uninstall|pin|list|completions|which|setup|run|help]`


title: TLDR
content:
<b>Identify hashes from stdin (through typing, copying and pasting, or piping the hash into the program)</b>`hashid`<br><b>Identify one or more hashes</b>`hashid [hash1 hash2 ...]`<br><b>Identify hashes on a file (one hash per line)</b>`hashid [path/to/hashes.txt]`<br><b>Show all possible hash types (including salted hashes)</b>`hashid --extended [hash]`<br><b>Show hashcat's mode number and john's format string of the hash types</b>`hashid --mode --john [hash]`<br><b>Save output to a file instead of printing to stdout</b>`hashid --outfile [path/to/output.txt] [hash]`


title: TLDR
content:
<b>Start an interactive shell of tlmgr</b>`tlmgr shell`<br><b>Run any tlmgr subcommand in the interactive shell</b>`[subcommand] [arguments]`<br><b>Quit the interactive shell</b>`quit`<br><b>List all TeX Live variables</b>`get`<br><b>Get the value of a TeX Live variable</b>`get [variable]`<br><b>Set the value of a TeX Live variable</b>`set [variable] [value]`<br><b>Restart the interactive shell</b>`restart`<br><b>Display the version of the current protocol</b>`protocol`


title: TLDR
content:
<b>Reset all tracked files and delete all untracked files even if they are included in the .gitignore</b>`git clear`


title: TLDR
content:
<b>Upload an artifact to Rekor</b>`rekor-cli upload --artifact [path/to/file.ext] --signature [path/to/file.ext.sig] --pki-format=[x509] --public-key=[path/to/key.pub]`<br><b>Get information regarding entries in the Transparency Log</b>`rekor-cli get --uuid=[0e81b4d9299e2609e45b5c453a4c0e7820ac74e02c4935a8b830d104632fd2d1]`<br><b>Search the Rekor index to find entries by Artifact</b>`rekor-cli search --artifact [path/to/file.ext]`<br><b>Search the Rekor index to find entries by a specific hash</b>`rekor-cli search --sha [6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b]`


title: TLDR
content:
<b>Display a specific issue</b>`glab issue view [issue_number]`<br><b>Display a specific issue in the default web browser</b>`glab issue view [issue_number] [[-w|--web]]`<br><b>Create a new issue in the default web browser</b>`glab issue create --web`<br><b>List the last 10 issues with the bug label</b>`glab issue list [[-P|--per-page]] [10] [[-l|--label]] "[bug]"`<br><b>List closed issues made by a specific user</b>`glab issue list [[-c|--closed]] --author [username]`<br><b>Reopen a specific issue</b>`glab issue reopen [issue_number]`


title: TLDR
content:
<b>Install a specific version of Node.js</b>`nvm install [node_version]`<br><b>Use a specific version of Node.js in the current shell</b>`nvm use [node_version]`<br><b>Set the default Node.js version</b>`set nvm_default_version [node_version]`<br><b>List all available Node.js versions and highlight the default one</b>`nvm list`<br><b>Uninstall a given Node.js version</b>`nvm uninstall [node_version]`


title: TLDR
content:
<b>Build and analyze the project in the current directory</b>`scan-build [make]`<br><b>Run a command and pass all subsequent options to it</b>`scan-build [command] [command_arguments]`<br><b>Display help</b>`scan-build`


title: TLDR
content:
<b>Show a live view of the functions that take the most execution time of a running process</b>`py-spy top [[-p|--pid]] [pid]`<br><b>Start a program and show a live view of the functions that take the most execution time</b>`py-spy top -- python [path/to/file.py]`<br><b>Produce an SVG flame graph of the function call execution time</b>`py-spy record [[-o|--output]] [path/to/profile.svg] [[-p|--pid]] [pid]`<br><b>Dump the call stack of a running process</b>`py-spy dump [[-p|--pid]] [pid]`


title: TLDR
content:
<b>Dump all databases</b>`pg_dumpall > [path/to/file.sql]`<br><b>Dump all databases using a specific username</b>`pg_dumpall [[-U|--username]] [username] > [path/to/file.sql]`<br><b>Same as above, customize host and port</b>`pg_dumpall [[-h|--host]] [host] [[-p|--port]] [port] > [output_file.sql]`<br><b>Dump only database data into an SQL-script file</b>`pg_dumpall [[-a|--data-only]] > [path/to/file.sql]`<br><b>Dump only schema (data definitions) into an SQL-script file</b>`pg_dumpall [[-s|--schema-only]] > [output_file.sql]`


title: TLDR
content:
<b>Create a read-only subscription level lock</b>`az lock create [[-n|--name]] [lock_name] [[-t|--lock-type]] ReadOnly`<br><b>Create a read-only resource group level lock</b>`az lock create [[-n|--name]] [lock_name] [[-g|--resource-group]] [group_name] [[-t|--lock-type]] ReadOnly`<br><b>Delete a subscription level lock</b>`az lock delete [[-n|--name]] [lock_name]`<br><b>Delete a resource group level lock</b>`az lock delete [[-n|--name]] [lock_name] [[-g|--resource-group]] [group_name]`<br><b>List out all locks on the subscription level</b>`az lock list`<br><b>Show a subscription level lock with a specific name</b>`az lock show [[-n|--name]] [lock_name]`


title: TLDR
content:
<b>Run a random screensaver</b>`gh screensaver`<br><b>Run a specific screensaver</b>`gh screensaver [[-s|--saver]] [fireworks|life|marquee|pipes|pollock|starfield]`<br><b>Run the "marquee" screensaver with a specific text and font</b>`gh screensaver [[-s|--saver]] marquee -- --message="[message]" --font=[font_name]`<br><b>Run the "starfield" screensaver with a specific density and speed</b>`gh screensaver [[-s|--saver]] starfield -- --density [500] --speed [10]`<br><b>List available screensavers</b>`gh screensaver [[-l|--list]]`


title: TLDR
content:
<b>Create a droplet</b>`doctl compute [[d|droplet]] [[c|create]] --region [region] --image [os_image] --size [vps_type] [droplet_name]`<br><b>Delete a droplet</b>`doctl compute [[d|droplet]] [[d|delete]] [droplet_id|droplet_name]`<br><b>List droplets</b>`doctl compute [[d|droplet]] [[ls|list]]`


title: TLDR
content:
<b>Create an app</b>`doctl [[a|apps]] [[c|create]]`<br><b>Create a deployment for a specific app</b>`doctl [[a|apps]] [[cd|create-deployment]] [app_id]`<br><b>Delete an app interactively</b>`doctl [[a|apps]] [[d|delete]] [app_id]`<br><b>Get an app</b>`doctl [[a|apps]] [[g|get]]`<br><b>List all apps</b>`doctl [[a|apps]] [[ls|list]]`<br><b>List all deployments from a specific app</b>`doctl [[a|apps]] [[lsd|list-deployments]] [app_id]`<br><b>Get logs from a specific app</b>`doctl [[a|apps]] [[l|logs]] [app_id]`<br><b>Update a specific app with a given app spec</b>`doctl [[a|apps]] [[u|update]] [app_id] --spec [path/to/spec.yml]`


title: TLDR
content:
<b>Play a MIDI file</b>`timidity [path/to/file.mid]`<br><b>Play a MIDI file in a loop</b>`timidity --loop [path/to/file.mid]`<br><b>Play a MIDI file in a specific key (0 = C major/A minor, -1 = F major/D minor, +1 = G major/E minor, etc.)</b>`timidity --force-keysig=[-flats|+sharps] [path/to/file.mid]`<br><b>Convert a MIDI file to PCM (WAV) audio</b>`timidity --output-mode=[w] --output-file=[path/to/file.wav] [path/to/file.mid]`<br><b>Convert a MIDI file to FLAC audio</b>`timidity --output-mode=[F] --output-file=[path/to/file.flac] [path/to/file.mid]`


title: TLDR
content:
<b>Declare a string variable with the specified value</b>`declare [variable]="[value]"`<br><b>Declare an integer variable with the specified value</b>`declare -i [variable]="[value]"`<br><b>Declare an array variable with the specified value</b>`declare -a [variable]=([item_a item_b item_c])`<br><b>Declare an associative array variable with the specified value</b>`declare -A [variable]=([[key_a]=item_a [key_b]=item_b [key_c]=item_c])`<br><b>Declare a readonly string variable with the specified value</b>`declare -r [variable]="[value]"`<br><b>Declare a global variable within a function with the specified value</b>`declare -g [variable]="[value]"`<br><b>Print a function definition</b>`declare -f [function_name]`<br><b>Print a variable definition</b>`declare -p [variable_name]`


title: TLDR
content:
<b>Install Husky in the current directory</b>`husky install`<br><b>Install Husky into a specific directory</b>`husky install [path/to/directory]`<br><b>Set a specific command as a pre-push hook for Git</b>`husky set [.husky/pre-push] "[command] [command_arguments]"`<br><b>Add a specific command to the current pre-commit hook</b>`husky add [.husky/pre-commit] "[command] [command_arguments]"`<br><b>Uninstall Husky hooks from the current directory</b>`husky uninstall`<br><b>Display help</b>`husky`


title: TLDR
content:
<b>Print stack and locks information of a Java process</b>`jhsdb jstack --pid [pid]`<br><b>Open a core dump in interactive debug mode</b>`jhsdb clhsdb --core [path/to/core_dump] --exe [path/to/jdk_or_bin_or_java]`<br><b>Start a remote debug server</b>`jhsdb debugd --pid [pid] --serverid [optional_unique_id]`<br><b>Connect to a process in interactive debug mode</b>`jhsdb clhsdb --pid [pid]`


title: TLDR
content:
<b>Start the daemon</b>`auditd`<br><b>Start the daemon in debug mode</b>`auditd -d`<br><b>Start the daemon on-demand from launchd</b>`auditd -l`


title: TLDR
content:
<b>Check out a specific merge request</b>`git mr [mr_number]`<br><b>Check out a merge request from a specific remote</b>`git mr [mr_number] [remote]`<br><b>Checkout a merge request from its URL</b>`git mr [url]`<br><b>Clean up old merge request branches</b>`git mr clean`


title: TLDR
content:
<b>Configure powerlevel10k interactively</b>`p10k configure`<br><b>Reload powerlevel10k</b>`p10k reload`<br><b>Display help</b>`p10k help`


title: TLDR
content:
<b>List available subcommands (or create a new project if no configuration exists)</b>`hardhat`<br><b>Compile the current project and build all artifacts</b>`hardhat compile`<br><b>Run a user-defined script after compiling the project</b>`hardhat run [path/to/script.js]`<br><b>Run Mocha tests</b>`hardhat test`<br><b>Run all given test files</b>`hardhat test [path/to/file1.js path/to/file2.js ...]`<br><b>Start a local Ethereum JSON-RPC node for development</b>`hardhat node`<br><b>Start a local Ethereum JSON-RPC node with a specific hostname and port</b>`hardhat node --hostname [hostname] --port [port]`<br><b>Clean the cache and all artifacts</b>`hardhat clean`


title: TLDR
content:
<b>Show all ID3v1 tags of a specific MP3 file</b>`mp3info [path/to/file.mp3]`<br><b>Edit ID3v1 tags [i]nteractively</b>`mp3info -i [path/to/file.mp3]`<br><b>Set values for ID3v1 tags in a specific MP3 file ([a]rtist, [t]itle, a[l]bum, [y]ear, and [c]omment)</b>`mp3info -a "[artist_name]" -t "[song_title]" -l "[album_title]" -y [year] -c "[comment_text]" [path/to/file.mp3]`<br><b>Set the [n]umber of the track in the album for a specific MP3 file</b>`mp3info -n [track_number] [path/to/file.mp3]`<br><b>[G]et a list of valid genres and their numeric codes</b>`mp3info -G`<br><b>Set the music [g]enre for a specific MP3 file</b>`mp3info -g [genre_number] [path/to/file.mp3]`


title: TLDR
content:
<b>Start a stopwatch</b>`termdown`<br><b>Start a 1 minute and 30 seconds countdown</b>`termdown [1m30s]`<br><b>Start a 1 minute 30 seconds countdown with blinking the terminal at the end</b>`termdown [1m30s] --blink`<br><b>Show a title above countdown</b>`termdown [1m30s] --title "[Interesting title]"`<br><b>Display current time</b>`termdown --time`


title: TLDR
content:
<b>Update all TeX Live packages</b>`sudo tlmgr update --all`<br><b>Update tlmgr itself</b>`sudo tlmgr update --self`<br><b>Update a specific package</b>`sudo tlmgr update [package]`<br><b>Update all except a specific package</b>`sudo tlmgr update --all --exclude [package]`<br><b>Update all packages, making a backup of the current packages</b>`sudo tlmgr update --all --backup`<br><b>Update a specific package without updating its dependencies</b>`sudo tlmgr update --no-depends [package]`<br><b>Simulate updating all packages without making any changes</b>`sudo tlmgr update --all --dry-run`


title: TLDR
content:
<b>Execute a code snippet</b>`ngs -e "[echo('ngs is executed')]"`<br><b>Execute a script</b>`ngs [path/to/script.ngs]`<br><b>Display version</b>`ngs --version`


title: TLDR
content:
<b>Delete a specific pod</b>`kubectl delete [[po|pods]] [pod_name]`<br><b>Delete a specific deployment</b>`kubectl delete [[deploy|deployments]] [deployment_name]`<br><b>Delete a specific node</b>`kubectl delete [[no|nodes]] [node_name]`<br><b>Delete all pods in a specified namespace</b>`kubectl delete [[po|pods]] --all [[-n|--namespace]] [namespace]`<br><b>Delete all deployments and services in a specified namespace</b>`kubectl delete [[deploy|deployments]],[[svc|services]] --all [[-n|--namespace]] [namespace]`<br><b>Delete all nodes</b>`kubectl delete [[no|nodes]] --all`<br><b>Delete resources defined in a YAML manifest</b>`kubectl delete [[-f|--filename]] [path/to/manifest.yaml]`


title: TLDR
content:
<b>Display help for a specific RDS subcommand</b>`aws rds [subcommand] help`<br><b>Stop instance</b>`aws rds stop-db-instance --db-instance-identifier [instance_identifier]`<br><b>Start instance</b>`aws rds start-db-instance --db-instance-identifier [instance_identifier]`<br><b>Modify an RDS instance</b>`aws rds modify-db-instance --db-instance-identifier [instance_identifier] [parameters] --apply-immediately`<br><b>Apply updates to an RDS instance</b>`aws rds apply-pending-maintenance-action --resource-identifier [database_arn] --apply-action [system-update] --opt-in-type [immediate]`<br><b>Change an instance identifier</b>`aws rds modify-db-instance --db-instance-identifier [old_instance_identifier] --new-db-instance-identifier [new_instance_identifier]`<br><b>Reboot an instance</b>`aws rds reboot-db-instance --db-instance-identifier [instance_identifier]`<br><b>Delete an instance</b>`aws rds delete-db-instance --db-instance-identifier [instance_identifier] --final-db-snapshot-identifier [snapshot_identifier] --delete-automated-backups`


title: TLDR
content:
<b>Generate a key-pair</b>`cosign generate-key-pair`<br><b>Sign a container and store the signature in the registry</b>`cosign sign -key [cosign.key] [image]`<br><b>Sign a container image with a key pair stored in a Kubernetes secret</b>`cosign sign -key k8s://[namespace]/[key] [image]`<br><b>Sign a blob with a local key pair file</b>`cosign sign-blob --key [cosign.key] [path/to/file]`<br><b>Verify a container against a public key</b>`cosign verify -key [cosign.pub] [image]`<br><b>Verify images with a public key in a Dockerfile</b>`cosign dockerfile verify -key [cosign.pub] [path/to/Dockerfile]`<br><b>Verify an image with a public key stored in a Kubernetes secret</b>`cosign verify -key k8s://[namespace]/[key] [image]`<br><b>Copy a container image and its signatures</b>`cosign copy [example.com/src:latest] [example.com/dest:latest]`


title: TLDR
content:
<b>Compile a specific contract to hex</b>`solcjs --bin [path/to/file.sol]`<br><b>Compile the ABI of a specific contract</b>`solcjs --abi [path/to/file.sol]`<br><b>Specify a base path to resolve imports from</b>`solcjs --bin --base-path [path/to/directory] [path/to/file.sol]`<br><b>Specify one or more paths to include containing external code</b>`solcjs --bin --include-path [path/to/directory] [path/to/file.sol]`<br><b>Optimise the generated bytecode</b>`solcjs --bin --optimize [path/to/file.sol]`


title: TLDR
content:
<b>Start MPD</b>`mpd`<br><b>Start MPD but don't read from the configuration file</b>`mpd --no-config`<br><b>Start MPD and don't detach it from the console</b>`mpd --no-daemon`<br><b>Kill the currently running MPD session</b>`mpd --kill`


title: TLDR
content:
<b>Check for a running ssh-agent, and start one if needed</b>`keychain`<br><b>Also check for gpg-agent</b>`keychain --agents "[gpg,ssh]"`<br><b>List signatures of all active keys</b>`keychain --list`<br><b>List fingerprints of all active keys</b>`keychain --list-fp`<br><b>Add a timeout for identities added to the agent, in minutes</b>`keychain --timeout [minutes]`


title: TLDR
content:
<b>Build a specific project</b>`nx build [project]`<br><b>Test a specific project</b>`nx test [project]`<br><b>Execute a target on a specific project</b>`nx run [project]:[target]`<br><b>Execute a target on multiple projects</b>`nx run-many --target [target] --projects [project1],[project2]`<br><b>Execute a target on all projects in the workspace</b>`nx run-many --target [target] --all`<br><b>Execute a target only on projects that have been changed</b>`nx affected --target [target]`


title: TLDR
content:
<b>Run and generate a private key and certificate</b>`agate --content [path/to/content]/ --addr [[::]:1965] --addr [0.0.0.0:1965] --hostname [example.com] --lang [en-US]`<br><b>Run server</b>`agate [path/to/file]`<br><b>Display help</b>`agate [[-h|--help]]`


title: TLDR
content:
<b>Declare a string variable with the specified value</b>`local [variable]="[value]"`<br><b>Declare an integer variable with the specified value</b>`local -i [variable]="[value]"`<br><b>Declare an array variable with the specified value</b>`local [variable]=([item_a item_b item_c])`<br><b>Declare an associative array variable with the specified value</b>`local -A [variable]=([[key_a]=item_a [key_b]=item_b [key_c]=item_c])`<br><b>Declare a readonly variable with the specified value</b>`local -r [variable]="[value]"`<br><b>Display help</b>`local --help`


title: TLDR
content:
<b>Start DockerSlim on interactive mode</b>`docker-slim`<br><b>Analyze Docker layers from a specific image</b>`docker-slim xray --target [image:tag]`<br><b>Lint a Dockerfile</b>`docker-slim lint --target [path/to/Dockerfile]`<br><b>Analyze and generate an optimized Docker image</b>`docker-slim build [image:tag]`<br><b>Display help for a subcommand</b>`docker-slim [subcommand] --help`


title: TLDR
content:
<b>Create a new timesheet</b>`timetrap sheet [timesheet]`<br><b>Check in an entry started 5 minutes ago</b>`timetrap in --at "[5 minutes ago]" [entry_notes]`<br><b>Display the current timesheet</b>`timetrap display`<br><b>Edit the last entry's end time</b>`timetrap edit --end [time]`


title: TLDR
content:
<b>Uninstall a TeX Live package</b>`sudo tlmgr remove [package]`<br><b>Simulate uninstalling a package without making any changes</b>`tlmgr remove --dry-run [package]`<br><b>Uninstall a package without its dependencies</b>`sudo tlmgr remove --no-depends [package]`<br><b>Uninstall a package and back it up to a specific directory</b>`sudo tlmgr remove --backupdir [path/to/directory] [package]`<br><b>Uninstall all of TeX Live, asking for confirmation</b>`sudo tlmgr remove --all`


title: TLDR
content:
<b>Update Oh My Zsh</b>`omz update`<br><b>Print the changes from the latest update of Oh My Zsh</b>`omz changelog`<br><b>Restart the current Zsh session and Oh My Zsh</b>`omz reload`<br><b>List all available plugins</b>`omz plugin list`<br><b>List all enabled plugins</b>`omz plugin list --enabled`<br><b>Enable/Disable an Oh My Zsh plugin</b>`omz plugin [enable|disable] [plugin]`<br><b>List all available themes</b>`omz theme list`<br><b>Set an Oh My Zsh theme in ~/.zshrc</b>`omz theme set [theme]`


title: TLDR
content:
<b>List available tools</b>`go tool`<br><b>Run the go link tool</b>`go tool link [path/to/main.o]`<br><b>Print the command that would be executed, but do not execute it (similar to whereis)</b>`go tool -n [command] [arguments]`<br><b>View documentation for a specified tool</b>`go tool [command] --help`<br><b>List all available cross-compilation targets</b>`go tool dist list`


title: TLDR
content:
<b>Install a helm chart</b>`helm install [name] [repository_name]/[chart_name]`<br><b>Install a helm chart from an unpacked chart directory</b>`helm install [name] [path/to/source_directory]`<br><b>Install a helm chart from a URL</b>`helm install [package_name] [https://example.com/charts/packagename-1.2.3.tgz]`<br><b>Install a helm chart and generate a name</b>`helm install [repository_name]/[chart_name] [[-g|--generate-name]]`<br><b>Perform a dry run</b>`helm install [name] [repository_name]/[chart_name] --dry-run`<br><b>Install a helm chart with custom values</b>`helm install [name] [repository_name]/[chart_name] --set [parameter1]=[value1],[parameter2]=[value2]`<br><b>Install a helm chart passing a custom values file</b>`helm install [name] [repository_name]/[chart_name] [[-f|--values]] [path/to/values.yaml]`


title: TLDR
content:
<b>Create a new repository (requires the CVSROOT environment variable to be set externally)</b>`cvs -d [path/to/repository] init`<br><b>Add a project to the repository</b>`cvs import -m "[message]" [project_name] [version] [vendor]`<br><b>Checkout a project</b>`cvs checkout [project_name]`<br><b>Show changes made to files</b>`cvs diff [path/to/file]`<br><b>Add a file</b>`cvs add [path/to/file]`<br><b>Commit a file</b>`cvs commit -m "[message]" [path/to/file]`<br><b>Update the working directory from the remote repository</b>`cvs update`


title: TLDR
content:
<b>Print the source and destination IP addresses of all packets in a PCAP file</b>`ipsumdump --src --dst [path/to/file.pcap]`<br><b>Print the timestamps, source address, source port, destination address, destination port and protocol of all packets read from a given network interface</b>`ipsumdump --interface [eth0] -tsSdDp`<br><b>Print the anonymised source address, anonymised destination address, and IP packet length of all packets in a PCAP file</b>`ipsumdump --src --dst --length --anonymize [path/to/file.pcap]`


title: Help
content:
Oracle&nbsp;VM&nbsp;VirtualBox&nbsp;Guest&nbsp;Additions&nbsp;Command&nbsp;Line&nbsp;Management&nbsp;Interface&nbsp;Version&nbsp;6.1.30&nbsp;<br>(C)&nbsp;2008-2021&nbsp;Oracle&nbsp;Corporation&nbsp;<br>All&nbsp;rights&nbsp;reserved.&nbsp;<br><br><b>Usage:</b><br><br>VBoxControl&nbsp;[-V|--version]&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;print&nbsp;version&nbsp;number&nbsp;and&nbsp;exit&nbsp;<br>VBoxControl&nbsp;<b>--nologo</b>&nbsp;...&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;suppress&nbsp;the&nbsp;logo&nbsp;<br><br>VBoxControl&nbsp;guestproperty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;get&nbsp;<property>&nbsp;[--verbose]&nbsp;<br>VBoxControl&nbsp;guestproperty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;set&nbsp;<property>&nbsp;[<value>&nbsp;[--flags&nbsp;<flags>]]&nbsp;<br>VBoxControl&nbsp;guestproperty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;delete|unset&nbsp;<property>&nbsp;<br>VBoxControl&nbsp;guestproperty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;enumerate&nbsp;[--patterns&nbsp;<patterns>]&nbsp;<br>VBoxControl&nbsp;guestproperty&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wait&nbsp;<patterns>&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[--timestamp&nbsp;<last&nbsp;timestamp>]&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[--timeout&nbsp;<timeout&nbsp;in&nbsp;ms>&nbsp;<br>VBoxControl&nbsp;sharedfolder&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;list&nbsp;[--automount]&nbsp;<br>VBoxControl&nbsp;writecoredump&nbsp;<br>VBoxControl&nbsp;writelog&nbsp;[-n|--no-newline]&nbsp;[--]&nbsp;<msg>&nbsp;<br>VBoxControl&nbsp;takesnapshot&nbsp;<br>VBoxControl&nbsp;savestate&nbsp;<br>VBoxControl&nbsp;suspend&nbsp;<br>VBoxControl&nbsp;poweroff&nbsp;<br>VBoxControl&nbsp;help&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[command]&nbsp;<br>VBoxControl&nbsp;version&nbsp;<br>


title: Help
content:
[1mUsage:[22m&nbsp;&nbsp;&nbsp;[35mquarto[39m&nbsp;<br>&nbsp;&nbsp;[1mVersion:[22m&nbsp;[33m0.3.37&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;[1mDescription:[22m&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;Quarto&nbsp;CLI&nbsp;<br><br>&nbsp;&nbsp;[1mOptions:[22m&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;[34m-h[39m,&nbsp;[34m--help[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Show&nbsp;this&nbsp;help.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34m-V[39m,&nbsp;[34m--version[39m&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Show&nbsp;the&nbsp;version&nbsp;number&nbsp;for&nbsp;this&nbsp;program.&nbsp;&nbsp;&nbsp;<br><br>&nbsp;&nbsp;[1mCommands:[22m&nbsp;<br><br>&nbsp;&nbsp;&nbsp;&nbsp;[34mrender[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m[[39m[35minput[39m[33m][39m&nbsp;[33m[[39m[35margs...[39m[33m][39m&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Render&nbsp;input&nbsp;file(s)&nbsp;to&nbsp;various&nbsp;document&nbsp;types.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mserve[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m<[39m[35minput[39m[33m>[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Serve&nbsp;an&nbsp;interactive&nbsp;document.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mcreate-project[39m&nbsp;&nbsp;[33m[[39m[35mdir[39m[33m][39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Create&nbsp;a&nbsp;project&nbsp;for&nbsp;rendering&nbsp;multiple&nbsp;documents&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mpreview[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m[[39m[35mfile[39m[33m][39m&nbsp;[33m[[39m[35margs...[39m[33m][39m&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Render&nbsp;and&nbsp;preview&nbsp;a&nbsp;Quarto&nbsp;document&nbsp;or&nbsp;website&nbsp;project.&nbsp;Automatically&nbsp;reloads&nbsp;the&nbsp;browser&nbsp;when&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mconvert[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m[[39m[35minput[39m[33m][39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Convert&nbsp;documents&nbsp;to&nbsp;alternate&nbsp;representations.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mcapabilities[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Query&nbsp;for&nbsp;current&nbsp;capabilities&nbsp;(output&nbsp;formats,&nbsp;engines,&nbsp;kernels&nbsp;etc.)&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mcheck[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m[[39m[35mtarget[39m[33m][39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Check&nbsp;and&nbsp;verify&nbsp;correct&nbsp;functioning&nbsp;of&nbsp;Quarto&nbsp;installation&nbsp;and&nbsp;computation&nbsp;engines.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34minspect[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m[[39m[35mpath[39m[33m][39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Inspect&nbsp;a&nbsp;Quarto&nbsp;project&nbsp;or&nbsp;input&nbsp;path.&nbsp;Inspecting&nbsp;a&nbsp;project&nbsp;returns&nbsp;its&nbsp;config&nbsp;and&nbsp;engines.&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mtools[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m[[39m[35mcommand[39m[33m][39m&nbsp;[33m[[39m[35mtool[39m[33m][39m&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Manage&nbsp;the&nbsp;installation,&nbsp;update,&nbsp;and&nbsp;uninstallation&nbsp;of&nbsp;useful&nbsp;tools.&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<br>&nbsp;&nbsp;&nbsp;&nbsp;[34mhelp[39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[33m[[39m[35mcommand[39m[33m][39m&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;[31m[1m-[22m[39m&nbsp;Show&nbsp;this&nbsp;help&nbsp;or&nbsp;the&nbsp;help&nbsp;of&nbsp;a&nbsp;sub-command.&nbsp;<br>


title: SYNOPSIS
content:
<p><b>bitcoin-cli</b> [<em>options</em>] <em>&lt;command&gt; </em>[<em>params</em>] <em>Send command to Bitcoin Core</em><br />
<b>bitcoin-cli</b> [<em>options</em>] <em>-named &lt;command&gt; </em>[<em>name=value</em>]... <em>Send command to Bitcoin Core (with named arguments)</em><br />
<b>bitcoin-cli</b> [<em>options</em>] <em>help List commands</em><br />
<b>bitcoin-cli</b> [<em>options</em>] <em>help &lt;command&gt; Get help for a command</em></p>


title: OPTIONS
content:
<p>-?</p>
<blockquote>
<p>Print this help message and exit</p>
</blockquote>
<p><b>-addrinfo</b></p>
<blockquote>
<p>Get the number of addresses known to the node, per network and total.</p>
</blockquote>
<p><b>-conf=</b>&lt;file&gt;</p>
<blockquote>
<p>Specify configuration file. Relative paths will be prefixed by datadir location. (default: bitcoin.conf)</p>
</blockquote>
<p><b>-datadir=</b>&lt;dir&gt;</p>
<blockquote>
<p>Specify data directory</p>
</blockquote>
<p><b>-generate</b></p>
<blockquote>
<p>Generate blocks immediately, equivalent to RPC getnewaddress followed by RPC generatetoaddress. Optional positional integer arguments are number of blocks to generate (default: 1) and maximum iterations to try (default: 1000000), equivalent to RPC generatetoaddress nblocks and maxtries arguments. Example: bitcoin-cli <b>-generate</b> 4 1000</p>
</blockquote>
<p><b>-getinfo</b></p>
<blockquote>
<p>Get general information from the remote server. Note that unlike server-side RPC calls, the results of <b>-getinfo</b> is the result of multiple non-atomic requests. Some entries in the result may represent results from different states (e.g. wallet balance may be as of a different block from the chain state reported)</p>
</blockquote>
<p><b>-named</b></p>
<blockquote>
<p>Pass named instead of positional arguments (default: false)</p>
</blockquote>
<p><b>-netinfo</b></p>
<blockquote>
<p>Get network peer connection information from the remote server. An optional integer argument from 0 to 4 can be passed for different peers listings (default: 0). Pass "help" for detailed help documentation.</p>
</blockquote>
<p><b>-rpcclienttimeout=</b>&lt;n&gt;</p>
<blockquote>
<p>Timeout in seconds during HTTP requests, or 0 for no timeout. (default: 900)</p>
</blockquote>
<p><b>-rpcconnect=</b>&lt;ip&gt;</p>
<blockquote>
<p>Send commands to node running on &lt;ip&gt; (default: 127.0.0.1)</p>
</blockquote>
<p><b>-rpccookiefile=</b>&lt;loc&gt;</p>
<blockquote>
<p>Location of the auth cookie. Relative paths will be prefixed by a net-specific datadir location. (default: data dir)</p>
</blockquote>
<p><b>-rpcpassword=</b>&lt;pw&gt;</p>
<blockquote>
<p>Password for JSON-RPC connections</p>
</blockquote>
<p><b>-rpcport=</b>&lt;port&gt;</p>
<blockquote>
<p>Connect to JSON-RPC on &lt;port&gt; (default: 8332, testnet: 18332, signet: 38332, regtest: 18443)</p>
</blockquote>
<p><b>-rpcuser=</b>&lt;user&gt;</p>
<blockquote>
<p>Username for JSON-RPC connections</p>
</blockquote>
<p><b>-rpcwait</b></p>
<blockquote>
<p>Wait for RPC server to start</p>
</blockquote>
<p><b>-rpcwaittimeout=</b>&lt;n&gt;</p>
<blockquote>
<p>Timeout in seconds to wait for the RPC server to start, or 0 for no timeout. (default: 0)</p>
</blockquote>
<p><b>-rpcwallet=</b>&lt;walletname&gt;</p>
<blockquote>
<p>Send RPC for non-default wallet on RPC server (needs to exactly match corresponding <b>-wallet</b> option passed to bitcoind). This changes the RPC endpoint used, e.g. http://127.0.0.1:8332/wallet/&lt;walletname&gt;</p>
</blockquote>
<p><b>-stdin</b></p>
<blockquote>
<p>Read extra arguments from standard input, one per line until EOF/Ctrl-D (recommended for sensitive information such as passphrases). When combined with <b>-stdinrpcpass</b>, the first line from standard input is used for the RPC password.</p>
</blockquote>
<p><b>-stdinrpcpass</b></p>
<blockquote>
<p>Read RPC password from standard input as a single line. When combined with <b>-stdin</b>, the first line from standard input is used for the RPC password. When combined with <b>-stdinwalletpassphrase</b>, <b>-stdinrpcpass</b> consumes the first line, and <b>-stdinwalletpassphrase</b> consumes the second.</p>
</blockquote>
<p><b>-stdinwalletpassphrase</b></p>
<blockquote>
<p>Read wallet passphrase from standard input as a single line. When combined with <b>-stdin</b>, the first line from standard input is used for the wallet passphrase.</p>
</blockquote>
<p><b>-version</b></p>
<blockquote>
<p>Print version and exit</p>
</blockquote>
<p>Debugging/Testing options:</p>
<p>Chain selection options:</p>
<p><b>-chain=</b>&lt;chain&gt;</p>
<blockquote>
<p>Use the chain &lt;chain&gt; (default: main). Allowed values: main, test, signet, regtest</p>
</blockquote>
<p><b>-signet</b></p>
<blockquote>
<p>Use the signet chain. Equivalent to <b>-chain</b>=<em>signet</em>. Note that the network is defined by the <b>-signetchallenge</b> parameter</p>
</blockquote>
<p><b>-signetchallenge</b></p>
<blockquote>
<p>Blocks must satisfy the given script to be considered valid (only for signet networks; defaults to the global default signet test network challenge)</p>
</blockquote>
<p><b>-signetseednode</b></p>
<blockquote>
<p>Specify a seed node for the signet network, in the hostname[:port] format, e.g. sig.net:1234 (may be used multiple times to specify multiple seed nodes; defaults to the global default signet test network seed node(s))</p>
</blockquote>
<p><b>-testnet</b></p>
<blockquote>
<p>Use the test chain. Equivalent to <b>-chain</b>=<em>test</em>.</p>
</blockquote>


title: SYNOPSIS
content:
<p><em>yay</em> &lt;operation&gt; [options] [targets]</p>
<p><em>yay</em> &lt;search terms&gt;</p>
<p><em>yay</em></p>


title: DESCRIPTION
content:
<p>Yay is a Pacman wrapper with AUR support. It passes options to Makepkg and Pacman after resolving packages to install/upgrade.</p>
<p>This manpage only covers options unique to Yay. For other options see <b>pacman(8)</b>.</p>


title: YAY OPERATIONS
content:
<dl>
<dt><b>-Y, --yay</b></dt>
<dd><p>Perform yay specific operations. This is the default if no other operation is selected.</p>
</dd>
<dt><b>-P, --show</b></dt>
<dd><p>Perform yay specific print operations.</p>
</dd>
<dt><b>-G, --getpkgbuild</b></dt>
<dd><p>Downloads PKGBUILD from ABS or AUR. The ABS can only be used for Arch Linux repositories</p>
</dd>
</dl>
<p>If no arguments are provided 'yay -Syu' will be performed.</p>
<p>If no operation is selected -Y will be assumed.</p>


title: EXTENDED PACMAN OPERATIONS
content:
<dl>
<dt><b>-S, -Si, -Sl, -Ss, -Su, -Sc, -Qu</b></dt>
<dd><p>These operations are extended to support both AUR and repo packages.</p>
</dd>
<dt><b>-Sc</b></dt>
<dd><p>Yay will also clean cached AUR package and any untracked Files in the cache. Cleaning untracked files will wipe any downloaded sources or built packages but will keep already downloaded vcs sources.</p>
</dd>
<dt><b>-R</b></dt>
<dd><p>Yay will also remove cached data about devel packages.</p>
</dd>
</dl>


title: NEW OPTIONS
content:
<dl>
<dt><b>--repo</b></dt>
<dd><p>Assume all targets are from the repositories. Additionally Actions such as sysupgrade will only act on repository packages.</p>
</dd>
<dt><b>-a, --aur</b></dt>
<dd><p>Assume all targets are from the AUR. Additionally Actions such as sysupgrade will only act on AUR packages.</p>
</dd>
</dl>
<p>Note that dependency resolving will still act normally and include repository packages.</p>


title: YAY OPTIONS (APPLY TO -Y AND --YAY)
content:
<dl>
<dt><b>&lt;NO OPTION&gt;</b></dt>
<dd><p>Displays a list of packages matching the search terms and prompts the user on which packages to install (yogurt mode).</p>
</dd>
<dt><b>--gendb</b></dt>
<dd><p>Generate development package database. Tracks the latest commit for each development package, when there is a new commit Yay will know to update. This is done per package whenever a package is synced. This option should only be used when migrating to Yay from another AUR helper.</p>
</dd>
<dt><b>-c, --clean</b></dt>
<dd><p>Remove unneeded dependencies.</p>
</dd>
</dl>


title: SHOW OPTIONS (APPLY TO -P AND --SHOW)
content:
<dl>
<dt><b>-c, --complete</b></dt>
<dd><p>Print a list of all AUR and repo packages. This allows shell completion and is not intended to be used directly by the user.</p>
</dd>
<dt><b>-f, --fish</b></dt>
<dd><p>During complete adjust the output for the fish shell.</p>
</dd>
<dt><b>-d, --defaultconfig</b></dt>
<dd><p>Print default yay configuration.</p>
</dd>
<dt><b>-g, --currentconfig</b></dt>
<dd><p>Print current yay configuration.</p>
</dd>
<dt><b>-n, --numberupgrades</b></dt>
<dd><p>Deprecated, use <b>yay -Qu</b> and <b>wc -l</b> instead.</p>
</dd>
<dt><b>-s, --stats</b></dt>
<dd><p>Displays information about installed packages and system health. If there are orphaned, or out-of-date packages, or packages that no longer exist on the AUR; warnings will be displayed.</p>
</dd>
<dt><b>-u, --upgrades</b></dt>
<dd><p>Deprecated, use <b>yay -Qu</b> instead.</p>
</dd>
<dt><b>-w, --news</b></dt>
<dd><p>Print new news from the Archlinux homepage. News is considered new if it is newer than the build date of all native packages. Pass this twice to show all available news.</p>
</dd>
<dt><b>-q, --quiet</b></dt>
<dd><p>Only show titles when printing news.</p>
</dd>
</dl>


title: GETPKGBUILD OPTIONS (APPLY TO -G AND --GETPKGBUILD)
content:
<dl>
<dt><b>-f, --force</b></dt>
<dd><p>Force download for ABS packages that already exist in the current directory. This ensures directories are not accidentally overwritten.</p>
</dd>
<dt><b>-p, --print</b></dt>
<dd><p>Prints the PKGBUILD of the given packages to stdout.</p>
</dd>
</dl>


title: PERMANENT CONFIGURATION SETTINGS
content:
<dl>
<dt><b>--save</b></dt>
<dd><p>Causes the following options to be saved back to the config file. This provides an easy way to change config options without directly editing the file.</p>
</dd>
<dt><b>--aururl</b></dt>
<dd><p>Set an alternative AUR URL. This is mostly useful for users in China who wish to use https://aur.tuna.tsinghua.edu.cn/.</p>
</dd>
<dt><b>--builddir &lt;dir&gt;</b></dt>
<dd><p>Directory to use for Building AUR Packages. This directory is also used as the AUR cache when deciding if Yay should skip builds.</p>
</dd>
<dt><b>--editor &lt;command&gt;</b></dt>
<dd><p>Editor to use when editing PKGBUILDs. If this is not set the <b>EDITOR</b> environment variable will be checked, followed by <b>VISUAL</b>. If none of these are set Yay will prompt the user for an editor.</p>
</dd>
<dt><b>--editorflags &lt;flags&gt;</b></dt>
<dd><p>Passes arguments to the editor. These flags get passed to every instance where the editor is called by Yay. Arguments are split on whitespace before being passed to the editor. Multiple arguments may be passed by supplying a space separated list that is quoted by the shell.</p>
</dd>
<dt><b>--makepkg &lt;command&gt;</b></dt>
<dd><p>The command to use for <b>makepkg</b> calls. This can be a command in <b>PATH</b> or an absolute path to the file.</p>
</dd>
<dt><b>--pacman &lt;command&gt;</b></dt>
<dd><p>The command to use for <b>pacman</b> calls. This can be a command in <b>PATH</b> or an absolute path to the file.</p>
</dd>
<dt><b>--tar &lt;command&gt;</b></dt>
<dd><p>The command to use for <b>bsdtar</b> calls. This can be a command in <b>PATH</b> or an absolute path to the file.</p>
</dd>
<dt><b>--git &lt;command&gt;</b></dt>
<dd><p>The command to use for <b>git</b> calls. This can be a command in <b>PATH</b> or an absolute path to the file.</p>
</dd>
<dt><b>--gpg &lt;command&gt;</b></dt>
<dd><p>The command to use for <b>gpg</b> calls. This can be a command in <b>PATH</b> or an absolute path to the file.</p>
</dd>
<dt><b>--config &lt;file&gt;</b></dt>
<dd><p>The pacman config file to use.</p>
</dd>
<dt><b>--makepkgconf &lt;file&gt;</b></dt>
<dd><p>The config file for makepkg to use. If this is not set then the default config file will be used.</p>
</dd>
<dt><b>--nomakepkgconf</b></dt>
<dd><p>Reset the makepkg config file back to its default.</p>
</dd>
<dt><b>--requestsplitn &lt;number&gt;</b></dt>
<dd><p>The maximum amount of packages to request per AUR query. The higher the number the faster AUR requests will be. Requesting too many packages in one AUR query will cause an error. This should only make a noticeable difference with very large requests (&gt;500) packages.</p>
</dd>
<dt><b>--completioninterval &lt;days&gt;</b></dt>
<dd><p>Time in days to refresh the completion cache. Setting this to 0 will cause the cache to be refreshed every time, while setting this to -1 will cause the cache to never be refreshed.</p>
</dd>
<dt><b>--sortby &lt;votes|popularity|id|baseid|name|base|submitted|modified&gt;</b></dt>
<dd><p>Sort AUR results by a specific field during search.</p>
</dd>
<dt><b>--searchby &lt;name|name-desc|maintainer|depends|checkdepends|makedepends|optdepends&gt;</b></dt>
<dd><p>Search for AUR packages by querying the specified field.</p>
</dd>
<dt><b>--answerclean &lt;All|None|Installed|NotInstalled|...&gt;</b></dt>
<dd><p>Set a predetermined answer for the clean build menu question. This answer will be used instead of reading from standard input but will be parsed exactly the same.</p>
</dd>
<dt><b>--answerdiff &lt;All|None|Installed|NotInstalled|...&gt;</b></dt>
<dd><p>Set a predetermined answer for the edit diff menu question. This answer will be used instead of reading from standard input but will be parsed exactly the same.</p>
</dd>
<dt><b>--answeredit &lt;All|None|Installed|NotInstalled|...&gt;</b></dt>
<dd><p>Set a predetermined answer for the edit pkgbuild menu question. This answer will be used instead of reading from standard input but will be parsed exactly the same.</p>
</dd>
<dt><b>--answerupgrade &lt;Repo|^Repo|None|...&gt;</b></dt>
<dd><p>Set a predetermined answer for the upgrade menu question. Selects which package ranges or repos to omit for updates. This answer will be used instead of reading from standard input but will be treated exactly the same.</p>
</dd>
<dt><b>--noanswerclean</b></dt>
<dd><p>Unset the answer for the clean build menu.</p>
</dd>
<dt><b>--noanswerdiff</b></dt>
<dd><p>Unset the answer for the diff menu.</p>
</dd>
<dt><b>--noansweredit</b></dt>
<dd><p>Unset the answer for the edit pkgbuild menu.</p>
</dd>
<dt><b>--noanswerupgrade</b></dt>
<dd><p>Unset the answer for the upgrade menu.</p>
</dd>
<dt><b>--cleanmenu</b></dt>
<dd><p>Show the clean menu. This menu gives you the chance to fully delete the downloaded build files from Yay's cache before redownloading a fresh copy.</p>
</dd>
<dt><b>--diffmenu</b></dt>
<dd><p>Show the diff menu. This menu gives you the option to view diffs from build files before building.</p>
</dd>
</dl>
<p>Diffs are shown via <b>git diff</b> which uses less by default. This behaviour can be changed via git's config, the <b>$GIT_PAGER</b> or <b>$PAGER</b> environment variables.</p>
<dl>
<dt><b>--editmenu</b></dt>
<dd><p>Show the edit menu. This menu gives you the option to edit or view PKGBUILDs before building.</p>
</dd>
</dl>
<p><b>Warning</b>: Yay resolves dependencies ahead of time via the RPC. It is not recommended to edit pkgbuild variables unless you know what you are doing.</p>
<dl>
<dt><b>--upgrademenu</b></dt>
<dd><p>Show a detailed list of updates in a similar format to VerbosePkgLists. Upgrades can also be skipped using numbers, number ranges or repo names. Additionally ^ can be used to invert the selection.</p>
</dd>
</dl>
<p><b>Warning</b>: It is not recommended to skip updates from the repositories as this can lead to partial upgrades. This feature is intended to easily skip AUR updates on the fly that may be broken or have a long compile time. Ultimately it is up to the user what upgrades they skip.</p>
<dl>
<dt><b>--nocleanmenu</b></dt>
<dd><p>Do not show the clean menu.</p>
</dd>
<dt><b>--nodiffmenu</b></dt>
<dd><p>Do not show the diff menu.</p>
</dd>
<dt><b>--noeditmenu</b></dt>
<dd><p>Do not show the edit menu.</p>
</dd>
<dt><b>--noupgrademenu</b></dt>
<dd><p>Do not show the upgrade menu.</p>
</dd>
<dt><b>--askremovemake</b></dt>
<dd><p>Ask to remove makedepends after installing packages.</p>
</dd>
<dt><b>--removemake</b></dt>
<dd><p>Remove makedepends after installing packages.</p>
</dd>
<dt><b>--noremovemake</b></dt>
<dd><p>Do not remove makedepends after installing packages.</p>
</dd>
<dt><b>--topdown</b></dt>
<dd><p>Display repository packages first and then AUR packages.</p>
</dd>
<dt><b>--bottomup</b></dt>
<dd><p>Show AUR packages first and then repository packages.</p>
</dd>
<dt><b>--singlelineresults</b></dt>
<dd><p>Override pacman's usual double-line search result format and list each result on its own line.</p>
</dd>
<dt><b>--doublelineresults</b></dt>
<dd><p>Follow pacman's double-line search result format and list each result using two lines.</p>
</dd>
<dt><b>--devel</b></dt>
<dd><p>During sysupgrade also check AUR development packages for updates. Currently only Git packages are supported.</p>
</dd>
</dl>
<p>Devel checking is done using <b>git ls-remote</b>. The newest commit hash is compared against the hash at install time. This allows devel updates to be checked almost instantly and not require the original pkgbuild to be downloaded.</p>
<p>The slower pacaur-like devel checks can be implemented manually by piping a list of packages into yay (see <b>examples</b>).</p>
<dl>
<dt><b>--nodevel</b></dt>
<dd><p>Do not check for development packages updates during sysupgrade.</p>
</dd>
<dt><b>--cleanafter</b></dt>
<dd><p>Remove untracked files after installation.</p>
</dd>
</dl>
<p>Untracked files are removed with the exception of directories. This allows VCS packages to easily pull an update instead of having to reclone the entire repo.</p>
<dl>
<dt><b>--nocleanafter</b></dt>
<dd><p>Do not remove package sources after successful Install.</p>
</dd>
<dt><b>--timeupdate</b></dt>
<dd><p>During sysupgrade also compare the build time of installed packages against the last modification time of each package's AUR page.</p>
</dd>
<dt><b>--notimeupdate</b></dt>
<dd><p>Do not consider build times during sysupgrade.</p>
</dd>
<dt><b>--redownload</b></dt>
<dd><p>Always download pkgbuilds of targets even when a copy is available in cache.</p>
</dd>
<dt><b>--redownloadall</b></dt>
<dd><p>Always download pkgbuilds of all AUR packages even when a copy is available in cache.</p>
</dd>
<dt><b>--noredownload</b></dt>
<dd><p>When downloading pkgbuilds if the pkgbuild is found in cache and is equal or newer than the AUR's version use that instead of downloading a new one.</p>
</dd>
<dt><b>--provides</b></dt>
<dd><p>Look for matching providers when searching for AUR packages. When multiple providers are found a menu will appear prompting you to pick one. This increases dependency resolve time although this should not be noticeable.</p>
</dd>
<dt><b>--noprovides</b></dt>
<dd><p>Do not look for matching providers when searching for AUR packages. Yay will never show its provider menu but Pacman will still show its provider menu for repo packages.</p>
</dd>
<dt><b>--pgpfetch</b></dt>
<dd><p>Prompt to import unknown PGP keys from the <b>validpgpkeys</b> field of each PKGBUILD.</p>
</dd>
<dt><b>--nopgpfetch</b></dt>
<dd><p>Do not prompt to import unknown PGP keys. This is likely to cause a build failure unless using options such as <b>--skippgpcheck</b> or a customized gpg config.</p>
</dd>
<dt><b>--useask</b></dt>
<dd><p>Use pacman's --ask flag to automatically confirm package conflicts. Yay lists conflicts ahead of time. It is possible that Yay does not detect a conflict, causing a package to be removed without the user's confirmation. However, this is very unlikely.</p>
</dd>
<dt><b>--nouseask</b></dt>
<dd><p>Manually resolve package conflicts during the install. Packages which do not conflict will not need to be confined manually.</p>
</dd>
<dt><b>--combinedupgrade</b></dt>
<dd><p>During sysupgrade, Yay will first perform a refresh, then show its combined menu of repo and AUR packages that will be upgraded. Then after reviewing the pkgbuilds, the repo and AUR upgrade will start with no need for manual intervention.</p>
</dd>
</dl>
<p>If Yay exits for any reason After the refresh without upgrading. It is then the user's responsibility to either resolve the reason Yay exited or run a sysupgrade through pacman directly.</p>
<dl>
<dt><b>--nocombinedupgrade</b></dt>
<dd><p>During sysupgrade, Pacman -Syu will be called, then the AUR upgrade will start. This means the upgrade menu and pkgbuild review will be performed after the sysupgrade has finished.</p>
</dd>
<dt><b>--batchinstall</b></dt>
<dd><p>When building and installing AUR packages instead of installing each package after building, queue each package for install. Then once either all packages are built or a package in the build queue is needed as a dependency to build another package, install all the packages in the install queue.</p>
</dd>
<dt><b>--nobatchinstall</b></dt>
<dd><p>Always install AUR packages immediately after building them.</p>
</dd>
<dt><b>--rebuild</b></dt>
<dd><p>Always build target packages even when a copy is available in cache.</p>
</dd>
<dt><b>--rebuildall</b></dt>
<dd><p>Always build all AUR packages even when a copy is available in cache.</p>
</dd>
<dt><b>--rebuildtree</b></dt>
<dd><p>When installing an AUR package rebuild and reinstall all of its AUR dependencies recursively, even the ones already installed. This flag allows you to easily rebuild packages against your current system's libraries if they have become incompatible.</p>
</dd>
<dt><b>--norebuild</b></dt>
<dd><p>When building packages if the package is found in cache and is an equal version to the one wanted skip the package build and use the existing package.</p>
</dd>
<dt><b>--mflags &lt;flags&gt;</b></dt>
<dd><p>Passes arguments to makepkg. These flags get passed to every instance where makepkg is called by Yay. Arguments are split on whitespace before being passed to makepkg. Multiple arguments may be passed by supplying a space separated list that is quoted by the shell.</p>
</dd>
<dt><b>--gpgflags &lt;flags&gt;</b></dt>
<dd><p>Passes arguments to gpg. These flags get passed to every instance where gpg is called by Yay. Arguments are split on whitespace before being passed to gpg. Multiple arguments may be passed by supplying a space separated list that is quoted by the shell.</p>
</dd>
<dt><b>--sudo &lt;command&gt;</b></dt>
<dd><p>The command to use for <b>sudo</b> calls. This can be a command in <b>PATH</b> or an absolute path to the file. The sudoloop is not guaranteed to work with a custom <b>sudo</b> command.</p>
</dd>
<dt><b>--sudoflags &lt;flags&gt;</b></dt>
<dd><p>Passes arguments to sudo. These flags get passed to every instance where sudo is called by Yay. Arguments are split on whitespace before being passed to sudo. Multiple arguments may be passed by supplying a space separated list that is quoted by the shell.</p>
</dd>
<dt><b>--sudoloop</b></dt>
<dd><p>Loop sudo calls in the background to prevent sudo from timing out during long builds.</p>
</dd>
<dt><b>--nosudoloop</b></dt>
<dd><p>Do not loop sudo calls in the background.</p>
</dd>
</dl>


title: EXAMPLES
content:
<dl>
<dt>yay <em>foo</em></dt>
<dd><p>Search and install from the repos and the <b>AUR</b> using yogurt mode.</p>
</dd>
<dt>yay -Syu</dt>
<dd><p>Update package list and upgrade all currently installed repo and <b>AUR</b>.</p>
</dd>
<dt>yay -Sua</dt>
<dd><p>Update all currently installed <b>AUR</b> packages.</p>
</dd>
<dt>yay -S <em>foo</em></dt>
<dd><p>Installs package <em>foo</em> from the repos or the <b>AUR</b>.</p>
</dd>
<dt>yay -Ss <em>foo</em></dt>
<dd><p>Searches for package <em>foo</em> on the repos or the <b>AUR</b>.</p>
</dd>
<dt>yay -Si <em>foo</em></dt>
<dd><p>Gets information about package <em>foo</em> from the repos or the <b>AUR</b>.</p>
</dd>
<dt>yay -S <em>foo</em> --mflags "--skipchecksums --skippgpcheck"</dt>
<dd><p>Installs <em>foo</em> while skipping checksums and pgp checks.</p>
</dd>
<dt>yay --devel --save</dt>
<dd><p>Sets devel to true in the config.</p>
</dd>
<dt>yay -P --stats</dt>
<dd><p>Shows statistics for installed packages and system health.</p>
</dd>
<dt>pacman -Qmq | grep -Ee '-(cvs|svn|git|hg|bzr|darcs)$' | yay -S --needed -</dt>
<dd><p>pacaur-like devel check.</p>
</dd>
</dl>


title: ENVIRONMENT VARIABLES
content:
<dl>
<dt><b>AURDEST</b></dt>
<dd><p>Can be set to configure the build directory.</p>
</dd>
</dl>
<p>Overridden by --builddir.</p>
<dl>
<dt><b>VISUAL, EDITOR</b></dt>
<dd><p>When editor is not configured, use these variables to pick what editor to use when editing PKGBUILDS.</p>
</dd>
</dl>


title: FILES
content:
<dl>
<dt><b>CONFIG DIRECTORY</b></dt>
<dd><p>The config directory is <em>$XDG_CONFIG_HOME/yay/</em>. If <b>$XDG_CONFIG_HOME</b> is unset, the config directory will fall back to <em>$HOME/.config/yay</em>.</p>
</dd>
</dl>
<p><em>config.json</em> Is used to store all of Yay's config options. Editing this file should be done through Yay, using the options mentioned in <b>PERMANENT CONFIGURATION SETTINGS</b>.</p>
<dl>
<dt><b>CACHE DIRECTORY</b></dt>
<dd><p>The cache directory is <em>$XDG_CACHE_HOME/yay/</em>. If <b>$XDG_CACHE_HOME</b> is unset, the cache directory will fall back to <em>$HOME/.cache/yay</em>.</p>
</dd>
</dl>
<p><em>completion.cache</em> holds a list of of all packages, including the AUR, for shell completion. By default the completion files are refreshed every 7 days.</p>
<p><em>vcs.json</em> tracks VCS packages and the latest commit of each source. If any of these commits change the package will be upgraded during a devel update.</p>
<dl>
<dt><b>BUILD DIRECTORY</b></dt>
<dd><p>Unless otherwise set this should be the same as <b>CACHE DIRECTORY</b>. This directory is used to store downloaded AUR Packages as well as any source files and built packages from those packages.</p>
</dd>
<dt><b>PACMAN.CONF</b></dt>
<dd><p>Yay uses Pacman's config file to set certain pacman options either through go-alpm or Yay itself. Options inherited include most libalpm options and pacman options.</p>
</dd>
</dl>
<p>Notably: <b>Databases</b>, <b>Color</b> and <b>*Path/*Dir</b> options are used.</p>


title: SEE ALSO
content:
<p><b>makepkg</b>(8), <b>makepkg.conf</b>(5), <b>PKGBUILD</b>(5), <b>pacman</b>(8), <b>pacman.conf</b>(5)</p>
<p>See the arch wiki at https://wiki.archlinux.org/index.php/Arch_User_Repository for more info on the <b>AUR</b>.</p>


title: SYNOPSIS
content:
<p><b>rg</b> [<em>OPTIONS</em>] <em>PATTERN</em> [<em>PATH</em>...]</p>
<p><b>rg</b> [<em>OPTIONS</em>] <b>-e</b> <em>PATTERN</em>... [<em>PATH</em>...]</p>
<p><b>rg</b> [<em>OPTIONS</em>] <b>-f</b> <em>PATTERNFILE</em>... [<em>PATH</em>...]</p>
<p><b>rg</b> [<em>OPTIONS</em>] <b>--files</b> [<em>PATH</em>...]</p>
<p><b>rg</b> [<em>OPTIONS</em>] <b>--type-list</b></p>
<p><b>command</b> | <b>rg</b> [<em>OPTIONS</em>] <em>PATTERN</em></p>
<p><b>rg</b> [<em>OPTIONS</em>] <b>--help</b></p>
<p><b>rg</b> [<em>OPTIONS</em>] <b>--version</b></p>


title: DESCRIPTION
content:
<p>ripgrep (rg) recursively searches the current directory for a regex pattern. By default, ripgrep will respect your .gitignore and automatically skip hidden files/directories and binary files.</p>
<p>ripgrep’s default regex engine uses finite automata and guarantees linear time searching. Because of this, features like backreferences and arbitrary look-around are not supported. However, if ripgrep is built with PCRE2, then the <b>--pcre2</b> flag can be used to enable backreferences and look-around.</p>
<p>ripgrep supports configuration files. Set <b>RIPGREP_CONFIG_PATH</b> to a configuration file. The file can specify one shell argument per line. Lines starting with <b>#</b> are ignored. For more details, see the man page or the <b>README</b>.</p>
<p>ripgrep will automatically detect if stdin exists and search stdin for a regex pattern, e.g. <b>ls | rg foo</b>. In some environments, stdin may exist when it shouldn’t. To turn off stdin detection explicitly specify the directory to search, e.g. <b>rg foo ./</b>.</p>
<p>Tip: to disable all smart filtering and make ripgrep behave a bit more like classical grep, use <b>rg -uuu</b>.</p>


title: REGEX SYNTAX
content:
<p>ripgrep uses Rust’s regex engine by default, which documents its syntax: &lt;https://docs.rs/regex/*/regex/#syntax&gt;</p>
<p>ripgrep uses byte-oriented regexes, which has some additional documentation: &lt;https://docs.rs/regex/*/regex/bytes/index.html#syntax&gt;</p>
<p>To a first approximation, ripgrep uses Perl-like regexes without look-around or backreferences. This makes them very similar to the "extended" (ERE) regular expressions supported by <b>egrep</b>, but with a few additional features like Unicode character classes.</p>
<p>If you’re using ripgrep with the <b>--pcre2</b> flag, then please consult &lt;https://www.pcre.org&gt; or the PCRE2 man pages for documentation on the supported syntax.</p>


title: POSITIONAL ARGUMENTS
content:
<p><em>PATTERN</em></p>
<blockquote>
<p>A regular expression used for searching. To match a pattern beginning with a dash, use the -e/--regexp option.</p>
</blockquote>
<p><em>PATH</em></p>
<blockquote>
<p>A file or directory to search. Directories are searched recursively. File paths specified explicitly on the command line override glob and ignore rules.</p>
</blockquote>


title: OPTIONS
content:
<p>Note that many options can be disabled via flags. In some cases, those flags are not listed in a first class way below. For example, the <b>--column</b> flag (listed below) enables column numbers in ripgrep’s output, but the <b>--no-column</b> flag (not listed below) disables them. The reverse can also exist. For example, the <b>--no-ignore</b> flag (listed below) disables ripgrep’s <b>gitignore</b> logic, but the <b>--ignore</b> flag (not listed below) enables it. These flags are useful for overriding a ripgrep configuration file on the command line. Each flag’s documentation notes whether an inverted flag exists. In all cases, the flag specified last takes precedence.</p>
<p><b>-A, --after-context</b> <em>NUM</em></p>
<blockquote>
<p>Show NUM lines after each match.</p>
<p>This overrides the --context and --passthru flags.</p>
</blockquote>
<p><b>--auto-hybrid-regex</b></p>
<blockquote>
<p>DEPRECATED. Use --engine instead.</p>
<p>When this flag is used, ripgrep will dynamically choose between supported regex engines depending on the features used in a pattern. When ripgrep chooses a regex engine, it applies that choice for every regex provided to ripgrep (e.g., via multiple -e/--regexp or -f/--file flags).</p>
<p>As an example of how this flag might behave, ripgrep will attempt to use its default finite automata based regex engine whenever the pattern can be successfully compiled with that regex engine. If PCRE2 is enabled and if the pattern given could not be compiled with the default regex engine, then PCRE2 will be automatically used for searching. If PCRE2 isn’t available, then this flag has no effect because there is only one regex engine to choose from.</p>
<p>In the future, ripgrep may adjust its heuristics for how it decides which regex engine to use. In general, the heuristics will be limited to a static analysis of the patterns, and not to any specific runtime behavior observed while searching files.</p>
<p>The primary downside of using this flag is that it may not always be obvious which regex engine ripgrep uses, and thus, the match semantics or performance profile of ripgrep may subtly and unexpectedly change. However, in many cases, all regex engines will agree on what constitutes a match and it can be nice to transparently support more advanced regex features like look-around and backreferences without explicitly needing to enable them.</p>
<p>This flag can be disabled with --no-auto-hybrid-regex.</p>
</blockquote>
<p><b>-B, --before-context</b> <em>NUM</em></p>
<blockquote>
<p>Show NUM lines before each match.</p>
<p>This overrides the --context and --passthru flags.</p>
</blockquote>
<p><b>--binary</b></p>
<blockquote>
<p>Enabling this flag will cause ripgrep to search binary files. By default, ripgrep attempts to automatically skip binary files in order to improve the relevance of results and make the search faster.</p>
<p>Binary files are heuristically detected based on whether they contain a NUL byte or not. By default (without this flag set), once a NUL byte is seen, ripgrep will stop searching the file. Usually, NUL bytes occur in the beginning of most binary files. If a NUL byte occurs after a match, then ripgrep will still stop searching the rest of the file, but a warning will be printed.</p>
<p>In contrast, when this flag is provided, ripgrep will continue searching a file even if a NUL byte is found. In particular, if a NUL byte is found then ripgrep will continue searching until either a match is found or the end of the file is reached, whichever comes sooner. If a match is found, then ripgrep will stop and print a warning saying that the search stopped prematurely.</p>
<p>If you want ripgrep to search a file without any special NUL byte handling at all (and potentially print binary data to stdout), then you should use the <em>-a/--text</em> flag.</p>
<p>The <em>--binary</em> flag is a flag for controlling ripgrep’s automatic filtering mechanism. As such, it does not need to be used when searching a file explicitly or when searching stdin. That is, it is only applicable when recursively searching a directory.</p>
<p>Note that when the <em>-u/--unrestricted</em> flag is provided for a third time, then this flag is automatically enabled.</p>
<p>This flag can be disabled with <em>--no-binary</em>. It overrides the <em>-a/--text</em> flag.</p>
</blockquote>
<p><b>--block-buffered</b></p>
<blockquote>
<p>When enabled, ripgrep will use block buffering. That is, whenever a matching line is found, it will be written to an in-memory buffer and will not be written to stdout until the buffer reaches a certain size. This is the default when ripgrep’s stdout is redirected to a pipeline or a file. When ripgrep’s stdout is connected to a terminal, line buffering will be used. Forcing block buffering can be useful when dumping a large amount of contents to a terminal.</p>
<p>Forceful block buffering can be disabled with --no-block-buffered. Note that using --no-block-buffered causes ripgrep to revert to its default behavior of automatically detecting the buffering strategy. To force line buffering, use the --line-buffered flag.</p>
</blockquote>
<p><b>-b, --byte-offset</b></p>
<blockquote>
<p>Print the 0-based byte offset within the input file before each line of output. If -o (--only-matching) is specified, print the offset of the matching part itself.</p>
<p>If ripgrep does transcoding, then the byte offset is in terms of the the result of transcoding and not the original data. This applies similarly to another transformation on the source, such as decompression or a --pre filter. Note that when the PCRE2 regex engine is used, then UTF-8 transcoding is done by default.</p>
</blockquote>
<p><b>-s, --case-sensitive</b></p>
<blockquote>
<p>Search case sensitively.</p>
<p>This overrides the -i/--ignore-case and -S/--smart-case flags.</p>
</blockquote>
<p><b>--color</b> <em>WHEN</em></p>
<blockquote>
<p>This flag controls when to use colors. The default setting is <em>auto</em>, which means ripgrep will try to guess when to use colors. For example, if ripgrep is printing to a terminal, then it will use colors, but if it is redirected to a file or a pipe, then it will suppress color output. ripgrep will suppress color output in some other circumstances as well. For example, if the TERM environment variable is not set or set to <em>dumb</em>, then ripgrep will not use colors.</p>
<p>The possible values for this flag are:</p>
<blockquote>
<pre><code>never    Colors will never be used.
auto     The default. ripgrep tries to be smart.
always   Colors will always be used regardless of where output is sent.
ansi     Like &#39;always&#39;, but emits ANSI escapes (even in a Windows console).</code></pre>
</blockquote>
<p>When the --vimgrep flag is given to ripgrep, then the default value for the --color flag changes to <em>never</em>.</p>
</blockquote>
<p><b>--colors</b> <em>COLOR_SPEC</em> ...</p>
<blockquote>
<p>This flag specifies color settings for use in the output. This flag may be provided multiple times. Settings are applied iteratively. Colors are limited to one of eight choices: red, blue, green, cyan, magenta, yellow, white and black. Styles are limited to nobold, bold, nointense, intense, nounderline or underline.</p>
<p>The format of the flag is <em>{type}:{attribute}:{value}</em>. <em>{type}</em> should be one of path, line, column or match. <em>{attribute}</em> can be fg, bg or style. <em>{value}</em> is either a color (for fg and bg) or a text style. A special format, <em>{type}:none</em>, will clear all color settings for <em>{type}</em>.</p>
<p>For example, the following command will change the match color to magenta and the background color for line numbers to yellow:</p>
<blockquote>
<pre><code>rg --colors &#39;match:fg:magenta&#39; --colors &#39;line:bg:yellow&#39; foo.</code></pre>
</blockquote>
<p>Extended colors can be used for <em>{value}</em> when the terminal supports ANSI color sequences. These are specified as either <em>x</em> (256-color) or <em>x,x,x</em> (24-bit truecolor) where x is a number between 0 and 255 inclusive. x may be given as a normal decimal number or a hexadecimal number, which is prefixed by <code>0x</code>.</p>
<p>For example, the following command will change the match background color to that represented by the rgb value (0,128,255):</p>
<blockquote>
<pre><code>rg --colors &#39;match:bg:0,128,255&#39;</code></pre>
</blockquote>
<p>or, equivalently,</p>
<blockquote>
<pre><code>rg --colors &#39;match:bg:0x0,0x80,0xFF&#39;</code></pre>
</blockquote>
<p>Note that the the intense and nointense style flags will have no effect when used alongside these extended color codes.</p>
</blockquote>
<p><b>--column</b></p>
<blockquote>
<p>Show column numbers (1-based). This only shows the column numbers for the first match on each line. This does not try to account for Unicode. One byte is equal to one column. This implies --line-number.</p>
<p>This flag can be disabled with --no-column.</p>
</blockquote>
<p><b>-C, --context</b> <em>NUM</em></p>
<blockquote>
<p>Show NUM lines before and after each match. This is equivalent to providing both the -B/--before-context and -A/--after-context flags with the same value.</p>
<p>This overrides both the -B/--before-context and -A/--after-context flags, in addition to the --passthru flag.</p>
</blockquote>
<p><b>--context-separator</b> <em>SEPARATOR</em></p>
<blockquote>
<p>The string used to separate non-contiguous context lines in the output. This is only used when one of the context flags is used (-A, -B or -C). Escape sequences like \x7F or \t may be used. The default value is --.</p>
<p>When the context separator is set to an empty string, then a line break is still inserted. To completely disable context separators, use the --no-context-separator flag.</p>
</blockquote>
<p><b>-c, --count</b></p>
<blockquote>
<p>This flag suppresses normal output and shows the number of lines that match the given patterns for each file searched. Each file containing a match has its path and count printed on each line. Note that this reports the number of lines that match and not the total number of matches, unless -U/--multiline is enabled. In multiline mode, --count is equivalent to --count-matches.</p>
<p>If only one file is given to ripgrep, then only the count is printed if there is a match. The --with-filename flag can be used to force printing the file path in this case. If you need a count to be printed regardless of whether there is a match, then use --include-zero.</p>
<p>This overrides the --count-matches flag. Note that when --count is combined with --only-matching, then ripgrep behaves as if --count-matches was given.</p>
</blockquote>
<p><b>--count-matches</b></p>
<blockquote>
<p>This flag suppresses normal output and shows the number of individual matches of the given patterns for each file searched. Each file containing matches has its path and match count printed on each line. Note that this reports the total number of individual matches and not the number of lines that match.</p>
<p>If only one file is given to ripgrep, then only the count is printed if there is a match. The --with-filename flag can be used to force printing the file path in this case.</p>
<p>This overrides the --count flag. Note that when --count is combined with --only-matching, then ripgrep behaves as if --count-matches was given.</p>
</blockquote>
<p><b>--crlf</b></p>
<blockquote>
<p>When enabled, ripgrep will treat CRLF (<em>\r\n</em>) as a line terminator instead of just <em>\n</em>.</p>
<p>Principally, this permits <em>$</em> in regex patterns to match just before CRLF instead of just before LF. The underlying regex engine may not support this natively, so ripgrep will translate all instances of <em>$</em> to <em>(?:\r??$)</em>. This may produce slightly different than desired match offsets. It is intended as a work-around until the regex engine supports this natively.</p>
<p>CRLF support can be disabled with --no-crlf.</p>
</blockquote>
<p><b>--debug</b></p>
<blockquote>
<p>Show debug messages. Please use this when filing a bug report.</p>
<p>The --debug flag is generally useful for figuring out why ripgrep skipped searching a particular file. The debug messages should mention all files skipped and why they were skipped.</p>
<p>To get even more debug output, use the --trace flag, which implies --debug along with additional trace data. With --trace, the output could be quite large and is generally more useful for development.</p>
</blockquote>
<p><b>--dfa-size-limit</b> <em>NUM+SUFFIX?</em></p>
<blockquote>
<p>The upper size limit of the regex DFA. The default limit is 10M. This should only be changed on very large regex inputs where the (slower) fallback regex engine may otherwise be used if the limit is reached.</p>
<p>The argument accepts the same size suffixes as allowed in with the --max-filesize flag.</p>
</blockquote>
<p><b>-E, --encoding</b> <em>ENCODING</em></p>
<blockquote>
<p>Specify the text encoding that ripgrep will use on all files searched. The default value is <em>auto</em>, which will cause ripgrep to do a best effort automatic detection of encoding on a per-file basis. Automatic detection in this case only applies to files that begin with a UTF-8 or UTF-16 byte-order mark (BOM). No other automatic detection is performed. One can also specify <em>none</em> which will then completely disable BOM sniffing and always result in searching the raw bytes, including a BOM if it’s present, regardless of its encoding.</p>
<p>Other supported values can be found in the list of labels here: &lt;https://encoding.spec.whatwg.org/#concept-encoding-get&gt;</p>
<p>For more details on encoding and how ripgrep deals with it, see GUIDE.md.</p>
<p>This flag can be disabled with --no-encoding.</p>
</blockquote>
<p><b>--engine</b> <em>ENGINE</em></p>
<blockquote>
<p>Specify which regular expression engine to use. When you choose a regex engine, it applies that choice for every regex provided to ripgrep (e.g., via multiple -e/--regexp or -f/--file flags).</p>
<p>Accepted values are <em>default</em>, <em>pcre2</em>, or <em>auto</em>.</p>
<p>The default value is <em>default</em>, which is the fastest and should be good for most use cases. The <em>pcre2</em> engine is generally useful when you want to use features such as look-around or backreferences. <em>auto</em> will dynamically choose between supported regex engines depending on the features used in a pattern on a best effort basis.</p>
<p>Note that the <em>pcre2</em> engine is an optional ripgrep feature. If PCRE2 wasn’t included in your build of ripgrep, then using this flag will result in ripgrep printing an error message and exiting.</p>
<p>This overrides previous uses of --pcre2 and --auto-hybrid-regex flags.</p>
</blockquote>
<p><b>--field-context-separator</b> <em>SEPARATOR</em></p>
<blockquote>
<p>Set the field context separator, which is used to delimit file paths, line numbers, columns and the context itself, when printing contextual lines. The separator may be any number of bytes, including zero. Escape sequences like \x7F or \t may be used. The default value is -.</p>
</blockquote>
<p><b>--field-match-separator</b> <em>SEPARATOR</em></p>
<blockquote>
<p>Set the field match separator, which is used to delimit file paths, line numbers, columns and the match itself. The separator may be any number of bytes, including zero. Escape sequences like \x7F or \t may be used. The default value is -.</p>
</blockquote>
<p><b>-f, --file</b> <em>PATTERNFILE</em> ...</p>
<blockquote>
<p>Search for patterns from the given file, with one pattern per line. When this flag is used multiple times or in combination with the -e/--regexp flag, then all patterns provided are searched. Empty pattern lines will match all input lines, and the newline is not counted as part of the pattern.</p>
<p>A line is printed if and only if it matches at least one of the patterns.</p>
</blockquote>
<p><b>--files</b></p>
<blockquote>
<p>Print each file that would be searched without actually performing the search. This is useful to determine whether a particular file is being searched or not.</p>
</blockquote>
<p><b>-l, --files-with-matches</b></p>
<blockquote>
<p>Print the paths with at least one match and suppress match contents.</p>
<p>This overrides --files-without-match.</p>
</blockquote>
<p><b>--files-without-match</b></p>
<blockquote>
<p>Print the paths that contain zero matches and suppress match contents. This inverts/negates the --files-with-matches flag.</p>
<p>This overrides --files-with-matches.</p>
</blockquote>
<p><b>-F, --fixed-strings</b></p>
<blockquote>
<p>Treat the pattern as a literal string instead of a regular expression. When this flag is used, special regular expression meta characters such as .(){}*+ do not need to be escaped.</p>
<p>This flag can be disabled with --no-fixed-strings.</p>
</blockquote>
<p><b>-L, --follow</b></p>
<blockquote>
<p>When this flag is enabled, ripgrep will follow symbolic links while traversing directories. This is disabled by default. Note that ripgrep will check for symbolic link loops and report errors if it finds one.</p>
<p>This flag can be disabled with --no-follow.</p>
</blockquote>
<p><b>-g, --glob</b> <em>GLOB</em> ...</p>
<blockquote>
<p>Include or exclude files and directories for searching that match the given glob. This always overrides any other ignore logic. Multiple glob flags may be used. Globbing rules match .gitignore globs. Precede a glob with a ! to exclude it. If multiple globs match a file or directory, the glob given later in the command line takes precedence.</p>
<p>As an extension, globs support specifying alternatives: <b>-g ab{c,d}</b> is equivalet to <b>-g abc -g abd</b>. Empty alternatives like <b>-g ab{,c}</b> are not currently supported. Note that this syntax extension is also currently enabled in gitignore files, even though this syntax isn’t supported by git itself. ripgrep may disable this syntax extension in gitignore files, but it will always remain available via the -g/--glob flag.</p>
<p>When this flag is set, every file and directory is applied to it to test for a match. So for example, if you only want to search in a particular directory <em>foo</em>, then <b>-g foo</b> is incorrect because <em>foo/bar</em> does not match the glob <em>foo</em>. Instead, you should use <b>-g 'foo/**'</b>.</p>
</blockquote>
<p><b>--glob-case-insensitive</b></p>
<blockquote>
<p>Process glob patterns given with the -g/--glob flag case insensitively. This effectively treats --glob as --iglob.</p>
<p>This flag can be disabled with the --no-glob-case-insensitive flag.</p>
</blockquote>
<p><b>--heading</b></p>
<blockquote>
<p>This flag prints the file path above clusters of matches from each file instead of printing the file path as a prefix for each matched line. This is the default mode when printing to a terminal.</p>
<p>This overrides the --no-heading flag.</p>
</blockquote>
<p><b>-., --hidden</b></p>
<blockquote>
<p>Search hidden files and directories. By default, hidden files and directories are skipped. Note that if a hidden file or a directory is whitelisted in an ignore file, then it will be searched even if this flag isn’t provided.</p>
<p>A file or directory is considered hidden if its base name starts with a dot character (<em>.</em>). On operating systems which support a <code>hidden</code> file attribute, like Windows, files with this attribute are also considered hidden.</p>
<p>This flag can be disabled with --no-hidden.</p>
</blockquote>
<p><b>--iglob</b> <em>GLOB</em> ...</p>
<blockquote>
<p>Include or exclude files and directories for searching that match the given glob. This always overrides any other ignore logic. Multiple glob flags may be used. Globbing rules match .gitignore globs. Precede a glob with a ! to exclude it. Globs are matched case insensitively.</p>
</blockquote>
<p><b>-i, --ignore-case</b></p>
<blockquote>
<p>When this flag is provided, the given patterns will be searched case insensitively. The case insensitivity rules used by ripgrep conform to Unicode’s "simple" case folding rules.</p>
<p>This flag overrides -s/--case-sensitive and -S/--smart-case.</p>
</blockquote>
<p><b>--ignore-file</b> <em>PATH</em> ...</p>
<blockquote>
<p>Specifies a path to one or more .gitignore format rules files. These patterns are applied after the patterns found in .gitignore and .ignore are applied and are matched relative to the current working directory. Multiple additional ignore files can be specified by using the --ignore-file flag several times. When specifying multiple ignore files, earlier files have lower precedence than later files.</p>
<p>If you are looking for a way to include or exclude files and directories directly on the command line, then used -g instead.</p>
</blockquote>
<p><b>--ignore-file-case-insensitive</b></p>
<blockquote>
<p>Process ignore files (.gitignore, .ignore, etc.) case insensitively. Note that this comes with a performance penalty and is most useful on case insensitive file systems (such as Windows).</p>
<p>This flag can be disabled with the --no-ignore-file-case-insensitive flag.</p>
</blockquote>
<p><b>--include-zero</b></p>
<blockquote>
<p>When used with --count or --count-matches, print the number of matches for each file even if there were zero matches. This is disabled by default but can be enabled to make ripgrep behave more like grep.</p>
</blockquote>
<p><b>-v, --invert-match</b></p>
<blockquote>
<p>Invert matching. Show lines that do not match the given patterns.</p>
</blockquote>
<p><b>--json</b></p>
<blockquote>
<p>Enable printing results in a JSON Lines format.</p>
<p>When this flag is provided, ripgrep will emit a sequence of messages, each encoded as a JSON object, where there are five different message types:</p>
<p><b>begin</b> - A message that indicates a file is being searched and contains at least one match.</p>
<p><b>end</b> - A message the indicates a file is done being searched. This message also include summary statistics about the search for a particular file.</p>
<p><b>match</b> - A message that indicates a match was found. This includes the text and offsets of the match.</p>
<p><b>context</b> - A message that indicates a contextual line was found. This includes the text of the line, along with any match information if the search was inverted.</p>
<p><b>summary</b> - The final message emitted by ripgrep that contains summary statistics about the search across all files.</p>
<p>Since file paths or the contents of files are not guaranteed to be valid UTF-8 and JSON itself must be representable by a Unicode encoding, ripgrep will emit all data elements as objects with one of two keys: <em>text</em> or <em>bytes</em>. <em>text</em> is a normal JSON string when the data is valid UTF-8 while <em>bytes</em> is the base64 encoded contents of the data.</p>
<p>The JSON Lines format is only supported for showing search results. It cannot be used with other flags that emit other types of output, such as --files, --files-with-matches, --files-without-match, --count or --count-matches. ripgrep will report an error if any of the aforementioned flags are used in concert with --json.</p>
<p>Other flags that control aspects of the standard output such as --only-matching, --heading, --replace, --max-columns, etc., have no effect when --json is set.</p>
<p>A more complete description of the JSON format used can be found here: &lt;https://docs.rs/grep-printer/*/grep_printer/struct.JSON.html&gt;</p>
<p>The JSON Lines format can be disabled with --no-json.</p>
</blockquote>
<p><b>--line-buffered</b></p>
<blockquote>
<p>When enabled, ripgrep will use line buffering. That is, whenever a matching line is found, it will be flushed to stdout immediately. This is the default when ripgrep’s stdout is connected to a terminal, but otherwise, ripgrep will use block buffering, which is typically faster. This flag forces ripgrep to use line buffering even if it would otherwise use block buffering. This is typically useful in shell pipelines, e.g., <em>tail -f something.log | rg foo --line-buffered | rg bar</em>.</p>
<p>Forceful line buffering can be disabled with --no-line-buffered. Note that using --no-line-buffered causes ripgrep to revert to its default behavior of automatically detecting the buffering strategy. To force block buffering, use the --block-buffered flag.</p>
</blockquote>
<p><b>-n, --line-number</b></p>
<blockquote>
<p>Show line numbers (1-based). This is enabled by default when searching in a terminal.</p>
</blockquote>
<p><b>-x, --line-regexp</b></p>
<blockquote>
<p>Only show matches surrounded by line boundaries. This is equivalent to putting ^...$ around all of the search patterns. In other words, this only prints lines where the entire line participates in a match.</p>
<p>This overrides the --word-regexp flag.</p>
</blockquote>
<p><b>-M, --max-columns</b> <em>NUM</em></p>
<blockquote>
<p>Don’t print lines longer than this limit in bytes. Longer lines are omitted, and only the number of matches in that line is printed.</p>
<p>When this flag is omitted or is set to 0, then it has no effect.</p>
</blockquote>
<p><b>--max-columns-preview</b></p>
<blockquote>
<p>When the <em>--max-columns</em> flag is used, ripgrep will by default completely replace any line that is too long with a message indicating that a matching line was removed. When this flag is combined with <em>--max-columns</em>, a preview of the line (corresponding to the limit size) is shown instead, where the part of the line exceeding the limit is not shown.</p>
<p>If the <em>--max-columns</em> flag is not set, then this has no effect.</p>
<p>This flag can be disabled with <em>--no-max-columns-preview</em>.</p>
</blockquote>
<p><b>-m, --max-count</b> <em>NUM</em></p>
<blockquote>
<p>Limit the number of matching lines per file searched to NUM.</p>
</blockquote>
<p><b>--max-depth</b> <em>NUM</em></p>
<blockquote>
<p>Limit the depth of directory traversal to NUM levels beyond the paths given. A value of zero only searches the explicitly given paths themselves.</p>
<p>For example, <em>rg --max-depth 0 dir/</em> is a no-op because dir/ will not be descended into. <em>rg --max-depth 1 dir/</em> will search only the direct children of <em>dir</em>.</p>
</blockquote>
<p><b>--max-filesize</b> <em>NUM+SUFFIX?</em></p>
<blockquote>
<p>Ignore files larger than NUM in size. This does not apply to directories.</p>
<p>The input format accepts suffixes of K, M or G which correspond to kilobytes, megabytes and gigabytes, respectively. If no suffix is provided the input is treated as bytes.</p>
<p>Examples: --max-filesize 50K or --max-filesize 80M</p>
</blockquote>
<p><b>--mmap</b></p>
<blockquote>
<p>Search using memory maps when possible. This is enabled by default when ripgrep thinks it will be faster.</p>
<p>Memory map searching doesn’t currently support all options, so if an incompatible option (e.g., --context) is given with --mmap, then memory maps will not be used.</p>
<p>Note that ripgrep may abort unexpectedly when --mmap if it searches a file that is simultaneously truncated.</p>
<p>This flag overrides --no-mmap.</p>
</blockquote>
<p><b>-U, --multiline</b></p>
<blockquote>
<p>Enable matching across multiple lines.</p>
<p>When multiline mode is enabled, ripgrep will lift the restriction that a match cannot include a line terminator. For example, when multiline mode is not enabled (the default), then the regex <em>\p{any}</em> will match any Unicode codepoint other than <em>\n</em>. Similarly, the regex <em>\n</em> is explicitly forbidden, and if you try to use it, ripgrep will return an error. However, when multiline mode is enabled, <em>\p{any}</em> will match any Unicode codepoint, including <em>\n</em>, and regexes like <em>\n</em> are permitted.</p>
<p>An important caveat is that multiline mode does not change the match semantics of <em>.</em>. Namely, in most regex matchers, a <em>.</em> will by default match any character other than <em>\n</em>, and this is true in ripgrep as well. In order to make <em>.</em> match <em>\n</em>, you must enable the "dot all" flag inside the regex. For example, both <em>(?s).</em> and <em>(?s:.)</em> have the same semantics, where <em>.</em> will match any character, including <em>\n</em>. Alternatively, the <em>--multiline-dotall</em> flag may be passed to make the "dot all" behavior the default. This flag only applies when multiline search is enabled.</p>
<p>There is no limit on the number of the lines that a single match can span.</p>
<p><b>WARNING</b>: Because of how the underlying regex engine works, multiline searches may be slower than normal line-oriented searches, and they may also use more memory. In particular, when multiline mode is enabled, ripgrep requires that each file it searches is laid out contiguously in memory (either by reading it onto the heap or by memory-mapping it). Things that cannot be memory-mapped (such as stdin) will be consumed until EOF before searching can begin. In general, ripgrep will only do these things when necessary. Specifically, if the --multiline flag is provided but the regex does not contain patterns that would match <em>\n</em> characters, then ripgrep will automatically avoid reading each file into memory before searching it. Nevertheless, if you only care about matches spanning at most one line, then it is always better to disable multiline mode.</p>
<p>This flag can be disabled with --no-multiline.</p>
</blockquote>
<p><b>--multiline-dotall</b></p>
<blockquote>
<p>This flag enables "dot all" in your regex pattern, which causes <em>.</em> to match newlines when multiline searching is enabled. This flag has no effect if multiline searching isn’t enabled with the --multiline flag.</p>
<p>Normally, a <em>.</em> will match any character except newlines. While this behavior typically isn’t relevant for line-oriented matching (since matches can span at most one line), this can be useful when searching with the -U/--multiline flag. By default, the multiline mode runs without this flag.</p>
<p>This flag is generally intended to be used in an alias or your ripgrep config file if you prefer "dot all" semantics by default. Note that regardless of whether this flag is used, "dot all" semantics can still be controlled via inline flags in the regex pattern itself, e.g., <em>(?s:.)</em> always enables "dot all" whereas <em>(?-s:.)</em> always disables "dot all".</p>
<p>This flag can be disabled with --no-multiline-dotall.</p>
</blockquote>
<p><b>--no-config</b></p>
<blockquote>
<p>Never read configuration files. When this flag is present, ripgrep will not respect the RIPGREP_CONFIG_PATH environment variable.</p>
<p>If ripgrep ever grows a feature to automatically read configuration files in pre-defined locations, then this flag will also disable that behavior as well.</p>
</blockquote>
<p><b>-I, --no-filename</b></p>
<blockquote>
<p>Never print the file path with the matched lines. This is the default when ripgrep is explicitly instructed to search one file or stdin.</p>
<p>This flag overrides --with-filename.</p>
</blockquote>
<p><b>--no-heading</b></p>
<blockquote>
<p>Don’t group matches by each file. If --no-heading is provided in addition to the -H/--with-filename flag, then file paths will be printed as a prefix for every matched line. This is the default mode when not printing to a terminal.</p>
<p>This overrides the --heading flag.</p>
</blockquote>
<p><b>--no-ignore</b></p>
<blockquote>
<p>Don’t respect ignore files (.gitignore, .ignore, etc.). This implies --no-ignore-dot, --no-ignore-exclude, --no-ignore-global, no-ignore-parent and --no-ignore-vcs.</p>
<p>This does <b>not</b> imply --no-ignore-files, since --ignore-file is specified explicitly as a command line argument.</p>
<p>When given only once, the -u flag is identical in behavior to --no-ignore and can be considered an alias. However, subsequent -u flags have additional effects; see --unrestricted.</p>
<p>This flag can be disabled with the --ignore flag.</p>
</blockquote>
<p><b>--no-ignore-dot</b></p>
<blockquote>
<p>Don’t respect .ignore files.</p>
<p>This does <b>not</b> affect whether ripgrep will ignore files and directories whose names begin with a dot. For that, see the -./--hidden flag.</p>
<p>This flag can be disabled with the --ignore-dot flag.</p>
</blockquote>
<p><b>--no-ignore-exclude</b></p>
<blockquote>
<p>Don’t respect ignore files that are manually configured for the repository such as git’s <em>.git/info/exclude</em>.</p>
<p>This flag can be disabled with the --ignore-exclude flag.</p>
</blockquote>
<p><b>--no-ignore-files</b></p>
<blockquote>
<p>When set, any --ignore-file flags, even ones that come after this flag, are ignored.</p>
<p>This flag can be disabled with the --ignore-files flag.</p>
</blockquote>
<p><b>--no-ignore-global</b></p>
<blockquote>
<p>Don’t respect ignore files that come from "global" sources such as git’s <code>core.excludesFile</code> configuration option (which defaults to <code>$HOME/.config/git/ignore</code>).</p>
<p>This flag can be disabled with the --ignore-global flag.</p>
</blockquote>
<p><b>--no-ignore-messages</b></p>
<blockquote>
<p>Suppresses all error messages related to parsing ignore files such as .ignore or .gitignore.</p>
<p>This flag can be disabled with the --ignore-messages flag.</p>
</blockquote>
<p><b>--no-ignore-parent</b></p>
<blockquote>
<p>Don’t respect ignore files (.gitignore, .ignore, etc.) in parent directories.</p>
<p>This flag can be disabled with the --ignore-parent flag.</p>
</blockquote>
<p><b>--no-ignore-vcs</b></p>
<blockquote>
<p>Don’t respect version control ignore files (.gitignore, etc.). This implies --no-ignore-parent for VCS files. Note that .ignore files will continue to be respected.</p>
<p>This flag can be disabled with the --ignore-vcs flag.</p>
</blockquote>
<p><b>-N, --no-line-number</b></p>
<blockquote>
<p>Suppress line numbers. This is enabled by default when not searching in a terminal.</p>
</blockquote>
<p><b>--no-messages</b></p>
<blockquote>
<p>Suppress all error messages related to opening and reading files. Error messages related to the syntax of the pattern given are still shown.</p>
<p>This flag can be disabled with the --messages flag.</p>
</blockquote>
<p><b>--no-mmap</b></p>
<blockquote>
<p>Never use memory maps, even when they might be faster.</p>
<p>This flag overrides --mmap.</p>
</blockquote>
<p><b>--no-pcre2-unicode</b></p>
<blockquote>
<p>DEPRECATED. Use --no-unicode instead.</p>
<p>This flag is now an alias for --no-unicode. And --pcre2-unicode is an alias for --unicode.</p>
</blockquote>
<p><b>--no-require-git</b></p>
<blockquote>
<p>By default, ripgrep will only respect global gitignore rules, .gitignore rules and local exclude rules if ripgrep detects that you are searching inside a git repository. This flag allows you to relax this restriction such that ripgrep will respect all git related ignore rules regardless of whether you’re searching in a git repository or not.</p>
<p>This flag can be disabled with --require-git.</p>
</blockquote>
<p><b>--no-unicode</b></p>
<blockquote>
<p>By default, ripgrep will enable "Unicode mode" in all of its regexes. This has a number of consequences:</p>
<blockquote>
<p>·</p>
<p><em>.</em> will only match valid UTF-8 encoded scalar values.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Classes like <em>\w</em>, <em>\s</em>, <em>\d</em> are all Unicode aware and much bigger than their ASCII only versions.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Case insensitive matching will use Unicode case folding.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>A large array of classes like <em>\p{Emoji}</em> are available.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Word boundaries (<em>\b</em> and <em>\B</em>) use the Unicode definition of a word character.</p>
<p>In some cases it can be desirable to turn these things off. The --no-unicode flag will do exactly that.</p>
<p>For PCRE2 specifically, Unicode mode represents a critical trade off in the user experience of ripgrep. In particular, unlike the default regex engine, PCRE2 does not support the ability to search possibly invalid UTF-8 with Unicode features enabled. Instead, PCRE2 <b>requires</b> that everything it searches when Unicode mode is enabled is valid UTF-8. (Or valid UTF-16/UTF-32, but for the purposes of ripgrep, we only discuss UTF-8.) This means that if you have PCRE2’s Unicode mode enabled and you attempt to search invalid UTF-8, then the search for that file will halt and print an error. For this reason, when PCRE2’s Unicode mode is enabled, ripgrep will automatically "fix" invalid UTF-8 sequences by replacing them with the Unicode replacement codepoint. This penalty does not occur when using the default regex engine.</p>
<p>If you would rather see the encoding errors surfaced by PCRE2 when Unicode mode is enabled, then pass the --no-encoding flag to disable all transcoding.</p>
<p>The --no-unicode flag can be disabled with --unicode. Note that --no-pcre2-unicode and --pcre2-unicode are aliases for --no-unicode and --unicode, respectively.</p>
</blockquote>
</blockquote>
<p><b>-0, --null</b></p>
<blockquote>
<p>Whenever a file path is printed, follow it with a NUL byte. This includes printing file paths before matches, and when printing a list of matching files such as with --count, --files-with-matches and --files. This option is useful for use with xargs.</p>
</blockquote>
<p><b>--null-data</b></p>
<blockquote>
<p>Enabling this option causes ripgrep to use NUL as a line terminator instead of the default of <em>\n</em>.</p>
<p>This is useful when searching large binary files that would otherwise have very long lines if <em>\n</em> were used as the line terminator. In particular, ripgrep requires that, at a minimum, each line must fit into memory. Using NUL instead can be a useful stopgap to keep memory requirements low and avoid OOM (out of memory) conditions.</p>
<p>This is also useful for processing NUL delimited data, such as that emitted when using ripgrep’s -0/--null flag or find’s --print0 flag.</p>
<p>Using this flag implies -a/--text.</p>
</blockquote>
<p><b>--one-file-system</b></p>
<blockquote>
<p>When enabled, ripgrep will not cross file system boundaries relative to where the search started from.</p>
<p>Note that this applies to each path argument given to ripgrep. For example, in the command <em>rg --one-file-system /foo/bar /quux/baz</em>, ripgrep will search both <em>/foo/bar</em> and <em>/quux/baz</em> even if they are on different file systems, but will not cross a file system boundary when traversing each path’s directory tree.</p>
<p>This is similar to find’s <em>-xdev</em> or <em>-mount</em> flag.</p>
<p>This flag can be disabled with --no-one-file-system.</p>
</blockquote>
<p><b>-o, --only-matching</b></p>
<blockquote>
<p>Print only the matched (non-empty) parts of a matching line, with each such part on a separate output line.</p>
</blockquote>
<p><b>--passthru</b></p>
<blockquote>
<p>Print both matching and non-matching lines.</p>
<p>Another way to achieve a similar effect is by modifying your pattern to match the empty string. For example, if you are searching using <em>rg foo</em> then using <em>rg "^|foo"</em> instead will emit every line in every file searched, but only occurrences of <em>foo</em> will be highlighted. This flag enables the same behavior without needing to modify the pattern.</p>
<p>This overrides the --context, --after-context and --before-context flags.</p>
</blockquote>
<p><b>--path-separator</b> <em>SEPARATOR</em></p>
<blockquote>
<p>Set the path separator to use when printing file paths. This defaults to your platform’s path separator, which is / on Unix and \ on Windows. This flag is intended for overriding the default when the environment demands it (e.g., cygwin). A path separator is limited to a single byte.</p>
</blockquote>
<p><b>-P, --pcre2</b></p>
<blockquote>
<p>When this flag is present, ripgrep will use the PCRE2 regex engine instead of its default regex engine.</p>
<p>This is generally useful when you want to use features such as look-around or backreferences.</p>
<p>Note that PCRE2 is an optional ripgrep feature. If PCRE2 wasn’t included in your build of ripgrep, then using this flag will result in ripgrep printing an error message and exiting. PCRE2 may also have worse user experience in some cases, since it has fewer introspection APIs than ripgrep’s default regex engine. For example, if you use a <em>\n</em> in a PCRE2 regex without the <em>-U/--multiline</em> flag, then ripgrep will silently fail to match anything instead of reporting an error immediately (like it does with the default regex engine).</p>
<p>Related flags: --no-pcre2-unicode</p>
<p>This flag can be disabled with --no-pcre2.</p>
</blockquote>
<p><b>--pcre2-version</b></p>
<blockquote>
<p>When this flag is present, ripgrep will print the version of PCRE2 in use, along with other information, and then exit. If PCRE2 is not available, then ripgrep will print an error message and exit with an error code.</p>
</blockquote>
<p><b>--pre</b> <em>COMMAND</em></p>
<blockquote>
<p>For each input FILE, search the standard output of COMMAND FILE rather than the contents of FILE. This option expects the COMMAND program to either be an absolute path or to be available in your PATH. Either an empty string COMMAND or the <em>--no-pre</em> flag will disable this behavior.</p>
<blockquote>
<pre><code>WARNING: When this flag is set, ripgrep will unconditionally spawn a
process for every file that is searched. Therefore, this can incur an
unnecessarily large performance penalty if you don&#39;t otherwise need the
flexibility offered by this flag. One possible mitigation to this is to use
the &#39;--pre-glob&#39; flag to limit which files a preprocessor is run with.</code></pre>
</blockquote>
<p>A preprocessor is not run when ripgrep is searching stdin.</p>
<p>When searching over sets of files that may require one of several decoders as preprocessors, COMMAND should be a wrapper program or script which first classifies FILE based on magic numbers/content or based on the FILE name and then dispatches to an appropriate preprocessor. Each COMMAND also has its standard input connected to FILE for convenience.</p>
<p>For example, a shell script for COMMAND might look like:</p>
<blockquote>
<pre><code>case &quot;$1&quot; in
*.pdf)
    exec pdftotext &quot;$1&quot; -
    ;;
*)
    case $(file &quot;$1&quot;) in
    *Zstandard*)
        exec pzstd -cdq
        ;;
    *)
        exec cat
        ;;
    esac
    ;;
esac</code></pre>
</blockquote>
<p>The above script uses <code>pdftotext</code> to convert a PDF file to plain text. For all other files, the script uses the <code>file</code> utility to sniff the type of the file based on its contents. If it is a compressed file in the Zstandard format, then <code>pzstd</code> is used to decompress the contents to stdout.</p>
<p>This overrides the -z/--search-zip flag.</p>
</blockquote>
<p><b>--pre-glob</b> <em>GLOB</em> ...</p>
<blockquote>
<p>This flag works in conjunction with the --pre flag. Namely, when one or more --pre-glob flags are given, then only files that match the given set of globs will be handed to the command specified by the --pre flag. Any non-matching files will be searched without using the preprocessor command.</p>
<p>This flag is useful when searching many files with the --pre flag. Namely, it permits the ability to avoid process overhead for files that don’t need preprocessing. For example, given the following shell script, <em>pre-pdftotext</em>:</p>
<blockquote>
<pre><code>#!/bin/sh</code></pre>
</blockquote>
<blockquote>
<pre><code>pdftotext &quot;$1&quot; -</code></pre>
</blockquote>
<p>then it is possible to use <em>--pre pre-pdftotext --pre-glob '*.pdf</em>' to make it so ripgrep only executes the <em>pre-pdftotext</em> command on files with a <em>.pdf</em> extension.</p>
<p>Multiple --pre-glob flags may be used. Globbing rules match .gitignore globs. Precede a glob with a ! to exclude it.</p>
<p>This flag has no effect if the --pre flag is not used.</p>
</blockquote>
<p><b>-p, --pretty</b></p>
<blockquote>
<p>This is a convenience alias for <em>--color always --heading --line-number</em>. This flag is useful when you still want pretty output even if you’re piping ripgrep to another program or file. For example: <em>rg -p foo | less -R</em>.</p>
</blockquote>
<p><b>-q, --quiet</b></p>
<blockquote>
<p>Do not print anything to stdout. If a match is found in a file, then ripgrep will stop searching. This is useful when ripgrep is used only for its exit code (which will be an error if no matches are found).</p>
<p>When --files is used, then ripgrep will stop finding files after finding the first file that matches all ignore rules.</p>
</blockquote>
<p><b>--regex-size-limit</b> <em>NUM+SUFFIX?</em></p>
<blockquote>
<p>The upper size limit of the compiled regex. The default limit is 10M.</p>
<p>The argument accepts the same size suffixes as allowed in the --max-filesize flag.</p>
</blockquote>
<p><b>-e, --regexp</b> <em>PATTERN</em> ...</p>
<blockquote>
<p>A pattern to search for. This option can be provided multiple times, where all patterns given are searched. Lines matching at least one of the provided patterns are printed. This flag can also be used when searching for patterns that start with a dash.</p>
<p>For example, to search for the literal <em>-foo</em>, you can use this flag:</p>
<blockquote>
<pre><code>rg -e -foo</code></pre>
</blockquote>
<p>You can also use the special <em>--</em> delimiter to indicate that no more flags will be provided. Namely, the following is equivalent to the above:</p>
<blockquote>
<pre><code>rg -- -foo</code></pre>
</blockquote>
</blockquote>
<p><b>-r, --replace</b> <em>REPLACEMENT_TEXT</em></p>
<blockquote>
<p>Replace every match with the text given when printing results. Neither this flag nor any other ripgrep flag will modify your files.</p>
<p>Capture group indices (e.g., $5) and names (e.g., $foo) are supported in the replacement string. Capture group indices are numbered based on the position of the opening parenthesis of the group, where the leftmost such group is $1. The special $0 group corresponds to the entire match.</p>
<p>In shells such as Bash and zsh, you should wrap the pattern in single quotes instead of double quotes. Otherwise, capture group indices will be replaced by expanded shell variables which will most likely be empty.</p>
<p>To write a literal <em>$</em>, use <em>$$</em>.</p>
<p>Note that the replacement by default replaces each match, and NOT the entire line. To replace the entire line, you should match the entire line.</p>
<p>This flag can be used with the -o/--only-matching flag.</p>
</blockquote>
<p><b>-z, --search-zip</b></p>
<blockquote>
<p>Search in compressed files. Currently gzip, bzip2, xz, LZ4, LZMA, Brotli and Zstd files are supported. This option expects the decompression binaries to be available in your PATH.</p>
<p>This flag can be disabled with --no-search-zip.</p>
</blockquote>
<p><b>-S, --smart-case</b></p>
<blockquote>
<p>Searches case insensitively if the pattern is all lowercase. Search case sensitively otherwise.</p>
<p>A pattern is considered all lowercase if both of the following rules hold:</p>
<p>First, the pattern contains at least one literal character. For example, <em>a\w</em> contains a literal (<em>a</em>) but just <em>\w</em> does not.</p>
<p>Second, of the literals in the pattern, none of them are considered to be uppercase according to Unicode. For example, <em>foo\pL</em> has no uppercase literals but <em>Foo\pL</em> does.</p>
<p>This overrides the -s/--case-sensitive and -i/--ignore-case flags.</p>
</blockquote>
<p><b>--sort</b> <em>SORTBY</em></p>
<blockquote>
<p>This flag enables sorting of results in ascending order. The possible values for this flag are:</p>
<blockquote>
<pre><code>none      (Default) Do not sort results. Fastest. Can be multi-threaded.
path      Sort by file path. Always single-threaded.
modified  Sort by the last modified time on a file. Always single-threaded.
accessed  Sort by the last accessed time on a file. Always single-threaded.
created   Sort by the creation time on a file. Always single-threaded.</code></pre>
</blockquote>
<p>If the chosen (manually or by-default) sorting criteria isn’t available on your system (for example, creation time is not available on ext4 file systems), then ripgrep will attempt to detect this, print an error and exit without searching.</p>
<p>To sort results in reverse or descending order, use the --sortr flag. Also, this flag overrides --sortr.</p>
<p>Note that sorting results currently always forces ripgrep to abandon parallelism and run in a single thread.</p>
</blockquote>
<p><b>--sortr</b> <em>SORTBY</em></p>
<blockquote>
<p>This flag enables sorting of results in descending order. The possible values for this flag are:</p>
<blockquote>
<pre><code>none      (Default) Do not sort results. Fastest. Can be multi-threaded.
path      Sort by file path. Always single-threaded.
modified  Sort by the last modified time on a file. Always single-threaded.
accessed  Sort by the last accessed time on a file. Always single-threaded.
created   Sort by the creation time on a file. Always single-threaded.</code></pre>
</blockquote>
<p>If the chosen (manually or by-default) sorting criteria isn’t available on your system (for example, creation time is not available on ext4 file systems), then ripgrep will attempt to detect this, print an error and exit without searching.</p>
<p>To sort results in ascending order, use the --sort flag. Also, this flag overrides --sort.</p>
<p>Note that sorting results currently always forces ripgrep to abandon parallelism and run in a single thread.</p>
</blockquote>
<p><b>--stats</b></p>
<blockquote>
<p>Print aggregate statistics about this ripgrep search. When this flag is present, ripgrep will print the following stats to stdout at the end of the search: number of matched lines, number of files with matches, number of files searched, and the time taken for the entire search to complete.</p>
<p>This set of aggregate statistics may expand over time.</p>
<p>Note that this flag has no effect if --files, --files-with-matches or --files-without-match is passed.</p>
<p>This flag can be disabled with --no-stats.</p>
</blockquote>
<p><b>-a, --text</b></p>
<blockquote>
<p>Search binary files as if they were text. When this flag is present, ripgrep’s binary file detection is disabled. This means that when a binary file is searched, its contents may be printed if there is a match. This may cause escape codes to be printed that alter the behavior of your terminal.</p>
<p>When binary file detection is enabled it is imperfect. In general, it uses a simple heuristic. If a NUL byte is seen during search, then the file is considered binary and search stops (unless this flag is present). Alternatively, if the <em>--binary</em> flag is used, then ripgrep will only quit when it sees a NUL byte after it sees a match (or searches the entire file).</p>
<p>This flag can be disabled with <em>--no-text</em>. It overrides the <em>--binary</em> flag.</p>
</blockquote>
<p><b>-j, --threads</b> <em>NUM</em></p>
<blockquote>
<p>The approximate number of threads to use. A value of 0 (which is the default) causes ripgrep to choose the thread count using heuristics.</p>
</blockquote>
<p><b>--trim</b></p>
<blockquote>
<p>When set, all ASCII whitespace at the beginning of each line printed will be trimmed.</p>
<p>This flag can be disabled with --no-trim.</p>
</blockquote>
<p><b>-t, --type</b> <em>TYPE</em> ...</p>
<blockquote>
<p>Only search files matching TYPE. Multiple type flags may be provided. Use the --type-list flag to list all available types.</p>
<p>This flag supports the special value <em>all</em>, which will behave as if --type was provided for every file type supported by ripgrep (including any custom file types). The end result is that <em>--type all</em> causes ripgrep to search in "whitelist" mode, where it will only search files it recognizes via its type definitions.</p>
</blockquote>
<p><b>--type-add</b> <em>TYPE_SPEC</em> ...</p>
<blockquote>
<p>Add a new glob for a particular file type. Only one glob can be added at a time. Multiple --type-add flags can be provided. Unless --type-clear is used, globs are added to any existing globs defined inside of ripgrep.</p>
<p>Note that this MUST be passed to every invocation of ripgrep. Type settings are NOT persisted. See CONFIGURATION FILES for a workaround.</p>
<p>Example:</p>
<blockquote>
<pre><code>rg --type-add &#39;foo:*.foo&#39; -tfoo PATTERN.</code></pre>
</blockquote>
<p>--type-add can also be used to include rules from other types with the special include directive. The include directive permits specifying one or more other type names (separated by a comma) that have been defined and its rules will automatically be imported into the type specified. For example, to create a type called src that matches C++, Python and Markdown files, one can use:</p>
<blockquote>
<pre><code>--type-add &#39;src:include:cpp,py,md&#39;</code></pre>
</blockquote>
<p>Additional glob rules can still be added to the src type by using the --type-add flag again:</p>
<blockquote>
<pre><code>--type-add &#39;src:include:cpp,py,md&#39; --type-add &#39;src:*.foo&#39;</code></pre>
</blockquote>
<p>Note that type names must consist only of Unicode letters or numbers. Punctuation characters are not allowed.</p>
</blockquote>
<p><b>--type-clear</b> <em>TYPE</em> ...</p>
<blockquote>
<p>Clear the file type globs previously defined for TYPE. This only clears the default type definitions that are found inside of ripgrep.</p>
<p>Note that this MUST be passed to every invocation of ripgrep. Type settings are NOT persisted. See CONFIGURATION FILES for a workaround.</p>
</blockquote>
<p><b>--type-list</b></p>
<blockquote>
<p>Show all supported file types and their corresponding globs.</p>
</blockquote>
<p><b>-T, --type-not</b> <em>TYPE</em> ...</p>
<blockquote>
<p>Do not search files matching TYPE. Multiple type-not flags may be provided. Use the --type-list flag to list all available types.</p>
</blockquote>
<p><b>-u, --unrestricted</b> ...</p>
<blockquote>
<p>Reduce the level of "smart" searching. A single -u won’t respect .gitignore (etc.) files (--no-ignore). Two -u flags will additionally search hidden files and directories (-./--hidden). Three -u flags will additionally search binary files (--binary).</p>
<p><em>rg -uuu</em> is roughly equivalent to <em>grep -r</em>.</p>
</blockquote>
<p><b>--vimgrep</b></p>
<blockquote>
<p>Show results with every match on its own line, including line numbers and column numbers. With this option, a line with more than one match will be printed more than once.</p>
</blockquote>
<p><b>-H, --with-filename</b></p>
<blockquote>
<p>Display the file path for matches. This is the default when more than one file is searched. If --heading is enabled (the default when printing to a terminal), the file path will be shown above clusters of matches from each file; otherwise, the file name will be shown as a prefix for each matched line.</p>
<p>This flag overrides --no-filename.</p>
</blockquote>
<p><b>-w, --word-regexp</b></p>
<blockquote>
<p>Only show matches surrounded by word boundaries. This is roughly equivalent to putting \b before and after all of the search patterns.</p>
<p>This overrides the --line-regexp flag.</p>
</blockquote>


title: EXIT STATUS
content:
<p>If ripgrep finds a match, then the exit status of the program is 0. If no match could be found, then the exit status is 1. If an error occurred, then the exit status is always 2 unless ripgrep was run with the <b>--quiet</b> flag and a match was found. In summary:</p>
<blockquote>
<p>·</p>
<p><code>0</code> exit status occurs only when at least one match was found, and if no error occurred, unless <b>--quiet</b> was given.</p>
</blockquote>
<blockquote>
<p>·</p>
<p><code>1</code> exit status occurs only when no match was found and no error occurred.</p>
</blockquote>
<blockquote>
<p>·</p>
<p><code>2</code> exit status occurs when an error occurred. This is true for both catastrophic errors (e.g., a regex syntax error) and for soft errors (e.g., unable to read a file).</p>
</blockquote>


title: AUTOMATIC FILTERING
content:
<p>TL;DR - To disable automatic filtering, use <em>rg -uuu</em>.</p>
<p>One of ripgrep’s most important features is its automatic smart filtering. It is the most apparent differentiating feature between ripgrep and other tools like <em>grep</em>. As such, its behavior may be surprising to users that aren’t expecting it.</p>
<p>ripgrep does four types of filtering automatically:</p>
<blockquote>
<p>1.</p>
<p>Files and directories that match ignore rules are not searched.</p>
</blockquote>
<blockquote>
<p>2.</p>
<p>Hidden files and directories are not searched.</p>
</blockquote>
<blockquote>
<p>3.</p>
<p>Binary files (files with a <em>NUL</em> byte) are not searched.</p>
</blockquote>
<blockquote>
<p>4.</p>
<p>Symbolic links are not followed.</p>
</blockquote>
<p>The first type of filtering is the most sophisticated. ripgrep will attempt to respect your gitignore rules as faithfully as possible. In particular, this includes the following:</p>
<blockquote>
<p>·</p>
<p>Any global rules, e.g., in <em>$HOME/.config/git/ignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Any rules in <em>.gitignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Any local rules, e.g., in <em>.git/info/exclude</em>.</p>
</blockquote>
<p>In some cases, ripgrep and git will not always be in sync in terms of which files are ignored. For example, a file that is ignored via <em>.gitignore</em> but is tracked by git would not be searched by ripgrep even though git tracks it. This is unlikely to ever be fixed. Instead, you should either make sure your exclude rules match the files you track precisely, or otherwise use <em>git grep</em> for search.</p>
<p>Additional ignore rules can be provided outside of a git context:</p>
<blockquote>
<p>·</p>
<p>Any rules in <em>.ignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Any rules in <em>.rgignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Any rules in files specified with the <em>--ignore-file</em> flag.</p>
</blockquote>
<p>The precedence of ignore rules is as follows, with later items overriding earlier items:</p>
<blockquote>
<p>·</p>
<p>Files given by <em>--ignore-file</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Global gitignore rules, e.g., from <em>$HOME/.config/git/ignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Local rules from <em>.git/info/exclude</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Rules from <em>.gitignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Rules from <em>.ignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p>Rules from <em>.rgignore</em>.</p>
</blockquote>
<p>So for example, if <em>foo</em> were in a <em>.gitignore</em> and <em>!foo</em> were in an <em>.rgignore</em>, then <em>foo</em> would not be ignored since <em>.rgignore</em> takes precedence over <em>.gitignore</em>.</p>
<p>Each of the types of filtering can be configured via command line flags:</p>
<blockquote>
<p>·</p>
<p>There are several flags starting with <em>--no-ignore</em> that toggle which, if any, ignore rules are respected. <em>--no-ignore</em> by itself will disable all of them.</p>
</blockquote>
<blockquote>
<p>·</p>
<p><em>-./--hidden</em> will force ripgrep to search hidden files and directories.</p>
</blockquote>
<blockquote>
<p>·</p>
<p><em>--binary</em> will force ripgrep to search binary files.</p>
</blockquote>
<blockquote>
<p>·</p>
<p><em>-L/--follow</em> will force ripgrep to follow symlinks.</p>
</blockquote>
<p>As a special short hand, the <code>-u</code> flag can be specified up to three times. Each additional time incrementally decreases filtering:</p>
<blockquote>
<p>·</p>
<p><em>-u</em> is equivalent to <em>--no-ignore</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p><em>-uu</em> is equivalent to <em>--no-ignore --hidden</em>.</p>
</blockquote>
<blockquote>
<p>·</p>
<p><em>-uuu</em> is equivalent to <em>--no-ignore --hidden --binary</em>.</p>
</blockquote>
<p>In particular, <em>rg -uuu</em> should search the same exact content as <em>grep -r</em>.</p>


title: CONFIGURATION FILES
content:
<p>ripgrep supports reading configuration files that change ripgrep’s default behavior. The format of the configuration file is an "rc" style and is very simple. It is defined by two rules:</p>
<blockquote>
<p>1.</p>
<p>Every line is a shell argument, after trimming whitespace.</p>
</blockquote>
<blockquote>
<p>2.</p>
<p>Lines starting with <b>#</b> (optionally preceded by any amount of whitespace) are ignored.</p>
</blockquote>
<p>ripgrep will look for a single configuration file if and only if the <b>RIPGREP_CONFIG_PATH</b> environment variable is set and is non-empty. ripgrep will parse shell arguments from this file on startup and will behave as if the arguments in this file were prepended to any explicit arguments given to ripgrep on the command line. Note though that the <em>rg</em> command you run must still be valid. That is, it must always contain at least one pattern at the command line, even if the configuration file uses the <em>-e/--regexp</em> flag.</p>
<p>For example, if your ripgreprc file contained a single line:</p>
<blockquote>
<pre><code>--smart-case</code></pre>
</blockquote>
<p>then the following command</p>
<blockquote>
<pre><code>RIPGREP_CONFIG_PATH=wherever/.ripgreprc rg foo</code></pre>
</blockquote>
<p>would behave identically to the following command</p>
<blockquote>
<pre><code>rg --smart-case foo</code></pre>
</blockquote>
<p>another example is adding types</p>
<blockquote>
<pre><code>--type-add
web:*.{html,css,js}*</code></pre>
</blockquote>
<p>would behave identically to the following command</p>
<blockquote>
<pre><code>rg --type-add &#39;web:*.{html,css,js}*&#39; foo</code></pre>
</blockquote>
<p>same with using globs</p>
<blockquote>
<pre><code>--glob=!.git</code></pre>
</blockquote>
<p>or</p>
<blockquote>
<pre><code>--glob
!.git</code></pre>
</blockquote>
<p>would behave identically to the following command</p>
<blockquote>
<pre><code>rg --glob &#39;!.git&#39; foo</code></pre>
</blockquote>
<p>ripgrep also provides a flag, <b>--no-config</b>, that when present will suppress any and all support for configuration. This includes any future support for auto-loading configuration files from pre-determined paths.</p>
<p>Conflicts between configuration files and explicit arguments are handled exactly like conflicts in the same command line invocation. That is, this command:</p>
<blockquote>
<pre><code>RIPGREP_CONFIG_PATH=wherever/.ripgreprc rg foo --case-sensitive</code></pre>
</blockquote>
<p>is exactly equivalent to</p>
<blockquote>
<pre><code>rg --smart-case foo --case-sensitive</code></pre>
</blockquote>
<p>in which case, the <b>--case-sensitive</b> flag would override the <b>--smart-case</b> flag.</p>


title: SHELL COMPLETION
content:
<p>Shell completion files are included in the release tarball for Bash, Fish, Zsh and PowerShell.</p>
<p>For <b>bash</b>, move <b>rg.bash</b> to <b>$XDG_CONFIG_HOME/bash_completion</b> or <b>/etc/bash_completion.d/</b>.</p>
<p>For <b>fish</b>, move <b>rg.fish</b> to <b>$HOME/.config/fish/completions</b>.</p>
<p>For <b>zsh</b>, move <b>_rg</b> to one of your <b>$fpath</b> directories.</p>


