LINUXZONE






 >> Hlavní stránka

(1740/07.09.2010)


 >> Administrace

(161/05.08.2010)


 >> Literatura

(311/07.09.2010)


 >> Bezpečnost

(345/03.09.2010)


 >> Programování

(307/19.04.2010)


 >> Distribuce

(97/09.06.2010)


 >> Síťování

(86/03.06.2010)


 >> Lokalizace

(10/15.09.2004)


 >> Aplikace

(176/12.08.2010)


 >> Multimedia

(32/31.03.2006)


 >> Hardware

(45/02.03.2007)


 >> Začínáme

(228/24.06.2010)


 >> Aktuálně

(562/06.09.2010)


 >> RELAX

(209/02.09.2010)


 >> Jinde vyšlo

přehled ostatních serverů




 Přihlášení




Login:
Heslo:
 uložit v prohlížeči


Nejste-li ješte zaregistrováni, můžete tak učinit zde.





 Vyhledávání




Hledaný výraz:
v klíčových slovech
v titulku
v anotaci
v textu








 Reklama









 Servis




*   Vaše náměty a připomínky
Máte k Linuxzone.cz nějaké připomínky nebo náměty? Našli jste na stránkách chybu? Dejte nám o tom vědět pomocí formuláře nebo v diskuzi.
Komentářů: 30
*   Podpořte Linuxzone.cz
Chcete podpořit náš server umístěním odkazu nebo zveřejněním backendu? Zde najdete vše potřebné.
*   Pište pro Linuxzone.cz
Máte zájem podílet se na obsahu Linuxzone.cz ať už jako redaktoři nebo i jinak? Dejte nám o sobě vědět!





 Aktuálně z bezpečnosti




-- 
6.12.2005, 19:01
Na serveru informit.com vyšla ukázková kapitola týkající se práce s řetězci z knihy Secure Coding in C and C++. (lz)

-- 
3.12.2005, 12:34
Bugtraq: Format String Vulnerabilities in Perl Programs. (lz)

-- 
3.12.2005, 12:32
Linux Advisory Watch December 2nd 2005. (lz)

-- 
23.10.2005, 13:28
Rozhovor na téma klasické zálohování versus CDP. (lz)

-- 
23.10.2005, 13:24
Linux Advisory Watch October 21st 2005. (lz)

další >>





 Aktuálně o software




-- 
6.12.2005, 19:07
Potřebujete-li pod linuxem rozchodit bezdrát založený na čipsetech Broadcom 43xx, konečně existuje linuxový ovladač. (lz)

-- 
6.12.2005, 19:04
Byla uvolněna verze Xen 3.0.0 virtualizační technologie XEN. (lz)

-- 
6.12.2005, 18:59
Byla uvolněna verze X11R6.9/X11R7 RC 3 grafickérho rozhraní X Window System. (lz)

-- 
3.12.2005, 12:45
Co je nového okolo projektu Amanda (open source zálohovací software)? Více na osnews.com. (lz)

-- 
3.12.2005, 12:40
Jak to akuálně v linuxu vypadá s podporou SATA.. (lz)

další >>





 Aktuálně z IT




-- 
3.12.2005, 12:51
Novellu se daří prodej linuxových produktů, oproti loňskému roku se Novell dočkal výrazného nárůstu. (lz)

-- 
3.12.2005, 12:48
Třetí verzi licence GPL by měla být publikována během jara 2007. (lz)

-- 
23.10.2005, 13:20
V Peru nyní mají zákon, který umožňuje nasazení open source software ve vládní správě. (lz)

-- 
23.10.2005, 13:14
Proč se Microsoft bojí Google? (lz)

-- 
27.9.2005, 22:01
Peru má zákon podporující free software. (lz)

další >>





 Nejčtenější články




-- 
Virtualizace - Praktický průvodce

-- 
Novinky ze světa svobodného software (21/2010)

-- 
Novinky ze světa svobodného software (22/2010)

-- 
Security Digest (21/2010)

-- 
Bezpečnost bezdrátové komunikace

-- 
Prodej svobodného software? (2/2)

-- 
Patentová reforma nestačí

-- 
Prodej svobodného software? (1/2)

-- 
Gamesárium [140]

-- 
Novinky ze světa svobodného software (23/2010)






 Nejlepší články




-- 
Security Digest (22/2010)

-- 
Virtualizace - Praktický průvodce

-- 
Security Digest (21/2010)

-- 
Novinky ze světa svobodného software (21/2010)

