|
tell(1) Tell verzia 2.1 [26.10.1997] (C) Marek Zelem
Meno
tell - posli odkaz inemu uzivatelovi
Syntax
tell [@] "text" [tty]
alebo
tell [-i] [-f ] [@] . [tty]
Popis
Tell prikaz posle spravu "text" inemu uzivatelovi - - na serveri
specifikovanom . Pokial sa neuvedie, posiela
spravu uzivatelovi s login menom na danom serveri (odkial je
tell prikaz zadany).
Ked je prikaz zavolany, posle spravu uzivatelovi v podobe
text odkazu
Ak chcete poslat spravu tell-om uzivatelovi, ktory je viackrat
nalogovany, argument tty by mal byt pouzity, aby sa sprava poslala na
spravne tty (teda do okna, do ktoreho si zelate aby sprava prisla).
Inac bude sprava poslana do tty (na terminal) s najmensim idle - cas
uplynuty od posledneho stlacenia klavesu - a to nemusi vzdy zodpovedat
prave aktualnemu terminalu, s ktorym pracuje. Napriklad
niektorym programom idle time narasta napriek tomu, ze s nimi
momentalne pracujete (vid. Joe's editor).
Ak ako argument tty napisete '*' (pozor apostrofi alebo uvodzovky su
nutne) alebo \* tak bude sprava poslana na vsetky terminaly na ktorych
je adresat prihlaseny. Tuto moznost pouzivajte len v krajnych situaciach,
lebo nieje velmi prijemna pre adresata.
Preferencie vypisu sprav poslanych tell-om do niektoreho z momentalne
prihlasenych okien si mozete zmenit konfiguracnym suborom .tellrc (vid.
nizsie).
Vypis sprav na terminal mozete zakazat pouzitim mesg prikazu.
Dalsi sposob pouzitia tell-u je podobny funkcii programu mail, ale v
tomto pripade je telo odkazu vypisane na terminal a nie do suboru
(samozrejme pri zapnutom logovani odkazov nastavenom v konfiguracnom
subore aj do suboru), t.j.:
tell [@] . [tty]
Po zadani tohto prikazu mozete pisat niekolkoriadkovu spravu, ktoru
ukoncite napisanim bodky '.' na zaciatku samostatneho riadku
a odenterovanim resp. stlacite Ctrl d na zaciatku samostatneho riadku
alebo dvakrat za sebou Ctrl d po skonceni tela odkazu.
Ak pouzijete prepinac -i v tomto rezime, tak funkcia tell-u je takmer
zhodna s funkciou write, teda po kazdom odriadkovani (stlaceni ET), sa
posle riadok textu uzivatelovi .
Prepinac -f sposobi, ze sa text spravy nebude citat zo
standardneho vstupu (z klavesnice), ale zo suboru . Kombinacia
s parametrom -i je povolena, ale poradie parametrov musi byt dodrzane.
Parameter tty ma obdobny vyznam. (vid. hore)
-------------------------------------------------------------------------------
Posielanie sprav skupinam uzivatelov
Tell Vam umoznuje posielat spravy viacerym uzivatelom naraz a to dvoma
sposobmi. Z prikazoveho riadku zadanim uzivatelov za sebou, oddelenych
ciarkami (za ciarkou nesmie byt medzera!):
tell [@],[@],[@]... "text"
alebo nadefinovanim skupin uzivatelov v subore .aliases vo Vasom domov-
skom adresari.
- popis suboru $HOME/.aliases
Znak '#' na prvej pozicii v riadku znamena, ze sa jedna o poznamku
a tento riadok bude pri spracovavani suboru ignorovany.
Struktura suboru je nasledovna ->
group_a: [@],[@],[@],...
group_b: [@],[@],...
group_c: [@],[@],[@],...
priklad - obsah suboru $HOME/.aliases
# user aliases
# kamarati
kamosi: kubiki, arnie@decef, www,elem, sosyk
ircaci: vix,www,mosnymar@decef
# kamos, ktoreho adresu nikdy neviem naspamat a som lenivy ju pisat
kozo: jvajda@ns.somi.sk
# dolezite 'osoby'
operator: www, marek, strider, dedo
Uzivatelia patriaci jednej skupine musia byt zapisani za sebou, t.j.
v jednom riadku.
Posielanie sprav skupine uzivatelov sa nelisi od bezneho pouzivania
tellu, iba namiesto uvedieme meno skupiny, napr.:
tell ircaci "tak co pivari, kedy ideme na irc?"
Vysledkom tohto prikladu bude zaslanie odkazu (uvedeny v uvodzovkach)
dvom uzivatelom na lokalnom stroji (s login menom vix a www) a tretiemu
uzivatelovi - mosnymar@decef.
Pri posielani odkazu tell-om sa najskor spracovava subor .aliases
vo Vasom homedir-e a az potom globalny alias subor /etc/user.aliases
Ak teda existuje subor $HOME/.aliases, tak mena skupin rovnakeho mena
ako skupiny uvedenej v /etc/user.aliases nahradia lokalne aliasy.
Vnaranie aliasov je povolene. To znamena, ze pri definicii novej
skupiny sa moze vyskytnut meno uz existujucej skupiny (alebo skupiny,
ktora este len bude definovana) a ta sa automaticky rozvinie do skupiny
uzivatelov.
Pri definicii aliasov by nemal nastat pripad, ze jeden alias ukazuje
na druhy, ktory sa uz nanho odkazuje (aj prostrednictvom ineho aliasu),
aby nenastala slucka.
-------------------------------------------------------------------------------
Konfiguracia tell-u
Format vypisu sprav, automaticke logovanie (zapis doslych a vyslanych
sprav do suboru), povolenie escape sekvencii, preferencie vypisu odkazov
pri viacnasobnom nalogovani a podobne si mozete upravit konfiguracnym
suborom .tellrc ulozenom vo Vasom domovskom adresari. Ak subor .tellrc
sa vo Vasom homedir-e nenachadza, pouzije sa standardne konfiguracny
subor /etc/user.tellrc
Struktura suboru nie je uplne volna, pretoze pri zamene poradia
"prikazov" v subore moze dojst k ich ignorovaniu nakolko je subor
spracovavany tellom sekvencne zvrchu az po koniec. Konfiguracny
subor sa interpretuje aj pri posielani sprav tell-om aj pri ich
prijimani. Jednotlive riadky maju format
-> prikaz: parametre prikazu
Pokial parametre prikazu nie su vyhradenym slovom, tak sa uvadzaju
v uvodzovkach. Opatovne vyskytnutie sa prikazu v konfiguracnom
subore zrusi povodne nastavenie a nahradi ho novym.
Priklad konfiguracneho suboru $HOME/.tellrc s naslednym vysvetlenim
jednotlivych poloziek:
# Konfiguracny subor k tellu
#format: "\n\t%u@%h\7\n%s\n"
#format: "\n\t%d tell from: %u@%h\7\n%s\n"
#ctrl: no
ctrl: "!m"
8bit: no
escape: no
format: "%d %u -> %r\t%s\n"
outlog: "log/tell"
format: "%d %u@%h -> %r\t%s\n"
logiflogin: yes
logfile: "log/tell"
ctrl: "jm"
8bit: no
escape: no
format: default
# ak mam idle viac ako 900 , tak priorita -16
maxidle: 900 -16
# ak mam idle menej ako 1 , tak priorita -8
minidle: 1 -8
# priority: z intervalu <-16,16>
priority: " joe " -2 #-2
priority: " vi " -2 #-2
priority: " vim " -2 #-2
priority: " talk " -3 #-3
priority: " ytalk " -3 #-3
priority: " irc " -4 #-4
priority: " lynx " -5 #-5
priority: " tell " -7 #-7
priority: "dos " -8 #-8
priority: "sh " 2
Znak '#' indikuje pre tell, ze sa jedna o poznamku. Prikazom format
nastavite format vypisu sprav (odosielanych alebo prijimanych).
Parametrom prikazu je bud slovo default resp. retazec uvedeny
v uvodzkovkach. V retazci sa moze vyskytovat lubovolna postupnost
znakov, pricom niektore maju specialny vyznam. Znaky uvedene za '\'
sa interpretuju podobne ako v jazyku C pri formatovanom vystupe.
Napriklad: \7 znamena riadiaci znak ^G (BELL),
\n je riadiaci znak ^J (LF) - odriadkuje
\t je riadiaci znak ^I (TAB) - tabelator
atd...
Znak uvedeny za '%' ma nasledovny vyznam:
%u - sa nahradi menom uzivatela (login name), ktory odkaz posiela.
%h - sa nahradi (menom stroja + domeny) uzivatela,
ktory odkaz posiela.
%r - sa nahradi parametrom, komu je sprava zasielana - resp.
skupina uzivatelov alebo alias - uvedenym pri posielani odkazu
tell-om.
%n - nahradi sa nazvom odosielacieho programu. Obycajne je to "tell".
Pouzitie je zriedkave.
%p - nahradi sa parametrom uvedenym za -t, ak bol pouzity.
Ak nebol typ zadany tak sa nahradi prazdnym retazcom "".
%s - nahradi sa vlastnou spravou, odosielanou alebo prijimanou.
%m - message - rovnaky vyznam ako %s
%l - nahradi sa dlzkou posielanej spravy.
%d - nahradi sa aktualnym datumom, kedy je sprava poslana tell-om
respektive prijimana, vo formate den mesiac (nie je uvedeny
rok).
%t - nahradi sa aktualnym casom, kedy je sprava zaslana
alebo prijimana.
%D - kombinacia %t a %d pricom v datume vystupuje i rok.
Prikazom format: default sa nastavi standardny format vypisu doslych
sprav, t.j. pri prijimani odkazu sa Vam na terminali objavi sprava
v podobe
@ text_odkazu
Ak sa prikaz format v konfiguracnom subore nenachadza, automaticky sa
pouziva nastavenie default.
Prikaz ctrl povoluje respektive zakazuje prijimanie riadiacich
znakov (ASCII 00H az 1FH) v texte odkazu. Parametrom no zakazete
prijimanie vsetkych riadiacich znakov, teda aj LF (Line Feed -
novy riadok). Prikaz ctrl Vam umoznuje nastavit alebo zakazat aj
jednotlive riadiace znaky, ktore musite zapisat do uvodzoviek. Ak
sa hned za uvodzovkou vyskytne znak '!', znamena to, ze povolujete
vsetky znaky okrem znakov zapisanych za nim. Napriklad ctrl: "jm"
znaci, ze povolujete iba prijimanie znakov ^J a ^M (LF a CR)
a vsetky ostatne budu ignorovane. ctrl: "!gi" znamena, ze
povolujete prijimanie vsetkych riadiacich znakov okrem ^G a ^I
(BEL a HT - pipanie a tabelator) v texte odkazu. Parametrom yes
povolite prijimanie vsetkych riadiacich znakov.
Prikaz 8bit urcuje ako bude spracovavane prijimanie osembitovych
znakov. Parameter yes povoluje prijimanie 8 bitovych znakov a ich
spracovanie (vypisanie na terminal) je uz zalezitostou systemu, ako
ich bude interpretovat. Parameter no "oreze" 8 bitovy znak, teda
nastavi osmy bit na nulu. Tento prikaz ma vyznam napriklad pri prijimani
odkazov posielanych prostrednictvom tell -f a nastavuje sposob akym
budu tieto znaky vypisovane, t.j. 8bit: no sposobi, ze ASCII znaky
od 128 vyssie budu transformovane do 7 bitovej ASCII tabulky.
Prikaz escape povoluje (yes) resp. zakazuje (no) prijimanie ESC
sekvencii (pre terminaly VT100 to mozu byt napriklad farby, posuv
kurzora a pod.).
Prikaz maxlen stanovuje maximalnu dlzku spravy, ktoru sme ochoty prijat.
Prikaz ma jeden parameter - dlzku spravy. Ak je tento parameter no,
tak je dlzka spravy neobmedzena. Ak prikaz nieje najdeny alebo ak je
jeho parameter default, tak je maximalna dlzka nastavena na 1024 znakov.
Prikaz wrap stanovuje pocet znakov, ktore mozu byt vypisane v jednom
riadku spravy. Tento pocet je nastaveny parametrom. Ak je tento
parameter no, tak je tato funkcia vypnuta. Ak sa pri vypise prekroci
pocet znakov stanovenych tymto prikazom, tak sa vypise znak '\n' new line
a este raz uvod formatu a pokracuje sa vo vypise dalej.
Prikazom outlog nastavite meno suboru, do ktoreho sa maju logovat
(zapisovat) spravy, ktore posielate tell-om. Spravy budu ulozene
vo formate, ktory je momentalne nastaveny. Ten je urceny nastavenim
v poslednom vyskyte prikazu format pred outlog. Ak sa prikaz format
nenachadza nikde v konfiguracnom subore pred prikazom outlog, je
pouzity format typu default. Ak ste spravu posielali tell-om Vy, teda
neprijimali ste ju, tak sa spracovavanie konfiguracneho suboru konci
na tomto bode - prikaze outlog. Parameter prikazu outlog sa uvadza
v uvodzovkach.
Prikaz logiflogin ma jeden mozny parameter - yes alebo no. Prikaz
s parametrom yes zabezpeci, ze pokial ste prihlaseny do systemu
a mate nastaveny subor na zaznamenavanie doslych sprav pomocou prikazu
logfile, tak sa Vam tato sprava nielen vypise na terminal, ale aj
zaloguje (zapise) do suboru s menom specifikovanym v prikaze logfile.
Parameter no ma opacny vyznam, teda sprava sa nezaloguje do suboru,
ale na terminal sa vypise. Ak sa prikaz logiflogin nenachadza pred
prikazom logfile, tak ak ste prihlaseny tak sa sprava nezaloguje ale
sa len vypise. (ako keby bol najdeny prikaz logiflogin: no)
Prikazom logfile nastavite meno suboru, do ktoreho sa budu zapisovat
spravy posielane tell-om na Vasu adresu pocas Vasej nepritomnosti, to
znamena, pokial nie ste prihlaseni do systemu. Parameter prikazu sa pise
v uvodzovkach. Vyskyt prikazu format pred prikazom logfile modifikuje
format spravy (podobne ako pri prikaze outlog) zapisovanej do suboru.
Taktiez vsetky ostatne nastavenia (ctrl, esc, 8bit, ...) sa beru do
uvahy pri zapise spravy do logfile-u.
Subor specifikovany prikazom logfile alebo outlog nemusi existovat. Ak
neexistuje, tak bude automaticky vytvoreny pri prvom zapise. Ak tento
subor existuje a nieje to regularny subor ale pomenovany socket, tak
bude sprava zapisana do tohto socketu a tell bude cakat maximalne 3
sekundy na odpoved, ktoru potom odosielatelovi vypise namiesto toho
ze sprava bola zalogovana. Toto umoznuje komunikaciu so specialnymi
demonmi prostrednictom tell-u.
Namiesto mena suboru mozete napisat znak "|" a meno programu + argumeny,
ktory bude spusteny a spravu dostane na standardny vstup. V tomto pripade
bude tell tiez cakat na odpoved. Tato moznost vsak funguje iba ak bola
povolena pri kompilacii tell-u.
TIP: Ak chcete, aby sa Vam dosle spravy iba logovali do suboru
a nevypisovali na terminal, mozete pouzit prikaz mesg n. V tomto
pripade sa vsak uzivatelovi na druhom konci (ktory Vam spravu
tellom zasiela) vypise, ze mate messages disabled (prijimanie
odkazov zakazane) a odosielatel moze zostat v presvedceni, ze
ste spravu neobdrzali. Ak sa tomu chcete vyhnut, staci, ked si
v sekcii nastavenie pre terminal (usek konfiguracneho suboru za
prikazom logfile) nastavite format: "". V tom pripade sa
odosielatelovi nevypise, ze mate messages disabled, samozrejme
pokial mate mesg yes.
Nastavenia za prikazom logfile platia obecne uz len pre vypis
na terminal a koncia sa prikazom priority.
Prikaz maxidle nastavuje prioritu terminalu. Prvym parametrom prikazu je
cislo, ktore udava pocet sekund idle time (cas uplynuty od posledneho
stlacenia klavesu) a druhym parametrom je cislo, ktore udava o aku
hodnotu ma znizit/zvysit (-/+) prioritu vypisovania spravy na terminal.
Prikaz maxidle ma svoje opodstatnenie najma pri viacnasobnom prihlaseni
uzivatela, ked je prihlaseny na viacero terminalov. Ak na terminale
presiahne idle time vacsiu hodnotu ako je dana prvym parametrom, tak sa
priorita znizi o hodnotu druheho parametru, tzn. ze v konkretnom
priklade (vid. vyssie) sa po 15 minutach znizi priorita o 16, co
znamena, ze sa na terminal sprava nikdy nevypise a terminal sa chova
akoby bol zadany prikaz mesg n.
Zvysovanie resp. znizovanie hodnoty priority vypisu textu na terminal
sa vzdy vypocitava z aktualnej hodnoty priority pre dany terminal (pri
viacnasobnom prihlaseni pre kazdy terminal zvlast) a pociatocnou hodnotu
je 0. Hodnota priority moze byt z intervalu -16 az +16, pricom ak hodnota
presiahne spodnu hranicu intervalu, tak sa terminal chova presne takisto
ako pri prikaze mesg n, teda vypis sprav na terminal je zakazany. Text
prijimaneho odkazu sa vypisuje na terminal s maximalnou prioritou
zo vsetkych terminalov, na ktore je prihlaseny (pozn. terminal sa
tu chape v zmysle 'okno').
Poznamka: Pri viacnasobnom prihlaseni uzivatela sa konfiguracny subor
vyhodnocuje (spracovava) zvlast pre kazdy terminal (okno)!
Prikaz minidle nastavuje prioritu terminalu a parametre su rovnake ako
pri prikaze maxidle. Prvy paramater urcuje minimalny idle time pre dany
terminal, tzn. ak hodnota idle time je mensia ako hodnota prveho
parametru, tak sa priorita zvysi/znizi (+/-) o hodnotu danu parametrom
dva. V konkretnom priklade (vid. vyssie) sa hodnota priority znizi
o osem, ak cas nestlacenia klavesu je mensi ako 1 sekunda, t.j. v danom
okne pise nieco a nechce aby sa mu tam spravy vypisovali.
Prikazom priority mozete explicitne urcit hodnotu priority vypisu textu
odkazu (zaslaneho tell-om) pre dany terminal (okno), pre ktory sa
konfiguracny subor vyhodnocuje. Prvym parametrom prikazu priority je
meno programu, ktory v danom okne prave bezi a tento paramater urcuje
o aku hodnotu (paramater dva) sa ma priorita terminalu zvysit/znizit
(+/-). Meno programu sa pise do uvodzoviek a je oddelene na zaciatku a
na konci medzerou. Ak medzera chyba na zaciatku, tak sa prikaz priority
interpteruje ako - nastav prioritu vypisu spravy na terminal, ak je na
nom spusteny program (resp. zadany prikaz), ktory sa konci na retazec
zadany prvym parametrom. Ak chyba na konci, tak ak sa zacina retazcom
zadanym prvym parametrom. Ak medzera chyba aj na zaciatku aj na konci
prveho parametra, tak to znamena zvysenie/znizenie priority, ak sa
vyskytuje retazec v zadanom prikaze (ktorym bol program, ktory bezi na
danom terminali - okne - spusteny). Konkretne z prikladu uvedenom
vyssie vyplyva, ze ak ste viackrat prihlaseni a mate spusteny napriklad
program joe (Joe's editor) na Vasom terminali, tak sa hodnota priority
pre toto okno (tento terminal) znizi o 2. Ak mate spusteny talk,
v dalsom okne, tak priorita sa znizi pre neho o 3, tzn. ze si
neprajete vypisovat spravy do talk-u, ale do okna s vyssou prioritou,
teda do okna, v ktorom bezi joe. Prikaz priority: "sh" 2 znamena, ze
pre okno v ktorom bezi lubovolny shell (tcsh, bash, csh, sh, ...) alebo
prikaz konciaci sa na 'sh' sa nastavi (resp. zvysi - ak bola predtym
definovana inaksie) priorita na dva.
Podmienky pre nastavovanie priority su popisane vyssie.
POZNAMKA: Najdenim prikazu priority pre dany program spusteny na danom
terminali sa prezeranie konfiguracneho suboru pre tento
terminal konci!
Pre vacsie moznosti konfiguracie boli v konfiguracnom subore zavedene
podmienky. Na zapis tychto podmienok sluzia prikazy:
if,elseif,else,endif. Za tymito prikazmi sa narozdiel od ostatnych
nepise dvojbodka ":". Medzi tymito prikazmi sa nachadzaju riadky, ktore
su bud uvazovane alebo ignorovane podla splnenia/nesplnenia podmienky za
if alebo elseif. Prikaz if moze byt aj vnoreny. Teda v bloku prikazov
medzi tymito prikazmi sa moze nachadzat aj dalsi prikaz if.
Za prikazom if a elseif nasleduje podmienka. Podmienka ma nasledujuci
format: =="" | =="" ...
ja nazov retazca v ktorom hladame . Ak sa v retazci
nachadza napisany v uvodzovkach, tak je podmienka splnena.
V opacnom pripade sa testuje druha podmienka oddelena znakom "|". Ak
nieje splnena ziadna z podmienok, tak sa cela podmienka povazuje za
nesplnenu. moze byt jeden z tychto:
name - meno programu (obycajne "tell").
type - typ zadany pomocou -t
proc - nazov programu, ktory bezi na prave testovanom terminale.
V pripade hladania prikazu outlog alebo logfile je tato
podmienka vzdy nesplnena.
user - odosielatel spravy.
host - meno/adresa stroja z ktoreho je sprava posielana.
rcpt - prijemca (adresat) spravy.
message - text spravy.
POZNAMKA: Konfiguracny subor sa prehladava tolko krat kolko krat je
prihlaseny adresat spravy. Kazde taketo prehladavanie sa konci na prikaze
priority, ktoreho prvy parameter sa vyskytuje v nazve programu spusenom
na danom terminaly. Ak takyto prikaz nebol najdeny skonci prehladavanie
na konci suboru. Okrem toho sa konfiguracny subor prehladava este raz.
Toto prehladavanie sa konci na najdeni prikazu logfile.
Okrem toho sa raz prehladava aj konfiguracny subor odosielatela
spravy. Toto prehladavanie sa konci na prikaze outlog.
Autor:
Marek Zelem
email: marek@fornax.elf.stuba.sk
web: http://fornax.elf.stuba.sk/~marek/
Tento manual napisal v prevaznej miere
Marek Kubran (kubiki@fornax.elf.stuba.sk)
a mierne dopracoval Marek Zelem (marek@fornax.elf.stuba.sk)
Subory
$HOME/.aliases - subor s vlastnymi aliasmi pre uzivatelov/skupiny
/etc/user.aliases - globalny subor s aliasmi skupin uzivatelov
$HOME/.tellrc - primarny konfiguracny subor
/etc/user.tellrc - sekundarny konfiguracny subor
/etc/utmp - na vyhladanie uzivatela
Pozri tiez
mail(1), mesg(1), who(1), write(1)
Historia
Program vznikol ako napodobenina ineho jednoducheho programu tell.
Naslednym dopracovanim, pridanim moznosti konfiguracie, logovania sprav
sa program zmenil do sucastneho stvu a poskytuje otvorene a este
nepouzite moznosti. Ciastocne alebo uplne dokaze nahradit funkciu
programov (tell,write,who,w,mail(prenos posty),ftp(prenos suborov),talk).
Okrem toho umoznuje pouzitie tell-u na komunikaciu so specialnymi
demonmi zabezpecujucimi rozne uzitocne sluzby.
Viac informacii vid. http://fornax.elf.stuba.sk/~marek/tell/
Pripadne otazky a navrhy posielajte na adresu marek@fornax.elf.stuba.sk
Ak máte nejaké otázky alebo návrhy, pošlite mi ich na adresu marek@terminus.sk
| |