10 comenzi terminale care vor spori productivitatea

În luna mai, Nettuts + a rulat un articol grozav intitulat "7 sfaturi simple și utile de linie de comandă"; acesta a fost un articol grozav pentru a începe să folosiți linia de comandă. Dar există mult mai multe informații despre utilizarea unei cochilii și te voi duce la următorul nivel în acest tutorial!


Noțiuni de bază

Dacă rulați Mac OS X sau aroma preferată Linux, sunteți toți pregătiți. Doar trageți la terminal și continuați. Dacă sunteți pe Windows, bine, setul implicit de comandă nu este exact ceea ce este o coajă bash. Dacă doriți o putere, verificați Microsoft PowerShell; cu toate acestea, comenzile de mai jos nu vor funcționa neapărat acolo. Tu poate sa obțineți o coajă bash pe Windows, deși:

  • Instalați Cygwim, un mediu Linux pentru Windows.
  • Instalați msysgit; în funcție de opțiunile pe care le alegeți la instalare, veți obține un Git Bash care ar trebui să funcționeze toate aceste comenzi.
  • Încercați subsistemul Windows pentru aplicațiile bazate pe Unix. Deși nu am încercat-o eu, înțeleg că puteți obține o coajă Unix cu ea.

În regulă, hai să intrăm!


1. Atingeți

În calitate de dezvoltator, una dintre cele mai comune sarcini este crearea fișierelor. Dacă lucrați din linia de comandă, de cele mai multe ori veți trece numele editorului pe care doriți să îl creați:

$ mate index.html $ mvim implicit.css

Cu toate acestea, ocazional, veți dori doar să creați unul sau mai multe fișiere, fără a le modifica. În acest caz, veți utiliza atingere comanda:

$ touch index.html $ atingeți unul.txt două.txt trei.txt

Este atât de ușor. De fapt, atingere comanda este pentru actualizarea datei de acces / modificare a unui fișier; este doar un efect secundar frumos că dacă fișierul nu există, îl va crea.


2. Cat și mai puțin

Ei bine, din moment ce este vorba despre fișiere, este o schimbare bună, veți dori mai devreme sau mai târziu să vedeți conținutul unui fișier de la terminal. Există câteva comenzi care vă vor face asta. Primul este pisică; pisică este scurt pentru "concatenate", iar această comandă are mai mult decât conținutul fișierului de ieșire; totuși, asta vom privi aici. Este la fel de simplu ca trecerea comenzii un fișier:

$ cat shoppingList.txt

Cu toate acestea, în cazul în care fișierul este mare, conținutul va parcurge toate dvs. și veți rămâne în partea de jos. Acordat, puteți să vă derulați înapoi, dar asta e lame. Ce zici de utilizare Mai puțin?

$ less shoppingList.txt

Mai puțin este o modalitate mult mai bună de a inspecta fișierele mari de pe linia de comandă. Veți primi un ecran plin de text la un moment dat, dar nu mai mult. Puteți muta o linie în sus sau o linie în jos cu k și j respectiv, și mutați o fereastră în sus sau în jos cu b și f. Puteți căuta un model tastând /model. Când ați terminat, apăsați q pentru a ieși din Mai puțin telespectator.


3. Curl

Deoarece probabil lucrați cu o parte echitabilă a bibliotecilor de cadre, veți găsi adesea descărcarea acestor fișiere pe măsură ce lucrați. Știu că îl puteți descărca de pe web, naviga la dosar, decomprima-l și copia piesele în proiectul tău, dar nu sună prea mult? Este mult mai simplu să folosiți linia de comandă. Pentru a descărca fișiere, puteți utiliza răsuci; procedați după cum urmează:

$ curl -O http://www.domain.com/path/to/download.tar.gz

-O pavilionul spune răsuci pentru a scrie conținutul descărcat într-un fișier cu același nume ca fișierul la distanță. Dacă nu furnizați acest parametru, curl va afișa probabil fișierul în linia de comandă (presupunând că este text).

