Så, hvorfor * NIX og hvorfor trenger du å gå til konsollen?
Ifølge statistikken fra W3Techs brukes Unix av 68% av alle nettstedene som operativsystemet de kjenner til. Dette betyr at hvis du er webutvikler, kjører koden din sannsynligvis på en Linux-server. Og i det minste må du vite hvordan du konfigurerer og feilsøker koden på Unix og Linux-systemer. La oss finne ut hva du trenger å vite for å føle deg komfortabel i kommandolinjen.
Den grunnleggende * NIX-kommandoen består av tre komponenter:
For eksempel, hvis du trenger å få en liste over filer i katalogen / Var / www
, du må kjøre kommandoen ls
med argumentet / Var / www
. For å legge til størrelsen på filer til utdata, må du legge til -s
alternativet, og den endelige kommandoen vil se slik ut:
ls-s / var / www
Mange * NIX-kommandoer bruker tekstinngang og -utgang som du kan operere med, og den flotte funksjonen til dette er at du kan sende resultatene av kommandoen til en fil ved hjelp av omdirigering, eller til og med sende utgangen fra en kommando til inngangen til en annen kommando ved hjelp av rørledninger. For eksempel kan vi sende kommandoen fra forrige eksempel til en fil:
ls-s / var / www> /var/www/files.txt
Denne kommandoen vil opprette eller slette fil /var/www/files.txt
og skriv ut en liste over filer i / Var / www
katalogen. Her er en liste over standard I / O omdirigeringer og rørledninger:
>
Omdirigere utdata fra en kommando til en fil på disken. Filen blir slettet og overskrevet.>>
Den samme omdirigering, men legger til utdatafilen.<
Få inndata for å kommandere fra en fil.|
Pass output av en kommando til inngangen til en annen kommando.tee
Begge omdirigere utdata til en fil og sende den til neste kommando i rørledningen.For å få manuelle sider for en kommando, kjør Mann
. Manuelle sider følger en felles oppsett og kan omfatte navn, synopsis, beskrivelse og brukseksempler. Dette vil vise dokumentasjonen for chmod
kommando:
mann chmod
For å utføre noen kommandoer som lagring av konfigurasjoner eller omstart av prosesser, må du kjøre dem som superbruker. For å gjøre dette må du prepend sudo
til din kommando:
user @ server: / var / www $ chmod 777 logg chmod: endring tillatelser av logg: Operasjon ikke tillatt bruker @ server: / var / www $ sudo chmod 777 log sudo chmod 777 logg
Hvis du trenger å utføre en rekke kommandoer som en super bruker, kan du bruke su
, eller bytt brukerkommando.
bruker @ server: / var / www $ su Passord: root @ server: / var / www #
Merk: For å lagre sikkerhetslaget og unngå utilsiktet utførelse av angrerbare kommandoer, bruk ikke sudo
og su
uten noe formål.
Det er tre hovedkommandoer å navigere i filtre:
pwd
for å skrive ut navnet på gjeldende arbeidskatalogcd
å endre katalogenls
å liste inn innholdet i katalogenHer er et eksempel på bruk av disse kommandoene med utgangen av terminal:
bruker @ server: ~ $ pwd / home / bruker bruker @ server: ~ $ cd / var / www bruker @ server: / var / www $ ls -alF totalt 16 drwxr-xr-x 5 rotrot 4096 22 jan 09:45 ./ drwxr-xr-x 14 rotrot 4096 jan 22 09: 38 ... / drwxr-xr-x 2 rotrot 4096 jan 22 09:45 html / drwxr-xr-x 3 rotrot 4096 jan 22 09:45 log / drwxrwxrwx 1 bruker bruker 442 Mar 24 12:22 testing /
Det er den finne
kommando for å søke etter filer i et kataloghierarki. Denne kommandoen er veldig kraftig og kan søke etter filer og kataloger etter navn, tilgangstillatelser, dato og størrelse.
Finn alle kataloger med «loggene» navn i / Var / www
katalog ved hjelp av -type
alternativ:
finn / var / www -type d-name logs
Hvis du vil søke etter PHP-filer i gjeldende katalog, legger du til -Navn
alternativ:
finn. -type f -name "* .php"
Finn filer med definerte tillatelser ved hjelp av -perm
alternativ:
finn. -type f-perm 0777-utskrift
Finn alle filer som er større enn 500 MB:
finn / størrelse + 500m
Selvfølgelig kan du kombinere alle disse alternativene i en kommando, og dette er bare grunnleggende for finne
kommando, som er et veldig kraftig verktøy for å søke filer. Bruk manuelle sider for å få mer informasjon.
Det er fem hovedkommandoer for å manipulere filer og mapper i * NIX-system:
ta på
brukes til å endre tidsstempel på eksisterende filer og kataloger, men også dette er den enkleste måten å lage ny filmkdir
å lage katalogercp
å kopiere filer og katalogermv
å flytte eller endre navn på filer og katalogerrm
å slette filer og mapperNeste eksempel vil opprette en fil index.html
, kopier denne filen til den nye katalogen i / Var / www
, og fjern kildefilen.
root @ localserver: ~ # berøre index.html root @ localserver: ~ # mkdir / var / www / newdir root @ localserver: ~ # cp index.html / var / www / newdir / root @ localserver: ~ # rm index.html
En annen stor kommando er ln
, som er laget for å lage koblinger mellom filer. Kommandoen ln
brukes ofte til å lage en symbolsk lenke for å aktivere en virtuell vert:
sudo ln -s /etc/apache2/sites-available/newvirtualhost.com.conf / etc / apache / sites-enabled / newvirtualhost.com.conf
For å endre filens eier og gruppe, bruk chown
. Ikke glem å gi eierskap til apache-brukeren når du lager en ny virtuell vert for webapplikasjonen din:
sudo chown -R www-data: www-data /var/www/newvirtualhost.com
Noen ganger må cache eller logg kataloger av søknaden din skrives for alle brukere, slik at du må endre tilgangsmodus til 777 med chmod
kommando. Legg til -R
mulighet til å legge tillatelse til alle nestede filer og mapper.
sudo chmod-R 777 / var / www / privat / cache
Hvis du bare vil gjøre en fil kjørbar, bruk chmod
med +x
alternativ.
sudo chmod + x /var/www/private/backup.sh
Hvis du vil vise filer i konsollen, kan du bruke katt
kommando. Med katt
, Du kan sammenkoble filernes innhold ved hjelp av ekstra parametere, og du kan også bruke maske i filnavn.
cat /etc/apache2/apache2.conf cat /etc/apache2/apache2.conf /etc/apache2/ports.conf cat / etc / apache2 / mods-enabled / *
Men katt
kommandoen vil få deg forvirret veldig fort, fordi den viser utdata i råformat uten noen personsøking, så det er ubeleilig å bruke med loggutgang. For å få et filter for personsøking gjennom tekst en skjermbilde av gangen, bør du bruke mer
eller mindre
kommandoer, som er mye av en muchness.
mindre /etc/apache2/apache2.conf cat / etc / apache2 / mods-enabled / * | mindre
En annen nyttig kommando er hale
, som er opprettet for å sende ut den siste delen av filene. Denne kommandoen er perfekt for å se gjennom logghistorier. Denne hale kommandoen skriver som standard de siste 10 linjene, og du kan endre dette nummeret ved hjelp av -n
parameter.
hale /var/log/apache2/error.log tail -n 25 /var/log/apache2/error.log
Men hvis du for eksempel har en masse loggfiler, trenger du noe kraftigere for å gjøre et skikkelig søk. Noe som grep
-et program som leser fra standardinngang, tester hver linje mot et mønster og skriver til linjene output linjene som samsvarer med dette mønsteret. Ved å bruke den i kombinasjon med katt
og rørledninger, vil du få det du vil ha.
Hvis du vil filtrere tekstlinjer med utdata, kan du bruke grep
kommando:
grep notice /var/log/apache2/error.log cat /var/log/apache2/*.log | grep "lukker ned"
Som du kan se, grep
er bra for bruk i rørledninger. I dette eksemplet vil den siste kommandoen sende ut alle linjer som inneholder "lukke" strengen fra loggfiler.
Hvis du vil redigere tekstfiler i konsollmodus, kan du bruke en av de tre mest populære tekstredaktørene:
Sammenlign dem og gjør ditt valg:
nano /var/log/apache2/error.log vim /var/log/apache2/error.log mcedit /var/log/apache2/error.log
Noen ganger må du sikkerhetskopiere eller komprimere noen data på serveren din.
De vanligste arkiveringsverktøyene er tjære
og glidelås
. Legg merke til at glidelås
Kommandoen kan ikke installeres på serveren din som standard.
Du kan opprette et arkiv med følgende kommandoer:
tar -zcvf arkiv-navn.tar.gz katalog-eller-fil-navn tar -jcvf arkiv-navn.tbz2 katalog-eller-fil-navn zip arkiv-name.zip katalog-eller-fil-navn
Hvis du bare vil se en liste over filer i arkivet, kan du bruke -l
alternativ for begge deler tjære
og unzip
:
tar -ztvf arkivnavn.tar.gz tar -jtvf arkiv-navn.tbz2 unzip -l arkivnavn.zip
Eller trekk ut noen kildefiler:
tar -zxvf arkiv-navn.tar.gz tar -jxvf arkiv-navn.tbz2 zip arkiv-name.zip
Hvis du vil planlegge skriptene dine for å kjøre regelmessig, må du bruke Cron-verktøyet, som drives av et cron-tabell - en konfigurasjonsfil som spesifiserer skallkommandoer for å kjøre regelmessig på en gitt tidsplan. Og kommandoen for å opprettholde cron tabeller er crontab
.
Ringer crontab med mulighet -l
vil vise ditt cron bord.
Også, den -u
alternativet er angitt for å spesifisere navnet på brukeren hvis crontab blir brukt. Hvis du skal kjøre oppgavene til webapplikasjonen din, er det bedre å redigere crontab for brukerens www-data.
bruker @ server: ~ $ sudo crontab -lu www-data # mh dom mon dow kommando * / 5 * * * * php5 / var / www / yii gjør / oppgaver >> /var/www/tasks.log 00 15 * * 1-5 /var/www/backuper.sh
I denne utgangen kan du se på et eksempel på et cron-bord. Som du kan se, er hver linje planlagt etter minutt, time, dag i måned, måned og ukedag. Hvert felt kan være en stjerne, som betyr alle verdier av feltet. Du kan også bruke sett og intervaller ved hjelp av komma og bindestreker. Å følge et område med et skråstrekspor, hopper over tallets verdi gjennom området. I dette eksemplet vil den første kommandoen løpe hvert femte minutt, og den andre kommandoen løper fra mandag til fredag klokka 15.00.
For å redigere denne listen, kjør crontab med -e
nøkkel i stedet for -l
. Cron-listen vil bli åpnet i standardredigeringsprogrammet. Bruke -r
alternativ for å slette cronlisten.
Kommando topp viser systemoppsummeringsinformasjon og gir en dynamisk sanntidsvisning av kjørende systemprosesser. trykk Shift-M
for å sortere prosesser ved minnebruk, eller Skift-P
å sortere etter CPU bruk.
topp - 21:33:02 opp 308 dager, 21:24, 1 bruker, last gjennomsnitt: 0.00, 0.01, 0.05 Oppgaver: 87 totalt, 1 løp, 86 sove, 0 stoppet, 0 zombie% Cpu (er): 0.3 oss , 0,0 s, 0,0 ni, 99,7 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st KiB Mem: 501800 totalt, 471348 brukt, 30452 gratis, 49672 buffere KiB Bytte: 4194300 totalt, 56192 brukt, 4138108 gratis. 149488 cached Mem PID BRUKER PR NI VIRT RES SHR S% CPU% MEM TID + COMMAND 16269 www-data 20 0 348592 38884 12044 S 0.0 7.7 0: 02.42 php5 26533 www-data 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 rot 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
For å vise mengden ledig og brukt minne i systemet, bruk gratis
kommando. Legg til -h
mulighet til å vise utdatafelt i menneskelig lesbart format.
user @ server: ~ $ free - totalt brukte gratis delte buffere cached Mem: 490M 453M 36M 23M 46M 140M - / + buffere / cache: 265M 224M Bytte: 4.0G 54M 3.9G
En annen nyttig kommando er df
, som er en kommando for å rapportere filsystem diskplass bruk. Du kan ringe det med -en
alternativ for å vise alle filsystemene på serveren din. Ikke glem å legge til -h
alternativ for menneskelig lesbar format.
user @ server: ~ $ df -ah Filsystemstørrelse Brukt Avail Bruk% Montert på / dev / vda1 20G 6.3G 13G 34% / udev 235M 4.0K 235M 1% / dev tmpfs 50M 344K 49M 1% / løp
Du kan bruke !!
kommandoen for å gjenta den forrige kommandoen, eller bruk sudo !!
hvis du glemte å kjøre en kommando med sudo
.
user @ server: / var / www $ chmod 777 logg chmod: endring tillatelser av 'logg': Drift ikke tillatt bruker @ server: / var / www $ sudo !! sudo chmod 777 logg
Hvis du glemte kommandosyntaxen eller føler deg lat om å skrive en stor kommandolinje, kan du bruke historie
for å vise kommandoen din. Det er godt å kombinere denne kommandoen med strenger, filterkommandoer som grep
, hale
og andre for å finne akkurat det du vil ha.
historie | halehistorie | grep crontab historie | egrep -i 'ssh | ftp'
Bruk av konsollen er ikke rakettvitenskap. Unix og Linux-systemer er enkle å forstå og bruke på grunn av deres enkle design og god dokumentasjon. Jeg håper denne artikkelen vil gjøre deg ganske komfortabel med kommandolinjen og ta deg til neste nivå for å administrere webapplikasjonene med kommandolinjen.
Hvis du har noen spørsmål, eller du vil dele favorittkonsollkommandoer, ikke nøl med å legge igjen en kommentar under artikkelen.