# Definitions

```bash
# $PATH

# Add to beginning of $PATH
PATH=~/opt/bin:$PATH

# Add to end of $PATH
PATH=$PATH:~/opt/bin
```

```bash
# Standard input & output

# Send output of command to a file instead of terminal
# Shell will create a file if it does not exist, if it does, the shell erases (clobbers) the original file first
command > file

# Append to file
command >> file

# Match every line that I type after that has 'this' in it and put the results in to hello_grep.txt file
grep this > hello_grep.txt

# Put all the lines matching 'line' into grep_output.txt file
grep line hello.txt > grep_output.txt

# >> Redirect output to append to FILE
grep line hello.txt >> grep_output.txt

# Redirect standard error stream to FILE
# where 2> means redirect output stream 2 to write results to the
# file and not to the terminal
find / -name 'story.txt' 2> error_log.txt

# 1> specifies stream ID 1 (standard output) (default)
# 2> specifies stream ID 2 (standard error)

# Sends both standard error and output to some location
ls /fffff > f 2>&1
```

```
- Accept - Specifies the file format the requester wants.
- Accept-Language - Specifies the human-readable language, like English, Spanish, or Russian.
- Cache-Control - Specifies whether the response can be generated from a cache.
```

```bash
# Globbing

# Shell can match simple patterns to file and directory names
# this process is known as globbing

# Simplest of these is the glob character * which tells the shell to match any number of arbitrary characters

# Print a list of files in current directory
echo *

# Shell matches arguments containing globs to filenames
# substititutes the filenames for those arguments, and then runs the revised command line
# the substitution is called expansion because the shell substitutes all matching filenames


at* # Expands to all filenames that start with at

*at # Expands to all filenames that end with at

*at* # Expands to all filenames that contain at


# Another shell glob character is (?) - it instructs the shell to match exactly one arbitrary character

# Match both boat and brat
b?at

# If you don't want the shell to expand a glob in a command, enclose the glob in single quotes ('')

# It is important to remember that the shell performs expansions before running commands
```

```
ASCII code

- ASCII is an encoding representing each typed letter by a number
- each number is stored in one byte (so the number is in 0..255)
  - A is 65
  - B is 66
  - space is 32
- "Unicode" is an encoding for mandarin, greek, arabic, etc. languages
  - typically 2-bytes per "letter"

![](https://i.imgur.com/qbFb4Ik.png)
```

```
HTTP status codes

- 200-299 are good
- 300-399 understood (located elsewhere)
- 400-499 error (404 = resource no longer exists)
- 400-599 server end (500 = some error on the server)
```

```
HTTP REST methods

- GET - Used for fetching either a collection of resources or a single resource.
- POST - Used to add a new resource to a collection.
  - For example, we wouldn't POST to /players/567 or /games/1234 because they aren't collections.
  - We would, however, POST to /players or /games to create a new player or a new game.
- PUT - Use when we want to update a record. We wouldn't use PUT on collection or list URLs.
- DELETE - Used for sending a DELETE request to a detail record, a URL for a single record, should delete just that record.
  - Sending DELETE to an entire collection would delete the whole collection but that's usually not implemented, with good reason.
```


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://woodrowpearson.gitbook.io/code-gists/definitions-1.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
