3chars

ack
A search tool like grep, optimized for developers.See also: rg, which is much faster

More information: https://beyondgrep.com/documentation.

- Search for files containing a string or regular expression in the current directory recursively: ack "search_pattern"

- Search for a case-insensitive pattern: ack --ignore-case "search_pattern"

- Search for lines matching a pattern, printing [o]nly the matched text and not the rest of the line: ack -o "search_pattern"

- Limit search to files of a specific type: ack --type=ruby "search_pattern

- Do not search in files of a specific type: ack --type=noruby "search_pattern

- Count the total number of matches found: ack --count --no-filename "search_pattern"

- Print the file names and the number of matches for each file only: ack --count --files-with-matches "search_pattern"

- List all values that can be used with --type: ack --help-types

act
Execute GitHub Actions locally using Docker

More information: https://github.com/nektos/act.

- List the available actions: act -l

- Run the default event: act

- Run a specific event: act event_type

- Run a specific action: act -a action_id

- Do not actually run the actions (i.e. a dry run): act -n

- Show verbose logs: act -v

adb
Android Debug Bridge: communicate with an Android emulator instance or connected Android devices

More information: https://developer.android.com/studio/command-line/adb.

- Check whether the adb server process is running and start it: adb start-server

- Terminate the adb server process: adb kill-server

- Start a remote shell in the target emulator/device instance: adb shell

- Push an Android application to an emulator/device: adb install -r path/to/file.apk

- Copy a file/directory from the target device: adb pull path/to/device_file_or_directory path/to/local_destination_directory

- Copy a file/directory to the target device: adb push path/to/local_file_or_directory path/to/device_destination_directory

- Get a list of connected devices: adb devices

age
A simple, modern and secure file encryption tool

More information: https://age-encryption.org.

- Generate an encrypted file that can be decrypted with a passphrase: age --passphrase --output path/to/encrypted_file path/to/unencrypted_file

- Generate a key pair, saving the private key to an unencrypted file and printing the public key to stdout: age-keygen --output path/to/file

- Encrypt a file with one or

More public keys that are entered as literals: age --recipient public_key_1 --recipient public_key_2 path/to/unencrypted_file --output path/to/encrypted_file

- Encrypt a file with one or

More public keys that are specified in a recipients file: age --recipients-file path/to/recipients_file path/to/unencrypted_file --output path/to/encrypted_file

- Decrypt a file with a passphrase: age --decrypt --output path/to/decrypted_file path/to/encrypted_file

- Decrypt a file with a private key file: age --decrypt --identity path/to/private_key_file --output path/to/decrypted_file path/to/encrypted_file

ant
Apache Ant.Tool for building and managing Java-based projects

More information: https://ant.apache.org.

- Build a project with default build file build.xml: ant

- Build a project using build file other than build.xml: ant -f buildfile.xml

- Print information on possible targets for this project: ant -p

- Print debugging information: ant -d

- Execute all targets that do not depend on fail target(s): ant -k

apg
Creates arbitrarily complex random passwords

More information: https://manned.org/apg.

- Create random passwords (default password length is 8): apg

- Create a password with at least 1 symbol (S), 1 number (N), 1 uppercase (C), 1 lowercase (L): apg -M SNCL

- Create a password with 16 characters: apg -m 16

- Create a password with maximum length of 16: apg -x 16

- Create a password that doesn't appear in a dictionary (the dictionary file has to be provided): apg -r dictionary_file

apk
Alpine Linux package management tool

More information: https://wiki.alpinelinux.org/wiki/Alpine_Linux_package_management.

- Update repository indexes from all remote repositories: apk update

- Install a new package: apk add package

- Remove a package: apk del package

- Repair package or upgrade it without modifying main dependencies: apk fix package

- Search package via keyword: apk search keyword

- Get info about a specific package: apk info package

apm
Atom editor Package Manager.See atom

More information: https://github.com/atom/apm.

- Install packages from http://atom.io/packages and themes from http://atom.io/themes: apm install package_name

- Remove packages/themes: apm remove package_name

- Upgrade packages/themes: apm upgrade package_name

apt
Package management utility for Debian based distributions.Recommended replacement for apt-get when used interactively in Ubuntu versions 16.04 and later

More information: https://manpages.debian.org/latest/apt/apt.8.html.

