Programmering i Ruby. Begynderens terminal - del 2
Damian Watroba
Software Engineer
Hej! Denne gang har vi forberedt endnu et sæt nyttige kommandoer, der kan hjælpe dig med at blive fortrolig med at bruge terminalen. Den første del af vejledningen kan findes her: Begynderterminalen - del 1.
Terminal - Teori
Hvor er jeg?
dato - Hvis vi har et sådant behov og ønske, kan vi tjekke den aktuelle dato i terminalen.
damian@rubydev:~$ dato
wto, 7 sty 2020,
Tilslutning og listeføring
kat (sammenkædning) - denne kommando har mange anvendelsesmuligheder, men den mest populære er at vise indholdet af filer.
I eksemplet nedenfor kan du se to filer. ruby_1.txt og ruby_2.txt - sammen med deres indhold. Den cat [filnavn] viser indholdet af en enkelt fil, mens kommandoen cat [filnavn 1] [filnavn 2]. kommandoen viser indholdet af begge filer i den rigtige rækkefølge.
Der er endnu en ting, vi kan gøre med kat kommandoen - omdiriger standardoutputtet til en ny fil ved hjælp af kommandoen > tegn. Det betyder, at det indhold, der vises på skærmen, vil blive omdirigeret til en angivet fil. Hvis den angivne fil ikke findes på den angivne placering, oprettes den automatisk.
Hvad har vi her?
ps (processtatus) - udskriver grundlæggende oplysninger om processer i systemet. Denne kommando kan sammenlignes med Windows Task Manager, hvor man kan se en liste over alle kørende programmer og processer. Hver applikation, program eller kørende kommando bliver til en proces med sin egen unikke identifikator, den såkaldte PID (Process IDentifier).
Som du kan se, er ps kommandoen viste os ikke meget. For at tjekke alle aktive processer skal vi kalde ps med en aux argument.
Aby zobaczyc wszystkie procesy w systemie, uzywajac skladni BSD:
ps ax
ps axu
dræbe - Nogle gange holder en applikation eller et program op med at reagere. Det er her dræbe kommando er praktisk. Til dræbe en proces, er alt, hvad du skal gøre, at udfylde dræbe kommando med dens PID.
Hvordan finder du PID'en for den proces? Det er bedst at bruge den tidligere nævnte ps aux kommando. Det kan ske, at dræbe alene er ikke nok, fordi processen venter på, at en anden afhængig proces slutter. Det er derfor, dræbe bruges også ofte sammen med -9 mulighed. Det betyder øjeblikkelig afslutning af den kørende proces, så før du bruger denne mulighed, skal du sørge for, at alle vigtige ændringer er blevet gemt. Lad os se på et eksempel på sådan en kommando:
damian@rubydev:~$ kill -9 1234
Echo!
ekko - Dette er den kommando, der returnerer den tekst, den har fået overdraget. På samme måde som i tilfældet med katkan du sende den indtastede tekst til en fil ved hjælp af funktionen ekko kommando.
Det kan være nyttigt
Når du vil se historikken for de tidligere indtastede kommandoer, kan vi bruge Historie kommando.
Hvis du vil rydde terminalvinduet, skal du bruge klar kommando.
Den Udgang kommandoen lukker, som navnet antyder, terminalen eller den aktuelt åbne fane.
Begyndelsen og slutningen
Den hoved kommandoen viser begyndelsen af en fil eller standardoutput. Standardværdien er de første ti linjer. Du kan tilpasse den med -n mulighed, hvor du kan sætte et heltal under n. For bedre at illustrere dette vil jeg bruge et eksempel.
Vi skal bruge en tekstfil. Lad os bruge den allerede nævnte Historie kommandoen og omdirigeringen > karakter.
damian@rubydev:~$ history > history.txt
På denne måde blev der oprettet en fil med hele kommandohistorikken. Derefter bruger man head -15 history.txter det muligt at få vist de første femten kommandoer, der er indtastet i terminalen.
På samme måde er hale kommandoen vil vise os de sidste linjer i den valgte fil.
Søg efter
grep (global regular expression print) bruges til at søge i teksten efter en streng, der matcher det givne regulære udtryk (RegExp). Det bruges ofte til at finde et bestemt udtryk i en fil eller til at "filtrere" det returnerede output. Lad os til dette formål bruge den tidligere oprettede historie.txt filen og tjekke, hvor ofte ps kommando blev brugt indtil videre:
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 historie | grep ps
113 echo "lorem ipsum rubydev" > rubydev.rb
Som du kan se, grep fandt også ord, der indeholder sætningen ps. Det udtryk, der blev brugt i vores eksempel, var ps kun. Jeg planlægger at skrive en separat artikel om regulære udtryk, men indtil videre vil jeg opfordre dig til at udforske emnet på egen hånd. Grundlæggende viden er lige nu nok.
Kombination af kommandoer
| (pipe) er et symbol, som giver os mulighed for at kombinere flere kommandoer (processer) og starte dem på samme tid. Helt konkret kan vi kombinere output (stdout) fra en kommando med input (stdin) fra en anden. Det er en meget nyttig funktion.
Outputtet (stdout) fra Historie kommandoen vil blive gennemsøgt af grep kommandoen og returnere alle strenge med den matchende ps udtryk.
historie | hale -5
I dette tilfælde skal du bruge hale kommando med -5 vil vise de sidste fem linjer af outputtet (stdout) fra programmet Historie kommando.
Denne kombination er især nyttig, når man leder efter PID'et for den proces, man vil afslutte. Husk, at kørsel af grep kommandoen vil også oprette en proces, så du vil normalt se PID'et for grep proces i den sidste linje.
Adgang til filer og mapper
Før vi kommer til kommandoen, der ændrer typen af adgangstilladelser, er det værd at nævne, at alle operativsystemer har såkaldte adgangsrettigheder. Det betyder, at hver mappe eller fil indeholder metadata om, hvem der har adgang til den. Den første kolonne i det følgende "output" fortæller os alt om det (outputinformation, der vises i terminalvinduet):
historie | hale -5
Adgang til filer og mapper defineres af tre komponenter. Den første (user) betyder en enkelt bruger, den anden (group) betyder en gruppe, mens den tredje (other) gælder for alle andre brugere.
d - afgør, om det er en mappe eller en fil (d - mappe, f - fil)
rwx - Brugerrettigheder
r-x - tilladelser for gruppen
r-x - autoriseret for alle andre brugere
For at forenkle det kan man dele det op i tre dele:
Lad os nu se på selve betydningen af disse rettigheder:
r (read) - giver dig mulighed for at læse indholdet
w (skriv) - giver dig mulighed for at ændre indholdet
x (udfør) - giver dig mulighed for at udføre en fil eller åbne en mappe
Tilladelser til filer og mapper kan ændres med chmod (ændre tilstand). Den nemmeste måde at ændre tilladelserne på er at bruge det indlejrede system og angive nummeret på tilladelsen for brugeren, gruppen og andre.
For at omsætte denne viden til praksis, lad os ændre tilladelserne for de tidligere nævnte wideo for grupper og andre brugere - fjern alle tilladelser for disse to, men lad den fulde tilladelse gælde for den enkelte bruger. I henhold til tabellen ovenfor er "ingen rettigheder" angivet med tallet 0. Umiddelbart efter chmod kommandoen skal du indsætte tre cifre, som hver især angiver rettighederne for den givne kategori (bruger - gruppe - andre). Til sidst skal du angive navnet på filen eller biblioteket. Kommandoen skal se sådan ud:
damian@rubydev:~$ chmod 700 Wideo
damian@rubydev:~$ ls -l | tail -1
drwx------ 2 damian damian 4096 sty 6 17:41 Wideo
Sammenfatning
Der er en hel sværm af andre kommandoer, og den nemmeste måde at mestre dem alle på er at øve sig i at løse specifikke problemer. Hvis du vil vide mere om dem, Jeg anbefaler Pocket Linux-leksikonet med kommandoer. Efter min mening er det en behagelig måde at slå tiden ihjel på i den offentlige transport.