bash_completion не работает, исходная команда не найдена - PullRequest
5 голосов
/ 16 марта 2010

Я недавно унаследовал Ubuntu Hardy box, который работает довольно оригинально.Первое, что я попытался сделать, это отредактировать свой профиль .bashrc, чтобы сделать некоторые раскраски, и добавить некоторые псевдонимы, которые у меня обычно есть, но затем, когда я пытаюсь найти ~ / .bashrc, я получаю sh: source: not found, и я также заметил, что вкладка автозаполнениятакже не работает вообще - я считаю, что это называется bash_completetion, но, как я уверен, вы можете сказать, я не эксперт.

Есть ли какие-то конкретные файлы, которые я должен редактировать, чтобы получить эту базовую функциональность, к которой я привык из коробки?и нет ничего необычного в том, что исходная команда не установлена?

Ответы [ 3 ]

11 голосов
/ 16 марта 2010

Общий мыслительный процесс:

  • Используйте ps, чтобы подтвердить, что вы на самом деле используете sh, а не bash

  • подтвердите, что /bin/bash существует и работает должным образом (и [установите] его, если это не так)

  • используйте chsh, чтобы изменить оболочку входа в систему на bash

  • установить пакет завершения bash, если он отсутствует

1 голос
/ 16 марта 2010

Вы должны получить bash: source: command not found (за исключением того, что bash никогда не сможет найти source, конечно).Если вы получите sh:, то вы либо вообще не запускаете bash, либо запускаете bash с флагом, который говорит ему, что это оболочка Bourne /bin/sh.Введите bash, чтобы получить настоящий bash, или измените конфигурацию запуска, чтобы он не проходил этот флаг за вас (не уверен, где они находятся в Ubuntu).

0 голосов
/ 23 апреля 2014

Серверы Ubuntu иногда используют / bin / sh в качестве оболочки по умолчанию. Это соответствует проблеме, которую вы опубликовали, так как / bin / sh не имеет доступной исходной команды. Если вы заметили отсутствующие функции bash, возможно, вы не в bash. Вот шаги, которые нужно выполнить, и что-то, что нужно запомнить, когда вы входите в новый * nix-ящик:

  1. Проверьте, какую оболочку вы используете с echo $0
  2. Посмотрите, какие оболочки доступны с cat /etc/shells
    1. Найдите в списке /bin/bash, если хотите использовать bash
    2. Если bash отсутствует в списке, apt-get install bash (для Ubuntu / Debian)
  3. Начните использовать bash с exec /bin/bash
  4. Установить bash в качестве оболочки для входа с помощью chsh -s /bin/bash
...