Compare commits

...

360 Commits

Author SHA1 Message Date
Erreur32 cb6bf9b780
Update README.md 2022-11-15 10:16:57 +01:00
Erreur32 12799fd266
Update README.md 2018-03-22 00:32:03 +01:00
Erreur32 f2173dbb64
Update README.md 2018-03-16 15:47:30 +01:00
Erreur32 1445b613d0
Update README.md 2018-03-16 15:43:03 +01:00
Erreur32 26ba0d9850
Update README.md 2018-03-16 15:40:46 +01:00
Erreur32 c0631554a1
Delete index.html 2018-03-01 16:22:04 +01:00
Erreur32 df38dd4a07
Delete _config.yml 2018-03-01 16:21:56 +01:00
Erreur32 fc5fc1608b
Rename index.php to index.html 2018-03-01 15:52:33 +01:00
Erreur32 63281adcb6
Update _config.yml 2018-03-01 15:50:58 +01:00
Erreur32 e6595db874 Set theme jekyll-theme-slate 2018-03-01 11:46:09 +01:00
Erreur32 ec05940121
Create index.php 2018-03-01 11:45:35 +01:00
Erreur32 b1634e427d
Update README.md 2018-02-24 18:26:04 +01:00
Erreur32 690bd9a398
Update README.md 2018-02-24 18:25:33 +01:00
Erreur32 d61b44793c
Update README.md 2018-02-24 18:24:15 +01:00
Erreur32 492150fcec
Update README.md 2018-02-24 18:23:37 +01:00
Erreur32 388e846678
Update README.md 2018-02-24 18:21:09 +01:00
Erreur32 a793b7a9f5
Update README.md 2018-02-24 18:10:24 +01:00
Erreur32 71e5bd53a3
Update setup.py 2018-02-24 18:04:40 +01:00
Erreur32 8e3e228ebd
Update README.md 2018-02-24 18:03:14 +01:00
Erreur32 c152c5ce5a
Update README.md 2018-02-24 18:02:31 +01:00
Erreur32 606d81cb63
Update README.md 2018-02-24 18:01:49 +01:00
Erreur32 6e36b13df7
Update utils.py
add color
 + other stuff
2018-02-24 17:52:17 +01:00
Erreur32 93288cb38b
Update README.md 2018-02-24 17:50:52 +01:00
Erreur32 facd365d27
Update sheets.py
Add color 
Add sbdir creation and search as well
Add Remove sheet function
2018-02-24 17:44:32 +01:00
Erreur32 3c2bcf5073
Update sheet.py
prompt if delete sheet ;)
2018-02-24 17:43:29 +01:00
Erreur32 fec0382892
Update cheat
python3 + add color + remove sheet
2018-02-24 17:42:32 +01:00
Chris Lane aa1e12625e Version bump to 2.2.3. 2017-12-19 12:42:07 -05:00
Chris Allen Lane d09353bfca
Merge pull request #363 from shigemk2/shigemk2-patch-1
Add cheatsheet perl
2017-12-19 12:38:25 -05:00
Chris Allen Lane 81e80c87a1
Merge pull request #358 from byxor/emacs
Add cheat for running emacs in terminal
2017-12-19 12:37:04 -05:00
Chris Allen Lane 3d498d5ce7
Merge pull request #354 from rognan/add-cheat-for-youtube-dl-extract-audio
Add cheat for downloading audio with youtube-dl
2017-12-19 12:35:11 -05:00
Chris Allen Lane d90d509702
Merge pull request #365 from shigemk2/check_function_mysql
Add cheatsheet for mysql
2017-12-19 12:34:05 -05:00
Chris Allen Lane b46f5b2c34
Merge pull request #359 from Dgc2002/master
Adds cheatsheet for rcs
2017-12-19 12:33:01 -05:00
Chris Lane e2d63e7603 Minor edits to #357 2017-12-19 12:29:52 -05:00
Chris Lane 67f52f8317 Merge branch 'patch-1' of https://github.com/zrongh90/cheat into zrongh90-patch-1 2017-12-19 12:29:26 -05:00
Chris Allen Lane 67134b9240
Merge pull request #360 from nitsnatsnok/patch-1
sizes and typo corrected
2017-12-19 12:27:29 -05:00
Chris Lane c67adb1422 Minor edits to #367. 2017-12-19 12:25:40 -05:00
Chris Lane c2aa5e0148 Merge branch 'master' of https://github.com/Sim4n6/cheat into Sim4n6-master 2017-12-19 12:24:19 -05:00
Chris Allen Lane 332f0bd4ee
Merge pull request #364 from navjotjsingh/master
Cheatsheet for cd
2017-12-19 12:21:37 -05:00
iamatacos b303bc0028 added support for Got-Your-Back for backup from Gmail 2017-12-14 15:38:08 +00:00
ALJI Mohamed 02f79ddd13
Merge pull request #1 from chrisallenlane/master
learning amigo
2017-12-14 16:09:24 +01:00
Michihito Shigemura 71680c6586
Add cheatsheet for mysql
check stored procedure or stored function in mysql
2017-11-28 22:12:20 +09:00
Navjot Singh a240413eb9
Merge pull request #1 from navjotjsingh/navjotjsingh-patch-cd
Cheatsheet for cd
2017-11-27 11:53:39 +05:30
Navjot Singh cde64e3ea4
Cheatsheet for cd 2017-11-27 11:52:05 +05:30
Michihito Shigemura 0b0bc441c6
Add cheatsheet perl 2017-11-20 21:20:22 +09:00
Chris Allen Lane 2aa37432cb
Merge pull request #356 from shigemk2/xargs-no-run-if-empty
Add cheatsheet for xargs --no-run-if-empty
2017-11-19 08:13:07 -05:00
Chris Allen Lane 89de3705b0
Merge pull request #355 from shigemk2/curl-only-status-code
Add cheatsheet for cp backup file with date
2017-11-19 08:11:35 -05:00
Chris Lane d12718b8c4 `cp` edit
Appended missing newline to end of `cp` cheatsheet.
2017-11-19 08:09:37 -05:00
Chris Lane 900e083b99 Merge branch 'cp-backup' of git://github.com/shigemk2/cheat into shigemk2-cp-backup 2017-11-19 08:07:10 -05:00
nitsnatsnok 837e0b5b71
sizes and typo corrected
`-size +20000k` actually matches files bigger than 20,000*1,024=20,480,000 Bytes, not 20,000,000 Bytes as in “2 Megabytes”.
2017-11-12 00:50:30 +01:00
Dave Clarke 30d2a77a6c Adds cheatsheet for rcs 2017-11-02 11:53:08 -05:00
byxor 1a8cdf84f4 Add instructions for running emacs in terminal 2017-11-01 16:16:49 +00:00
zrongh90 181403e7ac
create iconv
add new iconv for code convert
2017-10-31 16:00:16 +08:00
Michihito Shigemura 2c10955690 Add cheatsheet for xargs --no-run-if-empty 2017-10-27 00:12:36 +09:00
Michihito Shigemura 4319b8e699 Add curl cheatsheet: Get only the HTTP status code
curl -o /dev/null -w '%{http_code}\n' -s -I URL
2017-10-24 22:23:36 +09:00
Thor Andreas Rognan 57dff86a44 Add cheat for downloading audio with youtube-dl 2017-10-13 14:37:07 +02:00
Michihito Shigemura aa4f6daf77 Add cheatsheet for cp backup file with date 2017-10-04 23:47:33 +09:00
Chris Lane d7272c50c4 v2.2.2
Added new cheatsheets.
2017-09-16 23:15:15 -04:00
Chris Allen Lane cdf573a725 Merge pull request #318 from shanahanjrs/new-misc-cheatsheets
Created cheatsheets for alias, cat, cp, export, kill, mv, pwd, and wc
2017-09-16 23:01:08 -04:00
Chris Allen Lane eb6dfaad39 Merge pull request #350 from iamatacos/patch-1
Update dd
2017-09-16 22:58:17 -04:00
ALJI Mohamed f8d2ce516e Update dd
There is a small error in this sample :

**bs=BYTES** --> read and write up to BYTES bytes at a time

**count=N** --> copy only N input blocks

just inverse please
2017-09-16 22:04:10 +01:00
shanahanjrs e5bf9146fe Fixed cheat sheets to conform to the standard style more closely 2017-09-12 23:11:38 -04:00
Chris Lane d6dc39c687 v2.2.1
Version bump to 2.2.1. (Release contains new default cheatsheets.)
2017-09-05 14:23:10 -04:00
Chris Lane fb5ec798fa CONTRIBUTING.md
Made minor additions to the `CONTRIBUTING.md` file.
2017-09-05 13:48:06 -04:00
Chris Lane 866eb68d64 emacs cheatsheet
Minor whitespace edits on the emacs cheatsheet.
2017-09-05 13:26:23 -04:00
Chris Lane e17f60e4d5 Deleted accidental file
Deleted a file that seems to have been created accidentally. (It
contained nothing useful.)
2017-09-05 13:20:36 -04:00
Chris Lane ed2ef113f0 Merge branch 'emacs' of git://github.com/ndebuhr/cheat into ndebuhr-emacs 2017-09-05 13:19:19 -04:00
Chris Allen Lane 432379d1e6 Merge pull request #336 from yafp/master
Adding a first version of a pkill cheatsheet
2017-09-04 20:06:23 -04:00
Chris Allen Lane 7089bef7cc Merge pull request #337 from VHarisop/pip_latest
Updated pip sheet with upgrade for newer versions
2017-09-04 20:04:25 -04:00
Chris Lane aa57371819 Trivial whitespace changes to `pgrep` cheatsheet. 2017-09-04 20:01:25 -04:00
Chris Lane 921db35400 Merge branch 'pgrep' of git://github.com/shigemk2/cheat into shigemk2-pgrep 2017-09-04 20:00:38 -04:00
Chris Lane 852db958a4 Merge branch 'develop' 2017-09-04 19:57:28 -04:00
Chris Allen Lane d58bbba1f8 Merge pull request #333 from npit/master
Update emacs cheatsheet
2017-09-04 19:55:33 -04:00
Chris Allen Lane e5ffcf65e4 Merge pull request #328 from fpob/master
Add zsh cheatsheet
2017-09-04 19:54:49 -04:00
Chris Allen Lane d59ac66f1c Merge pull request #340 from Asta1986/postgres
added psql commands
2017-09-04 19:52:54 -04:00
Chris Allen Lane f4f8592933 Merge pull request #344 from Daoctor/master
fix crontab command
2017-09-04 19:50:45 -04:00
Chris Allen Lane c540a600b2 Merge pull request #343 from Mic92/patch-13
openssl: add fingerprint method
2017-09-04 19:47:49 -04:00
Chris Allen Lane 9224216581 Merge pull request #330 from shigemk2/curl-ip
Get your global IP with curl
2017-09-04 19:45:15 -04:00
Chris Allen Lane 2da5c2b710 Merge pull request #327 from Mic92/patch-12
add cryptsetup cheatsheat
2017-09-04 19:41:03 -04:00
Chris Allen Lane e468f8d0a0 Merge pull request #323 from henrikq/patch-1
Add install to Cheatsheet/deb
2017-09-04 19:39:58 -04:00
Chris Allen Lane cdee0e44cd Merge pull request #324 from dypublic/tar-add-destination-1
Update tar
2017-09-04 19:38:41 -04:00
Daoctor efcd687070 fix crontab command 2017-08-30 00:15:53 +08:00
Jörg Thalheim ae309c7dc4 openssl: add fingerprint method 2017-07-30 09:26:56 +01:00
Astaroth 86ba22e7b8 +html output 2017-06-30 21:34:32 -03:00
Astaroth 2a6ec9cef5 added psql commands 2017-06-29 20:23:47 -03:00
shigemk2 2d59026b0d Add f option 2017-06-10 01:43:11 +09:00
VHarisop bcb0d71dd3 Updated pip sheet with an upgrade option for newer versions 2017-06-02 13:09:48 +03:00
yafp d1526ede16 Adding a first version of a pkill cheatsheet 2017-06-01 21:31:27 +02:00
npit 374d381c00 Update emacs 2017-05-28 23:46:22 +03:00
shigemk2 1f3f9828c3 Add pgrep cheatsheat 2017-05-15 23:14:30 +09:00
shigemk2 5d3f89924c Get your global IP with curl 2017-05-15 23:08:21 +09:00
Filip Pobořil 74808845a5 Add zsh cheatsheet 2017-04-07 14:41:10 +02:00
Jörg Thalheim 517bf9599b add cryptsetup cheatsheat 2017-04-04 09:05:49 +02:00
Neal DeBuhr 7716827dfc Minor fixes and additions to emacs 2017-03-12 10:19:47 -04:00
daiyue c65fde1b3a Update tar
Add extract a .tar in specified Directory
2017-03-09 18:50:36 +08:00
Henrik Qvigstad bb3c4105cb Add install to Cheatsheet/deb 2017-03-07 09:50:37 +01:00
Chris Lane edd7b5e806 Minor revisions on #244
- When using GFM code fences, strip the last line in addition to the
  first
- Updated `README.md` to mention the new feature
- `minor` version-bump to `2.2.0`.
2017-02-28 18:59:27 -05:00
Chris Lane 7abb663bf4 Merge branch 'more_lexers' of git://github.com/cnicolov/cheat into cnicolov-more_lexers 2017-02-28 18:22:58 -05:00
Chris Lane f6f1233b12 Deleted `CHANGELOG`
Deleted `CHANGELOG`. It was never used.
2017-02-28 17:46:23 -05:00
Chris Lane b9241efab1 CONTRIBUTING.md
Put some useful information in `CONTRIBUTING.md`.
2017-02-28 17:45:53 -05:00
Chris Lane 8019325f1e README edit
The sheilds.io badge displaying downloads per month has been broken for
some time now (seemingly across all python projects), so I removed it.
2017-02-28 09:32:00 -05:00
Chris Lane 7209f2c929 docopt
Made revisions to the content of the docopt template.
2017-02-27 23:09:51 -05:00
Chris Lane 068d117bef patch version bump. 2017-02-27 23:02:23 -05:00
Chris Lane 9ead66461d Resolving merge conflict. 2017-02-27 23:01:30 -05:00
Chris Allen Lane d00bd87dd1 Merge pull request #312 from shanahanjrs/feature-cheat-cheat
Added a cheatsheet for cheat itself
2017-02-27 19:36:45 -05:00
Chris Allen Lane dd8b20a17a Merge pull request #317 from shanahanjrs/fix-7z-typo
Fixed typo in 7z cheatsheet
2017-02-27 19:29:58 -05:00
Chris Allen Lane 84e42e7f2f Merge pull request #314 from shanahanjrs/pushd-popd
Added cheatsheets for pushd and popd commands
2017-02-27 19:29:12 -05:00
Chris Allen Lane a59e91ead7 Merge pull request #320 from tupaschoal/master
Add cheatsheet for hg, shutdown, su
2017-02-27 19:26:58 -05:00
Tulio Leao f495a4dfd9 Add cheatsheet for su
Useful for running commands as another user.
2017-02-16 01:25:24 -02:00
Tulio Leao 10dd0e9a8b Add cheatsheet for shutdown
Adding help for shutdown, useful for rebooting the system,
2017-02-16 01:22:45 -02:00
Tulio Leao d06e5bab6f Add cheatsheet for hg
Mercurial is extensively used as a version control system, as an option to Git, so I'm adding its cheatsheet.
2017-02-16 00:04:18 -02:00
shanahanjrs aa9403d432 Created cheatsheets for alias, cat, cp, export, kill, mv, pwd, and wc 2017-02-12 22:11:45 -05:00
shanahanjrs 75b2555710 Fixed typo in 7z cheatsheet 2017-01-25 18:52:25 -05:00
shanahanjrs 632da2024a Added cheatsheets for pushd and popd commands 2017-01-08 17:11:51 -05:00
shanahanjrs 1baa6d39c0 Added a cheatsheet for cheat itself 2017-01-01 22:44:48 -05:00
Chris Lane 8cad76943a v2.1.27
`patch` version bump.
2016-11-27 11:10:05 -05:00
Romanos Skiadas a6ec02c296 Support multi-word EDITOR values
When the value of EDITOR was more than one words (e.g. emacsclient -c),
it wasn't properly split in an array for subprocess.call and cheat would
fail to launch it.
This commit fixes that.

