Obsługa Octave’a

Programy konsolowe

Większość użytkowników komputerów przyzwyczaiła się do programów sterowanych za pomocą myszki. W takich programach myszka służy m.in. do uruchamiania i zamykania programów, wybierania opcji w menu głównym lub kontekstowym, obsługi pasków narzędzi, zaznaczania fragmentów tekstu – w zasadzie myszka służy do wszystkiego z wyjątkiem wprowadzania tekstu. Dlatego programy takie jak Octave, w których wszystkie polecenia wydaje się za pomocą klawiatury, u użytkowników przyzwyczajonych do „okienek” budzą zdziwienie i obawę. Po kilku próbach zrobienia czegokolwiek bez myszy w programie niewyświetlającym menu i pasków narzędzi osoby takie zwykle rezygnują i wyłączają program, by nigdy do niego nie wrócić. Błąd! Programy obsługiwane za pomocą klawiatury (tzw. programy konsolowe) stosują bowiem pewne standardowe mechanizmy mające na celu uproszczenie ich obsługi. Wystarczy zapoznać się z tymi mechanizmami, by dość pewnie obsługiwać niemal każdy współczesny program konsolowy.

Dlaczego jednak w ogóle w XXI wieku wciąż powstają programy konsolowe? Dlaczego cieszą się sporym powodzeniem? Otóż podstawowa zaleta programów konsolowych, decydująca o ich przydatności, polega na łatwości automatyzacji ich obsługi. Octave może być bowiem używany nie tylko jako program interakcyjnie komunikujący się z człowiekiem, ale także jako program automatycznie wywoływany przez inne programy bez ingerencji człowieka. Tekstowa obsługa programu umożliwia traktowanie Octave jako języka programowania, przy czym tworzenie tych programów jest banalnie proste: składają się one po prostu z ciągu komend, które równie dobrze można by osobiście wydać z konsoli tekstowej. Programy konsolowe na wejściu otrzymują strumień znaków i jako wynik swojego działania produkują inny strumień znaków. Takie programy podlegają łatwej standaryzacji swoich interfejsów i mogą stanowić bazę dla bardziej zaawansowanych, łatwiejszych w obsłudze, ale mniej elastycznych rozwiązań.

Doskonałym przykładem skuteczności powyższej filozofii jest Octave w wersji 4. Otóż program ten dystrybuowany jest w dwóch wersjach: jednej, uruchamianej z linii komend (tzw. CLI, ang. command-line interface) i drugiej, w pełni okienkowej (GUI, ang. graphical user interface). Otóż wersja okienkowa jest jedynie nakładką na wersję CLI. Obie wersje da się uruchomić poprzez tzw Terminal (Ctr+Alt+T) używając odpowiednio komend: octave lub octave –gui

octave 4.0
Octave 4.0 w wersji konsolowej (CLI)
octave-gui
Octave 4.0 w wersji z graficznym interfejsem użytkownika (GUI)

Czas na zapowiadane „sztuczki” ułatwiające pracę w konsoli tekstowej.

„Strzałka w górę” (↑) i „strzałka w dół” (↓)

Klawisze nawigacyjne (tzw. kursory) „strzałka w górę” (↑) i „strzałka w dół” (↓) to chyba najczęściej używane klawisze sterujące Octave. Służą one do przywoływania na ekranie poprzednich komend. Dzięki temu nie musimy tych samych poleceń wpisywać wielokrotnie. Wystarczy odnaleźć odpowiednie polecenie wśród poleceń wydawanych niedawno i albo zatwierdzić je od razu klawiszem <enter>, albo wpierw dokonać stosownych zmian. Oczywiście w wersji GUI można odpowiednią komendę (lub jej fragment) zaznaczyć i skopiować w tradycyjny sposób. Uwaga: mechanizm strzałek (↑, ↓) pozwala cofnąć się nawet do poleceń, których używaliśmy w poprzednich sesjach programu! Wiąże się to z używaniem przez Octave tzw. mechanizmu historii.

