You are on page 1of 28

IDZ DO

PRZYKADOWY ROZDZIA
SPIS TRECI

KATALOG KSIEK
KATALOG ONLINE
ZAMW DRUKOWANY KATALOG

TWJ KOSZYK
DODAJ DO KOSZYKA

CENNIK I INFORMACJE
ZAMW INFORMACJE
O NOWOCIACH
ZAMW CENNIK

CZYTELNIA
FRAGMENTY KSIEK ONLINE

Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl

100 sposobw na BSD


Autor: Dru Lavigne
Tumaczenie: Marek Ptlicki (wstp, rozdz. 1 4),
Grzegorz Werner (rozdz. 5 9)
ISBN: 83-7361-867-8
Tytu oryginau: BSD Hacks
Format: B5, stron: 456
Przydatne porady dla wszystkich uytkownikw systemw z rodziny BSD
Skonfiguruj rodowisko pracy i przyspiesz dziaanie systemu
Wykorzystaj nieznane moliwoci BSD
Poznaj sposoby niestandardowej konfiguracji usug sieciowych
Zabezpiecz system przed awariami i atakami z sieci
Systemy operacyjne z rodziny BSD coraz czciej konkuruj z systemami linuksowymi.
Twrcy BSD brali udzia w tworzeniu Uniksa, a spor cz wyniesionych z tego
dowiadcze wykorzystali, piszc nowy, dostpny na licencji open source, system
operacyjny. Rne odmiany systemw z rodziny BSD znane s z elastycznoci
i wysokiego poziomu bezpieczestwa. Wykorzystuje si je w serwerach internetowych
i stacjach roboczych. Firma Apple swj najnowszy system operacyjny Mac OS X
opara na jdrze systemu BSD, co doskonale pokazuje uznanie, jakim cieszy si BSD
w brany informatycznej.
Ksika 100 sposobw na BSD przeznaczona jest dla wszystkich uytkownikw
systemw BSD, niezalenie od stopnia zaawansowania. Opisuje sposoby radzenia
sobie z przernymi zadaniami i problemami, napotykanymi w codziennej pracy.
Zawiera porady dotyczce wiersza polece, zabezpieczania systemw, ledzenia zmian
w plikach i wykonywania kopii zapasowych. Po przeczytaniu tej ksiki kady stanie si
profesjonalnym uytkownikiem systemw BSD.
Dostosowywanie rodowiska tekstowego i graficznego
Wyszukiwanie i modyfikowanie plikw
Dostp do zasobw Windows bez uycia serwera
Konfigurowanie procedur uruchamiania systemu
Zarzdzanie hasami dostpowymi
Tworzenie kopii zapasowych systemu
Administrowanie poczeniami sieciowymi i serwerem pocztowym
Zabezpieczanie systemu i detekcja wama
Tworzenie firewalla za pomoc pakietu PF
Przekonaj si, jak wiele tajemnic i ciekawych funkcji kryje w sobie system BSD

Spis treci
O Autorach....................................................................................................................................... 7
Wstp.............................................................................................................................................. 13
Rozdzia 1. Dostosowanie rodowiska uytkownika ................................................................. 17
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.

Jak najpeniejsze wykorzystanie powoki systemowej .............................................. 17


Przydatne opcje pliku konfiguracyjnego powoki tcsh.............................................. 22
Definicja kombinacji klawiszy dla powoki................................................................. 25
Wykorzystanie dowiza terminala oraz systemu X................................................. 29
Wykorzystanie myszy w terminalu.............................................................................. 33
Dzienna dawka bahostek .............................................................................................. 35
Blokada ekranu ................................................................................................................ 39
Wykorzystanie katalogu mietnika............................................................................... 42
Dostosowanie konfiguracji uytkownikw ................................................................. 45
Zarzdzanie rodowiskiem uytkownikw w wielu systemach................................. 54
Korzystanie z powoki interaktywnej........................................................................... 57
Wykorzystanie wielu wirtualnych ekranw w terminalu ........................................ 61

Rozdzia 2. Praca z plikami i systemami plikw ......................................................................... 67


13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.

Wyszukiwanie.................................................................................................................. 67
Jak najlepsze wykorzystanie programu grep .............................................................. 72
Manipulacja plikami z wykorzystaniem programu sed............................................ 76
Formatowanie tekstu w wierszu polece .................................................................... 79
Problem z separatorami.................................................................................................. 85
Korzystanie z dyskietek w formacie DOS ................................................................... 87
Dostp do zasobw systemu Windows bez uycia serwera .................................... 95
Zapobieganie przepenieniu dyskw ........................................................................... 98
Zarzdzanie plikami tymczasowymi i przestrzeni wymiany............................... 103
Odtwarzanie struktury katalogw za pomoc polecenia mtree................................ 107
Wykonywanie obrazu systemu ................................................................................... 111

Spis treci

Rozdzia 3. Mechanizmy rozruchowe i rodowisko logowania ............................................... 117


24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.

Dostosowanie menu rozruchowego ........................................................................... 117


Zabezpieczenie procesu rozruchowego ..................................................................... 122
Konfiguracja systemu pozbawionego konsoli........................................................... 125
Zdalne zapisywanie dziennikw systemowych
z systemu pozbawionego konsoli ............................................................................. 129
Usunicie komunikatu powitalnego dla pocze zdalnych .................................. 132
Zabezpieczanie hase za pomoc funkcji mieszajcych Blowfish .......................... 135
Monitorowanie zgodnoci hase z zaoon polityk bezpieczestwa ................. 139
Efektywny, przenony mechanizm zapewniajcy przestrzeganie polityki
bezpieczestwa hase................................................................................................... 145
Automatyzacja procesu generowania hase atwych do zapamitania................. 150
Uywanie hase jednorazowych.................................................................................. 154
Ograniczanie moliwoci logowania do systemu .................................................... 157

Rozdzia 4. Kopie zapasowe....................................................................................................... 163


35.
36.
37.
38.
39.
40.
41.

Wykonywanie kopii zapasowych z uyciem SMBFS .............................................. 163


Tworzenie przenonych archiww POSIX ................................................................ 166
Interaktywne tworzenie kopii ..................................................................................... 171
Wykonywanie bezpiecznych kopii za porednictwem sieci................................... 175
Automatyzacja zdalnych kopii zapasowych ............................................................. 177
Automatyzacja zrzutw bazy danych PostgreSQL .................................................. 183
Kopie zapasowe w architekturze klient-serwer z uyciem systemu Bacula ........ 186

Rozdzia 5. Sposoby na sie ...................................................................................................... 193


42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.

Ogldanie komunikatw konsoli zdalnego serwera................................................ 193


Faszowanie adresu MAC ............................................................................................ 196
Uywanie wielu konfiguracji bezprzewodowej karty sieciowej .............................. 199
Jak przetrwa katastrofaln utrat dostpu do internetu? ...................................... 204
Uczowieczanie wynikw programu tcpdump .................................................... 207
Rekordy i narzdzia DNS............................................................................................. 214
Wysyanie i odbieranie wiadomoci e-mail bez klienta poczty................................ 219
Do czego potrzebny jest sendmail?............................................................................. 223
Przetrzymywanie poczty w celu pniejszego jej dorczenia ................................ 227
Automatyzacja FTP ....................................................................................................... 229
Rozproszone wykonywanie polece .......................................................................... 233
Interaktywna zdalna administracja ............................................................................ 236

Spis treci

Rozdzia 6. Zabezpieczanie systemu......................................................................................... 241


54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.

Redukcja jdra................................................................................................................ 241


Listy kontroli dostpu we FreeBSD ............................................................................ 250
Zabezpieczanie plikw za pomoc znacznikw....................................................... 256
Zwikszanie bezpieczestwa za pomoc obligatoryjnej kontroli dostpu ........... 262
Uywanie programu mtree jako wbudowanego mechanizmu ostrzegawczego ... 265
Wykrywanie wama do systemu FreeBSD za pomoc programw
Snort, ACID i MySQL ................................................................................................. 270
Szyfrowanie dysku twardego ...................................................................................... 281
Problemy z sudo ............................................................................................................ 286
Program sudoscript ....................................................................................................... 290
Ograniczanie serwera SSH ........................................................................................... 294
Kontrolowanie filtrw IP za pomoc skryptu........................................................... 297
Zabezpieczanie sieci bezprzewodowej za pomoc programu PF .......................... 299
Automatyczne generowanie reguy zapory sieciowej ............................................. 303
Automatyczne instalowanie poprawek zwizanych z bezpieczestwem ............ 307
Wyszukiwanie wirusw w sieci z komputerami z systemem Windows.............. 311

