unix_sztuczki_i_chwyty.pdf

(592 KB) Pobierz
[wpd]
UNIX - SZTUCZKI I CHWYTY
Grzegorz Blinowski
G.Blinowski małpka ii pw edu pl
"Shaw's Principle:
Build a system that even a fool can use, and only a fool will
want to use it."
Niby-przedmowa do wydania elektronicznego
“Sztuczki i chwyty” powstały 10 lat temu, jaka jest obecnie wartość merytoryczna tej książki trudno ocenić, sądzę,
że jakieś 50% materiału jest “w miarę” aktualne. Jako ciekawostki polecam wzmianki o Linuxie i FreeBSD :-)
Czy książka jest pomocna w nauce Unixa, czy też nadaje się tylko dla kustoszów muzeów informatyki – niech
ocenią czytelnicy.
O stronie edytorskiej wydania elektronicznego
W stosunku do wersji oryginalnej (tej przed składem – innej nie posiadam) wprowadziłem tylko minimalne
zmiany redakcyjne – wyróżniłem rozdziały i podrozdziały, dodałem spis treści. W sensie redakcyjnym książka
jest bardzo siermiężna, niestety nie mam czasu, a może i ochoty na jej dalsze polerowanie...
O oryginalnym wydaniu
“Sztuczki i chwyty” zostały wydane przez “PLJ” w okolicach lata 1993 roku. Poziom edytorski tego wydania był
niestety przerażająco niski, nie chodzi tu nawet o brak jakiejkolwiek korekty! Stosowany w owych czasach przez
w.w. wydawnictwo system składu najwyraźniej popadł w konflikt z dość egzotycznymi sekwencjami znaków
występującymi w uniksowych poleceniach przytaczanych w książce. Efekt - “połknięte” znaki i całe sekwencje,
błędne formatowanie wcięć etc. W sumie (zanim zemdlałem) naliczyłem kilkadziesiąt większych i mniejszych
błędów.
O ile się orientuję Wydawnictwo PLJ już nie istnieje, zaś niezależnie od tego faktu nadal jestem właścicielem
prawa autorskich “Sztuczek” - stąd to elektroniczne wydanie.
Grzegorz Blinowski, Warszawa, styczeń 2004
53368599.001.png
SPIS TREŚCI
1.WSTĘP....................................................................................................................................4
2.POWŁOKA sh(1).....................................................................................................................7
Składnia wywołania:....................................................................................................................7
Definicje podstawowe:.................................................................................................................7
Składnia:......................................................................................................................................7
Substytucja poleceń...................................................................................................................11
Substytucja parametrów: ..........................................................................................................12
Interpretacja odstępów: ............................................................................................................13
Wejscie/Wyjscie:.......................................................................................................................13
Dokumenty włączone (here documents): ................................................................................15
Substytucja nazw plików:...........................................................................................................16
Cytowanie znaków:....................................................................................................................17
Wykonanie polecenia:...............................................................................................................18
Środowisko (environment).........................................................................................................18
Polecenia wbudowane powłoki..................................................................................................19
Uruchomienie i Opcje Powłoki:..................................................................................................21
Bardziej skomplikowany przykład:.............................................................................................22
3.POWŁOKI - PYTANIA I ODPOWIEDZI................................................................................24
Jak wykonać skrypt z wnętrza innego skryptu bez tworzenia nowego procesu ?.................... 24
Jakie są zasady definiowania zmiennych w różnych powłokach ?...........................................24
Czy powłoka sh posiada aliasy ?..............................................................................................24
Jakich plików inicjalizacyjnych (dot files) używając popularne powłoki ?.................................25
Jak uzyskać nazwę aktualnego katalogu w tekscie zachęty?...................................................26
Jak skonstruować wzorzec powłoki (shell glob-pattern) pasujący do wszystkich plików oprócz
"." i ".." ?.......................................................................................................................28
Jak rozdzielić standardowe wyjscie (stdout) i standardową diagnostykę (stderr) procesu?.... 28
Jak proces potomny (program, skrypt) może wpłynąć na srodowisko, lub katalog aktualny
procesu macierzystego?.............................................................................................29
Jak w skrypcie wczytać znaki z terminala ?..............................................................................29
Jak z poziomu .cshrc okreslić czy jest to powłoka główna (login shell) ?.................................30
Jak okreslić czy wykonywana powłoka jest interakcyjna?........................................................31
Jak przelączyć standardowe wejscie (wyjscie) w pętlach powłoki sh ?....................................31
Dlaczego wartosci parametrów zmienianych w potoku nie są poprawnie zapamiętywane ?...32
Jak wykonywać w tle takie programy jak ftp, passwd, telnet,... ?............................................32
Dlaczego umieszczenie nazwy katalogu aktualnego "." w zmiennej PATH może być
niebezpieczne?............................................................................................................33
Dlaczego powłoka czasami nie może uruchomić programu znajdującego się w katalogu
wymienionym w zmiennej PATH?...............................................................................33
4.PRZENOSZENIE PLIKÓW MIĘDZY SYSTEMAMI..............................................................35
Gdy jeden z systemów nie jest podłączonych do sieci:............................................................35
Archiwa w formacie tar(5)..........................................................................................................35
Oba komputery podłączone są do sieci i zapewniają protokoły TCP/IP i NFS.........................42
Inne metody przenoszenia plików - program dd(1)...................................................................44
Korzystanie z odległych stacji tasm i dyskietek........................................................................45
Przenoszenie plików usługą uucp(1) (Unix to Unix Copy): ......................................................45
Usługa FTP................................................................................................................................49
5.UŻYTECZNE PROGRAMY USŁUGOWE............................................................................56
Co oznaczają numery podawane za nazwami haseł, np. rm(1), tar(4) ?.................................56
Program find..............................................................................................................................57
Kłopoty z symbolem "{}" programu find.....................................................................................59
Program rsh - "remote shell".....................................................................................................60
6.PLIKI - PYTANIA I ODPOWIEDZI........................................................................................63
Jak odtworzyć usunięty plik?.....................................................................................................63
Jak usunąć plik, którego nazwa zaczyna się na "-" ?................................................................63
Jak usunąć plik z "dziwnymi" znakami w nazwie?...................................................................64
Jak systematycznie zmienić nazwy grupy plików np. "*.foo" na "*.bar"?..................................65
Jak zmienić nazwy plików na pisane małymi literami ?............................................................66
Jak dowiedzieć się o czas utworzenia pliku?............................................................................67
Jakie znaczenie mają zezwolenia dostępu dla symbolicznego dowiązania?............................67
Jak podzielić plik na mniejsze częsci ?.....................................................................................67
Prosty podgląd plików - polecenie od........................................................................................68
Kompresja plików:.....................................................................................................................69
Jak zarchiwzować plik (pliki) poddając je jednoczesnie kompresji?.........................................70
Jak przesyłać pocztą elektroniczną (e-mail) pliki nie tekstowe?...............................................70
Co robić gdy uudecode nie potrafi zdekodować pliku przesłanego nam pocztą ?................... 71
Transfer plików tekstowych między systemem UNIX a MS-DOS.............................................72
Jak tworzyć programy i skrypty z pozwoleniem SUID ?...........................................................73
Co dokładnie oznacza "wykonanie w tle"?................................................................................74
W jaki sposób proces może okreslić czy wykonywany jest w tle?............................................74
Czy program może okreslić swoją scieżkę wywołania ? ..........................................................75
Co oznaczają komunikaty "segmentation fault (core dumped)", "bus error (core dumped)"
itp. ?.............................................................................................................................75
7.DODATEK A: WERSJE SYSTEMU UNIX...........................................................................77
Komercyjne i darmowe odmiany UNIX-a:.................................................................................78
System V - SVID2 a BSD 4.3 - SunOS:....................................................................................79
8.DODATEK B: NAJWAŻNIEJSZE TERMINY I SKRÓTY:....................................................80
9.DODATEK C: KSIĄŻKI POŚWIĘCONE UNIX-OWI:..........................................................83
10.DODATEK D INDEKS PROGRAMÓW, POLECEŃ POWŁOK I PLIKÓW
INICJALIZACYJNYCH.................................................................................................86
1.
WSTĘP
System operacyjny UNIX zrobił oszołamiającą karierę od czasu swego powstania w 1969 roku na "mało
używanym komputerze PDP 8 stojącym w kącie laboratorium". Obecnie jest dostępny dla olbrzymiej ilosci typów
komputerów bardziej i mniej rozpowszechionych: od IBM AT po super-komputery firmy Cray. W ostatnich
latach UNIX rozpowszechnił się również w naszym kraju i choć doleko mu do popularnosci MS-DOS-u to grono
jego zwolenników ciągle rosnie. Jednoczesnie system ten uchodzi wsród większosci polskich użytkowników za
trudny do nauczenia się i niewdzięczny w codziennych zastosowanich. Opinie te są po częsci wynikiem braku na
naszym rynku książek wychodzących poza ramy "wstępu do wstępu" lub krótkiego kompendium. Osoby, które
swoją wiedzę wyniosły z książek dla "bardzo początkujących" lub z kursów często czują się zagubione gdy stają
przed konkretnym, nawet nieskomplikowanym problemem.
Książka ta ma być pomocą dla osób znających podstawy użytkowania systemu, a więc dla srednio
zaawansowanych, z niewielkim lub srednim doswiadczeniem. Zawarto w niej odpowiedzi na konkretne pytania
pojawiające się w codziennej pracy. Lektura pogrupowanych tematycznie przykładów i omówień mniej lub
bardziej typowych problemów powinna być pouczająca nie tylko dla osób poszukujących konkretnych "recept" ale
także dla tych, którzy jeszcze nie wiedzą, że dany problem istnieje! Tak więc np. rozdział poswięcony
programowi rsh przeznaczony jest zarówno dla osób, które mają trudnosci z uruchomieniem tego programu jak i
dla tych, które nigdy o takim programie nie słyszały.
Częsć materiału zawartego w "Sztuczkach i Chwytach" jest oparta o listę FAQ (Frequently Asked
Questions) UNIX-owej grupy dyskusyjnej sieci Usenet. Tłumaczenia tych informacji wydaje się być celowe ze
względu na ciągle małą dostępnosć w naszym kraju usług oferowanych przez Internet. Lista FAQ poswięcona
systemowi UNIX stoi na bardzo wysokim poziomie merytorycznym, zas jaj tematyka dobrze pokrywa się z
zapotrzebowaniem srednio zaawasnowanego użytkownika systemu.
Nadmieńmy też, że "Sztuczki i Chwyty" są przeznaczone dla tzw. zwykłych użytkowników, jednak
początkujący i srednio zaawansowani administratorzy systemów powinni znaleźć tu wiele ciekawych informacji.
Innym problemem często bagatelizowanym przez autorów książek ze słowem "UNIX" w tytule jest
mnogosć odmian tego systemu operacyjnego. Czytelnik nie rzadko przekonuje się, że opisywany program lub
usługa jest w jego systemie nieobecny, lub też funkcjonuje zupełnie inaczej niż wynika to z napisanej
niefrasobliwie publikacji. W niniejszej książce zwrócono dużą uwagę na uniwersalnosć omówień i przykładów,
tam gdzie było to możliwe zasygnalizowano różnice wynikające z odmiennosci wersji UNIX-a. Wersji tych jest
bardzo dużo, a więc z koniecznosci nie wszystkie mogły być tu opisane. Najważniejsze zostały wymienione w
dodatku A.
Kłopoty z doborem własciwego słownictwa zawsze towarzyszyły polskojęzycznym publikacjom
informatycznym. Istotne jest znalezienie złotego srodka pomiędzy skrajnosciami polonizowania wszystkiego na
siłę a tworzeniem angielskawych potworków językowych. W "Sztuczkach i chwytach" starano się
zminimalizować ilosć specjalistycznych słów angielskich. Dosć zaskakujący może się wydać fakt, że prawie
wszystkie słowa i wyrażenia z żargonu UNIX-owego znalazły już swoje polskie tłumaczenie - pozytywnym
przykładem jest tłumaczenie książki P. Silvestra.
Autor stoi na stanowisku, że polski przekład nie musi być tak krótki i elegancki jak dany zwrot
angielski, powinien jednak przede wszystkim oddawać sedno danego wyrażenia.
Zakres "Sztuczek i chwytów" obejmuje następującą tematykę:
Powłoki:
UNIX-owym powłokom poswięcono dwa rozdziały: w pierwszym przedstawiono bardzo dokładny opis powłoki
Bournea wraz z licznymi przykładami, w następnym znaleźć można rozwiązania problemów często
pojawiających się w użytkowaniu powłoki Bournea oraz powłoki csh. Omówiono między innymi zasady
tworzenia skryptów, pliki inicjalizacyjne powłok, kłopoty z przełączaniem standardowego wejscia i wyjscia,
koncepcję "pracy w tle" i wiele innych zagadnień. Czytelnik znajdzie też nieco informacji o innych powłokach
systemu.
53368599.002.png 53368599.003.png
Zgłoś jeśli naruszono regulamin