- Notifications
You must be signed in to change notification settings - Fork847
cheat allows you to create and view interactive cheatsheets on the command-line. It was designed to help remind *nix system administrators of options for commands that they use frequently, but not frequently enough to remember.
License
cheat/cheat
Folders and files
| Name | Name | Last commit message | Last commit date | |
|---|---|---|---|---|
Repository files navigation
cheat allows you to create and view interactive cheatsheets on thecommand-line. It was designed to help remind *nix system administrators ofoptions for commands that they use frequently, but not frequently enough toremember.
Usecheat withcheatsheets.
The next time you're forced to disarm a nuclear weapon without consultingGoogle, you may run:
cheat tar
You will be presented with a cheatsheet resembling the following:
# To extract an uncompressed archive:tar -xvf'/path/to/foo.tar'# To extract a .gz archive:tar -xzvf'/path/to/foo.tgz'# To create a .gz archive:tar -czvf'/path/to/foo.tgz''/path/to/foo/'# To extract a .bz2 archive:tar -xjvf'/path/to/foo.tgz'# To create a .bz2 archive:tar -cjvf'/path/to/foo.tgz''/path/to/foo/'
For installation and configuration instructions, seeINSTALLING.md.
To view a cheatsheet:
cheat tar# a "top-level" cheatsheetcheat foo/bar# a "nested" cheatsheet
To edit a cheatsheet:
cheat -e tar# opens the "tar" cheatsheet for editing, or creates it if it does not existcheat -e foo/bar# nested cheatsheets are accessed like this
To view the configured cheatpaths:
cheat -d
To list all available cheatsheets:
cheat -l
To briefly list all cheatsheets (names and tags only):
cheat -b
To list all cheatsheets that are tagged with "networking":
cheat -l -t networking
To list all cheatsheets on the "personal" path:
cheat -l -p personal
To search for the phrase "ssh" among cheatsheets:
cheat -s ssh
To search (by regex) for cheatsheets that contain an IP address:
cheat -r -s'(?:[0-9]{1,3}\.){3}[0-9]{1,3}'Flags may be combined in intuitive ways. Example: to search sheets on the"personal" cheatpath that are tagged with "networking" and match a regex:
cheat -p personal -t networking --regex -s'(?:[0-9]{1,3}\.){3}[0-9]{1,3}'Cheatsheets are plain-text files with no file extension, and are namedaccording to the command used to view them:
cheat tar# file is named "tar"cheat foo/bar# file is named "bar", in a "foo" subdirectory
Cheatsheet text may optionally be preceded by a YAML frontmatter header thatassigns tags and specifies syntax:
---syntax: javascripttags: [ array, map ]---// To map over an array:const squares = [1, 2, 3, 4].map(x => x * x);Syntax highlighting is provided byChroma, and thesyntax value may beset to any lexer name that Chroma supports. See Chroma'ssupportedlanguages for a complete list.
Thecheat executable includes no cheatsheets, butcommunity-sourcedcheatsheets are available. You will be asked if you would like toinstall the community-sourced cheatsheets the first time you runcheat.
Cheatsheets are stored on "cheatpaths", which are directories that containcheatsheets. Cheatpaths are specified in theconf.yml file.
It can be useful to configurecheat against multiple cheatpaths. A commonpattern is to store cheatsheets from multiple repositories on individualcheatpaths:
# conf.yml:# ...cheatpaths: -name:community# a name for the cheatpathpath:~/documents/cheat/community# the path's location on the filesystemtags:[ community ]# these tags will be applied to all sheets on the pathreadonly:true# if true, `cheat` will not create new cheatsheets here -name:personalpath:~/documents/cheat/personal# this is a separate directory and repository than abovetags:[ personal ]readonly:false# new sheets may be written here# ...
Thereadonly option instructscheat not to edit (or create) any cheatsheetson the path. This is useful to prevent merge-conflicts from arising on upstreamcheatsheet repositories.
If a user attempts to edit a cheatsheet on a read-only cheatpath,cheat willtransparently copy that sheet to a writeable directory before opening it forediting.
At times, it can be useful to closely associate cheatsheets with a directory onyour filesystem.cheat facilitates this by searching for a.cheat directoryin the current working directory and its ancestors (similar to howgit locates.git directories). The nearest.cheat directory found will (temporarily) beadded to the cheatpaths. This means you can place a.cheat directory at yourproject root and it will be available from any subdirectory within that project.
cheat can generate shell completion scripts forbash,zsh,fish, andpowershell via the--completion flag:
cheat --completion bashcheat --completion zshcheat --completion fishcheat --completion powershell
Pipe the output to the appropriate location for your shell. For example:
# bash (user-local)mkdir -p~/.local/share/bash-completion/completionscheat --completion bash>~/.local/share/bash-completion/completions/cheat# bash (system-wide)cheat --completion bash> /etc/bash_completion.d/cheat# zsh (ensure the directory is on your fpath)cheat --completion zsh>"${fpath[1]}/_cheat"# fishcheat --completion fish>~/.config/fish/completions/cheat.fish
Completions are dynamically generated and include cheatsheet names, tags, andcheatpath names.
About
cheat allows you to create and view interactive cheatsheets on the command-line. It was designed to help remind *nix system administrators of options for commands that they use frequently, but not frequently enough to remember.
Topics
Resources
License
Contributing
Uh oh!
There was an error while loading.Please reload this page.
Stars
Watchers
Forks
Uh oh!
There was an error while loading.Please reload this page.
