Как включить автозаполнение в терминале

Este тип полезен для всех тех, кто часто (ежедневно) использует терминал или консоль в системах GNU / Linux.

До начала

Если у нас не установлен пакет bash-completing, мы его устанавливаем:

aptitude установить завершение bash

Включить автозаполнение TTY для всех пользователей

Открываем / etc / profile

нано / и т.д. / профиль

Ищем в / etc / profile следующие строки ...

# включить завершение bash в интерактивных оболочках
#if [-f / etc / bash_completion] &&! shopt -oq posix; тогда
#. / и т.д. / bash_completion
#фи

И заменяем на:

если ["$ BASH"]; тогда
       если [-f / etc / bash_completion] &&! shopt -oq posix; тогда
            . / и т.д. / bash_completion
       fi
fi

Последний активирует bash_completion для всех пользователей, включая root. Но он активирует его только на TTY, а не на эмуляторах терминала.

Сбрасываем TTY и все.

Как видите, мы добавили if в исходный файл, который подтверждает, что bash_completion запускается только тогда, когда мы находимся в Bash. Без этого условия GDM выдаст ранее упомянутую ошибку, поскольку GDM будет вызывать bash_completion и по какой-то причине конфликтует с xsession.

Включить автозаполнение в эмуляторах терминала для всех пользователей

Открываем /etc/bash.bashrc

# нано /etc/bash.bashrc

Ищем в /etc/bash.bashrc следующие строки ...

# включить завершение bash в интерактивных оболочках
#if [-f / etc / bash_completion] &&! shopt -oq posix; тогда
#. / и т.д. / bash_completion
#фи

... И убираем "#" (раскомментируем их), примерно так:

# включить завершение bash в интерактивных оболочках
если [-f / etc / bash_completion] &&! shopt -oq posix; тогда
    . / и т.д. / bash_completion
fi

Последний активирует bash_completion для всех пользователей, включая root. Но он включит его только в эмуляторах терминала, но не в TTY.

Мы перезапускаем любой терминал и изменения вступят в силу.

Включить автозаполнение в эмуляторах терминала только для одного пользователя

Мы должны создать (или отредактировать, если он существует) файл ~ / .bashrc.

nano ~ / .bashrc

Добавляем (или ищем, если их нет, но прокомментировали, как это сделано в /etc/bash.bashrc) так, чтобы это выглядело так:

# включить завершение bash в интерактивных оболочках
если [-f / etc / bash_completion] &&! shopt -oq posix; тогда
    . / и т.д. / bash_completion
fi

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

Мы перезапускаем консоль, и изменения вступят в силу.

Включите автозаполнение при желании

Нам просто нужно запустить bash_completion в тот момент, когда мы хотим его использовать. Он будет деактивирован, когда мы завершим сеанс в терминале (с помощью команды exit) или закроем терминал, который мы используем, если мы находимся в графической среде. Чтобы запустить его, когда захотим, мы делаем:

. / и т.д. / bash_completion
Спасибо, Карлос Фиорити!

Источник: записная книжка 98 года


Добавить в качестве предпочтительного источника в Google