Bash автозаполнение не работает

Сломалось автодополнение в bash

Сейчас заметил что не работает автодополнение (по tab’у) в bash, например не дополняет имена файлов, если просто протабать на пустой строке говорит

и потом выводит содержимое каталога в котором нахожусь, при этом выводи только половину информации — если поставить пробел и протабать выводит больше файлов. Если ввести первые несколько символов команды то тогда дополняет нормально. В общем как это можно вылечить? Google говорит о проблемах при обновлении bash-completion, но его я давно не обновлял, свежая версия только если из git тянуть.

ОС — Debian jessie/sid, версия bash-completion 1:2.1-2.

UPD. В процессе написания поста заметил что в, например, /etc нормально дополняет имена файлов.

Это известная проблема, фикс тоже известен:
chsh -s /bin/zsh

Нет, спасибо, этот вариант мне не подойдет.

Опаньки, у тебя сезонное обострение, срочно к доктору!

Так, снес bash-completion — без него работает нормально, хоть знаю куда копать.

-bash: words: неправильный индекс массива

Это нормальное и правильное поведение — bash не дополняет любые каталоги указанные в начале — он дополняет только команды, исполняемые файлы, и каталоги такие файлы содержащие. Дополнение каталога /etc (содержащего скрипты и пр. — тому подтверждение). И каталоги /bin, /usr/bin и т.п. он будет тоже дополнять А вот домашний каталог как правило не содержащий файлов с признаком x он дополнять не станет, и /usr/share так же не будет — надо указать хотя-бы /, а для просмотра текущего каталога следует сначала указывать ./ а затем уже жать tab. Чтобы получить полный перечень — лучше всего запрос предварять какой-нибудь командой, например ls.

ОК, это понятно и логично, но также он и имена файлов не дополняет, например

Источник

Терминал автозаполнения не работает должным образом

Если я начну вводить команду, например, apt-g после нажатия tab , оболочка завершит выполнение команды apt-get , но для второй части команды, например install , если я введу некоторые символы, например insta , нажатие tab , не завершит ее install .

Другой пример: после того, как я вхожу, sudo удар tab не завершает ничего. например: sudo apt-ge [ tab ] и ничего.

Я установил Ubuntu с помощью mini iso (сетевой установщик 40 МБ), так что, возможно, есть конфигурация, которую я пропустил!

Читайте также:  Сколько лет многодетная мама может не работать

Я добавил этот код в мой, .bashrc но все равно он не работает:

Я также проверил разрешение .bashrc и это -rw-r—r— .

Я также использую источник .bashrc изменений после изменения, source .bashrc чтобы применить изменения к новой среде, но по-прежнему никаких эффектов.

Я использую, xfce4-terminal поэтому я подумал, что это может быть терминал, а не bash.

Не имеет никакого значения тоже.

bash-completion это набор сценариев bash, который позволяет настраивать завершение для определенных команд.

Это не только для файлов и каталогов, но также, например, для команд. Таким образом, вы вводите частичные команды и, нажав, Tab мы получаем автоматическое завершение команд.

Монтаж

Шаг 1: Установите bash-complete

И иногда это работает, если мы переустановили его следующей командой:

Шаг 2: Включите bash-complete в вашем .bashrc файле

Откройте свой, gedit

/.bashrc и если этого контента там нет, добавьте его в конце и сохраните.

Важно: После изменений нужно исходный код своего

/.bashrc с source

/.bashrc или возобновить ваш терминал. Это должно быть исправлено сейчас.

/ .bashrc сработало для меня. Только один комментарий; вам не нужно выходить из системы и снова входить в систему, чтобы она работала (возможно, вы не захотите завершать то, в чем вы работаете), вы можете просто запустить source

Источник

автозаполнение не работает для «Sudo apt-get install»

Хорошо, мой колледж только что показал мне, что ты можешь сделать

Это автоматически завершает имя пакета. Просто для примера .

Sudo apt-get install ged приводит к Sudo apt-get install gedit

Сейчас я пытался сделать это, но это не работает для меня.

Как я могу решить это? Нужно ли устанавливать пакет? Мой колледж сказал мне, что он не установил ничего дополнительного для этого.

Bash поддерживает еще несколько видов автозаполнения, а не только завершение имени файла.

В файле /etc/bash.bashrc вы найдете абзац, подобный этому или подобный этому:

(этот пример взят из Debian, но, вероятно, идентичен версии Ubuntu)

Удаляя символ # в начале каждой строки, вы вводите в действие множество дополнительных правил завершения. (Не удаляйте # в первой строке . это действительно комментарий 😉

Я полагаю, что apt-get завершения относятся к числу тех, кому это позволено. Если нет, вы можете подумать о переходе на Zsh. Я знаю, что они поддерживают это 😉

Я обнаружил, что на моем это происходило, потому что bash-completion по какой-то причине не был установлен. Итак, это исправлено (12.04):

У меня была такая же проблема после установки Ubuntu 15.10.
Переустановка bash-completion сработала для меня:

Читайте также:  Как настроить фары шевроле авео т300

В Ubuntu это тоже начало меня раздражать, поэтому я просто сделал (в терминале):