Historia poleceń

Polecenie history wyświetla historię komend wydawanych Octave:

> history

Polecenie to wyświetla zwykle całą listę kilkuset poleceń, jakie ostatnio wydawaliśmy Octave, łącznie z poprzednimi sesjami. Taka liczba wierszy nie mieści się w tradycyjnym okienku konsoli. Dlatego Octave wyświetla tekst partiami po 24 wiersze. Ostatni, 25. wiersz zawiera informację o tym, jak można poruszać się po wyświetlanym tekście:

-- less -- (f)orward, (b)ack, (q)uit

Napis -- less -- oznacza, że program znajduje się w trybie przeglądania zgodnym z linuksowym programem less. Klawisz f przewija tekst o jeden ekran do przodu, b – o ekran do tyłu, natomiast q powoduje powrót do trybu komend.

Tabulator, czyli autouzupełnianie

Kolejnym nieocenionym mechanizmem pomocniczym programu jest klawisz <tab>. Służy on do włączania mechanizmu automatycznego uzupełniania nazw funkcji i plików. Jak to działa? Przypuśćmy, że chcemy wywołać funkcję roots służącą do znajdowania pierwiastków wielomianów. W tym celu wystarczy napisać trzy pierwsze litery tej funkcji (roo) i przycisnąć klawisz <tab>. Octave sam uzupełni brakujące litery.

Jeżeli przed przyciśnięciem klawisza <tab> wprowadzimy zbyt mało liter i Octave nie będzie w stanie jednoznacznie określić, o które polecenie nam chodzi, program nie wykona żadnej czynności. Jeżeli w tej sytuacji ponownie przyciśniemy <tab>, program wyświetli listę wszystkich dopuszczalnych uzupełnień naszego wpisu. To bardzo użyteczny sposób “przypominania” sobie nazw poleceń.

Mechanizm automatycznego uzupełniania obejmuje nie tylko polecenia programu, ale też nazwy plików w katalogu bieżącym. Cecha ta znacznie upraszcza wprowadzanie nazw plików i praktycznie eliminuje literówki. Automatyczne uzupełnianie może też być używane podczas wpisywania argumentów poleceń, np. help.

Inne skróty klawiaturowe

Oprócz klawiszy ↑, ↓ i Tab, Octave obsługuje kilkadziesiąt (!) innych skrótów klawiaturowych ułatwiających edycję poleceń. Najważniejsze z nich to:

  • ctrl+r – ułatwia wyszukiwanie konkretnego wpisu w historii poleceń. Zamiast przeszukiwać historię poleceń klawiszami ↑ i ↓, wystarczy wcisnąć ctrl+r, po czym wpisać kilka pierwszych liter poszukiwanego polecenia. Jest to tryb tzw. przeszukiwania inkrementalnego.
  • kursor w lewo (), kursor w prawo () – przemieszczają kursor o literę w lewo lub prawo.
  • ctrl + k – wycina (ang. kills) do podręcznego bufora zawartość  bieżącego wiersza począwszy od pozycji kursora.
  • ctrl + y – kopiuje (ang. yanks) tekst z podręcznego bufora.
  • ctrl + g – porzucenie trybu inverse search.
  • esc – uniwersalny sposób na wyjście z niestandardowego trybu działania konsoli, np. inverse-search.

Polecenia help i doc

Zapamiętywanie nazw i znaczenia setek poleceń typowego programu komputerowego byłoby zajęciem wyjątkowo nużącym i bezproduktywnym. Dlatego programy posiadają wbudowane mechanizmy pomocy dla użytkownika. Programy okienkowe standardowo udostępniają ten mechanizm poprzez pozycję „Pomoc” w menu lub skrót klawiaturowy F1. Octave, jak większość programów konsolowych, udostępnia system pomocy poprzez komendę help:

