mirror of
https://github.com/cheat/cheat.git
synced 2025-12-13 18:52:06 +01:00
Compare commits
27 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
eff042d50b | ||
|
|
f000756f2c | ||
|
|
ef1dfb2168 | ||
|
|
3c1b5c5860 | ||
|
|
3494827403 | ||
|
|
f0879831c5 | ||
|
|
8c056d09e9 | ||
|
|
dd8d0ae58b | ||
|
|
6cc99a2b6a | ||
|
|
70ad22c12e | ||
|
|
b28e6a84ac | ||
|
|
bf4f1c80ca | ||
|
|
9cf1a5761d | ||
|
|
13fdcec332 | ||
|
|
b2feeab4e8 | ||
|
|
c4b7fd507f | ||
|
|
b77aa0974b | ||
|
|
3be95142ed | ||
|
|
bb324e94a4 | ||
|
|
7084ce2f45 | ||
|
|
905006f09c | ||
|
|
06a368fb1f | ||
|
|
6a9422502a | ||
|
|
41332f1d8a | ||
|
|
b6d54b135c | ||
|
|
a3c682729e | ||
|
|
f38da23741 |
@@ -31,14 +31,14 @@ Options:
|
||||
"""
|
||||
|
||||
# require the dependencies
|
||||
from cheat import *
|
||||
from cheat.utils import *
|
||||
from cheat import sheets, sheet
|
||||
from cheat.utils import colorize
|
||||
from docopt import docopt
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
# parse the command-line options
|
||||
options = docopt(__doc__, version='cheat 2.1.24')
|
||||
options = docopt(__doc__, version='cheat 2.1.26')
|
||||
|
||||
# list directories
|
||||
if options['--directories']:
|
||||
|
||||
72
cheat/cheatsheets/ansi
Normal file
72
cheat/cheatsheets/ansi
Normal file
@@ -0,0 +1,72 @@
|
||||
# Reset
|
||||
Color_Off='\e[0m' # Text Reset
|
||||
|
||||
# Regular Colors
|
||||
Black='\e[0;30m' # Black
|
||||
Red='\e[0;31m' # Red
|
||||
Green='\e[0;32m' # Green
|
||||
Yellow='\e[0;33m' # Yellow
|
||||
Blue='\e[0;34m' # Blue
|
||||
Purple='\e[0;35m' # Purple
|
||||
Cyan='\e[0;36m' # Cyan
|
||||
White='\e[0;37m' # White
|
||||
|
||||
# Bold
|
||||
BBlack='\e[1;30m' # Black
|
||||
BRed='\e[1;31m' # Red
|
||||
BGreen='\e[1;32m' # Green
|
||||
BYellow='\e[1;33m' # Yellow
|
||||
BBlue='\e[1;34m' # Blue
|
||||
BPurple='\e[1;35m' # Purple
|
||||
BCyan='\e[1;36m' # Cyan
|
||||
BWhite='\e[1;37m' # White
|
||||
|
||||
# Underline
|
||||
UBlack='\e[4;30m' # Black
|
||||
URed='\e[4;31m' # Red
|
||||
UGreen='\e[4;32m' # Green
|
||||
UYellow='\e[4;33m' # Yellow
|
||||
UBlue='\e[4;34m' # Blue
|
||||
UPurple='\e[4;35m' # Purple
|
||||
UCyan='\e[4;36m' # Cyan
|
||||
UWhite='\e[4;37m' # White
|
||||
|
||||
# Background
|
||||
On_Black='\e[40m' # Black
|
||||
On_Red='\e[41m' # Red
|
||||
On_Green='\e[42m' # Green
|
||||
On_Yellow='\e[43m' # Yellow
|
||||
On_Blue='\e[44m' # Blue
|
||||
On_Purple='\e[45m' # Purple
|
||||
On_Cyan='\e[46m' # Cyan
|
||||
On_White='\e[47m' # White
|
||||
|
||||
# High Intensity
|
||||
IBlack='\e[0;90m' # Black
|
||||
IRed='\e[0;91m' # Red
|
||||
IGreen='\e[0;92m' # Green
|
||||
IYellow='\e[0;93m' # Yellow
|
||||
IBlue='\e[0;94m' # Blue
|
||||
IPurple='\e[0;95m' # Purple
|
||||
ICyan='\e[0;96m' # Cyan
|
||||
IWhite='\e[0;97m' # White
|
||||
|
||||
# Bold High Intensity
|
||||
BIBlack='\e[1;90m' # Black
|
||||
BIRed='\e[1;91m' # Red
|
||||
BIGreen='\e[1;92m' # Green
|
||||
BIYellow='\e[1;93m' # Yellow
|
||||
BIBlue='\e[1;94m' # Blue
|
||||
BIPurple='\e[1;95m' # Purple
|
||||
BICyan='\e[1;96m' # Cyan
|
||||
BIWhite='\e[1;97m' # White
|
||||
|
||||
# High Intensity backgrounds
|
||||
On_IBlack='\e[0;100m' # Black
|
||||
On_IRed='\e[0;101m' # Red
|
||||
On_IGreen='\e[0;102m' # Green
|
||||
On_IYellow='\e[0;103m' # Yellow
|
||||
On_IBlue='\e[0;104m' # Blue
|
||||
On_IPurple='\e[0;105m' # Purple
|
||||
On_ICyan='\e[0;106m' # Cyan
|
||||
On_IWhite='\e[0;107m' # White
|
||||
132
cheat/cheatsheets/cpdf
Normal file
132
cheat/cheatsheets/cpdf
Normal file
@@ -0,0 +1,132 @@
|
||||
# Read in.pdf, select pages 1, 2, 3 and 6, and write those pages to
|
||||
# out.pdf
|
||||
cpdf in.pdf 1-3,6 -o out.pdf
|
||||
|
||||
# Select the even pages (2, 4, 6...) from in.pdf and write those pages
|
||||
# to out.pdf
|
||||
cpdf in.pdf even -o out.pdf
|
||||
|
||||
# Using AND to perform several operations in order, here merging two
|
||||
# files together and adding a copyright stamp to every page.
|
||||
cpdf -merge in.pdf in2.pdf AND -add-text "Copyright 2014" -o out.pdf
|
||||
|
||||
# Read control.txt and use its contents as the command line arguments
|
||||
# for cpdf.
|
||||
cpdf -control control.txt
|
||||
|
||||
# Merge in.pdf and in2.pdf into one document, writing to out.pdf.
|
||||
cpdf -merge in.pdf in2.pdf -o out.pdf
|
||||
|
||||
# Split in.pdf into ten-page chunks, writing them to Chunk001.pdf,
|
||||
# Chunk002.pdf etc
|
||||
cpdf -split in.pdf -o Chunk%%%.pdf -chunk 10
|
||||
|
||||
# Split in.pdf on bookmark boundaries, writing each to a file whose
|
||||
# name is the bookmark label
|
||||
cpdf -split-bookmarks 0 in.pdf -o @N.pdf
|
||||
|
||||
# Scale both the dimensions and contents of in.pdf by a factor of two
|
||||
# in x and y directions.
|
||||
cpdf -scale-page "2 2" in.pdf -o out.pdf
|
||||
|
||||
# Scale the pages in in.pdf to fit the US Letter page size, writing to
|
||||
# out.pdf
|
||||
cpdf -scale-to-fit usletterportrait in.pdf -o out.pdf
|
||||
|
||||
# Shift the contents of the page by 26 pts in the x direction, and 18
|
||||
# millimetres in the y direction, writing to out.pdf
|
||||
cpdf -shift "26pt 18mm" in.pdf -o out.pdf
|
||||
|
||||
# Rotate the contents of the pages in in.pdf by ninety degrees and
|
||||
# write to out.pdf.
|
||||
cpdf -rotate-contents 90 in.pdf -o out.pdf
|
||||
|
||||
# Crop the pages in in.pdf to a 600 pts by 400 pts rectangle.
|
||||
cpdf -crop "0 0 600pt 400pt" in.pdf -o out.pdf
|
||||
|
||||
# Encrypt using 128bit PDF encryption using the owner password 'fred'
|
||||
# and the user password 'joe'
|
||||
cpdf -encrypt 128bit fred joe in.pdf -o out.pdf
|
||||
|
||||
# Decrypt using the owner password, writing to out.pdf.
|
||||
cpdf -decrypt in.pdf owner=fred -o out.pdf
|
||||
|
||||
# Compress the data streams in in.pdf, writing the result to out.pdf.
|
||||
cpdf -compress in.pdf -o out.pdf
|
||||
|
||||
# Decompress the data streams in in.pdf, writing to out.pdf.
|
||||
cpdf -decompress in.pdf -o out.pdf
|
||||
|
||||
# List the bookmarks in in.pdf. This would produce:
|
||||
cpdf -list-bookmarks in.pdf
|
||||
|
||||
# Outputs:
|
||||
|
||||
# Add bookmarks in the same form from a prepared file bookmarks.txt to
|
||||
# in.pdf, writing to out.pdf.
|
||||
cpdf -add-bookmarks bookmarks.txt in.pdf -o out.pdf
|
||||
|
||||
# Use the Split style to build a presentation from the PDF in.pdf,
|
||||
# each slide staying 10 seconds on screen unless manually advanced.
|
||||
# The first page, being a title does not move on automatically, and
|
||||
# has no transition effect.
|
||||
cpdf -presentation in.pdf 2-end -trans Split -duration 10 -o out.pdf
|
||||
|
||||
# Stamp the file watermark.pdf on to each page of in.pdf, writing the
|
||||
# result to out.pdf.
|
||||
cpdf -stamp-on watermark.pdf in.pdf -o out.pdf
|
||||
|
||||
# Add a page number and date to all the pages in in.pdf using the
|
||||
# Courier font, writing to out.pdf
|
||||
cpdf -topleft 10 -font Courier -add-text "Page %Page\nDate %d-%m-%Y" in.pdf -o out.pdf
|
||||
|
||||
# Two up impose the file in.pdf, writing to out.pdf
|
||||
cpdf -twoup-stack in.pdf -o out.pdf
|
||||
|
||||
# Add extra blank pages after pages one, three and four of a document.
|
||||
cpdf -pad-after 1,3,4 in.pdf -o out.pdf
|
||||
|
||||
# List the annotations in a file in.pdf to standard output.
|
||||
cpdf -list-annotations in.pdf
|
||||
|
||||
# Might Produce:
|
||||
|
||||
# -- # Annotation text content 1 # -- # -- # Annotation text content 2
|
||||
# --
|
||||
|
||||
# Copy the annotations from from.pdf to in.pdf, writing to out.pdf.
|
||||
cpdf -copy-annotations from.pdf in.pdf -o out.pdf
|
||||
|
||||
# Set the document title of in.pdf. writing to out.pdf.
|
||||
cpdf -set-title "The New Title" in.pdf -o out.pdf
|
||||
|
||||
# Set the document in.pdf to open with the Acrobat Viewer's toolbar
|
||||
# hidden, writing to out.pdf.
|
||||
cpdf -hide-toolbar true in.pdf -o out.pdf
|
||||
|
||||
# Set the metadata in a PDF in.pdf to the contents of the file
|
||||
# metadata.xml, and write the output to out.pdf.
|
||||
cpdf -set-metadata metadata.xml in.pdf -o out.pdf
|
||||
|
||||
# Set the document in.pdf to open in Acrobat Viewer showing two
|
||||
# columns of pages, starting on the right, putting the result in
|
||||
# out.pdf.
|
||||
cpdf -set-page-layout TwoColumnRight in.pdf -o out.pdf
|
||||
|
||||
# Set the document in.pdf to open in Acrobat Viewer in full screen
|
||||
# mode, putting the result in out.pdf.
|
||||
cpdf -set-page-mode FullScreen in.pdf -o out.pdf
|
||||
|
||||
# Attach the file sheet.xls to in.pdf, writing to out.pdf.
|
||||
cpdf -attach-file sheet.xls in.pdf -o out.pdf
|
||||
|
||||
# Remove any attachments from in.pdf, writing to out.pdf.
|
||||
cpdf -remove-files in.pdf -o out.pdf
|
||||
|
||||
# Blacken all the text in in.pdf, writing to out.pdf.
|
||||
cpdf -blacktext in.pdf -o out.pdf
|
||||
|
||||
# Make sure all lines in in.pdf are at least 2 pts wide, writing to
|
||||
# out.pdf.
|
||||
cpdf -thinlines 2pt in.pdf -o out.pdf
|
||||
|
||||
@@ -14,7 +14,9 @@ SHELL=/bin/bash
|
||||
# example entries
|
||||
# every 15 min
|
||||
*/15 * * * * /home/user/command.sh
|
||||
|
||||
# every midnight
|
||||
0 * * * * /home/user/command.sh
|
||||
* 0 * * * /home/user/command.sh
|
||||
|
||||
# every Saturday at 8:05 AM
|
||||
5 8 * * 6 /home/user/command.sh
|
||||
|
||||
@@ -1,5 +1,8 @@
|
||||
# Print date in format suitable for affixing to file names
|
||||
date +"%Y%m%d_%H%M%S"
|
||||
|
||||
# Convert Unix timestamp to Date
|
||||
# Convert Unix timestamp to Date(Linux)
|
||||
date -d @1440359821
|
||||
|
||||
# Convert Unix timestamp to Date(Mac)
|
||||
date -r 1440359821
|
||||
|
||||
@@ -17,3 +17,6 @@ dd if=/dev/zero of=/dev/null bs=128M status=progress
|
||||
|
||||
# DD with "graphical" return
|
||||
dcfldd if=/dev/zero of=/dev/null bs=500K
|
||||
|
||||
# This will output the sound from your microphone port to the ssh target computer's speaker port. The sound quality is very bad, so you will hear a lot of hissing.
|
||||
dd if=/dev/dsp | ssh -c arcfour -C username@host dd of=/dev/dsp
|
||||
|
||||
@@ -104,3 +104,23 @@ git clone --depth 1 <remote-url>
|
||||
|
||||
# To unshallow a clone
|
||||
git pull --unshallow
|
||||
|
||||
# Create a bare branch (one that has no commits on it)
|
||||
git checkout --orphan branch_name
|
||||
|
||||
# Checkout a new branch from a different starting point
|
||||
git checkout -b master upstream/master
|
||||
|
||||
# Remove all stale branches (ones that have been deleted on remote)
|
||||
# So if you have a lot of useless branches, delete them on Github and then run this
|
||||
git remote prune origin
|
||||
|
||||
# The following can be used to prune all remotes at once
|
||||
git remote prune $(git remote | tr '\n' ' ')
|
||||
|
||||
# Revisions can also be identified with :/text
|
||||
# So, this will show the first commit that has "cool" in their message body
|
||||
git show :/cool
|
||||
|
||||
# Undo parts of last commit in a specific file
|
||||
git checkout -p HEAD^ -- /path/to/file
|
||||
|
||||
@@ -1,2 +1,9 @@
|
||||
# To disable the terminal refresh when exiting
|
||||
less -X
|
||||
less -X
|
||||
|
||||
# To save the contents to a file
|
||||
# Method 1 - Only works when the input is a pipe
|
||||
s <filename>
|
||||
|
||||
# Method 2 - This should work whether input is a pipe or an ordinary file.
|
||||
Type g or < (g or less-than) | $ (pipe then dollar) then cat > <filename> and Enter.
|
||||
|
||||
11
cheat/cheatsheets/ncdu
Normal file
11
cheat/cheatsheets/ncdu
Normal 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-
|
||||
@@ -32,3 +32,12 @@ ssh user@example.com -C -c blowfish -X
|
||||
# Copy files and folders through ssh from remote host to pwd with tar.gz compression
|
||||
# when there is no rsync command available
|
||||
ssh user@example.com "cd /var/www/Shared/; tar zcf - asset1 asset2" | tar zxf -
|
||||
|
||||
# Mount folder/filesystem through SSH
|
||||
# Install SSHFS from https://github.com/libfuse/sshfs
|
||||
# Will allow you to mount a folder securely over a network.
|
||||
sshfs name@server:/path/to/folder /path/to/mount/point
|
||||
|
||||
# Emacs can read file through SSH
|
||||
# Doc: http://www.gnu.org/software/emacs/manual/html_node/emacs/Remote-Files.html
|
||||
emacs /ssh:name@server:/path/to/file
|
||||
|
||||
20
cheat/cheatsheets/svn
Normal file
20
cheat/cheatsheets/svn
Normal 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
|
||||
8
cheat/cheatsheets/xxd
Normal file
8
cheat/cheatsheets/xxd
Normal file
@@ -0,0 +1,8 @@
|
||||
# Convert bin/string to hex.
|
||||
# Result: 34322069732074686520736f6c7574696f6e0a
|
||||
echo '42 is the solution' | xxd -p
|
||||
|
||||
# Convert hex to bin/string.
|
||||
# Result: 42 is the solution
|
||||
echo '34322069732074686520736f6c7574696f6e0a' | xxd -r -p
|
||||
|
||||
@@ -1,10 +1,9 @@
|
||||
from cheat import sheets
|
||||
from cheat import utils
|
||||
from cheat.utils import *
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
|
||||
from cheat import sheets
|
||||
from cheat.utils import die, editor
|
||||
|
||||
def copy(current_sheet_path, new_sheet_path):
|
||||
""" Copies a sheet to a new path """
|
||||
@@ -16,7 +15,7 @@ def copy(current_sheet_path, new_sheet_path):
|
||||
# fail gracefully if the cheatsheet cannot be copied. This can happen if
|
||||
# DEFAULT_CHEAT_DIR does not exist
|
||||
except IOError:
|
||||
die ('Could not copy cheatsheet for editing.')
|
||||
die('Could not copy cheatsheet for editing.')
|
||||
|
||||
|
||||
def create_or_edit(sheet):
|
||||
@@ -84,5 +83,5 @@ def read(sheet):
|
||||
if not exists(sheet):
|
||||
die('No cheatsheet found for ' + sheet)
|
||||
|
||||
with open (path(sheet)) as cheatfile:
|
||||
return cheatfile.read()
|
||||
with open(path(sheet)) as cheatfile:
|
||||
return cheatfile.read()
|
||||
|
||||
@@ -1,7 +1,8 @@
|
||||
from cheat import cheatsheets
|
||||
from cheat.utils import *
|
||||
import os
|
||||
|
||||
from cheat import cheatsheets
|
||||
from cheat.utils import die
|
||||
|
||||
def default_path():
|
||||
""" Returns the default cheatsheet path """
|
||||
|
||||
@@ -22,7 +23,7 @@ def default_path():
|
||||
if not os.access(default_sheets_dir, os.R_OK):
|
||||
die('The DEFAULT_CHEAT_DIR (' + default_sheets_dir +') is not readable.')
|
||||
if not os.access(default_sheets_dir, os.W_OK):
|
||||
die('The DEFAULT_CHEAT_DIR (' + default_sheets_dir +') is not writeable.')
|
||||
die('The DEFAULT_CHEAT_DIR (' + default_sheets_dir +') is not writable.')
|
||||
|
||||
# return the default dir
|
||||
return default_sheets_dir
|
||||
@@ -81,10 +82,10 @@ def search(term):
|
||||
for cheatsheet in sorted(get().items()):
|
||||
match = ''
|
||||
for line in open(cheatsheet[1]):
|
||||
if term in line:
|
||||
match += ' ' + line
|
||||
if term in line:
|
||||
match += ' ' + line
|
||||
|
||||
if not match == '':
|
||||
if match != '':
|
||||
result += cheatsheet[0] + ":\n" + match + "\n"
|
||||
|
||||
return result
|
||||
|
||||
@@ -38,28 +38,13 @@ def editor():
|
||||
|
||||
elif os.environ['EDITOR'] == "":
|
||||
die(
|
||||
'Your EDITOR environment variable is set to an empty string. It must '
|
||||
'be set to your editor\'s path.'
|
||||
'Your EDITOR environment variable is set to an empty string. It must '
|
||||
'be set to your editor\'s path.'
|
||||
)
|
||||
|
||||
else:
|
||||
return os.environ['EDITOR']
|
||||
|
||||
|
||||
def prompt_yes_or_no(question):
|
||||
""" Prompts the user with a yes-or-no question """
|
||||
# Support Python 2 and 3 input
|
||||
# Default to Python 2's input()
|
||||
get_input = raw_input
|
||||
|
||||
# If this is Python 3, use input()
|
||||
if sys.version_info[:2] >= (3, 0):
|
||||
get_input = input
|
||||
|
||||
print(question)
|
||||
return get_input('[y/n] ') == 'y'
|
||||
|
||||
|
||||
def warn(message):
|
||||
""" Prints a message to stderr """
|
||||
print((message), file=sys.stderr)
|
||||
|
||||
Reference in New Issue
Block a user