Curl este un instrument destul de extins, deci verificați pagina man (vedeți mai jos) dacă credeți că o veți folosi foarte mult. Iată un sfat elegant care folosește extensia brațului coajă:

$ curl -0 http://www.domain.com/one,two,three.txt

Da, este atât de ușor să descarci mai multe fișiere dintr-un singur loc simultan. (Rețineți că aceasta nu este o funcționalitate curl, este parte a shell-ului, deci puteți folosi această notație în alte comenzi, verificați acest link pentru mai multe)


4. Gudron și Gzip

Deci, acum ești descărcat de linii de comandă; cu toate acestea, există o șansă foarte bună ca majoritatea lucrurilor pe care le descărcați să fie arhivate și gzipate, având o extensie a .tar.gz (sau, alternativ, .tgz). Deci, ce faci cu asta? Să facem un pas înapoi pentru o secundă și să înțelegem exact ceea ce înseamnă "arhivat și gsipit". Probabil sunteți familiarizați cu arhivele. Ați văzut fișiere .zip; sunt o încarnare a arhivelor. Practic, o arhivă este doar un singur fișier care împachetează mai mult de un fișier împreună. Adesea, arhivele comprimă fișierele, astfel încât fișierul final să fie mai mic decât cele originale împreună. Totuși, puteți obține un pic mai mic prin comprimarea arhivei ... și acolo vine gzipping. Gzipping este o formă de compresie.

Deci, înapoi la descărcare. A fost tarat (arhivat) și gzipped. Ai putea să îl dezarhivați și apoi să îl dezarhivați, dar avem de-a face cu mai puține apăsări de taste aici, nu? Iată ce ați face:

$ tar xvzf descărcare.tar.gz

Stai ce? Iată defalcarea: gudron este comanda pe care o executam; xvzf sunt steagurile pe care le folosim (de obicei, ați avea o bordură în față, dar acest lucru este opțional aici). Steagurile sunt după cum urmează:

  • X hai gudron știți că suntem eXtracțiune, nu arhivare.
  • v hai gudron știu că vrem să fie verbose (dă-ne niște rezultate despre acțiunea pe care o efectuează).
  • z hai gudron știți că fișierul cu care lucrăm a fost gzipped (deci dezarhivează fișierul).
  • f hai gudron știți că o vom transmite numele fișierului de arhivă.

Dacă doriți să creați unul dintre aceste arhive gzipped, este la fel de simplu ca înlocuirea X steag cu un c (la create o arhivă). v și z steagurile sunt opțiuni: vrei ieșire? ce zici de gzipping? Desigur, pleacă f; va trebui să dați numele fișierului pentru noua arhivă (în caz contrar, toate acestea vor fi transmise la linia de comandă). După aceasta, veți trece comanda tuturor fișierelor pe care doriți să le puneți în arhivă:

$ tar cvzf arhive.tar.gz index.html css js auth.php $ tar cvzf arhive.tar.gx * .txt

Doar pentru completitudine, voi mentiona ca puteti gzip arhive (sau alte fisiere) in mod individual; când faceți acest lucru, gzip înlocuiește fișierul original cu versiunea gzip. Pentru a dezarhiva, adăugați -d semn (cred decompress).

$ gzip ceva.txt $ gzip -d ceva.txt.gz

5. Chmod

Un alt lucru pe care îl veți face de multe ori ca un dezvoltator web este schimbarea permisiunilor fișierului. Există trei permisiuni pe care le puteți seta și există trei clase care pot primi aceste permisiuni. Permisele sunt citit, scrie, și a executa; sunt clasele utilizator, grup, și alții. Utilizatorul de obicei proprietarul fișierului, utilizatorul care a creat fișierul. Este posibil să existe grupuri de utilizatori, iar clasa de grup determină permisiunile pentru utilizatorii din grupul care pot accesa fișierul. În mod previzibil, clasa celorlalți include toți ceilalți. Numai utilizatorul (proprietarul fișierului) și super-utilizatorul pot modifica permisiunile fișierului. Și tot ce ați citit se referă și la directoare.

