de Mohammed Ajmal Siddiqui

O introducere în Dotfiles: cum să preia controlul asupra mediului dvs. de dezvoltare

O introducere la Dotfiles cum sa preia controlul asupra mediului
Fișierele cu puncte sunt în general precedate de un punct (.)

Notă: Acesta este un articol introductiv de bază. Dacă știți deja elementele fundamentale ale gestionării fișierelor dot, vă recomand să-mi citiți al doilea articol.

În calitate de dezvoltatori, ne străduim să reducem la minimum timpul pe care îl petrecem pentru lucruri redundante, cum ar fi configurarea mediului nostru, scrierea codului de tip boilerplate și practic nu facem nimic care să nu privească partea distractivă a codificării – construirea de lucruri noi.

În acest context, imaginați-vă o lume perfectă în care comenzile minuscule îndeplinesc sarcini incredibil de complexe, adaptate nevoilor dvs., unde puteți cumpăra un laptop nou astăzi și puteți instala toate instrumentele și pachetele de care aveți nevoie și puteți configura mediul de dezvoltare cu doar câteva terminale comenzi și unde totul este magic.

Acest tărâm digital poate fi realizat și cu ușurință. Și există un nume pentru această magie: dotfiles.

Fără alte întrebări, să dezvăluim secretele fișierelor dot!

ad-banner

Introducere

Notă: Acest articol presupune că lucrați cu un sistem de operare asemănător Unix și se bazează foarte mult pe comenzile terminalului Unix și pe scripturile shell. Dacă nu sunteți familiarizați cu acestea, vă recomand să învățați elementele de bază și să reveniți aici. Iată un manual pentru scripturi shell.

În sistemele asemănătoare UNIX, o mulțime de fișiere de configurare și altele asemenea sunt precedate de un punct (.). Aceste fișiere sunt ascunse în mod implicit de sistemul de operare și chiar de ls comanda nu dezvăluie prezența lor (vom afla cum să găsim aceste fișiere puțin). Deoarece aceste fișiere sunt precedate de un punct, acestea se numesc fișiere dot. Duh.

Deci, cum putem găsi aceste fișiere legendare dacă sunt ascunse în mod implicit? Pop deschide un terminal și faceți acest lucru:

Notă: Semnul „$” nu trebuie să fie introdus în terminal. Reprezintă faptul că textul după acesta ar trebui să fie tastat într-un prompt terminal.

$ cd ~$ ls -a

Deci, ce face asta?

Prima comandă ( cd ~ ) se mută în directorul principal (simbolul „~” reprezintă directorul principal). Directorul principal este locul în care se găsesc majoritatea fișierelor dvs. de configurare. Așa că ne mutăm mai întâi acolo.

A doua comandă listează fișierele și folderele din directorul curent. Dar există ceva magie aici. -a flag indică comenzii să includă fișiere ascunse în listă.

Bingo! Acum putem vedea fișierele dot!

Modificarea .bash_profile

De obicei, primul fișier pe care majoritatea oamenilor îl modifică atunci când intră în lumea fișierelor dot este .bash_profile sau .bashrc. Și din motive întemeiate. Acest fișier este încărcat la pornirea terminalului și comenzile sale sunt executate la pornirea terminalului.

Unul dintre motivele pentru care ați putea dori să vă modificați fișierul .bash_profile este de a personaliza aspectul terminalului dvs. (pentru a fi specific, promptul terminalului). Aceasta este o artă și o știință în sine și probabil ar trebui să aibă o carte întreagă dedicată, așa că nu voi aborda acest subiect mult în acest articol. Puteți începe să vă personalizați solicitarea cu acest articol.

În schimb, să ne uităm la două construcții obișnuite de shell care sunt probabil printre cele mai importante și utile părți ale fișierelor dot: pseudonime și funcții.

Aliasuri

Aliasurile sunt pur și simplu nume / acronime scurte pe care le puteți atribui unei secvențe mai lungi de comenzi pentru a reduce timpul necesar pentru a o tasta și, astfel, pentru a vă crește viteza. De exemplu, aproape fiecare dezvoltator folosește git. Oricine folosește git CLI (și să recunoaștem – ar trebui să utilizați git CLI), probabil a folosit comenzi lungi precum acestea:

// commit changes$ git commit -m "some changes"
// push changes to the master branch of origin$ git push origin master

Aceste comenzi sunt destul de puțin de tastat. Dacă credeți că nu sunt, vă veți răzgândi după ce veți începe să utilizați aliasuri.

Tastați următoarele în promptul shell:

$ alias gpom='git push origin master'

Acum, când tastați gpom, git push origin master este executat! Ai trecut de la 4 cuvinte la 4 scrisori! ?

Dar există o problemă. Închideți terminalul, reporniți-l și încercați gpom din nou. Aliasul tău a dispărut! Acest lucru se datorează faptului că aliasul este definit pentru sesiunea curentă a terminalului.

Deci, cum ne ocolim acest lucru și ne facem aliasurile să rămână?

Vă amintiți că am vorbit despre un fișier ale cărui comenzi sunt executate la pornirea unui terminal? Bingo!

Adăugați următoarea linie la .bash_profile sau .bashrc și salvați-l:

alias gpom='git push origin master'

Acum, ori de câte ori porniți un terminal bash, se creează aliasul de mai sus. Viața începe deja să devină minunată!

Notă: Puteți utiliza nano editor de text pentru a edita fișierele text. Când vă aflați în directorul principal, tastați nano .bash_profile pentru a deschide fișierul folosind nano, efectuați modificările și salvați fișierul lovind Ctrl+X și apoi y când vi se solicită. Vim este un alt editor de text pe care îl puteți utiliza.

