Terminal-sessie opnemen en opnieuw afspelen met Asciinema op Linux

  • Giles Benson
  • 0
  • 600
  • 157
>

Invoering

Asciinema is een lichtgewicht en zeer efficiënt alternatief voor een Script terminal sessie recorder. Hiermee kunt u uw JSON-geformatteerde terminalsessie-opnames opnemen, opnieuw afspelen en delen. Het belangrijkste voordeel in vergelijking met desktoprecorders zoals Recordmydesktop, Simplescreenrecorder, Vokoscreen of Kazam is dat Asciinema alle standaard terminalinvoer, uitvoer en fouten opneemt als een gewone ASCII-tekst met ANSI-escape-code .
Als gevolg hiervan is het bestand in JSON-indeling minuscuul groot, zelfs voor een langere terminalsessie. Bovendien geeft het JSON-formaat de gebruiker de mogelijkheid om het Asciinema JSON-uitvoerbestand te delen via eenvoudige bestandsoverdracht, op de openbare website als onderdeel van de ingesloten HTML-code of het te delen op Asciinema.org met een asciinema-account. Ten slotte, in het geval dat u een fout heeft gemaakt tijdens uw terminalsessie, kan uw opgenomen terminalsessie achteraf worden bewerkt met elke teksteditor, dat wil zeggen als u uw weg kent in de syntaxis van de ANSI-escape-code.

Moeilijkheidsgraad

GEMAKKELIJK

Conventies

  • # - vereist dat gegeven linux-commando's worden uitgevoerd met root-privileges, hetzij direct als rootgebruiker, hetzij door gebruik van sudo opdracht
  • $ - vereist dat gegeven linux-commando's worden uitgevoerd als een gewone niet-geprivilegieerde gebruiker

Standaard repository installatie

Het is zeer waarschijnlijk dat asciinema kan worden geïnstalleerd als onderdeel van uw distributierepository. Als Asciinema echter niet beschikbaar is op uw systeem of als u de nieuwste versie wilt installeren, kunt u Linuxbrew pakketbeheerder gebruiken om de Asciinema-installatie uit te voeren zoals hieronder beschreven in de sectie "Installatie vanaf bron"..

Arch Linux

 # pacman -S asciinema 

Debian

 # apt asciinema installeren 

Ubuntu

 $ sudo apt asciinema installeren 

Fedora

 $ sudo dnf installeer asciinema 

Installatie vanaf de bron

De eenvoudigste en aanbevolen manier om de nieuwste Asciinema-versie vanaf de broncode te installeren, is door Linuxbrew pakketbeheerder te gebruiken.

Vereisten

De volgende lijst met vereisten voldoet aan de afhankelijkheidsvereisten voor zowel Linuxbrew als Asciinema.
  • git
  • gcc
  • maken
  • robijn
Voordat u verder gaat met de installatie van Linuxbrew, moet u ervoor zorgen dat de bovenstaande pakketten op uw Linux-systeem zijn geïnstalleerd.

Arch Linux

 # pacman -S git gcc make ruby 

Debian

 # apt install git gcc make ruby 

Ubuntu

 $ sudo apt install git gcc make ruby 

Fedora

 $ sudo dnf install git gcc make ruby 

CentOS

 # yum install git gcc make ruby 

Linuxbrew Installatie

De Linuxbrew-pakketbeheerder is een vork van de populaire Homebrew-pakketbeheerder die wordt gebruikt op het MacOS-besturingssysteem van Apple. Homebrew staat bekend om zijn gebruiksgemak, dat zal binnenkort worden gezien als we Linuxbrew gebruiken om Asciinema te installeren. Voer het onderstaande commando uit om Linuxbrew op uw Linux-distributie te installeren:
 $ ruby ​​-e "$ (curl -fsSL https://raw.githubusercontent.com/Linuxbrew/install/master/install)" 
Linuxbrew is nu geïnstalleerd onder uw $ THUIS / .linuxbrew /. Wat overblijft is om het onderdeel te maken van uw uitvoerbare bestand PAD omgevingsvariabele.
 $ echo 'export PATH = "$ HOME / .linuxbrew / bin: $ PATH"' >> ~ / .bash_profile $. ~ / .bash_profile 
Om de installatie van Linuxbrew te bevestigen, kunt u brouwen commando om zijn versie op te vragen:
 $ brew --version Homebrew 1.1.7 Homebrew / homebrew-core (git revisie 5229; laatste commit 2017-02-02) 

Asciinema Installatie

Nu Linuxbrew is geïnstalleerd, zou de installatie van Asciinema eenvoudig moeten zijn als een enkele one-liner:
 $ brew installeer asciinema 
Controleer de juistheid van de asciinema-installatie:
 $ asciinema --versie asciinema 1.3.0 

Terminal-sessie opnemen

Na al dat harde werk met de installatie is het eindelijk tijd voor plezier. Asciinema is een uiterst eenvoudig te gebruiken software. In feite heeft de huidige versie 1.3 slechts enkele commandoregel-opties beschikbaar en een daarvan is dat ook --helpen.
Laten we beginnen met het opnemen van een terminalsessie met de rec optie. Het volgende linux-commando zal beginnen met het opnemen van je terminalsessie, waarna je een optie hebt om je opname te verwijderen of deze te uploaden naar de website asciinema.org voor een toekomstige referentie.
 $ asciinema rec 
