09(1), Informacje dot. kompa


0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic


Jeśli używając systemu Red Hat Linux korzystasz głównie z narzędzi wchodzących w skład pakietu Gnome czy pakietu biurowego, istnieje duże prawdopodobieństwo, że nigdy nie byłeś zmuszony do wykorzystania wiersza poleceń. Jeśli jednak chcesz wykorzystać w pełni siłę drzemiącą w systemie Linux lub chcesz po prostu wiedzieć, co w trawie piszczy, powinieneś przeczytać tę część książki.

Rozdział dziewiąty: Powłoka Bash, wyjaśnia zagadnienia związane z powłokami systemu operacyjnego i zawiera informacje dotyczące korzystania z powłoki bash.

Rozdział dziesiąty: Pliki, procesy i prawa dostępu, zawiera informacje o pracy z plikami. Po przeczytaniu tego rozdziału zrozumiesz, co to własność plików oraz prawa dostępu.

Rozdział jedenasty: Skrypty powłoki i programowanie, wyjaśnia jak można pisać skrypty powłoki bash. Przedstawimy również niektóre inne narzędzia programistyczne dostarczane wraz z systemem Red Hat Linux 7.1.

0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic
0x08 graphic

0x08 graphic


W tym rozdziale oraz w rozdziale jedenastym przedstawimy odpowiedzi na pytania, które zawsze chciałeś zadać (ale czułeś pewną obawę), dotyczące pracy z wierszem poleceń systemu Linux. Pracując w wierszu poleceń, obsługujesz powłokę systemu operacyjnego (ang. shell, nazywaną też interpreterem poleceń), podobnie jak pracując w systemie DOS, obsługiwałeś powłokę tegoż systemu o nazwie command.com. Rozdział 10. i 11. omawiają głównie powłokę bash, która jest powłoką domyślną w systemach linuksowych.

0x08 graphic
Jeśli jesteś nowym użytkownikiem Linuksa, możesz wygodnie wykonywać takie czynności, jak wysyłanie poczty, przeglądanie stron WWW czy pisanie listów za pomocą Gnome i aplikacji jak Netscape i StarOffice, nie widząc nawet nigdy wiersza poleceń. Przychodzi jednak taka chwila, kiedy nawet sezonowy użytkownik systemu zechce zagłębić się nieco bardziej w jego działanie.

Wkrótce pewno odkryjesz, że niektóre rzeczy muszą być wykonane za pomocą wiersza poleceń. Niektóre inne są po prostu łatwiejsze do zrobienia przy jego wykorzystaniu.

Poza tym, niektórzy użytkownicy po prostu nie lubią interfejsu graficznego i wolą pracować w wierszu poleceń.

Nie bez znaczenia jest też fakt, że zagadnienia związane z funkcjonowaniem linuksowych powłok systemu operacyjnego są bardzo interesujące.

W tym rozdziale omówione zostaną następujące tematy:

0x08 graphic
Przejście
do wiersza poleceń

Zanim będziesz mógł wydawać polecenia, musisz uruchomić interpreter poleceń, czyli powłokę systemu operacyjnego. Możesz to zrobić na wiele różnych sposobów;

  • Jeśli uruchomiony jest Gnome (czy inne środowisko graficzne), możesz otworzyć okno terminala.

  • Możesz uzyskać zdalny dostęp do systemu za pomocą programu telnet.

  • Możesz uruchomić system w trybie failsafe (tryb ten ma podobną funkcję, jak tryb awaryjny w systemach Windows 95 czy 98), wykorzystując odpowiednią opcję dostępną w oknie logowania systemu Red Hat.

  • Możesz skonfigurować system, tak by uruchamiał się od razu w trybie tekstowym.

W powłoce bash wiersz poleceń rozpoczyna się od znaku zachęty, mającego postać symbolu dolara ($). Innymi słowy, po symbolu $ możesz wprowadzić dowolne polecenie i wcisnąć Enter, na przykład

$ logout

Aby uruchomić interpreter poleceń w oknie terminala

Wybierz ikonę terminala z panelu Gnome (wygląda ona jak monitor i znajduje się na lewo od ikony programu Netscape) lub pozycję Terminal Gnome z podmenu Użytki menu głównego środowiska Gnome. Otwarte zostanie okno terminala (patrz rysunek 9.1).

Wskazówki

  • Można otworzyć kilka okien terminala naraz. Takie rozwiązanie często okazuje się bardzo przydatne. Pozwala ono na przykład pracować w jednym oknie jako zwykły użytkownik, a w innym jako root. Można też - powtórzmy przykład z rozdziału dziewiątego - uruchomić serwer bazy danych w jednym oknie terminala i obsługiwać go za pomocą programu klienta uruchomionego z innego okna.

0x01 graphic

Rysunek 9.1. Aby otworzyć okno terminala, wybierz ikonę Terminal z panelu Gnome.

  • Jeśli jesteś zalogowany jako root, znak zachęty nie kończy się symbolem dolara - zamiast niego wyświetlany jest #.

0x08 graphic
0x01 graphic

Rysunek 9.2. Aby uruchomić program telnet dla systemu Windows, wpisz polecenie telnet w oknie dialogowym Uruchom.

0x01 graphic

Rysunek 9.3. Jeśli sesja telnet nie jest połączona z serwerem, w pasku tytułowym wyświetlany jest tekst Brak.

0x01 graphic

Rysunek 9.4. Okno dialogowe Połącz służy do określenia komputera, z którym należy się połączyć.

0x01 graphic

Rysunek 9.5. Po połączeniu się z serwerem wyświetlone zostanie żądanie logowania.

Aby uruchomić program telnet w systemie Microsoft Windows

  1. Z menu Start systemu Windows wybierz pozycję Uruchom. Wyświetlone zostanie okno dialogowe Uruchom
    (patrz rysunek 9.2).

  2. W polu Otwórz wpisz polecenie telnet.

  3. Kliknij na przycisk OK. Otwarte zostanie puste okno programu telnet - nazywane sesją telnet (rysunek 9.3).

  4. Z menu Podłącz wybierz pozycję System zdalny - wyświetlone zostanie okno dialogowe Połącz (patrz rysunek 9.4).

  5. W polu Nazwa hosta wprowadź numer IP lub pełną nazwę domenową systemu zdalnego, z którym chcesz się połączyć.

  6. Wybierz przycisk Połącz. Zostaniesz połączony z systemem zdalnym, a na ekranie wyświetlony zostanie ekran logowania (rysunek 9.5).

  7. Wprowadź swój identyfikator użytkownika i hasło. Wyświetlony zostanie znak zachęty.

