Je suis sur Debian Jessie 8.6. J'ai remarqué que apt-get
la saisie automatique attendue de bash est obtenue en appuyant sur tab pour les packages et la commande, mais lorsque vous essayez de l'utiliser avec apt
cela ne fonctionne pas. Je me souviens d'avoir utilisé xubuntu 16.04 où cela fonctionnait, donc je trouve étrange que cela ne fonctionne pas ici. Existe-t-il un moyen de l'activer également pour la commande apt
? Si c'est le cas, comment?
debian
apt
autocomplete
Andrea
la source
la source
Réponses:
Debian n'est pas fourni avec «bash-complét» installé et activé.
Pour résoudre ce problème, exécutez (en tant que root):
Ensuite, vous avez deux options. Vous pouvez soit (1) l'activer pour chaque utilisateur pour vous-même, soit (2) l'activer globalement.
Si vous souhaitez l'activer uniquement pour votre utilisateur, modifiez
~/.bashrc
- ajoutez ce qui suit:Pour l'essayer sans vous déconnecter et vous reconnecter, exécutez:
Ou ouvrez un nouveau shell. Essayez ensuite d'utiliser la complétion de tabulation avec apt. Ce point et cet espace au début (
.
) sont identiques à l'utilisation dusource
mot - clé dans bash, mais sont plus portables.Si vous voulez que cela fonctionne quand vous êtes
su
dans le compte root, faites la même chose dans le répertoire personnel de root (généralement/root
).Pour l'activer globalement, effectuez plutôt les modifications de (1) dans le fichier
/etc/bash.bashrc
.Pour tous ceux qui se demandent pourquoi cela fonctionne, le
.
devant/etc/bash_completion
ne fait pas référence au répertoire actuel, car il a des espaces autour de lui. Au lieu de cela, il fait évaluer le contenu du fichier donné dans le shell en cours d'exécution, au lieu d'être exécuté dans un nouveau sous-shell. Il est normalisé ici.Dans Bash, cela
.
peut être remplacé par la commandesource
, mais ce n'est pas standardisé par POSIX et est moins portable, donc j'ai tendance à éloigner les gens de son utilisation. Dans ce cas, puisqu'il s'agit spécifiquement d'un programme d'extension de bash, plutôt que de quelque chose qui doit fonctionner dans un shell bourne ouksh
, vous pouvez vous sentir libre de remplacer lasource
lisibilité.la source
Dans Debian 9 Stretch, éditez simplement /etc/bash.bashrc et décommentez:
la source
Copiez ce fichier de configuration depuis Ubuntu: / usr / share / bash-complétion / achèvements / apt dans le même répertoire dans Jessie. Vous pouvez également obtenir le fichier ici: http://pastebin.com/PRBMt3an
la source
Comment je l'ai résolu
J'ai eu des problèmes de complétion automatique
wget
avec la saisie semi-automatiqueapt-get install wg[TAB][TAB]
et j'ai réussi à le résoudre en supprimant le--no-generate
paramètre des mouches ci-dessous:Il convient de mentionner que ces fichiers ne sont disponibles qu'après l'installation
bash-completion
.Le
--no-generate
paramètre auquel je fais référence peut être vu dans la ligne ci-dessous, mais j'ai supprimé TOUS--no-generate
, non seulement de cette ligne: https://github.com/scop/bash-completion/blob/master/completions/apt-get# L28Comment en suis-je arrivé là?
Je suis arrivé à ce point après avoir exécuté
set -v
avantapt-get install wg[TAB][TAB]
, ce qui a montré que la commande exécutée était:et la sortie était une erreur:
Lorsque j'ai exécuté
apt-cache pkgnames wg
sans,--no-generate
j'ai correctement obtenu la liste pour la saisie semi-automatique:J'espère que cela t'aides.
la source
Le problème est probablement dû à
paramètres
/etc/apt/apt.conf.d
. Dans mon cas, il provient de l'image Debian Docker, voir https://github.com/debuerreotype/debuerreotype/blob/799473bee3d388cf00bd55221b38a9d58bd6a2ba/scripts/debuerreotype-minimizing-configla source