Man Yue Mo z GitHub Security Lab se podrobně rozepsal o již opravené zranitelnosti CVE-2023-6241 v Arm Mali GPU umožňující získání roota na telefonu Pixel 8 s povoleným MTE (Memory Tagging Extension).
V San José probíhá vývojářská konference NVIDIA GTC 2024. CEO společnosti NVIDIA Jensen Huang měl dvouhodinovou keynote, ve které představil celou řadu novinek: NVIDIA Blackwell platform, NVIDIA NIM microservices, NVIDIA Omniverse Cloud APIs, Project GR00T, …
Byly zpracovány a na YouTube zveřejněny videozáznamy jednotlivých přednášek z letošního Installfestu.
Od 21. do 23. března proběhnou Arduino Days 2024. Sledovat bude možné oficiální streamy. Zúčastnit se lze i lokálních akcí. V Česku jsou aktuálně registrovány dvě: v Praze na Matfyzu a v Poličce v městské knihovně.
Letošní ročník konference LinuxDays se uskuteční o víkendu 12. a 13. října, opět se potkáme v pražských Dejvicích na FIT ČVUT. Také během letošního ročníku nás budou čekat desítky přednášek, workshopy, stánky a spousta doprovodného programu. Aktuální dění můžete sledovat na Twitteru, Facebooku nebo na Mastodonu, přidat se můžete také do telegramové diskusní skupiny.
Byla vydána nová major verze 2.0.0 a krátce na to opravné verze 2.0.1 open source online editoru Etherpad (Wikipedie) umožňujícího společné úpravy v reálném čase.
Matematický software GNU Octave byl vydán ve verzi 9.1.0. Podrobnosti v poznámkách k vydání. Nově je preferovaný grafický backend Qt a preferovaná verze Qt 6. V tomto vydání byly přepracovány funkce pro převod čísel z desítkové soustavy. Jako obvykle jsou zahrnuta také výkonnostní vylepšení a zlepšení kompatibility s Matlabem.
Společnost PINE64 stojící za telefony PinePhone nebo notebooky Pinebook publikovala na svém blogu březnový souhrn novinek. Vypíchnout lze, že pracují na virtuálním asistentu PineVox a zatím bezejmenných sluchátkách na lícní kosti (bone conduction).
Hyprland, kompozitor pro Wayland zaměřený na dláždění okny a zároveň grafické efekty, je již dva roky starý. Při té příležitosti byla vydána verze 0.37.0 (a záhy opravná 0.37.1 řešící chybu ve vykreslování oken). Nově závisí na knihovně hyprcursor, která poskytuje škálovatelné kurzory myši.
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é?