Wskazówki

  • Nazwę systemu zdalnego można również podać jako część polecenia uruchamiającego program telnet w oknie dialogowym Uruchom, na przykład
    telnet linuxbear.bearhome.com

  • Podobnie jak w przypadku okien terminala, możesz (i pewno często będziesz korzystał z tej możliwości) otworzyć kilka sesji telnet równocześnie. Możesz, oczywiście, także otwierać równocześnie sesje telnet i okna terminala.

  • Dla systemu Microsoft Windows dostępnych jest wiele różnych wersji komercyjnych lub shareware programu telnet, nie tylko wersja rozprowadzana wraz z tym systemem.

  • Dokładniejsze informacje na temat łączenia się z systemu zdalnego z Twoim serwerem linuxowym znajdziesz w rozdziale 12.

0x08 graphic
Aby uruchomić tryb failsafe

  1. W oknie logowania systemu Red Hat wybierz menu Session.

  2. Z podmenu wybierz pozycję Failsafe.

Wskazówka

  • Dokładniejsze informacje o korzystaniu z podmenu Session znajdziesz w rozdziale szóstym.

Aby system uruchamiał się w trybie tekstowym

  1. Zaloguj się jako root.

  2. Uruchom program Linuxconf.

  3. W oknie Boot mode configuration zaznacz opcję Text mode & Network (rysunek 9.6).

  4. Kliknij na przycisk Accept.

Wskazówka

  • W rozdziale trzecim przedstawiliśmy dokładniejsze informacje na temat znaczenia parametru runlevel, domyślnego uruchamiania systemu w trybie tekstowym i sposobu ponownego uruchomienia środowiska graficznego.

0x01 graphic

Rysunek 9.6. Jeśli przy starcie będzie uruchamiany trzeci runlevel, system przejdzie do trybu tekstowego.

0x08 graphic

Powłoki

Krótko mówiąc, nie można pracować bezpośrednio z podstawową częścią systemu linuksowego, jaką jest jego jądro (określa się je też często nazwą kernel) - niezbędny jest do tego program pośredniczący, czyli właśnie powłoka systemu operacyjnego (lub inaczej interpreter poleceń powłoki). Jak wspomniałem już we wcześniejszej części tego rozdziału, powłoka systemu Linux pełni taką samą funkcję, jak plik command.com w systemie DOS, tyle tylko, że użytkownik Linuksa może wybrać jedną spośród kilku dostępnych powłok.

Powłoka systemu operacyjnego to program, który udostępnia interfejs pomiędzy użytkownikiem a jądrem systemu; ma on postać wiersza poleceń. Jądro systemu zawiera wszelkie podprogramy potrzebne do przeprowadzania operacji wejścia i wyjścia, zarządzania plikami itp. Powłoka pozwala korzystać z tych podprogramów za pomocą wiersza poleceń.

Poza tym, powłoki obsługują również język programowania. Programy napisane w języku powłoki nazywane są zwykle skryptami lub skryptami powłoki (dokładniejsze informacje na ten temat znajdziesz w rozdziale 11.).

Ogólnie powłoki używane są na trzy sposoby:

  • interaktywnie, kiedy użytkownik wydaje polecenia;

  • do dostosowania sesji linuksowej do potrzeb użytkownika;

  • do programowania w języku powłoki (język ten omówiony jest w rozdziale 11.).

Aby sprawdzić, jakiej powłoki używasz

  1. W wierszu poleceń wpisz
    echo $SHELL

  2. Wciśnij Enter. Najprawdopodobniej wyświetlona zostanie informacja /bin/bash, która oznacza, że używasz powłoki bash, domyślnej powłoki wielu systemów linuksowych.

0x08 graphic
0x08 graphic
Wskazówki

  1. Wartością zmiennej środowiskowej SHELL jest ścieżka dostępu i nazwa pliku zawierającego program powłoki. Samą nazwę powłoki można otrzymać po odrzuceniu ścieżki; w powyższym przykładzie należałoby odrzucić fragment /bin/ - otrzymalibyśmy nazwę powłoki bash.

  • Jest jeszcze inny sposób sprawdzenia, której powłoki używasz Ty czy dowolny inny użytkownik systemu - polecenie finger. Dla przykładu, po wydaniu polecenia finger hdavis prócz innych, użytecznych informacji, takich jak położenie katalogu domowego czy data ostatniego logowania, wyświetlona zostanie również nazwa używanej powłoki.

  • Pamiętaj o tym, że w przeciwieństwie do systemu DOS Linux rozróżnia małe i wielkie litery.

Aby sprawdzić, jakie powłoki są dostępne w systemie

  1. W wierszu poleceń wpisz
    cat /etc/shells

  2. Wciśnij Enter. Wyświetlona zostanie lista dostępnych powłok (patrz rysunek 9.7).

Tabela 9.1 zawiera listę częściej używanych powłok dostępnych w systemie Red Hat Linux.

Zmiana powłoki

Zakładam, że nawet żółwie wodne czy lądowe chciałyby od czasu do czasu zmienić swoją powłokę. Ty możesz to zrobić bez problemów.

0x01 graphic

Rysunek 9.7. Za pomocą polecenia cat można wyświetlić listę dostępnych powłok, przechowywaną w pliku /etc/shells.


0x08 graphic
0x01 graphic

Rysunek 9.8. Administrator może zmienić powłokę, z której korzysta użytkownik, edytując plik /etc/passwd.

Aby tymczasowo skorzystać
z innej powłoki

W wierszu poleceń wprowadź ścieżkę dostępu i nazwę pliku zawierającego program powłoki, której chcesz użyć. Jeśli na przykład chcesz skorzystać z możliwości powłoki C Shell, wpisz /bin/csh.

Wskazówka

  • Powłoka uruchomiona tymczasowo jest jakby podpowłoką tej właściwej.

Aby powrócić do pierwotnej powłoki

W wierszu poleceń wpisz exit.

Aby na stałe zmienić używaną powłokę

  1. W wierszu poleceń wpisz chsh.

  2. Po wyświetleniu pytania wprowadź hasło.

  3. Po znaku zachęty wprowadź ścieżkę dostępu i nazwę pliku programu powłoki, której chcesz używać, na przykład /bin/tcsh.

  4. Aby uaktywnić wprowadzone zmiany, wyloguj się i zaloguj ponownie.

