En minimalistisk Mac-terminal for Linux-fans
Jeg har en tilståelse at gøre: Jeg har været Mac-bruger i mere end 10 år nu. I begyndelsen følte jeg mig lidt skamfuld, da jeg har en stærk Linux-baggrund, men Mac’en giver mig en Unix-lignende shell og en fantastisk window manager. På grund af denne historie har jeg en blanding af funktioner, der kan køre på macOS, men som føles velkendt for Linux-brugere. Der er ingen grund til, at det ikke kan portere over til Linux (og det har det!).
Brug af iTerm2 på en Mac
I lang tid var min foretrukne terminal den grundlæggende indbyggede Terminal.app, men jeg skiftede for nylig til iTerm2, fordi den har meget bedre tilpasning og profilunderstøttelse. En af dens vigtigste gevinster for mig er, at det er nemt at transplantere indstillinger fra Mac til Mac. Til daglig brug foretrækker jeg Solarized Dark-temaet, men til præsentationer har jeg en separat profil, der forstørrer teksten og bruger en almindelig sort baggrund med mere levende farver.
Den første ting, jeg gør for at gøre iTerm2 brugbar, er at konfigurere Ctrl+Venstre og Ctrl+Højre-pilene til at respektere den klassiske terminaladfærd med at springe til starten og slutningen af en ordgrænse. For at gøre dette skal du navigere til Indstillinger > Profiler > Profiler > Din profil > Tastaturgenveje og indtaste følgende:
- Tastaturgenvej: ←
- Håndtering: ^←
- Håndtering: Send Escape-sekvens
- Esc+: b
Dernæst den anden:
- Tastaturgenvej: ^→
- Aktion: Send Escape-sekvens
- Esc+: f
Lær mere om, hvad du kan gøre med iTerm2, og nyd den tilpassede oplevelse.
En simpel kommandoprompt
Jeg er en af de kedelige brugere af terminalprompten. Jeg inkluderer ikke Git-mappen eller exitkoden, og jeg bruger kun en enkelt linje. Den eneste fancy komponent, jeg bruger, er kubectx, som omfatter den aktuelle Kubernetes-kontekst. Som OpenShift Dedicated Site Reliability Engineer (SRE) skal jeg køre kommandoer med den rette kontekst, og kubectx
gør det nemt at vide, hvor jeg er, når jeg skriver. Så min Bash PS1 er den kedelige username@host cwd $
, bortset fra Kubernetes-kontekstpræfikset.
Der er ingen tvivl om, at jeg er på den minimalistiske side, sammenlignet med nogle fancy terminaler, jeg har set. Nogle mennesker nyder gennemsigtighed, og andre foretrækker en masse information på deres prompter – lige fra tid til exitkode og alt muligt andet. Jeg finder det distraherende i mine terminaler, så jeg nyder disse opsætninger på afstand.
Smukt komplekse dotfiles
I forhold til min minimalistiske terminal er det let at se, hvor jeg lægger mine maksimalistiske anstrengelser: udrulning af mine dotfiles, herunder min .bash_profile
og min overordnede Mac-opsætning.
Jeg bruger en række Makefiles, der hostes via GitHub, til at administrere min Mac-opsætning. Dette trækker i min dotfile-specifikke implementeringsmekanisme, som også er i GitHub. Hvorfor alle de værktøjer omkring sikkerhed spørger du? Både it-professionelle og hobbyfolk har brug for en robust måde at placere sikre stykker data på nye systemer på. Måske foretrækker du, at din SSH-konfiguration skal være skjult, eller måske distribuerer du legitimationsoplysninger gennem et tredjepartssystem. Jeg finder det nyttigt at opbevare mine sikre data sammen med alt andet, og jeg har løst dette problem med Ansible Vault. Alle mine hemmeligheder er gemt i Git, krypteret med Ansible Vault. Dekryptering håndteres med Makefiles.
Hvad enten jeg installerer for første gang eller opdaterer eksisterende dotfiles, skal jeg (selvfølgelig) have Ansible Vault, og for at undgå at skulle installere det overalt, lægger jeg det i en container, som jeg kører med Docker, som jeg har installeret overalt. Jeg sætter dekrypteringspassphrasen ind i en fil, run make
, og rydder op i det hele med make clean
. (Du kan lære mere ved at udforske dotfiles.)
Jeg vil sige, at dette forvaltningsskema måske er overdrevet, men nogle folk kan lide komplicerede terminalprompts. Så måske det hele udligner sig i sidste ende.