Ik Van Linux

Knippen, kopiëren en plakken


Knippen en plakken in de terminal heeft zo zijn nukken. Op een Windows computer en ook bij de Linux desktop ben je gewend dat Ctrl-X staat voor knippen, Ctrl-C staat voor kopiëren en Ctrl-V staat voor plakken. Maar je zult zien dat dit op de terminal niet werkt.
De hoofdreden waarom dit niet werk is omdat Ctrl-C vanuit het Unix verleden een lopend programma onderbreekt. Het programma wordt eigenlijk netjes gevraagd om te stoppen als je Ctrl-C indrukt. We kunnen die combinatie dus niet meer gebruiken om te kopiëren.

Knippen is ook moeilijk omdat de terminal emulator niet weet hoe het tekst moet verwijderen. Bedenk namelijk dat de terminal emulator een dom ding is. De intelligentie zit bij de computer die door de terminal emulator wordt bestuurd. Die computer stuurt tekst naar de terminal emulator, die vervolgens op het scherm wordt getoond. En ingetypte tekst wordt rechtstreeks naar de computer gestuurd. En wat die er mee doet valt buiten de controle van de terminal emulator.
Daarom is de traditionele manier van knippen in de terminal emulator niet mogelijk.

Op de console


Op de console, dus rechtstreeks op het toetsenbord, bij Linux systemen zonder grafische schil, kun je eigenlijk niet kopiëren en plakken. Je hebt immers ook geen muis om iets mee te selecteren.
Hier zijn oplossingen voor. In veel tekstverwerkers, zoals nano en vim kun je tekst markeren en dan kopiëren. Hoe dat moet hoort bij de gebruiksaanwijzing van die programma's. Wat niet werkt is iets in een programma of console terminal kopiëren en dat dan vervolgens in een ander programma of console terminal plakken.

De beste manier. die ik ken om dit toch voor elkaar te krijgen is via het tmux commando. Maar dat commando kan zo veel, dat verdient een heel eigen hoofdstuk.
Maar gelukkig werken we zelden direct op de console. Dus vaak zal dit probleem dan ook niet voorkomen.

In een terminal emulator


Dit komt het vaakst voor. Meestal werk je in een terminal venster in je grafische omgeving. Door die grafische omgeving kun je tekst met de muis selecteren in de terminal en dat dan kopiëren door Shift-Ctrl-C in te drukken. Als je op die manier de geselecteerde tekst op het klembord hebt geplaatst, want dat is wat kopiëren eigenlijk doet, dan kun je die tekst in elke willekeurig ander programma weer plakken met Ctrl-V. Behalve wanneer je die tekst in een andere terminal, of op een andere plek in de zelfde terminal wilt plakken. Want dan moet je Shift-Ctrl-V gebruiken.
Let er bij het plakken ook op dat de cursor van de terminal zich meestal niet via de muis laat verplaatsen. Je moet dan dus eerst met de pijltjes toetsen de cursor naar de gewenste plaats brengen voordat je kunt plakken.

Dit alles geldt ook voor kopiëren en plakken via de rechter muisknop.

Het is allemaal even wennen. Het vervelendste wat er kan gebeuren is dat je een programma per ongeluk afsluit als je een stuk tekst wilt kopiëren door dat per ongeluk met Ctrl-C te doen.

Putty


Het volgende geldt voor Putty gebruikers. Meestal doe je dat op een Windows machine, want daar is Putty heel populair. Putty kan echter ook onder Linux draaien, maar dat zou ik alleen aanraden als je al heel veel ervaring met Putty hebt en de daarbij aangeleerde vaardigheden moeilijk kunt afleren.

Bij Putty kun je een stuk tekst in je terminal simpel op het klembord plaatsen door het met de muis te selecteren. Je hoeft verder niets te doen. Geen rechter muisknop, en ook geen Ctrl-C of Shift-Ctrl-C nodig dus.
Om te plakken verplaats je de cursor in de terminal eerst met de pijltjes toetsen naar de gewenste plek. En dan klik je op de rechter muisknop. Je hoeft dan verder geen keuzes te maken. Gewoon op de rechter muisknop klikken om het klemboard te plakken in de terminal.
Merk wel op dat je de cursor in de terminal niet via de muis kunt verplaatsen.

Er zijn terminal programma's voor Windows die Putty op de achtergrond gebruiken. MobaXterm is zo'n programma. Daar gelden dus dezelfde kopieer en plak regels als voor Putty zelf.