Skrypty w Linux: narz¦dzia.
Transkrypt
Skrypty w Linux: narz¦dzia.
Skrypty w Linux: narz¦dzia. mgr Maciej Wróbel 25 pa¹dziernik 2010 1 Wprowadzenie GNU Coreutils Administracja systemem opracyjnym Linux, a tak»e jego eksploatacja wymaga operacji na plikach i tekscie. Aby usprawni¢ prac¦ system Linux wyposa»ony jest w zbiór podstawowych narz¦dzi sªu»¡cych do pracy w powªoce, z tekstem i z plikami. Narz¦dzia te dystrybuowane s¡ w zestawie zwanym GNU Coreutils. Umiej¦tne ich ª¡czenie pozwala wykonywa¢ operacje, do których z pewno±ci¡ nie mo»na znale¹¢ gotowego oprogramowania. Z cz¦±ci¡ polece« zapoznali±my si¦ ju» na poprzednich zaj¦ciach. Celem bie»¡cego laboratorium jest zapoznanie si¦ z mo»liwo±ciami, jakie daj¡ narz¦dzia podstawowe. Dokumentacja narz¦dzi podstawowych dost¦pna jest w systemie na stronach info coreutils oraz w Internecie (link). Wiele narz¦dzi do pracy z tekstem, plikami i w powªoce wbudowanych jest tak»e w sam¡ powªok¦ Bash. Ich lista dost¦pna jest na stronach podr¦cznika Bash w cz¦±ci Builtin Commands. Cz¦±¢ polece« powªoki nadpisuje polecenia zawarte w Coreutils. 2 GNU Coreutils Operacje na tekscie: cat,tac ª¡czy zawarto±¢ plików podanych jako argumenty (tac wy±wietla wierszami od ko«ca) nl numeruje wiersze pliku od,base64 fmt,pr,fold head,tail formatuj¡ wy±wietlany tekst wy±wietla split,csplit wc przeksztaªca plik do formatu szesnastkowego lub kodowanego alfabetem base64 n pocz¡tkowych/ko«cowych wierszy pliku dziel¡ pliki na mniejsze cz¦±ci liczy ilo±¢ wierszy, sªów i wyrazów w pliku sum,cksum,md5sum,sha1sum,sha2 obliczaj¡ funkcje skrótu lub sumy kontrolne dla plików 1 sort,tsort sortuje zawarto±¢ pliku wg zadanych kryteriów shuf miesza zawarto±¢ pliku uniq usuwa (nie)powtarzaj¡ce si¦ wiersze comm porównuje posortowane pliki cut,paste,join tr wycinanie,ª¡czenie linii i fragmentów wierszy usuwa/transliteruje/usuwa powtarzaj¡ce si¦ znaki pliku expand,unexpand zamienia spacje na tabulatory i na odwrót Obsªuga plików itd.: ls,dir,vdir wy±wietlanie zwykªe, krótkie i dªugie zawarto±ci katalogów cp,dd,install kopiowanie/kopiowanie z konwersj¡/kopiowanie i ustawianie atrybutów plików mv przenoszenie plików rm,shred usuwanie/bezpieczne usuwanie plików link,ln,readlink,unlink tworzenie linków do plików, wy±wietlanie ich wskaza« i usuwa- nie linków mkdir,rmdir mknod mkfo tworzenie/usuwanie katalogów tworzenie urz¡dze« specjalnych tworzenie nazwanych ª¡czy chown,chgrp,chmod touch df du zmiana wªa±ciciela, grupy i uprawnie« do pliku zmiana znaczników czasu pliku raport u»ycia dysków szacunkowe u»ycie dysku przez pliki stat sync status pliku/systemu plików synchronizacja buforów pami¦ci i dysku truncate zmiana wielko±ci pliku basename,dirname pathchk wycinanie nazwy pliku/nazwy katalogu z peªnej ±cie»ki testuje poprawno±¢ nazwy pliku 2 mktemp pwd tworzenie tymczasowego pliku/katalogu wy±wietla katalog roboczy stty,tty wªasno±ci terminala printenv wy±wietla zmienne ±rodowiskowe Inne: echo,printf yes wy±wietlanie ªa«cucha znaków w niesko«czonej p¦tli false,true test wykonuje wyra»enie arytmetyczne przekazuje stdin do pliku i na stdout factor seq nic nie robi¡, bez sukcesu i z sukcesem (exit code != 0 i exic code = 0) porównywanie warto±ci lub testowanie typów plików expr tee wy±wietlanie lini tekstu faktoryzacja liczby generowanie podzbioru ci¡gu arytmetycznego Wªa±ciwo±ci u»ytkowników: id wªa±ciwo±ci u»ytkownika logname,whoami groups nazwa u»ytkownika grupy u»ytkownika users,who kto jest zalogowany Cechy systemu: date wy±wietla lub ustawia czas systemowy arch architektura procesora uname informacje o systemie hostname,hostid uptime informacje o nazwie systemu informacje o obci¡»eniu i czasie dziaªania systemu Procesy: chroot,env,nice,stdbuf,su zmiana katalogu root/±rodowiska/ poziomu nice/ buforo- wania/ u»ytkownika dla wywoªywanego polecenia 3 nohup polecenie odporne na zawieszenie teminala steruj¡cego timeout kill wykonanie polecenia z ograniczonym czasem dziaªania wysyªanie sygnaªu do procesu sleep czekanie n sekund/minut/godzin/dni SELinux: chcon zmiana kontekstu SELinux dla pliku runcon 2.1 wykonanie polecenia z okre±lonym kontekstem SELinux grep Polecenie grep wybiera z pliku wiersze pasuj¡ce do podanego wyra»enia regularnego, np. polecenia: grep -P '^aab' grep -P '^a.*z$' grep -vP 'a' odltruj¡ kolejno wszystkie wiersze, zawieraj¡ce na pocz¡tku wiersza znaki aab, wiersze, zaczynaj¡ce si¦ od a i ko«cz¡ce na z oraz wszystkie wiersze, nie zawieraj¡ce litery a (przeª¡cznik -v neguje wybór). 2.2 Sed i Awk Edytor wierszowy sed zmienia linie pliku wedªug zadanego wzorca, za± j¦zyk programowania awk pozwala wykonywa¢ operacje na polach wierszy plików. Przykªady u»ycia tych narz¦dzi mo»na znale¹¢ m. in. w pliku ltry.pdf, w dziale materiaªy (do systemów operacyjnych) na mojej stronce. 2.3 curl Narz¦dzia dla www i sieci pobiera dane z adresu URL (protokoªy http, ftp i inne) wget rsync pobiera pliki protokóª (m.in. zdalnego) kopiowania plików W wersji elektronicznej instrukcji podane ni»ej linki s¡ hiperª¡czami. 4 Literatura [1] Materiaªy MiMUW (j. polski) na Systemy_operacyjne http://wazniak.mimuw.edu.pl/index.php?title= dotycz¡ce u»ytkowania systemu uniksopodobnego. [2] Ka»dy podstawowy podr¦cznik systemu Linux. [3] Materiaªy (w j. angielskim) dotycz¡ce certykatu LPI udost¦pniane przez IBM na http: //www.ibm.com/developerworks/linux/library/l-lpic1-v3-map/ [4] Podstawy Bash (w j. polskim) udost¦pniane przez spoªeczno±¢ Gentoo na http://www. gentoo.org/doc/pl/articles/bash-by-example-p1.xml. [5] Podr¦cznik Bash (man Bash lub http://www.gnu.org/software/bash/manual/bash. html) [6] Dla zainteresowanych (j. angielski) http://mywiki.wooledge.org/ wiki po±wi¦- cone systemom Unix, wraz z materiaªami dot. Bash 5