---
title: Wprowadzenie do FreeBSD i Uniksa
authors:
  - author: Annelise Anderson
    email: andrsn@andrsn.stanford.edu
trademarks: ["freebsd", "ibm", "microsoft", "opengroup", "general"]
---

= Wprowadzenie do FreeBSD i Uniksa
:doctype: article
:toc: macro
:toclevels: 1
:icons: font
:sectnums:
:sectnumlevels: 6
:source-highlighter: rouge
:experimental:
:images-path: articles/new-users/

ifdef::env-beastie[]
ifdef::backend-html5[]
include::shared/authors.adoc[]
include::shared/mirrors.adoc[]
include::shared/releases.adoc[]
include::shared/attributes/attributes-{{% lang %}}.adoc[]
include::shared/{{% lang %}}/teams.adoc[]
include::shared/{{% lang %}}/mailing-lists.adoc[]
include::shared/{{% lang %}}/urls.adoc[]
:imagesdir: ../../../images/{images-path}
endif::[]
ifdef::backend-pdf,backend-epub3[]
include::../../../../shared/asciidoctor.adoc[]
endif::[]
endif::[]

ifndef::env-beastie[]
include::../../../../../shared/asciidoctor.adoc[]
endif::[]

[.abstract-title]
Abstrakt

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.

