Tastenzauber in der Konsole: Unterschied zwischen den Versionen
(Die Seite wurde neu angelegt: „Kategorie:Tutorials Übersicht über das Konsolen-Tutorial ==Kontextabhängige Ergänzung mittels Tabulator== Eine geniale Vereinfachung ist die Vervollst…“) |
|||
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt) | |||
Zeile 1: | Zeile 1: | ||
[[Kategorie:Tutorials]] | [[Kategorie:Tutorials]] | ||
[[Übersicht über das Konsolen-Tutorial]] | [[Übersicht über das Konsolen-Tutorial]] | ||
==Die Eingabezeile== | |||
Es gibt hier einen (Text-) Cursor, der bestimmt, wo die nächste sichtbare Taste (Buchstabe, Ziffer oder Sonderzeichen) erscheinen wird. Dieser Cursor kann nur mit den Pfeiltasten "rechts" und "links" oder der Rücktaste ("Backspace") verändert werden, '''nicht mit der Maus'''! Außerdem haben die Steuerungstasten eine Wirkung auf die Eingabezeile: | |||
===Erste Schritte=== | |||
Öffne eine Konsole und tippe ein: | |||
<pre> | |||
ecco Hi | |||
</pre> | |||
Hm, da hat sich ein Fehler eingeschlichen: das sollte echo statt ecco heißen. Also mit der "Pfeil-links"-Taste so lange nach links gehen, bis der Cursor auf dem o steht (wenn der Cursor ein Block mit der Breite eines Zeichens hat oder hinter dem Buchstaben, wenn der Cursor ein senkrechter Strich ist), dann die Rücktaste (über der Enter-Taste, mit einem Linkspfeil markiert) drücken, dann wird das 2.te 'c' gelöscht. Die Taste 'h' drücken, dann steht da | |||
<pre> | |||
hm@ant:/home/hm$ echo Hi | |||
</pre> | |||
Die Enter-Taste kann jederzeit gedrückt werden, der Cursor muss nicht am Zeilenende stehen! Das Enter signalisiert der Shell, dass der Befehl vollständig ist und ausgeführt werden soll, und so schreibt der Befehl die Zeile "Hi". | |||
Der Bildschirm sieht jetzt etwa so aus: | |||
<pre> | |||
hm@ant:/home/hm$ echo Hi | |||
Hi | |||
hm@ant:/home/hm$ | |||
</pre> | |||
Der Prompt in der letzten Zeile fordert uns zu der nächsten Eingabe auf. | |||
==Korrektur- und Suchmöglichkeiten im Shell-Eingabebereich== | |||
Die Shell bash bietet bei der Eingabe Möglichkeiten eines Editors: | |||
===Positionierung=== | |||
* Pfeil-links, Pfeil-rechts bewegen den Cursor in die jeweilige Richtung | |||
* Pfeil-auf: Geht in der Historie Richtung "früher". Ein Tastendruck liefert den letzen Befeh, zwei mal Pfeil-auf liefert den vorletzten usw. | |||
* Pfeil-ab: Geht in der Historie Richtung "später". Ist nur sinnvoll, wenn vorher Pfeil-auf gedrückt wurde. | |||
* Strg-a ("Anfang") geht an den Anfang der Eingabe | |||
* Strg-e ("Ende") geht an das Ende der Eingabe | |||
* Strg-r ("search reverse") sucht inkrementell rückwärts: es wird nach jedem Tastendruck automatisch mit dem Begriff vervollständigt, der als erstes auf die bisherigen Eingaben passt. Wird nochmal Strg-r eingegeben, wird der nächste passende Befehl aus der Historie vorgeschlagen. Passt der Vorschlag, wird mit Enter der Befehl ausgeführt. | |||
== Korrektur== | |||
* Die Rücktaste löscht das Zeichen vor dem Cursor. | |||
* Die Löschtaste löscht das Zeichen unter dem Cursor. | |||
* Strg-k ("Kill") löscht vom Cursor bis zum Eingabeende. | |||
==Kontextabhängige Ergänzung mittels Tabulator== | ==Kontextabhängige Ergänzung mittels Tabulator== | ||
Eine geniale Vereinfachung ist die Vervollständigung von Eingaben, und zwar kontextabhängig. | Eine geniale Vereinfachung ist die Vervollständigung von Eingaben, und zwar kontextabhängig. | ||
Zeile 9: | Zeile 47: | ||
Wenn er nicht eindeutig ist, wird der gemeinsame Teil aller möglichen Begriffe ergänzt. Drückt man jetzt nochmal TAB, erscheint eine Auswahl der Begriffe, die in Frage kommen. Normalerweise müssen wir nur einen Buchstaben drücken und erneut TAB eingeben, die nächste Ergänzung erfolgt und so weiter, bis der Begriff vollständig ist. | Wenn er nicht eindeutig ist, wird der gemeinsame Teil aller möglichen Begriffe ergänzt. Drückt man jetzt nochmal TAB, erscheint eine Auswahl der Begriffe, die in Frage kommen. Normalerweise müssen wir nur einen Buchstaben drücken und erneut TAB eingeben, die nächste Ergänzung erfolgt und so weiter, bis der Begriff vollständig ist. | ||
===Beispiel=== | ===Beispiel=== | ||
Voraussetzungen schaffen: | |||
* Wir geben ein ' | <source lang="bash"> | ||
* Die Shell ergänzt | cd /tmp ; mkdir bsp ; cd bsp | ||
touch Text01.txt Text02.txt Textsammlung.txt | |||
</source> | |||
Hinweis: touch erzeugt die angegebenen Dateien. | |||
Jetzt funktioniert folgendes Beispiel: | |||
* Wir geben ein 'T' TAB | |||
* Die Shell ergänzt Text. Das ist die Gemeinsamkeit aller Begriffe. | |||
* Wir drücken TAB. | * Wir drücken TAB. | ||
* Es werden alle 3 Begriffe ausgegeben: | * Es werden alle 3 Begriffe ausgegeben: Text01.txt Text02.txt Textsammlung.txt | ||
* Wir drücken '0', dann TAB | * Wir drücken '0', dann TAB | ||
* Es werden die zwei passenden Begriffe ausgegeben: | * Es werden die zwei passenden Begriffe ausgegeben: Text01.txt und Text02.txt. Textsammlung.txt passt ja wegen der '0' nicht mehr. | ||
* Wir drücken '1' und TAB | * Wir drücken '1' und TAB | ||
* Es wird der Rest von | * Es wird der Rest von Text01.txt ergänzt. Die Eingabe war jetzt eindeutig. | ||
===Demonstration der Kontextabhängigkeit=== | ===Demonstration der Kontextabhängigkeit=== | ||
Zeile 41: | Zeile 86: | ||
Am meisten wird die Ergänzung bei Datei- und Verzeichnisnamen eingesetzt: Damit kann mit wenigen Tastendrücken eine Datei irgendwo im Verzeichnisbaum eingegeben werden. Das geht oft viel schneller als die Klickerei in GUI-Programmen. | Am meisten wird die Ergänzung bei Datei- und Verzeichnisnamen eingesetzt: Damit kann mit wenigen Tastendrücken eine Datei irgendwo im Verzeichnisbaum eingegeben werden. Das geht oft viel schneller als die Klickerei in GUI-Programmen. | ||
= | = Nächstes Kapitel = | ||
Die | * [[Die häufigsten Befehle in der Konsole]] | ||
Aktuelle Version vom 22. August 2020, 02:50 Uhr
Übersicht über das Konsolen-Tutorial
Die Eingabezeile[Bearbeiten]
Es gibt hier einen (Text-) Cursor, der bestimmt, wo die nächste sichtbare Taste (Buchstabe, Ziffer oder Sonderzeichen) erscheinen wird. Dieser Cursor kann nur mit den Pfeiltasten "rechts" und "links" oder der Rücktaste ("Backspace") verändert werden, nicht mit der Maus! Außerdem haben die Steuerungstasten eine Wirkung auf die Eingabezeile:
Erste Schritte[Bearbeiten]
Öffne eine Konsole und tippe ein:
ecco Hi
Hm, da hat sich ein Fehler eingeschlichen: das sollte echo statt ecco heißen. Also mit der "Pfeil-links"-Taste so lange nach links gehen, bis der Cursor auf dem o steht (wenn der Cursor ein Block mit der Breite eines Zeichens hat oder hinter dem Buchstaben, wenn der Cursor ein senkrechter Strich ist), dann die Rücktaste (über der Enter-Taste, mit einem Linkspfeil markiert) drücken, dann wird das 2.te 'c' gelöscht. Die Taste 'h' drücken, dann steht da
hm@ant:/home/hm$ echo Hi
Die Enter-Taste kann jederzeit gedrückt werden, der Cursor muss nicht am Zeilenende stehen! Das Enter signalisiert der Shell, dass der Befehl vollständig ist und ausgeführt werden soll, und so schreibt der Befehl die Zeile "Hi". Der Bildschirm sieht jetzt etwa so aus:
hm@ant:/home/hm$ echo Hi Hi hm@ant:/home/hm$
Der Prompt in der letzten Zeile fordert uns zu der nächsten Eingabe auf.
Korrektur- und Suchmöglichkeiten im Shell-Eingabebereich[Bearbeiten]
Die Shell bash bietet bei der Eingabe Möglichkeiten eines Editors:
Positionierung[Bearbeiten]
- Pfeil-links, Pfeil-rechts bewegen den Cursor in die jeweilige Richtung
- Pfeil-auf: Geht in der Historie Richtung "früher". Ein Tastendruck liefert den letzen Befeh, zwei mal Pfeil-auf liefert den vorletzten usw.
- Pfeil-ab: Geht in der Historie Richtung "später". Ist nur sinnvoll, wenn vorher Pfeil-auf gedrückt wurde.
- Strg-a ("Anfang") geht an den Anfang der Eingabe
- Strg-e ("Ende") geht an das Ende der Eingabe
- Strg-r ("search reverse") sucht inkrementell rückwärts: es wird nach jedem Tastendruck automatisch mit dem Begriff vervollständigt, der als erstes auf die bisherigen Eingaben passt. Wird nochmal Strg-r eingegeben, wird der nächste passende Befehl aus der Historie vorgeschlagen. Passt der Vorschlag, wird mit Enter der Befehl ausgeführt.
Korrektur[Bearbeiten]
- Die Rücktaste löscht das Zeichen vor dem Cursor.
- Die Löschtaste löscht das Zeichen unter dem Cursor.
- Strg-k ("Kill") löscht vom Cursor bis zum Eingabeende.
Kontextabhängige Ergänzung mittels Tabulator[Bearbeiten]
Eine geniale Vereinfachung ist die Vervollständigung von Eingaben, und zwar kontextabhängig. Das funktioniert zwar nicht immer, aber an den wichtigsten Stellen.
Das Prinzip der Vervollständigung[Bearbeiten]
Wir tippen einen Begriff nur teilweise ein und drücken dann die Tabulator-Taste (kurz TAB genannt). Wenn der Begriff schon eindeutig ist, wird der Rest des Begriffes automatisch ergänzt. Wenn er nicht eindeutig ist, wird der gemeinsame Teil aller möglichen Begriffe ergänzt. Drückt man jetzt nochmal TAB, erscheint eine Auswahl der Begriffe, die in Frage kommen. Normalerweise müssen wir nur einen Buchstaben drücken und erneut TAB eingeben, die nächste Ergänzung erfolgt und so weiter, bis der Begriff vollständig ist.
Beispiel[Bearbeiten]
Voraussetzungen schaffen:
cd /tmp ; mkdir bsp ; cd bsp
touch Text01.txt Text02.txt Textsammlung.txt
Hinweis: touch erzeugt die angegebenen Dateien.
Jetzt funktioniert folgendes Beispiel:
- Wir geben ein 'T' TAB
- Die Shell ergänzt Text. Das ist die Gemeinsamkeit aller Begriffe.
- Wir drücken TAB.
- Es werden alle 3 Begriffe ausgegeben: Text01.txt Text02.txt Textsammlung.txt
- Wir drücken '0', dann TAB
- Es werden die zwei passenden Begriffe ausgegeben: Text01.txt und Text02.txt. Textsammlung.txt passt ja wegen der '0' nicht mehr.
- Wir drücken '1' und TAB
- Es wird der Rest von Text01.txt ergänzt. Die Eingabe war jetzt eindeutig.
Demonstration der Kontextabhängigkeit[Bearbeiten]
Die Shell weiß, dass am Anfang einer Eingabe ein Befehl (Programm, Script oder Kommandosprachenelement) kommt. Geben wir nach dem Prompt also "apt-c" und TAB ein, werden nur Befehle mit diesem Anfang in die Vorschlagsmenge aufgenommen:
apt-cache apt-cdrom apt-config
Wir geben ein 'a' und TAB ein, es wird zu "apt-cache " ergänzt. Wir geben erneut ein TAB ein: Die Shell weiß jetzt, es muss ein Schalter von apt-cache sein und bietet an:
add dotty dumpavail madison policy search showpkg stats xvcg depends dump gencaches pkgnames rdepends show showsrc unmet
Wir entscheiden uns für search, indem wir "se" und TAB drücken.
Die Shell ergänzt zu "apt-cache search ".
Ein erneutes TAB liefert nichts: Hier ist die Shell ratlos, denn es muss ein Suchstring folgen, und da gibt es keine vernünftigen Vorschlagsmöglichkeiten.
Noch ein Beispiel: Der Befehl "cd" erwartet danach ein Verzeichnis. Wir geben also ein "cd " TAB. Vorschlagsliste umfasst jetzt alle Verzeichnisse (und nicht etwa alle Dateien).
Am meisten wird die Ergänzung bei Datei- und Verzeichnisnamen eingesetzt: Damit kann mit wenigen Tastendrücken eine Datei irgendwo im Verzeichnisbaum eingegeben werden. Das geht oft viel schneller als die Klickerei in GUI-Programmen.