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ă.
Comanda de bază * NIX constă din trei componente:
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
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ă.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.
Există trei comenzi principale de navigat în arborele de fișiere:
PWD
pentru a imprima numele directorului de lucru curentCD
pentru a schimba directorulls
pentru a afișa conținutul directoruluiIată 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 /
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.
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 noumkdir
să facă directoarecp
pentru a copia fișiere și directoaremv
pentru a muta sau a redenumi fișiere și directoarerm
pentru a șterge fișierele și foldereleUrmă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
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
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.
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:
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
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
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.
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
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'
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.