Jeśli posiadasz uprawnienia administratora, możesz również zmienić powłokę wykorzystywaną przez dowolnego użytkownika, edytując zawartość pliku /etc/passwd. Każdy wiersz tego pliku zawiera informacje o innym użytkowniku.

Aby edytować zawartość pliku /etc/passwd

  1. Zaloguj się jako root.

  2. Otwórz plik /etc/passwd za pomocą edytora tekstów (patrz rysunek 9.8).

  3. Ostatnia pozycja w każdym wierszu określa powłokę uruchamianą dla każdego z użyt­kowników. Możesz wybrać inną powłokę, odpowiednio modyfikując tę pozycję.

  4. Zapisz plik. Przy następnym logowaniu się użytkownika do systemu uruchomiona zostanie wybrana powłoka

0x08 graphic
Powłoka Bash

Bash to skrót od wyrazów Bourne Again Shell. Powłoka ta jest dostępna za darmo i rozprowadzana zgodnie z warunkami licencji GNU. Jej nazwa odzwierciedla fakt, że początkowo była wzbogaconą wersją powłoki Bourne Shell. Jest to również przykład dziwnego poczucia humoru - niektórzy twierdzą, że głupawego - cechującego czasem nazwy darmowych programów dla systemu Linux.

Bash jest domyślną powłoką systemu Red Hat. Powłoka ta jest łatwa w obsłudze. Zgodnie z informacjami podawanymi przez Free Software Foundation „bash jest powłoką kompatybilną z powłoką sh, łączącą w sobie rozwiązania znane z powłok Korn (ksh) oraz C (csh)”.

Jeśli nie przyzwyczaiłeś się wcześniej do korzystania z innej powłoki, prawdopodobnie pozostaniesz przy powłoce bash.

Zmienne środowiskowe

Zmienne środowiskowe używane są do przekazywania pewnych informacji powłoce oraz programom uruchamianym pod jej kontrolą. Inaczej mówiąc, informacje zapisane w zmiennych środowiskowych są wykorzystywane do określenia parametrów interakcji pomiędzy użytkownikiem, powłoką, systemem operacyjnym i programami.

Zgodnie z konwencją, nazwy zmiennych środowiskowych składają się tylko z wielkich liter. Trzeba również zdawać sobie sprawę z faktu, że znak $ jest symbolem specjalnym, wykorzystywanym do oznaczania wartości zmiennej (w przeciwieństwie do jej nazwy).

Często zdarza się, że zmienne środowiskowe zawierają informacje o lokalizacji jakichś plików czy katalogów. Dla przykładu, zmienna środowiskowa HOME zawiera ścieżkę dostępu do katalogu domowego użytkownika.

Niektóre zmienne środowiskowe używane są do przekazywania poszczególnym programom informacji o położeniu potrzebnych im plików. Aby na przykład uruchomić usługę Postmaster serwera PostgreSQL, użytkownik postgres - jak opisano w rozdziale ósmym - musi mieć zdefiniowaną zmienną środowiskową PGLIB wskazującą na katalog, w którym zapisane są pliki danych programu PostgreSQL.

Wiele zmiennych środowiskowych definiowanych jest w globalnych plikach konfiguracyjnych (pliki konfiguracyjne opisane zostaną w następnym rozdziale).
Takie zmienne środowiskowe mają tę samą wartość dla wszystkich użytkowników, chyba że dla któregoś z nich zostaną zmienione.

Inne zmienne środowiskowe mogą być specyficzne dla poszczególnych użytkowników, na przykład dla wspomnianego wcześniej użytkownika postgres. Takie zmienne definiuje się interaktywnie lub za pomocą plików konfigurujących sesję użytkownika.

Polecenie echo służy do wyświetlenia wiersza tekstu.

0x01 graphic

Rysunek 9.9. Aby wyświetlić wszystkie zmienne środowiskowe, użyj polecenia set.

Aby sprawdzić bieżącą wartość zmiennej środowiskowej

  1. W wierszu poleceń wpisz polecenie echo, a po nim nazwę zmiennej. Oto kilka przykładów.
    echo $HOME (katalog domowy użytkownika)
    echo $LOGNAME (identyfikator użytkownika)
    echo $SHELL (nazwa bieżącej powłoki)
    echo $PATH (katalog bieżący)

  2. Wciśnij Enter.

Wskazówki

  • Jeśli zmienna środowiskowa, której wartość próbujesz wyświetlić, nie jest zdefiniowana, po wydaniu polecenia echo wyświetlony zostanie pusty wiersz.

  • Jeśli pominiesz symbol $, wydając na przykład polecenie echo HOME, wyświetlona zostanie nie wartość zmiennej, ale jej nazwa, czyli w tym przypadku tekst HOME.

0x08 graphic
Aby wyświetlić wartości wszystkich zmiennych środowiskowych

  1. W wierszu poleceń wpisz set.

  2. Wciśnij Enter. Wyświetlone zostaną kolejno wszystkie zmienne środowiskowe wraz z ich wartościami (patrz rysunek 9.9).

0x08 graphic
Program more i potoki

Przy wyświetlaniu listy wszystkich zmiennych środowiskowych mogło się zdarzyć, że zajęła ona więcej niż jeden ekran terminala czy programu telnet, co uniemożliwiło sprawdzenie wartości zmiennych wyświetlanych na początku.

Linuksowe polecenie more pozwala na wyświetlanie tekstu porcjami, ekran po ekranie. Po przeczytaniu wyświetlanych informacji należy wcisnąć spację, aby przejść do kolejnego fragmentu.

Mechanizm potoków pozwala na przesłanie wyników działania jednego programu na wejście innego. Symbolem oznaczającym wykorzystanie tego mechanizmu jest pionowa kreska (|).

Aby wyświetlić zmienne konfiguracyjne porcjami mieszczącymi się na ekranie

  1. W wierszu poleceń wpisz
    set | more.

  2. Wciśnij Enter.

Wskazówka

  • Symbol potoku (|) zwykle znajduje się na klawiaturze wraz z lewym ukośnikiem. Często ma on postać dwóch linii pionowych, jedna za drugą, zamiast jednej.

  1. Wykorzystanie mechanizmu potoków i programu more jest bardzo przydatne w praktyce - często na przykład w ten sposób przegląda się zawartość katalogów.

