Byly vyhlášeny výsledky The Game Awards 2024 (YouTube). Hrou roku se stal Astro Bot (YouTube) běžící pouze na PlayStation 5.
Na GOG.COM probíhá Winter Sale 2024. Při té příležitosti lze každý den do konce roku získat zdarma jinou počítačovou hru, viz kalendář uprostřed stránky Winter Sale 2024. Otevření balíčku se hrou vždy ve tři odpoledne. První hrou je The Whispered World: Special Edition.
Nezisková organizace Internet Security Research Group (ISRG) vydala Výroční zprávu za rok 2024 (pdf). Organizace stojí za certifikační autoritou Let's Encrypt, projektem Prossimo, jehož cílem je používání paměťově bezpečného kódu v kritické internetové infrastruktuře a službou Divvi Up řešící telemetrii respektující soukromí uživatelů.
Vývojáři PeerTube, tj. svobodné alternativy k videoplatformám velkých technologických společností, představili mobilní aplikaci PeerTube (Google Play, App Store). Zdrojové kódy jsou k dispozici na Framagitu.
Google představil Gemini 2.0, tj. novou verzi svého modelu umělé inteligence (YouTube).
Vývojáři KDE oznámili vydání balíku aplikací KDE Gear 24.12. Přehled novinek i s náhledy a videi v oficiálním oznámení.
Byla vydána nová verze 3.27 frameworku Flutter (Wikipedie) pro vývoj mobilních, webových i desktopových aplikací a nová verze 3.6 souvisejícího programovacího jazyka Dart (Wikipedie).
Byla vydána (𝕏) listopadová aktualizace aneb nová verze 1.96 editoru zdrojových kódů Visual Studio Code (Wikipedie). Přehled novinek i s náhledy a animovanými gify v poznámkách k vydání. Ve verzi 1.96 vyjde také VSCodium, tj. komunitní sestavení Visual Studia Code bez telemetrie a licenčních podmínek Microsoftu.
OpenMandriva ROME, tj. průběžně aktualizovaná (rolling) edice linuxové distribuce OpenMandriva, byla vydána ve verzi 24.12.
Tento seriál je určen pro začátečníky. Postupně se vás pokusí naučit využívat BASH.
Bourne Again SHell je standardní interpret příkazů v Linuxu založený na Bourne shell. Funguje jako rozhraní mezi uživatelem a systémem. Jelikož je součástí GNU projektu, nebylo problémem ho portovat na unixové systémy, takže se jeho znalost uplatní i mimo Linux. Jeho funkce můžeme rozdělit na 3 základní části.
V interaktivním režimu čeká na zadání příkazu od uživatele. Příkazy mohou být buď přímo zabudované v shellu nebo samostatné programy napsané téměř v libovolném programovacím jazyku.
Pomocí systémových proměnných umožňuje přizpůsobení pracovního prostředí. Některé z těchto proměnných jsou přednastaveny systémem, ostatní nastavuje uživatel např. v inicializačních souborech při spuštění shellu.
Je to také velice mocný programovací nástroj. Když nám chybí nějaký program nemusíme ho hned psát v kompilovaném jazyku (C, C++, Ada, Java), ale je možné vyřešit náš problém vytvořením skriptu. Můžeme si tím ušetřit hodně práce a nebo právě naopak. Nejprve musíme důkladně analyzovat náš problém a zvolit správné řešení.
Zjistěte, jestli máte jako implicitní shell nastaven opravdu BASH. Možností je hned několik. Poslední příkaz zjistí, jaký shell používá implicitně váš systém.
$ echo $SHELL
|
Jestliže nemáte /bin/bash
nastaven jako implicitní shell, napravte to následujícím příkazem a poté spusťte BASH, protože změny se projeví až po přihlášení.
$ usermod -s /bin/bash $USER
|
Vypsání hodnot všech proměnných známých aktuálnímu interpretu příkazů (uvedl jsem jen některé z nich, je jich samozřejmě mnohem víc " class="emo">).
$ set
|
Proměnná $PS1
definuje tvar primárního promptu
(zobrazuje se, když shell čeká na zadání příkazu). V definici
tvaru proměnných $PSn
(n = 1, 2, 3, 4) můžeme použít
sekvence se speciálním významem. Ukážeme si pouze některé z nich.
\t
- systémový čas (HH:MM:SS)\u
- uživatelské jméno\W
- název pracovního adresáře\$
- pro roota #, jinak $
$ PS1='[\t] \W\$ '
|
Proměnná $PS2
je tvar sekundárního promptu
(zobrazuje se když shell čeká na dokončení příkazu).
Chcete-li pokračovat v zadávání příkazu na dalším řádku,
stačí napsat \
a stisknout ENTER. Středník
použijete při spušťení více příkazů najednou.
$ echo "Na dalším řádku je výpis příkazu who"; \
|
Vypsání nastavení různých módů interpretu (uvedl jsem jen dva, je
jich opět mnohem víc). Druhý příkaz zapíná mód vi
a poslední ho znovu vypíná (takovýmto způsobem lze nastavit všechny módy).
$ set -o
|
Běžící program můžeme ukončit stiskem CTRL+c
a standardní
vstup (např. v níže uvedeném příkladu) můžeme ukončit stiskem CTRL+d, ale
nejdříve musíme přejít na nový řádek.
$ wc
|
Každý proces má svůj jedinečný identifikátor PID. Spuštěný proces je závislý na svém rodiči (na procesu, ze kterého byl spuštěn). Při ukončení rodiče budou
automaticky ukončeni i všichni potomci. Pomocí příkazu nohup
zajistíme nezávislost pro nově spouštěný proces a pomocí &
ho spustíme na pozadí.
$ nohup ./skript.sh &
|
V případě, že nyní ukončíme shell, bude proces s PID 3043 (náš skript) dál pracovat. Proces můžeme ukončit zasláním SIGTERM
(dovolí procesu uložit data na disk a dobrovolně se ukončit), ale tento signál může proces ignorovat.
Existují dva signály, které ignorovat nemůže, SIGSTOP
(pozastaví proces) a SIGKILL
(bez milosti proces zabije). Pro zaslání signálu můžeme použít kill
nebo killall
(POZOR ukončí všechny procesy zadaného názvu!). Použití ukazují následující příkazy (použijeme jeden z nich).
$ kill -SIGKILL 3043
|
Stiskem CTRL+z zašleme právě běžícímu procesu signál SIGSTOP
,
zadáním příkazu fg
ho opět probudíme a je-li proces
na pozadí, umístí ho na popředí. Příkazem bg
přesuneme
naopak proces na pozadí. Nezadáme-li identifikátor procesu, je použit
poslední použitý identifikátor v rámci aktivního shellu.
$ mp3blaster
|
/etc/shells
- použitelné přihlašovací shelly/etc/adduser.conf
- výchozí hodnoty pro adduser/etc/profile
- načítaný při přihlášení$HOME/.bash_profile
- načítaný při přihlášení$HOME/.bashrc
- načítaný při startu interpretu$HOME/.bash_logout
- načítaný při odhlášení$HOME/.bash_history
- evidence naposledy prováděných příkazůLze jí editovat jako ve dvou nejpoužívanějších (dle mého názoru
i nejlepších) textových editorech vi, Emacs (není to "pouze"
textový editor). Implicitní je mód emacs
" class="emo">. Zmíním pouze
několik příkazů jako ukázku, zbytek si můžete dohledat v dokumentaci.
Než začnete zkoušet klávesové zkratky, ověřte si, jestli máte zapnutý
mód emacs
, případně ho zapněte.
$ set -o emacs
|
ESC b
- posun o jedno slovo zpětESC f
- posun o jedno slovo vzadESC d
- smazání následujícího slovaCTRL+Y
- vložení naposledy smazané položkyCTRL+K
- smazání textu do konce řádkuCTRL+R
- postupné vyhledávání v historii příkazůESC <
- posun na první řádek historie příkazůTAB
- pokus o obecné dopnění textuTAB TAB
- jestliže existuje více možností doplnění, vypíše jeESC ~
- pokus o doplnění jména uživateleCTRL+X ~
- vypíše možné alternativy doplnění jména uživateleCTRL+X $
- vypíše možné alternativy doplnění jména proměnnéCTRL+X @
- vypíše možné alternativy doplnění jména počítačeESC TAB
- pokusí se doplnit text z předchozích příkazů v historiiKlávesových zkratek a příkazů je opravdu hodně. Ale nemějte strach, časem vám přejdou do krve a znalost těch nejdůležitějších (z vašeho úhlu pohledu) se pro vás stane samozřejmostí. Když provádíte nějakou činnost v systému, vždy se ji snažte provádět co nejefektivnějším a nejrychlejším způsobem. Zkuste se zamyslet, jestli by to nešlo udělat lépe.
Své nové objevy si poznamenávejte na papír, který nechávejte ležet vedle klávesnice. Budete to mít všechno hezky po ruce, než si to potřebné pro vás častým používáním zapamatujete. Tak vám z papíru budou postupně některé věci ubývat a nové zase přibývat.
Nástroje: Tisk bez diskuse
Tiskni Sdílej:
Diskuse byla administrátory uzamčena
24.10.2003 09:29$ echo $SHELL
/bin/bash
$ cat /etc/passwd | grep $USER
fuky:x:1000:1000:Jan Fuchs,,,:/home/fuky:/bin/bash
$ ls -l /bin/sh
lrwxrwxrwx 1 root root 4 čen 19 02:24 /bin/sh -> bash
zkousel jsem to zadat do konzole - jak poradcich, tak i cele najednou a porad jen command not found....
Asi to nemam cpat do konzole, ale jinam, ze?
Všimni si, že je na konzoli před blikajícím kurzorem znak $ nebo #. Znak dolaru tě informuje o tom, že jsi "obyčejný uživatel" a znak zahrádka o tom, že jsi root (tj. máš neomezená práva, tutíž můžeš konfigurovat přípdaně zničit systém jak si Ti jen zlíbí).
Před každým příkazem tedy píši tento znak, aby jsem odlišil příkaz od výstupu a naznačil jaká oprávnění musím pro jeho spuštění mít. Např. aby jsem mohl spustit příkaz usermod musím mít rootovská oprávnění.
Takže zadej příkaz:
echo $SHELL
A s velkou pravděpodobností dostaneš odpověď (tj. Tvůj shell):
/bin/bash
Už je Ti to jasné?