Instrumente utile * NIX Shell pentru dezvoltatorii web

Deci, de ce * NIX și de ce trebuie să mergi la consola?

Potrivit statisticilor W3Techs, Unix este utilizat de 68% din toate site-urile web ale căror sisteme de operare știu. Acest lucru înseamnă că, dacă sunteți dezvoltator web, codul dvs. rulează cel mai probabil pe un server Linux. Și cel puțin trebuie să știți cum să configurați și să depanați codul pe sistemele Unix și Linux. Să vedem ce trebuie să știți pentru a vă simți confortabil în linia de comandă.

Cele elementare

Comanda de bază * NIX constă din trei componente:

  • comanda sau program pentru a rula
  • Opțiuni pentru a modifica sau a specifica comportamentul comenzii
  • argumente sau datele de intrare necesare pentru a rula comanda   

De exemplu, dacă trebuie să obțineți o listă de fișiere din director / Var / www, trebuie să executați comanda ls cu argumentul / Var / www. Pentru a adăuga dimensiunea fișierelor la ieșire, trebuie să adăugați -s opțiune, iar comanda finală va arăta astfel:

ls -s / var / www

I / O redirecționări și conducte

Multe comenzi * NIX utilizează introducerea textului și ieșirea pe care o puteți utiliza și caracteristica extraordinară a acestui lucru este că puteți trimite rezultatele de ieșire ale comenzii într-un fișier utilizând redirecționarea sau chiar să treci ieșirea unei comenzi la intrarea o altă comandă care utilizează conductele. De exemplu, putem scoate comanda din exemplul anterior într-un fișier:

ls -s / var / www> /var/www/files.txt

Această comandă va crea sau șterge fișierul /var/www/files.txt și să emită o listă de fișiere în / Var / www director. Iată o listă de redirecționări și conducte standard I / O:

  • > Redirecționarea ieșirii dintr-o comandă către un fișier de pe disc. Fișierul va fi șters și suprascris.
  • >> Aceeași redirecționare, dar adăugarea fișierului de ieșire.
  • < Obțineți intrare pentru a comanda dintr-un fișier.
  • | Treceți ieșirea unei comenzi la intrarea unei alte comenzi.
  • reper Atât redirecționați ieșirea către un fișier și treceți-l la următoarea comandă din conductă.

Principalele comenzi

Pentru a obține pagini manuale pentru o comandă, rulați om. Paginile manuale urmează un aspect comun și pot include exemple de nume, sinoptice, descriere și utilizare. Aceasta va afișa documentația pentru chmod comanda:

om chmod

Pentru a executa unele comenzi cum ar fi salvarea configurațiilor sau procesele de repornire, trebuie să le executați ca super-utilizator. Pentru a face acest lucru, trebuie să vă pregătiți sudo la comanda ta:

utilizator @ server: / var / www $ chmod 777 jurnal chmod: modificarea permisiunilor pentru 'log': Operația nu este permisă utilizator @ server: / var / www $ sudo chmod 777 log sudo chmod 777 log

Dacă trebuie să executați o grămadă de comenzi ca un super utilizator, puteți folosi su, sau comutarea comenzii utilizatorului.

utilizator @ server: / var / www $ su Parola: root @ server: / var / www #

Notă: Pentru a salva stratul de securitate și pentru a evita executarea accidentală de comenzi neplăcute, nu utilizați sudo și su fără vreun scop.

În lumea reală

Navigare de bază

Există trei comenzi principale de navigat în arborele de fișiere:

  • PWD pentru a imprima numele directorului de lucru curent
  • CD pentru a schimba directorul
  • ls pentru a afișa conținutul directorului

Iată un exemplu de utilizare a acestor comenzi cu ieșirea terminalului:

utilizatorul @ server: ~ $ pwd / home / user utilizator @ server: ~ $ cd / var / www utilizator @ server: / var / www $ ls -alF total 16 drwxr-xr-x root root 4096 Jan 22 09:45 ./ drwxr-xr-x 14 rădăcină rădăcină 4096 Jan 22 09:38 ... / drwxr-xr-x 2 rădăcină de rădăcină 4096 Jan 22 09:45 html / drwxr-xr- drwxrwxrwx 1 utilizator utilizator 442 Mar 24 12:22 testarea /