-- 
Novinky ze světa svobodného software (23/2010)

-- 
Novinky ze světa svobodného software (22/2010)

-- 
Prodej svobodného software? (2/2)

-- 
Bezpečnost bezdrátové komunikace

-- 
TCP/IP v kostce

-- 
Patentová reforma nestačí






 Anketa




Používáte nějaké rozšíření bezpečnostního modelu linuxového jádra?

Openwall (18%)

LIDS (12%)

Pax/Grsecurity (3%)

SELinux (6%)

RSBAC (1%)

jiné (1%)

používám standardní jádro (59%)







Linuxzone.cz - server o Linuxu pro programátory, administrátory a fanoušky.
Provozuje společnost Impossible.
ISSN: 1213-8738





BASH & jak se v něm neztratit III.

Po dalším týdnu jsme zpět se seriálem o programování v BASHi. V dnešní části se podíváme na signály v Linuxu. Rozlišíme si je a povíme si, jak s nimi pracovat. To ale není vše. Aby toho nebylo málo, nahlédneme dnes konečně i pod pokličku skutečného programování a ve stručnosti zavítáme do světa proměnných...

Unixové operační systémy mohou procesům zasílat nejrůznější signály, kterými je informují o nějaké situaci a tím řídí jejich činnost. Asi nejčastěji používaným signálem je SIGTERM, avšak s pomocí programu kill můžeme zasílat i jiné signály.

Na různých systémech se může výčet podporovaných signálů mírně lišit. Odchylky by však měly být minimální. Seznam signálů, které podporuje váš systém, získáte pomocí příkazu kill -l:

$ kill -l
 +---------------+--------------+--------------+-------------+
 | 1) SIGHUP     | 2) SIGINT    | 3) SIGQUIT   | 4) SIGILL   |
 | 5) SIGTRAP    | 6) SIGIOT    | 7) SIGBUS    | 8) SIGFPE   |
 | 9) SIGKILL    | 10) SIGUSR1  | 11) SIGSEGV  | 12) SIGUSR2 |
 | 13)SIGPIPE    | 14) SIGALRM  | 15) SIGTERM  | 17) SIGCHLD |
 | 18) SIGCONT   | 19) SIGSTOP  | 20) SIGTSTP  | 21) SIGTTIN |
 | 22) SIGTTOU   | 23) SIGURG   | 24) SIGXCPU  | 25) SIGXFSZ |
 | 26) SIGVTALRM | 27) SIGPROF  | 28) SIGWINCH | 29) SIGIO   |
 | 30) SIGPWR    |              |              |             |
 +---------------+--------------+--------------+-------------+

Jak vidíte na výpisu, každý signál má své unikátní jméno, kterému předchází předpona SIG. K zaslání tohoto signálu některému procesu můžete u příkazu kill využívat buď číslo tohoto signálu nebo jeho jméno bez prefixu SIG. Například tedy kill -9 %7 je ekvivalentní s příkazem kill -KILL %7.

Jestliže použijete příkaz kill bez specifikace zasílaného signálu, bude automaticky odeslán signál číslo patnáct, tedy SIGTERM. Ten "požádá" proces o jeho ukončení a dá mu možnost, aby po sobě "uklidil", tedy zlikvidoval dočasné soubory a další specifické věci. Jestliže je však tento signál programem ignorován, bude zaslán jiný - signál číslo devět, tedy SIGKILL. Ten už program ignorovat nemůže a dojde k jeho okamžitému ukončení (bez "uklizení").

Minule jsme si povídali o pozastavování úloh a procesů. Pokud nemůžeme z nějakého důvodu pozastavit proces využitím klávesové kombinace CTRL+Z, stačí, když danému procesu zašleme signál SIGSTOP. K opětovnému spuštění můžeme zaslat signál s číslem osmnáct, tedy SIGCONT.

Dalším signálem, který stojí za bližší pohled, je SIGWINCH. Ten je programu zaslán v případě, že terminál změní svoje parametry, tedy například při změně velikosti okna emulátoru terminálu xterm, čímž dojde ke změně počtu sloupců a řádků. V řadě aplikací musí být zaslání tohoto signálu následováno příkazem pro překreslení obrazovky (nejčastěji klávesová kombinace CTRL+L).

