Internet Info, s.r.o. Lupa Měšec Podnikatel Root Zdroják DigiZone Slunečnice Vitalia TopDrive KupDnes Navrcholu NovýTarif Dobrý web Weblogy Woko Jagg Computer.cz SK: MojeLinky

Hlavní navigace

Překlepy - je ten shell opravdu nejlepší?

Tento článek je inspirován několika příběhy, které se odehrály za klávesnicí linuxového (případně i jiného) compu. Některé situace se mohou zdát legrační, jiné zase téměř tragické, ale jedno mají společné: rychlého, zbrklého a nedočkavého programátora :-)

Tweetni to Twitter Jaggni to! Jagg Del.icio.us Delicious

Ten první by mohl mít nadpis: „Kterak si smazat $HOME a nevšimnout si toho“. To byl jeden student, který trávil dlouhé dny i noci v UNIXovém labu. Jednou tak sedím v labu a najednou slyším řev přicházejíci od počítače 195.113.16.93­. Přiběhnu a na terminálu zmíněného kolegy vidím následující řádky:

  [login@comp:~/adresar]$ rm -rf . netscape
  [login@comp:~/adresar]$

Identifikaci uživatele jsem zastřel záměrně, abych se vyhnul případným pokusům o vraždu. Jistě si každý představíte, co by se stalo, kdyby v těch řádcích chybělo `/adresar' :-). I tak, ten kolega nebyl nadšen ztrátou určitých souborů. Resume z toho vyplývající: „Nechápu, koho napadlo začínat názvy konfiguračních/skry­tých souborů tečkou!“ :)

Druhý příběh se malinko liší, i když ve své podstatě jsou všechny stejné – lidská chyba. Jeden člověk rád používal program ‚mc‘ (i takoví jsou bohužel mezi námi :-). Navíc ho velmi rád spouštěl z libovolného adresáře, ale zároveň chtěl, aby výchozí adresáře byly jiné než aktuální (z nějakého podivného důvodu). Tedy chtěl napsat následující příkaz

  $ mc adresar1 adresar2

I stal se překlep a stal se <Enter>, chyba první.

  $ mv adresar1 adresar2

Jelikož se nedělo to, co očekával, nenapadlo ho nic lepšího, než zmáčknout kurzor <Up> a <Enter> – chyba druhá. Resume z toho vyplývající: „Nechápu, jak mohlo někoho napadnout nazvat filemanager ‚mc‘, když klávesa ‚c‘ je tak blízko klávesy ‚v‘!“ :)

Třetí příběh není tolik destruktivní (i když není pravdou, že vůbec), ale spíše konstruktivno-destruktivně-legrační. Co tím myslím, hned vysvětlím. Jistý uživatel U pracoval na jistém projektu P v adresáři A. V tomto adresáři měl soubory S={souborNN.c, souborNN.o, …}. Jeho záměrem bylo slinkovat objektové soubory a následně je vypsat. Tedy zamýšlel následující sekvenci příkazů:

  $ ld -o output *.o
  $ ls -o output *.o

Možná už tušíte, co se stalo, a pravděpodobně tušíte správně. Na obrazovce se objevila malinko jiná sekvence příkazů:

  $ ls -o output *.o
  $ ld -o output *.o

Výsledek byl v podstatě stejný (skoro), takže uživatel U by si toho nevšiml, kdyby tam nebyl uživatel U', který vše pečlivě pozoroval a ihned upozorňoval na vše, co se mu nezdálo. Ponaučení z toho plynoucí: „Nemá cenu zkoušet uživatele U' z shellu, stejně vám na to neskočí!“ :)
POZOR: V tomto příkladu se v podstatě nestane nic špatného, až na to, že uživatel asi neuvidí informace, které chtěl, ale tento (i předchozí) příklad berte jako upozornění na to, že by se mohlo věnovat trochu více pozornosti pojmenovávání programů. Každý linuxák si určitě dokáže představit, jak by to vypadalo, kdyby se stále pokračovalo jako doposud a časem bychom měli mnoho dvoupísmenných příkazů, z nichž některé by dělaly velmi nebezpečné oprace :-)

Čtvrtý příběh je trochu drsnější. Drsnější proto, že uživatelem pracujícím byl root! A povedla se mu celkem hezká věc. Vytvářel startovací skripty pro určitou aplikaci v adresáři /opt/aplikace/etc a chtěl v adresáři /etc/rc.d smazat staré linky a následně tam zkopírovat nové. Napsal tedy následující příkazy:

  $ find /etc/rc.d -name \*$APPLICATION_VAR -exec rm {} \;
  $ cd /etc/rc.d
  $ ln -s /opt/aplikace/etc/*

davame_internetu_obsah
       

ALE, jelikož zapomněl definovat proměnnou APPLICATION_VAR, byly zbylé dva příkazy celkem zbytečné. Shell totiž expandoval proměnnou APPLICATION_VAR na "" (nic), * expandoval na znak ‚*‘, parametry tedy byly naprosto v pořádku a program find je přijal bez problémů. Ovšem root nebyl až tak šťastný, že vše zafungovalo a že programy nehlásí žádné chyby. Myslím, že by byl mnohem šťastnější, kdyby se jeho Linux aspoň těch pár minut choval jako Windows (‚Jste si jisti…?‘, ‚Recycle bin‘, ‚Jste si jisti, že .. Recycle bin?‘, …). Ponaučení z toho plynoucí: „Když máte Linux a rádi používáte shell, neříkejte hop, ale koukejte raději na klávesnici, co píšete!“ :)

Na závěr vám prozradím, že až na jednu historku jsou všechny pravdivé a v podstatě přesně tak, jak jsou popsané, se také odehrály. A způsobily jejich autorům nemalé problémy. Také vás všechny prosím, abyste mi nepsali rozhořčené maily o tom, že tomu nerozumím a že to tak přece není (že Recycle bin není problém implementovat pro Linux, že je otřesné nemít alias rm=‚rm -i‘ alespoň pro roota apod.). Některé příběhy jsem zjednodušil záměrně, aby nebyly o technických detailech (to bych musel vypsat .bashrc a .bash_profile uživatelů a ‚set‘ a …), ale o tom, o čem být měly. Tedy prosím vás o jistou úroveň představivosti. Děkuji :)

Školení: Návrh a používání MySQL databáze

 

Naučte se používat jednu z nejrozšířenějších databází. Dozvíte se vše potřebné od návrhu až po samotné využití MySQL v projektech.

Školení pro všechny, kteří se chtějí naučit efektivně pracovat s MySQL nebo se v práci s touto databází zlepšit.

Přihláška a podrobné informace

Ohodnoťte jako ve škole:
Průměrná známka 2,99

Přehled názorů

badblocks -w
Martin 21. 8. 2001 00:24
Nový
└ 
Re: badblocks -w
Jan Dvorak 21. 8. 2001 01:43
Nový
 
└ 
Re: mysql
RWS 21. 8. 2001 09:11
Nový
 
 
└ 
Re: mysql
Petr Šantrůček 23. 8. 2001 17:41
Nový
bez titulku
Prcek 21. 8. 2001 07:00
Nový
Davat bacha...
Michal Kara 21. 8. 2001 08:00
Nový
firewall
tom 21. 8. 2001 08:20
Nový
├ 
Re: firewall
xicht 21. 8. 2001 08:24
Nový
└ 
Re: firewall
jk 21. 8. 2001 18:02
Nový
 
└ 
Re: firewall
RWS 21. 8. 2001 18:47
Nový
 
 
└ 
Re: firewall
cifra 22. 8. 2001 12:12
Nový
rm po X-te
xicht 21. 8. 2001 08:21
Nový
├ 
chown
Peci 29. 8. 2001 16:12
Nový
└ 
Re: rm po X-te
Virgo 20. 9. 2001 08:14
Nový
bez titulku
martin 21. 8. 2001 08:24
Nový
└ 
Re:
Bilbo 23. 8. 2001 14:59
Nový
pred rm davat ls
Grumpa 21. 8. 2001 08:49
Nový
└ 
Re: pred rm davat ls
anonymní uživatel 8. 9. 2001 16:59
Nový
rm -rf usr
Zdeněk Kaminski 21. 8. 2001 08:59
Nový
Vlastní zkušenost
stanleyb7 21. 8. 2001 09:09
Nový
└ 
Re: Vlastní zkušenost
ok 21. 8. 2001 16:43
Nový
Prekvapeni
Frenya 21. 8. 2001 09:51
Nový
mv vs. mc a jedno ne tak dramaticke rm
JirkaS 21. 8. 2001 09:52
Nový
└ 
Re: mv vs. mc a jedno ne tak dramaticke rm
Rezza 22. 8. 2001 10:29
Nový
 
└ 
Re: mv vs. mc a jedno ne tak dramaticke rm
hkmaly 27. 8. 2001 18:29
Nový
bez titulku
jouda 21. 8. 2001 09:58
Nový
aaa.tgz
ptak 21. 8. 2001 11:15
Nový
Trashcan jinak
Daniel Smolik 21. 8. 2001 12:17
Nový
├ 
Re: Trashcan jinak
[e] 21. 8. 2001 13:06
Nový
├ 
Re: Trashcan jinak
Nepto 26. 8. 2001 11:09
Nový
└ 
Re: Trashcan jinak
hkmaly 27. 8. 2001 18:30
Nový
více konzol
Marek Chlup 21. 8. 2001 12:42
Nový
└ 
Re: více konzol
jk 21. 8. 2001 18:10
Nový
Z druhej stranky
Matus Uhlar 21. 8. 2001 14:05
Nový
└ 
Re: Z druhej stranky
RWS 21. 8. 2001 18:59
Nový
Z druhej stranky
Matus Uhlar 21. 8. 2001 14:05
Nový
-
Michal Illich 21. 8. 2001 15:16
Nový
mozna trosku mimo...
Tomas 21. 8. 2001 16:06
Nový
└ 
Re: mozna trosku mimo...
Milos 21. 8. 2001 17:26
Nový
 
└ 
Re: mozna trosku mimo...
jk 21. 8. 2001 18:05
Nový
 
 
└ 
Re: mozna trosku mimo...
RWS 21. 8. 2001 18:56
Nový
mozna trosku mimo...
Tomas 21. 8. 2001 16:06
Nový
Nepřijde mi to moc destruktivní
Martin 21. 8. 2001 16:40
Nový
├ 
Re: Nepřijde mi to moc destruktivní
martin 22. 8. 2001 00:47
Nový
│
└ 
Re: Nepřijde mi to moc destruktivní
TopGum 4. 9. 2001 17:46
Nový
└ 
Re: Nepřijde mi to moc destruktivní
bogdan@matfyz.cz 22. 8. 2001 12:48
Nový
 
└ 
Re: Nepřijde mi to moc destruktivní
xicht 24. 8. 2001 08:44
Nový
bez titulku
anonymous 21. 8. 2001 20:09
Nový
└ 
chown
marian 22. 8. 2001 10:57
Nový
z davnych dob
m 22. 8. 2001 08:14
Nový
Na to nepotřebujete Linux, stačí obyčejný DOS
Patrik 22. 8. 2001 08:36
Nový
Command line aj inde
dD 22. 8. 2001 09:28
Nový
DOS format
Vitr 22. 8. 2001 12:56
Nový
cd <-> dc , mtools, RPM_BUILD_ROOT
Michal Ambroz 22. 8. 2001 15:26
Nový
Verejna kryptografie
Hynek 24. 8. 2001 01:10
Nový
Smazani pracovniho adresare
xicht 24. 8. 2001 08:51
Nový
Myš je také nebezpečná...
Milan Hruška 27. 8. 2001 10:27
Nový
vice masin na jednom stole
Yokotashi 27. 8. 2001 11:45
Nový
Vzdialeny pristup
Jozef Drahovsky 2. 9. 2001 23:32
Nový
Vidim ze nejvetsi
bogdan@matfyz.cz 5. 9. 2001 10:05
Nový
└ 
Re: Vidim ze nejvetsi
Awe 19. 9. 2001 17:58
Nový
Dalsi paradny preklep pri vzdialenom pristupe
Jozef Drahovsky 24. 8. 2004 18:30
Nový
...
Jakub Šťastný 1. 3. 2006 22:30
Nový
       

Tento text je již více než dva měsíce starý. Chcete-li na něj reagovat v diskusi, pravděpodobně vám již nikdo neodpoví. Pro řešení aktuálních problémů doporučujeme využít naše diskusní fórum.

Zasílat nově přidané příspěvky e-mailem