--- 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]