Slide 1

Slide 1 text

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