Programmering i Ruby. Nybegynnerens terminal - del 2
Damian Watroba
Software Engineer
Denne gangen har vi utarbeidet et nytt sett med nyttige kommandoer for å hjelpe deg med å bli kjent med terminalen. Den første delen av veiledningen finner du her: Nybegynnerens terminal - del 1.
Terminal - Teori
Hvor er jeg?
dato - Hvis vi har et slikt behov og ønske, kan vi sjekke gjeldende dato i terminalen.
damian@rubydev:~$ dato
wto, 7 sty 2020,
Tilknytning og oppføring
katt (sammenkjede) - denne kommandoen har mange bruksområder, men det mest populære er å vise innholdet i filer.
I eksempelet nedenfor kan du se to filer - ruby_1.txt og ruby_2.txt - sammen med innholdet i dem. De cat [filnavn] kommandoen viser innholdet i en enkelt fil, mens kommandoen cat [filnavn 1] [filnavn 2] kommandoen viser innholdet i begge filene i riktig rekkefølge.
Det er én ting til vi kan gjøre med katt kommandoen - omdiriger standardutdata til en ny fil ved hjelp av > tegn. Dette betyr at innholdet som vises på skjermen, vil bli omdirigert til en angitt fil. Hvis den angitte filen ikke finnes på den angitte plasseringen, opprettes den automatisk.
Hva har vi her?
ps (prosessstatus) - skriver ut grunnleggende informasjon om prosesser i systemet. Denne kommandoen kan sammenlignes med Windows Oppgavebehandling, der du får en liste over alle programmer og prosesser som kjører. Hver applikasjon, program eller kommando som kjører, blir en prosess med en unik identifikator, den såkalte PID (Process IDentifier).
Som du kan se, er ps kommandoen viste oss ikke så mye. For å sjekke alle aktive prosesser, må vi kalle ps med en aux argument.
Aby zobaczyc wszystkie procesy w systemie, uzywajac skladni BSD:
ps ax
ps axu
drepe - noen ganger slutter en applikasjon eller et program å svare. Dette er hvor drepe kommandoen kommer godt med. Til drepe en prosess, alt du trenger å gjøre er å fylle ut drepe kommandoen med sin PID.
Hvordan finner du PID-en til den prosessen? Det beste er å bruke den tidligere nevnte ps aux kommando. Det kan hende at drepe alene er ikke nok, fordi prosessen venter på at en annen avhengig prosess skal avsluttes. Derfor er det ikke nok, drepe brukes også ofte sammen med -9 alternativet. Det betyr at den kjørende prosessen avsluttes umiddelbart, så før du bruker dette alternativet, må du forsikre deg om at alle viktige endringer er lagret. La oss ta en titt på et eksempel på en slik kommando:
damian@rubydev:~$ kill -9 1234
Echo!
ekko - er dette kommandoen som returnerer teksten den er betrodd. På samme måte som i tilfellet med kattkan du sende den innskrevne teksten til en fil ved hjelp av ekko kommando.
Det kan være nyttig
Når du vil se historikken til tidligere inntastede kommandoer, kan du bruke historie kommando.
Hvis du vil tømme terminalvinduet, må du bruke klar kommando.
Den utgang kommandoen lukker, som navnet tilsier, terminalen eller den åpne fanen.
Begynnelsen og slutten
Den leder kommandoen viser begynnelsen av en fil eller standardutdata. Standardverdien er de første ti linjene. Du kan tilpasse den med -n alternativet der du kan legge inn et heltall under n. For å illustrere dette bedre, vil jeg bruke et eksempel.
Vi trenger en tekstfil. La oss bruke den allerede nevnte historie kommandoen og omdirigering > karakter.
damian@rubydev:~$ history > history.txt
På denne måten ble det opprettet en fil med hele kommandohistorikken. Deretter, ved hjelp av head -15 history.txter det mulig å vise de femten første kommandoene som er tastet inn i terminalen.
På samme måte kan hale kommandoen vil vise oss de siste linjene i den valgte filen.
Søk
grep (global regular expression print) brukes til å søke i teksten etter en streng som samsvarer med det angitte regulære uttrykket (RegExp). Det brukes ofte for å finne et spesifikt uttrykk i en fil eller for å "filtrere" utdataene som returneres. For dette formålet, la oss bruke den tidligere opprettede history.txt filen og sjekke hvor ofte ps kommandoen ble brukt så langt:
damian@rubydev:~$ grep ps history.txt
82 echo "Lorem ipsum rubydev 1" > ruby_1.txt
84 echo "Lorem ipsum rubydev 2" > ruby_2.txt
92 ps
93 ps aux
94 ps --help
95 man ps
96 ps -h
98 ps --help
99 ps -ejH
100 ps aux
101 man ps
102 ps -aux
103 ps aux
109 history | grep ps
113 echo "lorem ipsum rubydev" > rubydev.rb
Som du kan se, grep fant også ord som inneholder uttrykket ps. Uttrykket som ble brukt i vårt eksempel var ps bare. Jeg har planer om å skrive en egen artikkel om regulære uttrykk, men inntil videre oppfordrer jeg deg til å utforske emnet på egen hånd. Grunnleggende kunnskap er akkurat nok for øyeblikket.
Kombinere kommandoer
| (pipe) er et symbol som gjør det mulig å kombinere flere kommandoer (prosesser) og starte dem samtidig. Nærmere bestemt kan vi kombinere utdata (stdout) fra én kommando med inndata (stdin) fra en annen. Det er en veldig nyttig funksjon.
Utdataene (stdout) fra historie kommandoen vil bli søkt etter av grep kommandoen og returnere alle strengene med matchende ps uttrykk.
historie | hale -5
I dette tilfellet kan du bruke hale kommandoen med -5 vil vise de siste fem linjene av utdataene (stdout) fra historie kommando.
Denne kombinasjonen er spesielt nyttig når du leter etter PID-en til prosessen du ønsker å avslutte. Husk at kjøring av grep kommandoen vil også opprette en prosess, så du vil vanligvis se PID-en til grep prosessen i den siste linjen.
Tilgang til filer og kataloger
Før vi kommer til kommandoen som endrer typen tilgangstillatelse, er det verdt å nevne at alle operativsystemer har såkalte tilgangsrettigheter. Dette betyr at hver katalog eller fil inneholder metadata om hvem som har tilgang til den. Den første kolonnen i følgende "output" forteller oss alt om det (utdatainformasjon som vises i terminalvinduet):
historie | hale -5
Tilgang til filer og kataloger defineres av tre komponenter. Den første (user) betyr en enkelt bruker, den andre (group) betyr en gruppe, mens den tredje (other) gjelder for alle andre brukere.
d - avgjør om det er en katalog eller en fil (d - katalog, f - fil)
rwx - brukerrettigheter
r-x - tillatelser for gruppen
r-x - autorisert for alle andre brukere
For å forenkle det, kan du dele det inn i tre deler:
La oss nå gå til selve betydningen av disse rettighetene:
r (read) - lar deg lese innholdet
w (skriv) - lar deg endre innholdet
x (execute) - lar deg kjøre en fil eller åpne en katalog
Fil- eller katalogtillatelser kan endres ved hjelp av chmod (endre modus)-kommandoen. Den enkleste måten å endre tillatelsene på er å bruke det innebygde systemet og oppgi nummeret for tillatelsen for brukeren, gruppen og andre.
For å omsette denne kunnskapen i praksis, la oss endre tillatelsene for de tidligere oppførte wideo for grupper og andre brukere - ta bort alle rettigheter for disse to, men la den fulle tillatelsen gjelde bare for den enkelte brukeren. I henhold til tabellen ovenfor er "ingen rettigheter" angitt med tallet 0. Umiddelbart etter at chmod kommandoen må du sette inn tre sifre, som hver angir rettighetene for den gitte kategorien (bruker - gruppe - andre). Til slutt oppgir du navnet på filen eller katalogen. Kommandoen skal se slik ut:
damian@rubydev:~$ chmod 700 Wideo
damian@rubydev:~$ ls -l | tail -1
drwx------ 2 damian damian damian 4096 sty 6 17:41 Wideo
Sammendrag
Det finnes en hel sverm av andre kommandoer, og den enkleste måten å mestre dem alle på er å øve seg på å løse spesifikke problemer. Hvis du vil lære mer om dem, Jeg anbefaler Pocket Linux-leksikonet med kommandoer. Etter min mening er det en hyggelig måte å slå i hjel litt tid mens man reiser kollektivt.