На одном из моих серверов это приглашение [user @ host path] ... и я могу нажать "tab" для автоматического заполнения пути.
Но на моем новом сервере Ubuntu это просто знак доллара?
Поскольку вы задаете два вопроса, я отвечу на оба.
Потому что ваша оболочка либо не поддерживает ее, либо завершение табуляции не включено.
Чтобы решить эту проблему, вам сначала нужно узнать, какова ваша оболочка. На машине, чья оболочка тебе нравится, беги
echo $SHELL
Вы можете увидеть общий /bin/bash
, или что-то менее распространенное, например /bin/tcsh
, /bin/zsh
или что-то еще полностью.
Теперь вы можете изменить свою оболочку на машине с Ubuntu. На этом компьютере сначала убедитесь, что необходимая оболочка существует. Поскольку оболочка может не находиться в том же месте на компьютере с Ubuntu, что и на другом, проверьте расположение, набрав
which bash
Это даст вам путь к нужной вам оболочке, например, /bin/bash
, /usr/bin/bash
или /usr/local/bin/bash
. Конечно, если вам нужна оболочка, отличная от bash, вы скажете, which tcsh
, which zsh
или аналогичный.
Если вы не видите пути, но вместо того, чтобы увидеть bash not found
то вам необходимо установить соответствующий пакет, и снова использовать which
, чтобы выяснить , где была установлена оболочка.
Используя путь выбранной вами оболочки, вы можете, наконец, изменить ее, запустив
chsh -s /bin/bash
заменив /bin/bash
на любой подходящий путь для вашей оболочки.
Из-за вашей подсказки переменных среды $PS1
, $PS2
и т.д. Эти вещи не всегда переносимы между оболочками, поэтому вот несколько ссылок для возможных кандидатов:
bash
есть обширное руководство со страницами, посвященными переменным Bash (включая PS1
и т. д.) и « Печать приглашения» (где описывается PROMPT_COMMAND
, длинное имя для PS1
). Добавьте следующую строку в ваш ~/.bashrc
export PS1='[\u@\h \w] '
tcsh
есть электронное руководство (только его страница руководства ) с разделом о переменных среды приглашения . Добавьте следующую строку в ваш ~/.tcshrc
set prompt='[%n@%m %~] '
zsh
есть руководство пользователя с простым руководством к подсказкам, а также руководство с очень подробным справочником по расширению подсказок. Добавьте следующую строку в ваш ~/.zshrc
export PS1='[%n@%m %~] '
Баш не единственная оболочка.
Ваша проблема может заключаться в том, что у вас нет .profile или .bashrc, который устанавливает PS1, или в том, что ваша оболочка входа вообще не является bash.
Bash использует gnu readline
для таких вещей, как завершение табуляции. Это сложная тема, и readline даже имеет собственный конфигурационный файл для каждого пользователя.
Смотрите man bash
, man sh
и man 3 readline
. Баш отвечает на --version
. Во многих системах linux /bin/sh
самом деле не bash, а обычно урезанная версия ash
.
Я думаю, вы не используете bash, но sh и ваше приглашение не настроено должным образом (если это возможно даже с sh).
вы можете получить текущую оболочку, набрав: echo $SHELL
если вы хотите запустить bash, просто введите bash
Вам необходимо установить переменную с именем PS1 в одном из ваших сценариев входа в систему, например /etc /profile или ~ /.bashrc. Это будет зависеть от вашего распространения.
Пример: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html