На одном из моих серверов это приглашение [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 , ты?)