add joyous bash
This commit is contained in:
243
slides/joyous_bash/joyous_bash.md
Normal file
243
slides/joyous_bash/joyous_bash.md
Normal file
@@ -0,0 +1,243 @@
|
||||
# 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 " "
|
||||
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`
|
||||
|
Reference in New Issue
Block a user