Deci, cum putem seta aceste permisiuni? Comanda aici chmod (change mode). Există două moduri de a face acest lucru. În primul rând, o puteți face cu o notație octal; acest lucru este un pic cam critic, dar odată ce ați dat seama, este mai rapid. Practic, executa devine 1 'punct', scrie devine 2, iar cititul devine 4. Poti adauga aceste permisiuni pentru a da mai multe permisiuni: read + write = 6, read + write + execute = 7, etc. veți obține acest număr și le veți alinia pentru a obține un număr de trei cifre pentru Utilizator, Grup și alții. De exemplu, 764 va da utilizatorului toate permisiunile, îi va da capacitatea de citire și scriere în grup și le va da permisiunea celorlalți să citească. Pentru o explicație mai bună, consultați articolul Wikipedia.

Dacă aveți dificultăți în a vă aminti notația octală, puteți găsi mai ușor notația simbolică (deși este nevoie de câteva mai multe apăsări de taste). În acest caz, veți utiliza valorile inițiale "u", "g" și "o" pentru utilizator, grup și, respectiv, altele (și "a" pentru toate clasele). Apoi, veți folosi "r", "w" și "x" pentru citire, scriere și executare. În cele din urmă, veți utiliza operatorii "+", "-" și "=" pentru a adăuga, scădea și seta definitiv permisiunile. Iată cum veți folosi aceste simboluri: clasă, operator, permisiuni. De exemplu, u + rwx adaugă toate permisiunile pentru clasa utilizator; du-te-x elimină permisiunea executabilă din grup și altele; a = rw setează toate clasele să citească și să scrie numai.

Pentru a folosi această teorie pe linia de comandă, veți începe cu comanda (chmod), urmate de permisiuni, urmate de fișiere sau directoare:

$ chmod 760 someScript.sh $ chmod u = rwx g + r o-x de dateFolder

6. Diff și Patch

Dacă ați utilizat controlul versiunii cum ar fi Git sau Subversion, știți cât de util este un astfel de sistem atunci când doriți să împărțiți un proiect cu alți dezvoltatori sau doar să urmăriți versiunile. Dar dacă vrei să trimiți unui prieten câteva actualizări la un singur fișier? Sau dacă un alt dezvoltator v-a trimis prin e-mail noua versiune a unui fișier pe care l-ați editat de când ați primit ultima copie? Uneori, controlul versiunii pline de suflare este prea mult, dar încă mai aveți nevoie de ceva mic. Ei bine, linia de comandă te-ai acoperit. Veți dori să utilizați dif comanda. Înainte de a face modificări într-un fișier, copiați fișierul astfel încât să aveți originalul. După ce actualizați, executați dif; dacă nu trimiteți ieșirea într-un fișier, acesta va fi doar ieșit la linia de comandă, deci includeți a > cu numele fișierului dvs. de patch-uri:

$ cp originalFile noiFile $ vim newFile #edit newFile $ diff originalFile newFile 1c1 < This is a sentence. --- > Aceasta este o propoziție scurtă. $ diff originalFile newFile> modificări.patch

După cum puteți vedea, dif este doar un fișier text simplu care utilizează o sintaxă dif și plasture comandă va înțelege. Plasture? Ei bine, aceasta este comanda care merge mână în mână cu dif. Dacă ați primit un fișier de patch-uri, actualizați originalul după cum urmează:

patch originalFile2 modificări.patch

Și acum sunteți actualizați.


7. Sudo

sudo nu este într-adevăr o comandă ca ceilalți, dar este una pe care veți găsi o nevoie pentru că vă aventurați mai adânc în lumea liniei de comandă. Iată scenariul: există câteva lucruri pe care utilizatorii obișnuiți nu ar trebui să le poată face în linia de comandă; nu este greu să faci daune irevocabile. Singurul utilizator care are dreptul să facă tot ce dorește este un utilizator super, sau un utilizator rădăcină. Cu toate acestea, nu este sigur să fiți logat ca super-utilizator, din cauza acelei puteri. În schimb, puteți utiliza funcția sudo (super user do) pentru a vă da permisiuni de root pentru o singură comandă. Vi se va cere o parolă pentru contul de utilizator, iar când vi se oferă acest lucru, sistemul va executa comanda.