Zodra u de bovenstaande opdracht uitvoert, krijgt u een melding dat de opnamesessie van uw asciinema is gestart en dat de opname kan worden gestopt door in te voeren CTRL + D toetsenreeks of uitvoering van Uitgang opdracht. Als u Debian / Ubuntu / Mint Linux gebruikt, kunt u dit proberen als uw eerste asciinema-opname:
 $ su Wachtwoord: # apt install sl # exit $ sl 
Nadat u de laatste afsluitopdracht heeft ingevoerd, wordt u gevraagd:
 $ exit ~ Asciicast-opname voltooid. ~ Druk  uploaden,  annuleren. https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4 
Als je geen zin hebt om je supergeheime kung-fu-commandoregelvaardigheden te uploaden naar asciinema.org, heb je een optie om Asciinema-opnames op te slaan als een lokaal bestand in JSON-formaat. De volgende asciinema-opname wordt bijvoorbeeld opgeslagen als /tmp/my_rec.json:
 $ asciinema rec /tmp/my_rec.json 
Een andere buitengewoon handige functie van asciinema is tijdbesparing. Als je een langzame schrijver bent of misschien multitasking doet, kan de tijd tussen het invoeren en uitvoeren van je commando's enorm oplopen. Asciinema neemt uw toetsaanslagen in real-time op, wat betekent dat elke pauze die u maakt, zal reflecteren op de lengte van uw resulterende video. Gebruik -w optie om de tijd tussen uw toetsaanslagen te verkorten. Met de volgende linux-opdracht wordt bijvoorbeeld de tijd tussen uw toetsaanslagen teruggebracht tot 0,2 seconden:
 $ asciinema rec -w 0.2 

Opgenomen terminalsessie opnieuw afspelen

Er zijn twee opties om uw opgenomen terminalsessies opnieuw af te spelen. Speel eerst uw terminalsessie rechtstreeks af vanaf asciinema.org. Dat wil zeggen, op voorwaarde dat je je opname eerder hebt geüpload naar asciinema.org en je een geldige URL hebt:
 $ asciinema spelen https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4 
U kunt ook uw lokaal opgeslagen JSON-bestand gebruiken:
 $ asciinema speelt /tmp/my_rec.json 
Gebruik wget opdracht om uw eerder geüploade opname te downloaden. Gewoon toevoegen .json naar uw bestaande URL:
 $ wget -q -O steam_locomotive.json https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4.json $ asciinema speel steam_locomotive.json 

Video insluiten als HTML

Ten slotte wordt Asciinema ook geleverd met een zelfstandige JavaScript-speler. Dat betekent dat het gemakkelijk is om uw opnames van terminalsessies op uw website te delen. De onderstaande regels illustreren dit idee met een eenvoudig index.html code. Download eerst alle benodigde onderdelen:
 $ cd / tmp / $ mkdir steam_locomotive $ cd steam_locomotive / $ wget -q -O steam_locomotive.json https://asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4.json $ wget -q https://github.com/asciinema/asciinema- player / releases / download / v2.4.0 / asciinema-player.css $ wget -q https://github.com/asciinema/asciinema-player/releases/download/v2.4.0/asciinema-player.js 
Maak vervolgens een nieuw /tmp/steam_locomotive/index.html bestand met de volgende inhoud:
   rel = "stylesheet" type = "text / css" href = "./ asciinema-player.css" />    src = "./ steam_locomotive.json" cols = "80" rijen = "24">  src = "./ asciinema-player.js">>   
Als u klaar bent, opent u uw webbrowser, drukt u op CTRL + O en opent u uw nieuw gemaakte /tmp/steam_locomotive/index.html het dossier. Het resultaat zou er ongeveer zo uit moeten zien als de onderstaande voorbeeldvideo:

Gevolgtrekking

Zoals eerder vermeld, is het belangrijkste voordeel van het opnemen van uw terminalsessies met de Asciinema-recorder het minuscule outputbestand waardoor uw video's extreem gemakkelijk te delen zijn. Het bovenstaande voorbeeld leverde een bestand op met 58.472 tekens, dat is 58 KB voor een videosessie van 22 seconden. Bij het bekijken van het output-JSON-bestand is zelfs dit aantal enorm opgeblazen, vooral vanwege het feit dat we een stoomlocomotief over onze terminal hebben zien rennen. Normale terminalsessie van deze lengte zou een veel kleiner uitvoerbestand moeten opleveren.
Wanneer je vervolgens op forums een vraag gaat stellen over je Linux-configuratieprobleem en het moeilijk vindt om uit te leggen hoe je je probleem kunt reproduceren, voer je gewoon uit:
 $ asciinema rec 
en plak de resulterende URL in je forumbericht.

Probleemoplossen

asciinema heeft een UTF-8 nodig

Foutmelding:
 asciinema heeft een UTF-8 native locale nodig om te draaien. Controleer de uitvoer van de opdracht 'locale'. 
Oplossing:
Genereer en exporteer UTF-8-landinstellingen. Bijvoorbeeld:
 $ localedef -c -f UTF-8 -i en_US en_US.UTF-8 $ export LC_ALL = en_US.UTF-8 



Niemand heeft nog op dit artikel gereageerd.

Een verzameling nuttige informatie over het Linux-besturingssysteem en nieuwe technologieën
Nieuwe artikelen, praktische tips, gedetailleerde recensies en handleidingen. Voel je thuis in de wereld van het Linux-besturingssysteem