diff --git a/README.md b/README.md new file mode 100644 index 0000000000000000000000000000000000000000..f04c5e99a6b654e419b7787e30084f7bd0634f83 --- /dev/null +++ b/README.md @@ -0,0 +1,83 @@ +# Quick References + +This repository contains a number of quick reference guides to various +basic and not-so-basic topics. These are not intended to be +comprehensive in any way, and you will likely find your favorite +search engine a great way to supplement this information, once you +know the basic terms to include. + +Much of the information here is Linux-specific or C-specific. This is a +feature. + +Here's a brief summary of what's in each file: + +## [admin.md](admin.md) + + * The `root` administrator account + * Running programs as a different user + * Managing users and groups + +## [bash.md](bash.md) + + * Shell variables + * Parameter expansion + * Single vs. double quotes + * Different ways to execute commands + * Positional parameters + * Math in bash + * File descriptors, like STDIN and STDOUT + * "Here" documents + * Pipelines + * Control flow, including conditionals and loops + * Functions + * Command aliases + * **Writing scripts, including the "shebang" line** + +## [filesystem.md](filesystem.md) + + * The many ways of listing directory contents + * Changing directories. Number 4 may surprise you! + * Moving, copying, and extracting pieces of files. This includes fancy + commands like `dd` and `xxd`. + * **File permissions**, including making your scripts executable! + * Examining disk usage + * Special files, and where they live + * **Finding things** with `locate`, `find`, `grep`, and `ack` + +## [misc.md](misc.md) + + * Manual pages + * Killing processes + * The `true` and `false` commands + * The `yes` command + * Generating numeric sequences (great for loops in scripts!) + * The `tar` command that you in theory already know + * Splitting lines of text with `cut` + * When `cut` doesn't cut it, the `awk` command + +## [network.md](network.md) + + * Examining your network configuration (lots of commands and details) + * Testing connectivity with `ping` and `traceroute` + * Finding IP addresses for hostnames + +## [numbers.md](numbers.md) + + * Explicitly-sized integer types, like `uint64_t` + * Big-endian vs. little-endian byte order + * Host vs. network byte order + * Converting between different byte orders, including a handy table! + +## [python.md](python.md) + +A brief tour of the language, which should help you orient yourself. +This includes a complete script to generate random numbers, in +[example.py](example.py) + +## [python-scapy.md](python-scapy.md) + + * Capturing network packets + * Examining network packets + * Creating network packets + +This really only scratches the surface.