Compare commits

...

28 Commits

Author SHA1 Message Date
3be95142ed v2.1.25 2016-05-29 21:47:22 -04:00
bb324e94a4 Issue #278
Fixed a technical innacuracy in the `crontab` cheatsheet.
2016-05-29 21:03:58 -04:00
7084ce2f45 Merge pull request #277 from caorong/master
origin Convert Unix timestamp to Date only works on Linux, add cheat which works on Mac
2016-05-29 21:00:57 -04:00
905006f09c Merge pull request #280 from ybudimirov/ncdu
Ncdu cheatsheet
2016-05-29 20:59:16 -04:00
06a368fb1f Merge pull request #276 from oliworx/patch-1
add cheatsheet for subversion (svn)
2016-05-29 20:58:16 -04:00
6a9422502a Ncdu cheatsheet 2016-05-26 13:21:20 +03:00
41332f1d8a update timestamp convert cheat 2016-04-27 10:57:44 +08:00
a3c682729e add cheatsheet for subversion (svn) 2016-04-13 17:27:37 +02:00
20d985d993 Working around failed upload
pypi responded with an HTTP 500 when uploading the last version of
`cheat`, and this seems to have caused some problems. No changes were
made in this commit other than incrementing the version number in an
attempt to resolve this.
2016-03-24 12:41:40 -04:00
09f821835c v2.1.23 2016-03-24 12:39:20 -04:00
7e5e4315e5 Merge pull request #268 from pierrepo/master
Add options for pip and a new cheatsheet for virtualenv
2016-03-24 12:37:17 -04:00
869e7095f3 Merge pull request #269 from VirenMohindra/update-readme
trivial readme.md correction
2016-03-24 12:34:51 -04:00
6dd8faf26a trivial readme.md correction
availble -> available
2016-03-18 03:23:30 -05:00
c0585ee55c Append virtualenvwrapper commands 2016-03-15 17:34:28 +01:00
c0d755e102 Add virtualenv 2016-03-15 17:28:07 +01:00
49e1fc46f4 Add --user and --upgrade options 2016-03-15 17:15:06 +01:00
3d90b26b04 Merge pull request #266 from MinimaxHeadroom/add-tree-mod-dd-vim-find
Add cheatsheet for command `tree`. Edits or command additions to existing cheatsheets `dd`, `find`, `vim`.
2016-03-14 14:21:55 -04:00
3b73b9b06b Merge pull request #264 from JindrichPilar/master
Added xrandr cheat
2016-03-14 14:17:14 -04:00
74d1bc1ec7 Merge pull request #263 from omsobliga/master
Add examples for tmux
2016-03-14 14:14:55 -04:00
78c76dc75a Merge pull request #267 from VHarisop/nmcli
Added nmcli cheatsheet
2016-03-14 14:14:21 -04:00
f204ed66e1 Added WiFi-specific commands 2016-03-11 03:41:26 +02:00
29c53b754d Added nmcli cheatsheet 2016-03-08 04:06:44 +02:00
5a7fdfcca7 Add tree cheatsheet. Small edits to improve clarity of, plus addition of some new commands to, dd, find, vim. 2016-03-04 04:35:41 -05:00
c3f082eccf Added xrandr cheat 2016-02-22 20:59:05 +01:00
lih
808a2585ef Add example for tmux 2016-02-20 11:09:02 +08:00
c0aad062ec Trivial README edit. 2016-02-18 15:40:18 -05:00
8ffeaa4211 README edits
- Replaced the broken PyPi badges with new ones
- Moved some content out of the README and into new wiki pages
- Applied syntax highlighting to shell examples
- Trivial content edits
2016-02-18 15:35:17 -05:00
c1d4c768de CONTRIBUTING.md
- Added a paragraph on licensing
- Trivial edits
2016-02-17 14:12:58 -05:00
18 changed files with 227 additions and 81 deletions

View File