Căutarea fișierelor

Există găsi comanda pentru a căuta fișiere într-o ierarhie de directoare. Această comandă este foarte puternică și poate căuta fișiere și directoare după nume, permisiuni de acces, dată și dimensiune.

Găsiți toate directoarele cu numele "jurnal" în / Var / www director folosind -tip opțiune:

găsiți / var / www -type d -name logs

Pentru a căuta fișierele PHP în directorul curent, adăugați -Nume opțiune:

găsi . -type f -name "* .php"

Găsiți fișierele cu permisiuni definite utilizând funcția -permanent opțiune:

găsi . -type f -perm 0777 -print

Găsiți toate fișierele care sunt mai mari de 500 MB:

găsi / -size + 500M

Desigur, puteți combina toate aceste opțiuni într-o singură comandă, și aceasta este doar principiile de bază găsi comanda, care este un instrument foarte puternic pentru căutarea fișierelor. Utilizați pagini manuale pentru a obține mai multe informații.

Manipularea fișierelor și a folderelor

Există cinci comenzi principale pentru manipularea fișierelor și a folderelor în sistemul * NIX:

  • atingere este folosit pentru a schimba timestamps pe fișiere și directoare existente, dar, de asemenea, aceasta este cea mai ușoară cale de a crea un fișier nou
  • mkdir să facă directoare
  • cp pentru a copia fișiere și directoare
  • mv pentru a muta sau a redenumi fișiere și directoare
  • rm pentru a șterge fișierele și folderele

Următorul exemplu va crea un fișier index.html, copiați acest fișier în noul director din / Var / www, și eliminați fișierul sursă.

rădăcină @ localserver: ~ # touch index.html root @ localserver: ~ # mkdir / var / www / newdir rădăcină @ localserver: ~ # cp index.html / var / www / newdir / root @ localserver: ~ # rm index.html

O altă mare comandă este ln, care este proiectat pentru a face legături între fișiere. Comanda ln este adesea folosit pentru a crea o legătură simbolică pentru a activa o gazdă virtuală:

sudo ln -s /etc/apache2/sites-available/newvirtualhost.com.conf / etc / apache / site-enabled / newvirtualhost.com.conf

Modificați permisiunile de acces

Pentru a schimba proprietarul și grupul de fișiere, utilizați chown. Nu uitați să acordați dreptul de proprietate utilizatorului Apache atunci când creați o nouă gazdă virtuală a aplicației dvs. web:

sudo chown -R www-date: www-data /var/www/newvirtualhost.com

Uneori, cache-urile sau directoarele jurnalului aplicației trebuie să fie scrise pentru toți utilizatorii, astfel încât trebuie să modificați modurile de acces la 777 cu chmod comanda. Adaugă -R opțiunea de a adăuga permisiunea pentru toate fișierele și folderele imbricate.

sudo chmod -R 777 / var / www / privat / cache

Dacă doriți doar să creați un fișier executabil, utilizați chmod cu +X opțiune.

sudo chmod + x /var/www/private/backup.sh

Citirea fișierelor

Pentru a vizualiza fișierele din consola, puteți utiliza pisică comanda. Cu pisică, puteți concatena conținutul fișierelor utilizând parametri suplimentari și puteți utiliza, de asemenea, masca în nume de fișiere.

pisica /etc/apache2/apache2.conf cat /etc/apache2/apache2.conf /etc/apache2/ports.conf cat / etc / apache2 / mods-enabled / *

Cu exceptia pisică comanda vă va face confundată foarte repede, deoarece arată ieșirea în format brut fără nici o paginare - deci este incomod de utilizat cu ieșirea jurnalului. Pentru a obține un filtru pentru paginarea prin text pe ecran unul de celălalt, ar trebui să utilizați Mai Mult sau Mai puțin comenzi, care sunt de mult o muchness.

mai puțin /etc/apache2/apache2.conf cat / etc / apache2 / mods-enabled / * | Mai puțin

O altă comandă utilă este coadă, care este creat pentru a scoate ultima parte a fișierelor. Această comandă este perfectă pentru a vă uita prin istoricul jurnalului. Implicit, această comandă coadă imprimă ultimele 10 linii și puteți schimba acest număr utilizând -n parametru.