Aby wyświetlić zawartość porcjami mieszczącymi się na ekranie

  1. W wierszu poleceń wpisz
    ls -a -l | more

  2. Wciśnij Enter. Wyświetlony zostanie listing katalogu, ale podzielony na fragmenty mieszczące się jednorazowo na ekranie (rysunek 9.10).

  3. Polecenie more może również być wykorzysty­wane do wyświetlania zawartości plików.

0x01 graphic

Rysunek 9.10. Aby wyświetlić zawartość katalogu, dzieląc informacje na porcje mieszczące się na ekranie, skieruj wyjście polecenia ls na wejście programu more.

0x08 graphic
Aby wyświetlić zawartość pliku za pomocą polecenia more

  1. W wierszu poleceń wpisz more, a następnie nazwę pliku, na przykład
    more .bash_profile

  2. Wciśnij Enter. Zawartość pliku zostanie wyświetlona w porcjach mieszczących się jednorazowo na ekranie.

Ustalanie wartości zmiennych środowiskowych

Zmiennym środowiskowym można nadawać wartości interaktywnie, korzystając z wiersza poleceń. Ten sposób nadaje się do tworzenia zmiennych na bieżąco, jeśli na przykład wymaga tego jakiś program, lub do modyfikowania wartości zmiennych skonfigurowanych wcześniej - choć do tego należy podchodzić dość ostrożnie.

Pamiętaj o tym, że zmienna środowiskowa, której wartość została ustalona podczas pracy, istnieje tylko do chwili zakończenia pracy powłoki. Takie rozwiązanie jest przydatne na przykład przy wyszukiwaniu błędów konfiguracyjnych, ale jeśli chcesz, aby zmienna zachowała swą wartość po następnym zalogowaniu się, powinieneś umieścić jej definicję w pliku konfiguracyjnym - jak to zrobić, wyjaśnimy za chwilę.

Przypisywanie wartości zmiennym konfiguracyjnym jest procesem dwuetapowym:

  • najpierw należy przypisać zmiennej żądaną wartość;

  • następnie trzeba wyeksportować zmienną, tak aby była widziana przez inne programy uruchamiane za pomocą powłoki.

Aby nadać zmiennej wartość podczas pracy

  1. W wierszu poleceń wprowadź nazwę zmiennej, a po niej wartość, którą chcesz tej zmiennej przypisać.

Wartość ta często jest nazwą pliku lub ścieżką dostępu, ale może również być liczbą czy inną wartością tekstową, na przykład polecenie MYENV=ah-goo! spowoduje przypisanie zmiennej o nazwie MYENV wartości ah-goo!.

  1. Wciśnij Enter.

  1. Korzystając z wiersza poleceń, wyeksportuj zdefiniowaną zmienną, na przykład export MYENV.

  2. Wciśnij Enter.

  3. Sprawdź, czy zmiennej przypisana została odpowiednia wartość, wydając polecenie echo $MYENV. W następnym wierszu wyświetlona zostanie wartość zmiennej (patrz rysunek 9.11).

Wskazówka

  • Dwa przedstawione wyżej etapy - nadawanie wartości i eksportowanie zmiennej - można połączyć w jedno polecenie, na przykład export NEXTENV=42.

0x01 graphic

Rysunek 9.11. Zmienne środowiskowe muszą zostać wyeksportowane, aby były widoczne w innych programach.

0x08 graphic
Zmienna PATH

Zmienna PATH, będąca bardzo ważną zmienną środowiskową, wykorzystywana jest do przechowywania ścieżki przeszukiwania, czyli listy katalogów, w których należy szukać plików wykonywalnych w przypadku, gdy nie zostanie podana pełna ścieka dostępu do nich.

Załóżmy, że w katalogu /harold/bin znajduje się program mojprog. Można go uruchomić, wpisując po prostu mojprog, ale pod warunkiem, że katalog /harold/bin wchodzi w skład ścieżki przeszukiwania, czyli jest częścią zmiennej środowiskowej PATH.

Z drugiej strony, jeśli katalog /harold/bin nie wchodzi w skład ścieżki przeszukiwania, aby uruchomić wspomniany program, trzeba wydać polecenie /harold/bin/mojprog

Poszczególne katalogi wchodzące w skład zmiennej PATH (czyli dostępne bez konieczności podawania ich pełnej nazwy) oddziela się od siebie dwukropkami w następujący sposób:
/bin:/usr/bin:/usr/X11R6/bin:/harold:/harold/ bin

Jeśli chcesz dodać jakiś katalog do zmiennej PATH, na pewno nie chciałbyś usuwać jej bieżącej zawartości - w przeciwnym przypadku większość poleceń przestałaby działać.

Na szczęście, w takiej sytuacji z pomocą przychodzi operator $, który umożliwia odniesienie do poprzedniej wartości zmiennej. Do tej wartości można następnie dołączyć nowe elementy.

Aby dodać katalog do zmiennej PATH

W wierszu poleceń wpisz
export PATH=$PATH:nowy_katalog

Na przykład tak:
export PATH=$PATH:/harold/bin

Wskazówka

Jeśli w tekście będącym wartością zmiennej PATH występują spacje, powinieneś otoczyć go cudzysłowem:
export PATH="$PATH:/harold/
moje dokumenty"

0x08 graphic
Edycja plików konfiguracyjnych

Edycja czy dodawanie nowych zmiennych środowiskowych za pomocą wiersza poleceń jest rozwiązaniem zupełnie prawidłowym i działa doskonale, ale, niestety, wprowadzone zmiany nie mają charakteru stałego, tzn. nie będą aktywne po następnym zalogowaniu się.

Jeśli chcesz utworzyć zmienną środowiskową (lub zmodyfikować zmienną istniejącą), tak aby jej wartość była odtwarzana po kolejnym zalogowaniu się, powinieneś poddać edycji plik konfiguracyjny.

Jeśli korzystasz z systemu Red Hat Linux i powłoki bash, w grę wchodzą cztery pliki konfiguracyjne zebrane w tabeli 9.2.

Jeśli przyjrzysz się tabeli 9.2, zauważysz na pewno że użyto w niej szczególnego symbolu: tyldy (~). Symbol ten oznacza katalog domowy użytkownika.

