Programmering i Ruby. Nybörjarens terminal - del 2
Damian Watroba
Software Engineer
Hej! Den här gången har vi förberett ytterligare en uppsättning användbara kommandon som hjälper dig att bekanta dig med terminalen. Den första delen av handledningen finns här: Nybörjarens terminal - del 1.
Terminal - Teori
Var är jag?
datum - Om vi har ett sådant behov och en sådan önskan kan vi kontrollera aktuellt datum i terminalen.
damian@rubydev:~$ datum
wto, 7 sty 2020,
Anslutning och listning
katt (concatenate) - det här kommandot har många användningsområden, men det mest populära är att visa innehållet i filer.
I exemplet nedan kan du se två filer - ruby_1.txt och ruby_2.txt - tillsammans med deras innehåll. De cat [filnamn] visar innehållet i en enda fil, medan kommandot cat [filnamn 1] [filnamn 2] kommandot visar innehållet i båda filerna i rätt ordning.
Det finns ytterligare en sak vi kan göra med katt kommandot - omdirigera standardutdata till en ny fil med hjälp av kommandot > tecken. Detta innebär att innehållet som visas på skärmen kommer att omdirigeras till en deklarerad fil. Om den angivna filen inte finns på den angivna platsen kommer den att skapas automatiskt.
Vad har vi här?
ps (processstatus) - skriver ut grundläggande information om processer i systemet. Detta kommando kan jämföras med Windows Aktivitetshanterare, där du kan se en lista över alla applikationer och processer som körs. Varje applikation, program eller körkommando blir en process med sin unika identifierare, den s.k. PID (Process IDentifier).
Som du kan se är ps kommandot visade oss inte mycket. För att kontrollera alla aktiva processer måste vi anropa ps med en aux argument.
Aby zobaczyc wszystkie procesy w systemie, uzywajac skladni BSD:
ps ax
ps axu
döda - Ibland slutar en applikation eller ett program att svara. Det är då döda kommandot kommer väl till pass. Till döda en process, allt du behöver göra är att fylla i döda kommandot med dess PID.
Hur hittar du PID för den processen? Det är bäst att använda den tidigare nämnda ps aux kommando. Det kan hända att döda är inte tillräckligt eftersom processen väntar på att en annan beroende process ska avslutas. Det är därför, döda används också ofta tillsammans med -9 alternativet. Det innebär att den pågående processen avslutas omedelbart, så innan du använder det här alternativet bör du kontrollera att alla viktiga ändringar har sparats. Låt oss ta en titt på ett exempel på ett sådant kommando:
damian@rubydev:~$ kill -9 1234
Echo!
eko - detta är kommandot som returnerar den text som anförtrotts det. På samma sätt som i fallet med kattkan du styra den inmatade texten till en fil med hjälp av eko kommando.
Det kan vara användbart
När du vill visa historiken för tidigare inmatade kommandon kan du använda kommandot Historia kommando.
Om du vill rensa terminalfönstret behöver du klar kommando.
Den utgång stänger, som namnet antyder, terminalen eller den flik som är öppen för tillfället.
Början och slutet
Den huvud kommandot visar början av en fil eller standardutdata. Standardvärdet är de första tio raderna. Du kan anpassa det med kommandot -n alternativ där du kan lägga in valfritt heltal under n. För att bättre illustrera detta kommer jag att använda ett exempel.
Vi kommer att behöva en textfil. Låt oss använda den redan nämnda Historia kommandot och omdirigeringen > karaktär.
damian@rubydev:~$ history > history.txt
På så sätt skapades en fil med hela kommandohistoriken. Sedan, med hjälp av huvud -15 historia.txtär det möjligt att visa de femton första kommandona som skrivits in i terminalen.
På samma sätt är svans kommandot visar oss de sista raderna i den valda filen.
Sök
grep (global regular expression print) används för att söka i texten efter en sträng som matchar det angivna reguljära uttrycket (RegExp). Det används ofta för att hitta ett specifikt uttryck i en fil eller för att "filtrera" den returnerade utdata. För detta ändamål använder vi den tidigare skapade historia.txt filen och kontrollera hur ofta ps kommandot har använts hittills:
damian@rubydev:~$ grep ps historia.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 --hjälp
95 man ps
96 ps -h
98 ps --hjälp
99 ps -ejH
100 ps aux
101 man ps
102 ps -aux
103 ps aux
109 historik | grep ps
113 echo "lorem ipsum rubydev" > rubydev.rb
Som du kan se, grep hittade också ord som innehåller frasen ps. Det uttryck som användes i vårt exempel var ps bara. Jag planerar att skriva en separat artikel om reguljära uttryck, men för tillfället uppmuntrar jag dig att utforska ämnet på egen hand. Grundläggande kunskaper är precis tillräckligt för tillfället.
Kombinera kommandon
| (pipe) är en symbol som gör det möjligt att kombinera flera kommandon (processer) och starta dem samtidigt. Mer specifikt kan vi kombinera utdata (stdout) från ett kommando med indata (stdin) från ett annat. Det är en mycket användbar funktion.
Utmatningen (stdout) från Historia kommandot kommer att sökas av grep kommandot och returnera alla strängar med matchande ps uttryck.
historik | svans -5
I det här fallet kan du använda svans med kommandot -5 alternativet visar de fem sista raderna i utdata (stdout) från Historia kommando.
Denna kombination är särskilt användbar när du letar efter PID för den process som du vill avsluta. Kom ihåg att körning av grep kommandot skapar också en process, så du kommer vanligtvis att se PID för grep process i sista raden.
Åtkomst till filer och kataloger
Innan vi går in på kommandot som ändrar typen av åtkomsttillstånd är det värt att nämna att varje operativsystem har så kallade åtkomsträttigheter. Detta innebär att varje katalog eller fil innehåller metadata om vem som har tillgång till den. Den första kolumnen i följande "utdata" berättar allt om det (utdatainformation som visas i terminalfönstret):
historik | svans -5
Åtkomst till filer och kataloger definieras av tre komponenter. Den första (user) avser en enskild användare, den andra (group) avser en grupp, medan den tredje (other) avser alla andra användare.
d - avgör om det är en katalog eller en fil (d - katalog, f - fil)
rwx - användarrättigheter
r-x - behörigheter för gruppen
r-x - behörig för alla andra användare
För att förenkla det hela kan man dela upp det i tre delar:
Låt oss nu gå in på själva innebörden av dessa rättigheter:
r (read) - gör att du kan läsa innehållet
w (skriv) - gör att du kan ändra innehållet
x (exekvera) - gör att du kan köra en fil eller öppna en katalog
Fil- eller katalogbehörigheter kan ändras med hjälp av chmod (ändra läge). Det enklaste sättet att ändra behörigheterna är att använda det inbäddade systemet och ange numret för behörigheten för användaren, gruppen och andra.
För att tillämpa denna kunskap i praktiken ändrar vi behörigheterna för de tidigare listade wideo katalog för grupper och andra användare - ta bort alla behörigheter för dessa två, men lämna den fullständiga behörigheten bara för den enskilda användaren. Enligt tabellen ovan betecknas "inga rättigheter" med siffran 0. Omedelbart efter chmod måste du ange tre siffror, som var och en anger rättigheterna för den angivna kategorin (användare - grupp - övriga). I slutet anger du namnet på filen eller katalogen. Kommandot bör se ut så här:
damian@rubydev:~$ chmod 700 Wideo
damian@rubydev:~$ ls -l | tail -1
drwx------ 2 damian damian damian 4096 sty 6 17:41 Wideo
Sammanfattning
Det finns en hel svärm av andra kommandon och det enklaste sättet att behärska dem alla är att öva på att lösa specifika problem. Om du vill lära dig mer om dem, Jag rekommenderar Pocket Linux-lexikonet med kommandon. Enligt min mening är det ett trevligt sätt att fördriva tiden i kollektivtrafiken.