Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00510 009584 10438316 na godz. na dobę w sumie
Skrypty powłoki. Od podstaw - książka
Skrypty powłoki. Od podstaw - książka
Autor: , , Liczba stron: 576
Wydawca: Helion Język publikacji: polski
ISBN: 83-246-0209-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> systemy operacyjne >> inne
Porównaj ceny (książka, ebook, audiobook).

Wykorzystaj wszystkie możliwości systemu operacyjnego

Mimo dynamicznego rozwoju graficznych systemów operacyjnych niektóre zadania można wykonywać jedynie z poziomu konsoli tekstowej. Korzystając z niej, administrator precyzyjniej kontroluje działanie systemu, szybciej rozwiązuje problemy sprzętowe i sprawniej optymalizuje standardowe procesy. Powłoki i skrypty stanowią odpowiednie narzędzia pracy dla doświadczonych użytkowników systemów operacyjnych.

Książka 'Skrypty powłoki. Od podstaw' przedstawia metody korzystania z powłoki tekstowej w różnych systemach operacyjnych -- Windows, Mac OS X, Linux i Unix. Omawia zarówno proste, jak i zaawansowane skrypty oraz pokazuje możliwości ich zastosowania. Każde zagadnienie przedstawione jest na przykładzie, co ułatwia przyswajanie wiedzy. Książka zawiera wszystkie wiadomości o skryptach niezbędne do samodzielnego ich tworzenia i wykorzystywania.