Aby przejść do swojego katalogu domowego

  1. W wierszu poleceń wpisz
    cd ~

  2. Wciśnij Enter.

W tabeli 9.2 można również zauważyć, że nazwy plików znajdujących się w katalogu domowym użytkownika zaczynają się od kropki, na przykład .bash_profile.
Kropka ta oznacza, że są to pliki ukryte.

Jeśli uruchomisz program Gnome File Manager z domyślnymi ustawieniami, pliki ukryte nie będą wyświetlane.

Tabela 9.2. Pliki konfiguracyjne używane w systemie Red Hat Linux z powłoką bash.

Plik

Kolejność przetwarzania

Zawartość

/etc/profile

Pierwszy

Zmienne środowiskowe obowiązujące w całym systemie oraz programy uruchamiane przy logowaniu

/etc/bashrc

Drugi

Teoretycznie funkcje i aliasy obowiązujące w systemie; w praktyce zwykle tylko definicja znaku zachęty

~/.bash_profile
(w katalogu domowym użytkownika)

Trzeci,
o ile istnieje

Zmienne środowiskowe i programy uruchamiane przy logowaniu specyficzne dla poszczególnych użytkowników

~/.bashrc
(w katalogu domowym użytkownika)

Ostatni,
o ile istnieje

Funkcje i aliasy zdefiniowane przez użytkownika; plik ten jest uruchamiany z pliku .bash_profile

0x08 graphic
Aby wyświetlić pliki ukryte w programie Gnome File Manager

  1. Uruchom program Gnome File Manager.

  2. Z menu Edycja wybierz pozycję Preferencje.
    Wyświetlona zostanie zakładka Wyświeltanie plików okna dialogowego Preferencje
    (patrz rysunek 9.12).

  3. Zaznacz opcję Wyświetlanie plików ukrytych.

  4. Kliknij na OK.

Wskazówka

  • Jeśli chcesz dowiedzieć się, w jaki sposób wyświetlić pliki ukryte, korzystając z wiersza poleceń, zajrzyj do rozdziału 10.

Z punktu widzenia administratora systemu, jeśli założysz nowe konto użytkownika za pomocą programu Linuxconf (patrz rysunek 9.13) i katalogiem domowym nowego użytkownika będzie podkatalog katalogu /home, zostaną do niego skopiowane pliki konfiguracyjne zapisane w katalogu /etc/skel.

W tym przypadku nazwa skel pochodzi od angielskiego słowa skeleton, czyli szkielet, szablon. Jeśli jesteś administratorem i chciałbyś zmodyfikować pliki konfiguracyjne nowych użytkowników, powinieneś edytować zawartość plików przechowywanych w katalogu /etc/skel.

Oczywiście, administrator może, ale nie musi, ręcznie dostosowywać ustawienia dla poszczególnych użytkowników; może również pozostawić ich całkowicie bez plików konfiguracyjnych.

Dokładniejsze informacje na temat używania programu Linuxconf znajdziesz w rozdziale szóstym, natomiast informacje o administrowaniu systemem za pomocą wiersza poleceń - w rozdziale dziesiątym.

0x01 graphic

Rysunek 9.12. Aby wyświetlić pliki ukryte w programie Gnome File Manager, należy zaznaczyć opcję Wyświetlanie plików ukrytych w oknie dialogowym Preferencje.

0x01 graphic

Rysunek 9.13. Jeśli katalog domowy użytkownika jest podkatalogiem katalogu /home, są do niego kopiowane pliki konfiguracyjne znajdujące się w katalogu /etc/skel.

0x08 graphic
0x01 graphic

Rysunek 9.14. Za pomocą programu Gnome File Manager możesz zlokalizować plik .bash_profile.

0x01 graphic

Rysunek 9.15. Aby edytować zawartość pliku za pomocą programu Gnotepad+, w polu Program do wykonania wpisz gnp.

0x01 graphic

Rysunek 9.16. Edytować plik tekstowy, na przykład .bash_profile, można za pomocą programu Gnotepad+.

0x01 graphic

Rysunek 9.17. Zmiany wprowadzone dla użytkownika obowiązują od momentu ponownego zalogowania się tego użytkownika do systemu.

Aby zdefiniować zmienną środowiskową dla użytkownika

  1. Uruchom program Gnome File Manager w środowisku graficznym Gnome.

  2. Odszukaj plik .bash_profile, zapisany w katalogu domowym (patrz rysunek 9.14).

  3. Kliknij prawym klawiszem myszy na plik .bash_profile i z menu podręcznego wybierz pozycję Otwórz z. Wyświetlone zostanie okno dialogowe gmc (patrz rysunek 9.15).

  4. W polu Program do wykonania wpisz gnp.

  5. Kliknij na OK. Plik .bash_profile zostanie otwarty za pomocą programu Gnotepad+ (rysunek 9.16).

  6. Wykorzystując sposoby opisane we wcześniejszej części tego rozdziału, w punkcie „Aby nadać zmiennej wartość podczas pracy”, zdefiniuj i wyeksportuj zmienną środowiskową, na przykład tak:
    MYENV="Lions, and tigers, and bears, Oh my!"
    export MYENV

  7. Z menu File programu Gnotepad+ wybierz polecenie Save, a następnie zakończ program Gnotepad+.

  8. Zaloguj się jako użytkownik, dla którego wprowadzono zmiany.

  9. W wierszu poleceń wpisz echo $MYENV. Wyświetlona zostanie wartość nowej zmiennej środowiskowej (rysunek 9.17).

Wskazówki

  • Zamiast wykorzystywać program Gnotepad+, możesz również uruchomić dowolny inny edytor tekstów dostępny z wiersza poleceń. Niektóre z tego typu programów zostaną przedstawione w dalszej części tego rozdziału.

  • Aby zdefiniować zmienną środowiskową globalnie, a nie dla poszczególnych użytkowników, edytuj nie plik .bash_profile, ale /etc/profile.

