Friendly shell
environment
setup
Karn Wong
Platform Engineer, Data Cafe Thailand
Slide 2
Slide 2 text
A CLI nerd who loves a
blinking cursor too much
Karn Wong
Platform Engineer, Data Cafe Thailand
https://karnwong.me
Slide 3
Slide 3 text
Current issues with default shell config
1. Lack of colors
2. Everything looks the same
3. Not obvious whether there is a typo or an
executable doesn’t exist
4. Important information are not displayed
Slide 4
Slide 4 text
Bland colors, not
anymore!
Slide 5
Slide 5 text
ls -> eza
Slide 6
Slide 6 text
ls -lah -> eza
Slide 7
Slide 7 text
cat -> bat
Slide 8
Slide 8 text
echo
Slide 9
Slide 9 text
Executable doesn’t exist
Slide 10
Slide 10 text
Chained command
Slide 11
Slide 11 text
grep
Slide 12
Slide 12 text
df -> duf
Slide 13
Slide 13 text
ps -> procs
Slide 14
Slide 14 text
grep -> rg
Slide 15
Slide 15 text
grep - for files -> fd
Slide 16
Slide 16 text
Markdown -> glow
Slide 17
Slide 17 text
git diff
Slide 18
Slide 18 text
And you can click in
terminals!
Slide 19
Slide 19 text
vim -> nvchad
Slide 20
Slide 20 text
tmux -> zellij
Slide 21
Slide 21 text
Did I mention
autocomplete?
Slide 22
Slide 22 text
Autocomplete - executables
Slide 23
Slide 23 text
Autocomplete - docker
Slide 24
Slide 24 text
Autocomplete - docker argument
Slide 25
Slide 25 text
Autocomplete - ssh
Slide 26
Slide 26 text
Autocomplete - scp
Slide 27
Slide 27 text
Quality of life
features
Slide 28
Slide 28 text
Shell - autocomplete from history
Slide 29
Slide 29 text
Jump between directories -> zoxide
Slide 30
Slide 30 text
Command cheat sheet -> tldr
Slide 31
Slide 31 text
JSON -> fx
Slide 32
Slide 32 text
Important
information should
be displayed
Slide 33
Slide 33 text
Current folder
Slide 34
Slide 34 text
Last command’s runtime
Slide 35
Slide 35 text
Last command’s status
Slide 36
Slide 36 text
Current GCP account & project
Slide 37
Slide 37 text
Current AWS account & region
Slide 38
Slide 38 text
Current runtime version & venv
Slide 39
Slide 39 text
Git branch & status
Slide 40
Slide 40 text
Current kubernetes context & namespace
Slide 41
Slide 41 text
Active username & hostname (over SSH)
Slide 42
Slide 42 text
Words from users
Slide 43
Slide 43 text
Can I copy your
setup?”
Slide 44
Slide 44 text
https://github.com/kahnwong/vm-init
Slide 45
Slide 45 text
No content
Slide 46
Slide 46 text
Further actions
1. Define commonly used tools
2. Implement setup script for teams