# Shut Up!



```sh
echo blacklist pcspkr >  /etc/modprobe.d/nobeep.conf
```

---

# Standard Visuals

- `cbonsai`
- `asciiquarium`
- `top`
    * `ZH4W`

## Another Monday!

- `cal --reform julian`

## Weather

```sh
curl wttr.in
curl -s wttr.in/
curl wttr.in/Moon
```

# `ls`

`ls -X`

---

# vim

- blog!
- seriously, just write

---

# `watch`

## Watch Differences

- `watch -d stat "$file"`
- `watch -d ip a`

## With Makefiles

```sh
watch --chgexit ping -c 1 dmz.rs && sleep 3 && unison -batch pir
```

## Check Progress

```sh
watch 'ls **/*.pdf | column'
```

---

# Watch Shell Scripts


```sh
watch -e ./script.sh
```

---

# Slow Down

```sh
function slow(){
	ff=/tmp/bashpipe_$(date +%s)
	mkfifo $ff 2>/dev/null
	( cat $ff | perl -We 'use Time::HiRes;$|++;while(read(STDIN,$c,1)){Time::HiRes::usleep(15000);print $c;}' )& exec &> $ff
}

```

## Safety?

- no

## `htop`?

- no

## `speedtest`?

- **YES**

```

---

# Notes

```sh
alias no='$EDITOR .no.md'
function n(){
	[ -z "$1" ] && cat .no.md || echo $@ >> .no.md
}

```

---

# URL  Decoding


```bash
urldecode(){ : "${*//+/ }"; echo -e "${_//%/\\x}"; }
```

---

# Send Text


```sh
function sendtext(){
	[ -f "$1" ] && \
	cat "$1" | nc termbin.com 9999 || \
	echo "$($1)" | nc termbin.com 9999
}
```

---

# Readline


Put this in `.inputrc`.

```text
set editing-mode vi
set keymap vi
```

---

# More Readline vi


```text
set editing-mode vi
set show-mode-in-prompt on
set vi-ins-mode-string "  "
set vi-cmd-mode-string "W "
set keymap vi
```

---

# More Readline

```text

set match-hidden-files off
set show-all-if-ambiguous on
set show-all-if-unmodified on
set colored-stats on

"\C- ": shell-expand-line
"\C-x": glob-expand-word
Control-g: "g\n"
Control-y: "| ccze\n"
Control-o: "\C-u lfcd\n\C-u"
Control-l: "\C-u clear -x && ls\n"
```

---

# Synchronization

## Syncthing

- 'Just works'

## Unison

- Fuck haskell
- But actually it's good


---

# `column`

```sh
column -ts: -H PW,GID,shell -N User,PW,UID,GID,Description,Home,shell /etc/passwd
```

##

```sh
column -J -ts: -H PW,GID,shell -N User,PW,UID,GID,Description,Home,shell /etc/passwd | jq -r .table.[].user
```

---

# Aliases

## b

```sh
b () 
{ 
    eval "cd $(for d in $(seq 1 $1);
do
    printf ../;
done)"
}

```

---

# `eval`

- Don't

---

# Clear Downloads

```sh
rm -rf ~/Downloads/*
echo "tmpfs $HOME/Downloads tmpfs defaults,size=1G 0 0" | sudo tee -a /etc/fstab
sudo systemctl daemon-reload # Only for systemd
sudo mount -a
mount | tail -1
```

# The Best: `yes`

- `yes`
- `yes no`