- Update the list of available packages and versions (it's recommended to run this before other apt commands): sudo apt update

- Search for a given package: apt search package

- Show information for a package: apt show package

- Install a package, or update it to the latest available version: sudo apt install package

- Remove a package (using purge instead also removes its configuration files): sudo apt remove package

- Upgrade all installed packages to their newest available versions: sudo apt upgrade

- List all packages: apt list

- List installed packages: apt list --installed

arc
Arcanist: A CLI for Phabricator

More information: https://secure.phabricator.com/book/phabricator/article/arcanist/.

- Send the changes to Differential for review: arc diff

- Show pending revision information: arc list

- Update Git commit messages after review: arc amend

- Push Git changes: arc land

ark
KDE archiving tool

More information: https://docs.kde.org/stable5/en/ark/ark/.

- Extract an archive into the current directory: ark --batch archive

- Change extraction directory: ark --batch --destination path/to/directory archive

- Create an archive if it does not exist and add files to it: ark --add-to archive file1 file2

arp
Show and manipulate your system's ARP cache

More information: https://manned.org/arp.

- Show the current ARP table: arp -a

- Clear the entire cache: sudo arp -a -d

- Delete a specific entry: arp -d address

- Create an entry in the ARP table: arp -s address mac_address

asr
Restore (copy) a disk image onto a volume.The command name stands for Apple Software Restore

More information: https://www.unix.com/man-page/osx/8/asr/.

- Restore a disk image to a target volume: sudo asr restore --source image_name.dmg --target path/to/volume

- Erase the target volume before restoring: sudo asr restore --source image_name.dmg --target path/to/volume --erase

- Skip verification after restoring: sudo asr restore --source image_name.dmg --target path/to/volume --noverify

- Clone volumes without the use of an intermediate disk image: sudo asr restore --source path/to/volume --target path/to/cloned_volume

atq
Show jobs scheduled by at or batch commands

More information: https://man.archlinux.org/man/at.1.

- Show the current user's scheduled jobs: atq

- Show jobs from queue named 'a' (queues have single-character names): atq -q a

- Show jobs of all users (run as superuser): sudo atq

awk
A versatile programming language for working on files

More information: https://github.com/onetrueawk/awk.

- Print the fifth column (a.k.a. field) in a space-separated file: awk 'print $5' filename

- Print the second column of the lines containing "foo" in a space-separated file: awk '/foo/ print $2' filename

- Print the last column of each line in a file, using a comma (instead of space) as a field separator: awk -F ',' 'print $NF' filename

- Sum the values in the first column of a file and print the total: awk 's+=$1 END print s' filename

- Print every third line starting from the first line: awk 'NR%3==1' filename

- Print different values based on conditions: awk 'if ($1 == "foo") print "Exact match foo"; else if ($1 ~ "bar") print "Partial match bar"; else print "Baz"' filename

- Print all lines where the 10th column value equals the specified value : awk '($10 == value)'

- Print all the lines which the 10th column value is between a min and a max : awk '($10 >= min_value && $10 <= max_value)'

aws
The official CLI tool for Amazon Web Services.Wizard, SSO, Resource Autocompletion, and YAML options are v2 only

More information: https://aws.amazon.com/cli.

- Configure the AWS Command-line: aws configure wizard

- Configure the AWS Command-line using SSO: aws configure sso

- See help text for the AWS command: aws command help

- Get the caller identity (used to troubleshoot permissions): aws sts get-caller-identity

- List AWS resources in a region and output in YAML: aws dynamodb list-tables --region us-east-1 --output yaml

- Use auto prompt to help with a command: aws iam create-user --cli-auto-prompt

- Get an interactive wizard for an AWS resource: aws dynamodb wizard new_table

- Generate a JSON CLI Skeleton (useful for infrastructure as code): aws dynamodb update-table --generate-cli-skeleton

bat
Print and concatenate files.A cat clone with syntax highlighting and Git integration

More information: https://github.com/sharkdp/bat.

- Print the contents of a file to the standard output: bat file

- Concatenate several files into the target file: bat file1 file2 > target_file

- Append several files into the target file: bat file1 file2 >> target_file

- Number all output lines: bat -n file

- Syntax highlight a JSON file: bat --language json file.json

- Display all supported languages: bat --list-languages

bfg
Remove large files or passwords from Git history like git-filter-branch.Note: if your repository is connected to a remote, you will need to force push to it

More information: https://rtyley.github.io/bfg-repo-cleaner/.

- Remove a file with sensitive data but leave the latest commit untouched: bfg --delete-files file_with_sensitive_data

- Remove all text mentioned in the specified file wherever it can be found in the repository's history: bfg --replace-text path/to/file.txt

box
A PHP application for building and managing Phars

More information: https://github.com/box-project/box.

- Compile a new Phar file: box compile

- Compile a new Phar file using a specific config file: box compile -c path/to/config

- Display information about the PHAR PHP extension: box info

- Display information about a specific Phar file: box info path/to/phar_file

- Validate the first found config file in the working directory: box validate

- Verify the signature of a specific Phar file: box verify path/to/phar_file

- Display all available commands and options: box help

btm
An alternative to top.Aims to be lightweight, cross-platform and

More graphical than top

More information: https://github.com/ClementTsang/bottom.

- Show the default layout (CPU, memory, temperatures, disk, network, and processes): btm

- Enable basic mode, removing charts and condensing data (similar to top): btm --basic

- Use big dots instead of small ones in charts: btm --dot_marker

- Show also battery charge and health status: btm --battery

- Refresh every 250 milliseconds and show the last 30 seconds in the charts: btm --rate 250 --default_time_value 30000

bup
Backup system based on the Git packfile format, providing incremental saves and global deduplication

More information: https://github.com/bup/bup.

- Initialize a backup repository in the specified local directory: bup -d path/to/repository init

- Prepare a given directory before taking a backup: bup -d path/to/repository index path/to/directory

- Backup a directory to the repository: bup -d path/to/repository save -n backup_name path/to/directory

- Show the backup snapshots currently stored in the repository: bup -d path/to/repository ls

- Restore a specific backup snapshot to a target directory: bup -d path/to/repository restore -C path/to/target_directory backup_name

cal
Prints calendar information, with the current day highlighted

More information: https://manned.org/cal.

- Display a calendar for the current month: cal

- Display previous, current and next month: cal -3

- Use Monday as the first day of the week: cal --monday

- Display a calendar for a specific year (4 digits): cal year

- Display a calendar for a specific month and year: cal month year

cat
Print and concatenate files

More information: https://www.gnu.org/software/coreutils/cat.

- Print the contents of a file to the standard output: cat file

- Concatenate several files into the target file: cat file1 file2 > target_file

- Append several files into the target file: cat file1 file2 >> target_file

- Number all output lines: cat -n file

- Display non-printable and whitespace characters (with M- prefix if non-ASCII): cat -v -t -e file

cdk
A CLI for AWS Cloud Development Kit (CDK)

More information: https://docs.aws.amazon.com/cdk/latest/guide/cli.html.

- List the stacks in the app: cdk ls

- Synthesize and print the CloudFormation template for the specified stack(s): cdk synth stack_name

- Deploy a space-separated list of stacks: cdk deploy stack_name

- Destroy a space-separated list of stacks: cdk destroy stack_name

- Compare the specified stack with the deployed stack or a local CloudFormation template: cdk diff stack_name

- Create a new CDK project in the current directory for a specified language: cdk init -l language_name

- Open the CDK API reference in your browser: cdk doc

clj
Clojure tool to start a REPL or invoke a specific function with data.All options can be defined in a deps.edn file

More information: https://clojure.org/guides/deps_and_cli.

- Start a REPL: clj

- Execute a function: clj -X namespace/function_name

- Run the main function of a specified namespace: clj -M -m namespace args

- Prepare a project by resolving dependencies, downloading libraries, and making / caching classpaths: clj -P

- Start an nREPL server with the CIDER middleware: clj -Sdeps ':deps nrepl :mvn/version "0.7.0" cider/cider-nrepl :mvn/version "0.25.2"' -m nrepl.cmdline --middleware '["cider.nrepl/cider-middleware"]' --interactive

- Start a REPL for ClojureScript and open a web browser: clj -Sdeps ':deps org.clojure/clojurescript :mvn/version "1.10.758"' --main cljs.main --repl

cmp
Compare two files byte by byte

More information: https://www.gnu.org/software/diffutils/manual/html_node/Invoking-cmp.html.

- Find the byte and line number of the first difference between two files: cmp path/to/file1 path/to/file2

- Find the byte number and differing bytes of every difference: cmp -l path/to/file1 path/to/file2

csc
The Microsoft C# Compiler

More information: https://docs.microsoft.com/dotnet/csharp/language-reference/compiler-options/command-line-building-with-csc-exe.

- Compile one or

More C# files to a CIL executable: csc path/to/input_file_a.cs path/to/input_file_b.cs

- Specify the output filename: csc /out:path/to/filename path/to/input_file.cs

- Compile into a .dll library instead of an executable: csc /target:library path/to/input_file.cs

- Reference another assembly: csc /reference:path/to/library.dll path/to/input_file.cs

- Embed a resource: csc /resource:path/to/resource_file path/to/input_file.cs

- Automatically generate XML documentation: csc /doc:path/to/output.xml path/to/input_file.cs

- Specify an icon: csc /win32icon:path/to/icon.ico path/to/input_file.cs

- Strongly-name the resulting assembly with a keyfile: csc /keyfile:path/to/keyfile path/to/input_file.cs

ctr
Manage containerd containers and images

More information: https://containerd.io.

- List all containers (running and stopped): ctr containers list

- List all images: ctr images list

- Pull an image: ctr images pull image

- Tag an image: ctr images tag souce_image:source_tag target_image:target_tag

cut
Cut out fields from stdin or files

More information: https://www.gnu.org/software/coreutils/cut.

- Cut out the first sixteen characters of each line of stdin: cut -c 1-16

- Cut out the first sixteen characters of each line of the given files: cut -c 1-16 file

- Cut out everything from the 3rd character to the end of each line: cut -c 3-

- Cut out the fifth field of each line, using a colon as a field delimiter (default delimiter is tab): cut -d':' -f5

- Cut out the 2nd and 10th fields of each line, using a semicolon as a delimiter: cut -d';' -f2,10

- Cut out the fields 3 through to the end of each line, using a space as a delimiter: cut -d' ' -f3-

dcg
Drupal code generator

More information: https://github.com/Chi-teck/drupal-code-generator.

- Start a wizard to choose what kind of code (e.g. module, service, form, etc.) to generate: dcg

- Directly specify the kind of code to generate: dcg service|plugin|theme|module|form

- Generate the code in a specific directory: dcg --directory path/to/directory

dep
A CLI tool for deployment of PHP applications.Note: The Go command dep with the same name is deprecated and archived

More information: https://deployer.org.

- Interactively initialize deployer in the local path (use a framework template with --template=template): dep init

- Deploy an application to a remote host: dep deploy hostname

- Rollback to the previous working release: dep rollback

- Connect to a remote host via ssh: dep ssh hostname

- List commands: dep list

- Run any arbitrary command on the remote hosts: dep run "command"

- Display help for a command: dep help command

dex
DesktopEntry Execution is a program to generate and execute DesktopEntry files of the Application type

More information: https://github.com/jceb/dex.

- Execute all programs in the autostart folders: dex --autostart

- Execute all programs in the specified folders: dex --autostart --search-paths path/to/directory1:path/to/directory2:path/to/directory3:

- Preview the programs would be executed in a GNOME specific autostart: dex --autostart --environment GNOME

- Preview the programs would be executed in a regular autostart: dex --autostart --dry-run

- Preview the value of the DesktopEntry property Name: dex --property Name path/to/file.desktop

- Create a DesktopEntry for a program in the current directory: dex --create path/to/file.desktop

- Execute a single program (with Terminal=true in the desktop file) in the given terminal: dex --term terminal path/to/file.desktop

dfc
Gives an overview of the filesystem disk space usage with colours and graphs

More information: https://projects.gw-computing.net/projects/dfc/wiki.

- Display filesystems and their disk usage in human-readable form with colours and graphs: dfc

- Display all filesystems including pseudo, duplicate and inaccessible filesystems: dfc -a

- Display filesystems without colour: dfc -c never

- Display filesystems containing "ext" in the filesystem type: dfc -t ext

dig
DNS Lookup utility

More information: https://manpages.debian.org/dnsutils/dig.1.html.

- Lookup the IP(s) associated with a hostname (A records): dig +short example.com

- Get a detailed answer for a given domain (A records): dig +noall +answer example.com

- Query a specific DNS record type associated with a given domain name: dig +short example.com A|MX|TXT|CNAME|NS

- Get all types of records for a given domain name: dig example.com ANY

- Specify an alternate DNS server to query: dig @8.8.8.8 example.com

- Perform a reverse DNS lookup on an IP address (PTR record): dig -x 8.8.8.8

- Find authoritative name servers for the zone and display SOA records: dig +nssearch example.com

- Perform iterative queries and display the entire trace path to resolve a domain name: dig +trace example.com

dnf
Package management utility for RHEL, Fedora, and CentOS (replaces yum)

More information: https://dnf.readthedocs.io/.

- Upgrade installed packages to the newest available versions: sudo dnf upgrade

- Search packages via keywords: dnf search keywords

- Display details about a package: dnf info package

- Install a new package: sudo dnf install package

- Install a new package and assume yes to all questions: sudo dnf -y install package

- Remove a package: sudo dnf remove package

- List installed packages: dnf list --installed

- Find which packages provide a given file: dnf provides file

dot
Render an image of a linear directed network graph from a graphviz file.Layouts: dot, neato, twopi, circo, fdp, sfdp, osage & patchwork

More information: https://graphviz.org/doc/info/command.html.

- Render a png image with a filename based on the input filename and output format (uppercase -O): dot -T png -O path/to/input.gv

- Render a svg image with the specified output filename (lowercase -o): dot -T svg -o path/to/image.svg path/to/input.gv

- Render the output in ps, pdf, svg, fig, png, gif, jpg, json, or dot format: dot -T format -O path/to/input.gv

- Render a gif image using stdin and stdout: echo "digraph this -> that " | dot -T gif > path/to/image.gif

- Display help: dot -?

dua
Dua (Disk Usage Analyzer) is a tool to conveniently learn about the usage of disk space of a given directory

More information: https://github.com/Byron/dua-cli.

- Analyze specific directory: dua path/to/directory

- Display apparent size instead of disk usage: dua --apparent-size

- Count hard-linked files each time they are seen: dua --count-hard-links

- Aggregate the consumed space of one or

More directories or files: dua aggregate

- Launch the terminal user interface: dua interactive

- Format printing byte counts: dua --format metric|binary|bytes|GB|GiB|MB|MiB

- Set the number of threads to be used: dua --threads count

dvc
Data Version Control: like git for data

More information: https://dvc.org/.

- Check the DVC version: dvc --version

- Display general help: dvc --help

- Display help about a specific subcommand: dvc subcommand --help

- Execute a DVC subcommand: dvc subcommand

ect
Efficient Compression Tool.File optimizer written in C++. It supports .png, .jpg, .gzip and .zip files

More information: https://github.com/fhanau/Efficient-Compression-Tool.

- Compress a file: ect path/to/file.png

- Compress a file with specified compression level and multithreading (1=Fastest (Worst), 9=Slowest (Best), default is 3): ect -9 --mt-deflate path/to/file.zip

- Compress all files in a directory recursively: ect -recurse path/to/directory

- Compress a file, keeping the original modification time: ect -keep path/to/file.png

- Compress a file, stripping metadata: ect -strip path/to/file.png

eix
Utilities for searching local Gentoo packages.Update local package cache using eix-update

More information: https://wiki.gentoo.org/wiki/Eix.

- Search for a package: eix package_name

- Search for installed packages: eix --installed package_name

- Search in package descriptions: eix --description "description"

- Search by package license: eix --license license

- Exclude results from search: eix --not --license license

elm
Compile and run Elm source files

More information: https://elm-lang.org.

- Initialize an Elm project, generates an elm.json file: elm init

- Start interactive Elm shell: elm repl

- Compile an Elm file, output the result to an index.html file: elm make source

- Compile an Elm file, output the result to a JavaScript file: elm make source --output=destination.js

- Start local web server that compiles Elm files on page load: elm reactor

- Install Elm package from https://package.elm-lang.org: elm install author/package

env
Show the environment or run a program in a modified environment

More information: https://www.gnu.org/software/coreutils/env.

- Show the environment: env

- Run a program. Often used in scripts after the shebang (#!) for looking up the path to the program: env program

- Clear the environment and run a program: env -i program

- Remove variable from the environment and run a program: env -u variable program

- Set a variable and run a program: env variable=value program

- Set multiple variables and run a program: env variable1=value variable2=value variable3=value program

erl
Run and manage programs in the Erlang programming language

More information: https://www.erlang.org.

- Compile and run sequential Erlang program as a common script and then exit: erlc files && erl -noshell 'mymodule:myfunction(arguments), init:stop.'

- Connect to a running Erlang node: erl -remsh nodename@hostname -sname custom_shortname -hidden -setcookie cookie_of_remote_node

- Tell the Erlang shell to load modules from a directory: erl -pa directory_with_beam_files

eva
Simple calculator REPL, similar to bc, with syntax highlighting and persistent history

More information: https://github.com/NerdyPepper/eva.

- Run the calculator in interactive mode: eva

- Calculate the result of an expression: eva "(1 + 2) * 2 ^ 2"

- Calculate an expression forcing the number of decimal places to 5: eva --fix 5 "5 / 3"

- Calculate an expression with sine and cosine: eva "sin(1) + cos(1)"

exa
A modern replacement for ls (List directory contents)

More information: https://the.exa.website.

- List files one per line: exa --oneline

- List all files, including hidden files: exa --all

- Long format list (permissions, ownership, size and modification date) of all files: exa --long --all

- List files with the largest at the top: exa --reverse --sort=size

- Display a tree of files, three levels deep: exa --long --tree --level=3

- List files sorted by modification date (oldest first): exa --long --sort=modified

- List files with their headers, icons, and Git statuses: exa --long --header --icons --git

- Don't list files mentioned in .gitignore: exa --git-ignore

fdp
Render an image of a force-directed network graph from a graphviz file.Layouts: dot, neato, twopi, circo, fdp, sfdp, osage & patchwork

More information: https://graphviz.org/doc/info/command.html.

- Render a png image with a filename based on the input filename and output format (uppercase -O): fdp -T png -O path/to/input.gv

- Render a svg image with the specified output filename (lowercase -o): fdp -T svg -o path/to/image.svg path/to/input.gv

- Render the output in ps, pdf, svg, fig, png, gif, jpg, json, or dot format: fdp -T format -O path/to/input.gv

- Render a gif image using stdin and stdout: echo "digraph this -> that " | fdp -T gif > path/to/image.gif

- Display help: fdp -?

feh
Lightweight image viewing utility

More information: https://feh.finalrewind.org.

- View images locally or using a URL: feh path/to/images

- View images recursively: feh --recursive path/to/images

- View images without window borders: feh --borderless path/to/images

- Exit after the last image: feh --cycle-once path/to/images

- Set the slideshow cycle delay: feh --slideshow-delay seconds path/to/images

- Set your wallpaper (centered, filled, maximized, scaled or tiled): feh --bg-center|fill|max|scale|tile path/to/image

- Create a montage of all images within a directory. Outputs as a new image: feh --montage --thumb-height 150 --thumb-width 150 --index-info "%nn%wx%h" --output path/to/montage_image.png

ffe
Extract fields from a flat database file and write to another format.A configuration file is required to interpret the input and format the output

More information: http://ff-extractor.sourceforge.net/ffe.html.

- Display all input data using the specified data configuration: ffe --configuration=path/to/config.ffe path/to/input

- Convert an input file to an output file in a new format: ffe --output=path/to/output -c path/to/config.ffe path/to/input

- Select input structure and print format from definitions in ~/.fferc config file: ffe --structure=structure --print=format path/to/input

- Write only the selected fields: ffe --field-list="FirstName,LastName,Age" -c path/to/config.ffe path/to/input

- Write only the records that match an expression: ffe -e "LastName=Smith" -c path/to/config.ffe path/to/input

- Display help: ffe --help

fin
Docksal command-line utility

More information: https://docs.docksal.io/fin/fin/.

- Start the project in the current directory: fin project start

- Stop the project in the current directory: fin project stop

- Open a shell into a specific container: fin bash container_name

- Display logs of a specific container: fin logs container_name

- Display logs of a specific container and follow the log: fin logs -f container_name

fls
List files and directories in an image file or device

More information: https://wiki.sleuthkit.org/index.php?title=Fls.

- Build a recursive fls list over a device, output paths will start with C:  fls -r -m C: /dev/loop1p1

- Analyse a single partition, providing the sector offset at which the filesystem starts in the image: fls -r -m C: -o sector path/to/image_file

- Analyse a single partition, providing the timezone of the original system: fls -r -m C: -z timezone /dev/loop1p1

fly
Command-line tool for concourse-ci

More information: https://concourse-ci.org/fly.html.

- Authenticate with and save concourse target: fly --target target_name login --team-name team_name -c https://ci.example.com

- List targets: fly targets

- List pipelines: fly -t target_name pipelines

- Upload or update a pipeline: fly -t target_name set-pipeline --config pipeline.yml --pipeline pipeline_name

- Unpause pipeline: fly -t target_name unpause-pipeline --pipeline pipeline_name

- Show pipeline configuration: fly -t target_name get-pipeline --pipeline pipeline_name

- Update local copy of fly: fly -t target_name sync

- Destroy pipeline: fly -t target_name destroy-pipeline --pipeline pipeline_name

fmt
Reformat a text file by joining its paragraphs and limiting the line width to given number of characters (75 by default)

More information: https://www.gnu.org/software/coreutils/fmt.

- Reformat a file: fmt path/to/file

- Reformat a file producing output lines of (at most) n characters: fmt -w n path/to/file

- Reformat a file without joining lines shorter than the given width together: fmt -s path/to/file

- Reformat a file with uniform spacing (1 space between words and 2 spaces between paragraphs): fmt -u path/to/file

fnm
Fast Node.js version manager.Install, uninstall or switch between Node.js versions

More information: https://github.com/Schniz/fnm.

- Install a specific version of Node.js: fnm install node_version

- List all available Node.js versions and highlight the default one: fnm ls

- Use a specific version of Node.js in the current shell: fnm use node_version

- Set the default Node.js version: fnm default node_version

- Uninstall a given Node.js version: fnm uninstall node_version

for
Shell loop over parameters

More information: https://man.archlinux.org/man/for.n.

- Perform a command with different arguments: for argument in 1 2 3; do command $argument; done

- Perform a command in every directory: for d in *; do (cd $d; command); done

ftp
Tools to interact with a server via File Transfer Protocol

More information: https://manned.org/ftp.

- Connect to an FTP server: ftp ftp.example.com

- Switch to binary transfer mode (graphics, compressed files, etc): binary

- Transfer multiple files without prompting for confirmation on every file: prompt off

- Download multiple files (glob expression): mget *.png

- Upload multiple files (glob expression): mput *.zip

- Delete multiple files on the remote server: mdelete *.txt

- Rename a file on the remote server: rename original_filename new_filename

fzf
Command-line fuzzy finder.Similar to sk

More information: https://github.com/junegunn/fzf.

- Start fzf on all files in the specified directory: find path/to/directory -type f | fzf

- Start fzf for running processes: ps aux | fzf

- Select multiple files with Shift + Tab and write to a file: find path/to/directory -type f | fzf --multi > filename

- Start fzf with a specified query: fzf --query "query"

- Start fzf on entries that start with core and end with either go, rb, or py: fzf --query "^core go$ | rb$ | py$"

- Start fzf on entries that not match pyc and match exactly travis: fzf --query "!pyc 'travis"

gcc
Preprocess and compile C and C++ source files, then assemble and link them together

More information: https://gcc.gnu.org.

- Compile multiple source files into executable: gcc source1.c source2.c --output executable

- Allow warnings, debug symbols in output: gcc source.c -Wall -Og --output executable

- Include libraries from a different path: gcc source.c --output executable -Iheader_path -Llibrary_path -llibrary_name

- Compile source code into Assembler instructions: gcc -S source.c

- Compile source code without linking: gcc -c source.c

gdb
The GNU Debugger

More information: https://www.gnu.org/software/gdb.

- Debug an executable: gdb executable

- Attach a process to gdb: gdb -p procID

- Debug with a core file: gdb -c core executable

- Execute given GDB commands upon start: gdb -ex "commands" executable

- Start gdb and pass arguments to the executable: gdb --args executable argument1 argument2

gem
Interact with the package manager for the Ruby programming language

More information: https://rubygems.org.

- Search for remote gem(s) and show all available versions: gem search regular_expression --all

- Install the latest version of a gem: gem install gemname

- Install specific version of a gem: gem install gemname --version 1.0.0

- Install the latest matching (SemVer) version of a gem: gem install gemname --version '~> 1.0'

- Update a gem: gem update gemname

- List all local gems: gem list

- Uninstall a gem: gem uninstall gemname

- Uninstall specific version of a gem: gem uninstall gemname --version 1.0.0

ghc
The Glasgow Haskell Compiler.Compiles and links Haskell source files

More information: https://www.haskell.org/ghc.

- Find and compile all modules in the current directory: ghc Main

- Compile a single file: ghc file.hs

- Compile using extra optimization: ghc -O file.hs

- Stop compilation after generating object files (.o): ghc -c file.hs

- Run Haskell interactive interpreter (REPL): ghci

- Evaluate a single expression: ghc -e expression

git
Distributed version control system

More information: https://git-scm.com/.

- Check the Git version: git --version

- Show general help: git --help

- Show help on a Git subcommand (like commit, log, etc.): git help subcommand

- Execute a Git subcommand: git subcommand

- Execute a Git subcommand on a custom repository root path: git -C path/to/repo subcommand

- Execute a Git subcommand with a given configuration set: git -c 'config.key=value' subcommand

gox
A tool for cross-compiling Go programs

More information: https://github.com/mitchellh/gox.

- Compile Go program in the current directory for all operating systems and architecture combinations: gox

- Download and compile a Go program from a remote URL: gox url_1 url_2

- Compile current directory for a particular operating system: gox -os="os"

- Compile current directory for a single operating system and architecture combination: gox -osarch="os/arch"

gpg
GNU Privacy Guard.See gpg2 for GNU Privacy Guard 2

More information: https://gnupg.org.

- Create a GPG public and private key interactively: gpg --full-generate-key

- Sign doc.txt without encryption (writes output to doc.txt.asc): gpg --clearsign doc.txt

- Encrypt doc.txt for alice@example.com (output to doc.txt.gpg): gpg --encrypt --recipient alice@example.com doc.txt

- Encrypt doc.txt with only a passphrase (output to doc.txt.gpg): gpg --symmetric doc.txt

- Decrypt doc.txt.gpg (output to stdout): gpg --decrypt doc.txt.gpg

- Import a public key: gpg --import public.gpg

- Export public key for alice@example.com (output to stdout): gpg --export --armor alice@example.com

- Export private key for alice@example.com (output to stdout): gpg --export-secret-keys --armor alice@example.com

hub
A wrapper for Git that adds commands for working with GitHub-based projects.If set up as instructed by hub alias, one can use git to run hub commands

More information: https://hub.github.com.

- Clone a repository using its slug (owners can omit the username): hub clone username/repo_name

- Create a fork of the current repository (cloned from another user) under your GitHub profile: hub fork

- Push the current local branch to GitHub and create a PR for it in the original repository: hub push remote_name && hub pull-request

- Create a PR of the current (already pushed) branch, reusing the message from the first commit: hub pull-request --no-edit

- Create a new branch with the contents of a pull request and switch to it: hub pr checkout pr_number

- Upload the current (local-only) repository to your GitHub account: hub create

- Fetch Git objects from upstream and update local branches: hub sync

iex
IEx is the interactive shell for Elixir

More information: https://hexdocs.pm/iex.

- Start an interactive session: iex

- Start a session that remembers history: iex --erl "-kernel shell_history enabled"

- Start and load Mix project files: iex -S mix

jar
Java Applications/Libraries Packager

More information: https://docs.oracle.com/javase/tutorial/deployment/jar/basicsindex.html.

- Recursively archive all files in the current directory into a .jar file: jar cf file.jar *

- Unzip .jar/.war file to the current directory: jar -xvf file.jar

- List a .jar/.war file content: jar tf path/to/file.jar

- List a .jar/.war file content with verbose output: jar tvf path/to/file.jar

jps
Show JVM Process Status of current user

More information: https://docs.oracle.com/en/java/javase/11/tools/jps.html.

- List all JVM processes: jps

- List all JVM processes with only PID: jps -q

- Display the arguments passed to the processes: jps -m

- Display the full package name of all processes: jps -l

- Display the arguments passed to the JVM: jps -v

jwt
A command-line tool to work with JSON Web Tokens (JWTs).Encryption algorithms available are HS256, HS384, HS512, RS256, RS384, RS512, ES256, ES384

More information: https://github.com/mike-engel/jwt-cli.

- Decode a JWT: jwt decode jwt_string

- Decode a JWT as a JSON string: jwt decode -j jwt_string

- Encode a JSON string to a JWT: jwt encode --alg HS256 --secret 1234567890 'json_string'

- Encode key pair payload to JWT: jwt encode --alg HS256 --secret 1234567890 -P key=value

kak
Kakoune is a mode-based code editor implementing the "multiple selections" paradigm.Data can be selected and simultaneously edited in different locations, using multiple selections; users can also connect to the same session for collaborative editing

More information: https://kakoune.org.

- Open a file and enter normal mode, to execute commands: kak path/to/file

- Enter insert mode from normal mode, to write text into the file: i

- Escape insert mode, to go back to normal mode: 

- Replace all instances of "foo" in the current file with "bar": %sfoocbar

- Unselect all secondary selections, and keep only the main one: 

- Search for numbers and select the first two: /\d+N

- Insert the contents of a file: !cat path/to/file

- Save the current file: :w

kjv
The word of God available right on your desktop

More information: https://github.com/bontibon/kjv.

- Display books: kjv -l

- Open a specific book: kjv Genesis

- Open a specific chapter of a book: kjv Genesis 2

- Open a specific verse of a specific chapter of a book: kjv John 3:16

- Open a specific range of verses of a book's chapter: kjv Proverbs 3:1-6

- Display a specific range of verses of a book from different chapters: kjv Matthew 1:7-2:6

- Display all verses that match a pattern: kjv /Plagues

- Display all verses that match a pattern in a specific book: kjv 1Jn/antichrist

ksh
Korn Shell, a Bash-compatible command-line interpreter.See also histexpand for history expansion

More information: http://kornshell.com.

- Start an interactive shell session: ksh

- Execute a command and then exit: ksh -c "command"

- Execute a script: ksh path/to/script.ksh

- Execute a script, printing each command before executing it: ksh -x path/to/script.ksh

ldd
Display shared library dependencies

More information: https://manned.org/ldd.

- Display shared library dependencies of a binary: ldd path/to/binary

- Display unused direct dependencies: ldd -u path/to/binary

lex
Lexical analyser generator.Given the specification for a lexical analyser, generates C code implementing it.

- Generate an analyser from a Lex file: lex analyser.l

- Specify the output file: lex analyser.l --outfile analyser.c

- Compile a C file generated by Lex: cc path/to/lex.yy.c --output executable

loc
Tool written in Rust that counts lines of code

More information: https://github.com/cgag/loc.

- Print lines of code in the current directory: loc

- Print lines of code in the target directory: loc path/to/directory

- Print lines of code with stats for individual files: loc --files

- Print lines of code without .gitignore (etc.) files (e.g. two -u flags will additionally count hidden files and dirs): loc -u

lpr
CUPS tool for printing files.See also lpstat and lpadmin for listing and configuring printers

More information: http://www.CUPS.org.

- Print a file to the default printer: lpr path/to/file

- Print 2 copies: lpr -# 2 path/to/file

- Print to a named printer: lpr -P printer path/to/file

- Print either a single page (e.g. 2) or a range of pages (e.g. 2–16): lpr -o page-ranges=2|2-16 path/to/file

- Print double-sided either in portrait (long) or in landscape (short): lpr -o sides=two_sided_long_edge|two_sided_short_edge path/to/file

- Set page size

More options may be available depending on setup):  lpr -o media=a4|letter|legal path/to/file

- Print multiple pages per sheet: lpr -o number-up=2|4|6|9|16 path/to/file

lua
A powerful, light-weight embeddable programming language

More information: https://www.lua.org.

- Start an interactive Lua shell: lua

- Execute a Lua script: lua script_name.lua --optional-argument

- Execute a Lua expression: lua -e 'print( "Hello World" )'

lvm
Manage physical volumes, volume groups, and logical volumes using the Logical Volume Manager (LVM) interactive shell

More information: https://man7.org/linux/man-pages/man8/lvm.8.html.

- Start the Logical Volume Manager interactive shell: sudo lvm

- List the Logical Volume Manager commands: sudo lvm help

- Initialize a drive or partition to be used as a physical volume: sudo lvm pvcreate /dev/sdXY

- Display information about physical volumes: sudo lvm pvdisplay

- Create a volume group called vg1 from the physical volume on /dev/sdXY: sudo lvm vgcreate vg1 /dev/sdXY

- Display information about volume groups: sudo lvm vgdisplay

- Create a logical volume with size 10G from volume group vg1: sudo lvm lvcreate -L 10G vg1

- Display information about logical volumes: sudo lvm lvdisplay

lvs
Display information about logical volumes.See also: lvm

More information: https://man7.org/linux/man-pages/man8/lvs.8.html.

- Display information about logical volumes: lvs

- Display all logical volumes: lvs -a

- Change default display to show

More details: lvs -v

- Display only specific fields: lvs -o field_name_1,field_name_2

- Append field to default display: lvs -o +field_name

- Suppress heading line: lvs --noheadings

- Use a separator to separate fields: lvs --separator =

lxc
Manage Linux containers using the lxd REST API.Any container names or patterns can be prefixed with the name of a remote server

More information: https://manned.org/lxc.

- List local containers matching a string. Omit the string to list all local containers: lxc list match_string

- List images matching a string. Omit the string to list all images: lxc image list [remote:]match_string

- Create a new container from an image: lxc init [remote:]image container

- Start a container: lxc start [remote:]container

- Stop a container: lxc stop [remote:]container

- Show detailed info about a container: lxc info [remote:]container

- Take a snapshot of a container: lxc snapshot [remote:]container snapshot

lxi
Control LXI compatible instruments such as oscilloscopes

More information: https://github.com/lxi-tools/lxi-tools.

- Discover LXI devices on available networks: lxi discover

- Capture a screenshot, detecting a plugin automatically: lxi screenshot --address ip_address

- Capture a screenshot using a specified plugin: lxi screenshot --address ip_address --plugin rigol-1000z

- Send an SCPI command to an instrument: lxi scpi --address ip_address "*IDN?"

- Run a benchmark for request and response performance: lxi benchmark --address ip_address

man
Format and display manual pages

More information: https://www.man7.org/linux/man-pages/man1/man.1.html.

- Display the man page for a command: man command

- Display the man page for a command from section 7: man command.7

- Display the path searched for manpages: man --path

- Display the location of a manpage rather than the manpage itself: man -w command

- Display the man page using a specific locale: man command --locale=locale

- Search for manpages containing a search string: man -k "search_string"

mas
Command-line interface for the Mac App Store

More information: https://github.com/mas-cli/mas.

- Sign into the Mac App Store for the first time: mas signin user@example.com

- Show all installed applications and their product identifiers: mas list

- Search for an application, displaying the price alongside the results: mas search application --price

- Install or update an application: mas install product_identifier

- Install all pending updates: mas upgrade

mdp
A command-line based tool to make presentations from Markdown files

More information: https://github.com/visit1985/mdp.

- Launch a presentation in the terminal from a Markdown file: mdp presentation.md

- Disable fading transitions: mdp --nofade presentation.md

- Invert font colors to use in terminals with light background: mdp --invert presentation.md

- Disable transparency in transparent terminals: mdp --notrans presentation.md

mix
Mix is a build tool that provides tasks for creating, compiling, and testing Elixir projects, managing its dependencies, and

More

More information: https://hexdocs.pm/mix.

- Execute a particular file: mix run my_script.exs

- Create a new project: mix new project_name

- Compile project: mix compile

- Run project tests: mix test

- List all mix commands: mix help

mlr
Miller is like awk, sed, cut, join, and sort for name-indexed data such as CSV, TSV, and tabular JSON

More information: https://johnkerl.org/miller/doc.

- Pretty-print a CSV file in a tabular format: mlr --icsv --opprint cat example.csv

- Receive JSON data and pretty print the output: echo '"hello":"world"' | mlr --ijson --opprint cat

- Sort alphabetically on a field: mlr --icsv --opprint sort -f field example.csv

- Sort in descending numerical order on a field: mlr --icsv --opprint sort -nr field example.csv

- Convert CSV to JSON, performing calculations and display those calculations: mlr --icsv --ojson put '$newField1 = $oldFieldA/$oldFieldB' example.csv

- Receive JSON and format the output as vertical JSON: echo '"hello":"world", "foo":"bar"' | mlr --ijson --ojson --jvstack cat

- Filter lines of a compressed CSV file treating numbers as strings: mlr --prepipe 'gunzip' --csv filter -S '$fieldName =~ "regular_expression"' example.csv.gz

mmv
Move and rename files in bulk.

- Rename all files with a certain extension to a different extension: mmv "*.old_extension" "#1.new_extension"

- Copy report6part4.txt to ./french/rapport6partie4.txt along with all similarly named files: mmv -c "report*part*.txt" "./french/rapport#1partie#2.txt"

- Append all .txt files into one file: mmv -a "*.txt" "all.txt"

- Convert dates in filenames from "M-D-Y" format to "D-M-Y" format: mmv "[0-1][0-9]-[0-3][0-9]-[0-9][0-9][0-9][0-9].txt" "#3#4-#1#2-#5#6#7#8.txt"

moe
A WYSIWYG text editor for ISO-8859-15 encoded text

More information: https://www.gnu.org/software/moe/moe.html.

- Open moe and create a backup file (file~) when saving edits: moe path/to/file

- Open a file as read-only: moe --read-only path/to/file

- Edit a file without creating backups: moe --no-backup path/to/file

- Edit a file ignoring case in searches: moe --ignore-case path/to/file

- Save and Quit: Ctrl + X

mpc
Music Player Client.Program for controlling the Music Player Daemon (MPD)

More information: https://www.musicpd.org/clients/mpc.

- Toggle play/pause: mpc toggle

- Stop playing: mpc stop

- Show information about the currently playing song: mpc status

- Play next song: mpc next

- Play previous song: mpc prev

- Forward or rewind the currently playing song: mpc [+-]seconds

mpv
A audio/video player based on MPlayer

More information: https://mpv.io.

- Play a video or audio file: mpv file

- Play a video or audio file from a URL: mpv 'https://www.youtube.com/watch?v=dQw4w9WgXcQ'

- Jump backward/forward 5 seconds: LEFT  RIGHT

- Jump backward/forward 1 minute: DOWN  UP

- Decrease or increase playback speed by 10%: [  ]

- Play a file at a specified speed (0.01 to 100, default 1): mpv --speed speed file

- Play a file using a profile defined in the mpv.conf file: mpv --profile profile_name file

- Display the output of webcam or other video input device: mpv /dev/video0

mtr
Matt's Traceroute: combined traceroute and ping tool

More information: https://bitwizard.nl/mtr.

- Traceroute to a host and continuously ping all intermediary hops: mtr host

- Disable IP address and host name mapping: mtr -n host

- Generate output after pinging each hop 10 times: mtr -w host

- Force IP IPv4 or IPV6: mtr -4 host

- Wait for a given time (in seconds) before sending another packet to the same hop: mtr -i seconds host

mvn
Apache Maven.Tool for building and managing Java-based projects

More information: https://maven.apache.org.

- Compile a project: mvn compile

- Compile and package the compiled code in its distributable format, such as a jar: mvn package

- Compile and package, skipping unit tests: mvn package -Dmaven.test.skip=true

- Install the built package in local maven repository. (This will invoke the compile and package commands too): mvn install

- Delete build artifacts from the target directory: mvn clean

- Do a clean and then invoke the package phase: mvn clean package

- Clean and then package the code with a given build profile: mvn clean -Pprofile package

- Run a class with a main method: mvn exec:java -Dexec.mainClass="com.example.Main" -Dexec.args="arg1 arg2"

ncc
Compile a Node.js application into a single file.Supports TypeScript, binary addons and dynamic requires

More information: https://github.com/vercel/ncc.

- Bundle a Node.js application: ncc build path/to/file.js

- Bundle and minify a Node.js application: ncc build --minify path/to/file.js

- Bundle and minify a Node.js application and generate source maps: ncc build --source-map path/to/file.js

- Automatically recompile on changes to source files: ncc build --watch path/to/file.js

- Bundle a Node.js application into a temporary directory and run it for testing: ncc run path/to/file.js

- Clean the ncc cache: ncc clean cache

ned
Is like grep but with powerful replace capabilities.Unlike sed, as it isn't restricted to line oriented editing

More information: https://github.com/nevdelap/ned.

- Recursively search starting in the current directory, ignoring case: ned --ignore-case --recursive '^[dl]og'.

- Search always showing colored output: ned --colors '^[dl]og'.

- Search never showing colored output: ned --colors=never '^[dl]og'.

- Search ignoring certain files: ned --recursive --exclude '*.htm' '^[dl]og'.

- Simple replace: ned 'dog' --replace 'cat'.

- Replace using numbered group references: ned 'the ([a-z]+) dog and the ([a-z]+) dog' --replace 'the $2 dog and the $1 dog'.

- Replace changing case: ned '([a-z]+) dog' --case-replacements --replace '\U$1\E! dog' --stdout.

- Preview results of a find and replace without updating the target files: ned '^[sb]ad' --replace 'happy' --stdout.

nft
Allows configuration of tables, chains and rules provided by the Linux kernel firewall.Nftables replaces iptables.

- View current configuration: sudo nft list ruleset

- Add a new table with family "inet" and table "filter": sudo nft add table inet filter

- Add a new chain to accept all inbound traffic: sudo nft add chain inet filter input \ type filter hook input priority 0 \; policy accept \

- Add a new rule to accept several TCP ports: sudo nft add rule inet filter input tcp dport \ telnet, ssh, http, https \ accept

- Show rule handles: sudo nft --handle --numeric list chain family table chain

- Delete a rule: sudo nft delete rule inet filter input handle 3

- Save current configuration: sudo nft list ruleset > /etc/nftables.conf

nim
The Nim compiler.Processes, compiles and links Nim language source files

More information: https://nim-lang.org.

- Compile a source file: nim compile file.nim

- Compile and run a source file: nim compile -r file.nim

- Compile a source file with release optimizations enabled: nim compile -d:release file.nim

- Build a release binary optimized for low file size: nim compile -d:release --opt:size file.nim

- Generate HTML documentation for a module (output will be placed in the current directory): nim doc file.nim

nix
Utilities for the Nix language and store

More information: https://nixos.org.

- Search for a package via its name or description: nix search search_term

- Start a Nix shell with the specified packages available: nix run nixpkgs.pkg1 nixpkgs.pkg2 nixpkgs.pkg3...

- Optimise Nix store disk usage by combining duplicate files: nix optimise-store

- Start an interactive environment for evaluating Nix expressions: nix repl

- Upgrade Nix to the latest stable version: nix upgrade-nix

nkf
Network kanji filter.Converts kanji code from one encoding to another.

- Convert to UTF-8 encoding: nkf -w path/to/file.txt

- Convert to SHIFT_JIS encoding: nkf -s path/to/file.txt

- Convert to UTF-8 encoding and overwrite the file: nkf -w --overwrite path/to/file.txt

- Set new line code to LF and overwrite (UNIX type): nkf -d --overwrite path/to/file.txt

- Set new line code to CRLF and overwrite (windows type): nkf -c --overwrite path/to/file.txt

- Decrypt mime file and overwrite: nkf -m --overwrite path/to/file.txt

nms
Command-line tool that recreates the famous data decryption effect seen in the 1992 movie Sneakers from stdin

More information: https://github.com/bartobri/no

More-secrets.

- Decrypt text after a keystroke: echo "Hello, World!" | nms

- Decrypt output immediately, without waiting for a keystroke: ls -la | nms -a

- Decrypt the content of a file, with a custom output color: cat path/to/file | nms -a -f blue|white|yellow|black|magenta|green|red

- Clear the screen before decrypting: command | nms -a -c

now
Cloud platform for serverless deployment.This command is deprecated. See vercel, the updated version of this tool

More information: https://zeit.co/now.

- Deploy the current directory: now

- Display a list of deployments: now list

- Display information related to a deployment: now inspect deployment_url

- Remove a deployment: now remove deployment_id

- Log in into an account or create a new one: now login

- Initialize an example project (a new directory will be created): now init

npm
JavaScript and Node.js package manager.Manage Node.js projects and their module dependencies

More information: https://www.npmjs.com/.

- Interactively create a package.json file: npm init

- Download all the packages listed as dependencies in package.json: npm install

- Download a specific version of a package and add it to the list of dependencies in package.json: npm install module_name@version

- Download a package and add it to the list of dev dependencies in package.json: npm install module_name --save-dev

- Download a package and install it globally: npm install --global module_name

- Uninstall a package and remove it from the list of dependencies in package.json: npm uninstall module_name

- Print a tree of locally installed dependencies: npm list

- List top-level globally installed modules: npm list --global --depth=0

npx
Execute binaries from npm packages

More information: https://www.npmjs.com/package/npx.

- Execute the binary from a given npm module: npx module_name

- In case a package has multiple binaries, specify the package name along with the binary: npx -p package_name module_name

- View help contents: npx --help

nrm
NPM registry manager.Helps to easily switch between different npm registries

More information: https://github.com/Pana/nrm.

- List all registries: nrm ls

- Change to a particular registry: nrm use registry

- Show the response time for all registries: nrm test

- Add a custom registry: nrm add registry url

- Delete a registry: nrm del registry

nvm
Install, uninstall or switch between Node.js versions.Supports version numbers like "0.12" or "v4.2", and labels like "stable", "system", etc

More information: https://github.com/creationix/nvm.

- Install a specific version of Node.js: nvm install node_version

- Use a specific version of Node.js in the current shell: nvm use node_version

- Set the default Node.js version: nvm alias default node_version

- List all available Node.js versions and highlight the default one: nvm list

- Uninstall a given Node.js version: nvm uninstall node_version

- Launch the REPL of a specific version of Node.js: nvm run node_version --version

- Execute a script in a specific version of Node.js: nvm exec node_version node app.js

obs
Open Broadcaster Software.Video recording and livestreaming program.

- Launch OBS: obs

- Launch OBS in portable mode: obs --portable

- Automatically start recording a video on launch: obs --startrecording

- Automatically start the replay buffer on launch: obs --startreplaybuffer

- Automatically start streaming on launch: obs --startstreaming

- Minimise to the system tray on launch: obs --minimize-to-tray

- Make the log

More verbose (for debugging): obs --verbose

omf
Oh My Fish, the Fishshell Framework.Install packages to extend and modify the fish shell

More information: https://github.com/oh-my-fish/oh-my-fish.

- Install one or

More packages: omf install name

- List installed packages: omf list

- List available themes: omf theme

- Apply a theme: omf theme name

- Remove a theme or package: omf remove name

- Uninstall Oh My Fish: omf destroy

opt
A tool that takes LLVM source files and runs specified optimizations and/or analyses on them

More information: https://llvm.org/docs/CommandGuide/opt.html.

- Run an optimization or analysis on a bitcode file: opt -passname path/to/file.bc -S -o file_opt.bc

- Output the Control Flow Graph of a function to a .dot file: opt -dot-cfg -S path/to/file.bc -disable-output

- Optimize the program at level 2 and output the result to another file: opt -O2 path/to/file.bc -S -o path/to/output_file.bc

pax
Archiving and copying utility.

- List the contents of an archive: pax -f archive.tar

- List the contents of a gzipped archive: pax -zf archive.tar.gz

- Create an archive from files: pax -wf target.tar path/to/file1 path/to/file2 path/to/file3

- Create an archive from files, using output redirection: pax -w path/to/file1 path/to/file2 path/to/file3 > target.tar

- Extract an archive into the current directory: pax -rf source.tar

- Copy to a directory, while keeping the original metadata; target/ must exist: pax -rw path/to/file1 path/to/directory1 path/to/directory2 target/

php
PHP command-line interface

More information: https://php.net.

- Parse and execute a PHP script: php file

- Check syntax on (i.e. lint) a PHP script: php -l file

- Run PHP interactively: php -a

- Run PHP code (Notes: Don't use <? ?> tags; escape double quotes with backslash): php -r "code"

- Start a PHP built-in web server in the current directory: php -S host:port

- Get a list of installed PHP extensions: php -m

- Display information about the current PHP configuration: php -i

pio
Development environment for embedded boards

More information: https://docs.platformio.org/en/latest/core/userguide/.

- Show help and list subcommands: pio --help

- Print the version number and exit: pio --version

- Show help for a specific subcommand: pio subcommand --help

pip
Python package manager

More information: https://pip.pypa.io.

- Install a package (see pip install for

More install examples):  pip install package_name

- Upgrade a package: pip install -U package_name

- Uninstall a package: pip uninstall package_name

- Save installed packages to file: pip freeze > requirements.txt

- Show installed package info: pip show package_name

pod
Dependency manager for Swift and Objective-C Cocoa projects.

- Create a Podfile for the current project with the default contents: pod init

- Download and install all pods defined in the Podfile (that haven't been installed before): pod install

- List all available pods: pod list

- Show the outdated pods (of those currently installed): pod outdated

- Update all currently installed pods to their newest version: pod update

- Update a specific (previously installed) pod to its newest version: pod update pod_name

- Remove CocoaPods from a Xcode project: pod deintegrate xcode_project

ptx
Generate a permuted index of words from one or

More text files

More information: https://www.gnu.org/software/coreutils/ptx.

- Generate a permuted index where the first field of each line is an index reference: ptx --references path/to/file

- Generate a permuted index with automatically generated index references: ptx --auto-reference path/to/file

- Generate a permuted index with a fixed width: ptx --width=width_in_columns path/to/file

- Generate a permuted index with a list of filtered words: ptx --only-file=path/to/filter path/to/file

- Generate a permuted index with SYSV-style behaviors: ptx --traditional path/to/file

pup
Command-line HTML parsing tool

More information: https://github.com/ericchiang/pup.

- Transform a raw HTML file into a cleaned, indented, and colored format: cat index.html | pup --color

- Filter HTML by element tag name: cat index.html | pup 'tag'

- Filter HTML by id: cat index.html | pup 'div#id'

- Filter HTML by attribute value: cat index.html | pup 'input[type="text"]'

- Print all text from the filtered HTML elements and their children: cat index.html | pup 'div text'

- Print HTML as JSON: cat index.html | pup 'div json'

pvs
Display information about physical volumes.See also: lvm

More information: https://man7.org/linux/man-pages/man8/pvs.8.html.

- Display information about physical volumes: pvs

- Display non-physical volumes: pvs -a

- Change default display to show

More details: pvs -v

- Display only specific fields: pvs -o field_name_1,field_name_2

- Append field to default display: pvs -o +field_name

- Suppress heading line: pvs --noheadings

- Use separator to separate fields: pvs --separator special_character

pwd
Print name of current/working directory

More information: https://www.gnu.org/software/coreutils/pwd.

- Print the current directory: pwd

- Print the current directory, and resolve all symlinks (i.e. show the "physical" path): pwd -P

qcp
Copy files using the default text editor to define the filenames

More information: https://www.nongnu.org/renameutils/.

- Copy a single file (open an editor with the source filename on the left and the target filename on the right): qcp source_file

- Copy multiple JPG files: qcp *.jpg

- Copy files, but swap the positions of the source and the target filenames in the editor: qcp --option swap *.jpg

qmv
Move files and directories using the default text editor to define the filenames

More information: https://www.nongnu.org/renameutils/.

- Move a single file (open an editor with the source filename on the left and the target filename on the right): qmv source_file

- Move multiple JPG files: qmv *.jpg

- Move multiple directories: qmv -d path/to/directory1 path/to/directory2 path/to/directory3

- Move all files and directories inside a directory: qmv --recursive path/to/directory

- Move files, but swap the positions of the source and the target filenames in the editor: qmv --option swap *.jpg

rar
The RAR archiver. Supports multi-volume archives that can be optionally self-extracting.

- Archive 1 or

More files: rar a path/to/archive_name.rar path/to/file1 path/to/file2 path/to/file3

- Archive a directory: rar a path/to/archive_name.rar path/to/directory

- Split the archive into parts of equal size (50M): rar a -v50M -R path/to/archive_name.rar path/to/file_or_directory

- Password protect the resulting archive: rar a -ppassword path/to/archive_name.rar path/to/file_or_directory

- Encrypt file data and headers with password: rar a -hppassword path/to/archive_name.rar path/to/file_or_directory

- Use a specific compression level (0-5): rar a -mcompression_level path/to/archive_name.rar path/to/file_or_directory

rbt
RBTools is a set of command-line tools for working with Review Board and RBCommons

More information: https://www.reviewboard.org/docs/rbtools/dev/.

- Post changes to Review Board: rbt post change_number

- Display the diff that will be sent to Review Board: rbt diff

- Land a change in a local branch or on a review request: rbt land branch_name

- Patch your tree with a change on a review request: rbt patch review_request_id

- Set up RBTool to talk to a repository: rbt setup-repo

rev
Reverse a line of text.

- Reverse the text string "hello": echo "hello" | rev

- Reverse an entire file and print to stdout: rev file

rig
Utility to piece together a random first name, last name, street number and address, along with a geographically consistent (ie, they all match the same area) city, state, ZIP code, and area code

More information: https://manpages.ubuntu.com/manpages/focal/man6/rig.6.html.

- Display a random name (male or female) and address: rig

- Display a [m]ale (or [f]emale) random name and address: rig -m|f

- Use data files from a specific directory (default is /usr/share/rig): rig -d path/to/directory

- Display a specific number of identities: rig -c number

- Display a specific number of female identities: rig -f -c number

rpm
RPM Package Manager.

- Show version of httpd package: rpm -q httpd

- List versions of all matching packages: rpm -qa 'mariadb*'

- Forcibly install a package regardless of currently installed versions: rpm -U package_name.rpm --force

- Identify owner of a file and show version of the package: rpm -qf /etc/postfix/main.cf

- List package-owned files: rpm -ql kernel

- Show scriptlets from an RPM file: rpm -qp --scripts package_name.rpm

- Show changed, missing and/or incorrectly installed files of matching packages: rpm -Va 'php-*'

rtv
Reddit Terminal Viewer.Use arrow keys to navigate. Right and Left to view and return from a submission, respectively

More information: https://github.com/michael-lazar/rtv.

- Open the front page: /front

- Open a subreddit: /r/subreddit_name

- Expand/collapse comments: [space]

- Open link: o

- Log in: u

- Open the help screen: ?

rvm
A tool for easily installing, managing, and working with multiple ruby environments

More information: https://rvm.io.

- Install one or

More space-separated versions of Ruby: rvm install version(s)

- Display a list of installed versions: rvm list

- Use a specific version of Ruby: rvm use version

- Set the default Ruby version: rvm --default use version

- Upgrade a version of Ruby to a new version: rvm upgrade current_version new_version

- Uninstall a version of Ruby and keep its sources: rvm uninstall version

- Remove a version of Ruby and its sources: rvm remove version

- Show specific dependencies for your OS: rvm requirements

sam
AWS Serverless Application Model (SAM) CLI

More information: https://github.com/awslabs/aws-sam-cli.

- Initialize a serverless application: sam init

- Initialize a serverless application with a specific runtime: sam init --runtime python3.7

- Package a SAM application: sam package

- Build your Lambda function code: sam build

- Run your serverless application locally: sam local start-api

- Deploy an AWS SAM application: sam deploy

sar
Monitor performance of various Linux subsystems.

- Report I/O and transfer rate issued to physical devices, one per second (press CTRL+C to quit): sar -b 1

- Report a total of 10 network device statistics, one per 2 seconds: sar -n DEV 2 10

- Report CPU utilization, one per 2 seconds: sar -u ALL 2

- Report a total of 20 memory utilization statistics, one per second: sar -r ALL 1 20

- Report the run queue length and load averages, one per second: sar -q 1

- Report paging statistics, one per 5 seconds: sar -B 5

say
Converts text to speech.

- Say a phrase aloud: say "I like to ride my bike."

- Read a file aloud: say -f filename.txt

- Say a phrase with a custom voice and speech rate: say -v voice -r words_per_minute "I'm sorry Dave, I can't let you do that."

- List the available voices: say -v "?"

- Create an audio file of the spoken text: say -o filename.aiff "Here's to the Crazy Ones."

sbt
Build tool for Scala and Java projects

More information: https://www.scala-sbt.org/1.0/docs/.

- Start the SBT interactive shell (REPL): sbt

- Create a new Scala project from an existing Giter8 template hosted on GitHub: sbt new scala/hello-world.g8

- Use the specified version of sbt: sbt -sbt-version version

- Use a specific jar file as the sbt launcher: sbt -sbt-jar path

- List all sbt options: sbt -h

scc
Tool written in Go that counts lines of code

More information: https://github.com/boyter/scc.

- Print lines of code in the current directory: scc

- Print lines of code in the target directory: scc path/to/directory

- Display output for every file: scc --by-file

- Display output using a specific output format (defaults to tabular): scc --format tabular|wide|json|csv|cloc-yaml|html|html-table

- Only count files with specific file extensions: scc --include-ext go, java, js

- Exclude directories from being counted: scc --exclude-dir .git,.hg

- Display output and sort by column (defaults to by files): scc --sort files|name|lines|blanks|code|comments|complexity

- Print help for scc: scc -h

scp
Secure copy.Copy files between hosts using Secure Copy Protocol over SSH

More information: https://man.openbsd.org/scp.

- Copy a local file to a remote host: scp path/to/local_file remote_host:path/to/remote_file

- Use a specific port when connecting to the remote host: scp -P port path/to/local_file remote_host:path/to/remote_file

- Copy a file from a remote host to a local directory: scp remote_host:path/to/remote_file path/to/local_directory

- Recursively copy the contents of a directory from a remote host to a local directory: scp -r remote_host:path/to/remote_directory path/to/local_directory

- Copy a file between two remote hosts transferring through the local host: scp -3 host1:path/to/remote_file host2:path/to/remote_directory

- Use a specific username when connecting to the remote host: scp path/to/local_file remote_username@remote_host:path/to/remote_directory

- Use a specific ssh private key for authentication with the remote host: scp -i ~/.ssh/private_key local_file remote_host:/path/remote_file

sdk
Tool for managing parallel versions of multiple Software Development Kits.Supports Java, Groovy, Scala, Kotlin, Gradle, Maven, Vert.x and many others

More information: https://sdkman.io/usage.

- Install a specific version of Gradle: sdk install gradle gradle_version

- Switch to a specific version of Gradle: sdk use gradle gradle_version

- Check current Gradle version: sdk current gradle

- List all Software Development Kits available to install: sdk list

- Update Gradle to the latest version: sdk upgrade gradle

- Uninstall a particular version of Gradle: sdk rm gradle gradle_version

sed
Edit text in a scriptable manner

More information: https://man.archlinux.org/man/sed.1.

- Replace the first occurrence of a regular expression in each line of a file, and print the result: sed 's/regular_expression/replace/' filename

- Replace all occurrences of an extended regular expression in a file, and print the result: sed -r 's/regular_expression/replace/g' filename

- Replace all occurrences of a string in a file, overwriting the file (i.e. in-place): sed -i 's/find/replace/g' filename

- Replace only on lines matching the line pattern: sed '/line_pattern/s/find/replace/' filename

- Delete lines matching the line pattern: sed '/line_pattern/d' filename

- Print the first 11 lines of a file: sed 11q filename

- Apply multiple find-replace expressions to a file: sed -e 's/find/replace/' -e 's/find/replace/' filename

- Replace separator / by any other character not used in the find or replace patterns, e.g. #: sed 's#find#replace#' filename

see
Alias to run-mailcap's view.An alias to a run-mailcap's action print.

- See action can be used to view any file (usually image) on default mailcap explorer: see filename

- Using with run-mailcap: run-mailcap --action=view filename

seq
Output a sequence of numbers to stdout

More information: https://www.gnu.org/software/coreutils/seq.

- Sequence from 1 to 10: seq 10

- Every 3rd number from 5 to 20: seq 5 3 20

- Separate the output with a space instead of a newline: seq -s " " 5 3 20

- Format output width to a minimum of 4 digits padding with zeros as necessary: seq -f "%04g" 5 3 20

set
Display, set or unset values of shell attributes and positional parameters.

- Display the names and values of shell variables: set

- Mark variables that are modified or created for export: set -a

- Notify of job termination immediately: set -b

- Set various options, e.g. enable vi style line editing: set -o vi

shc
Generic shell script compiler.

- Compile a shell script: shc -f script

- Compile a shell script and specify an output binary file: shc -f script -o binary

- Compile a shell script and set an expiration date for the executable: shc -f script -e dd/mm/yyyy

- Compile a shell script and set a message to display upon expiration: shc -f script -e dd/mm/yyyy -m "Please contact your provider"

sic
Simple IRC client.Part of the suckless tools

More information: https://tools.suckless.org/sic/.

- Connect to the default host (irc.ofct.net) with the nickname set in the $USER environment variable: sic

- Connect to a given host, using a given nickname: sic -h host -n nickname

- Connect to a given host, using a given nickname and password: sic -h host -n nickname -k password

- Join a channel: :j #channel

- Send a message to a channel or user: :m #channel|user

- Set default channel or user: :s #channel|user

sox
Sound eXchange: play, record and convert audio files.Audio formats are identified by the extension

More information: http://sox.sourceforge.net.

- Merge two audio files into one: sox -m input_audiofile1 input_audiofile2 output_audiofile

- Trim an audio file to the specified times: sox input_audiofile output_audiofile trim start end

- Normalize an audio file (adjust volume to the maximum peak level, without clipping): sox --norm input_audiofile output_audiofile

- Reverse and save an audio file: sox input_audiofile output_audiofile reverse

- Print statistical data of an audio file: sox input_audiofile -n stat

- Increase the volume of an audio file by 2x: sox -v 2.0 input_audiofile output_audiofile

spi
A meta package manager that handles both packages and slackbuilds

More information: https://github.com/gapan/spi.

- Update the list of available packages and slackbuilds: spi --update

- Install a package or slackbuild: spi --install package/slackbuild_name

- Upgrade all installed packages to the latest versions available: spi --upgrade

- Locate packages or slackbuilds by package name or description: spi search_terms

- Display information about a package or slackbuild: spi --show package/slackbuild_name

- Purge the local package and slackbuild caches: spi --clean

srm
Securely remove files or directories.Overwrites the existing data one or multiple times. Drop in replacement for rm

More information: http://srm.sourceforge.net/srm.html.

- Remove a file after a single-pass overwriting with random data: srm -s path/to/file

- Remove a file after seven passes of overwriting with random data: srm -m path/to/file

- Recursively remove a directory and its contents overwriting each file with a single-pass of random data: srm -r -s path/to/directory

- Prompt before every removal: srm -i \*

ssh
Secure Shell is a protocol used to securely log onto remote systems.It can be used for logging or executing commands on a remote server.

- Connect to a remote server: ssh username@remote_host

- Connect to a remote server with a specific identity (private key): ssh -i path/to/key_file username@remote_host

- Connect to a remote server using a specific port: ssh username@remote_host -p 2222

- Run a command on a remote server: ssh remote_host command -with -flags

- SSH tunneling: Dynamic port forwarding (SOCKS proxy on localhost:1080): ssh -D 1080 username@remote_host

- SSH tunneling: Forward a specific port (localhost:9999 to example.org:80) along with disabling pseudo-[t]ty allocation and executio[n] of remote commands: ssh -L 9999:example.org:80 -N -T username@remote_host

- SSH jumping: Connect through a jumphost to a remote server (Multiple jump hops may be specified separated by comma characters): ssh -J username@jump_host username@remote_host

- Agent forwarding: Forward the authentication information to the remote machine (see man ssh_config for available options): ssh -A username@remote_host

sum
Compute checksums and the number of blocks for a file.A predecessor to the

More modern cksum

More information: https://www.gnu.org/software/coreutils/sum.

- Compute a checksum with BSD-compatible algorithm and 1024-byte blocks: sum file

- Compute a checksum with System V-compatible algorithm and 512-byte blocks: sum --sysv file

svn
Subversion command-line client tool

More information: https://subversion.apache.org.

- Check out a working copy from a repository: svn co url/to/repository

- Bring changes from the repository into the working copy: svn up

- Put files and directories under version control, scheduling them for addition to repository. They will be added in next commit: svn add PATH

- Send changes from your working copy to the repository: svn ci -m commit_log_message [PATH]

- Display changes from the last 10 revisions, showing modified files for each revision: svn log -vl 10

- Show detailed help: svn help

tac
Print and concatenate files in reverse (last line first)

More information: https://www.gnu.org/software/coreutils/tac.

- Print the contents of file1 reversed to the standard output: tac file1

- Print the contents of the standard input reversed to the standard output: command | tac

- Concatenate several files reversed into the target file: tac file1 file2 > target_file

tar
Archiving utility.Often combined with a compression method, such as gzip or bzip2

More information: https://www.gnu.org/software/tar.

- [c]reate an archive and write it to a [f]ile: tar cf target.tar file1 file2 file3

- [c]reate a g[z]ipped archive and write it to a [f]ile: tar czf target.tar.gz file1 file2 file3

- [c]reate a g[z]ipped archive from a directory using relative paths: tar czf target.tar.gz --directory=path/to/directory.

- E[x]tract a (compressed) archive [f]ile into the current directory [v]erbosely: tar xvf source.tar[.gz|.bz2|.xz]

- E[x]tract a (compressed) archive [f]ile into the target directory: tar xf source.tar[.gz|.bz2|.xz] --directory=directory

- [c]reate a compressed archive and write it to a [f]ile, using [a]rchive suffix to determine the compression program: tar caf target.tar.xz file1 file2 file3

- Lis[t] the contents of a tar [f]ile [v]erbosely: tar tvf source.tar

- E[x]tract files matching a pattern from an archive [f]ile: tar xf source.tar --wildcards "*.html"

tea
A command-line tool to interact with Gitea servers

More information: https://gitea.com/gitea/tea.

- Log into a Gitea server: tea login add --name "name" --url "url" --token "token"

- Display all repositories: tea repos ls

- Display a list of issues: tea issues ls

- Display a list of issues for a specific repository: tea issues ls --repo "repository"

- Create a new issue: tea issues create --title "title" --body "body"

- Display a list of open pull requests: tea pulls ls

- Open the current repository in a browser: tea open

tee
Read from standard input and write to standard output and files (or commands)

More information: https://www.gnu.org/software/coreutils/tee.

- Copy standard input to each file, and also to standard output: echo "example" | tee path/to/file

- Append to the given files, do not overwrite: echo "example" | tee -a path/to/file

- Print standard input to the terminal, and also pipe it into another program for further processing: echo "example" | tee /dev/tty | xargs printf "[%s]"

- Create a directory called "example", count the number of characters in "example" and write "example" to the terminal: echo "example" | tee >(xargs mkdir) >(wc -c)

tex
Compile a DVI document from TeX source files

More information: https://www.tug.org/begin.html.

- Compile a DVI document: tex source.tex

- Compile a DVI document, specifying an output directory: tex -output-directory=path/to/directory source.tex

- Compile a DVI document, exiting on each error: tex -halt-on-error source.tex

tic
Compile terminfo and install for ncurses

More information: https://pubs.opengroup.org/onlinepubs/007908799/xcurses/terminfo.html.

- Compile and install terminfo for a terminal: tic -xe terminal path/to/terminal.info

- Check terminfo file for errors: tic -c path/to/terminal.info

- Print database locations: tic -D

tig
A text-mode interface for Git

More information: https://github.com/jonas/tig.

- Show the sequence of commits starting from the current one in reverse chronological order: tig

- Show the history of a specific branch: tig branch

- Show the history of specific files or directories: tig path1 path2 …

- Show the difference between two references (such as branches or tags): tig base_ref..compared_ref

- Display commits from all branches and stashes: tig --all

- Start in stash view, displaying all saved stashes: tig stash

tlp
Advanced power management for Linux.See also tlp-stat

More information: https://linrunner.de/tlp/.

- Apply settings (according to the actual power source): sudo tlp start

- Apply battery settings (ignoring the actual power source): sudo tlp bat

- Apply AC settings (ignoring the actual power source): sudo tlp ac

top
Display dynamic real-time information about running processes

More information: https://manned.org/top.

- Start top: top

- Do not show any idle or zombie processes: top -i

- Show only processes owned by given user: top -u username

- Sort processes by a field: top -o field_name

- Show the individual threads of a given process: top -Hp process_id

- Show only the processes with the given PID(s), passed as a comma-separated list. (Normally you wouldn't know PIDs off hand. This example picks the PIDs from the process name): top -p $(pgrep -d ',' process_name)

- Get help about interactive commands: ?

tox
Automate Python testing across multiple Python versions.Use tox.ini to configure environments and test command

More information: https://github.com/tox-dev/tox.

- Run tests on all test environments: tox

- Create a tox.ini configuration: tox-quickstart

- List the available environments: tox --listenvs-all

- Run tests on a specific environment (e.g. python 3.6): tox -e py36

- Force the virtual environment to be recreated: tox --recreate -e py27

tpp
Command-Line based presentation tool

More information: https://github.com/cbbrowne/tpp.

- View a presentation: tpp filename

- Output a presentation: tpp -t type -o outputname filename

tsc
TypeScript compiler

More information: https://www.typescriptlang.org/docs/handbook/compiler-options.html.

- Compile a TypeScript file foobar.ts into a JavaScript file foobar.js: tsc foobar.ts

- Compile a TypeScript file into JavaScript using a specific target syntax (default is ES3): tsc --target ES5|ES2015|ES2016|ES2017|ES2018|ESNEXT foobar.ts

- Compile a TypeScript file into a JavaScript file with a custom name: tsc --outFile output.js input.ts

- Compile all .ts files of a TypeScript project defined in a tsconfig.json file: tsc --build tsconfig.json

- Run the compiler using command-line options and arguments fetched from a text file: tsc @args.txt

- Type-check multiple JavaScript files, and output only the errors: tsc --allowJs --checkJs --noEmit src/**/*.js

tty
Returns terminal name

More information: https://www.gnu.org/software/coreutils/tty.

- Print the file name of this terminal: tty

twm
A window manager for the X Window system

More information: https://gitlab.freedesktop.org/xorg/app/twm.

- Connect to the default X server: twm

- Connect to a specific X server: twm -display display

- Only manage the default screen: twm -s

- Use a specific startup file: twm -f path/to/file

- Enable verbose mode and print unexpected errors in X:  twm -v

ufw
Uncomplicated Firewall.Frontend for iptables aiming to make configuration of a firewall easier

More information: https://wiki.ubuntu.com/UncomplicatedFirewall.

- Enable ufw: ufw enable

- Disable ufw: ufw disable

- Show ufw rules, along with their numbers: ufw status numbered

- Allow incoming traffic on port 5432 on this host with a comment identifying the service: ufw allow 5432 comment "Service"

- Allow only TCP traffic from 192.168.0.4 to any address on this host, on port 22: ufw allow proto tcp from 192.168.0.4 to any port 22

- Deny traffic on port 80 on this host: ufw deny 80

- Deny all UDP traffic to port 22: ufw deny proto udp from any to any port 22

- Delete a particular rule. The rule number can be retrieved from the ufw status numbered command: ufw delete rule_number

upx
Compress or decompress executables

More information: https://upx.github.io.

- Compress executable: upx file

- Decompress executable: upx -d file

- Detailed help: upx --help

vgs
Display information about volume groups.See also: lvm

More information: https://man7.org/linux/man-pages/man8/vgs.8.html.

- Display information about volume groups: vgs

- Display all volume groups: vgs -a

- Change default display to show

More details: vgs -v

- Display only specific fields: vgs -o field_name_1,field_name_2

- Append field to default display: vgs -o +field_name

- Suppress heading line: vgs --noheadings

- Use separator to separate fields: vgs --separator =

vim
Vim (Vi IMproved), a command-line text editor, provides several modes for different kinds of text manipulation.Pressing i enters insert mode.  enters normal mode, which enables the use of Vim commands

More information: https://www.vim.org.

- Open a file: vim path/to/file

- Open a file at a specified line number: vim +line_number path/to/file

- View Vim's help manual: :help

- Save and Quit: :wq

- Undo the last operation: u

- Search for a pattern in the file (press n/N to go to next/previous match): /search_pattern<Enter>

- Perform a regular expression substitution in the whole file: :%s/regular_expression/replacement/g<Enter>

- Display the line numbers: :set nu<Enter>

vlc
Cross-platform multimedia player

More information: https://www.videolan.org/vlc/.

- Play a file: vlc path/to/file

- Play in fullscreen: vlc --fullscreen path/to/file

- Play muted: vlc --no-audio path/to/file

- Play repeatedly: vlc --loop path/to/file

- Play video from a URL: vlc https://www.youtube.com/watch?v=oHg5SJYRHA0

vue
Multi-purpose CLI for Vue.js

More information: https://cli.vuejs.org.

- Create a new Vue project interactively: vue create project_name

- Create a new project with web UI: vue ui

wal
A tool to create color schemes based on the dominant colors of a wallpaper

More information: https://github.com/dylanaraps/pywal.

- Preview color scheme: wal --preview image.png

- Create color scheme: wal -i image.png

- Create a light color scheme: wal -il image.png

- Skip setting the desktop wallpaper: wal -in image.png

- Skip setting the terminal colors: wal -is image.png

- Restore the previously generated color scheme and wallpaper: wal -R

who
Display who is logged in and related data (processes, boot time)

More information: https://www.gnu.org/software/coreutils/who.

- Display the username, line, and time of all currently logged-in sessions: who

- Display information only for the current terminal session: who am i

- Display all available information: who -a

- Display all available information with table headers: who -a -H

wol
Client for sending Wake-on-LAN magic packets

More information: https://sourceforge.net/projects/wake-on-lan/.

- Send a WoL packet to a device: wol mac_address

- Send a WoL packet to a device in another subnet based on its IP: wol --ipaddr=ip_address mac_address

- Send a WoL packet to a device in another subnet based on its hostname: wol --host=hostname mac_address

- Send a WoL packet to a specific port on a host: wol --port=port_number mac_address

- Read hardware addresses, IP addresses/hostnames, optional ports and SecureON passwords from a file: wol --file=path/to/file

- Turn on verbose output: wol --verbose mac_address

wrk
HTTP benchmarking tool

More information: https://github.com/wg/wrk.

- Run a benchmark for 30 seconds, using 12 threads, and keeping 400 HTTP connections open: wrk -t12 -c400 -d30s "http://127.0.0.1:8080/index.html"

- Run a benchmark with a custom header: wrk -t2 -c5 -d5s -H "Host: example.com" "http://example.com/index.html"

- Run a benchmark with a request timeout of 2 seconds: wrk -t2 -c5 -d5s --timeout 2s "http://example.com/index.html"

wtf
Show the expansions of acronyms

More information: https://manpages.debian.org/bsdgames/wtf.6.en.html.

- Expand a given acronym: wtf IMO

- Specify a computer related search type: wtf -t comp WWW

xar
Manage .xar archives.

- Create a xar archive of all files in a given directory: xar -cf archive.xar path/to/directory

- List the contents of a given xar archive: xar -tf archive.xar

- Extract the contents of a given xar archive to the current directory: xar -xf archive.xar

xcv
Cut, copy, and paste in the command-line

More information: https://github.com/busterc/xcv.

- Cut a file: xcv x input_file

- Copy a file: xcv c input_file

- Paste a file: xcv v output_file

- List files available for pasting: xcv l

xed
Opens files for editing in Xcode.

- Open file in Xcode: xed file1

- Open file(s) in Xcode, create if it doesn't exist: xed -c filename1

- Open a file in Xcode and jump to line number 75: xed -l 75 filename

xip
Create or expand compressed files in a secure xip archive.Only archives signed by Apple are trusted, so this tool should not be used to create archives.

- Expand the archive into the current working directory: xip --expand path/to/file.xip

xml
XMLStarlet Toolkit: Query, edit, check, convert and transform XML documents.This command also has documentation about its subcommands, e.g. xml validate

More information: http://xmlstar.sourceforge.net/docs.php.

- Display general help, including the list of subcommands: xml --help

- Execute a subcommand with input from a file or URI, printing to stdout: xml subcommand options path/to/input.xml|URI

- Execute a subcommand using stdin and stdout: xml subcommand options

- Execute a subcommand with input from a file or URI and output to a file: xml subcommand options path/to/input.xml|URI > path/to/output

- Display help for a subcommand: xml subcommand --help

- Display the version of the XMLStarlet Toolkit: xml --version

xsv
A CSV command-line toolkit written in Rust

More information: https://github.com/BurntSushi/xsv.

- Inspect the headers of a file: xsv headers path/to/file.csv

- Count the number of entries: xsv count path/to/file.csv

- Get an overview of the shape of entries: xsv stats path/to/file.csv | xsv table

- Select a few columns: xsv select column_a,column_b path/to/file.csv

- Show 10 random entries: xsv sample 10 path/to/file.csv

- Join a column from one file to another: xsv join --no-case column_a path/to/file/a.csv column_b path/to/file/b.csv | xsv table

xxd
Create a hexadecimal representation (hexdump) from a binary file, or vice-versa.

- Generate a hexdump from a binary file and display the output: xxd input_file

- Generate a hexdump from a binary file and save it as a text file: xxd input_file output_file

- Display a

More compact output, replacing consecutive zeros (if any) with a star: xxd -a input_file

- Display the output with 10 columns of one octet (byte) each: xxd -c 10 input_file

- Display output only up to a length of 32 bytes: xxd -l 32 input_file

- Display the output in plain mode, without any gaps between the columns: xxd -p input_file

- Revert a plaintext hexdump back into binary, and save it as a binary file: xxd -r -p input_file output_file

xxh
Bring your shell with all of your customizations through SSH sessions.Note: xxh does not install anything into system directories on the target machine; removing ~/.xxh will clear all traces of xxh on the target machine

More information: https://github.com/xxh/xxh.

- Connect to a host and run the current shell: xxh "host"

- Install the current shell into the target machine without prompting: xxh "host" ++install

- Run the specified shell on the target machine: xxh "host" ++shell xonsh|zsh|fish|bash|osquery

- Use a specific xxh configuration directory on the target machine: xxh "host" ++host-xxh-home ~/.xxh

- Use the specified configuration file on the host machine: xxh "host" ++xxh-config ~/.config/xxh/config.xxhc

- Specify a password to use for the SSH connection: xxh "host" ++password "password"

- Install an xxh package on the target machine: xxh "host" ++install-xxh-packages package

- Set an environment variable for the shell process on the target machine: xxh "host" ++env name=value

yaa
Create and manipulate YAA archives.

- Create an archive from a directory: yaa archive -d path/to/directory -o path/to/output.yaa

- Create an archive from a file: yaa archive -i path/to/file -o path/to/output.yaa

- Extract an archive to the current directory: yaa extract -i path/to/archive.yaa

- List the contents of an archive: yaa list -i path/to/archive.yaa

- Create an archive with a specific compression algorithm: yaa archive -a algorithm -d path/to/directory -o path/to/output.yaa

- Create an archive with an 8 MB block size: yaa archive -b 8m -d path/to/directory -o path/to/output.yaa

yay
Yet Another Yogurt: A utility for Arch Linux to build and install packages from the Arch User Repository.Also see pacman

More information: https://github.com/Jguer/yay.

- Interactively search and install packages from the repos and AUR: yay package_name|search_term

- Synchronize and update all packages from the repos and AUR: yay

- Synchronize and update only AUR packages: yay -Sua

- Install a new package from the repos and AUR: yay -S package_name

- Remove an installed package and both its dependencies and configuration files: yay -Rns package_name

- Search the package database for a keyword from the repos and AUR: yay -Ss keyword

- Remove orphaned packages (installed as dependencies but not required by any package): yay -Yc

- Show statistics for installed packages and system health: yay -Ps

yes
Output something repeatedly.This command is commonly used to answer yes to every prompt by install commands (such as apt-get)

More information: https://www.gnu.org/software/coreutils/yes.

- Repeatedly output "message": yes message

- Repeatedly output "y": yes

- Accept everything prompted by the apt-get command: yes | sudo apt-get install program

yum
Package management utility for RHEL, Fedora, and CentOS (for older versions)

More information: https://man7.org/linux/man-pages/man8/yum.8.html.

- Install a new package: yum install package

- Install a new package and assume yes to all questions (also works with update, great for automated updates): yum -y install package

- Find the package that provides a particular command: yum provides command

- Remove a package: yum remove package

- Display available updates for installed packages: yum check-update

- Upgrade installed packages to the newest available versions: yum upgrade

zdb
ZFS debugger.

- Show detailed configuration of all mounted ZFS zpools: zdb

- Show detailed configuration for a specific ZFS pool: zdb -C poolname

- Show statistics about number, size and deduplication of blocks: zdb -b poolname

zfs
Manage ZFS filesystems.

- List all available zfs filesystems: zfs list

- Create a new ZFS filesystem: zfs create pool_name/filesystem_name

- Delete a ZFS filesystem: zfs destroy pool_name/filesystem_name

- Create a Snapshot of a ZFS filesystem: zfs snapshot pool_name/filesystem_name@snapshot_name

- Enable compression on a filesystem: zfs set compression=on pool_name/filesystem_name

- Change mountpoint for a filesystem: zfs set mountpoint=/my/mount/path pool_name/filesystem_name

zip
Package and compress (archive) files into zip file.

- Package and compress files and directories [r]ecursively: zip -r compressed.zip path/to/file path/to/directory1 path/to/directory2

- E[x]clude unwanted files from being added to the compressed archive: zip -r compressed.zip path/to/directory -x path/to/exclude

- Archive a directory and its contents with the highest level [9] of compression: zip -r -9 compressed.zip path/to/directory

- Create an encrypted archive (user will be prompted for a password): zip -e -r compressed.zip path/to/directory

- Add files to an existing zip file: zip compressed.zip path/to/file

- Delete files from an existing zip file: zip -d compressed.zip "foo/*.tmp"

- Archive a directory and its contents to a multi-part [s]plit zip file (e.g. 3 GB parts): zip -r -s 3g compressed.zip path/to/directory

- List files within a specified archive (without extracting them): zip -sf compressed.zip

zmv
Move or rename files matching a specified extended glob pattern.See also zcp and zln

More information: http://zsh.sourceforge.net/Doc/Release/User-Contributions.html.

- Move files using a regular expression-like pattern: zmv '(*).log' '$1.txt'

- Preview the result of a move, without making any actual changes: zmv -n '(*).log' '$1.txt'

- Interactively move files, with a prompt before every change: zmv -i '(*).log' '$1.txt'

- Verbosely print each action as it's being executed: zmv -v '(*).log' '$1.txt'

zsh
Z SHell, a Bash-compatible command-line interpreter.See also histexpand for history expansion

More information: https://www.zsh.org.

- Start an interactive shell session: zsh

- Execute a command and then exit: zsh -c "command"

- Execute a script: zsh path/to/script.zsh

- Execute a script, printing each command before executing it: zsh --xtrace path/to/script.zsh

- Start an interactive shell session in verbose mode, printing each command before executing it: zsh --verbose