mirror of
https://github.com/cheat/cheat.git
synced 2025-12-13 10:42:07 +01:00
Compare commits
31 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
d058ee087e | ||
|
|
35c38be120 | ||
|
|
cc86f23dba | ||
|
|
54086bf8d6 | ||
|
|
429ed25aba | ||
|
|
128f28ac99 | ||
|
|
420a320839 | ||
|
|
e3f435a78a | ||
|
|
dcc01bb980 | ||
|
|
6f27a3e614 | ||
|
|
36b078c9f6 | ||
|
|
73c1842866 | ||
|
|
ceb3707d28 | ||
|
|
f9e8e041ef | ||
|
|
b59e83e706 | ||
|
|
bfa813a0b8 | ||
|
|
c179ef64c6 | ||
|
|
14a4ee867e | ||
|
|
70ef6239fe | ||
|
|
1b55a238df | ||
|
|
eeb2c92576 | ||
|
|
b6137cac8b | ||
|
|
711fd02195 | ||
|
|
248f5a0526 | ||
|
|
8e7ce511bd | ||
|
|
ba7ebc8392 | ||
|
|
6670785a2a | ||
|
|
aabaab1185 | ||
|
|
22eb1f2df4 | ||
|
|
a519ea163e | ||
|
|
d897a8a8ea |
@@ -143,6 +143,7 @@ Related Projects
|
||||
|
||||
- [`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
|
||||
@@ -150,4 +151,5 @@ Related Projects
|
||||
[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
|
||||
|
||||
@@ -38,7 +38,7 @@ from docopt import docopt
|
||||
|
||||
if __name__ == '__main__':
|
||||
# parse the command-line options
|
||||
options = docopt(__doc__, version='cheat 2.1.18')
|
||||
options = docopt(__doc__, version='cheat 2.1.21')
|
||||
|
||||
# list directories
|
||||
if options['--directories']:
|
||||
|
||||
23
cheat/cheatsheets/apt
Normal file
23
cheat/cheatsheets/apt
Normal file
@@ -0,0 +1,23 @@
|
||||
# To search a package:
|
||||
apt search package
|
||||
|
||||
# To show package informations:
|
||||
apt show package
|
||||
|
||||
# To fetch package list:
|
||||
apt update
|
||||
|
||||
# To download and install updates without installing new package:
|
||||
apt upgrade
|
||||
|
||||
# To download and install the updates AND install new necessary packages:
|
||||
apt dist-upgrade
|
||||
|
||||
# Full command:
|
||||
apt update && apt dist-upgrade
|
||||
|
||||
# To install a new package(s):
|
||||
apt install package(s)
|
||||
|
||||
# To uninstall package(s)
|
||||
apt remove package(s)
|
||||
@@ -12,6 +12,9 @@ dd if=/dev/zero of=/dev/null bs=4KB &; export dd_pid=`pgrep '^dd'`; while [[ -d
|
||||
# Watch the progress of 'dd' with `pv` and `zenity` (apt-get install pv zenity)
|
||||
(pv -n /dev/zero | dd of=/dev/null bs=128M conv=notrunc,noerror) 2>&1 | zenity --title 'Running dd command (cloning), please wait...' --progress
|
||||
|
||||
# Watch the progress of 'dd' with the built-in `progress` functionality (introduced in coreutils v8.24)
|
||||
dd if=/dev/zero of=/dev/null bs=128M status=progress
|
||||
|
||||
# DD with "graphical" return
|
||||
dcfldd if=/dev/zero of=/dev/null bs=500K
|
||||
|
||||
|
||||
@@ -19,6 +19,9 @@ docker inspect --format {{.State.Pid}} <container_name_or_ID>
|
||||
# http://nathanleclaire.com/blog/2014/07/12/10-docker-tips-and-tricks-that-will-make-you-sing-a-whale-song-of-joy/
|
||||
docker inspect --format='{{json .Volumes}}' <container_id> | python -mjson.tool
|
||||
|
||||
# Copy files/folders between a container and your host
|
||||
docker cp foo.txt mycontainer:/foo.txt
|
||||
|
||||
# list currently running containers
|
||||
docker ps
|
||||
|
||||
|
||||
17
cheat/cheatsheets/for
Normal file
17
cheat/cheatsheets/for
Normal file
@@ -0,0 +1,17 @@
|
||||
# basic loop
|
||||
for i in 1 2 3 4 5 6 7 8 9 10
|
||||
do
|
||||
echo $i
|
||||
done
|
||||
|
||||
# loop ls command results
|
||||
for var in `ls -alF`
|
||||
do
|
||||
echo $var
|
||||
done
|
||||
|
||||
# loop specified number of times
|
||||
for i in `seq 1 10`
|
||||
do
|
||||
echo $i
|
||||
done
|
||||
195
cheat/cheatsheets/http
Normal file
195
cheat/cheatsheets/http
Normal file
@@ -0,0 +1,195 @@
|
||||
# Custom HTTP method HTTP headers and JSON data:
|
||||
http PUT example.org X-API-Token:123 name=John
|
||||
|
||||
# Submitting forms:
|
||||
http -f POST example.org hello=World
|
||||
|
||||
# See the request that is being sent using one of the output options:
|
||||
http -v example.org
|
||||
|
||||
# Use Github API to post a comment on an issue with authentication:
|
||||
http -a USERNAME POST https://api.github.com/repos/jkbrzt/httpie/issues/83/comments body='HTTPie is awesome!'
|
||||
|
||||
# Upload a file using redirected input:
|
||||
http example.org < file.json
|
||||
|
||||
# Download a file and save it via redirected output:
|
||||
http example.org/file > file
|
||||
|
||||
# Download a file wget style:
|
||||
http --download example.org/file
|
||||
|
||||
# Use named sessions_ to make certain aspects or the communication
|
||||
# persistent between requests to the same host:
|
||||
# http --session=logged-in -a username:password httpbin.org/get API-Key:123
|
||||
http --session=logged-in httpbin.org/headers
|
||||
|
||||
# Set a custom Host header to work around missing DNS records:
|
||||
http localhost:8000 Host:example.com
|
||||
|
||||
# Simple JSON example:
|
||||
http PUT example.org name=John email=john@example.org
|
||||
|
||||
# Non-string fields use the := separator, which allows you to embed raw
|
||||
# JSON into the resulting object. Text and raw JSON files can also be
|
||||
# embedded into fields using =@ and :=@:
|
||||
http PUT api.example.com/person/1 name=John age:=29 married:=false hobbies:='["http", "pies"]' description=@about-john.txt bookmarks:=@bookmarks.json
|
||||
|
||||
# Send JSON data stored in a file:
|
||||
http POST api.example.com/person/1 < person.json
|
||||
|
||||
# Regular Forms
|
||||
http --form POST api.example.org/person/1 name='John Smith' email=john@example.org cv=@~/Documents/cv.txt
|
||||
|
||||
# File Upload Forms
|
||||
# If one or more file fields is present, the serialization and content
|
||||
# type is multipart/form-data:
|
||||
http -f POST example.com/jobs name='John Smith' cv@~/Documents/cv.pdf
|
||||
|
||||
# To set custom headers you can use the Header:Value notation:
|
||||
http example.org User-Agent:Bacon/1.0 'Cookie:valued-visitor=yes;foo=bar' X-Foo:Bar Referer:http://httpie.org/
|
||||
|
||||
# Basic auth:
|
||||
http -a username:password example.org
|
||||
|
||||
# Digest auth:
|
||||
http --auth-type=digest -a username:password example.org
|
||||
|
||||
# With password prompt:
|
||||
http -a username example.org
|
||||
|
||||
# Authorization information from your ~/.netrc file is honored as well:
|
||||
cat ~/.netrc
|
||||
machine httpbin.org
|
||||
login httpie
|
||||
# password test
|
||||
http httpbin.org/basic-auth/httpie/test
|
||||
|
||||
# You can specify proxies to be used through the --proxy argument for each
|
||||
# protocol (which is included in the value in case of redirects across
|
||||
# protocols):
|
||||
http --proxy=http:http://10.10.1.10:3128 --proxy=https:https://10.10.1.10:1080 example.org
|
||||
|
||||
# With Basic authentication:
|
||||
http --proxy=http:http://user:pass@10.10.1.10:3128 example.org
|
||||
|
||||
# To skip the HOST'S SSL CERTIFICATE VERIFICATION, you can pass
|
||||
# --verify=no (default is yes):
|
||||
http --verify=no https://example.org
|
||||
|
||||
# You can also use --verify=<CA_BUNDLE_PATH> to set a CUSTOM CA BUNDLE path:
|
||||
http --verify=/ssl/custom_ca_bundle https://example.org
|
||||
|
||||
# To use a CLIENT SIDE CERTIFICATE for the SSL communication, you can pass
|
||||
# the path of the cert file with --cert:
|
||||
http --cert=client.pem https://example.org
|
||||
|
||||
# If the PRIVATE KEY is not contained in the cert file you may pass the
|
||||
# path of the key file with --cert-key:
|
||||
http --cert=client.crt --cert-key=client.key https://example.org
|
||||
|
||||
# You can control what should be printed via several options:
|
||||
# --headers, -h Only the response headers are printed.
|
||||
# --body, -b Only the response body is printed.
|
||||
# --verbose, -v Print the whole HTTP exchange (request and response).
|
||||
# --print, -p Selects parts of the HTTP exchange.
|
||||
http --verbose PUT httpbin.org/put hello=world
|
||||
|
||||
# Print request and response headers:
|
||||
# Character Stands for
|
||||
# ----------- -------------------
|
||||
# H Request headers.
|
||||
# B Request body.
|
||||
# h Response headers.
|
||||
# b Response body.
|
||||
http --print=Hh PUT httpbin.org/put hello=world
|
||||
|
||||
# Let's say that there is an API that returns the whole resource when it
|
||||
# is updated, but you are only interested in the response headers to see
|
||||
# the status code after an update:
|
||||
http --headers PATCH example.org/Really-Huge-Resource name='New Name'
|
||||
|
||||
# Redirect from a file:
|
||||
http PUT example.com/person/1 X-API-Token:123 < person.json
|
||||
|
||||
# Or the output of another program:
|
||||
grep '401 Unauthorized' /var/log/httpd/error_log | http POST example.org/intruders
|
||||
|
||||
# You can use echo for simple data:
|
||||
echo '{"name": "John"}' | http PATCH example.com/person/1 X-API-Token:123
|
||||
|
||||
# You can even pipe web services together using HTTPie:
|
||||
http GET https://api.github.com/repos/jkbrzt/httpie | http POST httpbin.org/post
|
||||
|
||||
# You can use cat to enter multiline data on the terminal:
|
||||
cat | http POST example.com
|
||||
<paste>
|
||||
# ^D
|
||||
cat | http POST example.com/todos Content-Type:text/plain
|
||||
- buy milk
|
||||
- call parents
|
||||
^D
|
||||
|
||||
# On OS X, you can send the contents of the clipboard with pbpaste:
|
||||
pbpaste | http PUT example.com
|
||||
|
||||
# Passing data through stdin cannot be combined with data fields specified
|
||||
# on the command line:
|
||||
echo 'data' | http POST example.org more=data # This is invalid
|
||||
|
||||
|
||||
# AN ALTERNATIVE TO REDIRECTED stdin is specifying a filename (as
|
||||
# @/path/to/file) whose content is used as if it came from stdin.
|
||||
|
||||
# It has the advantage that THE Content-Type HEADER IS AUTOMATICALLY SET
|
||||
# to the appropriate value based on the filename extension. For example,
|
||||
# the following request sends the verbatim contents of that XML file with
|
||||
# Content-Type: application/xml:
|
||||
http PUT httpbin.org/put @/data/file.xml
|
||||
|
||||
# Download a file:
|
||||
http example.org/Movie.mov > Movie.mov
|
||||
|
||||
# Download an image of Octocat, resize it using ImageMagick, upload it
|
||||
# elsewhere:
|
||||
http octodex.github.com/images/original.jpg | convert - -resize 25% - | http example.org/Octocats
|
||||
|
||||
# Force colorizing and formatting, and show both the request and the
|
||||
# response in less pager:
|
||||
http --pretty=all --verbose example.org | less -R
|
||||
|
||||
# When enabled using the --download, -d flag, response headers are printed
|
||||
# to the terminal (stderr), and a progress bar is shown while the response
|
||||
# body is being saved to a file.
|
||||
http --download https://github.com/jkbrzt/httpie/tarball/master
|
||||
|
||||
# You can also redirect the response body to another program while the
|
||||
# response headers and progress are still shown in the terminal:
|
||||
http -d https://github.com/jkbrzt/httpie/tarball/master | tar zxf -
|
||||
|
||||
# If --output, -o is specified, you can resume a partial download using
|
||||
# the --continue, -c option. This only works with servers that support
|
||||
# Range requests and 206 Partial Content responses. If the server doesn't
|
||||
# support that, the whole file will simply be downloaded:
|
||||
http -dco file.zip example.org/file
|
||||
|
||||
# Prettified streamed response:
|
||||
http --stream -f -a YOUR-TWITTER-NAME https://stream.twitter.com/1/statuses/filter.json track='Justin Bieber'
|
||||
|
||||
# Send each new tweet (JSON object) mentioning "Apple" to another
|
||||
# server as soon as it arrives from the Twitter streaming API:
|
||||
http --stream -f -a YOUR-TWITTER-NAME https://stream.twitter.com/1/statuses/filter.json track=Apple | while read tweet; do echo "$tweet" | http POST example.org/tweets ; done
|
||||
|
||||
# Create a new session named user1 for example.org:
|
||||
http --session=user1 -a user1:password example.org X-Foo:Bar
|
||||
|
||||
# Now you can refer to the session by its name, and the previously used
|
||||
# authorization and HTTP headers will automatically be set:
|
||||
http --session=user1 example.org
|
||||
|
||||
# To create or reuse a different session, simple specify a different name:
|
||||
http --session=user2 -a user2:password example.org X-Bar:Foo
|
||||
|
||||
# Instead of a name, you can also directly specify a path to a session
|
||||
# file. This allows for sessions to be re-used across multiple hosts:
|
||||
http --session=/tmp/session.json example.orghttp --session=/tmp/session.json admin.example.orghttp --session=~/.httpie/sessions/another.example.org/test.json example.orghttp --session-read-only=/tmp/session.json example.org
|
||||
58
cheat/cheatsheets/mdadm
Normal file
58
cheat/cheatsheets/mdadm
Normal file
@@ -0,0 +1,58 @@
|
||||
# For the sake of briefness, we use Bash "group compound" stanza:
|
||||
# /dev/sd{a,b,...}1 => /dev/sda1 /dev/sdb1 ...
|
||||
# Along the following variables:
|
||||
# ${M} array identifier (/dev/md${M})
|
||||
# ${D} device identifier (/dev/sd${D})
|
||||
# ${P} partition identifier (/dev/sd${D}${P})
|
||||
|
||||
# Create (initialize) a new array
|
||||
mdadm --create /dev/md${M} --level=raid5 --raid-devices=4 /dev/sd{a,b,c,d,e}${P} --spare-devices=/dev/sdf1
|
||||
|
||||
# Manually assemble (activate) an existing array
|
||||
mdadm --assemble /dev/md${M} /dev/sd{a,b,c,d,e}${P}
|
||||
|
||||
# Automatically assemble (activate) all existing arrays
|
||||
mdadm --assemble --scan
|
||||
|
||||
# Stop an assembled (active) array
|
||||
mdadm --stop /dev/md${M}
|
||||
|
||||
# See array configuration
|
||||
mdadm --query /dev/md${M}
|
||||
|
||||
# See array component configuration (dump superblock content)
|
||||
mdadm --query --examine /dev/sd${D}${P}
|
||||
|
||||
# See detailed array confiration/status
|
||||
mdadm --detail /dev/md${M}
|
||||
|
||||
# Save existing arrays configuration
|
||||
# (MAY be required by initrd for successfull boot)
|
||||
mdadm --detail --scan > /etc/mdadm/mdadm.conf
|
||||
|
||||
# Erase array component superblock
|
||||
# (MUST do before reusing a partition for other purposes)
|
||||
mdadm --zero-superblock /dev/sd${D}${P}
|
||||
|
||||
# Manually mark a component as failed
|
||||
# (SHOULD when a device shows wear-and-tear signs, e.g. through SMART)
|
||||
mdadm --manage /dev/md${M} --fail /dev/sd${D}${P}
|
||||
|
||||
# Remove a failed component
|
||||
# (SHOULD before preemptively replacing a device, after failing it)
|
||||
mdadm --manage /dev/md${M} --remove /dev/sd${D}${P}
|
||||
|
||||
# Prepare (format) a new device to replace a failed one
|
||||
sfdisk -d /dev/sd${D,sane} | sfdisk /dev/sd${D,new}
|
||||
|
||||
# Add new component to an existing array
|
||||
# (this will trigger the rebuild)
|
||||
mdadm --manage /dev/md${M} --add /dev/sd${D,new}${P}
|
||||
|
||||
# See assembled (active) arrays status
|
||||
cat /proc/mdstat
|
||||
|
||||
# Rename a device
|
||||
# (SHOULD after hostname change; eg. name="$(hostname -s)")
|
||||
mdadm --assemble /dev/md${M} /dev/sd{a,b,c,d,e}${P} --name="${name}:${M}" --update=name
|
||||
|
||||
@@ -9,3 +9,6 @@ mount -o uid=username,gid=usergroup /dev/sdx /mnt/xxx
|
||||
|
||||
# To mount a remote NFS directory
|
||||
mount -t nfs example.com:/remote/example/dir /local/example/dir
|
||||
|
||||
# To mount an ISO
|
||||
mount -o loop disk1.iso /mnt/disk
|
||||
|
||||
@@ -17,3 +17,15 @@ GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost'IDENTIFIED BY 'password'
|
||||
SHOW GRANTS FOR CURRENT_USER();
|
||||
SHOW GRANTS;
|
||||
SHOW GRANTS FOR CURRENT_USER;
|
||||
|
||||
# Basic SELECT Statement
|
||||
SELECT * FROM tbl_name;
|
||||
|
||||
# Basic INSERT Statement
|
||||
INSERT INTO tbl_name (col1,col2) VALUES(15,col1*2);
|
||||
|
||||
# Basic UPDATE Statement
|
||||
UPDATE tbl_name SET col1 = "example";
|
||||
|
||||
# Basic DELETE Statement
|
||||
DELETE FROM tbl_name WHERE user = 'jcole';
|
||||
29
cheat/cheatsheets/nkf
Normal file
29
cheat/cheatsheets/nkf
Normal file
@@ -0,0 +1,29 @@
|
||||
# check the file's charactor code
|
||||
nkf -g test.txt
|
||||
|
||||
# convert charactor code to UTF-8
|
||||
nkf -w --overwrite test.txt
|
||||
|
||||
# convert charactor code to EUC-JP
|
||||
nkf -e --overwrite test.txt
|
||||
|
||||
# convert charactor code to Shift-JIS
|
||||
nkf -s --overwrite test.txt
|
||||
|
||||
# convert charactor code to ISO-2022-JP
|
||||
nkf -j --overwrite test.txt
|
||||
|
||||
# convert newline to LF
|
||||
nkf -Lu --overwrite test.txt
|
||||
|
||||
# convert newline to CRLF
|
||||
nkf -Lw --overwrite test.txt
|
||||
|
||||
# convert newline to CR
|
||||
nkf -Lm --overwrite test.txt
|
||||
|
||||
# MIME encode
|
||||
echo テスト | nkf -WwMQ
|
||||
|
||||
# MIME decode
|
||||
echo "=E3=83=86=E3=82=B9=E3=83=88" | nkf -WwmQ
|
||||
@@ -3,3 +3,6 @@ ping -c 15 www.example.com
|
||||
|
||||
# ping a host with a total count of 15 packets overall, one every .5 seconds (faster ping).
|
||||
ping -c 15 -i .5 www.example.com
|
||||
|
||||
# test if a packet size of 1500 bytes is supported (to check the MTU for example)
|
||||
ping -s 1500 -c 10 -M do www.example.com
|
||||
|
||||
2
cheat/cheatsheets/rename
Normal file
2
cheat/cheatsheets/rename
Normal file
@@ -0,0 +1,2 @@
|
||||
# Lowercase all files and folders in current directory
|
||||
rename 'y/A-Z/a-z/' *
|
||||
Reference in New Issue
Block a user