Nie taki Unix straszny (2)

W poprzednim numerze CW opisałem, jak zalogować się w systemie, oglądać zawartości katalogów i poruszać się po ich strukturze. Gdy posiądziemy te umiejętności, z całą pewnością będziemy chcieli obejrzeć zawartości różnych plików.

W poprzednim numerze CW opisałem, jak zalogować się w systemie, oglądać zawartości katalogów i poruszać się po ich strukturze. Gdy posiądziemy te umiejętności, z całą pewnością będziemy chcieli obejrzeć zawartości różnych plików.

W tym celu należy zastosować polecenie:

cat nazwa_pliku

Gdy długość pliku jest większa niż to, co mieści się na jednym ekranie, musimy polecenie nieco zmodyfikować:

cat nazwa_pliku | more

lub jeszcze prościej:

more nazwa_pliku

"More" to nazwa programu, który będzie wyświetlał taką część pliku, jaka mieści się na naszym ekranie i czekał na naciśnięcie jakiegokolwiek klawisza, by go pokazać dalej. Interesujący jest tutaj symbol '|'. Jest to oznaczenie potoku (ang. pipe), niezwykle ważnego w Unixie mechanizmu przesyłania danych (strumień danych wyjściowych jednego programu zostaje skierowany do wejścia drugiego programu). Ważne są też w Unix-ie symbole '>','<' i '>>'. Pierwszy, to znany z DOS-u sposób przesłania wyniku danej operacji do pliku o podanej nazwie. Drugi - przesłanie zawartości pliku jako wejścia do innego programu. Symbol '>>' to dopisanie danych na końcu pliku. Na przykład polecenie:

ls >> lista

dopisze wynik działania polecenia ls (a więc listę plików, zawartych w bieżącym katalogu) na końcu pliku lista.

Nazwy plików nie są w Unixie ograniczone, jak w DOS-ie, tylko do ośmiu liter. Mogą być dowolnie długie, zawierać dowolną liczbę kropek (ale właściwa nazwa pliku kończy się na pierwszej kropce, dalej jest już rozszerzenie; Unix nie rozróżnia plików z uwagi na rozszerzenia, mogą to natomiast robić inne programy). Poza tym, oprócz liter, cyfr, kropek i znaku podkreślenia, w nazwie pliku można używać prawie wszystkich innych symboli (aczkolwiek trzeba je poprzedzać na ogół znakiem '\').

Proste jest tworzenie krótkiego pliku tekstowego. Wystarczy napisać:

cat > nazwa_nowego_pliku

I możemy pisać kończąc każdy wiersz klawiszem <ENTER>, a pracę kończymy za pomocą Ctrl D.

Warto poznać dwa standardowe polecenia: cp - kopiowanie pliku i rm - jego usunięcia.

Gdybyśmy chcieli edytować jakiś plik tekstowy, będziemy mieli dużo szczęścia, gdy w naszym systemie będzie zainstalowany jakiś porządny edytor tekstów, np. emacs. Jeżeli nie, a zdarza się to, o dziwo, dość często, pozostają nam jedynie standardowe programy załączone w każdym Unix-ie. Edytory-potworki, takie jak ed czy vi.

Vi (wymowa wi-aj) to swoiste kuriozum, mogące doprowadzić nie uprzedzonego użytkownika do furii. Program ten pracuje w dwóch trybach, komend i edycji (komendy są wydawane wprost przez naciśnięcie klawisza z daną literą). Trudność polega na tym, że w żaden sposób nie jest to uwidocznione, w jakim trybie aktualnie znajduje się edytor (można to sprawdzić naciskając klawisz ESCAPE. Jeśli komputer zabuczy, to znaczy, że już jesteśmy w trybie komend, jeśli nie, to właśnie się do niego przełączyliśmy naciskając ten klawisz). Możemy więc być bardzo przykro zaskoczeni, gdy podczas edycji tekstu przypadkiem przełączymy się w tryb komend i naciskając dalej klawisze skasujemy sobie połowę tworzonego tekstu. W niektórych kręgach użytkowników Unixa, modna stała się zabawa, by wgrać do vi jakiś tekst, przejść w tryb komend i napisać na przykład własne nazwisko. Wygrywa ten, komu uda się uzyskać najśmieszniejsze efekty (czyli najbardziej pokancerować tekst).

Piszę tyle o vi, bo ten program jest doskonałym przykładem ilustrującym podstawową wadę Unixa. Gdy 20 lat temu system powstawał, nikt absolutnie nie myślał o możliwości masowej jego sprzedaży na rynku. Stworzono go w warunkach na poły amatorskich, do wykorzystania przez małą grupę ludzi. Dzisiejsze wersje Unixa nie mają już chyba ani kawałka starego kodu, trudno je nawet porównać z pierwowzorem. Jednak fakt, iż nie stworzono go od początku jako porządnego, wielkiego systemu, tylko modyfikowano drogą nieustannych przeróbek i rozbudowy, fatalnie ciąży i będzie ciążyć nad wieloma aspektami tego systemu. Stąd mamy kilkadziesiąt, często bardzo różnych, jego mutacji. Niektóre z wersji Unixa mają kilkaset (!) poleceń systemowych, z których każde ma wiele opcji i parametrów. Użytkownik Unix-a musi ciągle potykać się o różne archaizmy, które w żaden sposób nie przystają do dzisiejszej wiedzy o znaczeniu obecności dobrego interfejsu komunikacji człowieka z komputerem. Znajomość Unix-a to właśnie drobiazgowa wiedza o tym, jakie polecenia, jak i kiedy trzeba zastosować, jak zapisać ich opcje, tak by zrobiły dokładnie to, czego od nich oczekujemy. Jest to bardzo silne narzędzie, ale nauka jego obsługi jest zadaniem żmudnym i długotrwałym.

Na koniec warto poznać polecenie, dzięki któremu możemy modyfikować opisane poprzednio prawa dostępu do pliku.

Polecenie:

chmod go-rwx Bilbo

odbiera wszystkim użytkownikom, prócz właściciela, wszelkie prawa do pliku Bilbo.

Mechanizm jest prosty, po słowie kluczowym chmod specyfikujemy o czyje prawa chodzi (u-właściciel, g-grupa, o-wszyscy pozostali, a-wszyscy razem), potem pokazujemy jak zmieniają się prawa (= ustala prawa, - wyłącza, a + włącza daną opcję; oznaczenie praw rwx opisałem w poprzednim odcinku).

Dość znana jest jeszcze inna forma zapisu praw w postaci liczb:

prawo czytania (r) warte jest 4 pkty; prawo pisania (w) 2 pkty; prawo wykonywania (x) 1 pkt; punkty przysługujące poszczególnym kategoriom użytkowników należy zsumować; ostatecznie prawa do pliku opisuje liczba trzycyfrowa (z uwagi na trzy odrębne kategorie użytkowników), np. 777 to maksymalne (wszystkie możliwe) prawa do danego pliku

Czyli, gdybyśmy chcieli dla pliku Bilbo ustalić prawa: dla siebie (czyli właściciela) czytanie i pisanie; dla grupy tylko czytanie; dla pozostałych żadnych praw, musimy napisać:

chmod 640 Bilbo

Oczywiście trzeba pamiętać (co zasmuci "majsterkowiczów"), iż możemy zmieniać prawa tylko dla pliku, którego jesteśmy właścicielem.

W celu komercyjnej reprodukcji treści Computerworld należy zakupić licencję. Skontaktuj się z naszym partnerem, YGS Group, pod adresem [email protected]

TOP 200