>> help

Czyste polecenie help wyświetla informacje dotyczące całego programu, a konkretnie – spis wszystkich poleceń programu rozpoznawanych przez system pomocy. Zwykle jednak potrzebujemy informacji o konkretnej funkcji programu. W tym wypadku podajemy ją jako argument polecenia help. Np. aby uzyskać szczegółowe informacje o znaczeniu i wszystkich możliwościach instrukcji format, wydajemy polecenie

>> help format

Oczywiście instrukcja help wyświetla informacje jako tekst, który zwykle zajmuje więcej niż jeden ekran. Do przemieszczania się po nim służą standardowe klawisze nawigacyjne: PageDown, PageUp, Kursor w dół, Kursor w górę, Home i End

Polecenie help swoje informacje wyświetla w specjalnym trybie, tzw. trybie pomocy, w którym z ekranu znikają wszystkie informacje niezwiązane z systemem pomocy programu. Aby wrócić do normalnego trybu edycji, przyciskamy klawisz q (ang. quit).

System pomocy Octave zapewnia także bezpośredni dostęp do całego, wieluset stronicowego podręcznika. Oczywiście jest on wyświetlany w formie tekstowej. Stosowne polecenie to doc, np.

>> doc operators

wyświetla (oczywiście w trybie tekstowym!) fragment podręcznika dotyczący operatorów. W czystej konsoli polecenie doc działa w osobnym trybie, tzw. info, którego nie będę tu bliżej omawiał. Tryb info opuszczamy klawiszem q.

Internetowa (HTML) wersja podręcznika znajduje się tu.

Z kolei wersja Octave GUI udostępnia dokumentację w osobnej zakładce. Jest to jednak tylko graficzna nakładka na informacje udostępniane w trybie tekstowym.

Pliki pomocnicze

Octave posługuje się kilkoma plikami pomocniczymi:

  • .octave_hist to plik przechowujący wprowadzane przez nas komendy. Dzięki niemu mechanizm historii poleceń działa nawet po wyłączeniu i włączeniu programu.
  • .octaverc to plik wczytywany tuż po uruchomieniu programu. Można w nim umieścić własne polecenia dostosowujące konfigurację programu do naszych upodobań.

W systemie Linux pliki te znajdują się w katalogu domowym. W Windows prawdopodobnie ich lokalizację określa zmienna środowiskowa USERPROFILE.

Gdzie są moje pliki?

Pracując z programem Octave, często posługujemy się dodatkowymi plikami. Musimy jednak mieć pewność, że program potrafi je (poprawnie) zlokalizować. Do osiągnięcia tego celu służą następujące komendy:

  • pwd – wyświetla nazwę bieżącego katalogu.
  • ls – wyświetla zawartość katalogu bieżącego.
  • cd – zmienia katalog bieżący

Oto przykład ich zastosowania (w systemie Linux):

> pwd
ans = /home/zkoza
> cd octave
> pwd
ans = /home/zkoza/octave
> ls
programik.m

W powyższym przykładzie: najpierw za pomocą polecenia pwd sprawdzam, że bieżącym katalogiem programu jest /home/zkoza; następnie poleceniem cd zmieniam ten katalog na /home/zkoza/octave, sprawdzam wartość bieżącego katalogu (pwd) i wyświetlam jego zwartość (ls). W katalogu tym znajduje się tylko jeden, wcześniej umieszczony tam plik o nazwie programik.m.

Informacja dla zaawansowanych: w systemach Uniksowych polecenie ls przyjmuje praktycznie te same opcje, co analogiczne polecenie w systemach UNIX-owych, np ls -l.

W wersji okienkowej operacje na plikach ułatwia okienko File Browser. Pamiętaj by File Browser pokazywał dobry folder w którym zapisane zostały twoje skrypty. Równie ważne jest płynne przeskakiwanie między tabami: z komendami a edytorem.

Octave online