sunt unul dintre acei oameni care deschide imediat o fereastră de terminal după ce computerul meu pornește. Nu este din necesitate în acest moment, dar obiceiul este acolo. Mi-am petrecut cea mai mare parte a carierei învățând incantațiile sale magice și găsesc că navigarea prin sarcinile mele zilnice pe terminal face o zi mai plăcută la locul de muncă. Toate acestea fiind spuse, este frumos să încerci ceva nou din când în când.
am renunțat recent la interpretul implicit al liniei de comandă, Bash, în favoarea fish, care se comercializează cu mândrie ca „o coajă de linie de comandă pentru anii ’90”. Iată de ce am trecut.
am găsit asta .bashrc nu este suficient
cu puțin peste un an în urmă am decis să nu mai abstractizez sistemele mele de operare și să încep să o învăț de la zero. Am trecut recent de la Mac la Linux, care mi-a dat un motiv să se uite în portarea dotfiles mele la noul mediu. A fost revigorant; Am găsit o tona de comenzi rapide confuze și duplicarea și asociat-l la ceva care porturile între sistemele de Operare bine. Iată câteva favorite:
## Nicer shell experience
export GREP_OPTIONS="--color=auto"; # make grep colorful
export LSCOLORS=gxfxbEaEBxxEhEhBaDaCaD; # make ls more colorful as well
export HISTSIZE=32768; # Larger bash history (allow 32³ entries; default is 500)
export HISTFILESIZE=$HISTSIZE;
export HISTCONTROL=ignoredups; # Remove duplicates from history. I use `git status` a lot.
export HISTIGNORE="ls:cd:cd -:pwd:exit:date:* --help"; # Make some commands not show up in history
export LANG="en_US.UTF-8"; # Language formatting is still important
export LC_ALL="en_US.UTF-8"; # byte-wise sorting and force language for those pesky apps
export MANPAGER="less -X"; # Less is more
export GPG_TTY=$(tty); # for gpg key management
am fost într-o călătorie pentru a demistifica magia mediului meu și începe să aibă mai mult sens.
Personalizare pauze meu .bashrc
în acest punct de claritate m-am blocat din nou. Vreau câteva convenții moderne în terminalul meu, în special sugestii automate, evidențierea sintaxei și colorarea ieșirilor de comandă fără prea multe dependențe și aș dori ca acea configurație să fie independentă de orice interpret de linie de comandă pe care îl rulez. (iTerm2 este excelent pe un Mac, dar nu vreau să-i urmăresc fișierul de configurare criptic în dotfiles. Și ce să fac?
prima dată când am mers după un răspuns, L-am rezolvat pas cu pas:
- În primul rând, mi-am personalizat~/.fișier inputrc pentru a permite căutarea înainte și înapoi.
- apoi, am înlocuit cat cu ieșirea prettified de CCAT și aliased cat la CCAT în mea .bashrc. Mai târziu, acest lucru a rupt în cele din urmă scrierea către stdout în unele cazuri, așa că am încetat să o folosesc.
- în cele din urmă, am folosit Bash-it, care este un sistem plugin puternic pentru personalizarea Bash.
după peeling înapoi piesele unul câte unul, am simțit am înțeles un pic mai mult despre modul în care sistemul meu a fugit. Cercurile prin care am simțit că trebuie să trec pentru a obține experiența modernă pe care am căutat-o m-au condus înapoi la standardele care m-au adus în acest punct. M-am simțit ca un prizonier al istoriei până când am decis să arunc totul și să încerc ceva total diferit.
easy defaults și personalizare cu coajă de pește
coajă de pește este o interfață modernă de linie de comandă cu auto-sugestii, completare filă, și sintaxa evidențierea (printre alte caracteristici). Îmi place mai ales cum de la prima dată când încercați tastând pește, obțineți o experiență frumoasă:
în prima linie, comanda este albastră, deoarece pwd este o comandă validă. Pe a doua linie, este roșu, deoarece pdw nu este o comandă validă. Am lovit Enter pentru a arăta că este adevărat, dar aș fi putut corecta rapid eroarea și am continuat cu ziua mea. În a treia comandă, vreau să schimb directorul (cd) în folderul meu de dezvoltare, iar fish întreabă automat dacă vreau să intru în dotfiles, așa cum am făcut ultima dată. Când am lovit fila de două ori, arată alte opțiuni în același director, la fel cum m-aș aștepta.
Dacă vreau să-mi personalizez experiența cu coajă de pește, nu trebuie să instalez nicio bibliotecă sau cadru suplimentar pentru a face acest lucru. Navele de pește cu comanda fish_config, care lansează o interfață grafică de utilizator (GUI) unde puteți alege diferite culori și configurații prompte.ce este mai impresionant este că puteți revizui toate funcțiile disponibile, variabile, legături, și mai mult de la GUI, de asemenea:
dacă tune configurația, toate personalizările sunt stocate în același loc: ~/.config / pește. Captura de ecran de mai sus arată că am făcut o funcție personalizată care îmi permite să activez cu ușurință un mediu Python folosind pyenv. Consultați tutorialul despre funcțiile peștilor pentru mai multe.
fii avertizat: peștele nu este ca Bash
când am încercat alte cochilii, am descoperit că au existat întotdeauna câteva diferențe pe care trebuia să le acord, dar s-au simțit familiare în general. Nu este cazul peștilor. Definiția funcției, aliasing-ul și variabilele funcționează puțin diferit. Există strategii utile pentru conversie .bashrc și .bash_profile fișiere în configurația de pește, dar este mai mult decât voi acoperi în acest articol. Deci, în timp ce am ajuns să iubesc peștele, vă recomand să luați tutorialul interactiv pentru o rotire pentru a vedea dacă vă place.
dă pește o încercare pentru o coajă implicit frumos
îmi place începe ziua mea prin deschiderea terminalului, și mă bucur chiar mai mult de la trecerea la coajă de pește. Mi-a permis să trec de la îngrijorarea cu privire la ceea ce este în Bash la concentrarea asupra codului pe care intenționez să-l scriu. Dacă doriți să vă îndepărtați de tinkering cu terminalul dvs. și să vă concentrați mai mult pe cod, încercați. Utilizați chsh pentru a-l seta ca shell implicit și anunțați-mă cum merge în comentarii.