/dev/null: Difference between revisions
Created page with 'Martin Leppik A21' |
No edit summary |
||
(33 intermediate revisions by 2 users not shown) | |||
Line 1: | Line 1: | ||
Martin Leppik | Autor: Martin Leppik | ||
A21 | A21 | ||
= Sissejuhatus = | |||
Null-seade või '''/dev/null''' on Unix-i laadsetes operatsioonisüsteemides seadmefail, mis viskab ära kõik sinna kirjutatud andmed, kuid teatab, et kirjutamine oli edukas. Iga protsess, mis üritab sellest failist midagi lugeda, saab teada, et seal pole andmeid. [http://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap10.html] Kui üritatakse masinat "rootida", siis ründaja tihti suunab logimise /dev/null-i. Näide: ln -s /dev/null .bash_history, mis lõpetab süsteemis bashi käskude logimise. [http://linux.about.com/cs/linux101/g/slshdevslshnull.htm] | |||
Programmeerijate kõnekeeles kutsutakse seda, kas '''mustaks auguks''' (black hole) või '''bitiämbriks''' (bit bucket). [http://catb.org/esr/jargon/html/B/bit-bucket.html]. | |||
= Kasutamine = | |||
Null-seadet kasutatakse tavaliselt teatud protsessi soovimatutest väljundvoogudest lahti saamiseks või tühja failina sisendvoogude jaoks. | |||
Seda tehakse tavaliselt suunamise abil. | |||
Näited: | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |käsk1 > /dev/null | |||
|} | |||
Tulemus: Käivitab käsk1, paigutades väljundi /dev/null'i. | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |käsk1 >> /dev/null | |||
|} | |||
Tulemus: Käivitab käsk1, paigutades väljundi null-seadme lõppu. | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |käsk1 < /dev/null | |||
|} | |||
Tulemus: Käivitab käsk1 ja kasutab null-seadet sisendina. | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |käsk1 2> /dev/null | |||
|} | |||
Tulemus: Käivitab käsk1, väljastab STDOUT, aga suunab STDERR-i /dev/null-i ehk veateateid ei kuvata. | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |käsk1 2>&1 1> /dev/null | |||
|} | |||
Tulemus: Kuvatakse ainult STDERR ehk veateated. See näeb välja nii, et STDERR suunatakse STDOUT-i ning STDOUT /dev/null-i - see tundub ebaloogilisena, aga see töötab. [http://www.novell.com/coolsolutions/feature/19859.html] | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |cat /dev/null > blah.txt | |||
|} | |||
Tulemus: Blah.txt faili sisu asendatakse tühjusega. | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |programm 2> /dev/null | |||
|} | |||
Kasutatakse, kui programm väljastab hunniku kasutuid ja tüütuid veateateid. | |||
Kuna /dev/null on seadmefail ja mitte kataloog, siis tervet kataloogi ei saa sinna liigutada Unixi '''mv''' käsuga. '''Rm''' käsk on õige viis failide kustutamiseks Unixi maailmas. | |||
See konteptsioon on mõnes mõttes võrdne '''NUL:''', CP/M, DOS ja Windowsi '''NUL''' seadmega, Windows NT ja selle järglaste '''\Device\Null''' või '''NUL''', Amiga operatsioonisüsteemi '''NIL:''' ja OpenVMS-i '''NL:'''. | |||
Windowsi Powershelli vaste null-seadmele on '''$null'''. | |||
== Näpunäited suunamiseks[http://akadeemia.kakupesa.net/OSAS/loengud/loeng1.pdf] == | |||
Unixis on kolm nn töövoogu (stream): | |||
*standardsisend (stdin = 0) – enamasti klaviatuur | |||
*standardväljund (stdout = 1 või mitte midagi) – enamasti kuvar | |||
*veavoog (stderr = 2) – enamasti kuvar | |||
Süsteem käsitleb neid nagu faile – avatakse, loetakse, kirjutatakse, suletakse. | |||
*> - suunab stdout'i faili (loob faili või kirjutab üle) | |||
*>> - suunab stdout'i faili (lisab olemasolevale sisule) | |||
*2> - nagu >, aga stderr'iga | |||
*2>> - nagu >>, aga stderr'iga | |||
*&> - nagu >, aga nii stdout kui stderr | |||
*< - loeb näidatud faili stdin'i | |||
*<< - loeb järgnevad read stdin'i | |||
*<> - määrab näidatud faili nii stdout'iks kui stdin'iks | |||
= Näited arvutimaailmast = | |||
Unixi programmeerijate poolt on tulnud mitmeid kõnekeelseid väljendeid ja metafoore null-seadme kohta. | |||
Näited:[http://www.kernel.org/faq/#spam] | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |"Palun saada kaebused /dev/null-i" | |||
|} | |||
Tähendus: "Ära vaevu saatma kaebusi" | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |"Mu kiri arhiveeriti /dev/null-i" | |||
|} | |||
Tähendus: "Mu kiri kustatati ära" | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |"Saada edasi /dev/null-i" | |||
|} | |||
Tähendus: "Mine ära!" | |||
IPhone Dev Team kasutas tavaliselt sellist fraasi: | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |"Saatke annetused /dev/null-i" | |||
|} | |||
Tähendus: nad ei vaja annetusi. | |||
Dave või Devin Nulli nime kasutatakse mõnikord sarnaselt /dev/null-ile: | |||
{|style="background:lightyellow;width:500px;margin:3px;border:1px solid lightgrey" align=centre | |||
| style="padding:0px 0px 0px 80px;font-family:courier;font-size:8pt;" |"Saatke kaebused Dave Nullile" | |||
|} | |||
1996. aastal oli Dev Null ühe animeeritud tegelase nimi MSNBC-i poolt toodetud sarjas "The Site". | |||
Null-seadet kasutatakse ka IT naljades[http://www.freebsd.org/doc/faq/funnies.html#dev-null] nagu näiteks hoiatuses kasutajatele, et süsteemi /dev/null on juba 98% täis. 1. aprillil teatati ühes saksa ajakirjas, et on tulemas /dev/null kiip, mis sissetulevad andmed muudab igavesti põlevaks LED-iks. | |||
= Kasutatud materjalid = | |||
*http://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap10.html | |||
*http://catb.org/esr/jargon/html/B/bit-bucket.html | |||
*http://akadeemia.kakupesa.net/OSAS/loengud/loeng1.pdf | |||
*http://www.kernel.org/faq/#spam | |||
*http://www.freebsd.org/doc/faq/funnies.html#dev-null | |||
*http://www.tech-recipes.com/rx/2993/how_to_empty_or_clear_the_contents_of_an_existing_unix_file/ | |||
*http://www.novell.com/coolsolutions/feature/19859.html | |||
[[Category: Operatsioonisüsteemide administreerimine ja sidumine]] |
Latest revision as of 11:12, 14 October 2013
Autor: Martin Leppik A21
Sissejuhatus
Null-seade või /dev/null on Unix-i laadsetes operatsioonisüsteemides seadmefail, mis viskab ära kõik sinna kirjutatud andmed, kuid teatab, et kirjutamine oli edukas. Iga protsess, mis üritab sellest failist midagi lugeda, saab teada, et seal pole andmeid. [1] Kui üritatakse masinat "rootida", siis ründaja tihti suunab logimise /dev/null-i. Näide: ln -s /dev/null .bash_history, mis lõpetab süsteemis bashi käskude logimise. [2]
Programmeerijate kõnekeeles kutsutakse seda, kas mustaks auguks (black hole) või bitiämbriks (bit bucket). [3].
Kasutamine
Null-seadet kasutatakse tavaliselt teatud protsessi soovimatutest väljundvoogudest lahti saamiseks või tühja failina sisendvoogude jaoks. Seda tehakse tavaliselt suunamise abil.
Näited:
käsk1 > /dev/null |
Tulemus: Käivitab käsk1, paigutades väljundi /dev/null'i.
käsk1 >> /dev/null |
Tulemus: Käivitab käsk1, paigutades väljundi null-seadme lõppu.
käsk1 < /dev/null |
Tulemus: Käivitab käsk1 ja kasutab null-seadet sisendina.
käsk1 2> /dev/null |
Tulemus: Käivitab käsk1, väljastab STDOUT, aga suunab STDERR-i /dev/null-i ehk veateateid ei kuvata.
käsk1 2>&1 1> /dev/null |
Tulemus: Kuvatakse ainult STDERR ehk veateated. See näeb välja nii, et STDERR suunatakse STDOUT-i ning STDOUT /dev/null-i - see tundub ebaloogilisena, aga see töötab. [4]
cat /dev/null > blah.txt |
Tulemus: Blah.txt faili sisu asendatakse tühjusega.
programm 2> /dev/null |
Kasutatakse, kui programm väljastab hunniku kasutuid ja tüütuid veateateid.
Kuna /dev/null on seadmefail ja mitte kataloog, siis tervet kataloogi ei saa sinna liigutada Unixi mv käsuga. Rm käsk on õige viis failide kustutamiseks Unixi maailmas.
See konteptsioon on mõnes mõttes võrdne NUL:, CP/M, DOS ja Windowsi NUL seadmega, Windows NT ja selle järglaste \Device\Null või NUL, Amiga operatsioonisüsteemi NIL: ja OpenVMS-i NL:.
Windowsi Powershelli vaste null-seadmele on $null.
Näpunäited suunamiseks[5]
Unixis on kolm nn töövoogu (stream):
- standardsisend (stdin = 0) – enamasti klaviatuur
- standardväljund (stdout = 1 või mitte midagi) – enamasti kuvar
- veavoog (stderr = 2) – enamasti kuvar
Süsteem käsitleb neid nagu faile – avatakse, loetakse, kirjutatakse, suletakse.
- > - suunab stdout'i faili (loob faili või kirjutab üle)
- >> - suunab stdout'i faili (lisab olemasolevale sisule)
- 2> - nagu >, aga stderr'iga
- 2>> - nagu >>, aga stderr'iga
- &> - nagu >, aga nii stdout kui stderr
- < - loeb näidatud faili stdin'i
- << - loeb järgnevad read stdin'i
- <> - määrab näidatud faili nii stdout'iks kui stdin'iks
Näited arvutimaailmast
Unixi programmeerijate poolt on tulnud mitmeid kõnekeelseid väljendeid ja metafoore null-seadme kohta.
Näited:[6]
"Palun saada kaebused /dev/null-i" |
Tähendus: "Ära vaevu saatma kaebusi"
"Mu kiri arhiveeriti /dev/null-i" |
Tähendus: "Mu kiri kustatati ära"
"Saada edasi /dev/null-i" |
Tähendus: "Mine ära!"
IPhone Dev Team kasutas tavaliselt sellist fraasi:
"Saatke annetused /dev/null-i" |
Tähendus: nad ei vaja annetusi.
Dave või Devin Nulli nime kasutatakse mõnikord sarnaselt /dev/null-ile:
"Saatke kaebused Dave Nullile" |
1996. aastal oli Dev Null ühe animeeritud tegelase nimi MSNBC-i poolt toodetud sarjas "The Site".
Null-seadet kasutatakse ka IT naljades[7] nagu näiteks hoiatuses kasutajatele, et süsteemi /dev/null on juba 98% täis. 1. aprillil teatati ühes saksa ajakirjas, et on tulemas /dev/null kiip, mis sissetulevad andmed muudab igavesti põlevaks LED-iks.
Kasutatud materjalid
- http://pubs.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap10.html
- http://catb.org/esr/jargon/html/B/bit-bucket.html
- http://akadeemia.kakupesa.net/OSAS/loengud/loeng1.pdf
- http://www.kernel.org/faq/#spam
- http://www.freebsd.org/doc/faq/funnies.html#dev-null
- http://www.tech-recipes.com/rx/2993/how_to_empty_or_clear_the_contents_of_an_existing_unix_file/
- http://www.novell.com/coolsolutions/feature/19859.html