CLI-Teil2-Dateien betrachten und editieren

Aus revampedia

Vorwort

Hier entsteht der zweite Teil zur Einführung ins CLI. Den ersten Teil habe ich mittlerweile erstellt. Ich werde diesen und die folgenden Teile probieren nach Thema zu erstellen. Nachdem wir gelernt haben wie wir Verzeichnisse navigieren, anschauen, erstellen/entfernen und neue Programme installieren, wollen wir hier einige der Möglichkeiten zum betrachten und editieren der Dateien kennenlernen.

Falls noch Fragen offen sind nach dieser Anleitung bitte oben bei "Ansichten" auf "Diskussion" gehen und Feedback hinterlassen, dass ich noch weitere Details hinzufügen kann. jr

Dateien betrachten und editieren

cat

Es handelt sich hier nicht um die Katze in der englischen Sprache, sondern um eine Abkürzung von concatenate. Man kann damit eine Datei oder mehrere Dateien anzeigen lassen.
Zuerst rufen wir mal nur eine Datei auf:

Cat.png

Wenn wir jetzt noch eine zweite Datei aufrufen kann man den Übergang von der ersten zur zweiten Datei nur sehen, wenn man weiss wo er ist:

Cat2.png

Falls wir das Resultat von cat speichern wollen, so können wir es direkt in eine Datei umleiten:

Cat3.png

Über das ">"ändern wir den STDOUT vom Bildschirm zu der Datei kombo.txt. Eine Erklärung zu STDIN, STDOUT und STDERR kann man hier finden oder ebenfalls unter diesem Link.


grep

Das Programm "grep" kann man dazu nutzen um nach einem Begriff oder Wort suchen. Es gibt zwei Varianten wie man grep nutzen kann. Zum einen kann man direkt grep aufrufen oder man kann das Resultat von einem Befehl über Pipe mit grep filtern, dass nur das gesuchte angezeigt wird.
In diesem Beispiel hier durchsuche ich alle Dateien in meinem Ordner /home/jruettimann/beispiel/texte/ nach dem Begriff "Hier ist". Durch den Parameter "-i" sage ich dem System, dass es Gross-/Kleinschreibung ignorieren soll. Statt dem * kann man auch einen Dateinamen angeben um nur die spezifische Datei zu durchsuchen.
Grep.png

Falls man direkt grep nutzt, kann man noch sehen in welcher Datei der Suchbegriff gefunden wurde wie unser Bild zeigt. Falls man einen Suchbegriff ohne sogenannte Whitespaces hat, sind die "" nicht notwendig.


less

Falls man den Inhalt einer Datei anschauen will die länger ist als eine Bildschirmseite, so eignet sich das Programm "less" dazu. Indirekt hatten wir vermutlich schon Kontakt damit über die man-Pages. Um zu lernen wie man am besten innerhalb von less navigiert kann man während man eine Datei am betrachten ist "h" drücken. Dies bringt einem die Zusammenfassung der Befehle innerhalb von less.

Less.png

Die Zusammenfassung ist länger als eine Bildschirmseite, somit habe ich nur den obersten Teil im Bild hier genommen. So sieht man wie man less verlassen kann und wie man die Zusammenfassung aufrufen kann.
Solange ich auf dem Desktop im Terminal arbeite kann ich neben den Pfeilen auf der Tastatur auch das Rad an der Maus nutzen um im Text weiter nach oben oder unten zu gehen.


more

Beim Programm "more" handelt es sich in gewissen Sinne um den Vorgänger von "less". Auf einigen alten Systemen ist es möglich, dass "less" nicht verfügbar ist und man deswegen "more" nutzen muss. Auch hier nutzt man "q" um die Dateiansicht zu verlassen. Mit der Leertaste kann man eine Seite weitergehen. Die möglichen Funktionen innerhalb von "more" werden über "h" angezeigt. Hier was es mir geliefert hat:

More.png


nano