De exemplu, instalarea unei bijuterii de rubin necesită permisiuni super-utilizator:

$ gem install heroku EROARE: În timp ce executați gem ... (Errno :: EACCES) Permisiunea a fost refuzată - /Users/andrew/.gem/ruby/1.9.1/cache/heroku-1.9.13.gem $ sudo gem install heroku Parola: Cu succes instalat heroku-1.9.13

8. Omul

Majoritatea comenzilor pe care le folosiți într-o coajă bash sunt destul de flexibile și au multe talente ascunse. Dacă bănuiți că o comandă ar putea face ceea ce doriți sau doriți doar să vedeți niște instrucțiuni generale cu privire la utilizarea unei comenzi, este timpul să atingeți manualele sau paginile manuale așa cum sunt numite. Doar tastați om urmată de comanda pe care sunteți curioși.

$ ln om

Veți observa că paginile manuale sunt deschise Mai puțin.


9. Închidere

După ce ați terminat ziua, puteți chiar să vă dezactivați computerul de pe linia de comandă. Comanda în lumina reflectoarelor este închide, și va trebui să le folosiți sudo să o execute. Va trebui să dai comanda un drapel sau două; cele mai comune sunt -h pentru a opri sistemul (opriți-l jos), -r pentru a reporni și -s să-l adormi. Apoi, veți trece timpul când ar trebui să se întâmple, fie ca acum, +numberOfminutes, sau yymmddhhmm. În cele din urmă, puteți transmite un mesaj care să fie afișat utilizatorilor atunci când fapta este pe cale să se facă. Dacă aș fi vrut să-mi pun computerul la culcare în jumătate de oră, aș rula acest lucru:

$ sudo închidere-s +30

10. Istorie,!, Și! $

Din moment ce linia de comandă se referă la eficiență, se presupune că este ușor să repetați comenzi. Există câteva moduri de a face acest lucru. În primul rând, puteți utiliza funcția istorie comanda pentru a obține o listă numerotată a mai multor comenzi recente. Apoi, pentru a executa una dintre ele, trebuie doar să tastați un semn de exclamare și numărul istoric.

$ istorie ... 563 chmod 777 one.txt 564 ls -l 565 ls 566 cat one.txt ... $! 565

Acordat, acesta este un exemplu teribil, deoarece scriu mai multe caractere pentru a utiliza istoria decât ar fi nevoie pentru a reintroduce comanda. Dar, odată ce combinați comenzi pentru a crea șiruri lungi, aceasta va fi mai rapidă.

Este chiar mai rapid să accesați ultima comandă și ultimul argument pe care l-ați folosit. Pentru cea mai recentă comandă, utilizați !!; cazul obișnuit de utilizare dat pentru aceasta este adăugarea lui sudo în fața unei comenzi. Pentru ultimul argument, utilizați !$; cu aceasta, trecerea într-un nou dosar este probabil exemplul comun. În ambele cazuri, shell-ul va imprima comanda completă, astfel încât să puteți vedea ce executați cu adevărat.

$ gem install datamapper EROARE: În timp ce executați gem ... (Errno :: EACCES) Permisiunea a fost refuzată - /Users/andrew/.gem/ruby/1.9.1/cache/datamapper-1.0.0.gem $ sudo !! sudo gem instalare datamapper Parola: Instalat cu succes datamapper-1.0.0 $ mkdir lib $ cd! $ cd lib

Concluzie

Dacă sunteți atât de pasionat de productivitatea ca mine, ideea de a folosi cât mai mult linia de comandă ar trebui să rezoneze cu tine. Ceea ce v-am arătat aici este doar un eșantion al comenzilor construite ... atunci sunt mai multe decât puteți să vă instalați (uitați-vă de ceva de genul managerului de pachete homebrew, de exemplu). Dar poate că deja ești expert în linia de comandă; dacă da, puteți împărți o altă mare comandă cu restul dintre noi? Apăsați comentariile!

Cod