0x08 graphic
Aby globalnie zdefiniować ścieżkę przeszukiwania

  1. Wykorzystaj procedurę opisaną w punkcie „Aby zdefiniować zmienną środowiskową dla użytkownika” w celu otwarcia pliku /etc/profile za pomocą programu Gnotepad+ (rysunek 9.18).

  2. Wykorzystaj procedurę przedstawioną w punkcie „Aby dodać katalog do zmiennej PATH” i dodaj żądany katalog do ścieżki przeszukiwania; wpisz na przykład
    PATH="$PATH:/home/hdavis/linuxvqs"

  3. Upewnij się, że zmienna PATH jest eksportowana.

  4. Zapisz plik.

  5. Zaloguj się ponownie, aby sprawdzić, czy poprawki odniosły zamierzony skutek.

  6. W wierszu poleceń wpisz echo $PATH.

  7. Wciśnij Enter. Wyświetlona zostanie nowa wartość ścieżki przeszukiwania
    (rysunek 9.19).

Wskazówki

  • Jeśli usuniesz któryś z katalogów ze ścieżki przeszukiwania bez wcześniejszego upewnienia się co do jego funkcji, najprawdopodobniej niektóre z programów przestaną działać prawidłowo.

  • Jeśli chcesz zmienić ścieżkę przeszukiwania nie globalnie, ale dla pojedynczego użytkownika, powinieneś wprowadzić odpowiednie modyfikacje do pliku .bash_profile w katalogu domowym użytkownika, a nie do pliku /etc/profile.

0x01 graphic

Rysunek 9.18. Edytując plik /etc/profile, można zmodyfikować ścieżki przeszukiwania wszystkich użytkowników.

0x01 graphic

Rysunek 9.19. Zmiana ścieżki przeszukiwania wchodzi w życie od momentu ponownego zalogowania się.

0x08 graphic
0x08 graphic
0x01 graphic

Rysunek 9.20. Aby zmienić postać znaku zachęty, należy zmodyfikować wartość zmiennej środowiskowej PS1.

0x01 graphic

Rysunek 9.21. Znak zachęty może zawierać różne informacje.




Wskazówka

  • Spróbuj przetestować przedstawiony wyżej znak zachęty, aby sprawdzić, czy Ci on odpowiada, zamieniając najpierw wartość zmiennej PS1 interaktywnie, a dopiero potem wprowadzając odpowiednie zmiany do plików konfiguracyjnych.

Zmiana znaku zachęty powłoki bash

Znak zachęty można tak skonfigurować, aby zawierał różnego typu przydatne informacje. Jeśli chcesz zmienić znak zachęty obowiązujący w całym systemie, powinieneś wprowadzić odpowiednie modyfikacje do pliku /etc/bashrc. Jeżeli zmiany mają dotyczyć tylko jednego użytkownika, wprowadź odpowiednie informacje do pliku .bashrc znajdującego się w jego katalogu domowym.

W obu przypadkach edytować powinieneś zawartość wiersza rozpoczynającego się od znaków PS1 - często jest to jedyny wiersz nie będący komentarzem w tych plikach. Poszczególne informacje, które mogą wchodzić w skład znaku zachęty, należy zdefiniować pomiędzy nawiasami kwadratowymi - są one reprezentowane przez kody literowe (patrz tabela 9.3). Można tu również wstawić zwykły tekst.

Aby dodać do znaku zachęty informacje o dacie, czasie i ścieżce dostępu do bieżącego katalogu

  1. Otwórz plik /etc/bashrc za pomocą edytora tekstów (na rysunku 9.20 przedstawiony jest edytor Gnotepad+).

  2. Umieść symbol # na początku wiersza zawierającego definicję znaku zachęty (zaczynającego się od liter PS1). Spowoduje to potraktowanie tego wiersza jako komentarza; wyłączenie go bez usuwania z pliku, dzięki czemu łatwiej będzie później przywrócić pierwotną konfigurację.

  3. Wprowadź nową definicję zmiennej PS1, na przykład
    PS1="[\u w katalogu \w Data: \d Czas: \t]\\$ "

  4. Zapisz plik.

  5. Aby sprawdzić efekty wprowadzonych zmian, zaloguj się ponownie.
    Wyświetlony zostanie nowy znak zachęty (patrz rysunek 9.21).

0x08 graphic
Inne możliwości powłoki Bash

Powłoka bash obsługuje jeszcze wiele innych mechanizmów, które ułatwiają bądź umożliwiają przeprowadzenie niektórych operacji.

Katalogi, katalogi, katalogi

Jeśli jesteś początkującym użytkownikiem i nie wiesz, w jakim katalogu się znajdujesz, ponieważ zmieniłeś postać znaku zachęty
- oto porada dla Ciebie.

Aby sprawdzić, jaki katalog jest katalogiem bieżącym

  1. W wierszu poleceń wpisz pwd.

  2. Wciśnij Enter. Wyświetlona zostanie ścieżka dostępu do katalogu bieżącego (rysunek 9.22).

Aby wyświetlić zawartość bieżącego katalogu

  1. W wierszu poleceń wpisz ls.

  2. Wciśnij Enter. Wyświetlone zostaną nazwy plików, nie będących plikami ukrytymi, zapisanych w katalogu bieżącym (rysunek 9.23).

Aby wyświetlić zawartość bieżącego katalogu wraz z plikami ukrytymi

  1. W wierszu poleceń wpisz ls -a.

  2. Wciśnij Enter. Wyświetlone zostaną nazwy wszystkich plików, również plików ukrytych (rysunek 9.24).

Uzupełnianie poleceń

Uzupełnianie poleceń w powłoce bash pozwala na wprowadzenie tylko początkowego fragmentu polecenia; reszta może zostać dopisana automatycznie po wciśnięciu klawisza Tab.

Oczywiście, uzupełnianie poleceń może zadziałać tylko wówczas, gdy istnieje jakiś sposób na prawidłowe dokończenie rozpoczętego polecenia.

0x01 graphic

Rysunek 9.22. Za pomocą polecenia pwd możesz sprawdzić, w którym katalogu się znajdujesz.

0x01 graphic

Rysunek 9.23. Do wyświetlania zawartości katalogu służy polecenie ls.

0x01 graphic

Rysunek 9.24. Aby wyświetlić nazwy wszystkich plików, również ukrytych, skorzystaj z polecenia ls -a.

Wskazówka

  • Dokańczanie poleceń może zostać wykorzystane do dokończenia rozpoczętej nazwy polecenia, nazwy pliku, katalogu itd.

0x08 graphic
0x01 graphic

Rysunek 9.25. Jeśli wciśniesz klawisz Tab w czasie wpisywania polecenia, bash spróbuje odgadnąć, co miałeś na myśli.

0x01 graphic

Rysunek 9.26. Polecenie history powoduje wyświetlenie listy używanych wcześniej poleceń.

