Nagrywać i odtwarzać sesję terminalową z Asciinema w Linux

Nagrywać i odtwarzać sesję terminalową z Asciinema w Linux

Wstęp

Asciinema to lekka i bardzo wydajna alternatywa dla Scenariusz Rejestrator sesji terminali. Pozwala na nagrywanie, odtwarzanie i udostępnianie sformatowanych nagrań sesji sesji JSON.
Główną zaletą w porównaniu z rejestratorami stacjonarnymi, takimi jak RecordMyDesktop, SimpleScreenRecorder, Vokoscreen lub Kazam, jest to, że Asciinema rejestruje wszystkie standardowe wejście, wyjście i błąd terminalu jako A
zwykły tekst ASCII z kodem ucieczki ANSI .

W rezultacie plik formatu JSON ma niewielki rozmiar nawet dla sesji długoterminowej. Ponadto format JSON daje użytkownikowi możliwość udostępniania pliku wyjściowego JSON ASCIINEMA za pomocą prostego pliku
Transfer, na stronie publicznej w ramach Embedded HTML Code lub udostępnij go na Asciinema.org za pomocą konta Asciinema. Wreszcie, na wypadek, gdybyś popełnił błąd podczas sesji terminalowej, twój
Nagrana sesja terminala może być retrospektywnie edytowana za pomocą dowolnego edytora tekstu, to znaczy, jeśli znasz swoją drogę do kodu ucieczki ANSI.

Trudność

ŁATWY

Konwencje

  • # - Wymaga, aby podane polecenia Linux są wykonywane z uprawnieniami root bezpośrednio jako użytkownik root lub za pomocą sudo Komenda
  • $ - Wymaga, aby podane polecenia Linux zostały wykonane jako zwykły użytkownik niepewny

Standardowa instalacja repozytorium

Jest bardzo prawdopodobne, że Ascinema jest instalowalna jako część repozytorium dystrybucji. Jeśli jednak asciinema nie jest dostępna w twoim systemie lub chcesz zainstalować najnowszą wersję, możesz użyć
Menedżer pakietów Linuxbrew do wykonania instalacji Asciinema, jak opisano poniżej w sekcji „Instalacja ze źródła”.

Arch Linux

# Pacman -s asciinema 

Debian

# apt Zainstaluj asciinema 

Ubuntu

$ sudo apt Zainstaluj asciinema 

Fedora

$ sudo dnf instaluj asciinema 

Instalacja ze źródła

Najłatwiejszym i zalecanym sposobem zainstalowania najnowszej wersji Asciinema ze źródła jest użycie menedżera pakietów Linuxbrew.

Wymagania wstępne

Poniższa lista warunków wstępnych spełnia wymagania zależności zarówno dla Linuxbrew i Asciinema.

  • git
  • GCC
  • robić
  • rubin

Zanim przejdziesz do instalacji Linuxbrew, upewnij się, że powyższe pakiety są wyświetlane w systemie Linux.

Arch Linux

# Pacman -s git gcc tworzy rubin 

Debian

# apt Zainstaluj GIT GCC Make Ruby 

Ubuntu

$ sudo apt instint git gcc zrób rubin 

Fedora

$ sudo dnf instaluj git gcc zrób rubin 

Centos

# mniam instaluj GIT GCC Make Ruby 

Instalacja Linuxbrew

Menedżer pakietów Linuxbrew to widelca popularnego menedżera pakietów Homebrew używanych w systemie operacyjnym Apple MacOS. HOMEBREW jest znany z łatwości użytkowania, co można zobaczyć wkrótce, kiedy używamy
Linuxbrew w celu zainstalowania asciinema. Uruchom polecenie Bellow, aby zainstalować Linuxbrew w dystrybucji Linux:

$ ruby ​​-e "$ (curl -fssl https: // raw.Githubusercontent.com/linuxbrew/install/master/instal) " 

Linuxbrew jest teraz instalowany pod twoim $ Home/.Linuxbrew/. Pozostaje uczynienie go częścią twojego wykonywalnego ŚCIEŻKA Zmienna środowiskowa.

$ echo 'eksport ścieżka = "$ home/.Linuxbrew/bin: $ ścieżka ">> ~//.bash_profile $ . ~/.bash_profile 

Aby potwierdzić instalację Linuxbrew, której możesz użyć napar polecenie, aby zapytać o swoją wersję:

$ Brew --version HomeBrew 1.1.7 Homebrew/Homebrew-Core (Git Revision 5229; Ostatni zatwierdzenie 2017-02-02) 

Instalacja Ascinema

Po zainstalowaniu Linuxbrew instalacja Asciinema powinna być łatwa jako pojedyncza linijka:

$ Brew Instal instaluj asciinema 

Sprawdź poprawność instalacji Asciinema:

$ asciinema --version asciinema 1.3.0 

Nagrywanie sesji terminali

Po całej tej ciężkiej pracy z instalacją jest wreszcie czas na zabawę. Asciinema to niezwykle łatwe w użyciu oprogramowanie. W rzeczywistości obecna wersja 1.3 ma tylko kilka opcji wiersza poleceń
dostępne, a jednym z nich jest --pomoc.

Zacznijmy od nagrywania sesji terminali za pomocą Rec opcja. Poniższe polecenie Linux rozpocznie nagrywanie terminalu
Sesja, po której będziesz mieć opcję odrzucenia nagrywania lub przesłanie go na asciinema.Witryna ORG, aby uzyskać przyszłą referencję.

$ ASCIINEMA REC 