Deoarece aliasurile înlocuiesc în esență comanda completă, puteți face aliasuri ca parte a unui instrument comun CLI, cum ar fi git, pentru a ușura toate comenzile. Doar adăugați acest lucru la .bash_profile:

alias g='git'

Și puteți tasta „g” în loc de „git” oriunde doriți să utilizați „git”. Dulce!

Iată câteva aliasuri obișnuite pe care ați putea să le folosiți:

alias home="cd ~"alias ..='cd ..'alias '?=man'# Git CLI aliasesalias g='git'alias gi='git init'alias gra="git remote add"alias gs="git status"...# Aliases for NPMalias nr="npm run"alias ni='npm install'alias nid='npm install -D'...

Funcții

Aliasurile pot merge mult în îmbunătățirea fluxului nostru de lucru, dar există un lucru pe care nu îl pot face: lucrul cu argumente.

Să presupunem că v-ați săturat să executați două comenzi pentru a crea un nou director și cd în el:

$ mkdir new_folder$ cd new_folder

Și ai vrut să faci un alias pentru asta. Dar nu poți, din moment ce ambele mkdir și cd luați argumente și nu puteți transmite argumente aliasurilor.

Deci acum? Amintiți-vă, există o construcție de programare foarte comună care ia argumente? Da, funcții! Scripturile Shell pot avea funcții care pot lua argumente. Minunat! Dacă sunteți puțin ruginit cu funcții în scripturile shell, iată un mic memento.

Puteți transforma secvența de mai sus într-o funcție shell ca aceasta (acest exemplu a fost preluat din dotfiles de mathiasbynens, care are unele dintre cele mai populare fișiere dot în jur. Alte persoane cu fișiere de puncte excelente la care se face referire sunt enumerate și conectate la sfârșitul articolului):

# Create a new directory and enter itfunction mkd() {     mkdir -p "$@" && cd "$_";}

Din nou, puteți pune acest lucru în .bash_profile iar funcția va fi accesibilă în timpul oricărei sesiuni de terminal.

Notă: Va trebui să reporniți terminalul pentru orice modificare a fișierului .bash_profile a intra în vigoare. Dacă aceasta este o corvoadă, fugiți source .bash_profile pentru a adăuga modificările la sesiunea curentă a terminalului. Chiar mai bine, în spiritul dotfiles, creați un alias ca alias reload='source .bash_profile'!

Dotfiles și partajare

De ce își angajează oamenii mediile de dezvoltare – fișierele lor dot – pentru controlul versiunilor? De ce o pun pe GitHub pentru ca toată lumea să o vadă? Același motiv ca întotdeauna: să urmăriți evoluția fișierelor dvs. dot în timp și, cel mai important, la partajați-vă fișierele dot și inspirați alte persoane.

Dacă vă uitați la orice repo matură de fișiere dot, vă veți da seama că există întotdeauna fragmente luate din alte repozite dotfile și altele asemenea. Este posibil ca aceștia să aibă mai mulți colaboratori și întreținători. Împărțim fișierele dot pentru a ne ajuta reciproc să construim medii și fluxuri de lucru mai bune.

Acest lucru permite, de asemenea, oamenilor să utilizeze caracteristicile controlului versiunilor pentru a îmbunătăți fișierele dot ale fiecăruia. Un exemplu în acest sens este utilizarea GitHub Issue Tracker pentru a discuta probleme și îmbunătățiri.

Am fost inspirat să lucrez la fișierele mele dot din fișierele dot ale pradyunsg, care are o repoziție a lui dotfiles impresionantă.

Fișierele mele dot sunt destul de elementare și foarte imature în acest moment și se vor îmbunătăți în timp. Dar acest lucru înseamnă, de asemenea, că începătorii din lumea fișierelor dot vor fi mai puțin intimidați atunci când vor verifica repo-ul.

La fel ca mulți alți oameni, am adăugat un anumit suport pentru personalizarea fișierele mele dot, deci s-ar putea să fie o idee bună pentru persoanele care sunt noi în ideea de fișierele dot să forțeze repo-ul și să încerce să-l facă al lor. Mai multe detalii în repertoriu. Verifică-le și dă-mi feedback!

Iată o listă a persoanelor ale căror fișiere dot sunt mult mai extinse și ar putea să vă inspire:

Concluzie

Acestea sunt elementele fundamentale ale creării mediului dvs. de dezvoltare folosind fișierele dot. Cu toate acestea, există mult mai mult în acest sens, pe care îl vom analiza în continuare în articolul următor în această serie.

Unele dintre subiectele pe care le vom analiza în următorul articol din serie sunt:

  • Crearea unui mediu care să organizeze, să urmărească și să lucreze fără durere cu fișierele dot
  • Împărțirea fișierelor noastre dot pentru a face gestionarea lor mai ușoară și mai scalabilă (observați că este dotfiles, nu dotfile)
  • Scrierea de scripturi pentru a configura (bootstrap) un sistem nou cu fișierele noastre dot
  • Facilitarea partajării fișierelor noastre dot prin adăugarea de suport pentru personalizare

Asta încheie prima parte a seriei pe dotfiles! Iată un link către următorul.

Mi-a plăcut atât de mult ideea de fișiere dot încât m-a inspirat să creez un cadru de bază de gestionare a fișierelor dot – autodot. Cadrul este la început, așa că caut oameni entuziaști care să-mi poată oferi feedback pentru cadru, să contribuie la el spunându-mi despre erori și făcând cereri de caracteristici și să contribuie la cod și documentație. Luați ceva timp pentru asta! 🙂

ajmalsiddiqui / autodot
autodot – Un sistem de gestionare a fișierelor dot care facilitează partajarea fișierelor dvs. dot, păstrându-vă în același timp.github.com

De asemenea, conectează-te cu mine pe GitHub și LinkedIn.

Mult succes și Happy Coding! 🙂