Aby użyć dokańczania poleceń

  1. W wierszu poleceń wprowadź część polecenia. Dla przykładu, wprowadź początek polecenia more test, które wyświe­tli zawartość pliku test; wpisz more te.

  2. Wciśnij klawisz Tab. Bash dokończy polecenie - wyświetlony zostanie tekst more test.

  3. Wciśnij Enter, aby zatwierdzić polecenie i wyświetlić zawartość pliku
    (rysunek 9.25).

Historia sesji

W powłoce bash klawisz ze strzałką w górę pozwala przejść do wydanych poprzednio poleceń. Klawisz ze strzałką w dół przywołuje ponownie polecenia wydane później.

Aby obejrzeć listę wydanych wcześniej poleceń

  1. W wierszu poleceń wpisz history.

  2. Wciśnij Enter. Wyświetlona zostanie numerowana lista poleceń wydanych w czasie sesji (rysunek 9.26).

Wskazówka

  • Jeśli po poleceniu history podasz jakąś liczbę n, wyświetlonych zostanie tylko n ostatnich poleceń, na przykład polecenie history 12 spowoduje wyświetlenie 12 ostatnich poleceń.

Aby ponownie wydać któreś z ponumerowanych poleceń

  1. W wierszu poleceń wpisz wykrzyknik (!) i numer polecenia, na przykład !144.

  2. Wciśnij Enter. Odpowiednie polecenie zostanie wykonane.

0x08 graphic
Edytory tekstów
i poczta elektroniczna

Do tej pory zakładałem, że wszystkie operacje związane z edytowaniem tekstów i obsługą poczty elektronicznej wykonywane były w środowisku graficznym Gnome.

W środowisku Gnome do edycji tekstu użyć można jednego z edytorów pracujących w trybie graficznym, na przykład Gnotepad+. Podobnie do obsługi poczty nadaje się program Netscape Messenger.

Co jednak powinieneś zrobić, jeśli nie odpowiada Ci środowisko graficzne? Nie ma żadnego problemu. Jeśli chcesz edytować tekst, używając programu nie korzystającego ze środowiska graficznego, masz do wyboru mnóstwo różnych aplikacji.

W tym podrozdziale przedstawimy krótki i niezbyt szczegółowy opis dwóch popularnych edytorów tekstów, vi i Pico, wspomnimy również o edytorze emacs. Którego z nich będziesz używał, o ile zdecydujesz się na którykolwiek, zależy tylko od Ciebie.

Jedną z sytuacji, kiedy będziesz chciał skorzystać z narzędzi pracujących w trybie tekstowym, jest połączenie zdalne - wówczas najczęściej nie można uruchomić programów wymagających serwera X (takich jak te dostępne w środowisku Gnome).

Edytor vi

Edytor vi jest potężnym narzędziem, ale niełatwo nauczyć się jego obsługi. Jeśli jesteś doświadczonym użytkownikiem tego programu, na pewno znasz jego ogromne możliwości i wiesz, jak je wykorzystać. Inni użytkownicy mogą mieć wątpliwości, czy warto uczyć się obsługi tego edytora. Najważniejszym powodem, dla którego warto poświęcić dla niego nieco czasu jest fakt, że edytor ten jest dostępny w praktycznie każdym systemie Uniksowym. Jeśli więc nauczysz się go obsługiwać, będziesz mógł edytować teksty prawie w każdym systemie.

Wraz z systemem Red Hat Linux rozprowadzana jest wersja edytora vi o nazwie vim - czyli vi improved (rozszerzony vi)
- która jest dostępna za darmo i pierwotnie napisana była przez Brama Moolenaara.

Niektóre z częściej używanych poleceń edytora vi znajdziesz w dodatku A.

0x08 graphic
0x01 graphic

Rysunek 9.27. Aby uruchomić edytor vim, wydaj polecenie vi.

0x01 graphic

Rysunek 9.28. Do wstawiania tekstu w edytorze vi służy tryb Insert.




Aby wyjść z edytora vi bez zapisywania zmian

  1. Wciśnij klawisz Escape, aby przejść do trybu wydawania poleceń.

  2. Wpisz :q!.

Aby uruchomić program vim

  1. W wierszu poleceń wpisz vi.

  2. Wciśnij Enter. Uruchomiony zostanie edytor vim (rysunek 9.27).

Wskazówki

  • Można uruchomić program vim, otwierając od razu żądany plik, podając jego nazwę jako argument polecenia vi, na przykład wpisując vi test.

  • Możliwe jest również otwarcie kilku plików przez zastosowanie symboli wieloznacznych, na przykład wydając polecenie vi *.html. Do następnego pliku można wówczas przejść, wciskając klawisz Escape i wydając polecenie :n
    (od angielskiego next - następny).

Aby wprowadzić tekst do pliku edytowanego za pomocą vi

  1. Po uruchomieniu edytora vim wciśnij klawisz i. Uruchomiony zostanie tryb wstawiania tekstu (ang. Insert mode).

  2. Wprowadź jakiś tekst. Może się zdarzyć, że aby go zobaczyć, będziesz musiał przewinąć zawartość okna terminala czy sesji telnet do początku (rysunek 9.28).

  3. Jeśli chcesz wrócić do trybu wydawania poleceń, wciśnij klawisz Escape.

  4. Aby dodać tekst po bieżącej pozycji kursora, wciśnij a.

Aby zapisać plik w edytorze vi

  1. Wciśnij klawisz Escape, aby przejść do trybu wydawania poleceń.

  2. Wpisz :w (ang. write - zapisz) oraz nazwę pliku, na przykład :w vitest.

Wskazówka

  • Aby zapisać plik, który posiada już nazwę, wydaj polecenie :w, bez nazwy pliku.

0x08 graphic
0x08 graphic
Edytor Pico

Edytor Pico jest o wiele łatwiejszy w użyciu niż vi, ponieważ obsługuje się go za pomocą menu. Dzięki temu nie trzeba zapamiętywać skomplikowanych kombinacji klawiszy ani zwracać uwagi na to, w jakim trybie aktualnie pracujesz.

Aby uruchomić Pico

  1. W wierszu poleceń wpisz pico.

  2. Wciśnij Enter. Uruchomiony zostanie edytor Pico.

Aby wprowadzić tekst w oknie edytora Pico