теперь это работает, как я хочу это снова . HTH 🙂

Это отличается от примера, приведенного Полом Хеншем, мой пришел из Ubuntu 12.04. Я не уверен, что именно будет делать версия Полса, может быть, он мог бы уточнить это немного?

Другой проблемой может быть сбой apt-get update . После удаления неправильных источников и запуска apt-get update я восстановил автозаполнение.

Откройте терминал и

После того, как я установил bash-complete, эта проблема исправлена ​​в моей стороне.

это случается со мной, когда либо:

Я использую свой университетский компьютер, где я не могу использовать автозаполнение, потому что я не суперпользователь.

Ppa пакета, который вы пытаетесь загрузить, отсутствует в вашем source.list . Таким образом, терминал не может распознать пакет, который вы пытаетесь загрузить.

ПРИМЕЧАНИЕ. Это может относиться не ко всем. Делюсь своим опытом

Источник

автозаполнение не работает для «sudo apt-get install» [дубликат]

На этот вопрос уже есть ответ здесь:

Хорошо, мой колледж только что показал мне, что вы может сделать

Что он автоматически дополняет имя пакета. Просто для примера .

sudo apt-get install ged приводит к sudo apt-get install gedit

Я попытался сделать это, но у меня это не сработало.

Как я могу это решить? Мне нужно установить пакет? В колледже мне сказали, что он ничего для этого не устанавливал.

7 ответов

В Ubuntu это начало раздражать меня также, таким образом, я просто сделал (в терминале):

теперь это работает как, я хочу это к снова. HTH 🙂

Это отличается от примера, который дал Paul Hänsch, мой прибыл из человечности 12.04. Я не уверен, что версия Pauls сделала бы точно, возможно, он мог уточнить это немного?

Я обнаружил, что на моем это происходило, потому что bash-completion не был установлен по некоторым причинам. Так что это исправило это (12.04):

Другая проблема может быть неудачной apt-get update . После удаления неправильных источников и запуска apt-get update я восстановил автозаполнение.

Откройте Терминал и

После того, как я установил bash-complete, эта проблема исправлена ​​на моей стороне.

Bash поддерживает некоторые виды автозаполнения, а не только завершение имени файла.

В файле /etc/bash.bashrc вы найдете абзац, подобный этому или подобный этому:

(этот пример взят из Debian, но, вероятно, идентичен версии Ubuntu )

Удаляя символ # в начале каждой строки, вы вводите в действие множество дополнительных правил завершения. (Не удаляйте символ # в первой строке . это действительно комментарий; -)

Читайте также:  Самсунг ноутбук не работает от аккумулятора

Я считаю, что дополнения apt-get входят в число тех, для которых это разрешено. Если нет, вы можете подумать о переходе на Zsh. Я знаю, что они поддерживают это; -)

Источник

автозаполнение не работает для «sudo apt-get install» [duplicate]

У этого вопроса уже есть ответ:

Хорошо, колледж мой только показал мне, что вы могли бы сделать

Это автоматически завершает имя пакета. Только для примера .

sudo apt-get install ged результат sudo apt-get install gedit

Теперь я попытался сделать это, но это не работает для меня.

Как я могу это решить? Нужно ли устанавливать пакет? Мой колледж сказал мне, что он ничего не установил для этого.

7 ответов

Bash поддерживает несколько видов автозаполнения, а не только завершение имени файла.

В файле /etc/bash.bashrc вы найдете абзац, подобный этому или похожий на это:

(этот пример относится к debian, но, вероятно, идентичен версии Ubuntu)

Удалив символ # в начале каждой строки, вы ввели много дополнительных правил завершения. (Не удаляйте # в первой строке . это действительно комментарий;)

Я считаю, что apt-get завершает работу с теми, кто включен с этим. Если нет, вы можете подумать о переключении на zsh. Я знаю, что они его поддерживают; -)

Я обнаружил, что это произошло, потому что по какой-то причине не был установлен bash-completion . Так это исправлено (12.04):

У меня была такая же проблема после установки Ubuntu 15.10.
Переустановка bash-completion работала для меня:

В Ubuntu это тоже меня раздражало, поэтому я просто сделал (в терминале):

теперь он работает, как будто я хочу его снова . HTH:)

Это отличается от примера, который дал Павел Хенш, мой пришел из ubuntu 12.04. Я не уверен, что версия Паулса будет делать точно, может быть, он может немного подумать об этом?

Другая проблема может быть неудачной apt-get update . После удаления неправильных источников и выполнения apt-get update , я получил свой автозаполненный файл.

Откройте терминал и

После установки bash-завершения эта проблема исправлена ​​в моей стороне.

это происходит со мной, когда:

Я использую свой университетский компьютер, где я не могу использовать автозаполнение, потому что я не суперпользователь.

Пакет пакета, который вы пытаетесь загрузить, не находится в вашем source.list . Таким образом, терминал не может распознать пакет, который вы пытаетесь загрузить.

ПРИМЕЧАНИЕ. Это может не относиться ко всем. Просто поделитесь своим опытом.

Источник

Оцените статью