Почему мой Linux запрашивает, показывают $, вместо имени для входа в систему и пути?

На одном из моих серверов подсказка является [путем user@host]..., и я могу на самом деле продвинуть "вкладку" автозаполнять путь.

Но на моем новом сервере Ubuntu, это - просто знак доллара?

13
задан 10.11.2009, 13:19

4 ответа

Так как Вы задаете два вопроса, я отвечу на обоих.

Почему вкладка не автоматически заполняет пути к файлам?

Поскольку Вы окружаете, или не поддерживает его, или заполнение клавишей Tab не включено.

Для разрешения этого сначала необходимо обнаружить, какова оболочка. На машине, оболочкой которой Вы наслаждаетесь, работать

echo $SHELL

Можно видеть общее /bin/bash, или что-то менее общее как /bin/tcsh, /bin/zsh или что-то еще полностью.

Теперь, можно изменить оболочку на машине Ubuntu. На той машине сначала удостоверьтесь, что оболочка, которую Вы хотите, существует. Так как оболочка не могла бы быть в том же месте на машине Ubuntu как на другом, проверить местоположение путем ввода

 which bash

Это даст Вам путь оболочки, как которая Вы хотите, что-то /bin/bash, /usr/bin/bash, или /usr/local/bin/bash. Конечно, если Вы захотите оболочку кроме удара, то Вы скажете which tcsh, which zsh, или подобный.

Если Вы не видите путь, но вместо этого видите bash not found, затем необходимо будет установить соответствующий пакет и снова использовать which узнать, где оболочка была установлена.

С путем Вашей выбранной оболочки можно наконец изменить оболочку путем выполнения

chsh -s /bin/bash

замена /bin/bash с чем соответствующий путь для Вашей предпочтительной оболочки.

Почему подсказка является знаком доллара вместо [путь user@host]?

Из-за Ваших быстрых переменных среды $PS1, $PS2, и так далее. Эти вещи не имеют тенденцию быть портативными между оболочками, таким образом, вот несколько ссылок для вероятных кандидатов:

bash имеет обширное руководство, со страницами на Переменных Bash (включая PS1, &c) и Печать Подсказки (который описывает PROMPT_COMMAND, длинное название PS1). Добавьте следующую строку к Вашему ~/.bashrc

export PS1='[\u@\h \w] '

tcsh имеет руководство онлайн (просто его страница справочника), с разделом по быстрым переменным среды. Добавьте следующую строку к Вашему ~/.tcshrc

set prompt='[%n@%m %~] '

zsh имеет руководство пользователя, с простым руководством по подсказкам, а также руководством, с очень подробной ссылкой на Быстром Расширении. Добавьте следующую строку к Вашему ~/.zshrc

export PS1='[%n@%m %~] '
26
ответ дан 07.12.2019, 11:27

Bash не является единственной оболочкой.

Вашей проблемой мог быть простой вопрос не наличия .profile или .bashrc, который устанавливает PS1, или могло случиться так, что Ваша оболочка входа в систему не является ударом вообще.

Использование Bash gnu readline для вещей как заполнение клавишей Tab. Это - сложный предмет, и readline даже имеет свой собственный файл конфигурации в расчете на пользователя.

Посмотрите man bash, man sh, и man 3 readline. Bash отвечает на --version. Во многих системах Linux, /bin/sh не на самом деле удар, но обычно демонстрационная версия с ограниченными возможностями ash.

6
ответ дан 07.12.2019, 11:27

я предполагаю, Вы не используете удар, но sh и Ваша подсказка не установлены правильно (если это даже возможно с sh).

можно получить текущую оболочку путем ввода: echo $SHELL

если Вы хотите запустить удар, просто введите bash

4
ответ дан 07.12.2019, 11:27

Необходимо установить переменную под названием PS1 на одном из сценария входа в систему, например,/etc/profile или ~/.bashrc. Это будет зависеть от Вашего распределения.

Пример: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html

2
ответ дан 07.12.2019, 11:27

Теги

Похожие вопросы