@ -1,9 +1,17 @@
Contributing Contributing
============ ============
If you would like to contribute cheetsheets or program functionality, please If you would like to contribute cheetsheets or program functionality, please
fork this repository, make your changes, and send me a pull request. fork this repository, make your changes, and submit a pull request.
Python code show follow the standards laid out by [PEP 8][]. Python code should conform to [PEP 8][].
Licensing
---------
By contributing to the project, you agree to license your work under the same
licenses as `cheat` itself. `cheat` is currently dual-licensed under the GPL3
and MIT licenses, though that could change without notice in the future.
`cheat`, however, will always remain free software (as in both "free as in
freedom" and "free as in beer") and shall always be licensed accordingly.
[PEP 8]: http://legacy.python.org/dev/peps/pep-0008/ [PEP 8]: http://legacy.python.org/dev/peps/pep-0008/

110
README.md
View File

@ -1,3 +1,6 @@
[![PyPI](https://img.shields.io/pypi/v/cheat.svg)](https://pypi.python.org/pypi/cheat/)
[![PyPI](https://img.shields.io/pypi/dm/cheat.svg)](https://pypi.python.org/pypi/cheat/)
cheat cheat
===== =====
`cheat` allows you to create and view interactive cheatsheets on the `cheat` allows you to create and view interactive cheatsheets on the
@ -7,66 +10,51 @@ remember.
![The obligatory xkcd](http://imgs.xkcd.com/comics/tar.png 'The obligatory xkcd') ![The obligatory xkcd](http://imgs.xkcd.com/comics/tar.png 'The obligatory xkcd')
`cheat` depends only on `python` and `pip`.
PyPI status:
[![Latest Version](https://pypip.in/version/cheat/badge.png)](https://pypi.python.org/pypi/cheat/)
[![Downloads](https://pypip.in/download/cheat/badge.png)](https://pypi.python.org/pypi/cheat/)
Example Example
------- -------
The next time you're forced to disarm a nuclear weapon without consulting The next time you're forced to disarm a nuclear weapon without consulting
Google, you may run: Google, you may run:
cheat tar ```sh
cheat tar
```
You will be presented with a cheatsheet resembling: You will be presented with a cheatsheet resembling:
``` ```sh
# To extract an uncompressed archive: # To extract an uncompressed archive:
tar -xvf /path/to/foo.tar tar -xvf '/path/to/foo.tar'
# To extract a .gz archive: # To extract a .gz archive:
tar -xzvf /path/to/foo.tgz tar -xzvf '/path/to/foo.tgz'
# To create a .gz archive: # To create a .gz archive:
tar -czvf /path/to/foo.tgz /path/to/foo/ tar -czvf '/path/to/foo.tgz' '/path/to/foo/'
# To extract a .bz2 archive: # To extract a .bz2 archive:
tar -xjvf /path/to/foo.tgz tar -xjvf '/path/to/foo.tgz'
# To create a .bz2 archive: # To create a .bz2 archive:
tar -cjvf /path/to/foo.tgz /path/to/foo/ tar -cjvf '/path/to/foo.tgz' '/path/to/foo/'
``` ```
To see what cheatsheets are availble, run `cheat -l`. To see what cheatsheets are available, run `cheat -l`.
Note that, while `cheat` was designed primarily for *nix system administrators, Note that, while `cheat` was designed primarily for \*nix system administrators,
it is agnostic as to what content it stores. If you would like to use `cheat` it is agnostic as to what content it stores. If you would like to use `cheat`
to store notes on your favorite cookie recipes, feel free. to store notes on your favorite cookie recipes, feel free.
Installing Installing
---------- ----------
It is recommended to install `cheat` with `pip`:
### Using pip ### ```sh
[sudo] pip install cheat
```
sudo pip install cheat [Other installation methods are available][installing].
### Using homebrew ###
brew install cheat
### Manually ###
First install the required python dependencies with:
sudo pip install docopt pygments
Then, clone this repository, `cd` into it, and run:
sudo python setup.py install
Modifying Cheatsheets Modifying Cheatsheets
@ -82,7 +70,9 @@ in the `~/.cheat/tar` file.
Provided that you have an `EDITOR` environment variable set, you may edit Provided that you have an `EDITOR` environment variable set, you may edit
cheatsheets with: cheatsheets with:
cheat -e foo ```sh
cheat -e foo
```
If the 'foo' cheatsheet already exists, it will be opened for editing. If the 'foo' cheatsheet already exists, it will be opened for editing.
Otherwise, it will be created automatically. Otherwise, it will be created automatically.
@ -99,17 +89,23 @@ Personal cheatsheets are saved in the `~/.cheat` directory by default, but you
can specify a different default by exporting a `DEFAULT_CHEAT_DIR` environment can specify a different default by exporting a `DEFAULT_CHEAT_DIR` environment
variable: variable:
export DEFAULT_CHEAT_DIR=/path/to/my/cheats ```sh
export DEFAULT_CHEAT_DIR='/path/to/my/cheats'
```
### Setting a CHEATPATH ### ### Setting a CHEATPATH ###
You can additionally instruct `cheat` to look for cheatsheets in other You can additionally instruct `cheat` to look for cheatsheets in other
directories by exporting a `CHEATPATH` environment variable: directories by exporting a `CHEATPATH` environment variable:
export CHEATPATH=/path/to/my/cheats ```sh
export CHEATPATH='/path/to/my/cheats'
```
You may, of course, append multiple directories to your `CHEATPATH`: You may, of course, append multiple directories to your `CHEATPATH`:
export CHEATPATH=$CHEATPATH:/path/to/more/cheats ```sh
export CHEATPATH="$CHEATPATH:/path/to/more/cheats"
```
You may view which directories are on your `CHEATPATH` with `cheat -d`. You may view which directories are on your `CHEATPATH` with `cheat -d`.
@ -117,39 +113,17 @@ You may view which directories are on your `CHEATPATH` with `cheat -d`.
`cheat` can apply syntax highlighting to your cheatsheets if so desired. To `cheat` can apply syntax highlighting to your cheatsheets if so desired. To
enable this feature, set a `CHEATCOLORS` environment variable: enable this feature, set a `CHEATCOLORS` environment variable:
export CHEATCOLORS=true ```sh
export CHEATCOLORS=true
```
### Enabling Command-line Autocompletion ### See Also:
The `cheat/autocompletion` directory contains scripts to enable command-line ---------
autocompletion for various shells. To activate autocompletion, simply copy the - [Enabling Command-line Autocompletion][autocompletion]
appropriate script to the appropriate path on your system. (The "appropriate - [Related Projects][related-projects]
path" will vary on a per-platform basis, so this documentation shall not
speculate as to where that may be.)
Related Projects [autocompletion]: https://github.com/chrisallenlane/cheat/wiki/Enabling-Command-line-Autocompletion
---------------- [dotfiles]: http://dotfiles.github.io/
[installing]: https://github.com/chrisallenlane/cheat/wiki/Installing
- [lucaswerkmeister/cheats][1]: An implementation of this concept in pure bash [related-projects]: https://github.com/chrisallenlane/cheat/wiki/Related-Projects
that also allows not only for numerical indexing of subcomands but also
supports running commands interactively.
- [jahendrie/cheat][2]: A bash-only implementation that additionally allows for
cheatsheets to be created and `grep` searched from the command-line.
([jahendrie][] contributed key ideas to this project as well.)
- [`cheat` RubyGem][3]: A clever gem from 2006 that clearly had similar
motivations. It is unclear whether or not it is currently maintained.
- [`tldr`][tldr]: "Simplified and community-driven man pages".
- [dufferzafar/cheat][5]: An implementation in golang that has syntax highlighting and allows to copy cheats directly to clipboard.
[dotfiles]: http://dotfiles.github.io/
[jahendrie]: https://github.com/jahendrie
[1]: https://github.com/lucaswerkmeister/cheats
[2]: https://github.com/jahendrie/cheat
[3]: http://errtheblog.com/posts/21-cheat
[4]: https://github.com/chrisallenlane/cheat/pull/77
[5]: https://github.com/dufferzafar/cheat
[tldr]: https://github.com/tldr-pages/tldr

View File

@ -38,7 +38,7 @@ from docopt import docopt
if __name__ == '__main__': if __name__ == '__main__':
# parse the command-line options # parse the command-line options
options = docopt(__doc__, version='cheat 2.1.22') options = docopt(__doc__, version='cheat 2.1.25')
# list directories # list directories
if options['--directories']: if options['--directories']:

View File

@ -14,7 +14,9 @@ SHELL=/bin/bash
# example entries # example entries
# every 15 min # every 15 min
*/15 * * * * /home/user/command.sh */15 * * * * /home/user/command.sh
# every midnight # every midnight
0 * * * * /home/user/command.sh * 0 * * * /home/user/command.sh
# every Saturday at 8:05 AM # every Saturday at 8:05 AM
5 8 * * 6 /home/user/command.sh 5 8 * * 6 /home/user/command.sh

View File

@ -1,5 +1,8 @@
# Print date in format suitable for affixing to file names # Print date in format suitable for affixing to file names
date +"%Y%m%d_%H%M%S" date +"%Y%m%d_%H%M%S"
# Convert Unix timestamp to Date # Convert Unix timestamp to Date(Linux)
date -d @1440359821 date -d @1440359821
# Convert Unix timestamp to Date(Mac)
date -r 1440359821

View File

@ -17,4 +17,3 @@ dd if=/dev/zero of=/dev/null bs=128M status=progress
# DD with "graphical" return # DD with "graphical" return
dcfldd if=/dev/zero of=/dev/null bs=500K dcfldd if=/dev/zero of=/dev/null bs=500K

View File

@ -40,5 +40,8 @@ find . -maxdepth 2 -name build -type d
# To search all files who are not in .git directory # To search all files who are not in .git directory
find . ! -iwholename '*.git*' -type f find . ! -iwholename '*.git*' -type f
# Find all files that have the same node (hard link) as MY_FILE_HERE # To find all files that have the same node (hard link) as MY_FILE_HERE
find . -type f -samefile MY_FILE_HERE 2>/dev/null find . -type f -samefile MY_FILE_HERE 2>/dev/null
# To find all files in the current directory and modify their permissions
find . -type f -exec chmod 644 {} \;

View File

@ -16,11 +16,18 @@
# To switch between channel windows # To switch between channel windows
ALT+<number>, eg. ALT+1, ALT+2 ALT+<number>, eg. ALT+1, ALT+2
# To list the nicknames within a channel # To list the nicknames within the active channel
/names /names
# To change the topic # To change the channel topic
/topic <description> /topic <description>
# To quit irssi # To limit channel background noise (joins, parts, quits, etc.)
/ignore #foo,#bar JOINS PARTS QUITS NICKS # Quieten only channels `#foo`, `#bar`
/ignore * JOINS PARTS QUITS NICKS # Quieten all channels
# To save the current Irssi session config into the configuration file
/save
# To quit Irssi
/exit /exit

11
cheat/cheatsheets/ncdu Normal file
View File

@ -0,0 +1,11 @@
# Save results to file
ncdu -o ncdu.file
# Read from file
ncdu -f ncdu.file
# Save results to compressed file
ncdu -o-| gzip > ncdu.file.gz
# Read from compressed file
zcat ncdu.file.gz | ncdu -f-

40
cheat/cheatsheets/nmcli Normal file
View File

@ -0,0 +1,40 @@
# Desc: Command line interface to NetworkManager
# Connect to a wireless access point - Parameters:
# <wiface> -- the name of your wireless interface
# <ssid> -- the SSID of the access point
# <pass> -- the WiFi password
nmcli d wifi connect <ssid> password <pass> iface <wiface>
# Disconnect from WiFi - Parameters:
# <wiface> -- the name of your wireless interface
nmcli d wifi disconnect iface <wiface>
# Get WiFi status (enabled / disabled)
nmcli radio wifi
# Enable / Disable WiFi
nmcli radio wifi <on|off>
# Show all available WiFi access points
nmcli dev wifi list
# Refresh the available WiFi connection list
nmcli dev wifi rescan
# Show all available connections
nmcli con
# Show only active connections
nmcli con show --active
# Review the available devices
nmcli dev status
# Add a dynamic ethernet connection - parameters:
# <name> -- the name of the connection
# <iface_name> -- the name of the interface
ncmli con add type ethernet con-name <name> ifname <iface_name>
# Bring up the ethernet connection
nmcli con up <name>

View File

@ -4,6 +4,12 @@ pip search SomePackage
# Install some packages # Install some packages
pip install SomePackage pip install SomePackage
# Install some package in user space
pip install --user SomePackage
# Upgrade some package
pip install --upgrade SomePackage
# Output and install packages in a requirement file # Output and install packages in a requirement file
pip freeze > requirements.txt pip freeze > requirements.txt
pip install -r requirements.txt pip install -r requirements.txt

20
cheat/cheatsheets/svn Normal file
View File

@ -0,0 +1,20 @@
## update working copy from repository
svn update "/path"
## show changed files in working copy
svn status
## show what changed in local file
svn diff "/path/filename"
## add files or folders
svn add "path/item"
## revert local uncommited changes
svn revert "/path/file"
## commit changes to repo
svn commit -m "message" "/path"
## show help for 'svn diff'
svn help diff

View File

@ -13,6 +13,12 @@ tmux attach -d
# Display session: # Display session:
tmux ls tmux ls
# Rename session:
Ctrl-b $
# Switch session:
Ctrl-b s
# Start a shared session: # Start a shared session:
tmux -S /tmp/your_shared_session tmux -S /tmp/your_shared_session
chmod 777 /tmp/your_shared_session chmod 777 /tmp/your_shared_session

11
cheat/cheatsheets/tree Normal file
View File

@ -0,0 +1,11 @@
# To display a recursive directory tree
tree
# To make tree output contents from path `/foo/bar`
tree /foo/bar
# To make tree omit any empty directories from the output
tree --prune
# To list directories only (`-d`), and at a max depth of two levels (`-L`)
tree -d -L 2

View File

@ -23,7 +23,8 @@ B previous start of whitespace-delimited word
$ end of line $ end of line
gg go to first line in file gg go to first line in file
G go to end of file G go to end of file
gk move down one displayed line
gj move up one displayed line
# Insertion # Insertion
# To exit from insert mode use Esc or Ctrl-C # To exit from insert mode use Esc or Ctrl-C
@ -49,8 +50,14 @@ P paste before cursor
dd delete a line dd delete a line
d{motion} delete text that {motion} moves over d{motion} delete text that {motion} moves over
# Search and replace with the `:substitute` (aka `:s`) command
# Preceding a motion or edition with a number repeats it n times :s/foo/bar/ replace the first match of 'foo' with 'bar' on the current line only
:s/foo/bar/g replace all matches (`g` flag) of 'foo' with 'bar' on the current line only
:%s/foo/bar/g replace all matches of 'foo' with 'bar' in the entire file (`:%s`)
:%s/foo/bar/gc ask to manually confirm (`c` flag) each replacement
# Preceding a motion or edition with a number repeats it 'n' times
# Examples: # Examples:
50k moves 50 lines up 50k moves 50 lines up
2dw deletes 2 words 2dw deletes 2 words

View File

@ -0,0 +1,38 @@
# Create new environment
virtualenv /path/to/project/env_name
# Create new environment and inherit already installed Python libraries
virtualenv --system-site-package /path/to/project/env_name
# Create new environment with a given Python interpreter
virtualenv /path/to/project/env_name -p /usr/bin/python/3.4
# Activate environnment
source /path/to/project/env_name/bin/activate
# Quit environment
deactivate
# virtualenvwrapper (wrapper for virtualenv)
# installation
pip install --user virtualenvwrapper
# configuration
# add in ~/.bashrc or similar
export WORKON_HOME=~/.virtualenvs
mkdir -p $WORKON_HOME
source ~/.local/bin/virtualenvwrapper.sh
# Create new environmment (with virtualenvwrapper)
mkvirtualenv env_name
# new environmment is stored in ~/.virtualenvs
# Activate environmment (with virtualenvwrapper)
workon env_name
# Quit environmment (with virtualenvwrapper)
deactivate
# Delete environmment (with virtualenvwrapper)
rmvirtualenv env_name

11
cheat/cheatsheets/xrandr Normal file
View File

@ -0,0 +1,11 @@
# To enable HDMI2 output with maximal resolution:
xrandr --output HDMI2 --auto
# To enable HDMI2 output with specific resolution:
xrandr --output HDMI2 --mode 1280x800
# To enable HDMI2 output next to HDMI1 output:
xrandr --output HDMI2 --auto --right-of HDMI1
# To disable HDMI2 output:
xrandr --output HDMI2 --off

View File

@ -3,7 +3,7 @@ import os
setup( setup(
name = 'cheat', name = 'cheat',
version = '2.1.22', version = '2.1.25',
author = 'Chris Lane', author = 'Chris Lane',
author_email = 'chris@chris-allen-lane.com', author_email = 'chris@chris-allen-lane.com',
license = 'GPL3', license = 'GPL3',