На одном из моих серверов это приглашение [user @ host path] ... и я могу нажать «tab» для автоматического заполнения пути.
Но на моем новом сервере Ubuntu это просто знак доллара?
На одном из моих серверов это приглашение [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
. Конечно, если вы хотите оболочку, кроме Баша, вы будете говорить which tcsh
, which zsh
или аналогичные.
Если вы не видите путь, но вместо этого видите bash not found
, то вам нужно установить соответствующий пакет и снова использовать, which
чтобы узнать, где была установлена оболочка.
Используя путь выбранной вами оболочки, вы можете, наконец, изменить свою оболочку, запустив
chsh -s /bin/bash
замена /bin/bash
на любой подходящий путь для вашей оболочки по выбору.
Из - за ваше быстрое переменное окружение $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 %~] '
Баш не единственная оболочка.
Ваша проблема может заключаться в том, что у вас нет .profile или .bashrc, который устанавливает PS1, или в том, что ваша оболочка входа в систему вообще не является bash.
Bash использует gnu readline
для таких вещей, как завершение вкладки. Это сложная тема, и readline даже имеет собственный конфигурационный файл для каждого пользователя.
См man bash
, man sh
и man 3 readline
. Баш отвечает на --version
. Во многих системах Linux /bin/sh
это не bash, а обычно ограниченная версия ash
.
dash
вместо ash
? я думал, что прочитал что-то вроде этого
я думаю, вы не используете bash, но sh и ваше приглашение не настроено должным образом (если это возможно даже с sh).
вы можете получить текущую оболочку, набрав: echo $SHELL
если вы хотите запустить bash, просто наберите bash
sh
. Echoing $SHELL
напечатает переменную окружения с именем SHELL
. Эта переменная окружения просто указывает на оболочку и устанавливается только bash. Приблизительно бесполезно определять, какая оболочка запущена, поскольку лишь слабо указывает на то, что какой-то родительский элемент текущего процесса мог быть bash.
/bin/sh
, да. Но я не знаю ни одной оболочки, которую зовут sh
. Я могу думать ash
, ksh
, csh
, bash
, zsh
, и tcsh
. Первый - это обычный / bin / sh в Linux и NetBSD, последний - обычная оболочка FreeBSD, а остальные - необязательные оболочки. Многие окружения рабочего стола изменяют оболочку входа пользователей на bash, оставляя / bin / sh как ash.
sh
- оболочка Борна. en.wikipedia.org/wiki/Bourne_shell Некоторые системы (Solaris) все еще поставляются с версией оболочки Bourne, которая не является просто копией одной из повторных реализаций (ash, dash, bash, ksh, zsh).
Вам необходимо установить переменную с именем PS1 в одном из ваших сценариев входа в систему, например / etc / profile или ~ / .bashrc. Это будет зависеть от вашего распространения.
Пример: http://www.cyberciti.biz/tips/howto-linux-unix-bash-shell-setup-prompt.html
pwd
можете напечатать имя текущего рабочего каталога. И вы говорите, что Tab-завершение тоже не работает? (На некоторых машинах, которые я использую, я получаю это короткое приглашение, только если я вхожу в систему как root, и я с радостью оставляю это как хорошее предупреждение. Поскольку редко, если когда-либо, нужно войти в систему как root: вы не используете root , ты?)