.\" -*- coding: UTF-8 -*- .\"*************************************************************************** .\" Copyright 2018-2024,2025 Thomas E. Dickey * .\" Copyright 1998-2016,2017 Free Software Foundation, Inc. * .\" * .\" Permission is hereby granted, free of charge, to any person obtaining a * .\" copy of this software and associated documentation files (the * .\" "Software"), to deal in the Software without restriction, including * .\" without limitation the rights to use, copy, modify, merge, publish, * .\" distribute, distribute with modifications, sublicense, and/or sell * .\" copies of the Software, and to permit persons to whom the Software is * .\" furnished to do so, subject to the following conditions: * .\" * .\" The above copyright notice and this permission notice shall be included * .\" in all copies or substantial portions of the Software. * .\" * .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS * .\" OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. * .\" IN NO EVENT SHALL THE ABOVE COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, * .\" DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR * .\" OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR * .\" THE USE OR OTHER DEALINGS IN THE SOFTWARE. * .\" * .\" Except as contained in this notice, the name(s) of the above copyright * .\" holders shall not be used in advertising or otherwise to promote the * .\" sale, use or other dealings in this Software without prior written * .\" authorization. * .\"*************************************************************************** .\" .\" $Id: tset.1,v 1.94 2025/01/19 00:51:54 tom Exp $ .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH tset 1 "18 stycznia 2025 r." "ncurses 6.6" "Polecenia użytkownika" .ie \n(.g \{\ .ds `` \(lq .ds '' \(rq .ds ^ \(ha .\} .el \{\ .ie t .ds `` `` .el .ds `` "" .ie t .ds '' '' .el .ds '' "" .ds ^ ^ .\} . .de bP .ie n .IP \(bu 4 .el .IP \(bu 2 .. . .SH NAZWA \fB\%tset\fP, \fB\%reset\fP \- inicjuje lub resetuje stan terminala .SH SKŁADNIA \fBtset\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIznak\fP] [\fB\-i\fP \fIznak\fP] [\fB\-k\fP \fIznak\fP] [\fB\-m\fP \fImapowanie\fP] [\fItyp\-terminala\fP] .br \fBreset\fP [\fB\-IQVcqrsw\fP] [\fB\-\fP] [\fB\-e\fP \fIznak\fP] [\fB\-i\fP \fIznak\fP] [\fB\-k\fP \fIznak\fP] [\fB\-m\fP \fImapowanie\fP] [\fItyp\-terminala\fP] .SH OPIS .SS "\fItset\fP \[em] inicjalizacja" Program ten inicjuje terminale. .PP Na począteku \fBtset\fP pobiera bieżące ustawienia trybu terminala dla terminala użytkownika. Czyni to sprawdzając kolejno .bP standardowe wyjście błędów, .bP standardowe wyjście, .bP standardowe wejście .bP i na końcu \[Bq]/dev/tty/\[rq] .PP w celu pobrania ustawień terminala. Po uzyskaniu ustawień, \fBtset\fP zapamiętuje, którego deskryptora pliku należy użyć przy aktualizowaniu ustawień. .PP Następnie, \fBtset\fP określa rodzaj używanego terminala. Robi to na podstawie poniższych danych, korzystając z pierwszego pasującego typu terminala: .PP 1. Argumentu \fItyp\-terminala\fP, podanego w wierszu poleceń. .PP 2. Wartości zmiennej środowiskowej \fITERM\fP. .PP 3. (Tylko systemy BSD.) Typu terminala, związanego poprzez plik \fI/etc/ttys\fP z urządzeniem stderr (na komputerach z Systemem\ V i w systemach używających jego konwencji, robotę tę wykonuje \fI\%getty\fP, ustawiając \fITERM\fP zgodnie z typem, przekazanym mu przez \fI\%/etc/inittab\fP). .PP 4. Domyślny typ terminala, \[Bq]unknown\[rq], nie jest odpowiedni dla aplikacji korzystających z curses. .PP Jeśli rodzaj terminala nie był podany w wierszu poleceń, to załączane są mapowania opcji \fB\-m\fP (zob. podrozdział \[Bq]Mapowanie typu terminala\[rq]). Potem, jeśli typ terminala zaczyna się od pytajnika (\[Bq]?\[rq]), użytkownik jest pytany o potwierdzenie. Pusta odpowiedź potwierdza typ, a niepusta wprowadza inny. Gdy terminal zostanie już określony, odczytywany jest opis terminala. Jeśli nie ma dla niego opisu terminala, użytkownik jest proszony o podanie innego typu terminala. .PP Po pobraniu opisu terminala: .bP jeśli włączono opcję \[Bq]\fB\-w\fP\[rq], \fBtset\fP może zaktualizować rozmiar okna terminala; .IP jeśli rozmiaru okna nie można uzyskać od systemu operacyjnego, lecz można z opisu terminala (lub ze środowiska np. określają go zmienne \fILINES\fP (wiersze) i \fI\%COLUMNS\fP (kolumny)), korzysta z tego do ustawienia wyobrażenia systemu operacyjnego o rozmiarze okna; .bP jeśli włączono opcję \[Bq]\fB\-c\fP\[rq], ustawiane są m.in. znaki kasowania (erase), przerwania (interrupt) i usunięcia linii (line kill); .bP o ile nie włączono opcji \[Bq]\fB\-I\fP\[rq], wysyła na standardowe wyjście błędów łańcuchy \fIinicjalizacji\fP tab lub terminala a, jeśli urządzenie terminala nie wygląda na pseudoterminal (który może być używany przez emulator terminala) \fBtset\fP odczekuje jedną sekundę (na wypadek, gdyby zarządzono reset sprzętowy); .bP Na koniec, jeśli znaki kasowania (erase), przerwania (interrupt) i usunięcia linii (line kill) zmieniły się, lub nie są ustawione na wartości domyślne, ich wartości są wyświetlane na wyjście stderr. .SS "\fIreset\fP \[em] ponowna inicjalizacja" Przy wywołaniu pod postacią \fBreset\fP, \fBtset\fP ustawia tryby terminala na \[Bq]rozsądne\[rq] wartości: .bP ustawia tradycyjne tryby \[Bq]cooked\[rq] i echo, .bP wyłącza tryby cbreak i raw, .bP włącza tłumaczenie znaków nowego wiersza .bP i przywraca wejściowym znakom specjalnym ich wartości domyślne .PP przed dokonaniem inicjalizacji terminala opisanej wyżej. Dodatkowo, zamiast korzystać z łańcuchów \fIinicjalizacji\fP terminala, używa łańcuchów \fIresetowania\fP terminala. .PP Polecenie \fBreset\fP jest przydatne w sytuacjach, gdy jakiś program zginie, pozostawiając terminal w niepoprawnym stanie: .bP może być konieczne wpisanie .sp \fI\fP\fBreset\fP\fI\fP .sp (znak \[em] line\-feed to zazwyczaj control\-J) aby terminal zaczął działać, gdyż znak powrotu karetki może w stanie niepoprawnym nie działać. .bP Poza tym, wpisywane znaki polecenia często mogą nie być widoczne na terminalu. .SS "Ustawianie środowiska" Często do środowiska powłoki przydaje się wstawić typ terminala i informację o jego właściwościach. Dokonuje się tego przy użyciu opcji \fB\-s\fP. .PP Gdy podana jest opcja \fB\-s\fP, komendy wymagane do wstawienia informacji do środowiska powłoki są zapisywane na stdout. Jeśli zmienna środowiskowa \fISHELL\fP kończy się na \[Bq]csh\[rq], komendy są preparowane dla \fBcsh\fP(1), w przeciwnym wypadku tworzone są dla \fBsh\fP(1). Zestaw poleceń \fBcsh\fP ustawia, a następnie usuwa zmienną powłoki \fBnoglob\fP, pozostawiając ją nieustawioną. Następująca linia w \fB.login\fP czy \fB.profile\fP powinna prawidłowo zainicjować środowisko: .sp eval \(gatset \-s \fIopcje\fP ... \(ga . .SS "Mapowanie typu terminala" Gdy terminal nie jest ściśle przywiązany do systemu (lub bieżąca informacja systemowa może nie być prawidłowa), typ terminala wyprowadzony z pliku \fI/etc/ttys\fP lub ze zmiennej środowiskowej \fITERM\fP może być często czymś podstawowym, w rodzaju \fBnetwork\fP, \fBdialup\fP czy \fBunknown\fP. Gdy \fBtset\fP jest używany w skrypcie startowym, często dobrze jest udostępnić informację o typie terminala używanym na takich portach. .PP Opcja \fB\-m\fP mapuje z pewnych warunków na typ terminala, tj. mówi \fBtset\fP \[Bq]Jestem na tym porcie, z taką prędkością, więc chyba jestem na tym typie terminala\[rq]. .PP Argument opcji \fB\-m\fP składa się z opcjonalnego typu portu, opcjonalnego operatora i opcjonalnej szybkości oraz znaku dwukropka \[Bq]:\[rq] i typu terminala. Typ portu jest łańcuchem (rozdzielanym przez operator albo znak dwukropka). Operator może być dowolną kombinacją \[Bq]>\[rq], \[Bq]<\[rq], \[Bq]@\[rq] i \[Bq]!\[rq]; \[Bq]>\[rq] oznacza większy od, \[Bq]<\[rq] mniejszy od, \[Bq]@\[rq] równy, a \[Bq]!\[rq] odwraca sens testu. Szybkość jest podawana jako liczba i jest porównywana z szybkością wyjścia standardowego błędów (które powinno być kontrolującym terminalem). Typ terminala jest łańcuchem. .PP Jeśli w linii poleceń nie podano typu terminala, do typu stosowane są mapowania \fB\-m\fP. Jeśli typ portu i szybkość odpowiadają mapowaniu, terminal podany w mapowaniu podmienia typ obecny. Jeśli podanych jest więcej niż jedno mapowanie, użyte zostanie pierwsze pasujące. .PP Na przykład, rozważmy następujące mapowanie: \fBdialup>9600:vt100\fP. Typ portu to dialup, operator to >, szybkość to 9600, a typ terminala to vt100. Wynikiem mapowania jest określenie, że jeśli typ terminala to \fBdialup\fP, szybkość jest większa niż 9600 bodów, to należy używać terminala \fBvt100\fP. .PP Jeśli nie poda się szybkości, typ terminala będzie pasował do dowolnej szybkości. Jeśli nie poda się typu portu, terminal będzie pasował do dowolnego portu. Na przykład, \fB\-m dialup:vt100 \-m :?xterm\fP spowoduje, że dowolny port dialupowy, niezależnie od szybkości będzie odpowiadał terminalowi vt100, podczas gdy dowolny port niedialupowy będzie traktowany jako ?xterm. Proszę zauważyć, że z uwagi na pytajnik, użytkownik będzie zapytany o domyślnym porcie czy rzeczywiście używa terminala xterm. .PP W argumencie opcji \fB\-m\fP dozwolone są znaki białych spacji. Ponadto, aby zapobiec problemom z metaznakami, całą opcję \fB\-m\fP zaleca się umieszczać wewnątrz cytatów, a użytkownikom \fBcsh\fP umieszczanie lewych ukośników (\[Bq]\e\[rq]) przed znakami wykrzykników (\[Bq]!\[rq]). .SH OPCJE Dostępne są następujące opcje: .TP 5 \fB\-c\fP Ustawia tryby i znaki sterujące. .TP 5 \fB\-e\ \fP\fIznak\fP Ustawia znak kasowania (erase) na \fIznak\fP. .TP \fB\-I\fP Nie wysyła na terminal łańcuchów inicjalizacji tab lub terminala. .TP \fB\-i\ \fP\fIznak\fP Ustawia znak przerwania (interrupt) na \fIznak\fP. .TP \fB\-k\ \fP\fIznak\fP Ustawia znak usuwania linii (line kill) na \fIznak\fP. .TP \fB\-m\ \fP\fImapowanie\fP Podaje mapowanie z typu portu na terminal; zob. podrozdział \[Bq]Mapowanie typu terminala\[rq]. .TP \fB\-Q\fP Nie wyświetla wartości dla znaków kasowania (erase), przerwania (interrupt) i usunięcia linii (line kill). Zwykle \fBtset\fP wyświetla wartości znaków kontrolnych, które różnią się od domyślnych wartości systemowych. .TP \fB\-q\fP Typ terminala jest wyświetlany na standardowe wyjście i nie jest on w żaden sposób inicjowany. Opcja \[Bq]\-\[rq] jest równoważna, lecz archaiczna. .TP \fB\-r\fP Wypisuje typ terminala na standardowe wyjście błędów. .TP \fB\-s\fP Wypisuje na standardowe wyjście sekwencję komend powłoki, inicjujących zmienną środowiskową \fITERM\fP; zob. podrozdział \[Bq]Ustawianie środowiska\[rq]. .TP \fB\-V\fP Zgłasza wersję \fI\%ncurses\fP, z której skorzystał program i wychodzi. .TP \fB\-w\fP Zmienia rozmiar okna do rozmiaru wydedukowanego za pomocą \fBsetupterm\fP(3X). Zwykle opcja ta nic nie zmienia, chyba że \fBsetupterm\fP nie był w stanie wykryć rozmiaru okna. .PP Argumenty dla \fB\-e\fP, \fB\-i\fP i \fB\-k\fP mogą być wprowadzane jako normalne znaki, z użyciem notacji \[Bq]kapeluszowej\[rq], tj. control\-h może być podawany jako \[Bq]^H\[rq] czy \[Bq]^h\[rq]. .PP Jeśli nie poda się żadnej z opcji \fB\-c\fP i \fB\-w\fP, stosowane są obie. .SH ŚRODOWISKO Polecenie \fBtset\fP używa następujących zmiennych środowiskowych: .TP 5 \fISHELL\fP Przekazuje \fBtset\fP informację, czy do zainicjowania \fITERM\fP użyć składni \fBsh\fP(1) czy \fBcsh\fP(1). .TP 5 \fITERM\fP Wskazuje typ terminala użytkownika. Każdy typ jest odmienny, choć wiele jest podobnych. .TP 5 \fITERMCAP\fP Może wskazywać położenie bazy danych termcap. Jeśli nie jest to ścieżka absolutna (tj. zaczynająca się od \[Bq]/\[rq]), \fBtset\fP usunie tę zmienną ze środowiska przed rozpoczęciem szukania opisów terminali. .SH PLIKI .TP \fI/etc/ttys\fP Baza mapowań nazw portów na typy terminali (tylko wersje BSD). .TP \fI/usr/share/terminfo\fP Katalog ze skompilowaną bazą danych o terminalach. .SH PRZENOŚNOŚĆ Ani IEEE Std 1003.1/The Open Group Base Specifications Issue\ 7 (POSIX.1\-2008), ani X/Open Curses Issue 7 nie dokumentują \fBtset\fP i \fBreset\fP. .PP Narzędzie \fBtput\fP AT&T (AIX, HP\-UX, Solaris) dołączyło: możliwość modyfikacji trybu termianala oraz funkcje korzystające z termcap, takie jak resetowanie tabulatorów, z \fBtset\fP w BSD (4.1c), prawdopodobnie z intencją późniejszego zastąpienia \fBtset\fP. Jednak każdy z tych systemów wciąż zawiera \fBtset\fP. Co więcej, często stosowane narzędzie \fBreset\fP jest zawsze aliasem \fBtset\fP. .PP Narzędzie \fBtset\fP zapewnia wsteczną kompatybilność ze środowiskami BSD (pod większością Uniksów \fI/etc/inittab\fP i \fBgetty\fP(1) mogą ustawiać odpowiednio \fBTERM\fP dla dowolnej linii dial\-up, a to trywializuje to, co było najważniejszym zastosowaniem \fBtset\fP). Implementacja ta zachowuje się jak \fBtset\fP z 4.4BSD, lecz zawiera kilka wyjątków, do których teraz przejdziemy. .PP Kilka opcji jest odmiennych, ponieważ zmienna \fI\%TERMCAP\fP nie jest już obsługiwana w \fI\%ncurses\fP korzystającej z terminfo: .bP Opcja \fB\-S\fP \fBtset\fP z BSD już nie działa; wypisuje błąd na standardowe wyjście błędów i ginie. .bP Opcja \fB\-s\fP ustawia jedynie \fITERM\fP, lecz nie \fI\%TERMCAP\fP. .PP Istniała nieudokumentowana właściwość 4.4BSD, według której wywołanie \fBtset\fP poprzez dowiązanie o nazwie \[Bq]TSET\[rq] (lub poprzez inną nazwę, rozpoczynającą się od dużej litery) ustawiało terminal na używanie tylko dużych liter. Właściwość ta została pominięta. .PP Opcje \fB\-A\fP, \fB\-E\fP, \fB\-h\fP, \fB\-u\fP i \fB\-v\fP skasowano z narzędzia \fBtset\fP w 4.4BSD. Żadne z nich nie było udokumentowane w 4.3BSD i wszystkie miały w najlepszym wypadku ograniczoną przydatność. Opcje \fB\-a\fP, \fB\-d\fP i \fB\-p\fP są podobnie nieopisane lub nieużyteczne, lecz zostały utrzymane, gdyż okazuje się że są powszechnie używane. Jest mocno zalecane zmienienie wykorzystywania tych opcji na opcję \fB\-m\fP. Opcje \fB\-a\fP, \fB\-d\fP i \fB\-p\fP są z tej przyczyny pominięte w opisie powyżej. .PP Bardzo stare systemy, takie jak 3BSD, korzystały z innego sterownika terminala, który zastąpiono w 4BSD, we wczesnych latach 1980. Do obsługi tych systemów \fBtset\fP z 4BSD udostępniał opcję \fB\-n\fP wskazującą, że należy korzystać z nowego sterownika terminala. Niniejsza implementacja nie umożliwia takiego wyboru. .PP Wciąż jest dozwolone podawanie opcji \fB\-e\fP, \fB\-i\fP i \fB\-k\fP bez argumentów, choć mocno jest zalecane, by zmienić to na jawne podawanie znaku. .PP Od 4.4BSD, wywoływanie \fBtset\fP jako \fBreset\fP nie implikuje już opcji \fB\-Q\fP. Poza tym, interakcja między opcją \- a argumentem \fIterminal\fP, pochodząca z historycznych implementacji \fBtset\fP została usunięta. .PP We wcześniejszych implementacjach nie było opcji \fB\-c\fP i \fB\-w\fP. W 4.4BSD występowała jednak inna funkcja zmiany wymiarów okna. .bP W 4.4BSD, jeśli \fBtset\fP nie był w stanie uzyskać rozmiaru okna od systemu operacyjnego, w celu ustawienia rozmiaru okna, \fBtset\fP używał rozmiaru okna z opisu termcap. .bP W \fI\%ncurses\fP, \fBtset\fP uzyskuje rozmiar okna za pomocą \fB\%setupterm\fP(3X), które może pochodzić z systemu operacyjnego; ze zmiennych środowiskowych \fILINES\fP i \fICOLUMNS\fP; albo z opisu terminala. .PP Uzyskiwanie rozmiaru okna z opisu typu terminala jest powszechne w obu implementacjach, lecz jest uważane za przestarzałe. Ma praktyczne zastosowanie jedynie w terminalach sprzętowych. Rozmiar okna pozostanie niezainicjowany zwykle jedynie, gdy wystąpił problem w uzyskiwaniu tej wartości od systemu operacyjnego (i wciąż zawiedzie \fB\%setupterm\fP). Zmienne środowiskowe \fILINES\fP (wiersze) i \fI\%COLUMNS\fP (kolumny) mogą być zatem przydatne przy obchodzeniu problemów z rozmiarem okna, jednak mają tę wadę, że jeśli zmieni się rozmiar okna, wartości te muszą być przeliczone ponownie i podane na nowo. Pomaga w tym program \fI\%resize\fP(1), dostarczany razem z \fI\%xterm\fP(1). .SH HISTORIA .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/reset.c .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\ .\" reset.c Polecenie \fB\%reset\fP napisane przez Kurta Shoensa pojawiło się w 1BSD (marzec 1978 r.). Ustawia ono znaki \fIerase\fP i \fIkill\fP odpowiednio na \fB\*^H\fP (backspace) i \fB@\fP. Mark Horton dokonał usprawnień \fB\%reset\fP w 3BSD (październik 1979 r.), dodając znaki \fIintr\fP, \fIquit\fP, \fIstart\fP/\fIstop\fP i \fIeof\fP oraz zmieniając program w ten sposób, aby unikać modyfikacji ustawień użytkownika. Ta wersja \fB\%reset\fP nie korzystała z \fI\%termcap\fP. .PP .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/s6/tset.c .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=1BSD/man7/ttycap.7 .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=3BSD/usr/src/cmd/\ .\" tset/tset.c .\" and backported to 2.9BSD .\" https://minnie.tuhs.org/cgi-bin/utree.pl?file=2.9BSD/usr/src/ucb/\ .\" tset/tset.c Eric Allman napisał oddzielne polecenie \fBtset\fP dla 1BSD, korzystając z poprzednika \fI\%termcap\fP, zwanego \fI\%ttycap\fP. Komentarza Allmana w kodzie źródłowym wskazują, że rozpoczął nad tym pracę w październiku 1977 r., kontynuując ją przez kolejne kilka lat. Pod koniec roku 1979, dokonał migracji na \fI\%termcap\fP, pojawiła się też obsługa zmiennej \fI\%TERMCAP\fP. Kolejne komentarze wskazują, że \fBtset\fP został zmodyfikowany we wrześniu 1980 r. w celu używania logiki skopiowanej z programu \[Bq]reset\[rq] z 3BSD, gdy był on wywoływany jako \fB\%reset\fP. Ta wersja pojawiła się w 4.1cBSD, pod koniec 1982 r. Inni deweloperzy, tacy jak Keith Bostic i Jim Bloom kontynuowali modyfikowanie \fBtset\fP do momentu wydania 4.4BSD w 1993 r. .PP Implementacja \fIncurses\fP została częściowo zaadaptowana ze źródeł 4.4BSD do interfejsu programistycznego \fIterminfo\fP przez Erica S.\& Raymonda . .SH "ZOBACZ TAKŻE" \fB\%csh\fP(1), \fB\%sh\fP(1), \fB\%stty\fP(1), \fB\%curs_terminfo\fP(3X), \fB\%tty\fP(4), \fB\%terminfo\fP(5), \fB\%ttys\fP(5), \fB\%environ\fP(7) .PP .SH TŁUMACZENIE Tłumaczenie niniejszej strony podręcznika: Przemek Borys , Wojtek Kotwica i Michał Kułach . .PP Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z .UR https://www.gnu.org/licenses/gpl-3.0.html GNU General Public License w wersji 3 .UE lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI. .PP Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy dyskusyjnej .MT manpages-pl-list@lists.sourceforge.net .ME .