Po uruchomieniu powyższego polecenia zostaniesz powiadomiony, że rozpoczęła się sesja nagrywania Asciinema i że nagranie można zatrzymać, wpisując Ctrl+d Kluczowa sekwencja lub wykonanie
z Wyjście Komenda. Jeśli jesteś na Linux Debian/Ubuntu/Mint, możesz wypróbować to jako pierwsze nagranie Asciinema:

$ su hasło: # apt instint Sl # exit $ sl 

Po wejściu do ostatniego polecenia wyjścia zostaniesz zapytany:

$ exit ~ Asciicast nagrywanie zakończone. ~ Naciśnij, aby przesłać, aby anulować. https: // asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4 

Jeśli nie masz ochoty przesyłać swoich umiejętności linii poleceń super tajnych kung-fu do Asciinema.org, masz opcję przechowywania nagrywania Asciinema jako pliku lokalnego w formacie JSON. Na przykład
Po nagraniu Asciinema będzie przechowywane jako /tmp/my_rec.JSON:

$ ASCIINEMA REC /TMP /MY_REC.JSON 

Kolejną niezwykle przydatną funkcją Asciinema jest przycinanie czasu. Jeśli jesteś powolnym pisarzem lub być może wykonujesz wielozadaniowość, czas między wejściem a wykonywaniem twoich poleceń może
bardzo się rozciągnij. Asciinema rejestruje twoje klawiszy w czasie rzeczywistym, co oznacza, że ​​każda przerwa, którą zrobisz. Używać -w opcja skrócenia czasu między
Twoje klawisze. Na przykład następujące polecenie Linux ogranicza czas między klawiszami na klawisze do 0.2 sekundy:

$ ASCIINEMA REC -W 0.2 

Nagrana sesja terminalowa powtórka

Istnieją dwie opcje odtworzenia nagranych sesji terminalowych. Najpierw odtwarzaj sesję terminalową bezpośrednio z Asciinema.org. To znaczy pod warunkiem, że wcześniej przesłałeś swoje nagrywanie
Asciinema.org i masz ważny adres URL:

$ asciinema zagraj https: // asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4 

Alternatywnie użyj lokalnie przechowywanego pliku JSON:

$ asciinema play /tmp /my_rec.JSON 

Używać wget polecenie do pobrania wcześniej przesłanego nagrywania. Po prostu dodaj .JSON Do twojego istniejącego adresu URL:

$ wget -q -o steam_locomotive.JSON https: // asciinema.org/a/7lw94ys68gsgr1yzdtzwijxm4.JSON $ ASCIINEMA Play Steam_Locomotive.JSON 

Osadzanie wideo jako HTML

Na koniec Ascinema jest również wyposażony w samodzielny odtwarzacz JavaScript. Co oznacza, że ​​łatwo jest udostępnić nagrywania sesji terminali na swojej stronie internetowej. Poniższe linie ilustrują ten pomysł
prosty indeks.html kod. Najpierw pobierz wszystkie niezbędne części:

$ 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/REWEZYTES/Pobierz/V2.4.0/Asciinema-gracz.css $ wget -q https: // github.COM/ASCIINEMA/ASCIINEMA-PLAYER/REWEZYTES/Pobierz/V2.4.0/Asciinema-gracz.JS 

Następnie utwórz nowe /tmp/steam_locomotive/indeks.html Plik z następującą zawartością:

   rel = "styllesheet" type = "text/css" href = "./Asciinema-graer.CSS " />    src = "./Lokomotywa parowa.JSON „cols =” 80 ”wierszy =„ 24 ”>  src = "./Asciinema-graer.JS ">>   

Po przygotowaniu otwórz przeglądarkę internetową, naciśnij Ctrl+O i otwórz nowo utworzone /tmp/steam_locomotive/indeks.html plik. Wynik powinien wyglądać podobnie do przykładowego filmu poniżej:

00: 00-00: 00     

Wniosek

Jak wspomniano wcześniej, główną zaletą rejestrowania sesji terminalowych za pomocą rejestratora Asciinema jest plik wyjściowy niewielki, który sprawia, że ​​Twoje filmy są niezwykle łatwe do udostępniania. Przykład powyżej
Wyprodukował plik zawierający 58 472 znaków, czyli 58 kb na 22 sekundy sesji wideo. Podczas przeglądu pliku wyjściowego JSON nawet ta liczba jest znacznie zawyżona, głównie ze względu na fakt, że mamy
widziałem lokomotywa parowa biegnąca po naszym terminalu. Normalna sesja terminala o tej długości powinna wytworzyć znacznie mniejszy plik wyjściowy.

Następnie, kiedy masz zamiar zadać pytanie na forach dotyczących problemu konfiguracji Linux i trudności z wyjaśnieniem, jak odtworzyć swój problem, po prostu uruchom:

$ ASCIINEMA REC 

i wklej wynikowy adres URL do swojego forum.

Rozwiązywanie problemów

Asciinema potrzebuje UTF-8

Komunikat o błędzie:

Asciinema potrzebuje natywnej lokalizacji UTF-8. Sprawdź wyjście polecenia „lokalizacji”. 

Rozwiązanie:
Generuj i eksportować regionę UTF-8. Na przykład:

$ localedef -c -f utf -8 -i en_us en_us.UTF-8 $ EXPORT LC_ALL = en_us.UTF-8 

Powiązane samouczki Linux:

  • Najlepsze rejestry ekranowe Ubuntu
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Mastering Bash Script Loops
  • Obsługa danych wejściowych użytkownika w skryptach Bash
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Jak testować mikrofon na Manjaro Linux
  • Jak zrobić zrzut ekranu na Manjaro
  • Hung Linux System? Jak uciec do wiersza poleceń i…
  • Jak zrobić zrzut ekranu na Ubuntu 22.04 JAMMY Jellyfish…
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?