'''

toc::[]

== 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 % i # są znakami gotowości (mogą wyglądać inaczej), przy czym % odpowiada zwykłemu użytkownikowi, a # kontu roota.

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

[source,shell]
....
# exit
....

Oczywiście, wydane polecenia potwierdza się wciskając kbd:[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

[source,shell]
....
# /sbin/shutdown -h now
....

By natomiast uruchomić go ponownie

[source,shell]
....
# /sbin/shutdown -r now
....

lub

[source,shell]
....
# /sbin/reboot
....

Ponowne uruchomienie można też wykonać za pomocą kbd:[Ctrl+Alt+Delete]. 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

[source,shell]
....
# 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 [.filename]#/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`

[source,shell]
....
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 kbd:[Ctrl+C], na koniec będziesz też mieć możliwość zatwierdzenia nowego użytkownika lub odrzucenia go, wpisując kbd:[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 [.filename]#/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. [.filename]#/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 kbd:[ScrollLock] i posłuż się kbd:[strzałką w górę] by przesunąć się wstecz. kbd:[ScrollLock] może być też stosowany przy przeglądaniu dokumentacji systemowej. By zakończyć przewijanie, ponownie wciśnij kbd:[ScrollLock]. Możesz wypróbować `cat` na ukrytych plikach w Twoim katalogu domowym: `cat .cshrc`, `cat .login`, `cat .profile`.

W [.filename]#.cshrc# znajdziesz aliasy dla polecenia `ls` (są bardzo wygodne). Własne aliasy możesz tworzyć modyfikując plik [.filename]#.cshrc#. Gdy chcesz udostępnić aliasy wszystkim użytkownikom, umieść je w pliku konfiguracyjnym `csh` dla całego systemu, [.filename]#/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 kbd:[Enter] by przejść dalej, kbd:[Ctrl+B] by zobaczyć poprzednią stronę, kbd:[Ctrl+F] by zobaczyć następną, kbd:[q] albo kbd:[Ctrl+C] 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.

[source,shell]
....
# periodic daily
pominięto wyniki
# periodic weekly
pominięto wyniki
# periodic monthly
pominięto wyniki
....

Jeżeli nudzi cię czekanie, wciśnij kbd:[Alt+F2] 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 [.filename]#/var/mail/root# i [.filename]#/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 [.filename]#/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 [.filename]#/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ć [.filename]#/etc/rc.conf#, możesz przejść do katalogu [.filename]#/etc# poleceniem `cd /etc` i napisać:

[source,shell]
....
# cp rc.conf rc.conf.orig
....

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

[source,shell]
....
# mv rc.conf rc.conf.orig
# cp rc.conf.orig rc.conf
....

Polecenie `mv` zachowuje oryginalną datę i właściciela pliku. Możesz już edytować [.filename]#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

[source,shell]
....
# mv rc.conf.orig rc.conf
....

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

Edycję pliku rozpoczyna się poleceniem

[source,shell]
....
# vi nazwapliku
....

Do poruszania się w tekście użyj klawiszy strzałek. Klawisz kbd:[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 kbd:[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_

kbd:[Ctrl+L]::
przerysowanie ekranu

kbd:[Ctrl+b] i kbd:[Ctrl+f]::
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 kbd:[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 [.filename]#/etc# i zostać rootem korzystając z `su`. Uruchom `vi` i zmodyfikuj plik [.filename]#/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 kbd:[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

[source,shell]
....
% man chmod | col -b > chmod.txt
....

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

[source,shell]
....
# /sbin/mount -t msdos /dev/fd0 /mnt
....

Powyższe polecenie zamontuje stację dyskietek w katalogu [.filename]#/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 [.filename]#chmod.txt# i skopiuj go na dyskietkę poleceniem:

[source,shell]
....
% cp chmod.txt /mnt
....

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

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

[source,shell]
....
% /sbin/dmesg > dmesg.txt
....

Potem można skopiować [.filename]#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 pytaniena  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

[source,shell]
....
# /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 [.filename]#/etc/printcap# oraz utworzyć katalog buforowania w [.filename]#/var/spool/output#. Jeśli drukarka jest podłączona do portu `lpt0` (oznaczonego `LPT1` w DOS-ie), być może wystarczy tylko przejść do [.filename]#/var/spool/output# i (będąc rootem) utworzyć katalog [.filename]#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 link:../../books/handbook/index.html[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 [.filename]#/# oraz (oddzielnie) [.filename]#/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 [.filename]#nazwapliku# w [.filename]#/usr# lub jego podkatalogach, skorzystaj z polecenia `find`:

[source,shell]
....
% 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 [.filename]#/# zamiast [.filename]#/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ć http://www.geek-girl.com/unix.html[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 link:../../../../index.html[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 [.filename]#cdrom/packages/index#, [.filename]#cdrom/packages/index.txt#, oraz [.filename]#cdrom/ports/index#; dokładniejsze opisy znajdują się w [.filename]#/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 [.filename]#/usr/local# (to dobre miejsce na dodatkowe programy, które mają być dostępne dla wszystkich użytkowników) poleceniem:

[source,shell]
....
# cp -R /cdrom/ports/comm/kermit /usr/local
....

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

Następnie korzystając z polecenia `mkdir` utwórz katalog [.filename]#/usr/ports/distfiles#, chyba że już taki istnieje. Sprawdź teraz, czy w katalogu [.filename]#/cdrom/ports/distfiles# znajduje się plik o nazwie odpowiadającej instalowanemu portowi. Skopiuj go do [.filename]#/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 [.filename]#/usr/local/kermit# zawierającego plik [.filename]#Makefile#. Napisz

[source,shell]
....
# make all install
....

Spowoduje to, iż wszystkie potrzebne pliki, których nie ma na CDROM-ie lub w [.filename]#/usr/ports/distfiles#, zostaną pobrane przez FTP. Jeżeli jeszcze nie skonfigurowałeś sieci, a w [.filename]#/cdrom/ports/distfiles# nie ma pliku potrzebnego do instalacji, będziesz musiał uzyskać ten plik korzystając z innego komputera i skopiować go do [.filename]#/usr/ports/distfiles# z dyskietki albo partycji DOS-a. Zajrzyj do [.filename]#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 [.filename]#/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 [.filename]#/usr/local/kermit#, odnajdź katalog zawierający [.filename]#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 [.filename]#.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ć [.filename]#./#; bez spacji po znaku ukośnika.)

Być może zechcesz ściągnąć najnowszą wersję przeglądarki Netscape z ich link:ftp://ftp.netscape.com/[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 [.filename]#/usr/local/bin# lub podobnego. Wykonaj `rehash`, oraz dodaj następujące polecenia do plików [.filename]#.cshrc# w katalogu domowym każdego użytkownika, lub (szybciej) do pliku [.filename]#/etc/csh.cshrc#, głównego pliku konfiguracyjnego `csh`:

[.programlisting]
....
setenv XKEYSYMDB /usr/X11R6/lib/X11/XKeysymDB
setenv XNLSPATH /usr/X11R6/lib/X11/nls
....

Zakładamy tu, że plik [.filename]#XKeysymDB# i katalog [.filename]#nls# znajdują się w [.filename]#/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 [.filename]#/usr/local/bin/netscape#; jest to zwykły skrypt powłoki zajmujący się przygotowaniem zmiennych środowiskowych. Zamiast tego zmień nazwę nowego pliku na [.filename]#netscape.bin# i zastąp poprzedni plik wykonywalny [.filename]#/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 kbd:[Tab] (`csh` wykorzystuje do tego kbd:[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:

[.procedure]
====
. 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ę.
. Działając jako root, dopisz w pliku [.filename]#/etc/shells# wiersz odpowiadający nowej powłoce, w naszym przypadku [.filename]#/usr/local/bin/tcsh#, i zapisz zmiany. (W przypadku niektórych portów może być to zrobione automatycznie.)
. 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ę.
====

[NOTE]
====
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 [.filename]#.tcshrc# dopisując polecenie `alias su su -m`
====

Podczas uruchamiania, `tcsh` odczytuje pliki [.filename]#/etc/csh.cshrc# i [.filename]#/etc/csh.login#, podobnie jak to robi `csh`. Ponadto wczytywane są pliki [.filename]#.login# i [.filename]#.cshrc#, chyba, że istnieje plik [.filename]#.tcshrc#. Można go utworzyć kopiując po prostu plik [.filename]#.cshrc# jako [.filename]#.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 [.filename]#.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 [.filename]#.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 [.filename]#/cdrom#, a nie jak zazwyczaj w [.filename]#/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, mailto:andrsn@andrsn.stanford.edu[andrsn@andrsn.stanford.edu]
