Základné príkazy pre prácu so systémom
Úloha
-
Zoznámte sa s textovou konzolou OS linux.
-
Overte si ovládanie príkazového interpretera bash
-
Vyskúšajte základné príkazy pre prácu so súborovým systémom.
-
Nainštalujte si balík gpm
Teória
OS linux môže komunikovať s užívateľom prostredníctom dvoch rôznych užívateľských rozhraní.
Jedno je príkazový riadok, druhé je GUI Graphic User Interface
Grafické rozhranie nemusí byť na každom systéme dostupné. Hlavným dôvodom je jeho vysoká náročnosť na
hw príslušného zariadenia. GUI vyžaduje veľa operačnej pamäte, veľa priestoru na disku a tiež veľmi výkonný
procesor a grafickú kartu. V jednoduchých zariadeniach ako sú napríklad sieťové prvky
(prepínače, smerovače, wifi prístupové body) takýto výkonný hw nie je k dispozícii. Zariadenie má minimum RAM, minimum diskového priestoru
a žiadny zobrazovací adaptér, takže tu býva ako rozhranie iba príkazový riadok.
V prípade osobnej pracovnej stanice (PC) užívateľ zvyčajne preferuje GUI. V prípade serveru je to otázka
preferencií správcu. Z pohľadu efektivity je inštalácia GUI nevhodná. GUI obsadzuje zbytočne veľké množstvo
operačnej pamäte a zaberá pomerne veľa miesta na disku. Z tohoto dôvodu je často serverovská inštalácia
bez GUI. Preto sa na začiatok budeme venovať správe systému pomocou príkazového riadku.
Textové virtuálne konzoly
Pod konzolou rozumieme technické zariadenie ktoré je priamo pripojené k hostiteľskému počítaču
a umožnuje prácu s týmto počítačom prostredníctvom zadávania príkazov a sledovanie odozvy systému na tieto
príkazy
Čo to je tty?
Je to historický
pozostatok z doby kedy neexistovali počítače a predsa bolo možné prenášať textové správy na diaľku. Skúsme sa zamyslieť od kedy môžeme
prenášať SMS (short message service/krátke textové správy)?
-
Tí čo pozerali abo čítali indiánky vedia že indiáni toto mali vyriešené už dávno. Na prenos informácií
používali dymové signály. Nie som si istý či mali zároveň vymyslené aj písmo, tak neviem či sa to dá počítať za SMS
-
Vo Francúzku ešte pred objavom elektriny existoval systém na prenos správ pomocou optického telegrafu z roku 1791
-
V 18st bola objavená elektrina, batéria, elektromagnetizmus a elektromagnet a zrazu máme všetky komponenty pre
elektrický telegraf.
Samuel Morse to dal dokopy a vymyslel k tomu aj špeciálny kód - morzeovku.
Tento typ telegrafu sa presadil hlavne pretože použil digitálny signál na rozdiel od iných systémov.
Vďaka tejto vlastnosti nemal tento systém problém sa prispôsobiť aj ďalšiemu prevratnému vynálezu rádiové vlny
V roku 1850 bolo v USA 50 rôznych telegrafných spoločností. Takže poslať telegram niekomu bol len problém financií.
Pre zaujímavosť - jedna zo série príčin potopenie Titanicu bolo to že telegrafní operátori na palube boli tak silne vyťažený
posielaním telegramov bohatých cestujúcich, že rádiogram ktorý varoval na zvýšený výskyt ľadovcov bol síce prijatý,
ale kedže nebol označený ako prioritný tak nebol okamžite doručený na kapitánsky mostík.
-
No a konečne odpoveď na otázku čo to je tty. Je to skratka slova teletype. Prvá čast te slovo tele
ktorá označuje že ide o vec ktorá pracuje na diaľku. Druhé slovo type znamená písať. U nás sa takému zariadeniu
hovorilo dialnopis
Je to teda stroj ktorý dokáže písať na diaľku.
V roku 1874 naň získal patent Émile Baudot.
Písmeno bolo zakódované pomocou 5bitového Baudotového kódu
Jednotlivé bity sa prenášali jednou linkou postupne za sebou rýchlosťou 3 znaky za sekundu.
Tu si treba dobre všimnúť dve špeciálne klávesy na klávesnici
Sú to klávesy CAR RET a LINE FEED. Človek by si myslel že na dnešných klávesniciach
už také klávesy nemáme. Nie je to celkom pravda. Máme tam klávesu Enter a táto dodnes v OS Windows ukladá
do súboru oba kódy (CR, LF)
Ako to celé fungovalo si môžeme pozrieť na tomto videu
-
Ako toto archaické zariadenie súvisí s linuxom?
V dobe keď sa počítač stávali dostupné nastal problém ako ich sprístupniť užívateľom. To je doba,
kedy unixovský (linux vtedy ešte neexistoval) počítač sídlil v špeciálnej klimatizovanej miestnosti. Prístup k nemu mali
iba vysoko kvalifikovaný odborníci a užívateľ bol k systému pripojený zariadením s názvom teletype/dialnopis. Viac si môžete o dialnopisoch
prečítať na tomto odkaze
Dennis Ritchie a Ken Thompson na Teletype konzole počítača PDP-11/20 v roku 1972.
-
Elektromechanický dialnopis sa neskôr nahradil terminálom Terminál bol už plne elektronický a skladal sa
z klávesnice a obrazovky ktorá dokázala zobraziť určitý počet riadkov a stĺpcov znakov.
DEC VT52 Video Terminal
Linuxový systém vytvára textové rozhranie postredníctvom virtuálnej konzoly. Pre pohodlnú prácu má systém vytvorených
niekoľko virtuálnych konzol. V prípade štandartnej inštalácie debianu bez GUI je to celkovo šesť virtuálnych konzol. Tento počet sa dá zmeniť v konfigurácii
systému pokiaľ by niekomu tento počet nevyhovoval.
Prepínanie medzi konzolami sa robí nasledovnými klávesovými skratkami
- Ctrl + Alt + Fn Zobrazí konzolu s číslom n. kde n je číslo od 1 po max počet, teda v bežnej inštalácii po šesť.
Postup stlačení Ctrl a Alt nezáleží na poradí a na koniec sa stlačí F1 až
F6. Kedže funkčných kláves je len 12 tak týmto spôsobom sa dá prepímať maximálne 12 virtuálnych konzol.
-
Alt + Fn robí v prípade textovej konzoly to isté - teda prepnutie na konzolu číslo n. Ak máme nainštalovnú
a aktívnu grafickú konzolu, tak táto kombinácia je vyhodnotená v rámci GUI. Na prepnutie do textovej konzoly je potrebné použiť predchádzajúcu kombináciu.
Potom sa už dá používať tento skrátený tvar. Návrat do grafickej konzoly je v prípade debian inštalácie pomocou Alt + F1
-
Alt + ← Prepne na predchádzajúcu konzolu. Ak je to prvá tak prepne na poslednú. Veľmi vhodné používať
na prepínanie konzolí v učebni 906 kde sa nedajú priamo stisnúť funkčné klávesy F1 až F12
Táto kombinácia nepracuje na grafickej konzole.
-
Alt + → Prepne na nasledujúcu konzolu. Ak je to posledná tak prepne na prvú.
Táto kombinácia nepracuje na grafickej konzole.
Virtuálna konzola simuluje na prostredkoch daného počítača (klávesnica, monitor, zobrazovací adaptér) vlastne niekoľko takýchto terminálov
pričom samozrejme zobrazený môže byť iba jeden z nich v jednom okamihu, ale dajú sa veľmi ľahko prepínať.
Popis textov konzoly a postup prihlásenia
Prihlásenie pomocou textovej konzoly tty1
Po nabootovaní systému sa zobrazí konzola číslo jedna. Takto to bude vyzerať ak nemáte na servery nainštalované GUI.
V prvom riadku máme vypísané celkovo tri rôzne informácie (zvýraznené v červených obdĺžnikoch). Prvá informácia popisuje
distribúciu a verziu systému (Debian GNU/Linux 11).
Nasleduje meno servera (macik). macik je moje obľúbené meno pre môj školský ukážkový server.
Toto meno sa zadávalo pri inštalácii servera.
Tretia informácia je meno konzoly na ktorej sa práve nachádzame (tty1).
Ako posledná informácia sa na konzole po spustení objaví informácia zvýraznená obdĺžnikom č.4 Je to opäť meno servera a výzva na prihlásenie
login: Tu potom je zobrazený blikajúci kurzor a je tu možné napísať prihlasovacie meno užívateľa.
Po odoslaní mena klávesou Enter sa zobrazí výzva na zadanie hesla. Password:
Heslo sa pri zadávaní nevypisuje a ani sa neposúva kurzor aby nebolo vidno aké heslo je a ani koľko má znakov. Už taká informácia o tom
aké je heslo dlhé dáva prípadnému útočníkovi veľmi užitočnú informáciu ktorá by viedla k obrovskej úspore času pri jeho prelamovaní.
Heslo sa odosiela rovnako ako užívateľské meno klávesou Enter
Ak je prihlásenie neúspešné tak sa tento postup opakuje dovtedy pokiaľ užívateľ nezadá správne meno a heslo.
Pozor systém unix/linux rozlišuje veľké a malé písmená aj v prihlasovacom mene na rozdiel od systému Windows, ktorý
ich rozlišuje len v hesle.
Pozor na nastavnie klávesnice - môže byť vypnutý num lock, alebo môže byť nastavená národná klávesnica, či zamenené písmena
z a y
Úspešné prihlásenie (v tomto prípade správcu systému s menom root) sa prejaví tak že sa vypíše uvítací výpis (obdĺžniky 8,9,10)
Tu sa opäť uvádza meno servera (macik), verzia jadra (5.10.0-21-amd64) a architektúra (amd64 alebo aj 86_64).
Nasledujú právne veci ako informácia že ide o volný softvér a odkaz na dokumentáciu ku každému jednému programu v adresári
/usr/share/doc.
Ďalší riadok uvádza zrieknutie sa zodpovednosti za akékoľvek používanie. (To isté platí aj v systémoch za ktoré ste zaplatili)
Nasleduje informácia o dátume čase a mene terminála posledného prihlásenia.
V reálnom svete je toto treba sledovať a kontrolovať dáva to signál o zneužití konta. Pozor ak sa podarí niekomu prihlásiť ako root
má k dispozícii prostriedky ako tento údaj zakamuflovať na pôvodnú správnu hodnotu. Len veľmi slabý útočník by nechal po sebe
takúto okatú stopu, ktorá by mala okamžite viesť k tomu že systém bol kompromitovaný.
Posledný riadok vypísaný na terminál sa volá prompt. Prompt znamená výzva, prostredníctvom promptu nás systém vyzýva
o zadanie príkazu. Skladá sa z niekoľkých častí ktoré informujú užívateľa o dôležitých údajoch a za tým nasleduje interaktívny príkazový riadok
v ktorom sa pomcou klavesnice a kurzora dá zadať príkaz pre systém.
V prompte sa nachádzajú tieto informácie:
-
meno užívateľa - dôležité pre udržanie si prehľadu na ktorej konzole som prihlasený ako aký užívateľ. Linux je multiužívatelský systém
čo znamená že na každej konzole môžem byť napríklad prihlásený ako iný užívateľ.
-
@ oddeľovací snak s anglickým významom at teda so slovenským významom na
-
meno servera - dôležité ak sa následne prihlásim na iné vzdialené servery aby som mal prehľad kde práve som
-
: oddeľovací znak
-
aktuálny pracovný adresár - dôležité pri prechádzaní stromovej adresárovej štruktúry súborového systému servera. V tomto prípade sa
zobrazuje špeciálny znak ~ ktorý reprezentuje domovský adresár užívateľa
-
#oddeľovací znak ktorý ukončuje prompt a zárovň informuje o tom že ide o užívateľa ktorý je správcom systému.
Nie nutne to musí byť vždy užívateľ s menom root.
-
Blikajúci kurzor naznačuje že sem je možné začať písať text príkazu
Prompt
root@macik:~#
treba čítať takto:
Užívateľ root na serveri macik sa nachádza vo svojom domovskom
adresári (~ ) a ide o správcu systému (# )
Prompt
peter@macik:~$
treba čítať takto:
Užívateľ peter na serveri macik sa nachádza vo svojom domovskom
adresári (~ ) a ide o obyčajného užívateľa ($ )
Editácia textu v príkazovom riadku
V najhoršom prípade sa dá vystačiť len s týmito základnými editačnými klávesami
-
← Ctrl + b posun kurzora vľavo
-
→ Ctrl + fposun kurzora vpravo
-
delete Ctrl + d zmazanie znaku na kurzore.
-
Ctrl + dak v riadku nieje žiadny znak urobí to príkaz exit, teda ukončí shell.
-
backspace Ctrl + hzmazanie znaku pred kurzorom a posun kurzora o jeden znak späť
-
Samozrejme že existuje veľké množstvo rôznych kombinácií kláves. Naviac sa mi páči ich popis
na tejto stránke, pretože tam majú aj pekný obrázok.
Klávesové skratky ktoré som si zapamätal a pomerne často ich používam
-
↑ vyvolanie predošlého príkazu z histórie
-
↓ vyvolanie nasledovného príkazu z historie v prípade že som dostal šipkou hore moc ďaleko
a chem sa vrátiť.
-
TAB doplnenie príkazu ak je už jednoznačné čo sa tam dá dopísať, opakované stisnutie zobrazí všetky
dostupné možnosti, Ak ich je veľa tak sa spýta či ich naozaj zobraziť.
Ak chcete vidieť všetky dostupné príkazy treba stisnúť medzera a potom dvakrát klávesu TAB.
Na otázku či chcete naozaj vidieť všetky príkazy treba odpovedať y.
-
~ táto klávesa predstavuje domovský adresár. Na slovenskej klávesnici sa zadáva ako AltGr + A
-
Home Ctrl + aNastavenie kurzora na začiatok riadka
-
End Ctrl + eNastavenie kurzora na koniec riadka
-
Ctrl + wzmazanie slova pred kurzorom
-
Ctrl + u zmazanie všetkého pred kurzorom
-
Crtl + k zamazanie všetkého od kurzora do konca riadka
-
Crtl + l zamazanie obrazovky (rovnako ako clear príkaz). Obsah riadka ale zostane zachovaný
-
Ctrl + cUkončenie bežiaceho programu (ak reaguje na signál KILL).
-
Ctrl + zpremiestnenie procesu na pozadie
Základné príkazy
- logout
odhlásenie užívateľa z konzoly
- exit
ukončenie shellu (v tomto prípade odhlásenie užívateľa z konzoly)
- reboot
restart systému - vyžaduje práva root
- poweroff
vypnutie systému - vyžaduje práva root
- clear
vymazanie obrazovky
- man prikaz
zobrazí manuálovú stránku pre zadaný príkaz
- pwd
Print Working Directory - vypíš pracovný adresár
- ls [voľby] [cesty]
list - vypíš obsah adresárov ktoré sú špecifikované cestami. Ak cesta nie je zadaná tak sa vypisuje
aktuálny pracovný adresár. Voľby sa zadávajú s pomlčkou. Často používané sú tieto
-
-l výpis s podrobnosťami
-
-a výpis aj skrytých súborov. Skryté súbory začínajú znakom .
-
-h výpis veľkosti súboru v príjemnejších jednotkách ako su byte
-
-R rekurzívny výpis aj všetkých podadresárov
- cd ~|-|[cesta]
change directory zmeň aktuálny pracovný adresár. Cesta sa dá zadať v absolútnom alebo v relatívnom tvare.
Pomlčka umožňuje návrat do predošlého adresára. Vlnovka skracuje zápis domovského adresára užívateľa.
Inštálacia sw balíkov
Debian používa pre správu inštalačných balíkov systém nazvaný dpkg. Pre pohodlnejšiu prácu
bolo vyvinutých niekoľko ďalších programov pre prácu s inštalačnými balíkmi. Mi budeme používať program apt
Inštalácia nového balíka sa robí príkazom
apt install meno_balika
Podpora myši vo virtuálnych textových konzolách
Kedže som si všimol, ako niektorý pri editácii textových súborov majú silné cuknutie a musia chytiť myš aby potom zistili,
že kurzor sa myšou presunúť nedá, tak som sa to rozhodol napraviť. Existuje balík ktorý pridá do virtuálnej textovej konzoly
podporu myši. Balík sa volá gpm (general purpose mouse)
Inštalácia sa urobí príkazom
apt install gpm
Po nainštalovaní sa dá pohybovať myšou špeciálnym kurzorom (nie kurzorom v príkazovom riadku). Ľavým dvojklikom sa označí slovo pod kurzorom.
Alebo je možné ľavé tlačidlo stisnúť a držať a pohybom myši označiť text na obrazovke (aj viac riadkov).
Pravé tlačítko prekopíruje označený text do príkazového riadka na pozíciu textového kurzora.
Toto funguje aj cez rôzne virtuálne konzoly. Teda v jednej si niečo označím, potom sa prepnem do inej a tam
to pravým tlačítkom vložím.
Takto to funguje s programami ktoré nie sú interaktívne. Interaktívne programy (napríklad midnight commander) môžu alebo aj nemusia
mať podporu pre prácu s myšou.