Closes #301
2016-11-27 10:53:10 -05:00
Chris Lane 7392787e31 Merge branch 'patch-1' of https://github.com/brutus/cheat into brutus-patch-1 2016-11-27 10:42:46 -05:00
Chris Lane 208dd24a0c Minor cheatsheet edits. 2016-11-27 10:31:49 -05:00
Chris Lane df34774a7a Merge branch 'master' of https://github.com/notklaatu/cheat into notklaatu-master 2016-11-27 08:57:54 -05:00
Chris Lane 8d65424ffb README edit
Modified the README with regards to the environment variable changes
made in #294.
2016-11-27 08:54:33 -05:00
Chris Lane 597acec6ac `cheat` now honors `CHEAT_EDITOR` and `VISUAL` environment variables in
addition to `EDITOR`.
2016-11-27 08:54:33 -05:00
Chris Allen Lane 7d4150b937 Merge pull request #291 from proinsias/patch-1
Create MANIFEST.in
2016-11-27 08:53:45 -05:00
Chris Allen Lane 5df5b1ab49 Merge pull request #299 from jonlabelle/patch-1
Fix uninstall typo.
2016-11-27 08:46:55 -05:00
Chris Allen Lane f1c8017342 Merge pull request #304 from dufferzafar/sheets
Add aria2c sheet
2016-11-27 08:45:50 -05:00
Shadab Zafar 8f2912e5da Fix grammar of lsof 2016-11-27 08:43:37 -05:00
Shadab Zafar 3139796524 Update lsof sheet 2016-11-27 08:43:37 -05:00
Morgan Courbet bcd4563bf3 Add npm cheatsheet 2016-11-27 08:43:37 -05:00
rahul 5cd5387a47 Add cheery-pick to git cheat 2016-11-27 08:43:37 -05:00
rahul c8f0e6295b Add revert in git cheat 2016-11-27 08:43:37 -05:00
rahul 31e442d7f9 Add git stash cheat 2016-11-27 08:43:37 -05:00
Brutus 05400a92ed Added support for `~` and environment variables in `DEFAULT_CHEAT_DIR`
If the `DEFAULT_CHEAT_DIR` environment variable contains the `~` — as shortcut for the users home directory — or environment variables like `$HOME`, the program bails. This change allows the usage of both.
2016-11-24 16:14:37 +01:00
Shadab Zafar 034c1a2415 Add aria2c sheet 2016-10-15 00:02:45 +05:30
Jon LaBelle dab8645394 Fix uninstall type. 2016-10-02 16:23:42 -05:00
Chris Lane 352a760561 README edit
Modified the README with regards to the environment variable changes
made in #294.
2016-10-01 14:08:58 -04:00
Chris Lane 6be87e2d42 `cheat` now honors `CHEAT_EDITOR` and `VISUAL` environment variables in
addition to `EDITOR`.
2016-10-01 13:55:50 -04:00
Chris Lane 403d715127 Merge pull request #292 from rahulkavale/master
Add stash, cherry-pick, revert in git cheat
2016-09-30 20:40:20 -04:00
Chris Lane 0edd1450dc Merge pull request #293 from nagromc/npm-cheat
Add npm cheatsheet
2016-09-30 20:38:15 -04:00
Chris Lane d87a26ce4f Merge pull request #297 from dufferzafar/sheets
Update lsof sheet
2016-09-30 20:37:20 -04:00
Shadab Zafar cdf240b70e Fix grammar of lsof 2016-09-27 22:43:54 +05:30
Shadab Zafar 809c6d77bc Update lsof sheet 2016-09-27 21:23:39 +05:30
Klaatu be543450c7 Merge branch 'master' of github.com:notklaatu/cheat 2016-09-21 22:25:27 +12:00
Klaatu 9889d77adb xmlto cheatsheet 2016-09-21 22:24:47 +12:00
Klaatu 354376340f Missing man page #272 2016-09-10 14:17:01 +12:00
Morgan Courbet d82eee726c Add npm cheatsheet 2016-09-09 10:05:22 +02:00
Klaatu 9a23458a2d ffmpeg combine, add sqlite3 2016-09-09 12:05:08 +12:00
Klaatu 32802c2907 patch cheat 2016-09-04 09:48:01 +12:00
Klaatu 2a6d34de35 diff addition 2016-09-02 09:44:19 +12:00
Klaatu f1253031f2 bzip2 2016-09-01 22:28:28 +12:00
Klaatu 76fa9cfc23 urpm* mageia open mandriva 2016-09-01 22:01:01 +12:00
Klaatu 0a54b2a2ff updated emacs, ffmpeg. branched org-mode. added slack. 2016-09-01 12:10:21 +12:00
rahul 6a1742984c Add cheery-pick to git cheat 2016-08-28 08:26:55 +05:30
rahul 80d2a09456 Add revert in git cheat 2016-08-28 08:19:20 +05:30
rahul 5121fece91 Add git stash cheat 2016-08-28 08:13:08 +05:30
Francis T. O'Donovan e8d32102cb Create MANIFEST.in
I'm working on submitting this package to conda-forge. As part of this, I would like to include the license files in the MANIFEST.in for this project.
2016-08-25 20:31:13 -04:00
Chris Lane eff042d50b patch version bump 2016-08-05 15:18:52 -04:00
Chris Lane f000756f2c Resolved merge-conflict. 2016-08-05 15:15:22 -04:00
Chris Lane ef1dfb2168 Merge pull request #286 from poohzrn/master
Fix #281: Consistent description styles
2016-08-05 15:03:49 -04:00
Chris Lane 3c1b5c5860 Merge pull request #274 from ImmortalPC/master
[CHANGE] Add cheats for DD and SSH
2016-08-05 15:01:14 -04:00
Chris Lane 3494827403 Merge pull request #288 from rski/remove_prompt_function
Remove prompt_yes_or_no
2016-08-05 14:58:27 -04:00
Chris Lane f0879831c5 Merge pull request #284 from dufferzafar/ansi
Add ANSI Color Chart
2016-08-05 14:57:18 -04:00
Chris Lane 8c056d09e9 Merge pull request #285 from dufferzafar/less
Update less cheatsheet
2016-08-05 14:56:14 -04:00
Chris Lane dd8d0ae58b Merge pull request #282 from dufferzafar/master
Update git cheatsheet
2016-08-05 14:54:24 -04:00
Chris Lane 6cc99a2b6a Merge pull request #283 from dufferzafar/cpdf
Add cpdf cheatsheet
2016-08-05 14:52:47 -04:00
Shadab Zafar 70ad22c12e git: Undo parts of last commit
Added from: http://stackoverflow.com/a/4248269/2043048
2016-07-20 14:34:29 +05:30
Romanos Skiadas b28e6a84ac Remove prompt_yes_or_no
This function is not used anywhere in the code.
2016-07-19 15:16:12 +03:00
Romanos Skiadas bf4f1c80ca Style fixes
Don't use * imports, fix indentations, other small fixes
2016-07-19 14:50:51 +03:00
Lasse Nielsen 9cf1a5761d Fix #281: Consistent description styles 2016-07-18 17:25:06 +02:00
Shadab Zafar 13fdcec332 Add cheat on how to dump content of less to file 2016-07-16 18:47:19 +05:30
Shadab Zafar b2feeab4e8 Add ANSI Color Chart 2016-07-16 18:41:17 +05:30
Shadab Zafar c4b7fd507f Add cpdf cheatsheet
cpdf is a tool to slice and dice PDFs

