Я подозреваю, что вы используете SystemD. Если это правда, используйте его встроенный инструмент SystemCTL
:
systemctl suspend
systemctl hibernate
systemctl hybrid-sleep
systemctl reboot
systemctl poweroff
systemctl halt
Как всегда вы можете создать псевдоним для любых из этих команд.
Нет, X не управляет переменными окружения. А вот bash - да, в частности, в неинтерактивных оболочках PS1
и PS2
:
$ PS1='my PS1' PS2='my PS2' PS3='my PS3' PS4='my PS4' bash -c export |grep PS
declare -x PS3="my PS3"
declare -x PS4="my PS4"
Bash, вероятно, выполняется где-то в рамках Вашей последовательности входа в систему. Это гарантировано, если Ваш /bin/sh
является bash и обычным, даже если это не так.
Подсказка - это настройка оболочки, имеющая смысл только в интерактивных оболочках, поэтому нет смысла экспортировать ее в окружение. Вместо этого установите его в интерактивный файл инициализации оболочки .bashrc
.
Я предполагаю, что вы используете bash
в качестве оболочки. Если вы работаете с чем-то другим, особенности будут отличаться, но подход останется прежним. Чтобы подтвердить свой логин, выполните следующую команду: getent passwd "$ {USER: - $ (id -nu)}" | awk -F: '{print $ NF}'
Я подозреваю, что ваше приглашение определено в .profile
или .bash_profile
и устанавливается (один раз) при входе в систему ваш терминал. Когда вы вызываете startx
и открываете терминал, он «знает», что это не сеанс входа в систему, поэтому вместо этого вызывает .bashrc
.
Вы можете подтвердить это с помощью следующей команды, результат которой вы можете указать в своем Вопросе: grep '\
Я бы порекомендовал для настройки терминального приложения с графическим интерфейсом пользователя для принудительного использования оболочки входа (при условии, что такая опция существует в вашей установке).
В качестве альтернативы просмотрите файлы .profile
, .bash_profile
и .bashrc
и переместите одноразовый код запуска в новый файл, например как .bash_once
и код, который необходимо повторить для каждого экземпляра bash
в новый файл, например .bash_everytime
. Затем вы можете исходный код .bash_once
и исходный код .bash_everytime
соответственно из теперь пустого .profile
или .bash_profile
и .bashrc
.