Wie kann man beim Eingeben von Verzeichnissen im Terminal eine bessere Ansicht erhalten?

8

Ich benutze derzeit einen Mac und lerne, das Terminal zu benutzen, aber die Frage gilt auch für Linux-Systeme.

Ich möchte fragen, ob es beim Eingeben von Pfaden in der Terminal- / Befehlszeile eine Möglichkeit innerhalb des Terminals gibt, Verzeichnisse besser anzuzeigen.

Zum Beispiel möchte ich in ein bestimmtes Verzeichnis cd. Gibt es nach dem Eingeben der Adresse eine Möglichkeit, in jedem Verzeichnis im Grunde genommen ls zu erstellen? Wenn ich beispielsweise eine Datei von einem Verzeichnis in ein anderes kopieren und 2 absolute Pfade eingeben möchte, muss ich mir 2 Pfade merken? Ich weiß, dass das Drücken der Tabulatortaste bei der automatischen Vervollständigung hilfreich ist, aber was ist, wenn ich den ersten Buchstaben nicht kenne?

Im Moment verlasse ich mich darauf, Finder zu verwenden, aber ich stelle mir vor, dass Leute, die das Terminal ausschließlich nutzen, einen besseren Weg haben.

Vielen Dank !

user1367903
quelle

Antworten:

9

Tabist genau das, was Sie brauchen. Wenn Sie tabzweimal drücken, werden alle möglichen Abschlüsse angezeigt:

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

Sie müssen den ersten Buchstaben nicht kennen, der zweite tabzeigt Ihnen alles.

Terdon
quelle
Die Registerkarte <kbd> </ kbd> gilt auch für die Windows-Befehlszeile.
Hind-D
Und bash / zsh zumindest unter Linux
linuxdev2013
5

Einige Worte mehr über Tab

TabEs ist großartig, einen teilweise schriftlichen Befehl (oder eine Option) unter den verfügbaren auszuführen, wie dies gerade von Terdon in einer anderen Antwort unterstrichen wurde .

Um einen Befehl auszuführen, reicht es aus, einmal zu drückenTab . Um die vollständige Liste zu erhalten, drücken SieTab erneut.
Darüber hinaus möchten Sie möglicherweise das Verhalten von anpassenTab . Versuchen Sie zum Beispiel diese 2 Zeilen:

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

Die erste Tabzeigt Ihnen alle Möglichkeiten und vervollständigt den Befehl automatisch mit der ersten verfügbaren. Ab dem zweiten Drücken Tab beginnt der Zyklus zwischen ihnen zu wechseln.

Anmerkungen:

Sie können Ihre eigenen Bash-Vervollständigungsskripte mit Regeloptionen schreiben ...
Der Artikel enthält mehr als einige Hinweise. Eine Einführung in die Bash-Vervollständigung : Der erste Teil ist für die Basen und der zweite Teil zum Schreiben Ihres eigenen Skripts.

Sie können interessant bind completeund die Referenzen hier unten finden.

2. Antwort: Absolute Pfade und Verknüpfungen

Es ist nicht immer obligatorisch, den absoluten Pfad (vollständig) in jeden Befehl zu schreiben, auch wenn dies beim Schreiben eines Skripts eine gute Vorgehensweise ist und Sie das Risiko einer Ausnutzung als Trojaner vermeiden möchten .

Es gibt einige Abkürzung schneller zu gehen , wie zum Beispiel Tab, , , und ein alle Variablen in der aktuellen Shell definiert. Alt+..~

Hier unten einige Beispiele ( .bedeutet hier und ~bedeutet zu Hause ):

Das Kopieren einer Datei in das aktuelle Verzeichnis reicht zum Schreiben aus. Um eine Datei aus Ihrem Verzeichnis in das aktuelle Verzeichnis zu kopieren , können Sie schreiben. Um eine Datei aus dem aktuellen Verzeichnis in das letzte zu kopieren , wird das letzte Argument des letzten im Verlauf gespeicherten Befehls geschrieben . Wenn Sie erneut drücken, wird die gerade gefundene durch die der vorherigen Position in der Bash-Historie ersetzt. Mit einem Beispiel ist einfacher: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"

Verweise:

  • Eine Einführung in die Bash-Vervollständigung : Teil 1 und Teil 2
  • help bind, ja hilf da bindist ein eingebauter befehl
  • help completeund complete -p | lesseine Liste in einem gemütlichen Format zu haben.
  • help pushdund help popdum ein Verzeichnis vom Stapel zu verschieben und zu löschen.
  • Programmierbare Vervollständigungs-Builtins
Hastur
quelle
2

Und schauen Sie sich an Midnight Commander- einen Dateimanager im Textmodus, der wirklich großartig ist. Sie können in zwei Bedienfeldern navigieren, sobald eine Datei mit einem einfachen F5 kopiert wurde. F6 verschiebt es ... Ich benutze oft Terminals, wenn nicht die meiste Zeit, aber ich könnte nicht ohne leben mc(der normale Name des Pakets).

jcoppens
quelle