Working Effectively With the Modern Shell
Talk @ the Tampere Coding Sauna, May 2023.
2023-05-05T11:37:03+03:00
These slides live at https://andrew-quinn.me/modern-shell-slidy.html
- A more normal HTML version @ https://andrew-quinn.me/modern-shell/
What I hope you leave with
- Use
fzf
- Use
zsh
(minimum) - Learn (some)
vi
tldr
>>= gpt >>=man
who am i
- hey i’m andrew
- https://andrew-quinn.me/modern-shell/
- https://twitter.com/zephyr_on_call
- https://staging.bsky.app/profile/sonder.bsky.social
- https://www.linkedin.com/in/heiandrewquinn/
- 🇪🇺🇱🇷 => 🇮🇪🇺🇸 -> 🇫🇮
- northwestern grad 2020 - bs in ee + minor in math
- devops by day
- fullstack+ai by night (best w/ django/htmx)
why the shell?
- composability
- complexity
- speed
on speed
- 0.001- seconds: speed of unknowing
- 0.01 seconds: speed of instinct
- 0.1 seconds: speed of thought
- 1 second: speed of consciousness
- 10 seconds: speed of frustration
- 100 seconds: speed of switching to a competitor
- 1000+ seconds: speed of SaaS
let’s talk about fzf
- what is
fzf
- how to install
fzf
for directory jumpingfzf
for command historyfzf
as repl
the rustification of tools
- rust is big now
- covering the classics
grep
=>r
ipg
repfind
=>fd
cat
=>bat
(i’m serious)
let’s talk about vi
v
isuale
ditor- kind of a pain to learn
- learn it anyway
- vscode extension
- exists everywhere*
- barely uses resources at all (cpu, ram)
why optimize for resources?
- csikszentmihalyi would like a word
- did you not remember speed
- engineering === optimization within constraints
- long battery life is good too
let’s talk about zsh
- bash is ubiquitous
- bash has a lot of problems
- Strictly speaking bash exists at a really uncomfortable saddle point between the need to be quick and user/flowstate-friendly, and the need to be robust as an automation tool and and
- tldr: you still gotta run your scripts tho
- may i recommend
zsh
zsh
+ oh-my-zsh
- unlike
bash
, you get sick + actually useful plugins - unlike
fish
, most of your scripts run fine w/o modifications
starship
- another rust project
- cross-platform shell … theme … thing
- i like to just run it as is but install it everywhere
why optimize for beauty and fun?
- csikszentmihalyi would like a word