Completion avec tabulation dans le terminal
Fermé
ebousquie
Messages postés
40
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
28 avril 2009
-
5 mars 2009 à 15:03
Wikimig - 16 oct. 2009 à 23:41
Wikimig - 16 oct. 2009 à 23:41
A voir également:
- Tabulation linux
- Tabulation - Guide
- Linux mint 32 bits - Télécharger - Systèmes d'exploitation
- Diskinternals linux reader - Télécharger - Stockage
- Fortnite linux ✓ - Forum Ubuntu
- Linux live usb creator - Télécharger - Outils Internet
12 réponses
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
5 mars 2009 à 19:56
5 mars 2009 à 19:56
Bonjour,
Après avoir modifié le fichier .bashrc, avez-vous fait un source ?
Après avoir modifié le fichier .bashrc, avez-vous fait un source ?
ebousquie
Messages postés
40
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
28 avril 2009
6 mars 2009 à 10:52
6 mars 2009 à 10:52
ah, non...
Je viens de regarder un peu la comande source. Un de mes problèmes est qu'il existe de nombreux fichiers du type .bashrc, et que je ne sais pas lequel je dois modifier: il y a un /etc/skel/.bashrc, un /etc/bashrc et un /root/.bashrc...
cela dit,
>>source /root/.bashrc
me renvoie:
if: Syntaxe de l'expression.
sans précision supplémentaire.
Je viens de regarder un peu la comande source. Un de mes problèmes est qu'il existe de nombreux fichiers du type .bashrc, et que je ne sais pas lequel je dois modifier: il y a un /etc/skel/.bashrc, un /etc/bashrc et un /root/.bashrc...
cela dit,
>>source /root/.bashrc
me renvoie:
if: Syntaxe de l'expression.
sans précision supplémentaire.
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
6 mars 2009 à 18:02
6 mars 2009 à 18:02
et que j'ai complété le .bashrc
c'est ce fichier .....
quel est son chemin absolu ?
c'est ce fichier .....
quel est son chemin absolu ?
ebousquie
Messages postés
40
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
28 avril 2009
9 mars 2009 à 10:45
9 mars 2009 à 10:45
J'ai modifié les 3 que j'ai indiqués, pour voir si cela allait changer quelque chose:
/root/.bashrc
/etc/skel/.bashrc
/etc/bashrc
Mais rien n'y a fait... Je fais pour l'instant avec CTRL+D qui marche bien, mais j'aimerais que TAB-TAB fasse le même effet, ça serait plus plaisant.
/root/.bashrc
/etc/skel/.bashrc
/etc/bashrc
Mais rien n'y a fait... Je fais pour l'instant avec CTRL+D qui marche bien, mais j'aimerais que TAB-TAB fasse le même effet, ça serait plus plaisant.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
9 mars 2009 à 18:48
9 mars 2009 à 18:48
as-tu un fichier bash_completion ???
ebousquie
Messages postés
40
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
28 avril 2009
10 mars 2009 à 10:21
10 mars 2009 à 10:21
Ouais ouais ouais: voici ce que me renvoie le terminal quand je tape
# locate bash_completion
/etc/bash_completion
/etc/bash_completion.d
/etc/bash_completion.d/bittorrent
/etc/bash_completion.d/isql
/etc/profile.d/bash_completion.sh
j'imagine que c'est le 1er qui m'intéresse... ce qui est bizarre c'est que, sauf erreur, le fichier bash_completion est commun à tous les utilisateurs de la machine. Or, lorsque je suis en root, la completion est convenable. Lorsque j'utilise ma session, ça ne marche plus (pourtant les préférences du terminal sont identiques!)...
# locate bash_completion
/etc/bash_completion
/etc/bash_completion.d
/etc/bash_completion.d/bittorrent
/etc/bash_completion.d/isql
/etc/profile.d/bash_completion.sh
j'imagine que c'est le 1er qui m'intéresse... ce qui est bizarre c'est que, sauf erreur, le fichier bash_completion est commun à tous les utilisateurs de la machine. Or, lorsque je suis en root, la completion est convenable. Lorsque j'utilise ma session, ça ne marche plus (pourtant les préférences du terminal sont identiques!)...
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
10 mars 2009 à 19:13
10 mars 2009 à 19:13
je vois pô !
là je suis sur la mandriva et j'ai quelques petites différences (pas de fichier /etc/bash_completion, mais un fichier /root/.bash_completion, par exemple).
pourtant l'autocompletion fonctionne aussi bien pour root que pour mon user !
peut-être regarder du côté du fichier inputrc ...
mais je regarderai sur la fedora dès que j'aurai un moment ...
là je suis sur la mandriva et j'ai quelques petites différences (pas de fichier /etc/bash_completion, mais un fichier /root/.bash_completion, par exemple).
pourtant l'autocompletion fonctionne aussi bien pour root que pour mon user !
peut-être regarder du côté du fichier inputrc ...
mais je regarderai sur la fedora dès que j'aurai un moment ...
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
10 mars 2009 à 20:46
10 mars 2009 à 20:46
avant de regarder le fichier inputrc (bien qu'il soit intéressant) :
as-tu fais un :
as-tu fais un :
source /etc/bash_completion
ebousquie
Messages postés
40
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
28 avril 2009
11 mars 2009 à 11:05
11 mars 2009 à 11:05
Mmouais... on arrive à un niveau que je ne peux plus suivre... mais effectivement ça n'a pas l'air top ici car voici ce que le terminal me renvoie:
>> source /etc/bash_completion
Mauvais : modificateur dans $ (-).
Alors je suis allé chercher (avec un vulgaire CTRL+F) dans le fichier /etc/bash_completion où était ce fameux "(-)". Il n'est présent qu'une fois dans tout le fichier, et je colle ci-dessous un gros bloc le contenant. En espérant que ça aide à localiser le hic.
# GNU tar(1) completion
#
_tar()
{
local cur ext regex tar untar
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
if [ $COMP_CWORD -eq 1 ]; then
COMPREPLY=( $( compgen -W 'c t x u r d A' -- $cur ) )
return 0
fi
case "${COMP_WORDS[1]}" in
##########L'ERREUR SERAIT ICI ???#####################
?(-)c*f)
#####################################################
_filedir
return 0
;;
+([^IZzjy])f)
ext='t@(ar?(.@(Z|gz|bz?(2)))|gz|bz?(2))'
regex='t\(ar\(\.\(Z\|gz\|bz2\?\)\)\?\|gz\|bz2\?\)'
;;
*[Zz]*f)
ext='t?(ar.)@(gz|Z)'
regex='t\(ar\.\)\?\(gz\|Z\)'
;;
*[Ijy]*f)
ext='t?(ar.)bz?(2)'
regex='t\(ar\.\)\?bz2\?'
;;
*)
_filedir
return 0
;;
esac
if "$COMP_LINE" == *$ext' '; then
# complete on files in tar file
#
# get name of tar file from command line
tar=$( echo "$COMP_LINE" | \
sed -e 's/^.* \([^ ]*'$regex'\) .*$/\1/' )
# devise how to untar and list it
untar=t${COMP_WORDS[1]//[^Izjyf]/}
COMPREPLY=( $( compgen -W "$( echo $( tar $untar $tar \
2>/dev/null ) )" -- "$cur" ) )
return 0
fi
>> source /etc/bash_completion
Mauvais : modificateur dans $ (-).
Alors je suis allé chercher (avec un vulgaire CTRL+F) dans le fichier /etc/bash_completion où était ce fameux "(-)". Il n'est présent qu'une fois dans tout le fichier, et je colle ci-dessous un gros bloc le contenant. En espérant que ça aide à localiser le hic.
# GNU tar(1) completion
#
_tar()
{
local cur ext regex tar untar
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
if [ $COMP_CWORD -eq 1 ]; then
COMPREPLY=( $( compgen -W 'c t x u r d A' -- $cur ) )
return 0
fi
case "${COMP_WORDS[1]}" in
##########L'ERREUR SERAIT ICI ???#####################
?(-)c*f)
#####################################################
_filedir
return 0
;;
+([^IZzjy])f)
ext='t@(ar?(.@(Z|gz|bz?(2)))|gz|bz?(2))'
regex='t\(ar\(\.\(Z\|gz\|bz2\?\)\)\?\|gz\|bz2\?\)'
;;
*[Zz]*f)
ext='t?(ar.)@(gz|Z)'
regex='t\(ar\.\)\?\(gz\|Z\)'
;;
*[Ijy]*f)
ext='t?(ar.)bz?(2)'
regex='t\(ar\.\)\?bz2\?'
;;
*)
_filedir
return 0
;;
esac
if "$COMP_LINE" == *$ext' '; then
# complete on files in tar file
#
# get name of tar file from command line
tar=$( echo "$COMP_LINE" | \
sed -e 's/^.* \([^ ]*'$regex'\) .*$/\1/' )
# devise how to untar and list it
untar=t${COMP_WORDS[1]//[^Izjyf]/}
COMPREPLY=( $( compgen -W "$( echo $( tar $untar $tar \
2>/dev/null ) )" -- "$cur" ) )
return 0
fi
ebousquie
Messages postés
40
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
28 avril 2009
11 mars 2009 à 15:27
11 mars 2009 à 15:27
... et j'ajoute que connecté en root, la commande source /etc/bash_completion ne renvoie pas l'erreur
et j'ajoute enfin que si je ne suis pas connecté en root et que je lance la commande source /etc/bash_completion après avoir fait un su -p, ça renvoe le même message d'erreur que celui indiqué dans le post précédent.
J'avoue ne pas trop comprendre...
et j'ajoute enfin que si je ne suis pas connecté en root et que je lance la commande source /etc/bash_completion après avoir fait un su -p, ça renvoe le même message d'erreur que celui indiqué dans le post précédent.
J'avoue ne pas trop comprendre...
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
11 mars 2009 à 18:40
11 mars 2009 à 18:40
heu ... je me rend compte que je ne suis pas sûr d'avoir compris :
J'ai un répertoire /Denis et un répertoire /Denver
puis
le terminal ne me propose pas
/Denis /Denver
s'agit-il de 2 répertoires distincts ou bien du répertoire Denver situé dans le répertoire Denis ?
J'ai un répertoire /Denis et un répertoire /Denver
puis
le terminal ne me propose pas
/Denis /Denver
s'agit-il de 2 répertoires distincts ou bien du répertoire Denver situé dans le répertoire Denis ?
ebousquie
Messages postés
40
Date d'inscription
lundi 12 mai 2008
Statut
Membre
Dernière intervention
28 avril 2009
12 mars 2009 à 10:11
12 mars 2009 à 10:11
Il s'agit bien sûr de 2 répertoires distincs situés au même niveau de l'arborescence. par exemple: /root/Denver et /root/Denis...
bob031
Messages postés
8158
Date d'inscription
samedi 7 août 2004
Statut
Membre
Dernière intervention
1 septembre 2014
472
13 mars 2009 à 18:23
13 mars 2009 à 18:23
bon ben, "no comprendo" non plus !
sous la fedora 9, je n'ai pas de fichier /etc/bash_completion !
.. et pourtant la complétion fonctionne aussi bien pour mon user que pour root !
?
sous la fedora 9, je n'ai pas de fichier /etc/bash_completion !
.. et pourtant la complétion fonctionne aussi bien pour mon user que pour root !
?
Wow! J'arrive un peu tard mais ça peut être utile.
/home/Denis/.bashrc
C'est le fichier rc qui comporte tout un tas de settings de ta session console tant que tu es loggué en tant que "Denis". À modifier à sa convenance.
/root/.bashrc
Idem mais cette fois-ci quand tu es loggué en root. Peut aussi être modifié à sa convenance.
/etc/skel/.bashrc
C'est un fichier par défaut qui servira de base, (de squelette "skel") quand on créera un nouvel utilisateur. Ce fichier sera copié dans /home/NouvelUtilisateur/.bashrc. Ce fichier ne devrait être modifié que si on souhaite que les paramètres de la session console soient répercutés sur tous les utilisateurs qui seront créés. C'est ce fichier qui a par exemple été copié vers /home/Denis/ au moment de la création de cet utilisateur.
Pour ton histoire de complétion : il est possible que tu n'utilises pas le même shell qu'avant : le comportement que tu souhaite ressemble à celui de Bash : tu es peut-être passé sous ksh ou un autre sans faire exprès. Voir le contenu de la variable d'environnement SHELL loggué sous Denis et sous root :
$ echo $SHELL
# echo $SHELL
Wikimig.
/home/Denis/.bashrc
C'est le fichier rc qui comporte tout un tas de settings de ta session console tant que tu es loggué en tant que "Denis". À modifier à sa convenance.
/root/.bashrc
Idem mais cette fois-ci quand tu es loggué en root. Peut aussi être modifié à sa convenance.
/etc/skel/.bashrc
C'est un fichier par défaut qui servira de base, (de squelette "skel") quand on créera un nouvel utilisateur. Ce fichier sera copié dans /home/NouvelUtilisateur/.bashrc. Ce fichier ne devrait être modifié que si on souhaite que les paramètres de la session console soient répercutés sur tous les utilisateurs qui seront créés. C'est ce fichier qui a par exemple été copié vers /home/Denis/ au moment de la création de cet utilisateur.
Pour ton histoire de complétion : il est possible que tu n'utilises pas le même shell qu'avant : le comportement que tu souhaite ressemble à celui de Bash : tu es peut-être passé sous ksh ou un autre sans faire exprès. Voir le contenu de la variable d'environnement SHELL loggué sous Denis et sous root :
$ echo $SHELL
# echo $SHELL
Wikimig.