# Wprowadzenie do FreeBSD i Uniksa

Annelise
Anderson

    andrsn@andrsn.stanford.edu

$FreeBSD$

Niniejsze wprowadzenie przeznaczone jest dla osób nie znających ani FreeBSD, ani Uniksa; omówione są tu zagadnienia podstawowe. Zakładam, że korzystasz z FreeBSD w wersji 2.0.5 lub późniejszej, a twój system ma (przynajmniej na razie) jednego użytkownika (ciebie). Powinieneś też dość dobrze znać DOS-a/Windows lub OS/2.

## Logowanie się i wychodzenie z systemu

Gdy ujrzysz komunikat login:, zaloguj się jako użytkownik utworzony podczas instalacji lub jako root (konto root jest już w systemie; root może dostać się wszędzie i robić co mu się podoba, także usuwać ważne pliki, więc trzeba z nim uważać). Znaki &prompt.user; i &prompt.root; są znakami gotowości (mogą wyglądać inaczej), przy czym &prompt.user; odpowiada zwykłemu użytkownikowi, a &prompt.root; kontu roota.

Aby się wylogować (i powrócić do komunikatu login:), napisz:

    &prompt.root; exit

Oczywiście, wydane polecenia potwierdza się wciskając enter. Trzeba także pamiętać, że Unix rozróżnia małe i duże litery, więc `exit` i `EXIT` to nie to samo.

By wyłączyć komputer, napisz

    &prompt.root; /sbin/shutdown -h now

By natomiast uruchomić go ponownie

    &prompt.root; /sbin/shutdown -r now

lub

    &prompt.root; /sbin/reboot

Ponowne uruchomienie można też wykonać za pomocą CtrlAltDelete. W obecnych wydaniach FreeBSD jest to odpowiednik `/sbin/reboot`, i korzystanie z niego jest o wiele lepszym rozwiązaniem od używania przycisku reset. Nie masz przecież ochoty na ponowną instalację, prawda?

## Dodawanie użytkownika z uprawnieniami roota

Jeżeli nie dodawałeś użytkowników podczas instalacji systemu, i jesteś zalogowany jako root, powinieneś teraz utworzyć użytkownika poleceniem

    &prompt.root; adduser

Przy pierwszym korzystaniu z adduser mogą pojawić się pytania o pewne ustawienia domyślne. Na przykład jako domyślną powłokę możesz wybrać &man.csh.1; zamiast &man.sh.1;, jeśli proponowana będzie `sh`. Aby zaakceptować sugerowane ustawienia, wciśnij po prostu enter. Domyślne ustawienia trafiają do pliku `/etc/adduser.conf`, który można samodzielnie edytować.

Dla przykładu, chcesz dodać użytkownika marek o nazwisku Marek Piegus. Dla bezpieczeństwa przydziel markowi hasło (choćby w obawie przed wszędobylskimi dzieciakami). Gdy zobaczysz pytanie, do jakich innych grup ma należeć marek, wpisz wheel

    Login group is ``marek''. Invite marek into other groups: wheel

Dzięki temu po zalogowaniu się jako marek będzie można skorzystać z polecenia &man.su.1; by zostać rootem. Nie będziesz już teraz besztany za logowanie się jako root.

Możesz przerwać `adduser` w dowolnym momencie wciskając CtrlC, na koniec będziesz też mieć możliwość zatwierdzenia nowego użytkownika lub odrzucenia go, wpisując n. Jeśli chcesz, możesz dodać drugiego użytkownika; gdy będziesz zmieniać ustawienia konta marka i coś pójdzie nie tak, będziesz mieć zapas.

Po wykonaniu powyższych czynności, wpisz `exit` aby móc znów się zalogować, i zaloguj się jako marek. Należy raczej pracować jako zwykły użytkownik, jeśli nie są potrzebne uprawnienia roota (i związane z nimi ryzyko).

Jeśli wcześniej dodałeś użytkownika i chcesz dać mu możliwość zostania rootem za pomocą `su`, możesz to zrobić logując się jako root i modyfikując plik `/etc/group`; dopisz marka w pierwszej linii tego pliku (grupa wheel). Wcześniej jednak powinieneś zapoznać się z edytorem &man.vi.1;, lub skorzystać z prostszego edytora &man.ee.1; dostępnego w nowych wersjach FreeBSD.

