Rozdział 10.
Programy użytkowe projektu GNU
Peter MacKinnon
W tym rozdziale:
Aktualnie dostępne oprogramowanie podlegające licencji GNU
Projekt GNU, założony i prowadzony przez Free Software Foundation (FSF), ma na celu zapewnienie darmowego oprogramowania (w formie kodu źródłowego) każdemu zainteresowanemu. Istnieje długi manifest, który wyjaśnia motywy takiej filantropii (za którą powinniśmy być naprawdę wdzięczni, ponieważ niektóre z tych programów są najlepsze w swojej klasie!). Jedną z głównych tez tego manifestu jest to, że wysokiej jakości oprogramowanie jest niezbędne do życia, podobnie jak jedzenie czy powietrze. Fakt, że oprogramowanie GNU jest rozprowadzane bezpłatnie, nie oznacza, że nie jest ono objęte prawami autorskimi. Głównym celem licencji GNU jest to, aby oprogramowanie pozostawało bezpłatne.
Jeśli chcesz dowiedzieć się czegoś więcej o FSF, możesz do nich napisać pod adres:
Free Software Foundation
675 Massachusetts Avenue
Cambridge, MA 02139.
Możesz również zamówić kopię ich biuletynu, wysyłając pocztą elektroniczną list do
gnu@prep.ai.mit.edu.
Dystrybucja Linuxa dołączona do tej książki zawiera praktycznie wszystkie programy GNU dostępne w tej chwili. Są one spakowane za pomocą programu archiwizującego tar, a następnie kompresora gzip (również objętego licencją GNU). Kompresor ten jest nieco wydajniejszy od standardowo używanego w UNIX-ie programu compress. Pliki skompresowane programem gzip mają rozszerzenie .gz, pochodzące z programu compress - .Z. Program gzip radzi sobie z rozpakowywaniem obu typów plików.
W nazwie każdego ze skompresowanych plików zawarty jest numer wersji pakietu, by łatwo było zorientować się, która wersja jest „najświeższa”. Po rozpakowaniu program może zostać skompilowany i zainstalowany. Większość z nich posiada napisane w tym celu pliki makefile, obsługiwane przez program make.
Aktualnie dostępne oprogramowanie podlegające licencji GNU
Fundacja Free Software Foundation udostępniła do tej pory tak wiele oprogramowania, że nie sposób opisać każdą z aplikacji szczegółowo. Następne podrozdziały skrótowo opisują programy dołączone do tej wersji Linuxa. Są to krótkie podsumowania, oparte na informacjach pochodzących z GNU.
acm
acm jest sieciowym symulatorem walki powietrznej, przeznaczonym dla środowiska LAN. Pozwala rozprawić się z przeciwnikiem za pomocą pocisków powietrze-powietrze i karabinu. Działa pod kontrolą systemu X.
Autoconf
Autoconf generuje skrypty powłoki, które pozwalają automatycznie konfigurować pakiety z kodem źródłowym (takie jak dostarczane na licencji GNU) na podstawie pliku zawierającego dane o wymaganiach stawianych systemowi. Aby można było go używać, musi również być zainstalowany pakiet m4.
bash
Interpreter poleceń o nazwie bash jest rozszerzoną wersją interpretera Bourne Shell (stąd jego pełna nazwa - Bourne Again Shell). Oferuje on wiele rozszerzeń dostępnych w powłokach csh i ksh. Obsługuje także zarządzanie zadaniami, historię poleceń, oraz edycję wiersza poleceń w trybie edytorów vi i emacs. Dokładniejszy opis tego interpretera znajduje się w rozdziale 11. „bash”.
bc
bc to język programowania zorientowany na obliczenia algebraiczne. Może być używany w sposób interaktywny lub przy użyciu pliku wejściowego. Wersja GNU tego programu posiada składnię zbliżoną do języka C oraz kilka rozszerzeń w stosunku do pierwotnej wersji (nazwy zmiennych składające się z wielu znaków, słowo kluczowe else i pełna obsługa algebry Boole'a). W przeciwieństwie do wersji pierwotnej, nie wymaga programu dc, spełniającego funkcję kalkulatora.
BFD
Biblioteka BFD (ang. Binary File Description) pozwala programom operującym na plikach pośrednich .o (jak ld czy gdb) na obsługę różnych ich formatów. Zapewnia ona przenośny interfejs, tak że tylko BFD zna szczegóły danego formatu. Wszystkie programy używające BFD obsługują zarówno format a.out (domyślny format plików wykonywalnych generowanych przez kompilator C), jak i COFF.
Binutils
Binutils to kolekcja narzędzi dla programistów, takich jak ar, c++filt, demangle, gprof, ld, objcopy, objdump, ranlib, size, strings i strip. Wersja 2 jest napisana zupełnie od nowa i używa biblioteki BFD. Linker ld przy komunikatach o błędach dotyczących wielokrotnych definicji i niezdefiniowanych odniesień podaje również numery wierszy kodu źródłowego. Program nlmconv pozwala na konwersję plików pośrednich .o do formatu NLM (Novell NetWare Loadable Modules). Program objdump potrafi wyświetlić dane takie jak nazwy użytych symboli, z pliku w dowolnym formacie rozpoznawanym przez BFD.
Bison
Bison jest kompatybilny ze swym pierwowzorem - programem yacc. Potrafi on na podstawie zdefiniowanej gramatyki stworzyć interpreter języka formalnego w postaci programu w języku C.
Kompilator języka C
Wersja 2 kompilatora GNU C (gcc) obsługuje trzy języki: C, C++ oraz C z obiektami. Wybór języka zależy od rozszerzenia nazwy pliku zawierającego kod źródłowy lub opcji kompilatora. Biblioteki wymagane do uruchamiania programów w języku C z obiektami są rozprowadzane razem z gcc. Kompilator ten obsługuje w pełni standard ANSI C, tradycyjny język C oraz kilka rozszerzeń, jak np. funkcje zagnieżdżone czy nielokalne wywołania goto. Potrafi generować pliki pośrednie i informacje dla debuggera w wielu różnych formatach. Więcej na jego temat możesz dowiedzieć się z rozdziału 27. „Programowanie w języku C”.
Biblioteki dla języka C
Biblioteki GNU C obsługują standard ANSI C i dodają kilka własnych rozszerzeń. Przykładowo, biblioteka stdio pozwala zdefiniować nowe rodzaje strumieni używane z poleceniem printf.
Biblioteki dla języka C++
Biblioteki GNU C++ (libg++) to zbiór klas dla języka C++, nowa biblioteka iostream i narzędzia ułatwiające pracę z kompilatorem g++. Wśród klas można znaleźć na przykład implementacje liczb całkowitych o zwiększonej precyzji, ułamków, liczb zespolonych, a także łańcuchów znaków o zadanej długości. Istnieją też pliki zawierające prototypy, dzięki którym można generować często używane klasy kontenerów.
Calc
Calc to narzędzie matematyczne używane przez niektóre programy (jak np. Emacs). Może również służyć jako kalkulator, który ma takie zalety, jak wybór pomiędzy notacją algebraiczną lub odwrotną notacją polską (Reverse Polish Notation, RPN), funkcje logarytmiczne, trygonometryczne i finansowe, liczby zespolone, wektory, macierze, daty, czas, nieskończoności, zbiory, upraszczanie wyrażeń algebraicznych, różniczkowanie i całkowanie.
Chess
Chess to komputerowa wersja gry w szachy. Może być uruchomiona zarówno z interfejsem tekstowym (dzięki wykorzystaniu biblioteki curses), jak i graficznym (w systemie X). Zaimplementowano w niej wiele specjalistycznych algorytmów, również heurystycznych, co nie pozwoli wygrać nowicjuszowi.
CLISP
CLISP to implementacja języka Common Lisp, używanego powszechnie do programowania sztucznej inteligencji. Zawiera interpreter oraz kompilator, posiada również interfejs w dwóch wersjach językowych: angielskiej i niemieckiej. Wersję językową można wybrać w trakcie kompilacji programu.
Common Lisp
GNU Common Lisp (gcl) to kompilator i interpreter języka Common Lisp. Jest on w dużym stopniu przenośny, zadziwiająco wydajny i posiada debugger pracujący z interpretowanym kodem. gcl zawiera również narzędzia ułatwiające pisanie programów dla X, takie jak profiler i interfejs Xlib.
cpio
cpio to program, który kopiuje archiwa na dyski lub taśmy i z powrotem. Można go również użyć do kopiowania plików do większego archiwum lub do innych katalogów.
CVS
Concurrent Version System (CVS) służy do zarządzania wersjami kodu źródłowego powstającej aplikacji, gdy nad jej napisaniem pracuje wiele osób. Działa w połączeniu z programem RCS, który również służy do zarządzania kodem źródłowym.
dc
dc to kalkulator liczący w odwrotnej notacji polskiej. Może być używany interaktywnie lub za pomocą pliku wejściowego.
DejaGnu
DejaGnu to narzędzie służące do pisania skryptów testujących dowolny program. Zawiera --> [Author:KO] język skryptowy Tcl i pochodny język expect, służący do uruchamiania skryptów symulujących działania użytkownika.
Diffutils
Pakiet Diffutils zawiera programy służące do porównywania plików: diff, diff3, sdiff i cmp. Program diff rozprowadzany na licencji GNU porównuje pliki wiersz po wierszu, wyświetlając znalezione różnice w kilku formatach. Jest bardziej wydajny niż jego tradycyjna wersja.
ecc
ecc to program do korekcji błędów, oparty na algorytmie Reeda-Solomona. Potrafi skorygować trzy błędne bajty w bloku 255 - bajtowym, a wykryć znacznie więcej.
ed
ed to standardowy edytor tekstu, posiadający interfejs oparty na wierszu poleceń.
Elib
Jest to niewielka biblioteka funkcji w języku Lisp przeznaczona dla edytora Emacs, która potrafi między innymi obsługiwać dane o strukturze podwójnej listy.
GNU Emacs
GNU Emacs to druga implementacja bardzo popularnego edytora napisanego przez Richarda Stallmana. Emacs jest zintegrowany z językiem Lisp, mogącym służyć do rozszerzania możliwości tego programu. Posiada interfejs oparty na systemie X. Oprócz potężnego zestawu własnych poleceń, Emacs potrafi emulować inne edytory, takie jak vi czy EDT. Jeśli chcesz dowiedzieć się więcej o tym programie, zajrzyj do rozdziału 16. „Edytory tekstu: vi i emacs”.
GNU Emacs 19
Emacs 19 to wzbogacona wersja edytora Emacs, zawierająca poprawioną obsługę interfejsu X. Zapewnia dostęp do menedżera zasobów, obsługę RCS, zawiera także wiele nowszych wersji bibliotek. Emacs 19 pracuje zarówno pod kontrolą systemu X, jak i w trybie tekstowym.
es
es jest to interpreter poleceń oparty na rc. Obsługuje wyjątki oraz funkcje zwracające wartości inne niż liczby. Używa się go wygodnie zarówno w trybie interaktywnym, jak i w skryptach, głównie dlatego, że jego reguły są prostsze niż reguły języków wchodzących w skład powłok C Shell i Bourne Shell.
Fileutils
Fileutils to kolekcja standardowych (i nieco mniej standardowych) programów linuxowych służących do obsługi systemu plików. Zawiera m.in. programy chgrp, chmod, chown, cp, dd, df, dir, du, install, ln, ls, mkdir, mkfifo, mknod, mv, mvdir, rm, rmdir, touch i vdir.
find
Program find służy do wyszukiwania plików spełniających zadane kryteria i wykonywania na nich jakichś operacji; może być używany interaktywnie i za pomocą skryptów. Rozprowadzany jest wraz z programem xargs, który potrafi wykonać polecenie dla większej liczby plików.
finger
Program finger służy do wyświetlania informacji o jednym lub więcej użytkownikach Linuxa. Potrafi obsłużyć wiele komputerów połączonych w sieć, potrafi też przyjąć, że jeden z nich zawiera informacje o wszystkich użytkownikach. Dzięki temu zapytanie skierowane do dowolnego komputera zwraca pełną informację o użytkowniku. Oto przykładowy efekt wykonania polecenia finger:
# finger tparker@tpci.com
Login: tparker Name: Tim Parker
Directory: /usr/tparker Shell: /bin/sh
On since Sat Jun 6 11:33 on tty02, idle 51 days 21:22 (messages off)
On since Sun Jun 7 15:42 on ttyp0, idle 0:02
On since Sat Jun 6 11:33 on ttyp1, idle 21 days 10:011
Mail last read Tue Jun 16 18:38:48 1998
Jak widać, ta wersja programu finger (wyniki jego działania różnią się w zależności od systemu operacyjnego i wersji) pokazuje informacje zawarte w pliku /etc/passwd (identyfikator, katalog domowy itd.) oraz informacje dotyczące ostatnich sesji.
flex
flex to zamiennik programu lex, który jest generatorem interpreterów języków formalnych. Wygenerowane przez program flex interpretery są bardziej wydajne, niż pochodzące z programu lex. flex potrafi również stworzyć odpowiedni kod w języku C.
Fontutils
Fontutils to pakiet używany do tworzenia czcionek dla programów Ghostscript i TeX. Zawiera również narzędzia do konwersji i kilka innych programów użytkowych. W jego skład wchodzą m.in. bpltobzr, bzrto, charspace, fontconvert, gsrenderfont, imageto, imgrotate, limn oraz xbfe.
gas
gas to asembler, tłumaczący kod źródłowy do postaci pliku pośredniego .o. Programy napisane w całości w asemblerze działają w różnych systemach operacyjnych, nie tylko w Linuxie.
gawk
Jest to program kompatybilny z awk, modyfikujący pliki zgodnie z zadanym wzorcem. Zawiera również kilka rozszerzeń nie spotykanych w innych implementacjach, na przykład awk czy nawk, funkcje do zmiany wielkości liter w znalezionym tekście. Dokładniejsze informacje znajdziesz w rozdziale 25. „gawk”.
gdb
gdb to debugger obsługiwany z wiersza poleceń. Pliki pośrednie i tablice symboli są wczytywane za pośrednictwem biblioteki BFD, co umożliwia wyszukiwanie błędów w programach zapisanych w różnych formatach. Inne zalety gdb to praca zdalna poprzez połączenie szeregowe lub TCP/IP oraz obsługa pułapek (przerwanie programu po spełnieniu zadanego warunku). Dostępna jest również wersja z interfejsem X, o nazwie xxgdb.
gdbm
Jest to biblioteka GNU zastępująca tradycyjne biblioteki służące do obsługi baz danych - dbm oraz ndbm. Implementuje bazy danych z wyszukiwaniem za pomocą tablic haszujących.
Ghostscript
Ghostscript to język opisu grafiki kompatybilny z językiem PostScript. Pobiera on polecenia postcriptowe i wykonuje je, kierując wyniki na drukarkę, do okna w systemie X lub zapisując do pliku, który można wydrukować później (można też wyniki zapisać w postaci mapy bitowej, nadającej się do dalszej edycji, za pomocą dowolnego programu graficznego).
Ghostscript zawiera również bibliotekę graficzną, która może być używana z poziomu języka C. Pozwala to tworzyć programy dziedziczące wszystkie zalety PostScriptu bez konieczności znajomości tego języka. Więcej informacji o języku Ghostscript znajdziesz w rozdziale 24. „Ghostscript”.
Ghostview
Ghostview to przeglądarka wielostronicowych plików postscriptowych, interpretowanych przez program Ghostscript. Pracuje w środowisku X.
gmp
gmp to biblioteka pozwalająca na wykonywanie obliczeń na liczbach całkowitych ze znakiem o zadanej precyzji oraz na użycie ułamków.
GNats
GNats (ang. GNU's A Tracking System) to system śledzenia i zgłaszania błędów. Oparty jest na modelu organizacji posiadającej węzeł centralny, do którego trafiają wszystkie zgłoszenia o problemach, a ich rozwiązania rozsyłane są pocztą elektroniczną. Pierwotnie przewidziany do wyłapywania usterek w powstających programach, nadaje się również do administrowania siecią, zarządzania projektami i do innych zastosowań.
GNU Graphics
GNU Graphics to zestaw programów, które generują rysunki na podstawie plików binarnych lub ASCII. Dane wyjściowe mogą być przekazane do pliku postscriptowego lub okna X. Zawiera również pewną liczbę przykładowych skryptów w języku powłoki używających poleceń graph oraz plot i narzędzia do prezentacji danych statystycznych.
GNU Shogi
Shogi to japońska gra zbliżona do szachów, z tym że tracone figury mogą wrócić do gry. Jego implementacja oparta jest na GNU Chess i wykorzystuje te same algorytmy i techniki. Program umożliwia również wprowadzanie dodatkowych informacji określających sekwencje ruchów wykonywanych podczas otwarcia. Obsługuje zarówno interfejs tekstowy, jak i graficzny.
gnuplot
gnuplot to interaktywny program służący do rysowania wykresów funkcji matematycznych i danych statystycznych. Pozwala tworzyć grafikę dwu - i trójwymiarową.
GnuGo
Implementacja japońskiej gry Go.
gperf
gperf to program użytkowy służący do generowania „idealnych” tablic haszujących. Możliwe jest tworzenie funkcji haszujących zarówno w języku C, jak i C++.
grep
Pakiet ten zawiera programy grep, egrep i fgrep. Wersje GNU tych programów, służących do szukania w plikach tekstów spełniających zadane warunki, działają o wiele szybciej niż ich tradycyjne odpowiedniki.
Groff
Groff to system formatowania dokumentów. Zawiera sterowniki dla formatu PostScript i dvi (TeX). W jego skład wchodzą programy eqn, nroff, pic, refer, tbl, troff oraz makra man, ms i mm. Do kompilacji niezbędny jest kompilator GNU C++ w wersji 2.5 lub późniejszej.
gzip
Program do kompresji i dekompresji plików. Używa innych (wydajniejszych) algorytmów niż standardowy program compress, ale potrafi radzić sobie z plikami spakowanymi tym programem, jak również programem pack.
hp2xx
hp2xx to program, który wczytuje pliki w formacie HPGL, rozkłada wszystkie polecenia rysowania na elementarne wektory, po czym zapisuje je w różnych formatach wektorowych (PostScript, Metafont, formaty TeX i uproszczony HPGL) oraz rastrowych (PBM, PCX oraz HP-PCL).
indent
Program indent służy do formatowania kodu źródłowego napisanego w języku C zgodnie ze standardem GNU, ale potrafi też dostosować się do standardu K&R, BSD i innych. Można również zdefiniować własny standard. Rozpoznaje komentarze w stylu C++.
Ispell
Interaktywny korektor ortograficzny. Potrafi korzystać ze słowników systemowych oraz podanych przez użytkownika. Dostępny jest interfejs niezależny oraz zintegrowany z edytorem Emacs.
m4
Implementacja tradycyjnego procesora makr dla języka C. Zawiera kilka rozszerzeń, takich jak obsługa więcej niż dziewięciu parametrów makr, dołączanie plików, wykonywanie poleceń powłoki i obsługa arytmetyki.
make
make to wzbogacona wersja tradycyjnego programu do zarządzania powiązanymi ze sobą plikami. Wersja GNU obsługuje długie nazwy opcji, kompilację równoległą, elastyczne wzorce reguł, wykonanie warunkowe i potężny zestaw funkcji do manipulowania tekstem. W najnowszych wersjach udoskonalono raportowanie błędów i dodano obsługę popularnej składni += dla dołączania tekstu do wartości zmiennej. Jeśli chcesz dowiedzieć się więcej na temat tego programu, przejdź do rozdziału 56. „Zarządzanie kodem źródłowym”.
mtools
mtools to zestaw programów (na licencji public domain), które pozwalają Linuxowi czytać, zapisywać i manipulować zbiorami w DOS-owym systemie plików (zazwyczaj na dysku).
MULE
Rozszerzenie Emacs 18 (ang. MULtilingual Enhancement) służące do obsługi różnych języków. Potrafi wyświetlić wiele zestawów znaków równocześnie, włączając w to znaki japońskie, chińskie, koreańskie, wietnamskie, greckie, zestawy ISO Latin 1-5, ukraińskie i rosyjskie. Bufor tekstowy MULE może zawierać tekst składający się ze znaków we wszystkich tych językach. Do ich wprowadzania można używać różnych metod oferowanych przez MULE.
NetFax
NetFax to darmowy program do obsługi faksu dla sieciowych systemów linuxowych. Wymaga modemu obsługującego polecenia faksu w standardzie Class 2.
NetHack
Gra przygodowa, działająca w trybie ASCII lub graficznym.
NIH Class Library
Biblioteka przenośnych klas dla języka C++, podobnych do zawartych w Smalltalk-80, a opracowanych przez Keitha Gorlena pracującego w National Institutes of Health (NIH).
nvi
nvi to darmowa implementacja edytora vi. Zawiera kilka udoskonaleń, takich jak dzielenie ekranu, użycie wielu buforów, możliwość obsługi znaków ośmiobitowych, plików o dowolnym rozmiarze i długości wiersza, cofanie poleceń o dowolna liczbę poziomów oraz ulepszoną obsługę wyrażeń wieloznacznych.
Octave
Octave to język wysokiego poziomu przeznaczony głównie do obliczeń numerycznych. Udostępnia wygodny interfejs oparty na wierszu poleceń, umożliwiający rozwiązywanie numeryczne problemów liniowych i nieliniowych.
Obsługuje arytmetykę liczb rzeczywistych, zespolonych, macierzy i wektorów, rozwiązuje układy równań nieliniowych, całkuje funkcje w przedziałach skończonych i nieskończonych, potrafi również całkować układy równań różniczkowych.
Oleo
Oleo to arkusz kalkulacyjny obsługujący interfejs X oraz interfejs tekstowy. Potrafi eksportować pliki do formatu PostScript i konfigurować klawiaturę podobnie jak system Emacs. Pracując pod kontrolą X i w PostScripcie, obsługuje czcionki o zmiennej szerokości.
p2c
p2c to translator kodu napisanego w języku Pascal na C. Rozpoznaje wiele rodzajów Pascala, takich jak Turbo, HP, VAX i ISO i generuje działający (przeważnie) kod w języku C. Może zaoszczędzić mnóstwo pracy, gdy trzeba przetłumaczyć programy z Pascala na C.
patch
patch to program, który na podstawie pliku wygenerowanego przez program diff i starej wersji pliku potrafi wygenerować jego nowszą wersję. Używany głównie do rozprowadzania drobnych poprawek w kodzie źródłowym.
PCL
Darmowa wersja dużego podzbioru systemu CLOS (Common Lisp Object System). Wymaga opisanego wcześniej programu CLISP.
perl
perl to język programowania opracowany przez Larryego Walla, który łączy w sobie zalety języków sed, awk, skryptów powłoki i języka C, posiada również możliwość wywoływania funkcji systemowych i bibliotecznych języka C. Jest bardzo często używany do tworzenia rozbudowanych aplikacji nie obsługujących skomplikowanych struktur danych. Emacs 19 udostępnia tryb edycji zorientowany na pracę z kodem źródłowym w języku perl.
ptx
Jest to wersja GNU programu do generowania indeksów. Obsługuje wiele plików wejściowych jednocześnie, potrafi produkować pliki w formacie kompatybilnym z TeX lub w formacie KWIC (ang. KeyWords In Context, słowa kluczowe w kontekście), które mogą być odczytane bez użycia żadnego programu formatującego.
rc
rc to interpreter poleceń, którego cechą charakterystyczną jest składnia bardzo przypominająca język C (nawet bardziej niż w przypadku interpretera csh). Może być używany interaktywnie i w skryptach.
RCS
System zarządzania wersjami kodu źródłowego (ang. Revision Control System). Używany łącznie z programem diff może obsługiwać pliki binarne, takie jak programy czy pliki pośrednie. Więcej informacji o nim znaleźć można w rozdziale 56.
recode
Program recode pozwala zmienić używany w dokumencie tekstowym zestaw znaków. Kiedy tłumaczenie dokładne jest niemożliwe, usuwa nieprawidłowe znaki lub zastępuje je podobnymi. Rozpoznaje ponad 150 różnych zestawów znaków i pozwala na konwersję pomiędzy prawie każdymi dwoma.
regex
Biblioteka służąca do obsługi symboli wieloznacznych, wykorzystywana w wielu programach. Teraz jest dostępna również w wersji samodzielnej. Jej szybsza wersja dołączana jest do edytora sed.
Scheme
Język programowania związany z LISP-em. Główną różnicą jest fakt, że Scheme potrafi przekazywać funkcje jako argumenty innych funkcji i zwracać funkcje jako rezultat wywołania funkcji. Funkcje mogą również być wartością wyrażenia, bez konieczności definiowania ich pod konkretną nazwą.
screen
screen to program, który potrafi uruchomić kilka terminali (tty) na jednym fizycznym terminalu tekstowym. Każdy z terminali wirtualnych emuluje VT100 z kilkoma dodatkowymi funkcjami; może zostać również uśpiony, a następnie przywrócony jako inny typ terminalu.
sed
sed to nieinteraktywna, zorientowana na pracę ze strumieniami danych wersja edytora ed. Jest często używana w skryptach powłoki i niezastąpiona w przypadku, gdy zachodzi potrzeba dokonania takich samych zmian w wielu plikach lub napisania programu konwertującego. Dołączona jest do niego biblioteka rx, będąca szybszą wersją biblioteki regex.
Shellutils
Shellutils to zestaw programów, które mogą być używane interaktywnie oraz w skryptach, takich jak: basename, date, dirname, echo, env, expr, false, groups, id, nice, nohup, printenv, printf, sleep, stty, su, tee, test, true, tty, uname, who, whoami oraz yes.
Smalltalk
Interpreter języka programowania zorientowanego obiektowo, napisany w C. Jest coraz popularniejszy wśród programistów, ponieważ uważany jest za język „czysto obiektowy”.
Zaletami wersji GNU są: możliwość zapisywania binarnego pliku obrazu, wywołania kodu napisanego w C i przekazania do niego parametrów, tryb edycji Emacs, wersja protokołu X, która może być wywołana z poziomu języka Smalltalk, oraz automatycznie ładowane osobiste pliki konfiguracyjne. Zaimplementowane są wszystkie klasy i protokoły Smalltalk-80, za wyjątkiem obsługi grafiki.
Superopt
Superopt to program do optymalizacji funkcji, który stosuje wielokrotne generowanie i testowanie, by znaleźć sekwencję instrukcji realizującą daną funkcję w najkrótszym czasie. Jego interfejs jest prosty: trzeba tylko podać programowi gso (GNU Super Optimizer) żądaną funkcję, procesor docelowy oraz maksymalną liczbę instrukcji, którą możesz zaakceptować.
tar
tar to program do archiwizacji plików, obsługujący zapis na różnych nośnikach, automatyczną kompresję i dekompresję archiwów, archiwizację w systemach zdalnych oraz mający inne zalety pozwalające używać go do robienia pełnych i różnicowych kopii zapasowych.
Biblioteka Termcap
Odpowiednik standardowej biblioteki libtermcap.a. Nie nakłada, w przeciwieństwie do innych implementacji, ograniczeń na rozmiar wpisów Termcap.
TeX
System formatowania dokumentów, który doskonale radzi sobie ze skomplikowanym składem, nie wyłączając równań matematycznych. Jest to standardowy system formatowania tekstu dla programów objętych licencją GNU. Więcej informacji na jego temat zawiera rozdział 19. „TeX i LaTeX”.
Texinfo
Texinfo to zestaw programów generujących podręczniki w wersji nadającej się do druku oraz w formacie z odnośnikami hipertekstowymi (nazywanym Info). Zawiera również programy do przeglądania dokumentacji zapisanej w formacie Info. Wersja 3 zawiera zarówno programy samodzielne, jak i zintegrowane z edytorem Emacs. Edytor Emacs posiada specjalny tryb służący do tworzenia plików w tym formacie. W skład zestawu wchodzą programy: makeinfo, info, texi2dvi, texindex, tex2patch i fixfonts.
Textutils
Tradycyjne programy do manipulowania plikami tekstowymi, takie jak: cat, cksum, comm, csplit, cut, expand, fold, head, join, nl, od, paste, pr, sort, split, sum, tac, tail, tr, unexpand, uniq, oraz wc.
Tile Forth
Tile Forth to 32-bitowa implementacja standardu Forth-83, napisana w języku C. Tradycyjne wersje pisane są w asemblerze, co powoduje, że wykorzystują sprzęt w najwyższym stopniu, ale niestety zmniejsza ich przenośność.
time
Program time używany jest do zbierania informacji statystycznych o liczbie użytkowników, systemie oraz rzeczywistym czasie procesora zajmowanym przez procesy.
tput
tput to przenośny sposób na wykorzystanie specjalnych poleceń terminali w skryptach powłoki. Wersja GNU używa bazy danych Termcap, zamiast - jak robią to inne wersje - Terminfo.
UUCP
UUCP służy do kopiowania plików pomiędzy komputerami UNIX-owymi. Obsługuje wiele protokołów: f, g, v (wszystkie okna i wielkości pakietów), G, t, e, Zmodem, oraz nowe protokoły dwukierunkowe (i oraz j). Jeśli posiadasz bibliotekę Berkley Sockets, pozwala nawiązywać połączenia TCP. Za pomocą biblioteki TLI może również obsługiwać połączenia TLI.
uuencode/uudecode
Programy uuencode i uudecode używane są do kodowania danych binarnych, które mają zostać przesłane poprzez sieci obsługujące tylko podstawowe znaki ASCII (najczęściej w grupach dyskusyjnych).
wdiff
wdiff to jeszcze jeden interfejs dla programu diff. Porównuje dwa pliki, wskazując, które słowa zostały usunięte lub dodane do pierwszego tak, by powstał drugi. Obsługuje wiele formatów wyjściowych i współpracuje z takimi programami, jak more. wdiff jest szczególnie przydatny, gdy teksty różnią się tylko kilkoma słowami i układem akapitów.
Podsumowanie
Projekt GNU dostarcza oprogramowania UNIX-owego każdemu, kto jest nim zainteresowany, pod warunkiem że pozostanie ono darmowe. Oprogramowanie to może być skompilowane w wielu systemach operacyjnych, także w Linuxie. Wiele z programów to ulepszone wersje programów standardowych, takich jak kompilatory, interpretery poleceń czy debuggery. Istnieją również gry, edytory tekstu, programy kalkulacyjne i komunikacyjne objęte licencją GNU. Każdy z nich może zostać osobno zdekompresowany i skompilowany.
Edytory tekstów, które mogą służyć do tworzenia własnych dokumentów, opisane są szczegółowo w rozdziale 16. „Edytory tekstu: vi i emacs”.
O drukowaniu dokumentów możesz przeczytać w rozdziale 20. „Drukowanie”.
Programowanie w języku awk, przeznaczonym głównie do zarządzania plikami, opisane jest w rozdziale 25. „gawk”.
208 Część II ♦ Poznawanie Linuxa
208 E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\10.DOC
E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\10.DOC 193
Rozdzia³ 10. ♦ Programy użytkowe projektu GNU 207
Nie znam polskiego odpowiednika słowa embeddable (o ile takowy w ogóle istnieje). 1. „osadzalny” usunąć 2. sprawdzić w Inecie pod hasłem DejaGNU[Author ID1: at Wed Mar 17 11:32:00 1999 ]