Poznaj techniki, dzięki którym wykorzystasz całą moc komputera.

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREŒCI SPIS TREŒCI KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOŒCIACH O NOWOŒCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Skrypty pow³oki. Od podstaw Autorzy: Eric Foster-Johnson, John C. Welch, Micah Anderson T³umaczenie: Przemys³aw Szeremiota ISBN: 83-246-0209-7 Tytu³ orygina³u: Beginning Shell Scripting Format: B5, stron: 576 Wykorzystaj wszystkie mo¿liwoœci systemu operacyjnego (cid:129) Poznaj rodzaje pow³ok (cid:129) Naucz siê pisaæ skrypty i u¿ywaj ich do ró¿nych zadañ (cid:129) Pos³uguj siê skryptami do sterowania aplikacj¹ Mimo dynamicznego rozwoju graficznych systemów operacyjnych niektóre zadania mo¿na wykonywaæ jedynie z poziomu konsoli tekstowej. Korzystaj¹c z niej, administrator precyzyjniej kontroluje dzia³anie systemu, szybciej rozwi¹zuje problemy sprzêtowe i sprawniej optymalizuje standardowe procesy. Pow³oki i skrypty stanowi¹ odpowiednie narzêdzia pracy dla doœwiadczonych u¿ytkowników systemów operacyjnych. Ksi¹¿ka „Skrypty pow³oki. Od podstaw” przedstawia metody korzystania z pow³oki tekstowej w ró¿nych systemach operacyjnych — Windows, Mac OS X, Linux i Unix. Omawia zarówno proste, jak i zaawansowane skrypty oraz pokazuje mo¿liwoœci ich zastosowania. Ka¿de zagadnienie przedstawione jest na przyk³adzie, co u³atwia przyswajanie wiedzy. Ksi¹¿ka zawiera wszystkie wiadomoœci o skryptach niezbêdne do samodzielnego ich tworzenia i wykorzystywania. (cid:129) Pow³oki w ró¿nych systemach operacyjnych (cid:129) Narzêdzia do edycji skryptów pow³oki (cid:129) Stosowanie zmiennych (cid:129) Operacje wejœcia i wyjœcia (cid:129) Sterowanie dzia³aniem skryptów (cid:129) Interakcja skryptu z systemem operacyjnym (cid:129) Przetwarzanie tekstów (cid:129) Kontrolowanie procesów systemowych (cid:129) Testowanie skryptów (cid:129) Stosowanie skryptów w œrodowiskach graficznych Poznaj techniki, dziêki którym wykorzystasz ca³¹ moc komputera O autorach ...................................................................................................................................................11 Wprowadzenie ...........................................................................................................................................13 Rozdział 1. Powłoki — wprowadzenie ......................................................................................................19 Czym jest powłoka? ..................................................................................................... 20 Po co nam powłoki? ..................................................................................................... 21 Rodzaje powłok ............................................................................................................ 22 Powłoka Bourne’a ................................................................................................... 23 Powłoka C .............................................................................................................. 23 Powłoka Korna ....................................................................................................... 24 Powłoka bash ......................................................................................................... 25 Powłoka T C ........................................................................................................... 26 Inne powłoki ........................................................................................................... 26 Powłoki graficzne .................................................................................................... 27 Oficjalna powłoka POSIX .......................................................................................... 28 Powłoki domyślne ................................................................................................... 28 Wybór powłoki ........................................................................................................ 29 Zmiana powłoki domyślnej ....................................................................................... 30 Uruchamianie powłoki w powłoce ............................................................................. 32 Więcej informacji o powłoce ..................................................................................... 33 Powłoki a środowisko graficzne ..................................................................................... 33 Uruchamianie powłoki w Linuksie ............................................................................. 35 Uruchamianie powłoki w Mac OS X ........................................................................... 37 Uruchamianie powłoki w systemach Unix .................................................................. 38 Uruchamianie powłoki w Windows — command.com to mało? ................................... 39 Uruchamianie powłoki na urządzeniach PDA i w innych systemach .............................. 40 Wprowadzanie poleceń ................................................................................................. 40 Jaka to powłoka? .................................................................................................... 42 Opcje wywołania ..................................................................................................... 44 Edycja wiersza polecenia .............................................................................................. 48 Przywoływanie poleceń ............................................................................................ 49 Przeglądanie historii poleceń ................................................................................... 53 Wywoływanie edytora wiersza polecenia .................................................................... 55 Uzupełnianie nazw plików ........................................................................................ 56 Symbole wieloznaczne .................................................................................................. 57 Symbol * ............................................................................................................... 57 Symbol ? ............................................................................................................... 59 Uruchamianie poleceń w tle .......................................................................................... 60 Podsumowanie ............................................................................................................ 60 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk!spis.doc 3 4 Skrypty powłoki. Od podstaw Rozdział 2. Wprowadzenie do skryptów powłoki .................................................................................. 63 Czym są skrypty powłoki? ............................................................................................. 64 Alternatywne języki skryptowe ....................................................................................... 67 Perl ....................................................................................................................... 68 Python ................................................................................................................... 70 Tcl ......................................................................................................................... 71 Pliki wsadowe MS-DOS ............................................................................................ 72 Narzędzia edycji skryptów powłoki ................................................................................. 72 Edytory tradycyjne ................................................................................................... 72 Edytory graficzne ..................................................................................................... 85 Pisanie skryptów .......................................................................................................... 93 Odciążanie pamięci — skrypty wywołujące proste polecenia ....................................... 93 Wyprowadzanie tekstu ze skryptów ........................................................................... 95 Zmienne ................................................................................................................ 99 Pozyskiwanie danych z wejścia ............................................................................... 105 Komentarze w skryptach ....................................................................................... 107 Łamanie wierszy ................................................................................................... 110 Podsumowanie .......................................................................................................... 111 Zadania ..................................................................................................................... 112 Rozdział 3. Sterowanie przebiegiem wykonywania skryptów ............................................................115 Odwołania do zmiennych ............................................................................................ 116 Pętle i iteracje ........................................................................................................... 120 Przeglądanie listy plików ........................................................................................ 121 Pętle o określonej liczbie iteracji ............................................................................ 124 Powłoka bash — pętle jak w języku C ..................................................................... 127 Pętle w powłoce C ................................................................................................ 129 Pętle zagnieżdżone ............................................................................................... 130 Instrukcje warunkowe — jeśli ...................................................................................... 131 A jeśli nie? ........................................................................................................... 133 Czym jest prawda? ................................................................................................ 133 Przekierowywanie wyjścia ...................................................................................... 137 elif — skrót od else if ........................................................................................... 143 Zagnieżdżanie instrukcji if ........................................................................................... 145 Testowanie poleceniem test ....................................................................................... 146 Porównywanie liczb ............................................................................................... 146 Porównywanie ciągów tekstowych ........................................................................... 149 Testowanie plików ................................................................................................ 152 Operatory logiczne i operator negacji ...................................................................... 152 Skrócony zapis polecenia test ............................................................................... 155 Trudne decyzje a instrukcja wyboru .............................................................................. 157 Obsługa problematycznych danych wejściowych ....................................................... 159 Instrukcja wyboru w powłoce C ............................................................................... 161 Pętla while — powtarzanie pod warunkiem ................................................................... 163 Powtarzanie pod warunkiem — pętla until .................................................................... 164 Podsumowanie .......................................................................................................... 166 Zadania ..................................................................................................................... 166 4 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk!spis.doc Spis treści 5 Rozdział 4. Interakcja ze środowiskiem skryptu .................................................................................169 Zmienne środowiskowe .............................................................................................. 169 Odczytywanie wartości zmiennych środowiskowych .................................................. 170 Ustawianie zmiennych środowiskowych .................................................................. 184 Dostosowywanie własnego konta ................................................................................ 187 Rozruch powłoki Bourne’a ..................................................................................... 188 Rozruch powłoki Korna .......................................................................................... 188 Rozruch powłoki C ................................................................................................ 188 Rozruch powłoki T C .............................................................................................. 189 Rozruch powłoki bash ........................................................................................... 189 Obsługa argumentów wiersza poleceń ......................................................................... 190 Wczytywanie argumentów wywołania w powłoce Bourne’a ........................................ 191 Wczytywanie argumentów wywołania w powłoce C ................................................... 195 Usamodzielnianie skryptów powłoki ............................................................................. 195 Nadawanie skryptowi atrybutu wykonywalności ........................................................ 195 Magiczny wiersz #! ................................................................................................ 196 Podsumowanie .......................................................................................................... 200 Zadania ..................................................................................................................... 200 Rozdział 5. Praca z plikami .....................................................................................................................201 Tworzenie archiwów plików ......................................................................................... 202 Manipulowanie uprawnieniami .................................................................................... 203 Analizowanie atrybutów plików poleceniem test ............................................................ 205 Pliki w systemie Mac OS X .......................................................................................... 207 Spuścizna po NeXT ............................................................................................... 207 Mobilne systemy plików w Mac OS X ...................................................................... 208 Nazewnictwo ........................................................................................................ 210 Odwieczna wojna w Mac OS X — HFS+ kontra UFS ....................................................... 210 Pliki na widelcu ..................................................................................................... 211 Pliki w plikach i programy interaktywne ........................................................................ 213 Wyświetlanie komunikatów z wejścia wsobnego ...................................................... 214 Dynamiczny tekst wejścia wsobnego ...................................................................... 215 Wejście wsobne a sterowanie przebiegiem poleceń interaktywnych ........................... 219 Blokowanie podstawiania zmiennych ...................................................................... 222 Podsumowanie .......................................................................................................... 223 Zadania ..................................................................................................................... 224 Rozdział 6. Przetwarzanie tekstu edytorem sed ................................................................................. 225 sed — wprowadzenie ................................................................................................. 226 Wersje edytora sed .................................................................................................... 227 Instalowanie edytora sed ............................................................................................ 228 Instalacja — faza wstępna .................................................................................... 228 Konfiguracja i właściwa instalacja .......................................................................... 229 Zasada działania edytora sed ..................................................................................... 230 Wywoływanie edytora ............................................................................................ 231 Polecenia edycji .................................................................................................... 232 Wywoływanie edytora z opcją -e i nazwą pliku źródłowego ......................................... 233 Opcje -n, --quiet i --silent ........................................................................................ 234 Błędy edycji .......................................................................................................... 236 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk!spis.doc 5 6 Skrypty powłoki. Od podstaw Wybieranie wierszy do obróbki ..................................................................................... 236 Adresowanie zakresowe ........................................................................................ 237 Negacja adresu .................................................................................................... 239 Postęp adresu ...................................................................................................... 239 Podstawianie ............................................................................................................. 240 Znaczniki podstawiania ......................................................................................... 242 Alternatywny separator ciągów ............................................................................... 243 Adresowanie podstawiania .................................................................................... 244 Zaawansowane wywołania sed .................................................................................... 245 Komentarze .......................................................................................................... 247 Polecenia wstawiania, dołączania i zmiany .............................................................. 248 Adresowanie zaawansowane ....................................................................................... 249 Adresowanie wyrażeniami regularnymi .................................................................... 250 Klasy znaków ....................................................................................................... 253 Adresowanie zakresowe z użyciem wyrażeń regularnych ........................................... 254 Adresowanie mieszane .......................................................................................... 255 Podstawienia zaawansowane ...................................................................................... 256 Odwołania do dopasowanych ciągów ...................................................................... 256 Odwołania do podwyrażeń ..................................................................................... 258 Obszar zapasowy ....................................................................................................... 259 Dodatkowe źródła informacji ....................................................................................... 261 Jednowierszowce .................................................................................................. 261 Wybrane polecenia sed ......................................................................................... 263 Mniej znane polecenia sed .................................................................................... 263 Rozszerzenia GNU ................................................................................................ 264 Podsumowanie .......................................................................................................... 264 Zadania ..................................................................................................................... 266 Rozdział 7. Przetwarzanie tekstu w języku awk ................................................................................. 267 Czym jest awk (gawk, mawk, nawk, oawk)? .................................................................. 268 Gawk, czyli GNU awk ............................................................................................. 268 Jaka to wersja? .................................................................................................... 269 Instalowanie gawk ................................................................................................ 270 Zasada działania awk ................................................................................................. 272 Wywoływanie awk ....................................................................................................... 273 Instrukcja print .......................................................................................................... 276 Separatory pól ...................................................................................................... 279 Instrukcja printf .................................................................................................... 280 Modyfikatory formatu instrukcji printf ...................................................................... 282 Funkcja sprintf ...................................................................................................... 283 Zmienne w awk .......................................................................................................... 284 Zmienne użytkownika ............................................................................................ 284 Zmienne wbudowane ............................................................................................ 285 Instrukcje sterujące .................................................................................................... 288 Instrukcja if .......................................................................................................... 289 Operatory relacji ................................................................................................... 290 Funkcje arytmetyczne ............................................................................................ 291 Przekierowywanie wyjścia ...................................................................................... 293 Pętle while ........................................................................................................... 293 Pętle for ............................................................................................................... 294 6 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk!spis.doc Spis treści 7 Funkcje ..................................................................................................................... 295 Dodatkowe źródła informacji ....................................................................................... 296 Podsumowanie .......................................................................................................... 297 Zadania ..................................................................................................................... 297 Rozdział 8. Potoki poleceń ......................................................................................................................299 Obsługa standardowego wejścia i wyjścia .................................................................... 300 Przekierowywanie standardowego wejścia i wyjścia .................................................. 300 Przekierowywanie wyjścia diagnostycznego ............................................................. 302 Przekierowywanie obu wyjść: standardowego i diagnostycznego ................................ 302 Dołączanie wyjścia do plików ................................................................................. 304 Szybkie usuwanie zawartości plików ....................................................................... 305 Pozbywanie się wyjścia .......................................................................................... 306 Przetwarzanie w potoku poleceń .................................................................................. 307 Potoki poleceń uniksowych .................................................................................... 308 Tworzenie potoków ............................................................................................... 309 Rozdział strumienia wyjściowego — polecenie tee ................................................... 315 Podsumowanie .......................................................................................................... 316 Zadania ..................................................................................................................... 317 Rozdział 9. Kontrola nad procesami .......................................................................................................319 Procesy ..................................................................................................................... 319 Odczytywanie identyfikatorów procesów .................................................................. 320 System plików /proc ............................................................................................. 324 Eliminowanie procesów ......................................................................................... 328 Uruchamianie procesów ............................................................................................. 329 Uruchamianie procesów pierwszoplanowych ............................................................ 330 Uruchamianie procesów tła ................................................................................... 330 Uruchamianie procesów w podpowłokach ............................................................... 330 Uruchamianie procesów poleceniem exec ............................................................... 331 Przechwytywanie wyjścia procesów .............................................................................. 332 Podstawianie poleceń ........................................................................................... 332 Przechwytywanie kodów powrotnych poleceń zewnętrznych ....................................... 341 Podsumowanie .......................................................................................................... 342 Zadania ..................................................................................................................... 343 Rozdział 10. Funkcje w skryptach powłoki ...........................................................................................345 Definiowanie funkcji ................................................................................................... 346 Opatrywanie bloków kodu nazwami ........................................................................ 346 Błędy definicji funkcji ............................................................................................ 348 Używanie funkcji ........................................................................................................ 349 Reguła pierwszeństwa definicji przed użyciem ......................................................... 350 Pliki funkcji ........................................................................................................... 353 Typowe błędy użycia funkcji ................................................................................... 354 Usuwanie funkcji .................................................................................................. 355 Funkcje z argumentami ............................................................................................... 355 Zwracanie wartości z funkcji ........................................................................................ 356 Zasięg zmiennych, czyli myśl globalnie, działaj lokalnie ................................................. 359 Rekurencja ................................................................................................................ 362 Podsumowanie .......................................................................................................... 364 Zadania ..................................................................................................................... 365 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk!spis.doc 7 8 Skrypty powłoki. Od podstaw Rozdział 11. Diagnostyka błędów w skryptach powłoki .......................................................................367 Rozszyfrowywanie komunikatów o błędach ................................................................... 368 Szukanie brakujących elementów składni ............................................................... 369 Wyszukiwanie błędów składniowych ....................................................................... 371 Techniki diagnostyczne w wykrywaniu błędów ............................................................... 374 Szukaj wstecz ....................................................................................................... 374 Szukaj oczywistych pomyłek ................................................................................... 374 Szukaj wszelkich dziwactw ..................................................................................... 375 Szukaj niejawnych założeń ..................................................................................... 376 Dziel i rządź .......................................................................................................... 376 Podziel skrypt na fragmenty ................................................................................... 377 Prześledź działanie skryptu .................................................................................... 378 Co dwie głowy, to nie jedna ................................................................................... 378 Uruchamianie skryptów w trybie diagnostycznym ........................................................... 379 Blokowanie wykonywania poleceń .......................................................................... 379 Śledzenie przebiegu wykonywania .......................................................................... 380 Połączenie opcji -n i -v ........................................................................................... 381 Nadzorowanie wykonywania skryptu ....................................................................... 381 Unikanie błędów, czyli dobre nawyki ............................................................................ 385 Porządek musi być ................................................................................................ 385 Zbawienny wpływ komentarzy ................................................................................. 386 Treściwe komunikaty o błędach ............................................................................. 386 Lepsze wrogiem dobrego ....................................................................................... 387 Testy, testy i jeszcze raz testy ................................................................................ 387 Podsumowanie .......................................................................................................... 387 Zadania ..................................................................................................................... 388 Rozdział 12. Obrazowanie danych — MRTG ...........................................................................................391 Zasada działania MRTG .............................................................................................. 392 Monitorowanie innych danych ..................................................................................... 393 Instalowanie MRTG .................................................................................................... 393 Pisanie skryptów dla MRTG ......................................................................................... 394 Konfigurowanie MRTG ................................................................................................ 397 Konfigurowanie parametrów globalnych .................................................................. 398 Konfigurowanie obiektów obserwacji MRTG dla skryptów .......................................... 399 Dostosowywanie wyjścia MRTG .............................................................................. 400 Uruchamianie MRTG ................................................................................................... 404 Podgląd wyników MRTG ......................................................................................... 405 Konfigurowanie crona ............................................................................................ 406 Maksymalizacja wydajności MRTG .......................................................................... 407 Monitorowanie stanu systemu z MRTG ........................................................................ 408 Obrazowanie obciążenia pamięci ............................................................................ 408 Obrazowanie obciążenia procesora ......................................................................... 412 Obrazowanie zajętości dysku ................................................................................. 415 Monitorowanie sieci z MRTG ....................................................................................... 418 Monitorowanie aplikacji z MRTG .................................................................................. 421 Podsumowanie .......................................................................................................... 428 Zadania ..................................................................................................................... 428 8 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk!spis.doc Spis treści 9 Rozdział 13. Skrypty w służbie administracji ........................................................................................431 Po co administratorom skrypty? .................................................................................. 431 Skrypty odciążające pamięć (administratora) ................................................................ 432 Skrypty w diagnostyce systemu ................................................................................... 435 Usuwanie pomniejszych niewygód ............................................................................... 443 Rafinacja danych ........................................................................................................ 445 Automatyzacja codziennych zadań ............................................................................... 449 Podsumowanie .......................................................................................................... 450 Zadania ..................................................................................................................... 450 Rozdział 14. Skrypty w środowiskach graficznych ............................................................................453 Aplikacje biurowe ....................................................................................................... 454 Skrypty w OpenOffice.org ....................................................................................... 454 Możliwości skryptowe edytora AbiWord ................................................................... 468 Możliwości skryptowe edytora NEdit ....................................................................... 469 Skrypty w środowisku graficznym Mac OS X .................................................................. 470 Open Scripting Architecture ................................................................................... 473 Podstawy języka AppleScript .................................................................................. 474 Terminal w Mac OS X ............................................................................................ 486 Skrypty w służbie rozrywce .......................................................................................... 493 Skryptowe sterowanie odtwarzaczem XMMS ........................................................... 493 Skryptowe sterowanie odtwarzaczem Rhythmbox ..................................................... 494 Skryptowe sterowanie odtwarzaczem Totem ............................................................ 496 Stosowanie skryptów z innymi aplikacjami środowiska graficznego ................................. 496 Co dalej? .................................................................................................................. 497 Podsumowanie .......................................................................................................... 497 Zadania ..................................................................................................................... 498 A Rozwiązania zadań ..............................................................................................................................499 B Wybrane polecenia ...............................................................................................................................521 Skorowidz ...............................................................................................................................................555 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk!spis.doc 9 Skrypt powłoki nie jest odosobnioną wyspą. Działa jako program ściśle osadzony w środowi- sku utworzonym dla niego przez system operacyjny. Na potrzeby skryptów powłoki więk- szość systemów udostępnia środowisko charakterystyczne dla systemów uniksowych, co jest wielce pomocne, bo pozwala na spójne wykonywanie odwołań do elementów środowiska nie- zależnie od platformy programowej. Taką możliwość mamy w systemie Mac OS X (bazującym na Uniksie w wydaniu Berkeley) i Linuksie (systemie nie uniksowym, ale uniksopodobnym). Nawet w Windows i QNX skrypty powłoki otrzymują do dyspozycji środowisko charaktery- styczne dla Uniksów. Środowisko uniksowe cechuje się między innymi dostępnością zmiennych środowiskowych, przechowujących ważne dane, choćby o położeniu plików poleceń czy lokalizacji katalogu domowego użytkownika skryptu. W rozdziale zajmiemy się: n Analizowaniem ustawień środowiskowych, odczytywaniem i ustawianiem zmiennych środowiskowych. n Dostosowywaniem własnego konta, głównie w zakresie rozruchu powłoki. n Obsługą argumentów — wartości mających sterować działaniem skryptu a przekazywanych do skryptów za pośrednictwem wiersza polecenia. n Oznaczaniem plików skryptów jako wykonywalnych, dzięki czemu można z nich korzystać tak, jak z pozostałych poleceń zainstalowanych w systemie (jak choćby ls czy cp). Zmienne środowiskowe są rodzajem zmiennych powłoki. Zasadniczo zmienne środowiskowe nie różnią się wiele od pozostałych zmiennych powłoki. Różnice można wypunktować następująco: D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc 169 170 Skrypty powłoki. Od podstaw n Zmienne środowiskowe są ustawiane przez środowisko — system operacyjny; odbywa się to na etapie uruchamiania powłoki (i nie ma w tym żadnej magii, o czym przekonamy się w dalszej części rozdziału). n Zmienne powłoki są zmiennymi lokalnymi względem danego egzemplarza procesu powłoki — na przykład egzemplarza powłoki wywołanego do uruchomienia skryptu. Tymczasem zmienne środowiskowe są dziedziczone przez wszystkie egzemplarze powłoki i każdy uruchamiany program. n Zmienne środowiskowe posiadają specjalne, ustalone konwencjami znaczenie. n Ustawienie zmiennej środowiskowej odbywa się za pośrednictwem osobnej, specjalnej operacji. Wymienione tu różnice zostaną szerzej skomentowane w następnych punktach. Odczytywanie wartości zmiennych środowiskowych Zmienne środowiskowe obsługuje się w wielu kontekstach identycznie jak zmienne powłoki. Oznacza to, że jeśli w skład środowiska wchodzi zmienna środowiskowa o nazwie HOME, to za pomocą symbolu dolara ($) można się odwołać do jej wartości ($HOME). W tym aspekcie korzystanie ze zmiennych środowiskowych nie różni się od stosowania własnych zmiennych skryptu powłoki. Najważniejszą cechą zmiennych środowiskowych jest to, że przechowują wartości, które po- winny odwzorowywać kształt środowiska udostępnionego użytkownikowi, jak również uwzględniać jego (użytkownika) preferencje (często zaś odzwierciedlają preferencje admi- nistratora). Na przykład zmienna środowiskowa LANG, o ile w ogóle zostanie ustawiona, powinna odzwier- ciedlać schemat lokalizacji przyjęty przez użytkownika — kombinację strony kodowej i reguł formatowania dla danego języka. Użytkownik anglojęzyczny może korzystać ze schematu lokalizacji o nazwie en. Mieszkańcy Zjednoczonego Królestwa zechcą zapewne korzystać ze schematu lokalizacji uwzględniającego lokalne reguły formatowania, o nazwie en_UK; Amery- kanie w jego miejsce zastosują pewnie odmianę właściwą dla Stanów Zjednoczonych — en_US1. Ustawienia te są o tyle istotne, że sterują działaniem wielu programów, choćby systemowego programu kontroli poprawności pisowni. Skrypt powłoki powinien honorować ustawienia zmiennych środowiskowych wszędzie tam, gdzie jest to zasadne. Jest to o tyle skomplikowane, że w różnych systemach zestawy do- stępnych zmiennych środowiskowych różnią się składem. Skrypt powinien więc każdora- zowo, przed odwołaniem się do zmiennej środowiskowej, sprawdzić jej istnienie, ewentualnie korzystać z wartości domyślnej. Listę najczęściej spotykanych zmiennych środowiskowych zawiera tabela 4.1: 1 Dla języka polskiego odpowiednia może być wartość pl_PL — przyp. tłum. 170 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc Rozdział 4. n Interakcja ze środowiskiem skryptu 171 Tabela 4.1. Wybrane zmienne środowiskowe Zmienna Znaczenie COLUMNS DISPLAY HISTSIZE HOME HOSTNAME LANG LINES PATH PWD SHELL TERM USER Liczba znaków mieszczących się w pojedynczym wierszu okna powłoki (terminala). Nazwa ekranu docelowego dla programów korzystających z usług serwera X Window System. Liczba wpisów przechowywanych w historii poleceń (dotyczy powłok bash i ksh). Nazwa katalogu domowego użytkownika. Nazwa węzła (identyfikująca komputer w sieci). Nazwa schematu lokalizacji językowej. Liczba wierszy tekstu mieszczących się w oknie powłoki (terminalu) Ścieżka przeszukiwania — lista katalogów przeszukiwanych przy wywoływaniu poleceń. Nazwa bieżącego katalogu roboczego. Nazwa domyślnej powłoki. Typ terminala. Nazwa konta użytkownika. Listę zmiennych środowiskowych widocznych dla powłoki wywołuje się poleceniem set. W csh i tcsh zamiast set należy stosować polecenie setenv (szczegóły w dalszej części omówienia). Wbudowane polecenie powłoki o nazwie set służy między innymi do wypisywania list usta- wionych zmiennych. Tam, gdzie jest możliwość korzystania z różnych systemów operacyj- nych, warto porównać sobie wyniki jego działania. Przytoczone poniżej przykłady ilustrują dobór zmiennych środowiskowych w różnych systemach operacyjnych. Zwróć uwagę na to, że wykaz zawiera nie tylko prawdziwe zmienne środowiskowe, ale o tym powiemy sobie w dalszej części omówienia. spróbuj sam Środowisko powłoki w Linuksie W dystrybucji Fedora Core 2 wywołanie polecenia set daje następujący efekt: $ set BASH=/bin/bash BASH_VERSINFO=([0]= 2 [1]= 05b [2]= 0 [3]= 1 [4]= release [5]= i386-redhaB- linux-gnu ) BASH_VERSION= 2.05b.0(1)-release COLORS=/eBc/DIR_COLORS.xBerm COLORTERM=gnome-Berminal COLUMNS=73 DESKTOP_SESSION=defaulB DIRSTACK=() DISPLAY=:0.0 EUID=500 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc 171 172 Skrypty powłoki. Od podstaw GDMSESSION=defaulB GNOME_DESKTOP_SESSION_ID=DefaulB GNOME_KEYRING_SOCKET=/Bmp/keGring-BNORrP/sockeB GROUPS=() GTK_RC_FILES=/eBc/gBk/gBkrc:/home2/ericfj/.gBkrc-1.2-gnome2 G_BROKEN_FILENAMES=1 HISTFILE=/home2/ericfj/.bash_hisBorG HISTFILESIZE=1000 HISTSIZE=1000 HOME=/home2/ericfj HOSTNAME=kirkwall HOSTTYPE=i386 IFS=$ IBIn INPUTRC=/eBc/inpuBrc KDEDIR=/usr LANG=en_US.UTF-8 LESSOPEN= /usr/bin/lesspipe.sh s LINES=24 LOGNAME=ericfj LS_COLORS= no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or =01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.bBm=00;32: *.baB=00;32:*.sh=00;32:*.csh=00;32:*.Bar=00;31:*.Bg.=00;31:*.arj=00;31:*.Ba.=00;31:*. l.h=00;31:*..ip=00;31:*..=00;31:*.Z=00;31:*.g.=00;31:*.b.2=00;31:*.b.=00;31:*.B.=00;3 1:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;3 5:*.png=00;35:*.Bif=00;35: MACHTYPE=i386-redhaB-linux-gnu MAIL=/var/spool/mail/ericfj MAILCHECK=60 OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr//11R6/bin:/home2/ericfj/bin: /usr/java/j2sdk1.4.1_03/bin:/opB/jexB/bin PIPESTATUS=([0]= 0 ) PPID=19277 PROMPT_COMMAND= echo -ne I033]0;$RUSER_C$RHOSTNAME .*_:$RPWD/]HOME/S_I007 PS1= [IuCIh IW]I$ PS2= PS4= + PWD=/home2/ericfj/web/local QTDIR=/usr/lib/QB-3.3 SESSION_MANAGER=local/kirkwall:/Bmp/.ICE-unix/19167 SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:hisBexpand:hisBorG:inBeracBive-commenBs:moniBor SHLVL=2 SSH_AGENT_PID=19215 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SSH_AUTH_SOCK=/Bmp/ssh-Bke19167/agenB.19167 SUPPORTED=en_US.UTF-8:en TERM=xBerm UID=500 USER=ericfj WINDOWID=20971638 /AUTHORITY=/home2/ericfj/./auBhoriBG _=env 172 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc Rozdział 4. n Interakcja ze środowiskiem skryptu 173 Jak to działa? Z przytoczonego wypisu wynika, że w Linuksie zestaw zmiennych środowiskowych jest wcale pokaźny. Wiele z tych zmiennych to wartości kojarzone z konkretnymi programami czy opera- cjami. Na przykład zmienne środowiskowe MAILCHECK i MAIL określają częstotliwość spraw- dzania dostępności nowych wiadomości poczty elektronicznej i miejsce, w którym należy ich szukać. Przyjęło się, że nazwy zmiennych środowiskowych zawierają wyłącznie wielkie litery — warto trzymać się tej konwencji. Dokumentacja każdego programu, który korzysta ze zmiennych środowiskowych, powinna ten fakt sygnalizować i wymieniać wykorzystywane zmienne oraz ich wpływ na działanie programu. Na przykład polecenie służące do wyświetlania stron dokumentacji systemowej, man, bazuje na zmiennej środowiskowej MANPATH, która (o ile zostanie ustawiona) określa położenie plików dokumentacji. spróbuj sam Środowisko powłoki w Mac OS X W systemie Mac OS X powinieneś mieć dostęp do następujących zmiennych: $ set BASH=/bin/bash BASH_VERSINFO=([0]= 2 [1]= 05b [2]= 0 [3]= 1 [4]= release [5]= powerpc-apple- darwin7.0 ) BASH_VERSION= 2.05b.0(1)-release COLUMNS=80 DIRSTACK=() EUID=501 GROUPS=() HISTFILE=/Users/ericfj/.bash_hisBorG HISTFILESIZE=500 HISTSIZE=500 HOME=/Users/ericfj HOSTNAME=SBromness.local HOSTTYPE=powerpc IFS=$ IBIn LINES=24 LOGNAME=ericfj MACHTYPE=powerpc-apple-darwin7.0 MAILCHECK=60 OPTERR=1 OPTIND=1 OSTYPE=darwin7.0 PATH=/bin:/sbin:/usr/bin:/usr/sbin PIPESTATUS=([0]= 0 ) PPID=524 PS1= Ih:Iw IuI$ PS2= PS4= + PWD=/Users/ericfj SECURITYSESSIONID=10967b0 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc 173 174 Skrypty powłoki. Od podstaw SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:hisBexpand:hisBorG:inBeracBive-commenBs:moniBor SHLVL=1 TERM=vB100 TERM_PROGRAM=iTerm.app UID=501 USER=ericfj _=/eBc/bashrc __CF_USER_TE/T_ENCODING=0x1F5:0:0 Jak to działa? Zwróćmy uwagę na podobieństwo wypisu uzyskanego w systemie Mac OS X z tym zna- nym z Linuksa. Dla skryptu powłoki oba systemy stanowią bardzo podobne środowiska wykonania. To wygodne (dla programisty skryptów), zwłaszcza jeśli ujednolicenie środo- wiska zestawi się z ogólną odmiennością obu tych systemów. spróbuj sam Środowisko powłoki w Windows XP W systemie Windows XP, z protezą w postaci pakietu Cygwin, skrypt ma dostęp do następują- cych zmiennych powłoki: $ set !::= ::I !C:= C:IcGgwinIbin ALLUSERSPROFILE= C:IDocumenB and SeBBingsIAll Users ANT_HOME= C:IericfjIjavaIapache-anB-1.5.4 APPDATA= C:IDOcumenBs and SeBBingsIericfjIApplicaBion DaBa BASH=/usr/bin/bash BASH_VERSINFO=([0]= 2 [1]= 05b [2]= 0 [3]= 1 [4]= release [5]= i686-pc-cGgwin ) BASH_VERSION= 2.05b.0(1)-release COLUMNS=80 COMMONPROGRAMFILES= C:IProgram FilesICommon Files COMPUTERNAME=GURNESS COMSPEC= C:IWINDOWSIsGsBem32Icmd.exe CVS_RSH=/bin/ssh DIRSTACK=() EUID=1006 FP_NO_HOST_CHECK=NO GROUPS=() HISTFILE=/home/ericfj/.bash_hisBorG HISTFILESIZE=500 HISTSIZE=500 HOME=/home/ericfj HOMEDRIVE=C: HOMEPATH= DocumenBs and SeBBingsIericfj HOSTNAME=kirkwall HOSTTYPE=i686 IFS=$ IBIn INFOPATH=/usr/local/info:/usr/info:/usr/share/info:/usr/auBoBool/devel/info:/usr/auBo Bool/sBable/info: JAVA_HOME= C:Ij2sdk1.4.2_01 LINES=25 LOGONSERVER= IIKIRKWALL 174 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc Rozdział 4. n Interakcja ze środowiskiem skryptu 175 MACHTYPE=i686-pc-cGgwin MAILCHECK=60 MAKE_MODE=unix MANPATH=/usr/local/man:/usr/man:/usr/share/man:/usr/auBoBool/devel/man::/usr/ssl/man MAVEN_HOME= C:IericfjIjavaInamen-1.0-rc1 NUMBER_OF_PROCESSORS=1 OLDPWD=/usr/bin OPTERR=1 OPTIND=1 OS=Windows_NT OSTYPE=cGgwin PALMTOPCENTERDIR= C:IProgram FilesISharp Zaurus 2IQBopia DeskBop PATH=/usr/local/bin:/usr/bin:/bin:/usr//11R6/bin:/cGgdrive/c/WINDOWS/sGsBem32:/cGgdri ve/c/WINDOWS:/cGgdrive/c/WINDOWS/SGsBem32/Wbem:/cGgdrive/c/ericfj/apps:/cGgdrive/c/er icfj/java/apache-anB-1.5.4/bin:/cGgdrive/c/j2sdk1.4.2_01/bin:/usr/bin:. PATHE/T= .COM;.E/E;.BAT;.CMD;.VBS;.VBE;.JS;.JSE;.WSF;.WSH PIPESTATUS=([0]= 0 ) PPID=1 PRINTER= HP LaserJeB 2100 PCL6 PROCESSOR_ARCHITECTURE=x86 PROCESSOR_IDENTIFIER= x86 FamilG 15 Model 2 SBepping 9, GenuineInBel PROCESSOR_LEVEL=15 PROCESSOR_REVISION=0209 PROGRAMFILES= C:IProgram Files PROMPT= $P$G PS1= $II[II033]0;IIwII007InII033[32mII]IIuCIIh II[II033[33mIIwII033[0mII]In$ PS2= PS4= + PWD=/home/ericfj SESSIONNAME=Console SHELL=/bin/bash SHELLOPTS=braceexpand:emacs:hashall:hisBexpand:hisBorG:inBeracBive-commenBs:moniBor SHLVL=1 SYSTEMDRIVE=C: SYSTEMROOT= C:IWINDOWS TEMP=/cGgdrive/c/DOCUMES1/ericfj/LOCALSS1/Temp TERM=cGgwin TMP=/cGgdrive/c/DOCUMES1/ericfj/LOCALSS1/Temp UID=1006 USER=ericfj USERDOMAIN=ORKNEY USERNAME=ericfj USERPROFILE= C:IDocumenBs and SeBBingsIericfj WINDIR= C:IWINDOWS _=/home/ericfj/.bashrc f= Jak to działa? W tym przykładzie widać wyraźnie spuściznę po systemie DOS, choćby w ścieżkach dostępu, zaczynających się od litery dysku (C:). Pakiet Cygwin znakomicie jednoczy wymagania co do środowiska widocznego dla powłoki z realiami systemów z rodziny Windows. Widać tu na przykład, że zmienne TEMP (Unix) i TMP (Windows) są ustawione zgodnie z lokalizacją systemowych katalogów plików tymczasowych, podobnie jak zmienne USER (Unix) i USERNAME (Windows). D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc 175 176 Skrypty powłoki. Od podstaw Zmienne lokalne a zmienne środowiskowe Technicznie rzecz biorąc, polecenie set, wykorzystywane w kilku ostatnich przykładach, wy- pisuje wszystkie ustawione zmienne powłoki, w tym zarówno zmienne środowiskowe, jak i wszelkie pozostałe, zwane zmiennymi lokalnymi powłoki. Zmienne lokalne to zmienne do- stępne w obrębie bieżącej powłoki. Zaś zmienne środowiskowe to te zmienne powłoki, które zostały wyeksportowane. Eksportowanie udostępnia te zmienne wszystkim programom po- tomnym, również nowouruchamianym powłokom, czyli powłokom uruchamianym z wnętrza bieżącej powłoki. Proste? Możliwość uruchamiania powłoki z wnętrza powłoki oznacza możliwość tworzenia hierar- chii powłok, co oznacza z kolei, że skrypty mogą działać w obrębie powłoki pierwotnej, podpowłoki, podpodpowłoki i tak dalej. Przy logowaniu użytkownika na jego konto syste- mowe, system uruchamia przypisaną do tego konta aplikację; zwykle jest to właśnie powłoka. Ta powłoka jest „rodzicem” wszystkich programów uruchamianych potem przez użytkow- nika, a więc i wszystkich wywoływanych później powłok. Powłoka-rodzic, czyli powłoka pierwotna, nosi miano powłoki logowania (bo jest uruchamiana przy logowaniu użytkow- nika). I to ona decyduje o kształcie środowiska dostępnego dla procesów potomnych. Po- włoka pierwotna uruchamia potem szereg aplikacji. Na przykład w systemie Linux działają- cym w trybie graficznym powłoka logowania uruchamia proces serwera X Window System. Serwer X uruchamia potem zestaw aplikacji obsługujących środowisko graficzne, w tym wszelkie okna powłoki (okna wirtualnych terminali) udostępniane użytkownikowi tego śro- dowiska. Każde z tak uruchomionych okien powłoki jest aplikacją graficzną i każde wy- wołuje z kolei program powłoki. Tak wywołane powłoki są podpowłokami. Z tych podpowłok można uruchomić dalsze (pod)powłoki. Ćwiczyliśmy to wielokrotnie przy uruchamianiu kolejnych skryptów przykładowych. Za każdym razem kiedy w wierszu polece- nia wpisywaliśmy sh, bash czy csh, uruchamialiśmy podpowłokę — powłokę potomną po- włoki bieżącej (to właśnie między innymi dlatego w systemach uniksowych, jak również w Linuksie, działa stale duża liczba procesów). Kiedy tworzy się zmienną środowiskową, ustaloną przy tej okazji wartość udostępnia się pod- powłokom — powłokom potomnym powłoki bieżącej, uruchamiającej skrypt. Jest to pożą- dane, kiedy skrypt wywołuje zewnętrzne skrypty bądź polecenia i ma do nich przekazywać wartości sterujące; można to osiągnąć właśnie za pośrednictwem zmiennych środowiskowych. Ustawienie zmiennej środowiskowej nie modyfikuje jednak środowiska powłoki nadrzędnej (powłoki-rodzica) — eksport oznacza propagację zmiennej w dół hierarchii, nigdy w górę. W większości przypadków środowisko powłok ustala się przy ich uruchamianiu. Dokonuje się tego za pośrednictwem specjalnych plików konfiguracyjnych, omawianych w podrozdziale „Dostosowywanie własnego konta”. W razie wątpliwości należy trzymać się poniższych wytycznych: n Środowisko własnego konta należy ustalać za pośrednictwem standardowych plików konfiguracyjnych, omawianych w podrozdziale „Dostosowywanie własnego konta”. 176 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc Rozdział 4. n Interakcja ze środowiskiem skryptu 177 n Zastane środowisko należy modyfikować zmiennymi ustawianymi przez skrypty powłoki jedynie wtedy, kiedy skrypty te wywołują programy lub skrypty zewnętrzne, dla których konieczna jest modyfikacja bądź uzupełnienie środowiska. n We wszystkich pozostałych przypadkach należy powstrzymać się od eksportowania zmiennych powłoki. spróbuj sam Wykaz zmiennych środowiskowych Do wypisania wartości zmiennych eksportowanych, czyli jedynych prawdziwych zmiennych środowiskowych, służy polecenie env albo printenv. Oto przykład: $ printenv SSH_AGENT_PID=22389 HOSTNAME=kirkwall SHELL=/bin/bash TERM=xBerm HISTSIZE=1000 GTK_RC_FILES=/eBc/gBk/gBkrc:/home2/ericfj/.gBkrc-1.2-gnome2 WINDOWID=20971679 OLDPWD=/home2/ericfj/wriBing/beginning_shell_scripBing QTDIR=/usr/lib/QB-3.3 USER=ericfj LS_COLORS= no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or =01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.bBm=00;32: *.baB=00;32:*.sh=00;32:*.csh=00;32:*.Bar=00;31:*.Bg.=00;31:*.arj=00;31:*.Ba.=00;31:*. l.h=00;31:*..ip=00;31:*..=00;31:*.Z=00;31:*.g.=00;31:*.b.2=00;31:*.b.=00;31:*.B.=00;3 1:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;3 5:*.png=00;35:*.Bif=00;35: GNOME_KEYRING_SOCKET=/Bmp/keGring-Q0LxNA/sockeB SSH_AUTH_SOCK=/Bmp/ssh-NVH22341/agenB.22341 KDEDIR=/usr SESSION_MANAGER=local/kirkwall:/Bmp/.ICE-unix/22341 MAIL=/var/spool/mail/ericfj DESKTOP_SESSION=defaulB PATH=/usr/kerberos/bin:/usr/local/bin:/usr/bin:/bin:/usr//11R6/bin:/home2/ericfj/bin: /usr/java/j2sdk1.4.1_03/bin:/opB/jexB/bin INPUTRC=/eBc/inpuBrc PWD=/home2/ericfj/wriBing/beginning_shell_scripBing/scripBs LANG=en_US.UTF-8 GDMSESSION=defaulB SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass HOME=/home2/ericfj SHLVL=2 GNOME_DESKTOP_SESSION_ID=DefaulB MY_SHELL=/usr/bin/emacs2 LOGNAME=ericfj LESSOPEN=|/usr/bin/lesspipe.sh s DISPLAY=:0.0 G_BROKEN_FILENAMES=1 COLORTERM=gnome-Berminal /AUTHORITY=/home2/ericfj/./auBhoriBG _=/usr/bin/prinBenv Rzecz jasna, w systemie innym niż testowy uzyskany wykaz może się różnić od powyższego. D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc 177 178 Skrypty powłoki. Od podstaw Jak to działa? Zestaw zmiennych wypisywanych przez polecenie printenv jest mniej obszerny niż podobny wypis uzyskany poleceniem set. Różnica obejmuje poniższe zmienne, wypisywane przez set a pomijane przez printenv: BASH=/bin/bash BASH_VERSINFO=([0]= 2 [1]= 05b [2]= 0 [3]= 1 [4]= release [5]= i386-redhaB- linux-gnu ) BASH_VERSION= 2.05b.0(1)-release COLORS=/eBc/DIR_COLORS.xBerm COLUMNS=80 DIRSTACK=() EUID=500 GROUPS=() HISTFILE=/home2/ericfj/.bash_hisBorG HISTFILESIZE=1000 HOSTTYPE=i386 IFS=$ IBIn LESSOPEN= |/usr/bin/lesspipe.sh s LINES=24 LS_COLORS= no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or =01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.bBm=00;32: *.baB=00;32:*.sh=00;32:*.csh=00;32:*.Bar=00;31:*.Bg.=00;31:*.arj=00;31:*.Ba.=00;31:*. l.h=00;31:*..ip=00;31:*..=00;31:*.Z=00;31:*.g.=00;31:*.b.2=00;31:*.b.=00;31:*.B.=00;3 1:*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;3 5:*.png=00;35:*.Bif=00;35: MACHTYPE=i386-redhaB-linux-gnu MAILCHECK=60 OPTERR=1 OPTIND=1 OSTYPE=linux-gnu PIPESTATUS=([0]= 0 ) PPID=22454 PROMPT_COMMAND= echo -ne I033]0;$RUSER_C$RHOSTNAME .*_:$RPWD/]HOME/S_I007 PS1= [IuCIh IW]I$ PS2= PS4= + SHELLOPTS=braceexpand:emacs:hashall:hisBexpand:hisBorG:inBeracBive-commenBs:moniBor SUPPORTED=en_US.UTF-8:en_US:en UID=500 _= Wymienione zmienne są zmiennymi lokalnymi powłoki, a nie zmiennymi środowiskowymi. Wypisywanie zmiennych środowiskowych w powłoce C W powłoce C również mamy do dyspozycji polecenie set, jednak nie ujawnia ono kompletnego środowiska: $ set COLORS /eBc/DIR_COLORS.xBerm _ !! | sorB 178 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc Rozdział 4. n Interakcja ze środowiskiem skryptu 179 addsuffix argv () cwd /home2/ericfj dirsBack /home2/ericfj dspmbGBe euc echo_sBGle boBh ediB file /home2/ericfj/.i18n gid 500 group ericfj hisBorG 100 home /home2/ericfj killring 30 owd paBh (/usr/kerberos/bin /usr/local/mo.illa /bin /usr/bin /usr/local/bin /usr//11R6/bin /home2/ericfj/bin /usr/java/j2sdk1.4.1_03/bin /home2/ericfj/eclipse /home2/ericfj/apache-anB-1.5.4/bin) prompB [ nC m c]$ prompB2 CORRECT R (G|n|e|a)? shell /bin/Bcsh shlvl 2 sourced 1 sBaBus 0 Bcsh 6.12.00 Berm xBerm BBG pBs/19 uid 500 user ericfj version Bcsh 6.12.00 (AsBron) 2002-07-23 (i386-inBel-linux) opBions 8b,nls,dl,al,kan,rh,color,dspm,filec Polecenie set wypisuje tu zestaw wewnętrznych ustawień powłoki C, a nie listę zmiennych środowiskowych. Odpowiednikiem polecenia set z powłoki Bourne’a jest tu setenv. Wywo- łanie polecenia setenv w powłoce T C w systemie Linux powinno dać rezultaty podobne do poniższego: $ setenv | sort COLORTERM=gnome-Berminal CVSROOT=:pserver:ericfjClocalhosB:/home2/cvsrepos DESKTOP_SESSION=defaulB DISPLAY=:0.0 G_BROKEN_FILENAMES=1 GDMSESSION=defaulB GNOME_DESKTOP_SESSION_ID=DefaulB GNOME_KEYRING_SOCKET=/Bmp/keGring-w8mvQR/sockeB GROUP=ericfj GTK_RC_FILES=/eBc/gBk/gBkrc:/home2/ericfj/.gBkrc-1.2-gnome2 HOME=/home2/ericfj HOST=kirkwall HOSTNAME=kirkwall HOSTTYPE=i386-linux INPUTRC=/eBc/inpuBrc JAVA_HOME=/usr/java/j2sdk1.4.1_03 KDEDIR=/usr LANG=en_US.UTF-8 LESSOPEN=|/usr/bin/lesspipe.sh s LOGNAME=ericfj D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc 179 180 Skrypty powłoki. Od podstaw LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or= 01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.bBm=00;32:* .baB=00;32:*.sh=00;32:*.csh=00;32:*.Bar=00;31:*.Bg.=00;31:*.arj=00;31:*.Ba.=00;31:*.l .h=00;31:*..ip=00;31:*..=00;31:*.Z=00;31:*.g.=00;31:*.b.2=00;31:*.b.=00;31:*.B.=00;31 :*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35 :*.png=00;35:*.Bif=00;35: MACHTYPE=i386 MAIL=/var/spool/mail/ericfj OSTYPE=linux PATH=/usr/kerberos/bin:/usr/local/bin:/usr/local/mo.illa:/bin:/usr/bin:/usr/local/bin :/usr//11R6/bin:/home2/ericfj/bin:/usr/java/j2sdk1.4.1_03/bin:/home2/ericfj/eclipse:/ home2/ericfj/apache-anB-1.5.4/bin PWD=/home2/ericfj QTDIR=/usr/lib/QB-3.3 SESSION_MANAGER=local/kirkwall:/Bmp/.ICE-unix/27573 SHELL=/bin/Bcsh SHLVL=2 SSH_AGENT_PID=27574 SSH_ASKPASS=/usr/libexec/openssh/gnome-ssh-askpass SSH_AUTH_SOCK=/Bmp/ssh-bxG27574/agenB.27573 SUPPORTED=en_US.UTF-8:en_US:en TERM=xBerm USER=ericfj USERNAME=ericfj VENDOR=inBel WINDOWID=23068746 /AUTHORITY=/home2/ericfj/./auBhoriBG Do wypisywania listy zmiennych środowiskowych w powłoce C można wykorzystywać rów- nież polecenia printenv i env, jak poniżej: ] printenv COLORTERM=gnome-Berminal CVSROOT=:pserver:ericfjClocalhosB:/home2/cvsrepos DESKTOP_SESSION=defaulB DISPLAY=:0.0 G_BROKEN_FILENAMES=1 GDMSESSION=defaulB GNOME_DESKTOP_SESSION_ID=DefaulB GNOME_KEYRING_SOCKET=/Bmp/keGring-w8mvQR/sockeB GROUP=ericfj GTK_RC_FILES=/eBc/gBk/gBkrc:/home2/ericfj/.gBkrc-1.2-gnome2 HOME=/home2/ericfj HOST=kirkwall HOSTNAME=kirkwall HOSTTYPE=i386-linux INPUTRC=/eBc/inpuBrc JAVA_HOME=/usr/java/j2sdk1.4.1_03 KDEDIR=/usr LANG=en_US.UTF-8 LESSOPEN=|/usr/bin/lesspipe.sh s LOGNAME=ericfj LS_COLORS=no=00:fi=00:di=00;34:ln=00;36:pi=40;33:so=00;35:bd=40;33;01:cd=40;33;01:or= 01;05;37;41:mi=01;05;37;41:ex=00;32:*.cmd=00;32:*.exe=00;32:*.com=00;32:*.bBm=00;32:* .baB=00;32:*.sh=00;32:*.csh=00;32:*.Bar=00;31:*.Bg.=00;31:*.arj=00;31:*.Ba.=00;31:*.l .h=00;31:*..ip=00;31:*..=00;31:*.Z=00;31:*.g.=00;31:*.b.2=00;31:*.b.=00;31:*.B.=00;31 :*.rpm=00;31:*.cpio=00;31:*.jpg=00;35:*.gif=00;35:*.bmp=00;35:*.xbm=00;35:*.xpm=00;35 :*.png=00;35:*.Bif=00;35: 180 D:! AAA DZISIAJSkrypty powłoki. Od podstaw7 druk 04-06.doc Rozdział 4. n Interakcja ze środowiskiem skryptu 181 MACHTYPE=i386 MAIL=/var/spool/mail/ericfj OSTYPE=linux PATH=/usr/kerberos/bin:/usr/local/bin:/usr/local/mo.illa:/bin:/usr/bin:/usr/local/bin :/usr//11R6/bin:/home2/ericfj/bin:/usr/java/j2sdk1.4.1_03/bin:/home2/ericfj/eclipse:/ home2/ericfj/apache-anB-1.5.4/bin PWD=/home2/ericfj QTDIR=/usr/lib/QB-3.3 SESSION_MANAGER=local/kirkwall:/Bmp/.ICE-unix/27573 SHELL=/bin/Bcsh SHLVL=2 SSH_AGENT_PID=27574 SSH_ASKPASS=/usr/libexec
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Skrypty powłoki. Od podstaw
Autor:
, ,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: