как получить название терминала (tty)

Модератор: Модераторы разделов

Аватара пользователя
SashaAl
Сообщения: 216

как получить название терминала

Сообщение SashaAl »

пошарился по поисковикам так и не нашел, может че подскажите.
Интересует вот какой момент. Необходимо, что бы в скрипте фигурировал терминал, на котором, допустим, залогинился юзер. Как выхватить это? Какой коммандой/переменной отображается текущий терминал/консоль?
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: как получить название терминала

Сообщение madskull »

Можно использовать $$ в командной строке или $PPID в скрипте.
Например

Код: Выделить всё

ps | awk "/$$/{print\$2}"

Хотя, наверняка, есть способ более правильный, но в голову не приходит ничего.
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: как получить название терминала

Сообщение serzh-z »

tty вроде бы и есть у bash шаблон, не помню. Поищи по тексту Как бороться с приглашением в консоли?
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: как получить название терминала

Сообщение madskull »

мдя. tty и есть
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
SashaAl
Сообщения: 216

Re: как получить название терминала

Сообщение SashaAl »

serzh-z писал(а):
12.04.2006 16:12
tty вроде бы и есть у bash шаблон, не помню. Поищи по тексту Как бороться с приглашением в консоли?

Просмотрел ... может невнимательно смотрел, но так и не высмотрел где выдрать наназвание текущей консоли ... даже кое-че перепробовал, но ... :(

madskull писал(а):
12.04.2006 16:55
мдя. tty и есть

а примерчик можно?
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: как получить название терминала

Сообщение serzh-z »

SashaAl писал(а):
13.04.2006 11:31
Просмотрел ... может невнимательно смотрел, но так и не высмотрел где выдрать наназвание текущей консоли ... даже кое-че перепробовал, но ... :(


\l для bash, или уже упомянутая команда tty

Код: Выделить всё

#!/bin/sh

t1=`tty`
t2="\l"

echo ${t1}
echo ${t2}
Спасибо сказали:
Аватара пользователя
SashaAl
Сообщения: 216

Re: как получить название терминала

Сообщение SashaAl »

serzh-z писал(а):
13.04.2006 11:44

Код: Выделить всё

#!/bin/sh

t1=`tty`
t2="\l"

echo ${t1}
echo ${t2}


Результат вывода такого скрипта

Код: Выделить всё

/dev/pts/1
\l

Меня интересует, что бы выводило:
tty1-6 или номер удаленной консоли
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
Спасибо сказали:
Аватара пользователя
elide
Бывший модератор
Сообщения: 2421
Статус: Übermensch
ОС: лялих

Re: как получить название терминала

Сообщение elide »

просто не все консоли от tty1 до tty6. /dev/pts/* - это все псевдотерминалы.
так что, одно из двух: или ты сам не понимаешь, что тебе надо, или ты никак не можешь этого объяснить....
слава роботам!
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: как получить название терминала

Сообщение serzh-z »

SashaAl писал(а):
13.04.2006 12:05
Меня интересует, что бы выводило:
tty1-6 или номер удаленной консоли


В указанном топике мы именно это и обсуждали, там же и есть догадки и предложения как узнать самую первую консоль (НЕ псевдо терминал, а именно консоль), с которой юзер работает!
Спасибо сказали:
Аватара пользователя
SashaAl
Сообщения: 216

Re: как получить название терминала

Сообщение SashaAl »

Похоже действительно я неправильно выразился ... суть такова, что мне надо получить что-то на подобии комманы "w", вобщем, что бы там указывался псевдо терминал (будь то локальный tty или удаленный pts) и откуда (т.е. инетесует второй и третий параметр комманды "w")
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
Спасибо сказали:
Аватара пользователя
SashaAl
Сообщения: 216

Re: как получить название терминала

Сообщение SashaAl »

вот что показывает комманда:
$ w -h
user1 tty1 - 09:51 6:55 2.92s 0.02s -bash
user2 tty6 - 17Apr06 9days 0.10s 0.00s /bin/sh /usr/X1
user2 pts/1 - 17Apr06 9days 0.00s 3.77s kdeinit: kded
user2 pts/2 - 15:32 0.00s 0.02s 0.00s w -h

как из этого выдрать только первые три параметра:
user1 tty1 -
или для user2
user2 pts/2 -
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: как получить название терминала

Сообщение serzh-z »

Код: Выделить всё

w -h | grep user1 | awk '{ print $1 " at " $2 " from " $3; }'
Спасибо сказали:
Аватара пользователя
SashaAl
Сообщения: 216

Re: как получить название терминала

Сообщение SashaAl »

serzh-z писал(а):
26.04.2006 17:04

Код: Выделить всё

w -h | grep user1 | awk '{ print $1 " at " $2 " from " $3; }'

О, пасиб, то, что надо, вот только как сделать, что бы еще и выдавал только одну строку (по последней регистрации)?
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
Спасибо сказали:
Аватара пользователя
madskull
Сообщения: 1019
Статус: Экс-металлюга

Re: как получить название терминала

Сообщение madskull »

SashaAl писал(а):
27.04.2006 11:10
serzh-z писал(а):
26.04.2006 17:04

Код: Выделить всё

w -h | grep user1 | awk '{ print $1 " at " $2 " from " $3; }'

О, пасиб, то, что надо, вот только как сделать, что бы еще и выдавал только одну строку (по последней регистрации)?

Может, пора САМОМУ ПОДУМАТЬ?
ArchLinux / IceWM
Спасибо сказали:
Аватара пользователя
serzh-z
Бывший модератор
Сообщения: 8259
Статус: Маньяк
ОС: Arch, Fedora, Ubuntu

Re: как получить название терминала

Сообщение serzh-z »

man w:
w displays information about the users currently on the machine
какая, нафиг, последняя регистрация... w это не last, в случае с last прилепи после grep "| head -n 1 |"
Спасибо сказали: