Dalej Wyżej Poprzednio Spis treści indeks
Dalej: Komenda telnet Wyżej: Podręcznik użytkownika Poprzednio: MS-DOS i PC/TCP

Połączenie ,,terminalowe'' z innym komputerem

Do łączenia się użytkownika ze zdalnym komputerem służą komendy telnet i rlogin. Można również wykorzystać program kermit. Mimo iż najczęściej jest on wykorzystywany do połączeń terminalowych z wykorzystaniem modemu w najnowszych wersjach można z powodzeniem wykorzystywać go do uzyskiwania połączeń z wykorzystaniem sieci.

Funkcja zdalnego terminala umożliwia lokalnemu użytkownikowi (po połączeniu się ze zdalnym komputerem) na wydawanie komend interpretowanych przez zdalny system operacyjny i uruchamianie aplikacji. Bardzo ważną sprawą jest właściwe poinformowanie komputera, z którym się łączymy, jakie funkcje pozwala realizować używany terminal. Pozwoli to zdalnym aplikacjom w odpowiedni sposób pozycjonować kursor i właściwie interpretować naciskane przez nas klawisze.

Cechą specyficzną programów telnet i rlogin w systemie UNIX jest to, że nie emulują one (na ogół) żadnego typu terminala. Służą one jedynie do możliwie ,,przeźroczystego'' transportu znaków między komputerem zdalnym i lokalnym. Oznacza to tyle, że jeżeli pracujemy na komputerze lokalnym z terminala określonego typu, łącząc się z innym komputerem ciągle będziemy pracować z terminala tego samego typu. Cały problem polega jedynie na poinformowaniu zdalnego komputera o typie terminala z którego pracujemy. Protokól połączenia przekazuje podstawowe informacje o typie terminala. Problem może polegać na tym, że taki typ nie jest rozpoznawany przez zdalny komputer albo na tym, że jest źle ustawiony na komputerze lokalnym.

Co robić w takim przypadku?

Niestety nie ma no to pytanie łatwej i jednoznacznej odpowiedzi. Musimy posiadać pewną minimalną wiedzę na temat:

Warto również w zbiorze .profile (jeżeli korzystamy z ksh lub sh i pochodnych) zdalnego komputera umieścić linię o takiej lub podobnej treści ([16]):  
eval `tset -m :\?${TERM:-vt100} -r -s -Q`
Dla csh może wyglądać tak (???????)
set noglob
eval `tset -s -Q -m '?vt100'`
Komenda ta odczytuje ze zmiennej środowiska typ terminala uzgodniony podczas nawiązywania połączenia; jeżeli zmienna środowiska jest pusta podstawia za nią terminal typu ,,vt100'' (można tu wstawić typ bardziej nam odpowiadający), a następnie odpytuje użytkownika czy wartość jest właściwa:
TERM = (vt100)
na koniec, wreszcie, ustawia odpowiedni typ terminala w środowisku i inicjalizuje go.

Po połączeniu - możemy sprawdzić wartość zmiennej środowiska TERM za pomocą komendy env lub wydając polecenie:

echo $TERM
a następnie próbować zmienić jej wartość (gdy jest niewłaściwa) za pomocą komend:
TERM=value; export TERM - gdy używamy sh lub ksh
setenv TERM value - gdy pracujemy z csh.

Kolejny problem, który może sprawiać problemy ustalenie zestawu znaków używanych do:

Do sprawdzenia i zmiany wartości tych parametrów w systemie UNIX służy komenda stty.  Odpowiednie ustawienia możemy sprawdzić wydając komendę: stty -a, a żądane wartości ustawiać w pliku .profile  lub .login  albo wydawać z linii komendy.

Najczęściej spotykane ustawienia parametrów: kasowanie poprzedniego znaku (erase): Ctrl-H lub Del; przerwanie procesu (): Del albo Ctrl-C; zawieszenie wykonania zadania (susp): Ctrl-Z.

Można zdefiniować jeszcze (jeżeli nie zostało to zrobione) znak służący do kasowania słowa (werase): Ctrl-W i całej linii (kill): Ctrl-U.

Odpowiedni zestaw znaków należy wybrać w zależności od przyzwyczajeń użytkownika i możliwości terminala, z którego nawiązuje połączenie.

Oto przykładowe ustawienie parametrów (wygodne podczas pracy z terminala hpterm):

export TERM=hp
stty erase \^H intr \^C

W dawnych czasach (gdy pracowano na terminalach typu teletype - dalekopis) znakami używanymi do kasowania znaku poprzedniego był: #, a znakiem używanym do kasowania całej linii: @. Niestety, te czasy nie odeszły w przeszłość tak zupełnie: znaki te są używane przez system HP-UX jako znaki standardowe i zmieniane komendą stty. W szczególności obowiązują one w trakcie procedury podawania nazwy użytkownika i hasła (z wszelkimi tego konsekwencjami).




Dalej Wyżej Poprzednio Spis treści indeks
Dalej: Komenda telnet Wyżej: Podręcznik użytkownika Poprzednio: MS-DOS i PC/TCP

Wojciech Myszka
pią, 14 lis 1997 11:12:41