Root.cz - Triky pro zacatecniky 6
Transkript
Root.cz - Triky pro zacatecniky 6 Page 1 of 3 Triky pro zacatecniky 6 28.08.2000 Posledne jsem trochu nakousnul presmerovani standardniho vstupu a vystupu. Dnes si tuto vybornou vlastnost probereme trochu dukladneji. Predem ale upozornuji, ze se uvedene priklady budou tykat predevsim bashe a v jinych shellech (Korn shell, C shell) vam nemusi fungovat (vetsinou budou). Predstavte si situaci, kdy potrebujete zachytit vysledek prikazu do souboru, abyste si jej mohli pozdeji prohlednout ci nejak zpracovat. Napriklad instalujete program ze zdrojovych textu a chcete vedet, co pri tom dela. Nejjistejsim zpusobem je prohlednout si Makefile, ale nektere rozsahle produkty maji nemene dlouhe Makefily a navic, pokud neznate syntaxi tohoto uzitecneho souboru, stejne nic nepochopite. Pokud instalace probiha neinteraktivne (instalator se vas na nic nepta), staci napsat make install > vystup. V souboru vystup pak najdete vse, co se pri instalaci zapisovalo na standardni vystup. Pak jiz neni problem hledat spousteni prikazu install, cp, mv, rm, chmod apod. Ted uz vite, ze jeden znak vetsitka () presmeruje standardni vystup z programu do souboru. Vetsina unixovych filtru spoleha na toto chovani. Takze pokud chcete vytvorit animovany gif, pouzijete neco jako gifsicle -lforever -d110 -O2 out*gif > banner.gif. Velky pozor si ale musite davat, pokud manipulujete s jedinym souborem. Pokud chcete provest transformaci na souboru, NESMITE vystup z filtru presmerovat do stejneho souboru, ktery se zaroven pouziva pro vstup dat. Shell totiz jeste pred spustenim prikazu vytvori vystupni soubor a pokud existuje, zkrati jeho velikost na nulu. Takze napriklad pouziti prikazu cstocs 1250 il2 soubor.txt > soubor.txt se rovna ztrate vsech dat v danem souboru. Spravny tvar vyse zmineneho prikazu je cstocs 1250 il2 soubor.txt > soubor.tmp; mv soubor.tmp soubor.txt a prevede soubor v kodovani Windows do kodovani ISO-8859-2, ktere pouziva Linux. Jeste ted si vzpominam na okamzik, kdy jsem poprve objevil toto chovani shellu. Tehdy jsem nekolik dnu rucne upravoval naskenovany obrazek a pak jsem v nem chtel zmenit jednu barvu na pruhlednou prikazem giftrans ... Vetsitko se da pouzit i na vytvareni prazdnych souboru ci mazani obsahu existujicich souboru. Prikaz > soubor.txt vytvori soubor soubor.txt o velikosti 0 bytu. Pokud tento soubor existoval, bude jeho delka zkracena na 0 bytu. Toho se da uspesne vyuzit na mazani logovacich souboru, pokud nepouzivate sofistifikovanejsi reseni logrotate. Napriklad je uz soubor .xsession-errors prilis dlouhy? Zkratme jej prikazem > .xsession-errors. Mohli bychom sice pouzit rm, ale nektere programky spatne nesou neexistenci svych souboru. Nebyl by to Unix, kdyby neexistovala i jina cesta, jak vytvorit prazdny soubor a tou je prikaz touch. Touch dela presne to, co napovida jeho nazev, tedy dotkne se souboru, zmeni cas posledniho pristupu a posledni zmeny na soucasnost, ale jinak soubor nemeni, ani nemaze. Pouze pokud soubor neexistuje, tak jej vytvori (prazdny, ovsem). Maly priklad syntaxe vam ukaze, jak se muzete dotknout nebe :-) : touch nebe. Nekdy se vam ale nemusi hodit chovani vetsitka, ktere vzdy prepisuje soubor. Treba byste byli spokojenejsi, kdyby se novy obsah pripsal na konec souboru. Zadny problem, misto jednoho vetsitka pouzijte vetsitka dve. Napriklad cat hesla.txt >> jak_se_stat_crackerem.txt pripoji obsah souboru hesla.txt na konec souboru jak_se_stat_crackerem.txt. http://www.root.cz/print.phtml?id=459 8/8/2002 Root.cz - Triky pro zacatecniky 6 Page 2 of 3 Mozna trochu programujete a tak vas napadlo, ze pokud je mozne presmerovat standardni vystup, musi jit presmerovat i standardni chybovy vystup. Trefa. Jde to. Jedinou zmenou oproti normalnimu presmerovani je pridani cisla 2 pred vetsitko. Napriklad prikaz make 2> chyby.txt ulozi do souboru chyby.txt hlaseni vsech chyb pri kompilaci. Pro zajimavost vam ukazu skript, ktery pouzivam pri kompilovani jadra: #!/bin/bash cd /usr/src/linux make clean make dep echo "make bzImage" > chyba_kompilace make bzImage 2>> chyba_kompilace || exit 1 beep echo "make modules" >> chyba_kompilace make modules 2>> chyba_kompilace || exit 1 beep echo "make modules_install" >> chyba_kompilace make modules_install 2>> chyba_kompilace || exit 1 echo "Done." >> chyba_kompilace beep Po skonceni si staci prohlednout soubor chyba_kompilace a hned vidim vsechna varovani i chyby. Beep je mala utilitka, ktera vyloudi skreky ze systemoveho reproduktoru. Pokud ma o ni nekdo zajem, pak ma smulu, o zdrojaky jsem prisel a uz si nepamatuji, jak jsem ji vytvoril. Pokud nepotrebujete videt standardni chybovy vystup, tak jej presmerujte do /dev/null, kde se zarucene ztrati. Nekdy se hodi presmerovat do souboru jak standardni vystup, tak i standardni chybovy vystup. V bashi staci dat pred vetsitko ampersand: &, napriklad ls -l neexistujici_soubor /tmp &>vystup.txt. Kdyz je mozne si takhle hrat s presmerovanim vystupu z prikazu, musi to jit i se vstupem. Jednoduse napisete za prikaz mensitko a nazev souboru, ktery ma nahradit standardni vstup. Program pak nebude cist pokyny ci data z terminalu, ale ze zvoleneho souboru. Kdysi jsem napriklad takto ovladal ftp. Vytvoril jsem si soubor s obdobnym obsahem: open sunsite.mff.cuni.cz user anonymous password [email protected] cd /pub/OS/Linux/kernel/v1.2 bin get linux-1.2.13.tar.gz quit Pak jsem spustil prikaz at midnight a napsal na standardni vstup ftp < prikazy.txt. O pulnoci pak demon atd spustil ftp klienta a ten si precetl ma prani z urceneho souboru (za jeho obsah nerucim, uz jsem to dlouho nezkousel a na lokale ftp server nemam). To je pro dnesek vse, priste se podivame na nektere dalsi prikazy, napriklad at a tee. Jeste si na zaver neodpustim skrytou reklamu: informace, jak nastavovat a zprovoznovat hardware hledejte na serveru [http://hardware.penguin.cz] Linux Hardware. http://www.root.cz/print.phtml?id=459 8/8/2002 Root.cz - Triky pro zacatecniky 6 Page 3 of 3 Autor: Leos Literak ([email protected]) Oblast: Praxe http://www.root.cz/print.phtml?id=459 8/8/2002
Podobné dokumenty
Jemný úvod do shellů II
K přesměrování výstupu slouží znaménko ’>’. Příkladem může být následující zápis:
$ ls > vypis.txt
Tento zápis způsobí že vše, co by se vypsalo na STDOUT, skončí v souboru vypis.txt.
Chybová hlášen...
Hacking, cracking a warez
Oba tyto zakladni principy jsou mezi hackery siroce, i kdyz nikoli vseobecne, prijimany. Vetsina hackeru se hlasi k hackerske etice v prvnim zde uvedenem vyznamu
a naplnuje jeji vyznam psanim a zve...
Root.cz - Triky pro uz ne zacatecniky
zcela novou verzi programu XY ve verzi 0.1. Celi zhavi jste spustili tento program, ale jake bylo
vase zklamani, kdyz se misto XAw (X Athena Widget - puvodni knihovna pripravku projektu XFree)
apli...
Úvod do Programování
Naštěstí nám operační systém (budeme teď chvíli mluvit konkrétně o Windows) umožňuje to, co
program vypisuje, velmi jednoduše zapsat do textového souboru. Jak?7
Spustíme si příkazový řádek – v nabí...
Fórum DreamServeru - DreamServer - WoW server
1.Jabber stahnete na: http://sourceforge.net/projects/psi/files/Psi/0.14/psi-0.14-win-setup.exe/download
2.Instalujte ho.
3.Pak vam tam vyskoci par tabulek vsechny vypnete.
4.Nechte tam jen pouhy p...
U´lozˇisˇteˇ digita´lnıch dat pro potreby U´K VSˇB-TU
školy báňské – Technické univerzity Ostrava, která by pomocı́ něho zpřı́stupňovala digitálnı́ verze naskenovaných článků ze sbornı́ků vědeckých pracı́ a elektronické verze
kvalifi...