Я на Debian Jessie 8.6. Я заметил, что apt-get
получит ожидаемое автозаполнение bash при нажатии tab для пакетов и команд, но при попытке использовать его с apt
ним не работает. Я помню, как использовал xubuntu 16.04, где он работал, поэтому я нахожу странным, что он здесь не работает. Есть ли способ включить его и для команды apt
? Если так, то как?
debian
apt
autocomplete
Andrea
источник
источник
Ответы:
Debian не поставляется с установленным и включенным 'bash-complete'.
Чтобы это исправить, запустите (с правами root):
Тогда у вас есть два варианта. Вы можете (1) включить его отдельно для каждого пользователя или (2) включить глобально.
Если вы хотите включить его только для своего пользователя, отредактируйте
~/.bashrc
- добавьте следующее:Чтобы попробовать это без выхода из системы и обратно, запустите:
Или откройте новую оболочку. Затем попробуйте использовать табуляцию с apt. Эта точка и пробел в начале (
.
) аналогичны использованиюsource
ключевого слова в bash, но более переносимы.Если вы хотите, чтобы он работал, когда вы
su
входите в учетную запись root, сделайте то же самое в домашнем каталоге root (обычно/root
).Чтобы включить его глобально,
/etc/bash.bashrc
вместо этого внесите изменения из (1) в файл .Для тех , кто интересно , почему это работает, то
.
перед/etc/bash_completion
вовсе не относятся к текущему каталогу, так как она имеет пробелы вокруг него. Вместо этого он выполняет оценку содержимого данного файла в текущей запущенной оболочке, а не выполняется в новой подоболочке. Это стандартизировано здесь.В Bash это
.
можно заменить командойsource
, но это не стандартизировано POSIX и менее переносимо, поэтому я склонен отвлекать людей от его использования. В этом случае, поскольку это определенно программа для расширения bash, а не что-то, что должно работать в оболочке Bourne илиksh
вы можете смело заменятьsource
читабельность.источник
В Debian 9 Stretch просто отредактируйте /etc/bash.bashrc и раскомментируйте:
источник
Скопируйте этот файл конфигурации из Ubuntu: / usr / share / bash-завершению / завершений / apt в тот же каталог в Jessie. Вы также можете получить файл здесь: http://pastebin.com/PRBMt3an
источник
Как я это решил
У меня были проблемы с автозаполнением
wget
при попытке автозаполнения,apt-get install wg[TAB][TAB]
и мне удалось решить эту проблему, удалив--no-generate
параметр из файла ниже:Стоит отметить, что эти файлы доступны только после установки
bash-completion
.--no-generate
Параметр я имею в виду можно увидеть в строке ниже, но я удалил ВСЕ--no-generate
, а не только от этой линии: https://github.com/scop/bash-completion/blob/master/completions/apt-get# L28Как я дошел до этого момента?
Я попал в этот момент после запуска
set -v
доapt-get install wg[TAB][TAB]
, который показал, что выполненная команда была:и на выходе была ошибка:
Когда я выполнил
apt-cache pkgnames wg
без,--no-generate
я правильно получил список для автозаполнения:Надеюсь это поможет.
источник
Проблема, скорее всего, вызвана
настройки в
/etc/apt/apt.conf.d
. В моем случае он возник из образа Debian Docker, см. Https://github.com/debuerreotype/debuerreotype/blob/799473bee3d388cf00bd55221b38a9d58bd6a2ba/scripts/debuerreotype-minimizing-configисточник