Programování v jazyce Ruby. Terminál pro začátečníky - část 2
Damian Watroba
Software Engineer
Ahoj! Tentokrát jsme pro vás připravili další sadu užitečných příkazů, které vám pomohou seznámit se s používáním terminálu. První část návodu najdete zde: Terminál pro začátečníky - část 1.
Terminál - teorie
Kde to jsem?
datum - Pokud máme takovou potřebu a přání, můžeme si aktuální datum ověřit v terminálu.
damian@rubydev:~$ date
wto, 7 sty 2020,
Připojení a zařazení do seznamu
cat (concatenate) - tento příkaz má mnoho využití, ale nejoblíbenější je zobrazení obsahu souborů.
V příkladu níže vidíte dva soubory - ruby_1.txt a ruby_2.txt - spolu s jejich obsahem. Na stránkách cat [název souboru] zobrazí obsah jednoho souboru, zatímco příkaz cat [název souboru 1] [název souboru 2] zobrazí obsah obou souborů ve správném pořadí.
Ještě jedna věc, kterou můžeme udělat. cat příkaz - přesměrování standardního výstupu do nového souboru pomocí příkazu > znamení. To znamená, že obsah zobrazený na obrazovce bude přesměrován do deklarovaného souboru. Pokud uvedený soubor v zadaném umístění neexistuje, bude vytvořen automaticky.
Co tu máme?
ps (stav procesu) - vypíše základní informace o procesech v systému. Tento příkaz je srovnatelný se Správcem úloh systému Windows, kde je k dispozici seznam všech spuštěných aplikací a procesů. Každá aplikace, program nebo spuštěný příkaz se stává procesem se svým jedinečným identifikátorem, takzvaným PID (Process IDentifier).
Jak vidíte, ps příkaz nezobrazoval nás hodně. Pro kontrolu všech aktivních procesů budeme muset zavolat ps s aux argument.
Aby zobaczyc wszystkie procesy w systemie, uzywajac skladni BSD:
ps ax
ps axu
zabít - někdy aplikace nebo program přestane reagovat. V takovém případě zabít příkaz se hodí. Na adresu zabít proces, stačí pouze vyplnit zabít příkaz s jeho PID.
Jak zjistíte PID tohoto procesu? Nejlepší je použít již zmíněný ps aux příkaz. Může se stát, že zabít sám o sobě nestačí, protože proces čeká na ukončení jiného závislého procesu. Proto, zabít se také často používá s -9 možnost. Znamená okamžité ukončení běžícího procesu, proto se před použitím této možnosti ujistěte, že byly uloženy všechny důležité změny. Podívejme se na příklad takového příkazu:
damian@rubydev:~$ kill -9 1234
Echo!
echo - je to příkaz, který vrací svěřený text. Podobně jako v případě cat, můžete zadaný text nasměrovat do souboru pomocí příkazu echo příkaz.
Může být užitečné
Pokud chceme zobrazit historii dříve zadaných příkazů, můžeme použít příkaz historie příkaz.
Pokud chcete vymazat okno terminálu, potřebujete příkaz přehledně příkaz.
Na stránkách exit Jak název napovídá, příkaz zavře terminál nebo aktuálně otevřenou kartu.
Začátek a konec
Na stránkách hlava zobrazí začátek souboru nebo standardního výstupu. Výchozí hodnota je prvních deset řádků. Můžete si ji přizpůsobit pomocí příkazu -n kde můžete vložit libovolné celé číslo pod n. Pro lepší ilustraci použiji příklad.
Budeme potřebovat textový soubor. Použijme již zmíněný historie a příkaz přesměrování > charakter.
damian@rubydev:~$ history > history.txt
Tímto způsobem byl vytvořen soubor s celou historií příkazů. Poté se pomocí head -15 history.txt, je možné zobrazit prvních patnáct příkazů zadaných do terminálu.
Stejně tak ocas nám zobrazí poslední řádky vybraného souboru.
Vyhledávání
grep (globální tisk regulárního výrazu) se používá k vyhledání řetězce v textu, který odpovídá zadanému regulárnímu výrazu (RegExp). Velmi často se používá k vyhledání konkrétního výrazu v souboru nebo k "filtrování" vráceného výstupu. K tomuto účelu použijeme dříve vytvořený výraz history.txt a zkontrolujte, jak často ps byl dosud použit příkaz:
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
Jak vidíte, grep také nalezena slova, která obsahují výraz ps. Výraz použitý v našem příkladu byl ps pouze. Plánuji napsat samostatný článek o regulárních výrazech, ale zatím vám doporučuji, abyste si toto téma prozkoumali sami. Základní znalosti vám v tuto chvíli stačí.
Kombinování příkazů
| (pipe) je symbol, který nám umožňuje spojit několik příkazů (procesů) a spustit je současně. Konkrétně můžeme spojit výstup (stdout) jednoho příkazu se vstupem (stdin) druhého. Jedná se o velmi užitečnou funkci.
Výstup (stdout) příkazu historie bude prohledán příkazem grep a vrátí všechny řetězce s odpovídajícím příkazem ps vyjádření.
historie | ocas -5
V tomto případě pomocí ocas příkazem -5 zobrazí posledních pět řádků výstupu (stdout) příkazu historie příkaz.
Tato kombinace je užitečná zejména při hledání PID procesu, který chcete ukončit. Nezapomeňte, že spuštění příkazu grep vytvoří také proces, takže se obvykle zobrazí PID příkazu grep v posledním řádku.
Přístup k souborům a adresářům
Než se dostaneme k příkazu měnícímu typ přístupových práv, je třeba zmínit, že každý operační systém má tzv. přístupová práva. To znamená, že každý adresář nebo soubor obsahuje metadata o tom, kdo k němu má přístup. O tom všem nám vypovídá první sloupec následujícího "výstupu" (výstupní informace zobrazené v okně terminálu):
historie | ocas -5
Přístup k souborům a adresářům je definován třemi složkami. První z nich (user) znamená jednotlivého uživatele, druhá (group) skupinu, zatímco třetí (other) se vztahuje na všechny ostatní uživatele.
d - určuje, zda se jedná o adresář nebo soubor (d - adresář, f - soubor).
rwx - uživatelská práva
r-x - oprávnění pro skupinu
r-x - oprávnění pro všechny ostatní uživatele
Pro zjednodušení ji můžete rozdělit na tři části:
Přejděme nyní k samotnému významu těchto práv:
r (read) - umožňuje číst obsah
w (zápis) - umožňuje měnit obsah
x (execute) - umožňuje spustit soubor nebo otevřít adresář.
Oprávnění k souborům nebo adresářům lze změnit pomocí příkazu chmod (změna režimu). Nejjednodušší způsob změny oprávnění je použít vestavěný systém a zadat číslo oprávnění pro uživatele, skupinu a další.
Abychom tyto znalosti uplatnili v praxi, změňme oprávnění pro dříve uvedené položky. video adresář pro skupiny a ostatní uživatele - odeberte jim všechna oprávnění, ale ponechte plné povolení pouze pro jednoho uživatele. Podle výše uvedené tabulky jsou "žádná práva" označena číslem 0. Bezprostředně po chmod je třeba vložit tři číslice, z nichž každá určuje práva pro danou kategorii (uživatel - skupina - ostatní). Na konci zadejte název souboru nebo adresáře. Příkaz by měl vypadat takto:
damian@rubydev:~$ chmod 700 Wideo
damian@rubydev:~$ ls -l | tail -1
drwx------ 2 damian damian 4096 sty 6 17:41 Wideo
Souhrn
Existuje celá řada dalších příkazů a nejjednodušší způsob, jak si je všechny osvojit, je procvičovat řešení konkrétních problémů. Pokud se o nich chcete dozvědět více, Doporučuji kapesní linuxový lexikon příkazů. Podle mého názoru je to příjemný způsob, jak zabít čas ve veřejné dopravě.