O víkendu 11. a 12. května lze navštívit Maker Faire Prague, festival plný workshopů, interaktivních činností a především nadšených a zvídavých lidí.
Byl vydán Fedora Asahi Remix 40, tj. linuxová distribuce pro Apple Silicon vycházející z Fedora Linuxu 40.
Představena byla služba Raspberry Pi Connect usnadňující vzdálený grafický přístup k vašim Raspberry Pi z webového prohlížeče. Odkudkoli. Zdarma. Zatím v beta verzi. Detaily v dokumentaci.
Byla vydána verze R14.1.2 desktopového prostředí Trinity Desktop Environment (TDE, fork KDE 3.5). Přehled novinek v poznámkách k vydání, podrobnosti v seznamu změn.
Dnešním dnem lze již také v Česku nakupovat na Google Store (telefony a sluchátka Google Pixel).
Apple představil (keynote) iPad Pro s čipem Apple M4, předělaný iPad Air ve dvou velikostech a nový Apple Pencil Pro.
Richard Biener oznámil vydání verze 14.1 (14.1.0) kolekce kompilátorů pro různé programovací jazyky GCC (GNU Compiler Collection). Jedná se o první stabilní verzi řady 14. Přehled změn, nových vlastností a oprav a aktualizovaná dokumentace na stránkách projektu. Některé zdrojové kódy, které bylo možné přeložit s předchozími verzemi GCC, bude nutné upravit.
Free Software Foundation zveřejnila ocenění Free Software Awards za rok 2023. Vybráni byli Bruno Haible za dlouhodobé příspěvky a správu knihovny Gnulib, nováček Nick Logozzo za front-end Parabolic pro yt-dlp a tým Mission logiciels libres francouzského státu za nasazování svobodného softwaru do praxe.
Před 10 lety Microsoft dokončil akvizici divize mobilních telefonů společnosti Nokia a pod značkou Microsoft Mobile ji zanedlouho pohřbil.
Fedora 40 release party v Praze proběhne v pátek 17. května od 18:30 v prostorách společnosti Etnetera Core na adrese Jankovcova 1037/49, Praha 7. Součástí bude program kratších přednášek o novinkách ve Fedoře.
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é?