Я думаю, Gilles и ответы Cakemox хороши, но только для полноты...
Last login: Fri Mar 18 23:07:28 CET 2011 from max on pts/1
прибывает из pam_lastlog
1.
Можно распечатать pam_lastlog
информация с помощью lastlog
2 команды, например.
$ lastlog -u mikel
Username Port From Latest
mikel tty1 Fri Jan 28 10:58:10 +1100 2011
для локального входа в систему, по сравнению с
Username Port From Latest
mikel pts/9 mikel-laptop Sat Mar 19 11:11:58 +1100 2011
для входа в систему SSH.
В моей системе это работает для извлечения его
$ lastlog -u mikel | sed -ne '2{p;q}' | cut -c 27-42
mikel-laptop
last
и w
могло быть полезным также, например
$ TTY=$(tty)
$ last -n 1 ${TTY#/dev/} | sed -ne '1{p;q}'
mikel pts/12 :0.0 Sat Mar 19 11:29 still logged in
документация Linux/FreeBSD для pam_lastlog
.
2Linux/FreeBSD lastlog(8)
страницы справочника.
Да. Вот пример для удара с помощью PS1, который должен быть агностиком дистрибутива:
А именно, escape-последовательность \[\e]0; __SOME_STUFF_HERE__ \a\]
представляет интерес. Я отредактировал это, чтобы быть установленным в отдельной переменной для большей ясности.
# uncomment for a colored prompt, if the terminal has the capability; turned
# off by default to not distract the user: the focus in a terminal window
# should be on the output of commands, not on the prompt
force_color_prompt=yes
if [ -n "$force_color_prompt" ]; then
if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then
# We have color support; assume it's compliant with Ecma-48
# (ISO/IEC-6429). (Lack of such support is extremely rare, and such
# a case would tend to support setf rather than setaf.)
color_prompt=yes
else
color_prompt=
fi
fi
TITLEBAR='\[\e]0;\u@\h\a\]'
# Same thing.. but with octal ASCII escape chars
#TITLEBAR='\[\033]2;\u@\h\007\]'
if [ "$color_prompt" = yes ]; then
PS1="${TITLEBAR}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\W\[\033[00m\]\$ "
else
PS1="${TITLEBAR}\u@\h:\W\$ "
fi
unset color_prompt force_color_prompt
Также обратите внимание, что может быть много способов установить заголовок xterm, в зависимости от которой терминальной программы Вы используете, и которые окружают. Например, при использовании Konsole KDE можно переопределить установку заголовка путем движения в Settings
->Configure Profiles
->Edit Profile
->Tabs
и установка Tab title format
и Remote tab title format
настройки.
Кроме того, можно хотеть проверить:
Вот версия сценария удара SSH, который я использую который наборы заголовок удаленного сервера и командная строка, не внося изменений в удаленный сервер.
my_ssh.sh:
#!/bin/bash
SETTP='MY_PROMPT="$HOSTNAME:$PWD\$ "'
SETTP="$SETTP;"'MY_TITLE="\[\e]0;$HOSTNAME:$PWD\a\]"'
SETTP="$SETTP;"'PS1="$MY_TITLE$MY_PROMPT"'
ssh -t $1@$2 "export PROMPT_COMMAND='eval '\\''$SETTP'\\'; bash --login"
Можно вызвать его путем вызова./my_ssh.sh имени хоста имени пользователя
Это версия псевдонима
SETTP='MY_PROMPT="$HOSTNAME:$PWD\$ "'
SETTP="$SETTP;"'MY_TITLE="\[\e]0;$HOSTNAME:$PWD\a\]"'
SETTP="$SETTP;"'PS1="$MY_TITLE$MY_PROMPT"'
SETPC="export PROMPT_COMMAND='eval '\\''$SETTP'\\'; bash --login"
alias myssh='function _myssh(){ ssh -t $1@$2 $SETPC; };_myssh'
У меня работает следующее (вероятно, только на gnome-terminal):
comp@home$ cat /usr/bin/ssh
#!/bin/bash
echo -ne "\033]0;${1}\007"
ssh_bkup "$@"
Где команда ssh_bkup - это просто базовая команда 'ssh' с измененным именем, которая вызывается сразу после того, как команда echo изменяет заголовок текущего терминала.
\h
в той подсказке, только если$SSH_CLIENT
непусто. – Gilles 'SO- stop being evil' 01.06.2011, 00:19\[\e]2;\u@\h\a
. (Также отредактированный мой ответ с той информацией) – TrinitronX 01.06.2011, 01:14