Rozdzia 7. Zagadnienia zaawansowane ................................................................................... 315


69.
70.
71.
72.
73.
74.
75.
76.

Dostrajanie systemu FreeBSD do potrzeb rnych aplikacji .................................. 315


Ksztatowanie ruchu w systemie FreeBSD ................................................................ 320
Tworzenie awaryjnego zestawu naprawczego ......................................................... 325
Naprawianie systemu FreeBSD................................................................................... 329
Analizowanie przepenienia bufora za pomoc debugera GNU................................ 333
Konsolidowanie dziennikw serwerw WWW........................................................ 336
Skrypty interaktywne ................................................................................................... 342
Tworzenie prezentacji na wystaw branow .......................................................... 346

Rozdzia 8. Aktualizowanie systemu ......................................................................................... 351


77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.

Instalacja zautomatyzowana........................................................................................ 351


FreeBSD od zera............................................................................................................. 355
Bezpieczne scalanie zmian w katalogu /etc.............................................................. 360
Aktualizacja zautomatyzowana .................................................................................. 363
Tworzenie repozytorium pakietw ............................................................................ 367
Budowanie portu bez drzewa portw........................................................................ 370
Aktualizowanie portw za pomoc CTM.................................................................. 373
Nawigacja po systemie portw ................................................................................... 376
Instalowanie starszej wersji portu............................................................................... 380
Tworzenie wasnych skryptw startowych............................................................... 383
Automatyzowanie kompilacji pakietw NetBSD ..................................................... 386
atwe instalowanie aplikacji uniksowych w systemie Mac OS X.......................... 390
Spis treci

Rozdzia 9. Grokowanie BSD .................................................................................................. 395


89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.

Skd on to wiedzia? ..................................................................................................... 395


Tworzenie wasnych stron podrcznika man ........................................................... 398
Jak wykorzysta do maksimum strony podrcznika man? .................................... 402
Stosowanie i tworzenie at ....................................................................................... 405
Wywietlanie informacji o sprzcie ............................................................................ 410
Co dzieje si w systemie? ............................................................................................. 414
Pisownia i sowniki ....................................................................................................... 417
Kontrolowanie czasu..................................................................................................... 421
Uruchamianie aplikacji jzyka Java w trybie macierzystym .................................. 423
Automatyczne zmiany sygnatury we wiadomociach e-mail ................................ 426
Przydatne jednowierszowe polecenia ........................................................................ 428
Zabawa z systemem X .................................................................................................. 431

Skorowidz .................................................................................................................................... 435

Spis treci

Jak najpeniejsze wykorzystanie powoki systemowej

ROZDZIA PIERWSZY

Dostosowanie
rodowiska uytkownika
Sposoby 1. 12.

Uytkownicy systemw operacyjnych z rodziny Unix tworzonych na zasadach open


