как получить название терминала (tty)
Модератор: Модераторы разделов
-
- Сообщения: 216
как получить название терминала
пошарился по поисковикам так и не нашел, может че подскажите.
Интересует вот какой момент. Необходимо, что бы в скрипте фигурировал терминал, на котором, допустим, залогинился юзер. Как выхватить это? Какой коммандой/переменной отображается текущий терминал/консоль?
Интересует вот какой момент. Необходимо, что бы в скрипте фигурировал терминал, на котором, допустим, залогинился юзер. Как выхватить это? Какой коммандой/переменной отображается текущий терминал/консоль?
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
-
- Сообщения: 1019
- Статус: Экс-металлюга
Re: как получить название терминала
Можно использовать $$ в командной строке или $PPID в скрипте.
Например
Хотя, наверняка, есть способ более правильный, но в голову не приходит ничего.
Например
Код: Выделить всё
ps | awk "/$$/{print\$2}"
Хотя, наверняка, есть способ более правильный, но в голову не приходит ничего.
ArchLinux / IceWM
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: как получить название терминала
tty вроде бы и есть у bash шаблон, не помню. Поищи по тексту Как бороться с приглашением в консоли?
-
- Сообщения: 1019
- Статус: Экс-металлюга
-
- Сообщения: 216
Re: как получить название терминала
serzh-z писал(а): ↑12.04.2006 16:12tty вроде бы и есть у bash шаблон, не помню. Поищи по тексту Как бороться с приглашением в консоли?
Просмотрел ... может невнимательно смотрел, но так и не высмотрел где выдрать наназвание текущей консоли ... даже кое-че перепробовал, но ...

а примерчик можно?
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: как получить название терминала
\l для bash, или уже упомянутая команда tty
Код: Выделить всё
#!/bin/sh
t1=`tty`
t2="\l"
echo ${t1}
echo ${t2}
-
- Сообщения: 216
Re: как получить название терминала
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
-
- Бывший модератор
- Сообщения: 2421
- Статус: Übermensch
- ОС: лялих
Re: как получить название терминала
просто не все консоли от tty1 до tty6. /dev/pts/* - это все псевдотерминалы.
так что, одно из двух: или ты сам не понимаешь, что тебе надо, или ты никак не можешь этого объяснить....
так что, одно из двух: или ты сам не понимаешь, что тебе надо, или ты никак не можешь этого объяснить....
слава роботам!
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
-
- Сообщения: 216
Re: как получить название терминала
Похоже действительно я неправильно выразился ... суть такова, что мне надо получить что-то на подобии комманы "w", вобщем, что бы там указывался псевдо терминал (будь то локальный tty или удаленный pts) и откуда (т.е. инетесует второй и третий параметр комманды "w")
ASP Linux 10.0 / 2.6.12-1.1386.1asp / KDE 3.3
-
- Сообщения: 216
Re: как получить название терминала
вот что показывает комманда:
$ 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 -
$ 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
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: как получить название терминала
Код: Выделить всё
w -h | grep user1 | awk '{ print $1 " at " $2 " from " $3; }'
-
- Сообщения: 216
Re: как получить название терминала
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
-
- Сообщения: 1019
- Статус: Экс-металлюга
Re: как получить название терминала
SashaAl писал(а): ↑27.04.2006 11:10serzh-z писал(а): ↑26.04.2006 17:04
Код: Выделить всё
w -h | grep user1 | awk '{ print $1 " at " $2 " from " $3; }'
О, пасиб, то, что надо, вот только как сделать, что бы еще и выдавал только одну строку (по последней регистрации)?
Может, пора САМОМУ ПОДУМАТЬ?
ArchLinux / IceWM
-
- Бывший модератор
- Сообщения: 8259
- Статус: Маньяк
- ОС: Arch, Fedora, Ubuntu
Re: как получить название терминала
man w:
какая, нафиг, последняя регистрация... w это не last, в случае с last прилепи после grep "| head -n 1 |"w displays information about the users currently on the machine