Użytkownika usuwa się poleceniem `rmuser`.

## Rozglądanie się

Zaloguj się jako zwykły użytkownik, rozejrzyj się wokoło i spróbuj skorzystać z kilku poleceń służących uzyskiwaniu informacji i pomocy.

Oto niektóre polecenia z krótkim opisem:

`id`

  Pokazuje kim jesteś.

`pwd`

  Pokazuje gdzie jesteś, czyli bieżący katalog.

`ls`

  Wyświetla listę plików w bieżącym katalogu.

`ls `-F``

  Wyświetla listę plików w bieżącym katalogu, znakiem `*` oznaczając pliki wykonywalne, znakiem `/` katalogi, a znakiem `@` dowiązania symboliczne.

`ls `-l``

  Wyświetla listę plików w długim formacie, pokazując rozmiar, datę, uprawnienia.

`ls `-a``

  Wyświetla również pliki ukryte (o nazwie rozpoczynającej się kropką). Gdy jesteś rootem, pliki ukryte są pokazywane bez stosowania opcji `-a`.

`cd`

  Zmiana katalogu. `cd `..`` przechodzi o jeden poziom wyżej; uwaga na odstęp po `cd`. `cd `/usr/local`` przejdzie do wskazanego katalogu. `cd `~`` przechodzi do domowego katalogu obecnego użytkownika, np. `/usr/home/marek`. Poleceniem `cd `/cdrom``, a następnie `ls` możesz przekonać się, czy Twój CDROM jest zamontowany i czy działa.

`view nazwapliku`

  Pokazuje zawartość pliku (o nazwie nazwapliku) bez możliwości dokonywania zmian. Spróbuj napisać `view `/etc/fstab``. Wpisz `:q` by zakończyć.

`cat nazwapliku`

  Pokazuje na ekranie zawartość pliku nazwapliku. Jeśli jest on zbyt duży i widać tylko koniec, wciśnij ScrollLock i posłuż się strzałką w górę by przesunąć się wstecz. ScrollLock może być też stosowany przy przeglądaniu dokumentacji systemowej. By zakończyć przewijanie, ponownie wciśnij ScrollLock. Możesz wypróbować `cat` na ukrytych plikach w Twoim katalogu domowym: `cat `.cshrc``, `cat `.login``, `cat `.profile``.

W `.cshrc` znajdziesz aliasy dla polecenia `ls` (są bardzo wygodne). Własne aliasy możesz tworzyć modyfikując plik `.cshrc`. Gdy chcesz udostępnić aliasy wszystkim użytkownikom, umieść je w pliku konfiguracyjnym `csh` dla całego systemu, `/etc/csh.cshrc`.

## Gdzie szukać pomocy i informacji

Oto niektóre przydatne źródła pomocy. Tekst oznacza coś, co wpisałeś; zwykle będzie to jakieś polecenie lub nazwa pliku.

`apropos tekst`

  Wszystkie wystąpienia tekstu w bazie danych whatis.

`man tekst`

  Dokumentacja systemowa na temat tekstu. Jest to podstawowe źródło informacji w systemach Un*ksowych. Przykładowo `man `ls`` podpowie, jak korzystać z polecenia `ls`. Naciśnij Enter by przejść dalej, CtrlB by zobaczyć poprzednią stronę, CtrlF by zobaczyć następną, q albo CtrlC aby zakończyć.

`which tekst`

  Znajduje tekst w ścieżce użytkownika.

`locate tekst`

  Pokazane będą wszystkie ścieżki, w których znaleziony został tekst.

`whatis tekst`

  Informuje, jak działa polecenie tekst i na której stronie dokumentacji systemowej znajduje się jego opis. Wpisując `whatis *` otrzymasz opis wszystkich plików w bieżącym katalogu.

`whereis tekst`

  Odnajduje plik tekst i podaje jego pełną ścieżkę.

Spróbuj użyć `whatis` by otrzymać opisy najczęściej używanych poleceń, na przykład `cat`, `more`, `grep`, `mv`, `find`, `tar`, `chmod`, `chown`, `date` i `script`. `more` pozwala na oglądanie kolejnych stron jedna po drugiej (znane z DOS'a), na przykład `ls -l | more` lub `more nazwapliku`. Znak `*` działa jak szablon, np. polecenie `ls w*` pokaże pliki o nazwach zaczynających się literą `w`.

Niektóre z powyższych poleceń mogą działać nie całkiem prawidłowo. Działanie &man.locate.1; i &man.whatis.1; uzależnione jest od bazy danych, która aktualizowana jest raz na tydzień. Jeżeli nie planujesz zostawiać włączonego komputera (z uruchomionym FreeBSD) na weekend, powinieneś co jakiś czas uruchomić polecenia codziennej, cotygodniowej i comiesięcznej obsługi. Uruchamiaj je jako root i daj każdemu z nich nieco czasu na wykonanie pracy przed uruchomieniem kolejnego.

    &prompt.root; periodic daily
    pominięto wyniki
    &prompt.root; periodic weekly
    pominięto wyniki
    &prompt.root; periodic monthly
    pominięto wyniki

Jeżeli nudzi cię czekanie, wciśnij AltF2 by przejść do następnej konsoli wirtualnej i ponownie się zalogować; w końcu to system wielodostępny i wielozadaniowy. Tak czy inaczej, uruchomione polecenia będą zapewne wypisywać na ekranie komunikaty; możesz wyczyścić ekran wpisując `clear`. Gdy polecenia obsługi zakończą pracę, możesz zajrzeć do `/var/mail/root` i `/var/log/messages`.

Wykonywanie tego typu poleceń jest częścią administracji systemem - a jako samodzielny użytkownik systemu jesteś administratorem sam dla siebie. Właściwie wszystko, co wymaga uprawnień roota, to administracja systemem. Zagadnienia z tym związane nie są zbyt dobrze omówione nawet w opasłych księgach o Uniksie, gdzie często wiele miejsca poświęcone jest omówieniu rozwijanych menu w menedżerach okien. Jeśli chcesz, możesz zaopatrzyć się w jedną z dwóch najpopularniejszych książek o administrowaniu systemem, pierwsza z nich to UNIX System Administration Handbook autorstwa Evi Nemeth i in. (Prentice-Hall, 1995, ISBN 0-13-15051-7), wydanie drugie z czerwoną okładką; druga napisana przez Æleen Frisch Essential System Administration (O'Reilly & Associates, 1993, ISBN 0-937175-80-3). Ja korzystałam z tej pierwszej.

## Edycja tekstu

Konfigurowanie systemu wiąże się z edytowaniem plików tekstowych. Większość z nich znajduje się w katalogu `/etc`; do ich modyfikacji wymagane będą uprawnienia roota. Możesz posługiwać się prostym edytorem `ee`, jednakże na dłuższą metę warto nauczyć się obsługi edytora `vi`. Znakomite wprowadzenie do vi można znaleźć w `/usr/src/contrib/nvi/docs/tutorial`; jeśli go tam nie ma, możesz pobrać je przez FTP z ftp.cdrom.com z katalogu FreeBSD/FreeBSD-current/src/contrib/nvi/docs/tutorial.

Zanim zabierzesz się za edycję pliku, dobrze byłoby zrobić jego kopię zapasową. Jeżeli na przykład chcesz edytować `/etc/rc.conf`, możesz przejść do katalogu `/etc` poleceniem `cd /etc` i napisać:

    &prompt.root; cp rc.conf rc.conf.orig

W rezultacie plik `rc.conf` zostałby skopiowany jako `rc.conf.orig`. Mógłbyś później przywrócić oryginalny plik kopiując `rc.conf.orig` jako `rc.conf`. Jeszcze lepszym wyjściem jest przeniesienie pliku (zmiana nazwy) i późniejsze skopiowanie go z powrotem:

    &prompt.root; mv rc.conf rc.conf.orig
    &prompt.root; cp rc.conf.orig rc.conf

Polecenie `mv` zachowuje oryginalną datę i właściciela pliku. Możesz już edytować `rc.conf`. Gdy zechcesz powrócić do poprzedniego pliku, napisz `mv rc.conf rc.conf.moje` (o ile chcesz również zachować swoją wersję), a następnie

    &prompt.root; mv rc.conf.orig rc.conf

Powrócisz w ten sposób do poprzedniego stanu.

Edycję pliku rozpoczyna się poleceniem

    &prompt.root; vi nazwapliku

Do poruszania się w tekście użyj klawiszy strzałek. Klawisz Esc powoduje przełączenie `vi` w tryb poleceń. Oto niektóre z poleceń:

`x`

  usunięcie litery pod kursorem

`dd`

  usunięcie całego wiersza

`i`

  wstawianie tekstu w miejscu kursora

`a`

  wstawianie tekstu za kursorem

Po wpisaniu `i` lub `a` możesz wprowadzac tekst. Klawiszem Esc powracasz do trybu poleceń, oto kolejne z nich

`:w`

  zapisanie pliku na dysku i powrót do edycji

`:wq`

  zapisanie pliku i wyjście z edytora

`:q!`

  wyjście bez zapisywania zmian

`/tekst`

  przeniesienie kursora do tekstu; `/Enter` (klawisz enter) znajduje kolejne wystąpienie tekstu.

`G`

  przejście na koniec pliku

`nG`

  przejście do linii o numerze n

CtrlL

  przerysowanie ekranu

Ctrlb i Ctrlf

  przejście wstecz i do przodu o jeden ekran, podobnie jak w `more` i `view`.

Możesz poćwiczyć korzystanie z `vi` w katalogu domowym; utwórz nowy plik poleceniem `vi nazwapliku`, spróbuj wpisać i usunąć tekst, zapisać plik i następnie go wczytać. `vi` może niekiedy sprawiać niespodzianki, gdyż jest w gruncie rzeczy bardzo skomplikowany. Czasami zdarza się, że niechcący wydasz polecenie, które zachowa się inaczej niż oczekiwałeś. (Niektórzy naprawdę lubią `vi`, jest o wiele potężniejszy od DOS-owego edytora EDIT; poszukaj informacji o poleceniu `:r`.) Jeśli będziesz mieć kłopoty, wciskając Esc wróć do trybu poleceń i spróbuj jeszcze raz; często zapisuj poleceniem `:w`, i używaj `:q!` by wyjść i zacząć od nowa (od ostatniego użycia `:w`) jeśli to konieczne.

Możesz teraz, przy pomocy `cd`, przejść do `/etc` i zostać rootem korzystając z `su`. Uruchom `vi` i zmodyfikuj plik `/etc/group` dodając użytkownika do grupy wheel, by mógł on otrzymywać uprawnienia roota. Dopisz przecinek i nazwę użytkownika na końcu pierwszego wiersza pliku, następnie wciśnij Esc i wpisz `:wq` by zapisać plik i zakończyć edycję. Efekt natychmiastowy. (Nie wstawiłeś spacji za przecinkiem, zgadza się?)

## Drukowanie plików w DOS-ie

Zapewne twoja drukarka nie jest jeszcze gotowa do pracy w FreeBSD, by więc wydrukować plik trzeba będzie przenieść go na dyskietkę i wydrukować w DOS-ie. Załóżmy, iż chciałbyś uważnie przeczytać stronę dokumentacji omawiającą dokonywanie zmian w prawach dostępu do plików (co jest dosyć ważnym zagadnieniem); możesz ją zobaczyć wpisując `man chmod`. Natomiast polecenie

    &prompt.user; man chmod | col -b > chmod.txt

spowoduje usunięcie znaczników formatujących i zamiast pokazywać stronę dokumentacji na ekranie, zapisze ją w pliku `chmod.txt`. Włóż teraz sformatowaną dyskietkę do stacji A, skorzystaj z `su` by zostać rootem, i wpisz

    &prompt.root; /sbin/mount -t msdos /dev/fd0 /mnt

Powyższe polecenie zamontuje stację dyskietek w katalogu `/mnt`.

Uprawnienia roota nie są już potrzebne, możesz więc wpisać `exit` by z powrotem korzystać z konta marka. Przejdź teraz do katalogu, w którym utworzyłeś plik `chmod.txt` i skopiuj go na dyskietkę poleceniem:

    &prompt.user; cp chmod.txt /mnt

Po wpisaniu `ls /mnt` powinieneś zobaczyć, że w katalogu `/mnt` znajduje się plik `chmod.txt`.

Niekiedy warto zapisać w pliku to, co wyświetla `/sbin/dmesg`. Można to zrobić wpisując

    &prompt.user; /sbin/dmesg > dmesg.txt

Potem można skopiować `dmesg.txt` na dyskietkę. `/sbin/dmesg` pokazuje komunikaty wyświetlane podczas ładowania systemu; można dzięki temu prześledzić przebieg procesu ładowania FreeBSD. Kiedy zadajesz pytanie na &a.pl.questions.ms; lub na grupie USENET, na przykład: FreeBSD nie chce wykryć mojego dysku, co zrobić?, wówczas inni będą chcieli dowiedzieć się, co pokazuje `dmesg`.

Możesz już odmontować stację dyskietek (jako root), wydając polecenie

    &prompt.root; /sbin/umount /mnt

Dyskietkę możesz już wyjąć. Uruchom komputer ponownie by załadować DOS-a. Skopiuj pliki z dyskietki do jakiegoś katalogu i otwórz je przy pomocy DOS-owego EDIT-a, Notatnika Windows albo WordPada, dokonaj jakiejś drobnej zmiany aby wymusić zapisanie pliku, po czym wydrukuj go w sposób tradycyjny dla DOS-a lub Windows. Udało się? Strony dokumentacji systemowej najlepiej jest drukować korzystając z DOS-wego polecenia `print`. (Kopiowanie plików z FreeBSD na zamontowaną partycję DOS-a ciągle jeszcze bywa niebezpieczne.)

Aby korzystać z drukarki w FreeBSD, należy dodać odpowiedni wpis w `/etc/printcap` oraz utworzyć katalog buforowania w `/var/spool/output`. Jeśli drukarka jest podłączona do portu lpt0 (oznaczonego LPT1 w DOS-ie), być może wystarczy tylko przejść do `/var/spool/output` i (będąc rootem) utworzyć katalog `lpd` za pomocą polecenia: `mkdir lpd` (chyba, że taki katalog już tam jest). Od tej chwili drukarka powinna się zgłaszać podczas ładowania systemu, jeśli jest włączona, a drukowanie plików powinno być możliwe dzięki poleceniu `lp` lub `lpr`. Konfiguracja drukowania opisana jest w Podręczniku FreeBSD.

## Inne przydatne polecenia

`df`

  pokazuje zamontowane systemy plików i zajmowaną przestrzeń.

`ps aux`

  lista działających procesów. `ps ax` wyświetla bardziej zwięzłą postać listy.

`rm nazwapliku`

  usunięcie pliku nazwapliku.

`rm -R katalog`

  usunięcie katalogu katalog wraz z podkatalogami. (ostrożnie!)

`ls -R`

  lista plików w katalogu bieżącym i wszystkich jego podkatalogach. Swego czasu stosowałam `ls -AFR > where.txt` aby sporządzić listę wszystkich plików w `/` oraz (oddzielnie) `/usr`, zanim poznałam lepsze sposoby wyszukiwania plików.

`passwd`

  zmiana hasła użytkownika (lub roota)

`man hier`

  dokumentacja Uniksowego systemu plików

Aby odnaleźć plik `nazwapliku` w `/usr` lub jego podkatalogach, skorzystaj z polecenia `find`:

    &prompt.user; find /usr -name "nazwapliku"

Możesz wykorzystać znak `*` jako wzorzec nazwy `"nazwapliku"` (wówczas należy ją ująć w cudzysłów). Jeśli wybierzesz, by `find` szukało w katalogu `/` zamiast `/usr`, wówczas poszukiwania obejmą wszystkie zamontowane systemy plików, w tym CDROM i partycje DOS-owe.

Polecenia i programy narzędziowe Uniksa są omówione w znakomitej książce Unix for the Impatient (wyd. drugie, Addison-Wesley, 1996), autorstwa Abrahamsa i Larsona. Jest także mnóstwo informacji na ten temat w Internecie, przykładem może być Unix Reference Desk.

## Co dalej

Masz już wszystko, co będzie potrzebne by sprawnie posługiwać się systemem i edytować pliki, możesz więc zająć się dostosowywaniem systemu do własnych potrzeb. Wiele przydatnych informacji można znaleźć w podręczniku FreeBSD (który zapewne masz na dysku) oraz na stronie FreeBSD. Na stronie, a także na CDROM-ie, dostępny jest również pokaźny zbiór pakietów i portów. O tym, jak z nich korzystać, można dowiedzieć się z podręcznika (znajdź potrzebny pakiet, dodaj go poleceniem `pkg_add /cdrom/packages/All/nazwapakietu`, przy czym nazwapakietu jest nazwą pliku pakietu). Listę pakietów i portów wraz z krótkim opisem można znaleźć na CDROM-ie, w `cdrom/packages/index`, `cdrom/packages/index.txt`, oraz `cdrom/ports/index`; dokładniejsze opisy znajdują się w `/cdrom/ports/*/*/pkg/DESCR`, przy czym znaki `*` oznaczają odpowiednio rodzaj programu i jego nazwę.

Jeżeli opis instalacji portów z CDROM-u zawarty w podręczniku wydaje ci się zbyt skomplikowany (przez jakieś `lndir`, czy coś), możesz spróbować poniższego sposobu:

Znajdź port, który chcesz zainstalować, powiedzmy, że będzie to `kermit`. Na CDROM-ie znajdziesz jego katalog. Skopiuj ten katalog do `/usr/local` (to dobre miejsce na dodatkowe programy, które mają być dostępne dla wszystkich użytkowników) poleceniem:

    &prompt.root; cp -R /cdrom/ports/comm/kermit /usr/local

W efekcie powinien powstać katalog `/usr/local/kermit` zawierający te same pliki, co katalog `kermita` na CDROM-ie.

Następnie korzystając z polecenia `mkdir` utwórz katalog `/usr/ports/distfiles`, chyba że już taki istnieje. Sprawdź teraz, czy w katalogu `/cdrom/ports/distfiles` znajduje się plik o nazwie odpowiadającej instalowanemu portowi. Skopiuj go do `/usr/ports/distfiles`; w obecnych wersjach nie trzeba tego robić, ponieważ zajmuje się tym samo FreeBSD. W przypadku `kermita` pliku nie ma.

Teraz poleceniem `cd` przejdź do podkatalogu `/usr/local/kermit` zawierającego plik `Makefile`. Napisz

    &prompt.root; make all install

Spowoduje to, iż wszystkie potrzebne pliki, których nie ma na CDROM-ie lub w `/usr/ports/distfiles`, zostaną pobrane przez FTP. Jeżeli jeszcze nie skonfigurowałeś sieci, a w `/cdrom/ports/distfiles` nie ma pliku potrzebnego do instalacji, będziesz musiał uzyskać ten plik korzystając z innego komputera i skopiować go do `/usr/ports/distfiles` z dyskietki albo partycji DOS-a. Zajrzyj do `Makefile` (poleceniem `cat`, `more` lub `view`) by dowiedzieć się, skąd wziąć potrzebny plik (lokalizacja w sieci) i jak się on nazywa. Jeżeli ściągasz plik korzystając z DOS-a, jego nazwa zostanie obcięta, tak więc po umieszczeniu go w `/usr/ports/distfiles` będziesz musiał zmienić nazwę pliku (poleceniem `mv`) na prawidłową. (Pamiętaj, by pobierać pliki w trybie binarnym!) Przejdź z powrotem do `/usr/local/kermit`, odnajdź katalog zawierający `Makefile`, i wpisz `make all install`.

Może się zdarzyć, że do instalacji jakiegoś portu bądź pakietu wymagany będzie jakiś inny program. Jeżeli instalacja zostanie przerwana komunikatem can't find unzip (nie znaleziono unzip) lub podobnym, prawdopodobnie trzeba będzie zainstalować pakiet lub port unzip by móc kontynuować instalację.

Po instalacji wpisz `rehash` aby uwzględnić ewentualne zmiany ścieżki. (Jeżeli używając `whereis` lub `which` często trafiasz na komunikat path not found (nie znaleziono ścieżki), powinieneś uzupełnić katalogi umieszczone w ścieżce w pliku `.cshrc` w katalogu domowym. Ścieżka pełni w Uniksie taką samą rolę jak w DOS-ie, z tym, że (domyślnie) nie zawiera katalogu bieżącego ze względów bezpieczeństwa; chcąc uruchomić plik z bieżącego katalogu, należy przed jego nazwą napisać `./`; bez spacji po znaku ukośnika.)

Być może zechcesz ściągnąć najnowszą wersję przeglądarki Netscape z ich serwera FTP. (Netscape wymaga zainstalowanego X Window System.) Dostępna jest wersja dla FreeBSD, więc poszukaj jej. Rozpakuj plik poleceniami `gunzip nazwapliku` oraz `tar xvf nazwapliku` i przenieś otrzymany plik wykonywalny do `/usr/local/bin` lub podobnego. Wykonaj `rehash`, oraz dodaj następujące polecenia do plików `.cshrc` w katalogu domowym każdego użytkownika, lub (szybciej) do pliku `/etc/csh.cshrc`, głównego pliku konfiguracyjnego `csh`:

    setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
    setenv XNLSPATH /usr/X11R6/lib/X11/nls

Zakładamy tu, że plik `XKeysymDB` i katalog `nls` znajdują się w `/usr/X11R6/lib/X11`; jeśli tak nie jest, odnajdź je i umieść tam.

Jeżeli początkowo zainstalowałeś Netscape jako port z CDROM-u (lub FTP), nie umieszczaj nowego pliku wykonywalnego w miejscu starego `/usr/local/bin/netscape`; jest to zwykły skrypt powłoki zajmujący się przygotowaniem zmiennych środowiskowych. Zamiast tego zmień nazwę nowego pliku na `netscape.bin` i zastąp poprzedni plik wykonywalny `/usr/local/netscape/netscape`.

## Własne środowisko pracy

Najważniejszym elementem środowiska pracy jest powłoka. W DOS-ie rolę powłoki pełni command.com. Powłoka zajmuje się przetwarzaniem poleceń wpisywanych w linii poleceń, jest więc pośrednikiem w komunikacji z systemem operacyjnym. Może także wykonywać skypty, podobne do znanych z DOS-a plików wsadowych, składające się z serii poleceń wykonywanych bez ingerencji użytkownika.

W FreeBSD zainstalowane są dwie powłoki: `csh` i `sh`. `csh` dobrze obsługuje linię poleceń, skrypty powinny być jednak pisane w `sh` (lub `bash`). Wpisując `echo $SHELL` możesz dowiedzieć się, z jakiej powłoki korzystasz.

Powłoka `csh` jest niezła, jednakże `tcsh` potrafi wszystko to, co `csh` i jeszcze więcej. Umożliwia wywoływanie wcześniej wpisanych poleceń za pomocą klawiszy strzałek. Pozwala uzupełniać nazwy plików przy pomocy klawisza Tab (`csh` wykorzystuje do tego Esc), jak również powrót do ostatnio odwiedzonego katalogu poleceniem `cd -`. W `tcsh` można też w prosty sposób zmienić swój znak zachęty. Wszystko to bardzo ułatwia życie.

Nową powłokę instaluje się w następujący sposób:

1. Zaintaluj powłokę w postaci portu lub pakietu. Wpisz `rehash`, a potem `which tcsh` (zakładając, że instalujesz `tcsh`), by mieć pewność, że instalacja powiodła się.

2. Działając jako root, dopisz w pliku `/etc/shells` wiersz odpowiadający nowej powłoce, w naszym przypadku `/usr/local/bin/tcsh`, i zapisz zmiany. (W przypadku niektórych portów może być to zrobione automatycznie.)

3. Aby na stałe zmienić swoją powłokę na `tcsh`, skorzystaj z polecenia `chsh`. Możesz także wpisać `tcsh` w linii poleceń, by zmienić powłokę bez powtórnego logowania się.

Zmiana powłoki roota na inną niż `sh` lub `csh` we wczesnych wersjach FreeBSD i wielu wersjach Uniksa może okazać się niebezpieczna, ponieważ może prowadzić do braku działającej powłoki w trybie jednego użytkownika. Można sobie z tym poradzić stosując `su -m` do zostania rootem, dzięki czemu możliwe jest korzystanie z `tcsh`, gdyż powłoka jest elementem środowiska. Aby takie rozwiązanie było stosowane na stałe, utwórz alias w `.tcshrc` dopisując polecenie `alias su su -m`

Podczas uruchamiania, `tcsh` odczytuje pliki `/etc/csh.cshrc` i `/etc/csh.login`, podobnie jak to robi `csh`. Ponadto wczytywane są pliki `.login` i `.cshrc`, chyba, że istnieje plik `.tcshrc`. Można go utworzyć kopiując po prostu plik `.cshrc` jako `.tcshrc`.

Gdy powłoka `tcsh` jest już zainstalowana, możesz zająć się wyborem odpowiadającego ci znaku zachęty. Szczegółowo jest to opisane w dokumentacji `tcsh`, przykładowe polecenie przedstawione poniżej wpisane do `.tcshrc` spowoduje, iż znak zachęty będzie informował o tym, ile wydałeś poleceń, która jest godzina, oraz jaki jest bieżący katalog. Na końcu pojawi się znak `>`, jeśli jesteś zwykłym użytkownikiem, lub znak `#`, jeśli jesteś rootem:

`set prompt = "%h %t %~ %# "`

Powyższy wiersz umieść w miejscu starego "set prompt", albo pod "if($?prompt) then". Poprzedni wiersz zamień w komentarz, dzięki temu będziesz mógł do niego wrócić, jeśli zechcesz. Przepisz dokładnie spacje i cudzysłowy. Aby plik `.tcshrc` został przeczytany ponownie, wpisz `source .tcshrc`.

Listę innych zmiennych środowiskowych uzyskać można korzystając z polecenia `env`. Lista zawiera domyślny edytor, program do przeglądania plików tekstowych, typ terminala i wiele innych. Jeżeli logujesz się do systemu przez sieć i jakiś program nie daje się uruchomić z powodu nieodpowiedniego terminala, przydatne może okazać się polecenie `setenv TERM vt100`.

## Na koniec

Mając uprawnienia roota, można odmontować CDROM poleceniem `/sbin/umount /cdrom`, następnie wyjąć płytę z napędu, włożyć inną i zamontować ją poleceniem `/sbin/mount_cd9660 /dev/cd0a /cdrom` (o ile cd0a odpowiada napędowi CDROM). Najnowsze wersje FreeBSD pozwalają na montowanie CDROM-u poleceniem `/sbin/mount /cdrom`.

Jeśli masz do dyspozycji niewiele miejsca na dysku, możesz skorzystać z bezpośredniego systemu plików na drugiej płycie CD FreeBSD. Jej zawartość zmienia się z każdym nowym wydaniem systemu. Spróbuj na przykład zagrać w jedną z gier umieszczonych na CDROM-ie. Przyda się przy tym `lndir`, instalowane wraz z X Window System, aby powiadomić programy gdzie znajdują się potrzebne im pliki, ponieważ są one w systemie plików `/cdrom`, a nie jak zazwyczaj w `/usr` i jego podkatalogach. Skorzystaj z `man lndir`.

## Uwagi mile widziane

Jeśli skorzystałeś z niniejszego wprowadzenia, chętnie dowiem się, czy w czymś ci ono pomogło, co było niedostatecznie wyjaśnione i czego brakowało. Dziękuję profesorowi Eugene W. Stark z SUNY-Stony Brook, oraz Johnowi Fieberowi za pomocne uwagi.

Annelise Anderson, andrsn@andrsn.stanford.edu