source (http://opensource.org) s ciekawym typem osobnikw. Lubi zaglda pod mask,
aby sprawdzi, w jaki sposb to wszystko dziaa, z nadziej odnalezienia ciekawych sposobw realizacji typowych zada informatycznych. W skrcie taki sposb postpowania
okrela si mianem hackowania.
Ta ksika dotyczy przede wszystkim systemu BSD, lecz wiele technik mona wykorzysta w dowolnym systemie operacyjnym open source. Kady przedstawiony tu sposb
stanowi po prostu demonstracj metody rozwizania powszechnego problemu z wykorzystaniem nietypowego punktu widzenia i moe by potraktowany jako punkt wyjcia
do wasnych, indywidualnych rozwiza. Jeli w danym systemie operacyjnym nie jest
dostpne narzdzie zastosowane w konkretnej poradzie, mona uy innego istniejcego
narzdzia lub stworzy wasne.
W tym rozdziale mona znale wiele informacji pozwalajcych na wykorzystanie systemu operacyjnego w jak najszerszym zakresie. Zapoznamy si z powok systemow i sposobami realizacji codziennych zada za pomoc kilku nacini klawiszy lub klikni mysz. Zostanie rwnie przedstawionych troch sposobw zabezpieczenia si przed bdami,
ktre atwo popeni, pracujc w wierszu polece. Przede wszystkim postaramy si jednak pokaza, e hackowanie systemw BSD moe by przyjemne i ciekawe. Nadszed
zatem czas, aby ustawi swj fotel przed wybranym systemem operacyjnym i rozpocz
przygod hackera.
SPOSB

1.

Jak najpeniejsze wykorzystanie powoki systemowej


Jak sta si demonem szybkoci w powoce systemowej.

W systemie BSD wikszo czasu spdza si, korzystajc z powoki, co moe by uznane
za zalet lub wad, w zalenoci od upodoba. Osoby przyzwyczajone do systemu Linux
rozczaruj si, gdy przekonaj si, e domyln powok zarwno konta uytkownika root,
jak i zwykych kont systemowych w systemach BSD nie jest bash.

Dostosowanie rodowiska uytkownika

17

SPOSB

1.

SPOSB

1.

Jak najpeniejsze wykorzystanie powoki systemowej

Nie ma jednak powodu do rozpaczy. Domylna powoka tcsh systemu FreeBSD nie ustpuje powoce bash pod wzgldem moliwoci przyspieszenia pracy za pomoc skrtw,
ktre pozwalaj uproci wiele skomplikowanych zada. Warto powici kilka chwil na
nauk tych sposobw, a z pewnoci doceni si funkcjonalno tcsh. Porad t dedykuj uytkownikom nieprzyzwyczajonym do wiersza polece oraz sabo posugujcym
si klawiatur. Unix moe okaza si o wiele atwiejszym narzdziem, ni si pocztkowo wydaje.
W systemach NetBSD oraz OpenBSD domyln powlok jest tak zwana powoka C.
Nie musi to jednak by stary, dobry tcsh czsto jest to uproszczona wersja csh,
w ktrej wikszo przedstawionych technik nie zadziaa.
Powok tcsh mona znale w kolekcjach pakietw zarwno w NetBSD,
jak i w OpenBSD.

Historia i uzupenianie polece


Trudno byoby mi pracowa bez trzech klawiszy: strzaki w gr, strzaki w d i klawisza Tab. Z tego powodu mona mnie atwo rozpozna w tumie, gdy mwi sama do siebie, narzekajc w przypadku trafienia na system, w ktrym te klawisze nie s zdefiniowane w taki sposb, jaki lubi.
W powoce tcsh strzaki w gr i w d s wykorzystywane do przegldania historii polece. Zota regua informatyki mwi: nie powiniene by zmuszany do wpisywania polecenia wicej ni jeden raz. Gdy wystpi konieczno powtrzenia polecenia, wystarczy
nacisn klawisz strzaki w gr kilka razy, a odszuka si odpowiednie polecenie. Nastpnie naley nacisn Enter i ju mona cieszy si z zaoszczdzonych nacini klawiszy.
Jeli przewinie si histori za daleko, mona si wycofa, naciskajc klawisz strzaki w d.
Klawisz Tab zosta przewidziany zarwno dla osb piszcych wolno, jak i popeniajcych
bdy literowe. Obserwacja osoby wpisujcej mudnie wielowierszowe polecenie tylko
po to, aby na kocu przekona si, e po drodze popeniony zosta bd, nie jest z reguy
przyjemnym przeyciem. Jeli taka osoba nie zdaje sobie sprawy z tego, e ma do dyspozycji histori, i prbuje to polecenie wpisa od nowa, mona rzeczywicie dosta nerwicy.
Nic dziwnego, e wiele osb nie cierpi pracowa w wierszu polece!
Tymczasem po naciniciu klawisza Tab wczane jest uzupenianie. Oznacza to, e wystarczy wpisa kilka znakw polecenia lub nazwy pliku, nacisn Tab, a powoka automatycznie uzupeni reszt. Jeli jednak po naciniciu klawisza Tab rozlegnie si pisk, oznacza to, e nie mona jednoznacznie rozstrzygn, o co chodzi. Zamy na przykad, e
prbujemy wywoa polecenie sockstat i wpiszemy:
% so

Po naciniciu klawisza Tab goniczek komputera zapiszczy, poniewa od liter so rozpoczyna si wiele polece systemowych. Jeli jednak dopiszemy wicej liter, wynik bdzie
lepszy:
% soc

18

Dostosowanie rodowiska uytkownika

Jak najpeniejsze wykorzystanie powoki systemowej

Po naciniciu klawisza Tab powoka prawidowo rozwinie polecenie:


% sockstat

Edycja i nawigacja w wierszu polece


Powoka obsuguje wiele innych kombinacji klawiszy, dziki ktrym mona przyspieszy
i uproci prac. Jeli przed chwil skoczylimy prac w programie edytora tekstw, za
pomoc klawisza strzaki w gr przywrcimy polecenie uruchamiajce edycj:
% vi dokumenty/biezace/bardzodluganazwa

Mona bez trudu sprawdzi liczb znakw w pliku, zastpujc nazw edytora odpowiednim poleceniem:
% wc dokumenty/biezace/bardzodluganazwa

Do nazwy vi mona przej, naciskajc odpowiednio klawisz strzaki w lewo, lecz prociej bdzie nacisn tylko raz klawisz a, przytrzymujc klawisz Ctrl. Spowoduje to przesunicie kursora na pocztek wiersza mona bdzie od razu zmieni nazw polecenia
na odpowiednie. Dla uproszczenia warto zwrci uwag, e a jest pierwsz liter alfabetu,
zatem kombinacja klawisza a z klawiszem Ctrl powoduje przejcie do pierwszego znaku
w wierszu polece powoki tcsh.
Do wykonania polecenia nie jest konieczne wielokrotne naciskanie klawisza strzaki w prawo w celu ustawienia kursora na kocu wiersza. Gdy polecenie zostanie dostosowane do
potrzeb, mona nacisn Enter niezalenie od pozycji kursora.
Czasem pojawi si potrzeba przeniesienia kursora na koniec wiersza polece, aby na
przykad dopisa tam odpowiednie opcje. Zamy, e konieczne bdzie sprawdzenie liczby znakw w dwch plikach, w tym w ostatnio edytowanym. Mamy wic nasze ostatnie
polecenie (kursor jest ustawiony za wpisanymi dopiero znakami wc):
% wc dokumenty/biezace/bardzodluganazwa

Po przytrzymaniu klawisza Ctrl i naciniciu klawisza e kursor zostanie przeniesiony na


koniec wiersza, mona wic bez trudu dopisa reszt polecenia (ang. end, czyli koniec).
Jeli w rodku dugiego polecenia zdecydujemy si, aby zrezygnowa z wprowadzonych
poprawek i zacz od pocztku, wystarczy nacisn Ctrl+u (ang. undo, czyli cofnij zmiany).
Dla uytkownikw systemw Cisco lub PIX IOS: wymienione wyej sposoby
dziaaj w wierszu polece IOS.

Polecenie cd rwnie zawiera wbudowane skrty. Najprostszy z nich polega na przejciu


do katalogu uytkownika. W tym celu wystarczy wywoa polecenie cd bez parametrw:
% cd

Dostosowanie rodowiska uytkownika

19

SPOSB

1.

SPOSB

1.

Jak najpeniejsze wykorzystanie powoki systemowej

To proste i wygodne. Czy mona jednak przej do poprzedniego katalogu? Zamy, e


z katalogu /usr/share/doc/en_US. ISO8859-l/books/handbook przejdziemy do /usr/X11R6/etc/
X11. Chcemy wrci do pierwszego z tych katalogw. Z pewnoci niewielu Czytelnikw
chciaoby wprowadza ca t dug ciek. Mona oczywicie skorzysta z historii i odszuka tam polecenie, za pomoc ktrego przeszlimy tam pierwszy raz, lecz prawie na
pewno wyszukanie w historii wymaga nacinicia wikszej liczby klawiszy ni rczne
wpisanie cieki od nowa.
Na szczcie jest na to sposb. Wystarczy wpisa nastpujce polecenie:
% cd -

Ponowne wykonanie tego polecenia spowoduje powrt do drugiego z katalogw i tak na


przemian. Zmiany mona obserwowa w tekcie zachty powoki (ang. prompt). Jeli tekst
zachty nie zawiera informacji o biecej ciece, nie stanowi to problemu przejdziemy
do tego za chwil w sposobie 2. Przydatne opcje pliku konfiguracyjnego powoki tcsh.

Zaawansowane wykorzystanie historii


Potrafimy ju porusza si szybko w historii polece, warto jednak nieco pogbi temat.
Ile razy zdarzao si nam wyszukiwa ostatnie polecenie po to tylko, by je nieco poprawi? Za przykad niech posuy nastpujcy scenariusz zdarze.
W powyszych przykadach utworzyam plik. Zamiast przywoa z historii polecenie z nazw pliku by je zmodyfikowa, w celu sprawdzenia liczby znakw w tym pliku mona
wywoa nastpujce polecenie:
% wc !$
wc dokumenty/biezace/bardzodluganazwa
19
97
620 dokumenty/biezace/bardzodluganazwa

Opcja !$ wskazuje, e powoka ma pobra ostatni parametr z ostatnio wywoanego polecenia. Poleceniem tym byo, jak pamitamy:
% vi dokumenty/biezace/bardzodluganazwa

Z tego powodu !$ zostao zastpione ciek do pliku z poprzednio wywoanego polecenia.


Znak wykrzyknika (!) ma wiele innych poytecznych zastosowa zwizanych z wykorzystaniem poprzednio wywoanych polece. Zamy, e przez ostatni godzin z mozoem wykonywalimy polecenia, ktrych nazbierao si kilkanacie. Chcemy powtrzy
niektre z nich. Mona oczywicie wciska klawisz strzaki w gr kilkadziesit razy, a
trafi si na odpowiednie polecenie. Mona jednak unikn poszukiwa, poniewa wyrczy nas w tym znak !.
Chcemy na przykad powtrzy polecenie mailstats. W tym celu po znaku ! naley
wpisa odpowiedni liczb znakw, aby jednoznacznie okreli polecenie z historii:
$ !ma

20

Dostosowanie rodowiska uytkownika

Jak najpeniejsze wykorzystanie powoki systemowej

Znak ! wybierze z historii ostatnie polecenie rozpoczynajce si od zadanego cigu znakw (ma). Jeli jednak po poleceniu mailstats byo wykonane polecenie man, powoka
tcsh powtrzy to ostatnie. Aby temu zapobiec, okrelmy polecenie bardziej wyranie:
% !mai

Jeli chcemy unikn metody prb i bdw, warto sprawdzi histori, wykorzystujc nastpujce polecenie:
% history

Dla szczeglnie leniwych przewidziano nastpujcy skrt:


% h

Kade polecenie w historii ma swj numer. Polecenie mona wywoa, wpisujc jego
numer poprzedzony znakiem wykrzyknika. W naszym przykadzie chcemy powtrzy
polecenie mailstats:
% h
165
166
167
168

16:51
16:51
16:52
16:54

mailstats
sockstat
telnet localhost 25
man sendmail

% !165

Wyciszanie sygnalizacji bdu automatycznego uzupeniania polece


Ostatnia porada w tym podrozdziale bdzie szczeglnie przydatna dla tych, ktrych denerwuj piski pojawiajce si w przypadku, gdy powoka nie potrafi jednoznacznie uzupeni polecenia. Przyda si te tym, ktrzy nie pamitaj prawidowej pisowni polecenia
lub nazwy pliku. Wpisujemy na przykad nastpujcy fragment polecenia:
% ls -l b

Nastpnie przytrzymujemy klawisz Ctrl i wciskamy d:


backups/
% ls -l b

bin/

book/

boring.jpg

Pojawi si wszystkie kombinacje nazw plikw lub katalogw rozpoczynajcych si od


znaku b, a kursor powrci w to samo miejsce. Zamy, e chcemy sprawdzi szczegy
pliku boring.jpg, uzupenimy wic odpowiednio znaki, aby funkcja automatycznego uzupeniania znalaza odpowiedni nazw pliku:
% ls -l bor

Teraz wystarczy nacisn klawisz Tab.

Zobacz rwnie:
man tcsh.
Dostosowanie rodowiska uytkownika

21

SPOSB

1.

SPOSB

2.

Przydatne opcje pliku konfiguracyjnego powoki tcsh


SPOSB

2.

Przydatne opcje pliku konfiguracyjnego powoki tcsh


Jak uczyni z powoki atwe w obsudze narzdzie.

Gdy ju postawi si pierwsze kroki w powoce, warto wykorzysta jej plik konfiguracyjny, aby usprawni i uprzyjemni prac. Dobrym punktem pocztkowym moe by tekst
zachty (ang. prompt).

Zaprzganie do pracy tekstu zachty


Domylny tekst zachty powoki tcsh zawiera jedynie znak % (podczas logowania jako
zwyky uytkownik) lub nazwahosta# (w przypadku zalogowania na koncie root). Pomaga to zorientowa si, kiedy jestemy zalogowani jako superuytkownik, lecz powoka
potrafi znacznie wicej.
Kady uytkownik w systemie, w tym superuytkownik, posiada w swoim katalogu plik
.cshrc. Moje ustawienia tekstu zachty zapisane w tym pliku s nastpujce:
dru@: grep prompt ~/.cshrc
if ($?prompt) then
set prompt = "%B%n@%~%b: "

Nie jest to domylne ustawienie systemowe, ale uywam go ju od kilku lat. Dopuszczalne opcje konfiguracji tekstu zachty atwo zrozumie, lecz przydaje si tu lista dostpnych
opcji z opisami. S one objanione w podrczniku systemowym man cshrc aby si
do nich dokopa, wykonamy nastpujce polecenia:
dru@: man cshrc
/prompt may include

Po wywoaniu podrcznika systemowego posuylimy si wyszukiwaniem (uaktywnianym klawiszem /). Poszukujemy fragmentu prompt may include, ktry wystpuje
w czci dotyczcej opcji tekstu zachty.
Definicja wykorzystywanego przeze mnie tekstu zachty jest nastpujca:
set prompt = "%B%n@%~%b: "

To do zagmatwane dla uproszczenia rozmy t definicj na skadowe, ktre s


przeanalizowane w tabeli 1.1.
Dziki temu tekstowi zachty nigdy nie ma problemu z identyfikacj nazwy uytkownika
oraz biecego katalogu. W tekcie zachty mona rwnie wykorzysta nazw komputera, do ktrego jestemy zalogowani (co moe by przydatne w przypadku zdalnej administracji). W tym celu w definicji tekstu zachty naley umieci sekwencj %M lub %m.

22

Dostosowanie rodowiska uytkownika

Przydatne opcje pliku konfiguracyjnego powoki tcsh


Tabela 1.1. Omwienie elementw definicji przykadowego tekstu zachty
Sekwencja znakw

Znaczenie

"

Pocztek definicji tekstu zachty

%B

Wczenie pogrubienie

%n

Nazwa uytkownika

Znak separatora, uatrakcyjniajcy napis zachty

%~

Wypisuje biecy katalog. Sekwencja ta ma podobne dziaanie do %/


z t rnic, e pena cieka do katalogu uytkownika zostaje skrcona
do znaku ~

%b

Wycza pogrubienie

Znak dwukropka ktrego uywam by oddzieli tekst zachty od tekstu


wprowadzanego przez uytkownika

"

Koniec definicji tekstu zachty

Przeczanie si na konto superuytkownika


Plik .cshrc superuytkownika (umieszczony w katalogu /root) zawiera identyczn
definicj napisu zachty. To wietna okazja, aby ujawni pewn wan cech polecenia su, wykorzystywanego do przeczania si pomidzy uytkownikami. Zamy, e jestemy zalogowani jako uytkownik dru. Wiersz polece ma nastpujc posta:
dru@/usr/ports/net/ethereal:

Przeczamy si na konto superuytkownika. Zwrmy uwag na posta wiersza


polece:
dru@/usr/ports/net/ethereal: su
Password:
dru@/usr/ports/net/ethereal:

Nic si nie zmienio. Wywoanie polecenia whoami spowoduje jeszcze wiksze


zamieszanie:
dru@/usr/ports/net/ethereal: whoami
dru

Prawd ujawnia dopiero polecenie id:


dru@/usr/ports/net/ethereal: id
uid=0(root) gid=0(wheel) groups=0(wheel), 5(operator)

Okazuje si, e domylne wywoanie polecenia su nie powoduje zalogowania si na


konto root. Po prostu przyznawane s przywileje konta root, natomiast domylne
ustawienia oryginalnego uytkownika (w tym jego ustawienia powoki) nadal
obowizuj.

Dostosowanie rodowiska uytkownika

23

SPOSB

2.

SPOSB

2.

Przydatne opcje pliku konfiguracyjnego powoki tcsh

Aby naprawd przeczy si na konto superuytkownika, naley wywoa polecenie su z opcj -l:
dru@/usr/ports/net/ethereal: su -l
Password:
root@~: whoami
root
root@~: id
uid=0(root) gid=0(wheel) groups=0(wheel), 5(operator)

Zachcam do eksperymentowania z rnymi kombinacjami sekwencji formatowania napisu zachty, a do uzyskania podanego wyniku. Mona wykorzystywa wiele cech,
w tym informacje o dacie i godzinie, jak rwnie numery polece w historii [Sposb 1.].
Moliwe jest rwnie nadawanie atrybutw graficznych, jak migotanie czy podkrelenie
znakw tekstu zachty.

Ustawianie zmiennych powoki


Definicja tekstu zachty jest przykadem zmiennej powoki. Istnieje wiele innych zmiennych wpywajcych na funkcjonowanie powoki. Definiuje si je w pliku .cshrc. Aby odszuka w podrczniku systemowym odpowiednie opcje, naley posuy si nastpujcym sposobem:
dru@~: man cshrc
/variables described

Jak wskazuje nazwa, zmienne powoki maj wpyw wycznie na polecenia wbudowane
w powok. Nie naley myli zmiennych powoki ze zmiennymi rodowiska, ktre maj
wpyw na cae rodowisko pracy i kade wywoywane polecenie.
Zmienne rodowiska w pliku ~/.cshrc mona pozna po tym, e ich nazwy s zapisane
wielkimi literami i s deklarowane za pomoc polecenia setenv. Nazwy zmiennych powoki s natomiast zapisane maymi literami i s deklarowane za pomoc polecenia set.
Zmienn powoki mona wczy za pomoc polecenia set, rwnie wydawanego z wiersza polece. Aby usun tak zmienn, naley zastosowa polecenie unset. Zmienne
tego typu maj wpyw wycznie na biec sesj i jej sesje potomne mona eksperymentowa z rnymi ustawieniami bez obaw o to, e co zostanie trwale popsute w systemie. W przypadku problemw wystarczy wylogowa si, po czym ponownie zalogowa
i wszystko wrci do normy.
Jeli jak zmienn zechcemy ustawi na stae, naley wpisa jej deklaracj w pliku ~/.cshrc
w pobliu domylnych deklaracji zmiennych powoki (rozpoczynajcych si poleceniem
set). Przyjrzyjmy si najciekawszym z nich.
Jeli kogo zaciekawi efekt kombinacji klawiszy Ctr+d z podrozdziau Jak sta si demonem szybkoci w powoce systemowej [Sposb 1.], z pewnoci jeszcze bardziej polubi
t opcj:
set autolist

24

Dostosowanie rodowiska uytkownika

Przydatne opcje pliku konfiguracyjnego powoki tcsh

Teraz po naciniciu klawisza Tab, przy braku moliwoci wykonania jednoznacznego


dopenienia, nie rozlegnie si pisk. Zamiast tego zostanie wypisana lista dostpnych moliwoci. Nie ma potrzeby korzystania z kombinacji Ctrl+d!
Kolejna opcja moe uratowa przed niebezpieczestwem utraty danych wskutek nieuwagi:
set rmstar

Dziaanie tej opcji sprawdzimy na utworzonych w tym celu katalogach i plikach:


dru@~: mkdir test
dru@~: cd test
dru@~/test: touch a b c d e

Usumy teraz pliki z katalogu test:


dru@~/test: rm *
Do you really want to delete all files? [n/y]

Tekst zachty informuje o katalogu biecym, mam wic moliwo zastanowienia si,
czy rzeczywicie usuwane przeze mnie pliki s tymi, ktrych chc si pozby.
Osoby podatne na popenianie literwek powinny wzi rwnie pod uwag nastpujc opcj:
set correct=all

Powoka zareaguje na bdy literowe, sugerujc prawidow wersj:


dru@~: cd /urs/ports
CORRECT>cd /usr/ports

(y|n|e|a)?

Po naciniciu klawisza y (ang. yes) zaakceptujemy poprawion pisowni polecenia i zostanie ono wykonane przez powok. Po naciniciu klawisza n (ang. no) zostanie uruchomione polecenie napisane bdnie. Nacinicie klawisza e (ang. edit) spowoduje powrt
do edycji wiersza polece. W tym przypadku najlepiej bdzie zatwierdzi poprawion
pisowni, poniewa sugestia powoki jest waciwa. Jeli jednak w wyniku sugestii powoki spanikujemy, moemy zrezygnowa z dalszych dziaa, naciskajc klawisz a (ang.
abort), co spowoduje anulowanie operacji i przejcie do pustego wiersza polece.
Bardziej leniwi mog wykorzysta nastpujc opcj:
set implicitcd

Od tej pory nie bdzie potrzeby wpisywania polecenia cd. Aby zmieni katalog biecy,
wystarczy wprowadzi nazw katalogu i nacisn Enter.

Dostosowanie rodowiska uytkownika

25

SPOSB

2.

SPOSB

3.

Definicja kombinacji klawiszy dla powoki


SPOSB

3.

Definicja kombinacji klawiszy dla powoki


Jak wytresowa powok do wykonywania polece w odpowiedzi na nacinicie klawiszy.

Kady zapewne mia okazj sysze pochway uytkownikw systemu Windows dotyczce
zalet konfigurowania kombinacji klawiszy w aplikacjach. Zapewne niejeden z Czytelnikw sam mia okazj korzysta z klawiatur zawierajcych specjalizowane klawisze, wywoujce okrelone funkcje systemu. Jednak rwnie w systemach Unix mona tak skonfigurowa system, aby w odpowiedzi na nacinicia klawiszy lub ich kombinacji byy
wykonywane okrelone operacje.
Jednym ze sposobw uzyskania takiej funkcjonalnoci jest wbudowane w powok tcsh
polecenie bindkey. Jak sugeruje nazwa, polecenie to suy do kojarzenia operacji z okrelonymi kombinacjami klawiszy. Aby sprawdzi aktualnie zdefiniowane powizania, wystarczy wywoa polecenie bindkey bez parametrw. Wynik dziaania tego polecenia
zajmuje kilka stron ekranowych, zamieszczam jedynie niewielki ich wybr. Niektre z tych
skrtw s ju znane z podrozdziau Jak sta si demonem szybkoci w powoce systemowej [Sposb 1.].
Standard key bindings
"^A"
-> beginning-of-line
"^B"
-> backward-char
"^E"
-> end-of-line
"^F"
-> forward-char
"^L"
-> clear-screen
"^N"
-> down-history
"^P"
-> up-history
"^U"
-> kill-whole-line
Arrow key bindings
down
-> history-search-forward
up
-> history-search-backward
left
-> backward-char
right
-> forward-char
home
-> beginning-of-line
end
-> end-of-line

Znak ^ oznacza, e naley przytrzyma klawisz Ctrl. Na przykad kombinacja Ctrl+l spowoduje wyczyszczenie ekranu (operacja clear-screen), co jest odpowiednikiem polecenia
clear. Nie ma znaczenia, czy w kombinacji klawiszy zostanie wykorzystana litera maa
czy wielka.

Utworzenie dowizania
Jedno z moich ulubionych dowiza nie jest skonfigurowane w domylnych ustawieniach
powoki. Chodzi o operacj complete-word-fwd. Przed zdefiniowaniem dowizania naley
sprawdzi, ktre z kombinacji klawiszy s ju zajte:
dru@~: bindkey | grep
"^G"
-> is
"\3O5"
-> is
"\3O7"
-> is
<snip>

26

undefined
undefined
undefined
undefined

Dostosowanie rodowiska uytkownika

Definicja kombinacji klawiszy dla powoki

Cho operacj mona dowizywa rwnie do kodw numerycznych, nie uwaam takiego rozwizania za wygodne. Jednak dostpna kombinacja Ctrl+g doskonale nada si do
tego celu. Sprawdmy, co si stanie po zdefiniowaniu dowizania:
dru@~: bindkey "^G" complete-word-fwd

Brak komunikatu po wywoaniu tego polecenia sygnalizuje, e operacja zakoczya si poprawnie. Gdy po wpisaniu ls -l /etc/ zostanie nacinita kombinacja klawiszy Ctrl+g,
kolejno zaczn uzupenia si kolejne pozycje z katalogu /etc:
ls
ls
ls
ls

-l
-l
-l
-l

/etc/COPYRIGHT
/etc/X11
/etc/aliases
/etc/amd.map

Dziki temu mona przejrze pasujce pozycje a do momentu, gdy natrafimy na waciw. Jeli znamy pierwsz liter nazwy pliku z katalogu /etc, moemy jeszcze przyspieszy
przeszukiwanie. Zamy, e poszukujemy pliku o nazwie rozpoczynajcej si na liter a:
ls
ls
ls
ls
ls
ls

-l
-l
-l
-l
-l
-l

/etc/a
/etc/aliases
/etc/amd.map
/etc/apmd.conf
/etc/auth.conf
/etc/a

Gdy przejrzymy wszystkie dostpne dopasowania, powoka przywrci oryginalnie wpisany fragment polecenia i rozlegnie si pisk ostrzegawczy.
Jeli wolimy przecza dopasowania wstecz, zamiast operacji complete-word-fwd naley
dowiza do kombinacji klawiszy operacj complete-word-back.
Za pomoc polecenia bindkey mona zdefiniowa dowizanie kombinacji klawiszy do
dowolnej operacji zrozumiaej dla powoki. List takich operacji mona pozna, wykorzystujc nastpujc technik:
dru@~ man csh
/command is bound

Oczywicie list zdefiniowanych powiza wypisujemy, wywoujc polecenie bindkey


bez parametrw. Mona rwnie odczyta dowizanie okrelonej kombinacji klawiszy.
W tym celu naley poda poszukiwan kombinacj klawiszy jako jedyny parametr polecenia bindkey. Aby sprawdzi dowizanie kombinacji Ctrl+g, posuymy si nastpujcym poleceniem:
dru@~: bindkey "^G"
"^G"
->
complete-word-fwd

Dostosowanie rodowiska uytkownika

27

SPOSB

3.

SPOSB

3.

Definicja kombinacji klawiszy dla powoki

Okrelanie tekstw polece


Na szczcie nie jestemy ograniczeni wycznie do zdefiniowanej z gry listy operacji
powoki (dostpnej w podrczniku systemowym man csh). Znacznik -s polecenia bindkey pozwala zdefiniowa tekst polecenia systemowego, ktre mona powiza z kombinacj klawiszy. Zdefiniujmy teraz powizanie kombinacji Ctrl+w z wywoaniem tekstowej przegldarki WWW lynx:
dru@~: bindkey -s "^W" "lynx\n"

Litera W zostaa wybrana z powodu skojarzenia z WWW. Dlaczego po nazwie polecenia


znalaza si sekwencja znakw \n? Ot sygnalizuje ona powoce, e ma zasymulowa
nacinicie klawisza Enter. Dziki temu wcinicie kombinacji klawiszy Ctrl+w spowoduje natychmiastowe uruchomienie przegldarki lynx.
Powysze polecenie spowoduje zastpienie domylnego dowizania kombinacji Ctrl+w.
Mona zatem zdefiniowa wasne dowizania, lepiej przystosowane do indywidualnych
potrzeb. Jeli na przykad nie zdarza nam si wykorzystywa operacji obsugiwanej przez
domylne dowizanie kombinacji Ctrl+j, mona je z powodzeniem zmodyfikowa zgodnie z wasnymi potrzebami.
Dowiza jest wiele, zatem przejrzenie caej listy zdefiniowanych kombinacji moe by
utrudnione. Jeli jednak wystarcz jedynie kombinacje z klawiszem Ctrl, za pomoc nastpujcego polecenia mona skrci list dowiza:
dru@~: bindkey | head -n 28

Podobnie jak w przypadku innych modyfikacji ustawie powoki, eksperymenty z poleceniem bindkey proponuj przeprowadza poprzez wywoywanie go bezporednio
z wiersza polece. Jeli powstan problemy, zawsze bdzie mona wylogowa si i zalogowa ponownie. Gdy trafimy na dowizanie, ktre wyda si uyteczne, naley skonfigurowa je na stae. W tym celu odpowiednie wywoanie polecenia bindkey zapisujemy
w pliku .cshrc. Oto przykad:
dru@~:cp ~/.cshrc ~/.cshrc.orig
dru@~:echo 'bindkey "^G" complete-word-fwd' >> ~/.cshrc

Zwracam uwag na konieczno wykonania kopii zapasowej pliku .cshrc, na wypadek,


gdyby co si nie udao. Kluczowy jest tutaj zastosowany w drugim poleceniu operator >>.
Gdybym uya operatora >, usunabym ca zawarto pliku .cshrc, zastpujc j jednym wywoaniem polecenia bindkey. Nie zalecam testowania operatora > z jakimkolwiek plikiem zawierajcym dane, ktre chcemy zachowa.
Przy okazji: polecenie set noclobber pozwala zapobiec omykowemu nadpisaniu pliku
wskutek pominicia jednego znaku > w operacji przekierowania do pliku wyjcia z polecenia. Gdy po jakim czasie pojawi si nastpujcy komunikat, bdziemy mieli pewno,
e wanie udao si unikn utraty danych zapisanych w pliku:
.cshrc: File exists.

28

Dostosowanie rodowiska uytkownika

Wykorzystanie dowiza terminala oraz systemu X

Zobacz rwnie:
man tcsh;
Przydatne opcje pliku konfiguracyjnego powoki tcsh [Sposb 2.].
SPOSB

4.

Wykorzystanie dowiza terminala oraz systemu X


Wykorzystanie moliwoci terminala.

Nie tylko powoka tcsh daje moliwo definiowania skrtw klawiszowych. Terminal
systemu FreeBSD rwnie udostpnia t moliwo poprzez odpowiednie skonfigurowanie sterownika klawiatury za pomoc programu kbdcontrol. Niestety opcja ta nie jest
dostpna w systemie NetBSD ani OpenBSD. W tych ostatnich mona jednak wykorzysta
odwzorowania klawiatury w systemie X, opisane w dalszej czci tego podrozdziau.

Tworzenie tymczasowych odwzorowa


Zaczniemy od eksperymentw z tymczasowymi odwzorowaniami. Skadnia definicji odwzorowania klawiatury za pomoc polecenia kbdcontrol jest nastpujca:
kbdcontrol -f kod_liczbowy "polecenie"

Tabela 1.2 zawiera list dostpnych kodw wraz z objanieniami zwizanych z nimi kombinacji klawiszy.
Ostatnie trzy kombinacje klawiszy mog nie by dostpne, w zalenoci od modelu posiadanej klawiatury. Moja klawiatura firmy Logitech posiada klawisz z logo Windows
umieszczony obok lewego klawisza Ctrl to wanie lewy klawisz specjalny GUI. Drugi
taki sam klawisz znajduje si obok prawego klawisza Alt; to jest wanie prawy specjalny
klawisz GUI. Obok niego znajduje si klawisz z logo przypominajcym menu z ikon
wskanika myszy jest to klawisz Menu.
Znamy ju dostpne kody klawiszy, zdefiniujmy wic wywoanie programu lynx po naciniciu klawisza Menu:
% kbdcontrol -f 64 "lynx"

Polecenie musi by ujte w cudzysowach i musi znajdowa si w ciece. Mona co


prawda poda je z pen ciek, lecz wkrtce poznamy pewne niekorzystne ograniczenie zwizane z t opcj.
Jeli po wywoaniu powyszego polecenia naciniemy klawisz Menu w terminalu, zostanie
wpisane polecenie lynx. Wystarczy nacisn klawisz Enter, aby uruchomi przegldark.
Na pocztku wymg potwierdzenia polecenia klawiszem Enter moe wyda si nieco
kopotliwy, lecz z czasem mona doceni t cech. Dziki temu unikniemy na przykad wywoania niewaciwego polecenia wskutek pomyki, gdy zapomnimy, ktre kombinacje
klawiszy zostay przypisane do poszczeglnych polece.

Dostosowanie rodowiska uytkownika

29

SPOSB

4.

SPOSB

4.

Wykorzystanie dowiza terminala oraz systemu X


Tabela 1.2. Kody klawiszy
Liczba

Kombinacja klawiszy

1,2, 12

F1,F2, F12

13,14, 24

Shift+F1, Shift+F2, Shift+F12

25, 26, 36

Ctrl+F1, Ctrl+F2, Ctrl+F12

37, 38, 48

Shift+Ctrl+F1, Shift+Ctrl+F2, Shift+Ctrl+F12

49

Home

50

Strzaka w gr

51

Page Up

52

(minus) na klawiaturze numerycznej (wyczony Num Lock)

53

Strzaka w lewo (dziaa rwnie w edytorze)

54

5 na klawiaturze numerycznej (wyczony Num Lock)

55

Strzaka w prawo

56

+ (plus) na klawiaturze numerycznej (wyczony Num Lock)

57

End

58

Strzaka w d (ma wpyw na obsug historii powoki csh)

59

Page Down

60

Ins

61

Del

62

Lewy klawisz specjalny GUI (ikona Windows obok lewego klawisza Ctrl)

63

Prawy klawisz specjalny GUI (ikona Windows obok prawego klawisza Alt)

64

Menu (ikona menu obok prawego klawisza Ctrl)

Sprawdmy, co si stanie, gdy nieco zmodyfikujemy wywoanie odwzorowania:


% kbdcontrol -f 64 "lynx www.google.pl"
kbdcontrol: function key string too long (18 > 16)

Definiujc wasne odwzorowania, naley pamita, e polecenie nie moe by dusze ni


16 znakw. Poza tym ograniczeniem mona zdefiniowa zupenie dowolne polecenia.

Dowizania powoki a dowizania terminala


Zanim przejdziemy dalej, warto porwna dowizania kombinacji klawiszy na poziomie
powoki, ktre poznalimy w podrozdziale Definicja kombinacji klawiszy dla powoki
[Sposb 3.], z dowizaniami kombinacji klawiszy przedstawionymi w tym podrozdziale.
Jedn z zalet polecenia kbdcontrol jest moliwo definicji dowiza klawiszy w dowolnym terminalu, niezalenie od rodzaju powoki. Druga zaleta polega na tym, e dowizania mona zdefiniowa dla dowolnego klawisza na klawiaturze. Dowizania kombinacji
klawiszy na poziomie powoki mog by jednak nieco skomplikowane, jeli zdecydujemy si wyj poza schemat Ctrl+litera.
30

Dostosowanie rodowiska uytkownika

Wykorzystanie dowiza terminala oraz systemu X

Odwzorowania na poziomie terminala posiadaj ograniczenia, ktre nie dotycz odwzorowa powoki tcsh. W przypadku powoki nie istnieje limit 16 znakw, dziki czemu
nie ma problemu z penymi ciekami do programw i plikw. W atwy sposb mona te
wymusi na powoce wyrczenie nas w naciniciu klawisza Enter, aby natychmiast wywoa dowizane polecenie.
Dowizania na poziomie terminala maj zastosowanie wycznie w terminalu biecego
uytkownika. Uytkownicy zalogowani na innych terminalach w systemie nie bd dowiadczali modyfikacji odwzorowa. Jeli jednak zmiany zostan wprowadzone w pliku
rc.conf (co jest moliwe wycznie z konta superuytkownika), bd one dotyczyy wszystkich uytkownikw. Dowizania odbywaj si na poziomie terminala, wic dopki praca
odbywa si na tym samym terminalu, niczego nie zmieni nawet zalogowanie si na konto
innego uytkownika (np. za pomoc polecenia su).

Inne uwagi dotyczce dowiza


Decydujc si na form dowiza klawiszy, naley wzi pod uwag kilka informacji.
Uytkownicy stosujcy tcsh i korzystajcy z historii [Sposb 1.] rozczaruj si, gdy
przedefiniuj klawisze strzaek w gr i w d. Modyfikacja znaczenia klawiszy strzaek
w prawo i w lewo rwnie moe sprawi problemy uytkownikom wykorzystujcym te
klawisze do nawigacji, na przykad w edytorze. Jeli z systemem FreeBSD pracujemy lokalnie, klawisze F1 F8 s wykorzystywane do przeczania si pomidzy terminalami
wirtualnymi, a F9 obsuguje terminal trybu graficznego GUI. Klawisze F10 F12 s niewykorzystane.
Jeli podczas eksperymentw zdarzy si zdefiniowa szczeglnie niewygodne odwzorowania klawiszy, mona przywrci odwzorowania do ustawie domylnych za pomoc jednego polecenia:
% kbdcontrol -F

Jeli uda si zdefiniowa szczeglnie poyteczne odwzorowanie, warto skonfigurowa je na


stae. Posiadacze uprawnie superuytkownika mog pokusi si o dodanie odpowiednich
ustawie w pliku /etc/rc.conf (z zachowaniem odpowiedniej rozwagi). Poniej przedstawiam
dwa odwzorowania. Pierwsze z nich dodaje wywoanie polecenia lynx po naciniciu
klawisza Menu, drugie kojarzy polecenie startx z lewym klawiszem specjalnym GUI:
keychange="64 lynx"
keychange="62 startx"

Ustawienia bd dotyczyy wszystkich uytkownikw systemu. Jeli kto preferuje indywidualne ustawienia dla jednego uytkownika, moe wpisa odpowiednie polecenia
kbdcontrol do pliku konfiguracyjnego powoki. Ponisze dwa wiersze dopisaam do
swojego pliku .cshrc przed ostatnim wierszem zawierajcym instrukcj endif:
kbdcontrol -f 64 "lynx"
kbdcontrol -f 62 "startx"

Dostosowanie rodowiska uytkownika

31

SPOSB

4.

SPOSB

4.

Wykorzystanie dowiza terminala oraz systemu X

Wykorzystanie odwzorowa klawiszy w systemie X


Omwione konfiguracje s bardzo wygodne, lecz co si stanie z nowo odwzorowanymi
klawiszami w sesji X Window? Proponuj sprbowa, ale od razu ostrzegam, e to nic
nie da. Nie rozlegnie si nawet ostrzegawczy pisk pojawiajcy si przy bdach wystpujcych podczas pracy w powoce. Dzieje si tak z tej przyczyny, e urzdzenia wejcia-wyjcia podczas sesji X s obsugiwane niezalenie przez protok X.
Pracujc w sesji X, mamy natomiast moliwo zdefiniowania wasnych dowiza klawiszy; do tego celu suy kilka rnych mechanizmw. Jeden z nich jest wbudowany w menederze okien. Wikszo nowoczesnych menederw okien oferuje graficzne narzdzia
do konfiguracji skrtw klawiszowych. Moim ulubionym narzdziem jest aplikacja xbindkeys_config, dostpna w kolekcji portw [Sposb 84.].
# cd /usr/ports/x11/xbindkeys_config
# make install clean

Ten port wymaga wczeniejszej instalacji portu xbindkeys:


# cd /usr/ports/x11/xbindkeys
# make install clean

Zamiast kompilowa obydwa porty, mona dopisa nastpujcy wiersz w pliku


/usr/ports/x11/xbindkeys_config/Makefile:
BUILD_DEPENDS=

xbindkeys:${PORTSDIR}/x11/xbindkeys

To spowoduje, e wystarczy wykona polecenie make install clean w porcie


xbindkeys_config, aby skonfigurowa i zainstalowa obydwa porty.

Po zakoczeniu kompilacji otwieramy xterminal i wykonujemy nastpujce polecenia:


% xbindkeys --defaults ~/.xbindkeysrc
% xbindkeys_config

Po wykonaniu drugiego z polece pojawi si interfejs uytkownika przedstawiony na rysunku 1.1.


Utworzenie nowego dowizania polega na klikniciu przycisku New i wpisaniu informacyjnej nazwy w polu Name:. Nastpnie klikamy przycisk Get Key, po czym otworzy si
nowe okno. Naciskamy odpowiedni kombinacj klawiszy i gotowe: w oknie aplikacji pojawi si odpowiednio wypeniona pozycja odwzorowania kombinacji klawiszy. W polu
Action: uzupeniamy polecenie zwizane z kombinacj. Zmiany akceptujemy klawiszem
Save & Apply & Exit.
Wszelkie odwzorowania klawiszy utworzone za pomoc tego programu zostan zapisane w pliku konfiguracyjnym ~/.xbindkeysrc.

32

Dostosowanie rodowiska uytkownika

Wykorzystanie myszy w terminalu

Rysunek 1.1. Program xbindkeys_config

Zobacz rwnie:
man kbdcontrol;
man atkbd;
Strona domowa programu xbindkeys: http://hocwp.free.fr/xbindkeys/xbindkeys.html.
SPOSB

5.

Wykorzystanie myszy w terminalu


Kopiowanie i wklejanie tekstu w terminalu za pomoc myszy.

Osoby przyzwyczajone do pracy w rodowisku graficznym mog podczas pracy w terminalu czu si troch nieswojo. Oczywicie mona skonfigurowa skrty klawiszowe i wykorzystywa sztuczki nawigacyjne, lecz to wszystko przestaje mie znaczenie, gdy pojawi
si potrzeba skopiowania i wklejenia tekstu.
Nie ma powodw do obaw w terminalu mysz wcale nie musi pozostawa bezuyteczna. By moe demon obsugi myszy jest nawet aktywny; zaley to od konfiguracji systemu podczas instalacji. Zadaniem tego demona jest nasuchiwanie danych przesyanych
przez mysz i przekazywanie ich do sterownika konsoli.
Uytkownicy programu screen [Sposb 12.] rwnie mog skorzysta
z mechanizmu kopiowania i wklejania tekstu za pomoc myszy.

Dostosowanie rodowiska uytkownika

33

SPOSB

5.

SPOSB

5.

Wykorzystanie myszy w terminalu

Jeeli zainstalowany jest system X


Jeli podczas instalacji systemu zosta zainstalowany rwnie system X, demon moused
prawdopodobnie rwnie bdzie uruchomiany po uruchomieniu systemu. Mona to
sprawdzi w nastpujcy sposb:
% grep moused /etc/rc.conf
moused_port="/dev/psm0"
moused_type="auto"
moused_enable="YES"

Demon moused potrzebuje trzech rodzajw informacji:


portu myszy (w tym przypadku /dev/psm0, co oznacza port PS/2);
typu protokou (w tym przypadku auto, co oznacza, e protok zostanie
skonfigurowany automatycznie);
ustawienia automatycznego uruchamiania.
Jeli wynik powyszego polecenia bdzie zbliony do przykadowego, jestemy gotowi
do kopiowania i wklejania.
Aby skopiowa tekst do schowka, wystarczy zaznaczy go, przytrzymujc lewy przycisk
myszy. Nastpnie umieszczamy kursor w miejscu, w ktrym chcemy wklei skopiowany
tekst, i klikamy rodkowy klawisz myszy. To wszystko.
Aby zaznaczy cay wyraz, wystarczy klikn go dwukrotnie. Aby zaznaczy
cay wiersz tekstu, klikamy go trzykrotnie.

Konfiguracja myszy dwuprzyciskowej


Co zrobi, jeli mysz ma tylko dwa przyciski? Jako superuytkownik dopisujemy w pliku
/etc/rc.conf nastpujcy wiersz (o ile go tam nie ma):
moused_flags="-m 2=3"

Ta opcja wskazuje demonowi moused, e prawy przycisk myszy ma by interpretowany


jak trzeci (czyli rodkowy) przycisk. Teraz mona bez przeszkd uywa prawego przycisku do wklejania tekstu ze schowka.
Aby wprowadzone zmiany w konfiguracji weszy w ycie, naley ponownie uruchomi
demon moused:
# /etc/rc.d/moused restart
Stopping moused.
Starting moused:.

Zmiany naley przetestowa, kopiujc tekst do schowka za pomoc lewego przycisku


i wklejajc go za pomoc prawego przycisku myszy.

34

Dostosowanie rodowiska uytkownika

Dzienna dawka bahostek

Jeeli system X nie jest zainstalowany


Takie same rezultaty mona uzyska bez koniecznoci instalacji systemu X. W tym celu
naley jednak dopisa do pliku /etc/rc.conf wymienione wyej opcje konfiguracyjne demona moused.
Przedstawiony przykad dotyczy myszy PS/2. Uytkownicy innych modeli myszy powinni zapozna si z czci podrcznika man moused zatytuowan Configuring Mouse
Daemon. Znajduj si tam szczegowe informacje na temat konfiguracji rnych modeli myszy oraz typw protokow je obsugujcych, jak rwnie dane na temat konfiguracji laptopw i obsugi kilku myszy: jednej podczas pracy w podry (najczciej w postaci
wbudowanego manipulatora) i drugiej podczas pracy po przyczeniu laptopa do stacji
dokujcej.
Uytkownicy myszy USB najczciej musz port /dev/psm0 zastpi wpisem /dev/usm0.
Mysz szeregowa przyczona do portu COM1 wymaga konfiguracji portu /dev/cuaa0. Czasem moe okaza si, e niezbdne bdzie dokonanie kilku prb z rnymi ustawieniami.
Jak zwykle najlepszym przewodnikiem bdzie podrcznik systemowy.

Zobacz rwnie:
man moused
Dokumentacja dotyczca wczania obsugi myszy w NetBSD: http://www.netbsd.org/
Documentation/wscons/;
Dokumentacja dotyczca wczania obsugi myszy w OpenBSD: http://www.openbsd.org/
faq/faq7.html.
SPOSB

6.

Dzienna dawka bahostek


Jak uprzyjemni prac, konfigurujc urozmaicenia terminalu.

Jak mwi stare powiedzenie: Tylko praca, bez zabawy, uschnie z nudy Jack niebawem.
Ale co ma biedny Jacek czy Agatka zrobi, gdy cae dnie spdza tylko przed ekranem
komputera? Mogliby na przykad wybra si na stron http://www.thinkgeek.net/ i kupi sobie odjazdowy kubek albo inny gadet. Mona te skorzysta z jednego z programw rozrywkowych.

Fortunki
Rozpocznijmy od rozrywek na ekranie terminalu. Czy za kadym razem po zalogowaniu
si system wita Was wesoym, dowcipnym lub tajemniczym cytatem? Jeli tak, oznacza to,
e otrzymalicie tak zwan fortunk:

Dostosowanie rodowiska uytkownika

35

SPOSB

6.

SPOSB

6.

Dzienna dawka bahostek


login: dru
Password:
Last login: Sat 1 10:10:16 on ttyv7
"You can't have everything, where would you put it?"
-- Steven Wright

Jeli fortunka si nie pojawia, naley z konta superuytkownika wywoa polecenie /stand/
sysinstall. Nastpnie wybieramy Configure/Distributions i zaznaczamy spacj opcj games.
Klawiszem Tab podwietlamy przycisk OK. Po zakoczeniu instalacji zamykamy program
sysinstall.
Sprawdzamy, czy w pliku ~/.cshrc znajduje si wywoanie programu fortune:
% grep fortune ~/.cshrc
/usr/games/fortune

Jeli go tam nie bdzie, naley dopisa na kocu tego pliku odpowiednie wywoanie:
% echo '/usr/games/fortune' >> ~/.cshrc

Nie naley zapomnie o uyciu dwch znakw wikszoci, w przeciwnym razie caa zawarto pliku .cshrc zostanie usunita. Aby sprawdzi wprowadzone zmiany, naley zastosowa polecenie source, ktre ponownie zaaduje plik konfiguracyjny. Ten sposb moe
okaza si przydatny w przypadku, gdy zostanie zaktualizowany alias i chcemy natychmiast wprowadzi zmiany w ycie:
% source ~/.cshrc
Indifference will be the downfall of mankind, but who cares?

Jeli po wylogowaniu si z systemu rwnie chcemy otrzymywa fortunk, naley dopisa do pliku .logout nastpujcy wiersz:
% echo '/usr/games/fortune' > ~/.logout

Jeli takiego pliku nie byo (a domylnie nie jest on tworzony automatycznie), zostanie
utworzony w wyniku wykonania powyszego polecenia. Tym razem zosta zastosowany
jeden znak wikszoci, poniewa wiem, e plik taki nie istnieje. Gdyby jednak istnia, naley zastosowa dwa znaki wikszoci, co spowoduje dopisanie wiersza na kocu pliku.
Program fortune, cho trudno w to uwierzy, posiada rne opcje. Niektre z nich
daj cakiem zabawne wyniki. Poznanie szczegw pozostawiam Czytelnikom odsyam do podrcznika systemowego man fortune.

Dalsze zgbianie bahostek


Lubi bahostki, wic korzystam z polecenia calendar. Wbrew logicznym domysom nie
wypisuje ono w terminalu kalendarza biecego miesica (tym zajmuje si polecenie cal).
Zamiast tego calendar wypisuje zdarzenia zwizane z biec dat:

36

Dostosowanie rodowiska uytkownika

Dzienna dawka bahostek


% calendar
Nov 27
Nov 27
Nov 27
Nov 28
Nov 28
Nov 28
Nov 27

Alfred Nobel establishes Nobel Prize, 1895


Friction match invented, England, 1826
Hoosac Railroad Tunnel completed, 1873, in NW Massachusetts
Independence Day in Albania and Mauritania
Independence from Spain in Panama
Proclamation of the Republic in Chad
Jimi Hendrix (Johnny Allen Hendrix) is born in Seattle, 1942

wietnie, zapomniaam, e dzi jest rocznica otwarcia tunelu Hoosac zdarzenia, ktre
spowodowao, e na mapie pojawio si moje rodzinne miasteczko.
Wywoanie polecenia calendar mona atwo zautomatyzowa. Jeli kto chce pozna wydarzenia historyczne zwizane z biec dat po zalogowaniu si lub po wylogowaniu
z systemu, powinien doda odpowiedni wpis do pliku .cshrc lub .logout. Chodzi oczywicie o ciek do programu calendar, mona wic posuy si nastpujcym poleceniem,
upraszczajcym nieco to zadanie:
% echo `which calendar` >> .cshrc

Nie naley pomyli si przy znakach >> lub wczeniej ustawi w pliku .cshrc opcj
noclobber zgodnie z opisem w [Sposb 2.].

Dalsze rozrywki
Oczywicie istnieje wicej ciekawostek zwizanych z czasem. Opisz jeszcze dwie, ktre
mog znale amatorw.

Biecy czas
Z pewnoci kademu zdarzyo si sprawdzi godzin, korzystajc z komputera. Wykorzystanie w tym celu polecenia date jest by moe intuicyjne, ale jake przy tym nudne.
Nastpnym razem przy takiej okazji proponuj skorzysta z nastpujcego polecenia:
% grdc

Ojej, to wida z drugiego koca pokoju. Niezy sposb, aby delikatnie zasugerowa koledze wyjcie na lunch.
Zdarzao mi si wpisywa polecenie /usr/games/grdc do swojego pliku ~/.logout. Gdy si wylogowaam, terminal wywietla godzin, a nacisnam Ctrl+c i zalogowaam si ponownie. Mona to uzna za zabezpieczony hasem wygaszasz ekranu dziaajcy w terminalu.

Faza ksiyca
Czy zdarzyo si komu czyta man pom? To jeden z ciekawszych podrcznikw systemowych, jakie znam. W tumaczeniu na jzyk polski brzmi mniej wicej tak:
Program pom wywietla biec faz ksiyca. Moe by przydatny do okrelenia
terminu realizacji projektu i przewidywania nastrojw kadry menederskiej.

Dostosowanie rodowiska uytkownika

37

SPOSB

6.

SPOSB

6.

Dzienna dawka bahostek

Brzmi, jakby palce w tym programie macza sam Dilbert. Gdy do pliku ~/.cshrc dopiszemy
wywoanie /usr/games/pom, po zalogowaniu si bdziemy mieli okazj pogbi swoj
wiedz astronomiczn:
% pom
The Moon is Waxing Gibbous (53% of Full)

Prosty programik, a jake moe oywi pogawdki przy ekspresie do kawy.

Dodawanie terminalowi kolorw


Czy kto prbowa poniszego polecenia?
%
0
1
2
3
4
5
6
7

vidcontrol show
blue
green
cyan
red
magenta
brown
white

8
9
10
11
12
13
14
15

grey
lightblue
lightgreen
lightcyan
lightred
lightmagenta
yellow
lightwhite

Przypominaj si stare czasy systemu DOS i plik ansi.sys. Tak, terminal pozwala na stosowanie koloru powysze polecenie wypisuje dostpne kolory. W terminalu powysze
polecenie wypisze wynik w kolorze, czego nie da si niestety odda w tej ksice.
Jeli komu spodobaj si wybrane kolory, moe doda je do terminala. Na przykad ponisze polecenie ustawi ty kolor czcionki i niebieskie to:
% vidcontrol yellow blue

Jako to mona ustawi wycznie kolory o kodach od 1 do 7, w przeciwnym wypadku


wystpi bd skadni (syntax error). Warto poprbowa z rnymi kombinacjami, a uda
si uzyska zadowalajcy efekt. Mona rwnie ustawi kolorow ramk okna:
% vidcontrol -b red

Powysze ustawienia maj wpyw wycznie na biecy terminal. Oczywicie odpowiednie wywoania polecenia vidcontrol mona dopisa do pliku ~/.cshrc, aby byy wprowadzane w ycie przy kadym zalogowaniu do systemu.
Jeli mamy problem z odszukaniem kursora, mona sprbowa nastpujcego polecenia:
% vidcontrol -c blink

Inne polecenie o podobnym dziaaniu:


% vidcontrol -c destructive

38

Dostosowanie rodowiska uytkownika

Dzienna dawka bahostek

Zmiana kursora ma wpyw na wszystkie terminale w systemie. Jeli inni uytkownicy zaczn narzeka na wprowadzone usprawnienie kursora, mona przywrci go do standardowego stanu nastpujcym poleceniem:
% vidcontrol -c normal

Zobacz rwnie:
man fortune;
man calendar;
man vidcontrol;
pakiety games w NetBSD oraz OpenBSD.

Dostosowanie rodowiska uytkownika

39

SPOSB

6.

You might also like