Я пытаюсь заполучить все типы оболочек интерактивного / неинтерактивного входа / отсутствия входа, и у меня есть небольшой вопрос, который поможет мне собрать эту головоломку:
Я поймите, что когда вы например войдите на удаленный компьютер с помощью SSH, вы получите оболочку входа. Если я:
~$ logout
Я отключаюсь.
Но когда я открываю терминал в своей среде рабочего стола, могу ли я получить оболочку входа? Потому что, если я затем попытаюсь
~$ logout
bash: logout: not login shell: use 'exit'
Итак, есть ли способ подключиться к оболочке входа локально?
Чтобы ответить на ваш вопрос в том виде, как он опубликован, да, вы можете запустить оболочку входа в xterm, передав параметр -ls
, т.е.
xterm -ls
From man xterm
:
-ls xterm будет оболочкой входа в систему (т. е. первый символ argv[0] будет тире, указывающим оболочке, что он следует читать .login или .profile пользователя).
Вы можете запустить bash как оболочку входа в существующий терминал, передав опцию -l
или --login
bash -l
Это запустит оболочку входа как дочернюю текущая оболочка; если вы хотите заменить текущую интерактивную оболочку оболочкой входа в систему, вы можете использовать exec
:
exec bash -l
В качестве альтернативы, как предложил Джос, вы можете установить SSH-сервер, а затем войдите локально точно так же, как и удаленно
ssh localhost