coada /var/log/apache2/error.log coada -n 25 /var/log/apache2/error.log

Dar dacă aveți, de exemplu, o grămadă de fișiere log, aveți nevoie de ceva mai puternic pentru a face o căutare corectă. Ceva asemănător cu grep-un program care citește de la intrarea standard, testează fiecare linie împotriva unui model și scrie la ieșirea standard liniile care se potrivesc cu acest model. Utilizând-o în combinație cu pisică și conducte, veți obține ceea ce doriți.

Dacă doriți să filtrați liniile de text ale ieșirii, puteți utiliza funcția grep comanda:

grep notă /var/log/apache2/error.log cat /var/log/apache2/*.log | grep "închidere"

După cum puteți vedea, grep este bun pentru utilizarea în conducte. În acest exemplu, ultima comandă va afișa toate liniile care conțin șirul de "închidere" din fișierele jurnal.

Editarea fișierelor

Dacă doriți să editați fișiere text în modul consolă, puteți utiliza unul dintre cele trei editoare de text cele mai populare:

  • GNU nano, un editor de text implicit mic și prietenos, care este o alegere perfectă pentru sarcinile de bază
  • sevă, un editor de text pentru programatori îmbunătățit, care este cel mai puternic, dar complex pentru începători
  • mcedit, un editor cu funcții complete de la Midnight Commander, ușor de utilizat, dar care nu este instalat în mod implicit pe sistemele * NIX

Comparați-le și alegeți-vă:

nano /var/log/apache2/error.log vim /var/log/apache2/error.log mcedit /var/log/apache2/error.log

Arhivarea

Uneori trebuie să creați copii de rezervă sau să comprimați unele date pe serverul dvs..

Cele mai comune utilități de arhivare sunt gudron și zip. Observați că zip nu este posibil să fie instalată în mod implicit pe serverul dvs..

Puteți crea o arhivă cu următoarele comenzi:

tar -zcvf arhivă-nume.tar.gz director sau nume-fișier tar -jcvf arhivă-nume.tbz2 director sau nume-fișier zip arhivă- nume.zip director-sau-nume-fișier

Dacă doriți doar să vedeți o listă de fișiere din arhivă, puteți utiliza -L opțiune pentru ambele gudron și unzip:

tar -ztvf arhiva-nume.tar.gz tar -jtvf arhiva-nume.tbz2 unzip -l arhiva-name.zip

Sau extrageți câteva fișiere sursă:

tar -zxvf arhiva-nume.tar.gz tar -jxvf arhiva-nume.tbz2 zip arhiva-name.zip

Programați sarcinile

Dacă doriți să programați scripturile dvs. să ruleze periodic, trebuie să utilizați utilitarul Cron, care este condus de o tabelă cron - un fișier de configurare care specifică comenzile shell care se execută periodic pe o anumită programare. Și comanda de a menține tabelele cron este crontab.

Apelarea crontab cu opțiunea -L va afișa tabelul dvs. cron.

De asemenea -u este furnizată opțiunea pentru a specifica numele utilizatorului al cărui crontab este utilizat. Dacă intenționați să executați sarcini ale aplicației dvs. web, este mai bine să editați crontab pentru datele de utilizator ale utilizatorului.

user @ server: ~ $ sudo crontab -lu www-data # mh dom mon dow comanda * / 5 * * * * php5 / var / www / yii do / sarcini >> /var/www/tasks.log 00 15 * * 1-5 /var/www/backuper.sh

În această ieșire puteți să aruncați o privire la un exemplu de tabelă cron. După cum puteți vedea, fiecare linie este programată cu minut, oră, zi de lună, lună și zi din săptămână. Fiecare câmp poate fi un asterisc, ceea ce înseamnă orice valoare a câmpului. De asemenea, puteți utiliza seturi și intervale folosind virgulă și cratime. În urma unui interval cu o lunetă, se specifică omiterea valorii numărului prin interval. În acest exemplu, prima comandă va rula la fiecare cinci minute, iar a doua comandă va fi difuzată de luni până vineri la ora 15:00.

Pentru a edita această listă, executați crontab cu -e cheie în loc de -L. Lista cron va fi deschisă în editorul dvs. implicit. Folosește -r opțiune pentru ștergerea listei cron.

Monitorizarea performantei

Comanda top afișează informații sumare ale sistemului și oferă o vizualizare dinamică în timp real a proceselor din sistemul de operare. presa Shift-M pentru a sorta procesele prin utilizarea memoriei, sau Shift-P pentru a sorta după utilizarea procesorului.

top - 21:33:02 până 308 zile, 21:24, 1 utilizator, medie de încărcare: 0.00, 0.01, 0.05 Sarcini: 87 total, 1 funcționare, 86 de somn, 0 oprit, 0 zombie% CPU 0.0 0.0, Ki, Mem, 501800 total, 471348 utilizată, 30452 gratuit, 49672 buffer-uri KiB Swap: 4194300 total, 56192 folosite, 4138108 gratuit. 149488 memorie cache MEM PID USER PR NI VIRT SRE S% CPU% MEM TIME + COMAND 16269 www-data 20 0 348592 38884 12044 S 0.0 7.7 0: 02.42 php5 26533 www-date 20 0 409516 38488 24312 S 0.0 7.7 1: 00.04 php5- fpm 1076 mysql 20 0 887824 32748 1616 S 0.0 6.5 276: 46.59 mysqld 862 syslog 20 0 256612 31428 368 S 0.0 6.3 32: 45.88 rsyslogd 18901 rădăcină 20 0 105632 4316 3248 S 0.0 0.9 0: 00.04 sshd 25393 www-data 20 0 87356 4312 1564 S 0,0 0,9 4: 46,92 nginx 27846 memcache 20 0 328464 3828 252 S 0,0 0,8 1: 04,30 memcached 

Pentru a afișa cantitatea de memorie liberă și utilizată în sistem, utilizați liber comanda. Adaugă -h opțiunea de a afișa câmpurile de ieșire în format citibil de om.

user @ server: ~ $ free -h total folosită gratuit tampoane partajate cache Mem: 490M 453M 36M 23M 46M 140M - / + tampoane / cache: 265M 224M Swap: 4.0G 54M 3.9G

O altă comandă utilă este df, care este o comandă pentru a raporta utilizarea sistemului de discuri pe disc. Puteți să o apelați cu -A opțiunea de a afișa toate sistemele de fișiere ale serverului dvs. De asemenea, nu uitați să adăugați -h pentru formatul care poate fi citit de om.

user @ server: ~ $ df -ah Dimensiunea sistemului de fișiere folosit Avail Utilizați% Mounted pe / dev / vda1 20G 6.3G 13G 34% / udev 235M 4.0K 235M 1% / dev tmpfs 50M 344K 49M 1% / run

Istoricul liniei de comandă

Puteți utiliza funcția !! comanda pentru a repeta comanda anterioară sau pentru a le folosi sudo !! dacă ați uitat să rulați o comandă cu sudo.

user @ server: / var / www $ chmod 777 jurnal chmod: modificarea permisiunilor pentru 'log': Operatia nu este permisa user @ server: / var / www $ sudo !! sudo chmod 777 log

Dacă ați uitat sintaxa de comenzi sau vă simțiți leneși în legătură cu tastarea unei interogări de comandă mari, puteți folosi istorie pentru a afișa istoricul comenzilor. Este bine să combinați această comandă cu comenzile de filtre de șiruri de genul grep, coadă și altele pentru a găsi exact ceea ce doriți.

istorie | coada istoriei istoria grep crontab | egrep -i 'ssh | ftp'

Concluzie

Folosirea consolei nu este știința rachetelor. Sistemele Unix și Linux sunt ușor de înțeles și de utilizat din cauza designului lor simplu și a documentației bune. Sper că acest articol vă va face destul de confortabil cu linia de comandă și vă va aduce la următorul nivel de gestionare a aplicațiilor web cu linia de comandă.

Dacă aveți întrebări sau doriți să partajați comenzile dvs. de consola preferate, nu ezitați să lăsați un comentariu sub articol.

Citirea în continuare

  • Director de comenzi Linux
  • Bash Ghid pentru începători
  • Utilizarea Terminalului
  • Cum pot afla Quick Commands Terminal?
  • Linia de comandă este cel mai bun prieten al tău
Cod