Posledním signálem, o němž si povíme něco víc, je SIGHUP. Ten programu oznámí, že byl odpojen od terminálu a měl by ukončit svou činnost. Skutečné chování programu po zaslání tohoto signálu, ale závisí na jeho autorovi. Některé programy, které byly ale vytvořeny pro běh mimo připojený terminál, tento signál využívají k opětovnému načtení konfiguračních souborů. V dnešní době je pro tuto činnost upřednostňován signál SIGUSR1. Takovými programy jsou například nejrůznější démoni, tedy systémové programy běžící na pozadí, které stále nebo v určitých intervalech vykonávají svou činnost.

Jen ještě malá poznámka na závěr - zasílat signály může uživatel pouze svým procesům. Výjimku tvoří samozřejmě privilegovaný uživatel root, který může zasílat signály všem procesům bez výjimky. Důvod je prostý - ochrana procesů jiných uživatelů před nevyžádaným ukončením či změně chování.

Konečně programujeme aneb Proměnné v teorii i praxi

Po krátkých povídáních o úlohách, procesech, běhu na pozadí a na popředí, tedy stručně řečeno - o principech fungování základních prvků operačního systému Linux (nebo chcete-li obecně - Unix), se konečně dostáváme k praktickým záležitostem, které zužitkujeme při psaní skriptů. V dnešní části se uvedeme do světa proměnných.

Co je proměnná?

Každý, kdo někdy alespoň přičuchl k programování nebo absolvoval střední školu, jistě ví, že proměnná zastupuje nějakou proměnlivou hodnotu. Můžeme ji na začátku přiřadit jednu výchozí hodnotu a tu pak v průběhu programu nějakým způsobem měnit. Například pokud proměnnou a nastavíme na počáteční hodnotu 7 a v průběhu programu zadáme příkaz a=a*3, bude hodnota této proměnné 21 a nikoliv sedm, jako na začátku. Jak prosté.

Proměnná je tedy nějaký prostor, pro nějž nadefinujete hodnotu (textovou nebo číselnou) a tuto hodnotu využíváte, dokud není změněna.

Cesty k programům

Asi nejjednodušším využitím proměnné v příkazovém interpretu je nastavení cesty ke spustitelným souborům. Protože se na různých platformách či v různých distribucích Linuxu může lišit toto umístění, není nikde pevně zakomponováno a je nastaveno pomocí proměnné PATH. Díky této proměnné docílíme toho, že po zadání nějakého příkazu není prohledáván celý adresářový strom našeho systému, ale je postupně nahlédnuto do všech specifikovaných adresářů, v nichž máme umístěny spouštěné programy a v prvním adresáři, kde je takový program nalezen, toto hledání skončí a příkaz se provede. Pokud nalezen není, oznámí nám interpret chybu, respektive vypíše hlášku o nenalezení požadovaného programu.

Taková jednoduchá cesta pro vyhledávání by mohla vypadat například nějak takto:

/usr/local/bin:/usr/bin:/usr/X11R6/bin:/usr/sbin:/bin:/sbin

Jak vidíte, jednotlivé adresáře jsou odděleny dvojtečkou (typický oddělovač pro Unixy). V praxi to pak vypadá tak, že nejprve je prohledáván adresář /usr/local/bin, v případě nenalezení pak /usr/bin, apod. Postupuje se tedy krok za krokem od začátku cesty.

Přesné nastavení vaší cesty pro vyhledávání spustitelných programů, získáte výpisem proměnné PATH, což provedete pomocí příkazu echo $PATH na příkazovém řádku. Systém vám pak jednoduše vypíše celou cestu, tedy dvojtečkou oddělený seznam všech adresářů, které budou postupně prohledávány.

Pro dnešek naše povídání ukončíme. V příští části seriálu o BASHi se podíváme na praktické činnosti s proměnnými, tedy jejich nastavování, změny, apod. Tak se těšte, za týden jsme tu zas.

Další části seriálu:

Autor: Martin Kysela, 20. 12. 2002, 00:00
Sekce Programování, Komentářů: 0
Průměrné hodnocení: 2,95

o Poslat e-mailem
o Tisk článku
o Uložit do profilu


 Přispějte nám




Líbil se Vám tento článek? Můžete ho ocenit zavoláním na tel. číslo 906 460 134.
Cena hovoru za 1 minutu je 46 Kč.





 Hodnocení článku




Článek hodnotím jako:  [1] výborný   [2] dobrý   [3] průměr   [4] špatný   [5] hrůza  





 Komentáře







PŘIDAT KOMENTÁŘ ZOBRAZ VŠE >>










2002 © Impossible, s.r.o.   >> Kontaktujte redakci >> Právní upozornění >> Reklama