Beim Programm "nano" handelt es sich um einen anfängerfreundlichen Editor. Er ist auf neueren Systemen zu finden. Die wichtigsten Menüpunkte befinden sich am unteren Rand vom Fenster.

Nano.png

Speichern ist hier als ^O angezeigt. Um zu speichern drücken wir Ctrl+O. Auch die anderen Befehle brauchen Ctrl und den angegebenen Buchstaben. Die Suchfunktion kriegt man mit Ctrl+W und ist im Menü als "Wo ist" aufgelistet. Was vielleicht nicht so anfängerfreundlich im Menü geschrieben ist, ist Ausschneiden/Einfügen. Das Ausschneiden ist mit Ctrl+K noch verständlich. Dass Ctrl+U jedoch Einfügen ist, kann man vom "Ausschn. rückgängig" nicht gleich erraten.


vim

Bei "vim" handelt es sich um einen Editor, der nicht zu anfängerfreundlich ist. Er wurde schon vor ca. 30 Jahren (1987) erschaffen und man kann seine Geschichte hier nachlesen. Was den Editor nicht sehr anfängerfreundlich macht ist wohl, dass es zwei verschiedene Modis gibt und man die Tastenbefehle kennen muss. Zum einen gibt es den "normalen Modus" (auch Command Mode genannt) und zum anderen gibt es den "Eingabemodus" (insert mode). Wie ich hier gelesen habe, gibt es auch noch einen "visual mode", doch den habe ich bislang noch nie ausprobiert und kann somit nichts dazu sagen.

Auf älteren System ist es also möglich, dass nur vim als editor verfügbar ist, dass es sinnvoll ist, wenn man weiss wie man ihn nutzen kann. Ich habe bei einer Suche im Netz ein interaktives Tutorial gefunden. Vom Überfliegen her ist auch hier eine gute Erklärung zu den verschiedenen Tastenbefehlen im normalen Modus zu finden. Wem das zu lang war, kann man hier eine kürzere Einführung zu vim finden. Wieder eine etwas längere Einführung mit kleinen videos zu Befehlen lässt sich unter diesem Link finden. Es gibt ebenfalls die Möglichkeit vim über ein Spiel namens vim-adventures zu lernen. Leider kann man nur die ersten drei Level spielen ohne Geld auszugeben. Ein weiteres Tutorial empfielt jeden Tag nur ein bis zwei neue Befehle zu lernen, dass man nach einiger Zeit dann mehr und mehr machen kann.

Man kann auch im CLI den Befehl vimtutor eingeben, wenn man vim installiert hat auf seinem System. Ich habe mir dabei mal einige Notizen gemacht, doch ich glaube nicht, dass ich das ganze Tutorial durchgemacht habe. Ich hoffe die Notizen können auch ein wenig helfen:

- Über :wq lässt sich der Texteditor beenden und er speichert das geschriebene
- mit Shift+A kommt man ans Ende der Zeile und kann anfangen zu schreiben, alternativ über Shift+ZZ ohne :
- mit A lässt sich am Cursorort was einfügen
- mit O fängt man eine neue Zeile an und schreibt ab da
- mit i fängt man auf der Cursorstelle an zu schreiben
- mit :q! verlässt man das Programm ohne zu speichern
- mit Shift+o fängt man auf einer neuen Zeile an
- mit Shift+7 lässt sich was suchen oder anders gesagt mit /
- mit Shift+' (=?) lässt sich rückwärts im Text suchen
- bei der Suche N oder Shift+N drücken um vorwärts den nächsten Treffer zu zeigen oder wenn mit Shift rückwärts
- mit X löscht man das Zeichen unter dem Cursor
- DD löscht eine ganze Zeile
- DW löscht ein einzelnes Wort
- Mit D und anschliessend Shift+G löscht man vom Cursor aus bis Dateiende
- mit U löscht man was man zuletzt eingegeben hat
- Ctrl+R stellt dann was man entfernt hat wieder her


Eine wohl ausführlichere Form ist wohl unter diesem Link zu finden. Ich hatte den Link auch schon weiter oben im Text eingebaut.