Comment avoir une meilleure vue lors de la saisie des répertoires dans le terminal?

8

J'utilise actuellement un Mac et j'apprends à utiliser le terminal, mais la question s'applique également aux systèmes Linux.

Je voudrais demander, lors de la saisie des chemins dans le terminal / la ligne de commande, existe-t-il un moyen au sein du terminal d'avoir une meilleure vue des répertoires?

Par exemple, je veux enregistrer dans un répertoire particulier. Une fois que j'ai commencé à taper l'adresse, existe-t-il un moyen de ls fondamentalement dans chaque répertoire? Si, par exemple, je veux copier un fichier d'un répertoire à un autre et taper 2 chemins absolus, dois-je mémoriser 2 chemins? Je sais qu'appuyer sur Tab aide à la saisie semi-automatique, mais que faire si je ne connais pas la première lettre?

Pour l'instant, je compte sur Finder pour cela, mais j'imagine que les personnes qui utilisent exclusivement le terminal ont une meilleure façon.

Merci !

user1367903
la source

Réponses:

9

Tabc'est précisément ce dont vous avez besoin. Si vous frappez tabdeux fois, il vous montrera toutes les réalisations possibles:

$ cd /usr/  ## Hit tab twice here
bin/     include/ lib64/   sbin/    src/     
games/   lib/     local/   share/   var/     

Vous n'avez pas besoin de connaître la première lettre, la seconde tabvous montrera tout.

terdon
la source
L'onglet <kbd> </kbd> s'applique également à la ligne de commande Windows.
Hind-D
Et bash / zsh au moins sur linux
linuxdev2013
5

Quelques mots sur Tab

Tabest idéal pour compléter une commande écrite partielle (ou une option) parmi celles disponibles comme vient de le souligner Terdon dans une autre réponse .

Pour terminer une commande suffit d' appuyerTab une fois. Pour avoir la liste complète, appuyez àTab nouveau sur.
De plus, vous pouvez personnaliser le comportement deTab . Essayez par exemple ces 2 lignes:

bind "TAB:menu-complete"
bind "set show-all-if-ambiguous on"

Le premier Tabvous montre toutes les possibilités et complète automatiquement la commande avec la première disponible, à partir de la deuxième fois que vous appuyez Tab dessus, elle commencera à faire défiler les options .

Remarques:

Vous pouvez écrire vos propres scripts de complétion bash , avec des options de règles ...
Il y a plus que quelques conseils dans l'article Une introduction à la complétion bash : la 1ère partie est pour les bases et la seconde pour écrire votre propre script.

Vous pouvez trouver intéressant bind completeet les références ci-dessous.

2e réponse: Chemins et raccourcis absolus

Il n'est pas toujours obligatoire d'écrire le chemin absolu (complet) dans chaque commande même si c'est une bonne pratique lorsque vous écrivez un script et que vous voulez éviter le risque d'exploiter comme chevaux de Troie .

Il y a quelques raccourcis pour aller plus vite, par exemple, Tab, , , et une toutes les variables définies dans le shell courant. Alt+..~

Ci-dessous quelques exemples ( .signifie ici et ~signifie maison ):

Pour copier un fichier dans le répertoire courant suffit d'écrire Pour copier de votre répertoire un fichier dans le répertoire actuel vous pouvez écrire Pour copier un fichier du répertoire courant dans le dernier écrit le dernier argument de la dernière commande stockée dans l'historique . Si vous appuyez à nouveau, il remplacera celui qui vient d'être trouvé par celui de la position précédente dans l'historique de bash. Avec un exemple c'est plus simple:cp /my/far/far/away/myfile .
homecp ~/myfile .
cp myfile $OLDPWD
Alt+.

mkdir OldDir
mkdir NewDir
cd # here press `Alt + .` and it will autocomplete with NewDir
   # press `Alt + .` again and you will see "cd OldDir"

Références:

  • Une introduction à l'achèvement de bash : partie 1 et partie 2
  • help bind, oui aide car bindc'est une commande intégrée
  • help completeet complete -p | lessd'avoir une liste dans un format confortable.
  • help pushdet help popdpour pousser et pop un répertoire de la pile.
  • Builtins d'achèvement programmables
Hastur
la source
2

Et jetez un œil à Midnight Commander- un gestionnaire de fichiers en mode texte qui est vraiment génial. Vous pouvez naviguer dans deux panneaux, une fois qu'un fichier localisé un simple F5 le copie. F6 le déplace ... J'utilise beaucoup de terminaux, sinon la plupart du temps, mais je ne pourrais pas vivre sans mc(le nom normal du package).

jcoppens
la source