Come avere una visione migliore quando si digitano le directory nel terminale?


8

Attualmente sto usando un Mac e sto imparando ad usare il terminale, ma la domanda si applica anche ai sistemi Linux.

Vorrei chiedere, quando si digitano percorsi nel terminale / riga di comando, c'è un modo all'interno del terminale per avere una visione migliore delle directory?

Ad esempio, voglio cd in una directory particolare. Una volta che ho iniziato a digitare l'indirizzo, c'è un modo per fondamentalmente ls in ogni directory? Se ad esempio voglio copiare un file da una directory a un'altra e voglio digitare 2 percorsi assoluti, devo memorizzare 2 percorsi? So che premendo Tab aiuta con il completamento automatico, ma cosa succede se non conosco la prima lettera?

In questo momento mi affido all'utilizzo di Finder per questo, ma immagino che le persone che usano esclusivamente il terminale abbiano un modo migliore.

Grazie !

Risposte:


9

Tabè esattamente ciò di cui hai bisogno. Se premi tabdue volte, ti mostrerà tutti i possibili completamenti:

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

Non devi conoscere la prima lettera, la seconda tabti mostrerà tutto.


La scheda <kbd> </kbd> si applica anche alla riga di comando di Windows.
Hind-D,

E bash / zsh almeno su linux
linuxdev2013

5

Qualche parola in più Tab

Tabè fantastico completare un comando scritto parziale (o un'opzione) tra quelli disponibili, come sottolineato da Terdon in un'altra risposta .

Per completare un comando è sufficiente premereTab una volta. Per visualizzare l'elenco completo, premere diTab nuovo.
Inoltre, ti potrebbe piacere personalizzare il comportamento diTab . Prova ad esempio quelle 2 righe:

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

Il primo Tabmostra tutte le possibilità e completa automaticamente il comando con il primo disponibile, dalla seconda volta che lo premi Tab inizierà a scorrere tra di loro.

Appunti:

Puoi scrivere i tuoi script di completamento bash , con opzioni di regole ...
Ci sono più di alcuni suggerimenti nell'articolo Un'introduzione al completamento di bash : la prima parte è per le basi e la seconda per scrivere il tuo script.

Potresti trovare interessanti bind completee i riferimenti qui sotto.

2a risposta: percorsi assoluti e scorciatoie

Non è sempre obbligatorio scrivere il percorso assoluto (completo) in ciascun comando anche se è una buona pratica quando si scrive uno script e si desidera evitare il rischio di sfruttamento come cavalli di Troia .

Ci sono alcuni scorciatoia per andare più veloce, come, ad esempio, Tab, , , e una tutte le variabili definite nella shell corrente. Alt+..~

Di seguito alcuni esempi ( .significa qui e ~significa casa ):

Per copiare un file nella directory corrente è sufficiente scrivere Per copiare dalla directory un file nella directory corrente è possibile scrivere Per copiare un file dalla directory corrente all'ultima, scrive l'ultimo argomento dell'ultimo comando memorizzato nella cronologia . Se premuto di nuovo, sostituirà quello appena trovato con quello della posizione precedente nella storia di bash. Con un esempio è più semplice: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"

Riferimenti:

  • Un'introduzione al completamento della bash : parte 1 e parte 2
  • help bind, sì aiuto perché bindè un comando incorporato
  • help completee complete -p | lessdi avere un elenco in un formato accogliente.
  • help pushde help popdper spingere e far apparire una directory dallo stack.
  • Builtin di completamento programmabili

2

E dai un'occhiata a Midnight Commander: un file manager in modalità testo che è davvero fantastico. Puoi navigare in due pannelli, una volta che un file localizzato in una semplice F5 lo copia. F6 lo sposta ... Uso molto i terminali, se non la maggior parte delle volte, ma non potrei vivere senza mc(il normale nome del pacchetto).

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.