Rozpocznij po prostu pisanie. Wprowadzany tekst będzie wyświetlany w oknie edytora (rysunek 9.29).

Wskazówka

  • Jeśli edytujesz pliki konfiguracyjne, uruchom program Pico z wyłączonym zawijaniem wierszy, czyli z opcją -w:
    pico -w nazwapliku.

Aby zapisać plik w edytorze Pico

  1. Przytrzymaj klawisz Control.

  2. Wciśnij klawisz X.

0x01 graphic

Rysunek 9.29. Zaletą edytora Pico jest jego intuicyjny interfejs.


Edytor emacs

Inny popularny edytor tekstów to emacs. Red Hat Linux jest rozprowadzany z jedną z wersji tego programu: GNU Emacs.

Edytor emacs pozwala na bardzo elastyczną konfigurację i posiada tak wiele możliwości, że mógłby sam być tematem jednej z książek naszego cyklu. Emacs świetnie nadaje się do tworzenia programów. Ma o wiele większe możliwości niż edytor vi i nie posiada różnych trybów pracy, utrudniających korzystanie z vi.

0x08 graphic
0x08 graphic
0x01 graphic

Rysunek 9.30. W systemie UNIX wiadomość, która ma zostać wysłana pocztą elektroniczną, należy zakończyć kropką w osobnym wierszu.



Program Pine

Z systemem Red Hat Linux rozprowadzanych jest również kilka tekstowych programów do obsługi poczty. Jednym z najważniejszych z nich jest chyba program Pine - obsługiwany za pomocą menu, intuicyjny, o dużych możliwościach.

Program Pine został napisany na Uniwersytecie Waszyngtońskim.

Pełna dokumentacja tego programu dostępna jest w sieci Internet.

Aby uruchomić program Pine, w wierszu poleceń wpisz pine.

Aby wysłać wiadomość pocztą elektroniczną za pomocą polecenia mail

  1. W wierszu poleceń powłoki bash wpisz wyraz mail, a po nim adres osoby, do której chcesz przesłać wiadomość, na przykład
    mail harold@bearhome.com.

  2. Wciśnij Enter.

  3. W wierszu tematu wprowadź temat wiadomości.

  4. Wprowadź właściwy tekst wiadomości.

  5. Aby zakończyć wpisywanie tekstu, wpisz w pustym wierszu kropkę
    (rysunek 9.30).

  6. Wciśnij Enter.

  7. Zostaniesz poproszony o podanie adresu CC, czyli adresu, pod który wysłana zostanie kopia wiadomości. Jeśli nie chcesz podawać takiego adresu, wciśnij Enter.

Wskazówka

  • Zamiast wpisywać kropkę w osobnym wierszu, możesz również zakończyć wprowadzanie tekstu wiadomości, przytrzymując klawisz Control
    i wciskając klawisz D.

0x08 graphic
Podsumowanie

W tym rozdziale nauczyłeś się:

  • Przechodzić do wiersza poleceń.

  • Sprawdzać, jaka powłoka jest uruchomiona.

  • Sprawdzać, jakie powłoki są dostępne w systemie.

  • Korzystać z powłoki tymczasowej.

  • Zmieniać wykorzystywaną powłokę.

  • Wyświetlać wartości zmiennych środowiskowych.

  • Wyświetlać wszystkie zmienne środowiskowe.

  • Używać mechanizmu potoków i programu more.

  • Korzystać z programu more do przeglądania zawartości plików.

  • Ustalać wartości zmiennych środowiskowych podczas pracy.

  • Dodawać katalogi do wartości zmiennej PATH.

  • Przechodzić do katalogu domowego.

  • Przeglądać pliki ukryte.

  • Definiować zmienne środowiskowe dla poszczególnych użytkowników.

  • Dodawać katalogi do globalnej ścieżki przeszukiwania.

  • Zmieniać znak zachęty powłoki bash.

  • Sprawdzać, w którym katalogu się znajdujesz.

  • Korzystać z dokańczania poleceń.

  • Używać historii sesji.

  • Otwierać i zapisywać pliki za pomocą edytorów vi i Pico.

  • Wysyłać wiadomości pocztą elektroniczną z systemu linuksowego.

198

197

Rozdział 9.

Powłoka Bash

Powłoka Bash

9

Tabela 9.1. Najczęściej używane powłoki.

Nazwa programu

Powłoka

Komentarz

/bin/sh

Bourne Shell

Jest to przodek wszystkich innych powłok systemów UNIX-owych, ale brakuje jej wielu przydatnych możliwości

/bin/bash

Bourne Again Shell

Domyślna powłoka systemów linuxowych

/bin/csh

C Shell

Składnia i konstrukcje używane w tej powłoce są bardzo podobne do znanych z języka C

/bin/tcsh

Enhanced C Shell

Jest to bardziej rozbudowana wersja powłoki C Shell

/bin/ksh

Korn Shell

Jest to jedna z najpopularniejszych powłok UNIX-owych, ale nie jest ona zwykle używana w systemach linuxowych

Inne możliwości powłoki Bash

Część III
Obsługa wiersza poleceń systemu Linux

Powłoka Bash

Przejście do wiersza poleceń

Przejście do wiersza poleceń

Przejście do wiersza poleceń

Powłoki

Powłoki

Powłoki

Powłoka Bash

Powłoka Bash

Powłoka Bash

Powłoka Bash

Powłoka Bash

Powłoka Bash

Powłoka Bash

Powłoka Bash

Inne możliwości powłoki Bash

Tabela 9.3. Symbole używane przy definiowaniu znaku zachęty.

Symbol

Znaczenie

\u

Wyświetla identyfikator bieżącego użytkownika

\w

Wyświetla ścieżkę dostępu do bieżącego katalogu; katalog domowy użytkownika jest reprezentowany przez symbol ~

\W

Wyświetla nazwę bieżącego katalogu bez ścieżki dostępu do niego

\t

Wyświetla bieżący czas

\d

Wyświetla bieżącą datę

\n

Wymusza przejście do nowego wiersza, dzięki czemu znak zachęty może składać się z więcej niż jednego wiersza tekstu

\h

Wyświetla nazwę serwera

Powłoka Bash

Edytory tekstów i poczta elektroniczna

Edytory tekstów i poczta elektroniczna

Edytory tekstów i poczta elektroniczna

Edytory tekstów i poczta elektroniczna

Podsumowanie

Powłoka Bash



Wyszukiwarka