Putty: войдите в систему, выполните команду / измените переменную среды и не закрывайте сеанс
Я хотел бы настроить свой сеанс PuTTY таким образом, чтобы я мог войти в систему на удаленном хосте, и (а) начать bash (б) изменить переменную PS1 (быстрое содержимое) (в) продолжить работу в сеансе, как обычно.
пробовал:
- соединение -> данные -> переменные среды [не работает; сеанс выглядит так, как будто (b) не был выполнен]
и - соединение - > SSH - > удаленная команда: PS1= "некоторые вещи" [открывается окно с сессией на долю секунды, а потом она закрывается]
какие идеи? Я посмотрел на некоторые подобные вопросы на форуме, но не нашел ничего полезного.
в целом: я войти в Хост, где многие пользователи войти в качестве одного пользователя, и, таким образом, все они разделяют "настройки" одного пользователя. Я ищу способ заставить PuTTY временно изменить некоторые из этих настроек (т. е. чтобы они были ограничены временем сеанса, который я открываю с помощью PuTTY). Запустил личную версию .bashrc в рамках сессии. Надеюсь, это имеет смысл.
3 ответов
целевой сервер должен быть настроен на прием установка переменных окружения для 1-го варианта работы. Второй-это на самом деле работает нормально, проблема в том, что он предназначен для имитации
ssh user@foo command
что будет просто подключить, запустить command
и выход. Вы можете иметь его оставаться открытым, давая ему command; bash
но это не будет работать для установки переменных sice новая оболочка будет запущена после того, как переменная была установлена.
итак, не хватает корневой доступ к серверу, так что вы можете включить настройку переменных среды, единственный способ, который я могу придумать для вас, чтобы сделать это, чтобы изменить ~/.bashrc
сервер и определить свой PS1
там. Добавьте эту строку ~/.bashrc
:
PS1="some stuff"
теперь, каждый раз, когда вы входите в этот сервер, приглашение будет установлено для вас.
другой способ сделать это-использовать другой rcfile для вашего сеанса bash. Создайте новый файл с помощью строки:
source /etc/profile
source ~/.bashrc
PS1='some stuff'
Сохранить как, например, ~/.myps1
, затем в настройках putty задайте команду для запуска на удаленном сервере:
bash --rcfile ~/.myps1
это откроет новый сеанс оболочки удаленного сервера и прочтет файл, над которым сначала читается .bashrc
и PS1
.
для тех, кто по разным причинам не может модифицировать sshd config и/или имеет + 2000 серверов (и не имеет доступа к инструментам массовой настройки или не может / не хочет менять настройки для других пользователей), вот решение, которое я придумал:
в PuTTY загрузите нужный сеанс, перейдите в Connection > SSH. В разделе "Данные для отправки на сервер", в поле "удаленная команда" используйте:
env [OPTION]... [-] [NAME=VALUE]... [COMMAND [ARG]...] bash
пример:
env -u PS1 PS1="[\u@\h]\$ " bash
I сначала удалите переменную, потому что иначе она не работала.
Другие вопросы bash command-line putty solaris ssh