I created this sheet on a boring day by copying text from
[here](http://www.coherentpdf.com/usage-examples.html) and then
cleaning things up a bit.
2016-07-16 18:37:12 +05:30
Shadab Zafar b77aa0974b Update git cheatsheet 2016-07-16 18:21:07 +05:30
Chris Lane 3be95142ed v2.1.25 2016-05-29 21:47:22 -04:00
Chris Lane bb324e94a4 Issue #278
Fixed a technical innacuracy in the `crontab` cheatsheet.
2016-05-29 21:03:58 -04:00
Chris Lane 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
Chris Lane 905006f09c Merge pull request #280 from ybudimirov/ncdu
Ncdu cheatsheet
2016-05-29 20:59:16 -04:00
Chris Lane 06a368fb1f Merge pull request #276 from oliworx/patch-1
add cheatsheet for subversion (svn)
2016-05-29 20:58:16 -04:00
Yuriy Budimirov 6a9422502a Ncdu cheatsheet 2016-05-26 13:21:20 +03:00
caorong 41332f1d8a update timestamp convert cheat 2016-04-27 10:57:44 +08:00
ImmortalPC b6d54b135c [CHANGE & ADD] Removing typo from SSH. Adding tip for emacs and ssh. Adding cheat for xxd 2016-04-19 13:45:47 +02:00
Oliver Kurmis a3c682729e add cheatsheet for subversion (svn) 2016-04-13 17:27:37 +02:00
ImmortalPC f38da23741 [CHANGE] Add cheats for DD and SSH 2016-04-05 17:09:49 +02:00
Chris Lane 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
Chris Lane 09f821835c v2.1.23 2016-03-24 12:39:20 -04:00
Chris Lane 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
Chris Lane 869e7095f3 Merge pull request #269 from VirenMohindra/update-readme
trivial readme.md correction
2016-03-24 12:34:51 -04:00
Viren Mohindra 6dd8faf26a trivial readme.md correction
availble -> available
2016-03-18 03:23:30 -05:00
Pierre Poulain c0585ee55c Append virtualenvwrapper commands 2016-03-15 17:34:28 +01:00
Pierre Poulain c0d755e102 Add virtualenv 2016-03-15 17:28:07 +01:00
Pierre Poulain 49e1fc46f4 Add --user and --upgrade options 2016-03-15 17:15:06 +01:00
Chris Lane 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
Chris Lane 3b73b9b06b Merge pull request #264 from JindrichPilar/master
Added xrandr cheat
2016-03-14 14:17:14 -04:00
Chris Lane 74d1bc1ec7 Merge pull request #263 from omsobliga/master
Add examples for tmux
2016-03-14 14:14:55 -04:00
Chris Lane 78c76dc75a Merge pull request #267 from VHarisop/nmcli
Added nmcli cheatsheet
2016-03-14 14:14:21 -04:00
VHarisop f204ed66e1 Added WiFi-specific commands 2016-03-11 03:41:26 +02:00
VHarisop 29c53b754d Added nmcli cheatsheet 2016-03-08 04:06:44 +02:00
mheadroom 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
Jindrich Pilar 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
Chris Lane c0aad062ec Trivial README edit. 2016-02-18 15:40:18 -05:00
Chris Lane 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
Chris Lane c1d4c768de CONTRIBUTING.md
- Added a paragraph on licensing
- Trivial edits
2016-02-17 14:12:58 -05:00
Chris Lane a063c7bb64 Licensing
Dual-licensed `cheat` under both the GPL3 and MIT licenses.
2016-02-15 17:13:20 -05:00
Chris Lane d058ee087e Patch version bump. 2016-02-15 13:22:01 -05:00
Chris Lane 35c38be120 Merge pull request #253 from groig/master
Updated dd cheatsheet with the built-in progress functionality
2016-02-15 13:18:49 -05:00
Chris Lane cc86f23dba Merge pull request #256 from Mic92/patch-11
mount: mount iso
2016-02-15 13:17:47 -05:00
Chris Lane 54086bf8d6 Minor formatting changes to the nkf cheatsheet. 2016-02-15 13:15:53 -05:00
Chris Lane 429ed25aba Merge branch 'add-nkf-plugin' of https://github.com/shigemk2/cheat into shigemk2-add-nkf-plugin
* 'add-nkf-plugin' of https://github.com/shigemk2/cheat:
  Add nkf plugin
2016-02-15 13:14:58 -05:00
Chris Lane 128f28ac99 Merge pull request #254 from dufferzafar/sheets
Add httpie cheatsheet
2016-02-15 13:13:09 -05:00
Chris Lane 420a320839 Merge pull request #257 from cedric-dufour/master
New Sheet Added: MDADM (Linux RAID)
2016-02-15 13:11:56 -05:00
Cédric Dufour e3f435a78a New Sheet Added: MDADM (Linux RAID) 2016-01-26 08:55:36 +01:00
Jörg Thalheim dcc01bb980 mount: mount iso 2016-01-21 19:01:48 +01:00
Shadab Zafar 6f27a3e614 Add httpie cheatsheet
Converted from it's Readme: https://github.com/jkbrzt/httpie
2016-01-13 18:18:43 +05:30
Roig 36b078c9f6 Updated dd cheatsheet with the built-in progress functionality 2016-01-12 09:27:37 -05:00
shigemk2 73c1842866 Add nkf plugin 2016-01-11 13:28:25 +09:00
Chris Lane ceb3707d28 Trivial whitespace change 2016-01-04 21:54:38 -05:00
Chris Lane f9e8e041ef patch version bump. 2016-01-04 21:50:40 -05:00
Chris Lane b59e83e706 Merge pull request #245 from shigemk2/add-mysql-statements
Add Basic MySQL Statements
2016-01-04 20:17:22 -05:00
Chris Lane bfa813a0b8 Merge pull request #246 from rognan/master
Add cheat for lowercasing files and folders in current directory
2016-01-04 20:15:58 -05:00
Chris Lane c179ef64c6 Merge pull request #250 from shigemk2/add-for-plugin
Add "for" plugin
2016-01-04 20:13:21 -05:00
Chris Lane 14a4ee867e Merge pull request #219 from dufferzafar/golang
Add a golang version to the Related Projects list
2016-01-04 20:10:10 -05:00
shigemk2 70ef6239fe Add for plugin 2016-01-01 00:15:51 +09:00
Thor Andreas Rognan 1b55a238df Add cheat for lowercasing files and folders in current directory 2015-12-15 14:57:37 +01:00
shigemk2 eeb2c92576 Add Basic MySQL Statements 2015-12-06 15:11:42 +09:00
Kristiyan Nikolov c1fbeffde5 Adds support for more lexers
If you use cheat to save some programming snippets this might be useful.

For example if you have a long list of SQL Query cheats, you can do the
following:

Enter ```sql in the beginning of the file containing the cheats content.

Example file: sql
```sql

SELECT 17 & 16 = 16;
SELECT 2+4+8+16 & 1 = 0;
2015-12-02 14:47:13 +02:00
Chris Lane b6137cac8b patch version bump 2015-11-22 11:28:32 -05:00
Chris Lane 711fd02195 Trivial edit to cheatsheet 2015-11-22 11:26:15 -05:00
Chris Lane 248f5a0526 Merge branch 'master' of https://github.com/yafp/cheat into yafp-master
* 'master' of https://github.com/yafp/cheat:
  20151102 - Added 3 more cheats into the new apt cheatsheet
  20151102 - Adding a cheatsheet for at (apt vs apt-get)
2015-11-22 11:25:47 -05:00
Chris Lane 8e7ce511bd Merge pull request #242 from vyorkin/patch-1
Update docker cheat
2015-11-22 11:23:59 -05:00
Chris Lane ba7ebc8392 Merge pull request #241 from Mic92/patch-10
ping: MTU check
2015-11-22 11:23:15 -05:00
Vasiliy Yorkin 6670785a2a Update docker 2015-11-17 15:35:03 +03:00
Jörg Thalheim aabaab1185 ping: MTU check 2015-11-11 21:21:24 +01:00
Florian Pöck 22eb1f2df4 20151102 - Added 3 more cheats into the new apt cheatsheet 2015-11-02 14:51:37 +01:00
Florian Pöck a519ea163e 20151102 - Adding a cheatsheet for at (apt vs apt-get) 2015-11-02 14:28:30 +01:00
Chris Lane 6a2eda80d4 patch version bump. 2015-10-15 18:57:33 -04:00
Chris Lane 20d52376f9 Undid packaging refactoring. 2015-10-15 18:56:34 -04:00
Chris Lane 3b2848668a patch version bump. 2015-10-15 18:40:18 -04:00
Chris Lane a8f91d4224 Minor tweaks. 2015-10-15 18:37:02 -04:00
Chris Lane e0adbbc5b9 Merge branch 'setup-improvements' of https://github.com/youtux/cheat into youtux-setup-improvements
* 'setup-improvements' of https://github.com/youtux/cheat:
  Use entry_points instead of scripts in setup.py
  Improve setup.py description
  Exploit setuptools package_data to include cheats
  Use find_packages from setuptools to identify packages
  Use setuptools insted of distutils.
2015-10-15 18:33:02 -04:00
Chris Lane 905f12a279 Patch version bump. 2015-10-15 18:30:25 -04:00
Chris Lane 0c24bbbaaf Merge pull request #236 from bmaca/master
Added one more MySql cheat
2015-10-15 18:27:20 -04:00
Chris Lane baa782b8ce Merge pull request #238 from summer-wu/master
create tr cheatsheet
2015-10-15 18:26:04 -04:00
Chris Lane 740358e4c0 Merge pull request #239 from rognan/master
Add cheat for ls-command
2015-10-15 18:23:53 -04:00
thor andreas 2ebc8c9fac Add two cheats for ls-command
Display directories only
2015-10-07 20:21:01 +02:00
summer-wu f3ecf76239 Update tr 2015-10-07 21:20:06 +08:00
summer-wu 84df17a0f6 fix some typo 2015-10-07 21:14:45 +08:00
summer-wu 91c28712e6 Update tr 2015-10-07 11:39:27 +08:00
summer-wu 8eda2266bc Create tr 2015-10-07 11:34:01 +08:00
bmaca 47fd7c90f4 Added one more MySql cheat 2015-09-22 01:42:40 -05:00
Chris Lane cafa2fb2fd Version 2.1.15
Added new cheatsheets.
2015-09-09 18:06:23 -04:00
Chris Lane 9c31ba5102 Merge pull request #233 from cedric-dufour/master
A few additional cheats
2015-09-09 17:58:58 -04:00
Chris Lane da65ea32d8 Merge pull request #234 from t-stark/master
New cheatsheets
2015-09-09 17:56:52 -04:00
t-stark e1aec49ed6 modified cheatsheets 2015-09-07 20:57:17 -05:00
Blake Huber ab86ac970d new cheatsheets 2015-09-07 20:56:09 -05:00
Cedric Dufour 90f66ccaf3 (fixed typo) 2015-09-04 11:16:18 +02:00
Cedric Dufour f63406bc3e Lock file 2015-09-04 11:09:39 +02:00
Cedric Dufour b3a93bc128 Retrieve N-th piped command exit status 2015-09-04 10:16:54 +02:00
Cedric Dufour 8f0d2e9fc3 Specify output separator character 2015-09-04 10:12:46 +02:00
Cedric Dufour 4c2d0d2d8e Generate Diffie-Hellman parameters 2015-09-04 10:10:32 +02:00
Cedric Dufour ac445388d9 Keep old configuration during update 2015-09-04 10:08:42 +02:00
Cedric Dufour 705601f0b1 Added parallel (multi-threaded) processing 2015-09-04 10:06:37 +02:00
Chris Lane 2d7fdb5425 Patch version bump 2015-08-25 19:10:28 -04:00
Aravinth Panchadcharam 4512a61086 New Sheet Added: Vagrant - A portable development environment 2015-08-24 21:07:55 +02:00
Chris Lane 8096ca7f90 Version bump
2.1.13
2015-08-06 21:15:26 -04:00
Josef Glatz 511c57f582 [DOCUMENTATION] Cmd 'ssh' copy files with gzipped on the fly 2015-08-06 14:46:21 +02:00
Josef Glatz 6ca4b6c8e7 [DOCUMENTATION] Cmd 'du' cumulative size cheat 2015-08-06 14:39:22 +02:00
Chris Lane 9c696cc430 v2.1.12 2015-08-04 20:56:23 -04:00
Chris Lane 001fdb0eda Merge branch 'sheets' of https://github.com/dufferzafar/chris-cheat into dufferzafar-sheets
* 'sheets' of https://github.com/dufferzafar/chris-cheat:
  New Sheet: ffmpeg - fast audio video encoder
  Git cheats: Shallow clones & Submodule update
  Git cheats: Change date of existing commit
2015-08-04 20:55:33 -04:00
Shadab Zafar af354ba6a3 New Sheet: ffmpeg - fast audio video encoder 2015-08-03 17:51:52 +05:30
Shadab Zafar 196875a828 Git cheats: Shallow clones & Submodule update 2015-08-03 17:50:23 +05:30
Shadab Zafar 6cf69bc190 Git cheats: Change date of existing commit 2015-08-03 17:50:12 +05:30
Chris Lane 6b736083c3 v2.1.11
- Merged PR #227

- Patch version bump
2015-07-31 15:19:22 -04:00
Shadab Zafar b477df20b2 New Sheet: man - an interface to reference manuals 2015-07-24 18:54:41 +05:30
Shadab Zafar 6304a65399 New Sheet: numfmt - convert numbers from/to human-readable strings 2015-07-24 18:53:50 +05:30
Shadab Zafar bc40ced2c1 New Sheet: csplit - used to split a file into parts 2015-07-24 18:51:55 +05:30
Chris Lane 74dfd51601 Version bump 2015-07-09 18:42:00 -04:00
Chris Lane 51b0b12663 Minor addition to git cheatsheet 2015-07-09 18:41:00 -04:00
Shadab Zafar ae45265317 Two new cheats in date and ln sheets 2015-06-19 23:18:59 +05:30
Shadab Zafar 97dd037538 Fixup grammar in grep cheatsheet 2015-06-19 23:18:27 +05:30
Shadab Zafar 402d15e8d8 More git cheats 2015-06-19 23:11:48 +05:30
Chris Lane 8a07a1e96c Version bump 2015-06-18 18:30:06 -04:00
Chris Lane aa9b3e8bb4 Merge pull request #225 from Mic92/master
add zip/unzip
2015-06-18 18:19:53 -04:00
Chris Lane 9db66dbaeb Merge pull request #217 from agxcul/master
add command [more] and some more example for command [awk]
2015-06-18 18:18:56 -04:00
Chris Lane c906a394cc Merge pull request #221 from laomaiweng/cheatsheet-rpm-enhancements
`rpm` cheatsheet: small enhancements
2015-06-18 18:15:51 -04:00
Chris Lane 6ca560c1b7 Merge pull request #220 from dufferzafar/sheets
Added jq, jrnl sheets. Updated Git and Markdown.
2015-06-18 18:14:59 -04:00
Chris Lane e75e9bb211 Whitespace edit 2015-06-18 18:06:25 -04:00
Chris Lane dd93473464 Merge pull request #216 from salvorapi/master
First version of nova cheat
2015-06-18 18:05:39 -04:00
Chris Lane 0d6de64fc0 Merge pull request #224 from Mic92/patch-9
Add weechat
2015-06-18 18:02:43 -04:00
Chris Lane 26991977fd Merge pull request #222 from myfavouritekk/pip
Add the cheat sheet for pip.
2015-06-18 18:02:00 -04:00
Chris Lane 878e266f5b Merge pull request #223 from Raizo62/master
remove useless blank
2015-06-18 18:00:47 -04:00
Chris Lane 55e7181d87 Merge pull request #218 from idf-archive/master
fix typo
2015-06-18 17:59:13 -04:00
Jörg Thalheim 59accc64f7 add zip/unzip 2015-06-13 09:40:59 +02:00
Jörg Thalheim c18e475fd1 Add weechat 2015-06-08 21:03:33 +02:00
raizo62 2166a57ccd remove useless blank 2015-06-04 17:53:48 +00:00
Kai KANG b2e1400bb6 Update pip: dealing with requirement files
add `pip freeze > requirements.txt` and `pip install -r requirements.txt`.
2015-06-02 07:30:34 +08:00
Kai KANG 30a49d3596 Add the cheat sheet for pip. 2015-05-28 13:46:28 +08:00
quentin 86ba1ad9e6 cheat/cheatsheets/rpm: small enhancements 2015-05-21 23:17:34 +02:00
Shadab Zafar 820de5dba8 Add Image syntax to markdown 2015-05-20 01:46:03 +05:30
Shadab Zafar 33f0dc346b jrnl is an application to store your life journal
...in plain text files

https://github.com/maebert/jrnl
2015-05-20 01:46:03 +05:30
Shadab Zafar 889c8ef8fe Added two funky git cheats! 2015-05-20 01:46:03 +05:30
Shadab Zafar 434802341e jq is a command line json processor
Here is the awesome manual: http://stedolan.github.io/jq/manual/
2015-05-20 01:45:52 +05:30
Shadab Zafar d897a8a8ea Add a golang version to the Related Projects list 2015-05-19 22:40:24 +05:30
Daniel D. Zhang aba6fe5043 fix typo
reference: 
-O file
--output-document=file
    The documents will not be written to the appropriate files, but all will be concatenated together and
    written to file.  If - is used as file, documents will be printed to standard output, disabling link
    conversion.  (Use ./- to print to a file literally named -.)

    Use of -O is not intended to mean simply "use the name file instead of the one in the URL;" rather,
    it is analogous to shell redirection: wget -O file http://foo is intended to work like wget -O -
    http://foo > file; file will be truncated immediately, and all downloaded content will be written
    there.

    For this reason, -N (for timestamp-checking) is not supported in combination with -O: since file is
    always newly created, it will always have a very new timestamp. A warning will be issued if this
    combination is used.

    Similarly, using -r or -p with -O may not work as you expect: Wget won't just download the first file
    to file and then download the rest to their normal names: all downloaded content will be placed in
    file. This was disabled in version 1.11, but has been reinstated (with a warning) in 1.11.2, as there
    are some cases where this behavior can actually have some use.

    Note that a combination with -k is only permitted when downloading a single document, as in that case
    it will just convert all relative URIs to external ones; -k makes no sense for multiple URIs when
    they're all being downloaded to a single file; -k can be used only when the output is a regular file.
2015-05-10 13:54:49 +08:00
agxcul 86d1ce58a9 add command [more] and some more example for command [awk] 2015-05-06 15:14:49 +08:00
Salvo Rapisarda fd7f31bf16 First version of nova cheat 2015-05-04 15:14:07 +02:00
Chris Lane 417f47f037 Version bump 2015-04-15 16:43:47 -04:00
Chris Lane f39fad1324 Merge pull request #212 from myfavouritekk/paste
Add a cheatsheet for paste.
2015-04-15 16:40:43 -04:00
Chris Lane 4cf03c5363 Merge pull request #211 from Aayush-Kasurde/master
Added yum list command cheat
2015-04-15 16:38:52 -04:00
Kai KANG afcd74c8bf Add cheatsheet for paste. 2015-03-31 17:52:08 +08:00
Aayush Kasurde e27ce3f1f9 Added yum list command cheat 2015-03-10 08:04:47 +05:30
Chris Lane e9b8f04c24 Bug fix
A bug was introduced in 2.1.6 that would prevent user-defined
cheatsheets from being edited more than once.
2015-02-11 21:45:32 -05:00
Chris Lane d14c759a48 Merge pull request #210 from chrisallenlane/issue-180
Issue #180
2015-02-11 21:05:12 -05:00
Chris Lane c70dc002fa Issue #180
Now, whenever a cheatsheet is to be edited, if that cheatsheet does not
exist on the `DEFAULT_SHEET_PATH`, it is first copied there before being
opened for editing. This prevents system-wide cheatsheets from being
edited when using `cheat` as `root`.
2015-02-11 21:02:45 -05:00
Chris Lane ff8ba4e717 Merge pull request #209 from chrisallenlane/edit-after-copy
Resolves #207
2015-02-10 19:37:05 -05:00
Chris Lane 718ec4f685 Resolves #207
- Solves issue whereby global cheatsheets fail to save after editing

- `cheat` no longer asks a user if a global cheatsheet should be copied
  locally before editing, and instead just silently does so.
2015-02-10 19:35:14 -05:00
Chris Lane 3d8343a878 Version bump 2015-02-09 18:10:08 -05:00
Chris Lane a5352ad9e5 Trivial edits to uniq cheatsheet 2015-02-09 18:07:17 -05:00
Chris Lane f5ee3d5e29 Merge branch 'master' of https://github.com/shigemk2/cheat into shigemk2-master
* 'master' of https://github.com/shigemk2/cheat:
  Refer sort -u
  Fix dc option
  uniq: add examples
2015-02-09 18:06:20 -05:00
Chris Lane e64babc972 Trivial edits to cheatsheets. 2015-02-09 18:05:13 -05:00
Chris Lane cd465ef84f Merge branch 'master' of https://github.com/Aayush-Kasurde/cheat into Aayush-Kasurde-master
* 'master' of https://github.com/Aayush-Kasurde/cheat:
  Added perforce commands
  Added udisksctl
  Added Journalctl commands
  Added zoneadm commands
2015-02-09 18:03:28 -05:00
Chris Lane 96e26a38d4 Added newline to end of dnf file. 2015-02-09 18:01:40 -05:00
Chris Lane 998ed00424 Merge branch 'dnf' of https://github.com/amitsaha/cheat into amitsaha-dnf
* 'dnf' of https://github.com/amitsaha/cheat:
  Add cheatsheet for dnf
2015-02-09 18:00:38 -05:00
Chris Lane 1fd03d3305 Merge pull request #205 from thylong/dpkg
Add cheat for dpkg
2015-02-09 17:58:24 -05:00
Chris Lane 77cba58599 Merge pull request #203 from amitsaha/docker_update
docker: add 'docker exec'
2015-02-09 17:57:39 -05:00
Chris Lane c5a738a8b1 Merge pull request #199 from Mic92/patch-8
ip: better route example
2015-02-09 17:56:57 -05:00
Aayush Kasurde 250a265b25 Added perforce commands 2015-01-27 22:07:43 +05:30
Amit Saha c232721119 Add cheatsheet for dnf 2015-01-22 16:30:49 +10:00
Aayush Kasurde 55492c50ac Added udisksctl 2015-01-20 21:34:11 +05:30
Théotime Lévêque d9df28e3f2 Update dpkg 2015-01-20 12:22:47 +01:00
Theotime LEVEQUE 710c7bcf70 Add cheat for dpkg 2015-01-20 01:42:26 +01:00
Aayush Kasurde efba736aee Added Journalctl commands 2015-01-18 20:03:42 +05:30
Aayush Kasurde 95774db7c5 Added zoneadm commands 2015-01-14 21:12:23 +05:30
Amit Saha da63c5d27f docker: add 'docker exec' 2015-01-13 13:51:35 +10:00
shigemk2 2e1cda114a Refer sort -u 2015-01-12 21:29:35 +09:00
shigemk2 353fe48d60 Fix dc option 2015-01-12 21:17:55 +09:00
shigemk2 a96bd229a6 uniq: add examples 2015-01-10 00:28:18 +09:00
Alessio Bogon 4d57f529c9 Use entry_points instead of scripts in setup.py
This allows a fine-grained control of the dependencies, because it generates a wrapper script
that calls the specifiend function (i.e., main inside cheat/app.py)
2015-01-09 00:36:49 +01:00
Alessio Bogon 5caa8fed38 Improve setup.py description 2015-01-09 00:22:57 +01:00
Alessio Bogon 69f91e0cf4 Exploit setuptools package_data to include cheats 2015-01-09 00:08:38 +01:00
Alessio Bogon fdbc8909cc Use find_packages from setuptools to identify packages 2015-01-08 23:58:35 +01:00
Alessio Bogon 76a91ce358 Use setuptools insted of distutils.
Distutils is old and basic, setuptools is the current preferred way.
See https://python-packaging-user-guide.readthedocs.org/en/latest/current.html
2015-01-08 23:54:12 +01:00
Chris Lane be2cb6e632 Version 2.1.3
- Added new cheatsheets
- Appended to `.gitignore`
2015-01-05 20:44:25 -05:00
Chris Lane 426b0aaa0d Merge pull request #197 from thylong/gzip
Add cheat for gzip
2015-01-05 20:39:35 -05:00
Chris Lane 9041c57d21 Merge pull request #200 from poliveira89/new_cheatsheets
New cheatsheets
2015-01-05 20:38:19 -05:00
thylong 1dd9d85509 Merge branch 'gzip' of github.com:thylong/cheat into gzip
Conflicts:
	cheat/cheatsheets/gzip
2015-01-04 13:24:52 +01:00
thylong 9506167af8 Add cheat for gzip 2015-01-04 13:23:47 +01:00
Jörg Thalheim 27482cbabd ip: better route example
Assigning a subnet is already covered in the example below. Setting a default route via a router is the most common use case of ip route IMHO.
2014-12-30 10:07:13 +01:00
Chris Lane 03bb651bf0 Version bump 2014-12-29 21:45:46 -05:00
Chris Lane c4a5ca3900 Merge pull request #198 from thylong/ssh_forward
Update cheat ssh
2014-12-29 21:37:39 -05:00
Chris Lane 03b587f538 Merge pull request #196 from Mic92/patch-7
ss
2014-12-29 21:36:59 -05:00
Chris Lane e4d7722476 Merge pull request #195 from Mic92/master
ping6
2014-12-29 21:36:18 -05:00
Chris Lane 3807aa5433 Merge pull request #194 from Mic92/patch-6
smbclient
2014-12-29 21:35:40 -05:00
thylong 956ce7fadd Update cheat ssh 2014-12-26 15:57:01 -05:00
thylong 57876ed0e7 Add cheat for gzip 2014-12-26 15:46:48 -05:00
Jörg Thalheim 58abb16ca1 ss 2014-12-24 21:42:16 +01:00
Jörg Thalheim 54e30022f0 ping6: fix typo 2014-12-24 18:08:56 +01:00
Jörg Thalheim c412cd0534 ping6 2014-12-24 12:15:03 +01:00
Jörg Thalheim 2d67038188 smbclient 2014-12-24 12:13:29 +01:00
Chris Lane 603bc360c0 Version bump 2014-12-09 20:58:15 -05:00
poliveira89 61458933eb SSH cheatsheet updated: support for SSH tunnels between local host and remote host 2014-11-22 17:15:51 +00:00
poliveira89 6f579f9234 New cheatsheet added: support for Bower (frontend package manager) 2014-11-22 17:09:58 +00:00
135 changed files with 3109 additions and 939 deletions

3
.gitignore vendored
View File

@ -1,2 +1,5 @@
*.pyc
MANIFEST
build
cheat.egg-info
dist

View File

@ -1,3 +0,0 @@
Changelog
=========

View File

@ -1,9 +1,29 @@
Contributing
============
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 against the
`master` branch.
Python code show follow the standards laid out by [PEP 8][].
## Python standards ##
Python code should conform to [PEP 8][].
## Cheatsheet Format ##
Please pattern your cheatsheets after the following:
```sh
# To extract an uncompressed archive:
tar -xvf /path/to/foo.tar
# To create an uncompressed archive:
tar -cvf /path/to/foo.tar /path/to/foo/
# To extract a .gz archive:
tar -xzvf /path/to/foo.tgz
```
If you are submitting a cheatsheet that contains side-by-side columns of text,
please align the columns using spaces rather than tabs.
[PEP 8]: http://legacy.python.org/dev/peps/pep-0008/

680
LICENSE
View File

@ -1,678 +1,2 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
Copyright (C) 2007 Free Software Foundation, Inc. [http://fsf.org/]
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The GNU General Public License is a free, copyleft license for
software and other kinds of works.
The licenses for most software and other practical works are designed
to take away your freedom to share and change the works. By contrast,
the GNU General Public License is intended to guarantee your freedom to
share and change all versions of a program--to make sure it remains free
software for all its users. We, the Free Software Foundation, use the
GNU General Public License for most of our software; it applies also to
any other work released this way by its authors. You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
them if you wish), that you receive source code or can get it if you
want it, that you can change the software or use pieces of it in new
free programs, and that you know you can do these things.
To protect your rights, we need to prevent others from denying you
these rights or asking you to surrender the rights. Therefore, you have
certain responsibilities if you distribute copies of the software, or if
you modify it: responsibilities to respect the freedom of others.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must pass on to the recipients the same
freedoms that you received. You must make sure that they, too, receive
or can get the source code. And you must show them these terms so they
know their rights.
Developers that use the GNU GPL protect your rights with two steps:
(1) assert copyright on the software, and (2) offer you this License
giving you legal permission to copy, distribute and/or modify it.
For the developers' and authors' protection, the GPL clearly explains
that there is no warranty for this free software. For both users' and
authors' sake, the GPL requires that modified versions be marked as
changed, so that their problems will not be attributed erroneously to
authors of previous versions.
Some devices are designed to deny users access to install or run
modified versions of the software inside them, although the manufacturer
can do so. This is fundamentally incompatible with the aim of
protecting users' freedom to change the software. The systematic
pattern of such abuse occurs in the area of products for individuals to
use, which is precisely where it is most unacceptable. Therefore, we
have designed this version of the GPL to prohibit the practice for those
products. If such problems arise substantially in other domains, we
stand ready to extend this provision to those domains in future versions
of the GPL, as needed to protect the freedom of users.
Finally, every program is threatened constantly by software patents.
States should not allow patents to restrict development and use of
software on general-purpose computers, but in those that do, we wish to
avoid the special danger that patents applied to a free program could
make it effectively proprietary. To prevent this, the GPL assures that
patents cannot be used to render the program non-free.
The precise terms and conditions for copying, distribution and
modification follow.
TERMS AND CONDITIONS
0. Definitions.
"This License" refers to version 3 of the GNU General Public License.
"Copyright" also means copyright-like laws that apply to other kinds of
works, such as semiconductor masks.
"The Program" refers to any copyrightable work licensed under this
License. Each licensee is addressed as "you". "Licensees" and
"recipients" may be individuals or organizations.
To "modify" a work means to copy from or adapt all or part of the work
in a fashion requiring copyright permission, other than the making of an
exact copy. The resulting work is called a "modified version" of the
earlier work or a work "based on" the earlier work.
A "covered work" means either the unmodified Program or a work based
on the Program.
To "propagate" a work means to do anything with it that, without
permission, would make you directly or secondarily liable for
infringement under applicable copyright law, except executing it on a
computer or modifying a private copy. Propagation includes copying,
distribution (with or without modification), making available to the
public, and in some countries other activities as well.
To "convey" a work means any kind of propagation that enables other
parties to make or receive copies. Mere interaction with a user through
a computer network, with no transfer of a copy, is not conveying.
An interactive user interface displays "Appropriate Legal Notices"
to the extent that it includes a convenient and prominently visible
feature that (1) displays an appropriate copyright notice, and (2)
tells the user that there is no warranty for the work (except to the
extent that warranties are provided), that licensees may convey the
work under this License, and how to view a copy of this License. If
the interface presents a list of user commands or options, such as a
menu, a prominent item in the list meets this criterion.
1. Source Code.
The "source code" for a work means the preferred form of the work
for making modifications to it. "Object code" means any non-source
form of a work.
A "Standard Interface" means an interface that either is an official
standard defined by a recognized standards body, or, in the case of
interfaces specified for a particular programming language, one that
is widely used among developers working in that language.
The "System Libraries" of an executable work include anything, other
than the work as a whole, that (a) is included in the normal form of
packaging a Major Component, but which is not part of that Major
Component, and (b) serves only to enable use of the work with that
Major Component, or to implement a Standard Interface for which an
implementation is available to the public in source code form. A
"Major Component", in this context, means a major essential component
(kernel, window system, and so on) of the specific operating system
(if any) on which the executable work runs, or a compiler used to
produce the work, or an object code interpreter used to run it.
The "Corresponding Source" for a work in object code form means all
the source code needed to generate, install, and (for an executable
work) run the object code and to modify the work, including scripts to
control those activities. However, it does not include the work's
System Libraries, or general-purpose tools or generally available free
programs which are used unmodified in performing those activities but
which are not part of the work. For example, Corresponding Source
includes interface definition files associated with source files for
the work, and the source code for shared libraries and dynamically
linked subprograms that the work is specifically designed to require,
such as by intimate data communication or control flow between those
subprograms and other parts of the work.
The Corresponding Source need not include anything that users
can regenerate automatically from other parts of the Corresponding
Source.
The Corresponding Source for a work in source code form is that
same work.
2. Basic Permissions.
All rights granted under this License are granted for the term of
copyright on the Program, and are irrevocable provided the stated
conditions are met. This License explicitly affirms your unlimited
permission to run the unmodified Program. The output from running a
covered work is covered by this License only if the output, given its
content, constitutes a covered work. This License acknowledges your
rights of fair use or other equivalent, as provided by copyright law.
You may make, run and propagate covered works that you do not
convey, without conditions so long as your license otherwise remains
in force. You may convey covered works to others for the sole purpose
of having them make modifications exclusively for you, or provide you
with facilities for running those works, provided that you comply with
the terms of this License in conveying all material for which you do
not control copyright. Those thus making or running the covered works
for you must do so exclusively on your behalf, under your direction
and control, on terms that prohibit them from making any copies of
your copyrighted material outside their relationship with you.
Conveying under any other circumstances is permitted solely under
the conditions stated below. Sublicensing is not allowed; section 10
makes it unnecessary.
3. Protecting Users' Legal Rights From Anti-Circumvention Law.
No covered work shall be deemed part of an effective technological
measure under any applicable law fulfilling obligations under article
11 of the WIPO copyright treaty adopted on 20 December 1996, or
similar laws prohibiting or restricting circumvention of such
measures.
When you convey a covered work, you waive any legal power to forbid
circumvention of technological measures to the extent such circumvention
is effected by exercising rights under this License with respect to
the covered work, and you disclaim any intention to limit operation or
modification of the work as a means of enforcing, against the work's
users, your or third parties' legal rights to forbid circumvention of
technological measures.
4. Conveying Verbatim Copies.
You may convey verbatim copies of the Program's source code as you
receive it, in any medium, provided that you conspicuously and
appropriately publish on each copy an appropriate copyright notice;
keep intact all notices stating that this License and any
non-permissive terms added in accord with section 7 apply to the code;
keep intact all notices of the absence of any warranty; and give all
recipients a copy of this License along with the Program.
You may charge any price or no price for each copy that you convey,
and you may offer support or warranty protection for a fee.
5. Conveying Modified Source Versions.
You may convey a work based on the Program, or the modifications to
produce it from the Program, in the form of source code under the
terms of section 4, provided that you also meet all of these conditions:
a) The work must carry prominent notices stating that you modified
it, and giving a relevant date.
b) The work must carry prominent notices stating that it is
released under this License and any conditions added under section
7. This requirement modifies the requirement in section 4 to
"keep intact all notices".
c) You must license the entire work, as a whole, under this
License to anyone who comes into possession of a copy. This
License will therefore apply, along with any applicable section 7
additional terms, to the whole of the work, and all its parts,
regardless of how they are packaged. This License gives no
permission to license the work in any other way, but it does not
invalidate such permission if you have separately received it.
d) If the work has interactive user interfaces, each must display
Appropriate Legal Notices; however, if the Program has interactive
interfaces that do not display Appropriate Legal Notices, your
work need not make them do so.
A compilation of a covered work with other separate and independent
works, which are not by their nature extensions of the covered work,
and which are not combined with it such as to form a larger program,
in or on a volume of a storage or distribution medium, is called an
"aggregate" if the compilation and its resulting copyright are not
used to limit the access or legal rights of the compilation's users
beyond what the individual works permit. Inclusion of a covered work
in an aggregate does not cause this License to apply to the other
parts of the aggregate.
6. Conveying Non-Source Forms.
You may convey a covered work in object code form under the terms
of sections 4 and 5, provided that you also convey the
machine-readable Corresponding Source under the terms of this License,
in one of these ways:
a) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by the
Corresponding Source fixed on a durable physical medium
customarily used for software interchange.
b) Convey the object code in, or embodied in, a physical product
(including a physical distribution medium), accompanied by a
written offer, valid for at least three years and valid for as
long as you offer spare parts or customer support for that product
model, to give anyone who possesses the object code either (1) a
copy of the Corresponding Source for all the software in the
product that is covered by this License, on a durable physical
medium customarily used for software interchange, for a price no
more than your reasonable cost of physically performing this
conveying of source, or (2) access to copy the
Corresponding Source from a network server at no charge.
c) Convey individual copies of the object code with a copy of the
written offer to provide the Corresponding Source. This
alternative is allowed only occasionally and noncommercially, and
only if you received the object code with such an offer, in accord
with subsection 6b.
d) Convey the object code by offering access from a designated
place (gratis or for a charge), and offer equivalent access to the
Corresponding Source in the same way through the same place at no
further charge. You need not require recipients to copy the
Corresponding Source along with the object code. If the place to
copy the object code is a network server, the Corresponding Source
may be on a different server (operated by you or a third party)
that supports equivalent copying facilities, provided you maintain
clear directions next to the object code saying where to find the
Corresponding Source. Regardless of what server hosts the
Corresponding Source, you remain obligated to ensure that it is
available for as long as needed to satisfy these requirements.
e) Convey the object code using peer-to-peer transmission, provided
you inform other peers where the object code and Corresponding
Source of the work are being offered to the general public at no
charge under subsection 6d.
A separable portion of the object code, whose source code is excluded
from the Corresponding Source as a System Library, need not be
included in conveying the object code work.
A "User Product" is either (1) a "consumer product", which means any
tangible personal property which is normally used for personal, family,
or household purposes, or (2) anything designed or sold for incorporation
into a dwelling. In determining whether a product is a consumer product,
doubtful cases shall be resolved in favor of coverage. For a particular
product received by a particular user, "normally used" refers to a
typical or common use of that class of product, regardless of the status
of the particular user or of the way in which the particular user
actually uses, or expects or is expected to use, the product. A product
is a consumer product regardless of whether the product has substantial
commercial, industrial or non-consumer uses, unless such uses represent
the only significant mode of use of the product.
"Installation Information" for a User Product means any methods,
procedures, authorization keys, or other information required to install
and execute modified versions of a covered work in that User Product from
a modified version of its Corresponding Source. The information must
suffice to ensure that the continued functioning of the modified object
code is in no case prevented or interfered with solely because
modification has been made.
If you convey an object code work under this section in, or with, or
specifically for use in, a User Product, and the conveying occurs as
part of a transaction in which the right of possession and use of the
User Product is transferred to the recipient in perpetuity or for a
fixed term (regardless of how the transaction is characterized), the
Corresponding Source conveyed under this section must be accompanied
by the Installation Information. But this requirement does not apply
if neither you nor any third party retains the ability to install
modified object code on the User Product (for example, the work has
been installed in ROM).
The requirement to provide Installation Information does not include a
requirement to continue to provide support service, warranty, or updates
for a work that has been modified or installed by the recipient, or for
the User Product in which it has been modified or installed. Access to a
network may be denied when the modification itself materially and
adversely affects the operation of the network or violates the rules and
protocols for communication across the network.
Corresponding Source conveyed, and Installation Information provided,
in accord with this section must be in a format that is publicly
documented (and with an implementation available to the public in
source code form), and must require no special password or key for
unpacking, reading or copying.
7. Additional Terms.
"Additional permissions" are terms that supplement the terms of this
License by making exceptions from one or more of its conditions.
Additional permissions that are applicable to the entire Program shall
be treated as though they were included in this License, to the extent
that they are valid under applicable law. If additional permissions
apply only to part of the Program, that part may be used separately
under those permissions, but the entire Program remains governed by
this License without regard to the additional permissions.
When you convey a copy of a covered work, you may at your option
remove any additional permissions from that copy, or from any part of
it. (Additional permissions may be written to require their own
removal in certain cases when you modify the work.) You may place
additional permissions on material, added by you to a covered work,
for which you have or can give appropriate copyright permission.
Notwithstanding any other provision of this License, for material you
add to a covered work, you may (if authorized by the copyright holders of
that material) supplement the terms of this License with terms:
a) Disclaiming warranty or limiting liability differently from the
terms of sections 15 and 16 of this License; or
b) Requiring preservation of specified reasonable legal notices or
author attributions in that material or in the Appropriate Legal
Notices displayed by works containing it; or
c) Prohibiting misrepresentation of the origin of that material, or
requiring that modified versions of such material be marked in
reasonable ways as different from the original version; or
d) Limiting the use for publicity purposes of names of licensors or
authors of the material; or
e) Declining to grant rights under trademark law for use of some
trade names, trademarks, or service marks; or
f) Requiring indemnification of licensors and authors of that
material by anyone who conveys the material (or modified versions of
it) with contractual assumptions of liability to the recipient, for
any liability that these contractual assumptions directly impose on
those licensors and authors.
All other non-permissive additional terms are considered "further
restrictions" within the meaning of section 10. If the Program as you
received it, or any part of it, contains a notice stating that it is
governed by this License along with a term that is a further
restriction, you may remove that term. If a license document contains
a further restriction but permits relicensing or conveying under this
License, you may add to a covered work material governed by the terms
of that license document, provided that the further restriction does
not survive such relicensing or conveying.
If you add terms to a covered work in accord with this section, you
must place, in the relevant source files, a statement of the
additional terms that apply to those files, or a notice indicating
where to find the applicable terms.
Additional terms, permissive or non-permissive, may be stated in the
form of a separately written license, or stated as exceptions;
the above requirements apply either way.
8. Termination.
You may not propagate or modify a covered work except as expressly
provided under this License. Any attempt otherwise to propagate or
modify it is void, and will automatically terminate your rights under
this License (including any patent licenses granted under the third
paragraph of section 11).
However, if you cease all violation of this License, then your
license from a particular copyright holder is reinstated (a)
provisionally, unless and until the copyright holder explicitly and
finally terminates your license, and (b) permanently, if the copyright
holder fails to notify you of the violation by some reasonable means
prior to 60 days after the cessation.
Moreover, your license from a particular copyright holder is
reinstated permanently if the copyright holder notifies you of the
violation by some reasonable means, this is the first time you have
received notice of violation of this License (for any work) from that
copyright holder, and you cure the violation prior to 30 days after
your receipt of the notice.
Termination of your rights under this section does not terminate the
licenses of parties who have received copies or rights from you under
this License. If your rights have been terminated and not permanently
reinstated, you do not qualify to receive new licenses for the same
material under section 10.
9. Acceptance Not Required for Having Copies.
You are not required to accept this License in order to receive or
run a copy of the Program. Ancillary propagation of a covered work
occurring solely as a consequence of using peer-to-peer transmission
to receive a copy likewise does not require acceptance. However,
nothing other than this License grants you permission to propagate or
modify any covered work. These actions infringe copyright if you do
not accept this License. Therefore, by modifying or propagating a
covered work, you indicate your acceptance of this License to do so.
10. Automatic Licensing of Downstream Recipients.
Each time you convey a covered work, the recipient automatically
receives a license from the original licensors, to run, modify and
propagate that work, subject to this License. You are not responsible
for enforcing compliance by third parties with this License.
An "entity transaction" is a transaction transferring control of an
organization, or substantially all assets of one, or subdividing an
organization, or merging organizations. If propagation of a covered
work results from an entity transaction, each party to that
transaction who receives a copy of the work also receives whatever
licenses to the work the party's predecessor in interest had or could
give under the previous paragraph, plus a right to possession of the
Corresponding Source of the work from the predecessor in interest, if
the predecessor has it or can get it with reasonable efforts.
You may not impose any further restrictions on the exercise of the
rights granted or affirmed under this License. For example, you may
not impose a license fee, royalty, or other charge for exercise of
rights granted under this License, and you may not initiate litigation
(including a cross-claim or counterclaim in a lawsuit) alleging that
any patent claim is infringed by making, using, selling, offering for
sale, or importing the Program or any portion of it.
11. Patents.
A "contributor" is a copyright holder who authorizes use under this
License of the Program or a work on which the Program is based. The
work thus licensed is called the contributor's "contributor version".
A contributor's "essential patent claims" are all patent claims
owned or controlled by the contributor, whether already acquired or
hereafter acquired, that would be infringed by some manner, permitted
by this License, of making, using, or selling its contributor version,
but do not include claims that would be infringed only as a
consequence of further modification of the contributor version. For
purposes of this definition, "control" includes the right to grant
patent sublicenses in a manner consistent with the requirements of
this License.
Each contributor grants you a non-exclusive, worldwide, royalty-free
patent license under the contributor's essential patent claims, to
make, use, sell, offer for sale, import and otherwise run, modify and
propagate the contents of its contributor version.
In the following three paragraphs, a "patent license" is any express
agreement or commitment, however denominated, not to enforce a patent
(such as an express permission to practice a patent or covenant not to
sue for patent infringement). To "grant" such a patent license to a
party means to make such an agreement or commitment not to enforce a
patent against the party.
If you convey a covered work, knowingly relying on a patent license,
and the Corresponding Source of the work is not available for anyone
to copy, free of charge and under the terms of this License, through a
publicly available network server or other readily accessible means,
then you must either (1) cause the Corresponding Source to be so
available, or (2) arrange to deprive yourself of the benefit of the
patent license for this particular work, or (3) arrange, in a manner
consistent with the requirements of this License, to extend the patent
license to downstream recipients. "Knowingly relying" means you have
actual knowledge that, but for the patent license, your conveying the
covered work in a country, or your recipient's use of the covered work
in a country, would infringe one or more identifiable patents in that
country that you have reason to believe are valid.
If, pursuant to or in connection with a single transaction or
arrangement, you convey, or propagate by procuring conveyance of, a
covered work, and grant a patent license to some of the parties
receiving the covered work authorizing them to use, propagate, modify
or convey a specific copy of the covered work, then the patent license
you grant is automatically extended to all recipients of the covered
work and works based on it.
A patent license is "discriminatory" if it does not include within
the scope of its coverage, prohibits the exercise of, or is
conditioned on the non-exercise of one or more of the rights that are
specifically granted under this License. You may not convey a covered
work if you are a party to an arrangement with a third party that is
in the business of distributing software, under which you make payment
to the third party based on the extent of your activity of conveying
the work, and under which the third party grants, to any of the
parties who would receive the covered work from you, a discriminatory
patent license (a) in connection with copies of the covered work
conveyed by you (or copies made from those copies), or (b) primarily
for and in connection with specific products or compilations that
contain the covered work, unless you entered into that arrangement,
or that patent license was granted, prior to 28 March 2007.
Nothing in this License shall be construed as excluding or limiting
any implied license or other defenses to infringement that may
otherwise be available to you under applicable patent law.
12. No Surrender of Others' Freedom.
If conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot convey a
covered work so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you may
not convey it at all. For example, if you agree to terms that obligate you
to collect a royalty for further conveying from those to whom you convey
the Program, the only way you could satisfy both those terms and this
License would be to refrain entirely from conveying the Program.
13. Use with the GNU Affero General Public License.
Notwithstanding any other provision of this License, you have
permission to link or combine any covered work with a work licensed
under version 3 of the GNU Affero General Public License into a single
combined work, and to convey the resulting work. The terms of this
License will continue to apply to the part which is the covered work,
but the special requirements of the GNU Affero General Public License,
section 13, concerning interaction through a network will apply to the
combination as such.
14. Revised Versions of this License.
The Free Software Foundation may publish revised and/or new versions of
the GNU General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the
Program specifies that a certain numbered version of the GNU General
Public License "or any later version" applies to it, you have the
option of following the terms and conditions either of that numbered
version or of any later version published by the Free Software
Foundation. If the Program does not specify a version number of the
GNU General Public License, you may choose any version ever published
by the Free Software Foundation.
If the Program specifies that a proxy can decide which future
versions of the GNU General Public License can be used, that proxy's
public statement of acceptance of a version permanently authorizes you
to choose that version for the Program.
Later license versions may give you additional or different
permissions. However, no additional obligations are imposed on any
author or copyright holder as a result of your choosing to follow a
later version.
15. Disclaimer of Warranty.
THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY
APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT
HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY
OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO,
THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM
IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF
ALL NECESSARY SERVICING, REPAIR OR CORRECTION.
16. Limitation of Liability.
IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MODIFIES AND/OR CONVEYS
THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY
GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE
USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF
DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD
PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS),
EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF
SUCH DAMAGES.
17. Interpretation of Sections 15 and 16.
If the disclaimer of warranty and limitation of liability provided
above cannot be given local legal effect according to their terms,
reviewing courts shall apply local law that most closely approximates
an absolute waiver of all civil liability in connection with the
Program, unless a warranty or assumption of liability accompanies a
copy of the Program in return for a fee.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
state the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
{one line to give the program's name and a brief idea of what it does.}
Copyright (C) {year} {name of author}
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see [http://www.gnu.org/licenses/].
Also add information on how to contact you by electronic and paper mail.
If the program does terminal interaction, make it output a short
notice like this when it starts in an interactive mode:
{project} Copyright (C) {year} {fullname}
This program comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, your program's commands
might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
[http://www.gnu.org/licenses/].
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
[http://www.gnu.org/philosophy/why-not-lgpl.html].
This program is dual-licensed under the MIT and GPL3 licenses. See the licenses
directory for the license text in full.

6
MANIFEST.in Normal file
View File

@ -0,0 +1,6 @@
include CHANGELOG
include CONTRIBUTING.md
include LICENSE
include README.md
include licenses/gpl-3.txt
include licenses/mit.txt

189
README.md
View File

@ -1,3 +1,56 @@
Original project https://github.com/chrisallenlane/cheat
----
Fork Verion [![cheapy](https://img.shields.io/badge/V%20-2.2.32-brightgreen.svg)](https://github.com/Erreur32/cheat)
Features added by by 🅴🆁🆁🅴🆄🆁32 :
- Add color seach and prompt
- Add Subdir creation and search
- Add remove sheet file (-r) with confirmation
- Add color help text
----
Put in your bashrc
```sh
function _cheat_autocomplete {
sheets=$(cheat -l | cut -d' ' -f1)
COMPREPLY=()
if [ $COMP_CWORD = 1 ]; then
COMPREPLY=(`compgen -W "$sheets" -- $2`)
fi
}
complete -F _cheat_autocomplete cheat
```
Installing
----------
### manually ###
First, install the dependencies:
```sh
[sudo] pip install docopt pygments appdirs
```
Then clone this repository:
```sh
git clone https://github.com/Erreur32/cheat.git
```
Lastly, `cd` into the cloned directory, then run:
```sh
[sudo] python setup.py install
```
cheat
=====
`cheat` allows you to create and view interactive cheatsheets on the
@ -5,69 +58,43 @@ 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.
![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
-------
The next time you're forced to disarm a nuclear weapon without consulting
Google, you may run:
cheat tar
```sh
cheat tar
```
You will be presented with a cheatsheet resembling:
```
```sh
# To extract an uncompressed archive:
tar -xvf /path/to/foo.tar
tar -xvf '/path/to/foo.tar'
# To extract a .gz archive:
tar -xzvf /path/to/foo.tgz
tar -xzvf '/path/to/foo.tgz'
# 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:
tar -xjvf /path/to/foo.tgz
tar -xjvf '/path/to/foo.tgz'
# 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`
to store notes on your favorite cookie recipes, feel free.
Installing
----------
### Using pip ###
sudo pip install cheat
### 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
---------------------
@ -79,12 +106,14 @@ Cheatsheets are stored in the `~/.cheat/` directory, and are named on a
per-keyphrase basis. In other words, the content for the `tar` cheatsheet lives
in the `~/.cheat/tar` file.
Provided that you have an `EDITOR` environment variable set, you may edit
cheatsheets with:
Provided that you have a `CHEAT_EDITOR`, `VISUAL`, or `EDITOR` environment
variable set, you may edit 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.
After you've customized your cheatsheets, I urge you to track `~/.cheat/` along
@ -99,55 +128,61 @@ Personal cheatsheets are saved in the `~/.cheat` directory by default, but you
can specify a different default by exporting a `DEFAULT_CHEAT_DIR` environment
variable:
export DEFAULT_CHEAT_DIR=/path/to/my/cheats
```sh
export DEFAULT_CHEAT_DIR='/path/to/my/cheats'
```
### Setting a CHEATPATH ###
You can additionally instruct `cheat` to look for cheatsheets in other
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`:
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`.
### Enabling Syntax Highlighting ###
`cheat` can apply syntax highlighting to your cheatsheets if so desired. To
enable this feature, set a `CHEATCOLORS` environment variable:
`cheat` can optionally apply syntax highlighting to your cheatsheets. To enable
syntax highlighting, export a `CHEATCOLORS` environment variable:
export CHEATCOLORS=true
```sh
export CHEATCOLORS=true
```
### Enabling Command-line Autocompletion ###
The `cheat/autocompletion` directory contains scripts to enable command-line
autocompletion for various shells. To activate autocompletion, simply copy the
appropriate script to the appropriate path on your system. (The "appropriate
path" will vary on a per-platform basis, so this documentation shall not
speculate as to where that may be.)
#### Specifying a Syntax Highlighter ####
You may manually specify which syntax highlighter to use for each cheatsheet by
wrapping the sheet's contents in a [Github-Flavored Markdown code-fence][gfm].
Example:
<pre>
```sql
-- to select a user by ID
SELECT *
FROM Users
WHERE id = 100
```
</pre>
If no syntax highlighter is specified, the `bash` highlighter will be used by
default.
Related Projects
----------------
- [lucaswerkmeister/cheats][1]: An implementation of this concept in pure bash
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".
See Also:
---------
- [Enabling Command-line Autocompletion][autocompletion]
- [Related Projects][related-projects]
[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
[tldr]: https://github.com/tldr-pages/tldr
[autocompletion]: https://github.com/chrisallenlane/cheat/wiki/Enabling-Command-line-Autocompletion
[dotfiles]: http://dotfiles.github.io/
[gfm]: https://help.github.com/articles/creating-and-highlighting-code-blocks/
[installing]: https://github.com/chrisallenlane/cheat/wiki/Installing
[related-projects]: https://github.com/chrisallenlane/cheat/wiki/Related-Projects

View File

@ -1,44 +1,50 @@
#!/usr/bin/env python
#!/usr/bin/python3
"""cheat
Create and view cheatsheets on the command line.
Usage:
cheat <cheatsheet>
cheat -e <cheatsheet>
cheat -s <keyword>
cheat -l
cheat -d
cheat -v
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.
Examples:
To look up 'tar':
cheat tar
To create or edit the cheatsheet for 'foo':
cheat -e foo
\033[1;32mcheat\033[0m <cheatsheet>
\033[1;32mcheat\033[0m -e <cheatsheet>
\033[1;32mcheat\033[0m -s <keyword> [<cheatsheet>]
\033[1;32mcheat\033[0m -l
\033[1;32mcheat\033[0m -d
\033[1;32mcheat\033[0m -v
\033[1;32mcheat\033[0m -r <cheatsheet>
Options:
-d --directories List directories on CHEATPATH
-e --edit Edit cheatsheet
-l --list List cheatsheets
-s --search Search cheatsheets for <keyword>
-s --search Search cheatsheets for <keyword> and [<cheatsheet>] file
-v --version Print the version number
-r --remove Delete Cheatsheet
Examples:
To view the `tar` cheatsheet:
\033[1;31m cheat \033[0m tar
To edit (or create) the `foo` cheatsheet:
cheat -e foo
To list all available cheatsheets:
cheat -l
To search for "ssh" among all cheatsheets:
cheat -s ssh
"""
# 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.0')
options = docopt(__doc__, version='cheat 2.2.3')
# list directories
if options['--directories']:
@ -54,7 +60,11 @@ if __name__ == '__main__':
# search among the cheatsheets
elif options['--search']:
print(colorize(sheets.search(options['<keyword>'])))
print(colorize(sheets.search(options['<keyword>'], options['<cheatsheet>'])))
# remove File in the cheatsheets
elif options['--remove']:
sheet.remove(options['<cheatsheet>'])
# print the cheatsheet
else:

View File

@ -11,7 +11,7 @@ u update
x extract with full paths
Example:
7z a -t7z -m0-lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1
7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on archive.7z dir1
-t7z 7z archive
-m0=lzma lzma method

5
cheat/cheatsheets/alias Normal file
View File

@ -0,0 +1,5 @@
# Show a list of your current shell aliases
alias
# Map `ll` to `ls -l` (Can be used per session or put inside a shell config file)
alias ll='ls -l'

72
cheat/cheatsheets/ansi Normal file
View 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

23
cheat/cheatsheets/apt Normal file
View 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)

View File

@ -23,3 +23,6 @@ apt-get -o Dir::Cache="/path/to/destination/dir/" -o Dir::Cache::archives="./" i
# Show apt-get installed packages.
grep 'install ' /var/log/dpkg.log
# Silently keep old configuration during batch updates
apt-get update -o DPkg::Options::='--force-confold' ...

12
cheat/cheatsheets/aria2c Normal file
View File

@ -0,0 +1,12 @@
# Just download a file
# The url can be a http(s), ftp, .torrent file or even a magnet link
aria2c <url>
# To prevent downloading the .torrent file
aria2c --follow-torrent=mem <url>
# Download 1 file at a time (-j)
# continuing (-c) any partially downloaded ones
# to the directory specified (-d)
# reading urls from the file (-i)
aria2c -j 1 -c -d ~/Downloads -i /path/to/file

View File

@ -1,2 +1,11 @@
# sum integers from a file or stdin, one integer per line:
printf '1\n2\n3\n' | awk '{ sum += $1} END {print sum}'
# using specific character as separator to sum integers from a file or stdin
printf '1:2:3' | awk -F ":" '{print $1+$2+$3}'
# print a multiplication table
seq 9 | sed 'H;g' | awk -v RS='' '{for(i=1;i<=NF;i++)printf("%dx%d=%d%s", i, NR, i*NR, i==NR?"\n":"\t")}'
# Specify output separator character
printf '1 2 3' | awk 'BEGIN {OFS=":"}; {print $1,$2,$3}'

View File

@ -18,3 +18,10 @@ set -x
# Turn off debugging:
set +x
# Retrieve N-th piped command exit status
printf 'foo' | fgrep 'foo' | sed 's/foo/bar/'
echo ${PIPESTATUS[0]} # replace 0 with N
# Lock file:
( set -o noclobber; echo > my.lock ) || echo 'Failed to create lock file'

26
cheat/cheatsheets/bower Normal file
View File

@ -0,0 +1,26 @@
# Install a package locally
bower install <package-name>
# Install a package locally directly from github
bower install <user>/<repo>
# Install a specific package locally
bower install <package-name>#<version>
# Install a package locally and save installed package into bower.json
bower install <package-name> --save
# Retrieve info of a particular package
bower info <package-name>
# List local packages
bower list
# Search for a package by name
bower search <package-name>
# Update a package to their newest version
bower update <package-name>
# Remove a local package
bower uninstall <package-name>

11
cheat/cheatsheets/bzip2 Normal file
View File

@ -0,0 +1,11 @@
# compress foo -> foo.bz2
bzip2 -z foo
# decompress foo.bz2 -> foo
bzip2 -d foo.bz2
# compress foo to stdout
bzip2 -zc foo > foo.bz2
# decompress foo.bz2 to stdout
bzip2 -dc foo.bz2

8
cheat/cheatsheets/cat Normal file
View File

@ -0,0 +1,8 @@
# Display the contents of a file
cat /path/to/foo
# Display contents with line numbers
cat -n /path/to/foo
# Display contents with line numbers (blank lines excluded)
cat -b /path/to/foo

11
cheat/cheatsheets/cd Normal file
View File

@ -0,0 +1,11 @@
#Go to the given directory
cd path/to/directory
#Go to home directory of current user
cd
#Go up to the parent of the current directory
cd ..
#Go to the previously chosen directory
cd -

14
cheat/cheatsheets/cheat Normal file
View File

@ -0,0 +1,14 @@
# To see example usage of a program:
cheat <command>
# To edit a cheatsheet
cheat -e <command>
# To list available cheatsheets
cheat -l
# To search available cheatsheets
cheat -s <command>
# To get the current `cheat' version
cheat -v

11
cheat/cheatsheets/cp Normal file
View File

@ -0,0 +1,11 @@
# Create a copy of a file
cp ~/Desktop/foo.txt ~/Downloads/foo.txt
# Create a copy of a directory
cp -r ~/Desktop/cruise_pics/ ~/Pictures/
# Create a copy but ask to overwrite if the destination file already exists
cp -i ~/Desktop/foo.txt ~/Documents/foo.txt
# Create a backup file with date
cp foo.txt{,."$(date +%Y%m%d-%H%M%S)"}

132
cheat/cheatsheets/cpdf Normal file
View 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

View File

@ -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 0 * * * /home/user/command.sh
# every Saturday at 8:05 AM
5 8 * * 6 /home/user/command.sh

View File

@ -0,0 +1,8 @@
# open encrypted partition /dev/sdb1 (reachable at /dev/mapper/backup)
cryptsetup open --type luks /dev/sdb1 backup
# open encrypted partition /dev/sdb1 using a keyfile (reachable at /dev/mapper/hdd)
cryptsetup open --type luks --key-file hdd.key /dev/sdb1 hdd
# close luks container at /dev/mapper/hdd
cryptsetup close hdd

5
cheat/cheatsheets/csplit Normal file
View File

@ -0,0 +1,5 @@
# Split a file based on pattern
csplit input.file '/PATTERN/'
# Use prefix/suffix to improve resulting file names
csplit -f 'prefix-' -b '%d.extension' input.file '/PATTERN/' '{*}'

22
cheat/cheatsheets/cups Normal file
View File

@ -0,0 +1,22 @@
# Manage printers through CUPS:
http://localhost:631 (in web browser)
# Print file from command line
lp myfile.txt
# Display print queue
lpq
# Remove print job from queue
lprm 545
or
lprm -
# Print log location
/var/log/cups
# Reject new jobs
cupsreject printername
# Accept new jobs
cupsaccept printername

View File

@ -33,3 +33,9 @@ curl http://ifconfig.me/all/json
# Limit the rate of a download
curl --limit-rate 1000B -O http://path.to.the/file
# Get your global IP
curl httpbin.org/ip
# Get only the HTTP status code
curl -o /dev/null -w '%{http_code}\n' -s -I URL

View File

@ -1,2 +1,8 @@
# Printout 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"
# Convert Unix timestamp to Date(Linux)
date -d @1440359821
# Convert Unix timestamp to Date(Mac)
date -r 1440359821

View File

@ -1,7 +1,7 @@
# Read from {/dev/urandom} 2*512 Bytes and put it into {/tmp/test.txt}
# Note: At the first iteration, we read 512 Bytes.
# Note: At the second iteration, we read 512 Bytes.
dd if=/dev/urandom of=/tmp/test.txt count=512 bs=2
dd if=/dev/urandom of=/tmp/test.txt count=2 bs=512
# Watch the progress of 'dd'
dd if=/dev/zero of=/dev/null bs=4KB &; export dd_pid=`pgrep '^dd'`; while [[ -d /proc/$dd_pid ]]; do kill -USR1 $dd_pid && sleep 1 && clear; done
@ -12,6 +12,11 @@ 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
# 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

7
cheat/cheatsheets/deb Normal file
View File

@ -0,0 +1,7 @@
# Extract contents of a .deb file
$ ar vx foo.deb # -> data.tar.gz
$ tar xf data.tar.gz
# Install .deb file to a debian like system, e.g. ubuntu
$ sudo dpkg -i foo.deb
$ sudo apt-get install -f

View File

@ -21,3 +21,6 @@ diff -s version1 version2
# To diff the output of two commands or scripts:
diff <(command1) <(command2)
# Generate a patch file from two files
diff -Naur version1 version2 > version.patch

16
cheat/cheatsheets/dnf Normal file
View File

@ -0,0 +1,16 @@
# To install the latest version of a package:
dnf install <package name>
# To search package details for the given string
dnf search <string>
# To find which package provides a binary
dnf provides <path to binary>
# The following are available after installing "dnf-plugins-core"
# Download a package
dnf download <package name>
# install the build dependencies for a SRPM or from a .spec file
dnf builddep <srpm/.spec file>

View File

@ -4,6 +4,9 @@ docker -d
# start a container with an interactive shell
docker run -ti <image_name> /bin/bash
# "shell" into a running container (docker-1.3+)
docker exec -ti <container_name> bash
# inspect a running container
docker inspect <container_name> (or <container_id>)
@ -16,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
@ -23,4 +29,4 @@ docker ps
docker ps -a
# list all images
docker images
docker images

11
cheat/cheatsheets/dpkg Normal file
View File

@ -0,0 +1,11 @@
# Install the package or upgrade it
dpkg -i test.deb
# Remove a package including configuration files
dpkg -P test.deb
# List all installed packages with versions and details
dpkg -I
# Find out if a Debian package is installed or not
dpkg -s test.deb | grep Status

View File

@ -1,2 +1,5 @@
# To sort directories/files by size
du -sk *| sort -rn
# To show cumulative humanreadable size
du -sh

View File

@ -1,21 +1,28 @@
# Running emacs
GUI mode $ emacs
Terminal mode $ emacs -nw
# Basic usage
Indent Select text then press TAB
Cut CTRL-w
Copy ALT-w
Paste CTRL-y
Paste ("yank") CTRL-y
Begin selection CTRL-SPACE
Search/Find CTRL-s
Replace ALT-% (ALT-SHIFT-5)
Save CTRL-x CTRL-s
Save as CTRL-x CTRL-w
Load/Open CTRL-x CTRL-f
Undo CTRL-x u
Highlight all text CTRL-x h
Directory listing CTRL-x d
Cancel a command ESC ESC ESC
Cancel a command CTRL-g
Font size bigger CTRL-x CTRL-+
Font size smaller CTRL-x CTRL--
# Buffers
# Buffers
Split screen vertically CTRL-x 2
Split screen vertically with 5 row height CTRL-u 5 CTRL-x 2
@ -23,11 +30,21 @@
Split screen horizontally with 24 column width CTRL-u 24 CTRL-x 3
Revert to single screen CTRL-x 1
Hide the current screen CTRL-x 0
Kill the current screen CTRL-x k
Move to the next buffer CTRL-x O
Move to the next screen CTRL-x o
Kill the current buffer CTRL-x k
Select a buffer CTRL-x b
Run command in the scratch buffer CTRL-x CTRL-e
# Navigation ( backward / forward )
Character-wise CTRL-b , CTRL-f
Word-wise ALT-b , ALT-f
Line-wise CTRL-p , CTRL-n
Sentence-wise ALT-a , ALT-e
Paragraph-wise ALT-{ , ALT-}
Function-wise CTRL-ALT-a , CTRL-ALT-e
Line beginning / end CTRL-a , CTRL-e
# Other stuff
Open a shell ALT-x eshell
@ -39,32 +56,9 @@
Compile some code ALT-x compile
List packages ALT-x package-list-packages
# Sudoing within eshell
By default when using the sudo command within eshell you'll just
get "permission denied" messages. To overcome that type:
alias sudo '*sudo $*'
# Line numbers
To add line numbers and enable moving to a line with CTRL-l:
(global-set-key "\C-l" 'goto-line)
(add-hook 'find-file-hook (lambda () (linum-mode 1)))
# Org-mode
To begin org-mode ALT-x org-mode
Table column separator Vertical/pipe character
Reorganize table TAB
Section heading *
Open/collapse section TAB
Open/collapse All CTRL-TAB
Export in other file formats (eg HTML,PDF) CTRL-c CTRL-e
To make org-mode automatically wrap lines:
(add-hook 'org-mode-hook
'(lambda ()
(visual-line-mode 1)))

5
cheat/cheatsheets/export Normal file
View File

@ -0,0 +1,5 @@
# Calling export with no arguments will show current shell attributes
export
# Create new environment variable
export VARNAME="value"

23
cheat/cheatsheets/ffmpeg Normal file
View File

@ -0,0 +1,23 @@
# Print file metadata etc.
ffmpeg -i path/to/file.ext
# Convert all m4a files to mp3
for f in *.m4a; do ffmpeg -i "$f" -acodec libmp3lame -vn -b:a 320k "${f%.m4a}.mp3"; done
# Convert video from .foo to .bar
# -g : GOP, for searchability
ffmpeg -i input.foo -vcodec bar -acodec baz -b:v 21000k -b:a 320k -g 150 -threads 4 output.bar
# Convert image sequence to video
ffmpeg -r 18 -pattern_type glob -i '*.png' -b:v 21000k -s hd1080 -vcodec vp9 -an -pix_fmt yuv420p -deinterlace output.ext
# Combine video and audio into one file
ffmpeg -i video.ext -i audio.ext -c:v copy -c:a copy output.ext
# Listen to 10 seconds of audio from a video file
#
# -ss : start time
# -t : seconds to cut
# -autoexit : closes ffplay as soon as the audio finishes
ffmpeg -ss 00:34:24.85 -t 10 -i path/to/file.mp4 -f mp3 pipe:play | ffplay -i pipe:play -autoexit

View File

@ -19,11 +19,11 @@ find ./path/ -name '*.txt' -exec rm '{}' \;
# To find files with extension '.txt' and look for a string into them:
find ./path/ -name '*.txt' | xargs grep 'string'
# To find files with size bigger than 5 Mb and sort them by size:
# To find files with size bigger than 5 Mebibyte and sort them by size:
find . -size +5M -type f -print0 | xargs -0 ls -Ssh | sort -z
# To find files bigger thank 2 MB and list them:
find . -type f -size +20000k -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
# To find files bigger than 2 Megabyte and list them:
find . -type f -size +200000000c -exec ls -lh {} \; | awk '{ print $9 ": " $5 }'
# To find files modified more than 7 days ago and list file information
find . -type f -mtime +7d -ls
@ -40,5 +40,8 @@ find . -maxdepth 2 -name build -type d
# To search all files who are not in .git directory
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
# To find all files in the current directory and modify their permissions
find . -type f -exec chmod 644 {} \;

17
cheat/cheatsheets/for Normal file
View 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

View File

@ -1,4 +1,4 @@
# To set your identify:
# To set your identity:
git config --global user.name "John Doe"
git config --global user.email johndoe@example.com
@ -11,15 +11,49 @@ git config --global color.ui true
# To stage all changes for commit:
git add --all
# To stash changes locally, this will keep the changes in a separate changelist
# called stash and the working directory is cleaned. You can apply changes
# from the stash anytime
git stash
# To stash changes with a message
git stash save "message"
# To list all the stashed changes
git stash list
# To apply the most recent change and remove the stash from the stash list
git stash pop
# To apply any stash from the list of stashes. This does not remove the stash
# from the stash list
git stash apply stash@{6}
# To commit staged changes
git commit -m "Your commit message"
# To edit previous commit message
git commit --amend
# Git commit in the past
git commit --date="`date --date='2 day ago'`"
git commit --date="Jun 13 18:30:25 IST 2015"
# more recent versions of Git also support --date="2 days ago" directly
# To change the date of an existing commit
git filter-branch --env-filter \
'if [ $GIT_COMMIT = 119f9ecf58069b265ab22f1f97d2b648faf932e0 ]
then
export GIT_AUTHOR_DATE="Fri Jan 2 21:38:53 2009 -0800"
export GIT_COMMITTER_DATE="Sat May 19 01:01:01 2007 -0700"
fi'
# To removed staged and working directory changes
git reset --hard
# To go 2 commits back
git reset --hard HEAD~2
# To remove untracked files
git clean -f -d
@ -35,6 +69,9 @@ git push git@github.com:username/project.git
# To delete the branch "branch_name"
git branch -D branch_name
# To make an exisiting branch track a remote branch
git branch -u upstream/foo
# To see who commited which line in a file
git blame filename
@ -51,3 +88,64 @@ git show 83fb499:path/fo/file.ext # Shows the file as it a
git diff branch_1 branch_2 # Check difference between branches
git log # Show all the commits
git status # Show the changes from last commit
# Commit history of a set of files
git log --pretty=email --patch-with-stat --reverse --full-index -- Admin\*.py > Sripts.patch
# Import commits from another repo
git --git-dir=../some_other_repo/.git format-patch -k -1 --stdout <commit SHA> | git am -3 -k
# View commits that will be pushed
git log @{u}..
# View changes that are new on a feature branch
git log -p feature --not master
git diff master...feature
# Interactive rebase for the last 7 commits
git rebase -i @~7
# Diff files WITHOUT considering them a part of git
# This can be used to diff files that are not in a git repo!
git diff --no-index path/to/file/A path/to/file/B
# To pull changes while overwriting any local commits
git fetch --all
git reset --hard origin/master
# Update all your submodules
git submodule update --init --recursive
# Perform a shallow clone to only get latest commits
# (helps save data when cloning large repos)
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
# Revert a commit and keep the history of the reverted change as a separate revert commit
git revert <commit SHA>
# Pich a commit from a branch to current branch. This is different than merge as
# this just applies a single commit from a branch to current branch
git cherry-pick <commit SHA1>

View File

@ -1,13 +1,13 @@
# Basic:
# Search a file for a pattern
grep pattern file
# case nonsensitive research:
grep -i pattern file
# Case insensitive search (with line numbers)
grep -in pattern file
# Recursively grep for string <pattern> in folder:
grep -R pattern folder
# Getting pattern from file (one by line):
# Read search patterns from a file (one per line)
grep -f pattern_file file
# Find lines NOT containing pattern
@ -17,7 +17,7 @@ grep -v pattern file
grep "^00" file #Match lines starting with 00
grep -E "[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}" file #Find IP add
# Find all files who contain {pattern} in the directory {directory}.
# Find all files which match {pattern} in {directory}
# This will show: "file:line my research"
grep -rnw 'directory' -e "pattern"

12
cheat/cheatsheets/gyb Normal file
View File

@ -0,0 +1,12 @@
# To estimate the number and the size of all mails on youremail@gmail.com
gyb --email youremail@gmail.com --action estimate
# To backup from youremail@gmail.com to your local-folder
gyb --email youremail@gmail.com --action backup --local-folder "~/MyLocalFolder/"
# To backup from youremail@gmail.com only important or starred emails to the
# default local folder GYB-GMail-Backup-youremail@gmail.com
gyb --email youremail@gmail.com --search "is:important OR is:starred"
# To restore from your local-folder to youremail@gmail.com
gyb --email youremail@gmail.com --action restore --local-folder "~/MyLocalFolder/"

17
cheat/cheatsheets/gzip Normal file
View File

@ -0,0 +1,17 @@
# To create a *.gz compressed file
gzip test.txt
# To create a *.gz compressed file to a specific location using -c option (standard out)
gzip -c test.txt > test_custom.txt.gz
# To uncompress a *.gz file
gzip -d test.txt.gz
# Display compression ratio of the compressed file using gzip -l
gzip -l *.gz
# Recursively compress all the files under a specified directory
gzip -r documents_directory
# To create a *.gz compressed file and keep the original
gzip < test.txt > test.txt.gz

View File

@ -0,0 +1,32 @@
# Display all hardware details
sudo lshw
# List currently loaded kernel modules
lsmod
# List all modules available to the system
find /lib/modules/$(uname -r) -type f -iname "*.ko"
# Load a module into kernel
modprobe modulename
# Remove a module from kernel
modprobe -r modulename
# List devices connected via pci bus
lspci
# Debug output for pci devices (hex)
lspci -vvxxx
# Display cpu hardware stats
cat /proc/cpuinfo
# Display memory hardware stats
cat /proc/meminfo
# Output the kernel ring buffer
dmesg
# Ouput kernel messages
dmesg --kernel

20
cheat/cheatsheets/hg Normal file
View File

@ -0,0 +1,20 @@
# Clone a directory
hg clone
# Add files to hg tracker
hg add filename
# Add all files in a folder to hg tracker
hg add folder/
# Create a commit with all tracked changes and a message
hg commit -m "message"
# Push commits to source repository
hg push
# Pull changes from source repository
hg pull
# Rebase local commits to disambiguate with remote repository
hg pull --rebase

195
cheat/cheatsheets/http Normal file
View 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

3
cheat/cheatsheets/iconv Normal file
View File

@ -0,0 +1,3 @@
# To convert file (iconv.src) from iso-8859-1 to utf-8 and save to
# /tmp/iconv.out
iconv -f iso-8859-1 -t utf-8 iconv.src -o /tmp/iconv.out

View File

@ -19,8 +19,8 @@ ip route
# Display all routes for IPv6
ip -6 route
# Add route via gateway IP
ip route add 192.168.0.0/24 via 192.168.1.1
# Add default route via gateway IP
ip route add default via 192.168.1.1
# Add route via interface
ip route add 192.168.0.0/24 dev eth0

View File

@ -16,11 +16,18 @@
# To switch between channel windows
ALT+<number>, eg. ALT+1, ALT+2
# To list the nicknames within a channel
# To list the nicknames within the active channel
/names
# To change the topic
# To change the channel topic
/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

View File

@ -19,3 +19,14 @@ journalctl /usr/bin/dbus-daemon
# Filter by PID
journalctl _PID=123
# Filter by Command, e.g., sshd
journalctl _COMM=sshd
# Filter by Command and time period
journalctl _COMM=crond --since '10:00' --until '11:00'
# List all available boots
journalctl --list-boots
# Filter by specific User ID e.g., user id 1000
journalctl _UID=1000

13
cheat/cheatsheets/jq Normal file
View File

@ -0,0 +1,13 @@
# Pretty print the json
jq "." < filename.json
# Access the value at key "foo"
jq '.foo'
# Access first list item
jq '.[0]'
# Slice & Dice
jq '.[2:4]'
jq '.[:3]'
jq '.[-2:]'

25
cheat/cheatsheets/jrnl Normal file
View File

@ -0,0 +1,25 @@
# Add entry to default jrnl (from your configured text editor)
jrnl
# Add entry to default jrnl
jrnl Write entry here.
# List of tags
jrnl --tags
# Entries per tag
jrnl @tag
# Export jrnl as json
jrnl --export json
# Entries in a timeframe
jrnl -from 2009 -until may
# Add Sublime text to .jrnl_config
# Windows
"editor": "F:\\Powerpack\\Sublime\\sublime_text.exe -w"
# Linux
"editor": "/usr/bin/sublime -w"

5
cheat/cheatsheets/kill Normal file
View File

@ -0,0 +1,5 @@
# Kill a process gracefully
kill -15 <process id>
# Kill a process forcefully
kill -9 <process id>

View 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.

23
cheat/cheatsheets/lib Normal file
View File

@ -0,0 +1,23 @@
# Display available libraries
ldconfig -p
# Update library resources
ldconfig
# Display libraries and file location
ldd
# Libraries available to apps in real-time
"Dynamic Libraries" (.so.)
# Libraries only available to apps when installed (imported)
"Static Libraries" (.a.)
# Standard (usual) library file location
/lib
# Sofware-accessible source for library info
/etc/ld.so.cache # (binary)
# Human-readable source for library info
/etc/ld.so.conf # (points to /etc/ld.so.conf.d)

View File

@ -1,2 +1,5 @@
# To create a symlink:
ln -s path/to/the/target/directory name-of-symlink
# Symlink, while overwriting existing destination files
ln -sf /some/dir/exec /usr/bin/exec

View File

@ -9,3 +9,9 @@ ls -lh
# Display files, sorted by size
ls -S
# Display directories only
ls -d */
# Display directories only, include hidden
ls -d .*/ */

View File

@ -4,20 +4,34 @@ sudo lsof -i4
# List all IPv6 network files
sudo lsof -i6
# To find listening ports:
# List all open sockets
lsof -i
# List all listening ports
lsof -Pnl +M -i4
# To find which program is using the port 80:
# Find which program is using the port 80
lsof -i TCP:80
# List all connections to a specific host
lsof -i@192.168.1.5
# List all processes accessing a particular file/directory
lsof </path/to/file>
# List all files open for a particular user
lsof -u <username>
# List all files/network connections a given process is using
# List all files/network connections a command is using
lsof -c <command-name>
# List all files a process has open
lsof -p <pid>
# List all files open mounted at /mount/point.
# Particularly useful for finding which process(es) are using a
# mounted USB stick or CD/DVD.
lsof +f -- </mount/point>
# See this primer: http://www.danielmiessler.com/study/lsof/
# for a number of other useful lsof tips

5
cheat/cheatsheets/man Normal file
View File

@ -0,0 +1,5 @@
# Convert a man page to pdf
man -t bash | ps2pdf - bash.pdf
# View the ascii chart
man 7 ascii

View File

@ -35,6 +35,9 @@ ___
# links
This is [an example](http://example.com "Title") inline link.
# image
![Alt Text](/path/to/file.png)
# emphasis
*em* _em_

58
cheat/cheatsheets/mdadm Normal file
View 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

3
cheat/cheatsheets/more Normal file
View File

@ -0,0 +1,3 @@
# To show the file start at line number 5
more +5 file

View File

@ -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

14
cheat/cheatsheets/mv Normal file
View File

@ -0,0 +1,14 @@
# Move a file from one place to another
mv ~/Desktop/foo.txt ~/Documents/foo.txt
# Move a file from one place to another and automatically overwrite if the destination file exists
# (This will override any previous -i or -n args)
mv -f ~/Desktop/foo.txt ~/Documents/foo.txt
# Move a file from one place to another but ask before overwriting an existing file
# (This will override any previous -f or -n args)
mv -i ~/Desktop/foo.txt ~/Documents/foo.txt
# Move a file from one place to another but never overwrite anything
# (This will override any previous -f or -i args)
mv -n ~/Desktop/foo.txt ~/Documents/foo.txt

View File

@ -12,3 +12,26 @@ CREATE DATABASE owa CHARACTER SET utf8 COLLATE utf8_general_ci;
# To add a user and give rights on the given database
GRANT ALL PRIVILEGES ON database.* TO 'user'@'localhost'IDENTIFIED BY 'password' WITH GRANT OPTION;
# To list the privileges granted to the account that you are using to connect to the server. Any of the 3 statements will work.
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';
# To check stored procedure
SHOW PROCEDURE STATUS;
# To check stored function
SHOW FUNCTION STATUS;

View File

@ -1,16 +1,16 @@
# To dump a database to a file (Note that your password will appear in your command history!):
# To dump a database to a file (Note that your password will appear in your command history!):
mysqldump -uusername -ppassword the-database > db.sql
# To dump a database to a file:
mysqldump -uusername -p the-database > db.sql
# To dump a database to a .tgz file (Note that your password will appear in your command history!):
# To dump a database to a .tgz file (Note that your password will appear in your command history!):
mysqldump -uusername -ppassword the-database | gzip -9 > db.sql
# To dump a database to a .tgz file:
mysqldump -uusername -p the-database | gzip -9 > db.sql
# To dump all databases to a file (Note that your password will appear in your command history!):
# To dump all databases to a file (Note that your password will appear in your command history!):
mysqldump -uusername -ppassword --all-databases > all-databases.sql
# To dump all databases to a file:

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-

29
cheat/cheatsheets/nkf Normal file
View 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

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>

20
cheat/cheatsheets/nova Normal file
View File

@ -0,0 +1,20 @@
# To list VMs on current tenant:
nova list
# To list VMs of all tenants (admin user only):
nova list --all-tenants
# To boot a VM on a specific host:
nova boot --nic net-id=<net_id> \
--image <image_id> \
--flavor <flavor> \
--availability-zone nova:<host_name> <vm_name>
# To stop a server
nova stop <server>
# To start a server
nova start <server>
# To attach a network interface to a specific VM:
nova interface-attach --net-id <net_id> <server>

22
cheat/cheatsheets/npm Normal file
View File

@ -0,0 +1,22 @@
# Every command shown here can be used with the `-g` switch for global scope
# Install a package in the current directory
npm install <package>
# Install a package, and save it in the `dependencies` section of `package.json`
npm install --save <package>
# Install a package, and save it in the `devDependencies` section of `package.json`
npm install --save-dev <package>
# Show outdated packages in the current directory
npm outdated
# Update outdated packages
npm update
# Update `npm` (will override the one shipped with Node.js)
npm install -g npm
# Uninstall a package
npm uninstall <package>

33
cheat/cheatsheets/ntp Normal file
View File

@ -0,0 +1,33 @@
# Verify ntpd running:
service ntp status
# Start ntpd if not running:
service ntp start
# Display current hardware clock value:
sudo hwclock -r
# Apply system time to hardware time:
sudo hwclock --systohc
# Apply hardware time to system time:
sudo hwclock --hctosys
# Set hwclock to local time:
sudo hwclock --localtime
# Set hwclock to UTC:
sudo hwclock --utc
# Set hwclock manually:
sudo hwclock --set --date="8/10/15 13:10:05"
# Query surrounding stratum time servers
ntpq -pn
# Config file:
/etc/ntp.conf
# Driftfile:
location of "drift" of your system clock compared to ntp servers
/var/lib/ntp/ntp.drift

2
cheat/cheatsheets/numfmt Normal file
View File

@ -0,0 +1,2 @@
# Convert bytes to Human readable format
numfmt --to=iec --suffix=B --padding=7 1048576

View File

@ -15,7 +15,13 @@ openssl req -text -noout -in server.csr
# To show certificate information for generated certificate
openssl x509 -text -noout -in server.crt
# To get the sha256 fingerprint of a certificate
openssl x509 -in server.crt -noout -sha256 -fingerprint
# To view certificate expiration:
echo | openssl s_client -connect <hostname>:443 2> /dev/null | \
awk '/-----BEGIN/,/END CERTIFICATE-----/' | \
openssl x509 -noout -enddate
# Generate Diffie-Hellman parameters:
openssl dhparam -outform PEM -out dhparams.pem 2048

View File

@ -0,0 +1,46 @@
Begin org-mode ALT-x org-mode
Save CTRL-x CTRL-s
Export in other file formats (eg HTML,PDF) CTRL-c CTRL-e
# Outline
Section heading *
New headline ALT-return
Move headline up or down ALT-up_arrow/down_arrow
Adjust indent depth of headline ALT-left_arrow/right_arrow
Open/collapse section TAB
Open/collapse All CTRL-TAB
# To-Do Lists
Mark list item as TODO ** TODO
Cycle through workflow SHIFT-left_arrow/right_arrow
Show only outstanding TODO items CTRL-c CTRL-v
# Tables
Table column separator Vertical/pipe character
Reorganize table TAB
Move column ALT-left_arrow/right_arrow
Move row ALT-up_arrow/down_arrow
# Styles
*bold*
/italic/
_underlined_
=code=
~verbatim~
+strike-through+
# Heading
Header -*- mode: org -*-
# .emacs
To make org-mode automatically wrap lines:
(add-hook 'org-mode-hook
'(lambda ()
(visual-line-mode 1)))

5
cheat/cheatsheets/p4 Normal file
View File

@ -0,0 +1,5 @@
# Print details related to Client and server configuration
p4 info
# Open a file and add it to depot
p4 add <filename>

15
cheat/cheatsheets/paste Normal file
View File

@ -0,0 +1,15 @@
# Concat columns from files
paste file1 file2 ...
# List the files in the current directory in three columns:
ls | paste - - -
# Combine pairs of lines from a file into single lines:
paste -s -d '\t\n' myfile
# Number the lines in a file, similar to nl(1):
sed = myfile | paste -s -d '\t\n' - -
# Create a colon-separated list of directories named bin,
# suitable for use in the PATH environment variable:
find / -name bin -type d | paste -s -d : -

13
cheat/cheatsheets/patch Normal file
View File

@ -0,0 +1,13 @@
# Patch one file
patch version1 < version.patch
# Reverse a patch
patch -R version1 < version.patch
# Patch all files in a directory, adding any missing new files
# -p strips leading slashes
$ cd dir
$ patch -p1 -i ../big.patch
# Patch files in a directory, with one level (/) offset
patch -p1 -r version1/ < version.patch

8
cheat/cheatsheets/perl Normal file
View File

@ -0,0 +1,8 @@
# To view the perl version:
perl -v
# Replace string "\n" to newline
echo -e "foo\nbar\nbaz" | perl -pe 's/\n/\\n/g;'
# Replace newline with multiple line to space
cat test.txt | perl -0pe "s/test1\ntest2/test1 test2/m"

5
cheat/cheatsheets/pgrep Normal file
View File

@ -0,0 +1,5 @@
# Get a list of PIDs matching the pattern
pgrep example
# Kill all PIDs matching the pattern
pgrep -f example | xargs kill

8
cheat/cheatsheets/ping Normal file
View File

@ -0,0 +1,8 @@
# ping a host with a total count of 15 packets overall.
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/ping6 Normal file
View File

@ -0,0 +1,2 @@
# get all ipv6 neighbors via broadcast ping
ping6 -I eth0 ff02::1

30
cheat/cheatsheets/pip Normal file
View File

@ -0,0 +1,30 @@
# Search for packages
pip search SomePackage
# Install some packages
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
pip freeze > requirements.txt
pip install -r requirements.txt
# Show details of a package
pip show SomePackage
# List outdated packages
pip list --outdated
# Upgrade all outdated packages, thanks to http://stackoverflow.com/a/3452888
pip freeze --local | grep -v '^\-e' | cut -d = -f 1 | xargs -n1 pip install -U
# Upgrade outdated packages on latest version of pip
pip list --outdated --format=freeze | cut -d = -f 1 | xargs -n1 pip install -U
# Install specific version of a package
pip install -I SomePackage1==1.1.0 'SomePackage2>=1.0.4'

View File

@ -0,0 +1,27 @@
# Create a Slackware package from a structured directory and sub-tree
$ cd /path/to/pkg/dir
$ su - c 'makepkg --linkadd y --chown n $foo-1.0.3-x86_64-1_tag.tgz'
# Install a Slackware package
installpkg foo-1.0.3-x86_64-1.tgz
# Install a Slackware package to non-standard location
ROOT=/path/to/dir installpkg foo-1.0.4-noarch-1.tgz
# Create backup of files that will be overwritten when installing
tar czvf /tmp/backup.tar.gz $(installpkg --warn foo-1.0.4-noarch-1.tgz)
# Upgrade a Slackware package including files only in new version
upgradepkg --install-new foo-1.0.6-noarch-1.tgz
# Upgrade a Slackware package even if version is the same
upgradepkg --reinstall foo-1.0.4-noarch-1.tgz
# Remove a Slackware package
removepkg foo-0.2.8-x86_64-1
# Remove a Slackware package, retaining a backup (uninstalled) copy
removepkg -copy foo-0.2.8-x86_64-1 # -> /var/log/setup/tmp/preserved_packages/foo...

5
cheat/cheatsheets/pkill Normal file
View File

@ -0,0 +1,5 @@
# To kill a process using it's full process name
pkill <processname>
# To kill a process by it's partial name
pkill -f <string>

2
cheat/cheatsheets/popd Normal file
View File

@ -0,0 +1,2 @@
# Returns to the directory at the top of the `pushd' stack
popd

26
cheat/cheatsheets/psql Normal file
View File

@ -0,0 +1,26 @@
# psql is the PostgreSQL terminal interface. The following commands were tested on version 9.5.
# Connection options:
# -U username (if not specified current OS user is used).
# -p port.
# -h server hostname/address.
# Connect to a specific database:
psql -U postgres -h serverAddress -d dbName
# Get databases on a server:
psql -U postgres -h serverAddress --list
# Execute sql query and save output to file:
psql -U postgres -d dbName -c 'select * from tableName;' -o fileName
# Execute query and get tabular html output:
psql -U postgres -d dbName -H -c 'select * from tableName;'
# Execute query and save resulting rows to csv file:
psql -U postgres -d dbName -t -A -P fieldsep=',' -c 'select * from tableName;' -o fileName.csv
# Read commands from file:
psql -f fileName
# Restore databases from file:
psql -f fileName.backup postgres

5
cheat/cheatsheets/pushd Normal file
View File

@ -0,0 +1,5 @@
# Pushes your current directory to the top of a stack while changing to the specified directory
pushd <directory>
# To return use popd
popd

2
cheat/cheatsheets/pwd Normal file
View File

@ -0,0 +1,2 @@
# Show the absolute path of your current working directory on the filesystem
pwd

26
cheat/cheatsheets/rcs Normal file
View File

@ -0,0 +1,26 @@
# Initial check-in of file (leaving file active in filesystem)
ci -u <filename>
# Check out with lock
co -l <filename>
# Check in and unlock (leaving file active in filesystem)
ci -u <filename>
# Display version x.y of a file
co -px.y <filename>
# Undo to version x.y (overwrites file active in filesystem with the specified revision)
co -rx.y <filename>
# Diff file active in filesystem and last revision
rcsdiff <filename>
# Diff versions x.y and x.z
rcsdiff -rx.y -rx.z <filename>
# View log of check-ins
rlog <filename>
# Break an RCS lock held by another person on a file
rcs -u <filename>

2
cheat/cheatsheets/rename Normal file
View File

@ -0,0 +1,2 @@
# Lowercase all files and folders in current directory
rename 'y/A-Z/a-z/' *

View File

@ -4,11 +4,28 @@ rpm -ivh <rpm>
# To remove a package:
rpm -e <package>
# To remove a package, but not its dependencies
rpm -e --nodeps <package>
# To find what package installs a file:
rpm -qf </path/to/file>
# To find what files are installed by a package:
rpm -ql <package>
rpm -qpl <rpm>
# To find what packages require a package or file:
rpm -q --whatrequires <package>
rpm -q --whatrequires <file>
# To list all installed packages:
rpm -qa
# To find a pkg's dependencies
rpm -i --test <package>
# Display checksum against source
rpm -K <package>
# Verify a package
rpm -V <package>

View File

@ -0,0 +1,5 @@
# List contents of RPM
rpm2cpio foo.rpm | cpio -vt
# Extract contents of RPM
rpm2cpio foo.rpm | cpio -vid

View File

@ -0,0 +1,21 @@
'rss2email -- converts rss feeds and emails them to your inbox'
# List all feeds
r2e list
# Convert RSS entries to email
r2e run
# Add a new feed
r2e add <feed address>
# Add a new feed with new email address
r2e add <feed address> [newemail address]
# Delete a feed
r2e delete <# of feed in list/>
# Help
r2e -h

View File

@ -0,0 +1,8 @@
# Reboot the system immediately
shutdown -r now
# Shut system down immediately
shutdown -h now
# Reboot system after 5 minutes
shutdown -r +5

View File

@ -0,0 +1,5 @@
# To display public shares on the server:
smbclient -L <hostname> -U%
# To connect to a share:
smbclient //<hostname>/<share> -U<username>%<password>

32
cheat/cheatsheets/sport Normal file
View File

@ -0,0 +1,32 @@
# Sync to newest SlackBuild.org tree
sport r
# Search (fuzzy) SlackBuild tree for packages foo and BaR
sport s foo bar
# Operate from alternate build tree
SBOPATH=/path/to/tree sport s foo
# View info and README of BaR (not fuzzy)
sport c foo BaR
# Build a package
sport i --build-only foo
# Build and install package foo and BaR
sport i foo BaR
# Build and install package from current directory
sport i .
# Upgrade instead of install
INSTALLER=upgradepkg sport i foo
# Build dependency list for baz
echo "foo BaR" >> /tmp/baz.list
# Install list of packages from file
sport i $(< /tmp/baz.list)
# Check if package is installed
sport k foo

20
cheat/cheatsheets/sqlite3 Normal file
View File

@ -0,0 +1,20 @@
# create database and launch interactive shell
sqlite3 example.db
# create table
sqlite3 example.db "CREATE TABLE Os(ID INTEGER PRIMARY KEY, Name TEXT, Year INTEGER);"
# insert data
sqlite3 example.db "INSERT INTO 'Os' VALUES(1,'Linux',1991);"
# list tables
sqlite3 example.db ".tables"
# view records in table
sqlite3 example.db "SELECT * FROM 'Os';"
# view records in table conditionally
sqlite example.db "SELECT * FROM 'Os' WHERE Year='1991';"
# view records with fuzzy matching
sqlite3 ~/example.db "SELECT * FROM 'Os' WHERE Year like '19%';"

18
cheat/cheatsheets/ss Normal file
View File

@ -0,0 +1,18 @@
ss
Utility to investigate sockets
Args
-4/-6 list ipv4/ipv6 sockets
-n numeric addresses instead of hostnames
-l list listing sockets
-u/-t/-x list udp/tcp/unix sockets
-p Show process(es) that using socket
# show all listing tcp sockets including the corresponding process
ss -tlp
# show all sockets connecting to 192.168.2.1 on port 80
ss -t dst 192.168.2.1:80
# show all ssh related connection
ss -t state established '( dport = :ssh or sport = :ssh )'

Some files were not shown because too many files have changed in this diff Show More