Terminali sessioonide salvestus ja jagamine: Difference between revisions
(20 intermediate revisions by the same user not shown) | |||
Line 2: | Line 2: | ||
Terminalis toimunu salvestamiseks ning jagamiseks on mitmeid võimalusi. | Terminalis toimunu salvestamiseks ning jagamiseks on mitmeid võimalusi. | ||
Käesolevas artiklis tutvustatakse asciinema projekti arendust, mis sai alguse ja inspiratsiooni "script" ja "scriptreplay" käskudest. [https://asciinema.org/ Asciinema] saadaval: Linux, macOS, *BSD. [https://github.com/ibigbug/PowerSession Analoog olemas ka MS Windowsile]. | |||
Asciinema rakendus võimaldab terminalis toimunu salvestada ning jagada asciinema.org lehe vahendusel, ehk jagades linki. Lisaks on võimalik rakendust ka oma serverisse paigaldada ja selle kaudu salvestusi suuremale hulgale huvilistele näidata. | Asciinema rakendus võimaldab terminalis toimunu salvestada ning jagada asciinema.org lehe vahendusel, ehk jagades linki. Lisaks on võimalik rakendust ka oma serverisse paigaldada ja selle kaudu salvestusi suuremale hulgale huvilistele näidata. | ||
Samuti võimalik lihtsalt salvestus (olemuselt tegelikult tekstifail) mistahes failiserverisse üles panna ja otseligipääsu korral ka otse arvuti käsurealt vaadata, seejuures esituskiirust paindlikult muutes. Sellisel juhul asciinema serverit vaja ei ole, kui salvestust otse käsureal esitada (üle võrgu, kohalikust masinast). | |||
==Paigaldamine== | ==Paigaldamine== | ||
Line 26: | Line 28: | ||
MS Windowsile (PowerShell) on sisuliselt sama asi olemas - https://github.com/ibigbug/PowerSession | MS Windowsile (PowerShell) on sisuliselt sama asi olemas - https://github.com/ibigbug/PowerSession | ||
==Failivorming== | |||
Kuigi räägime "videost", siis tegelikult terminalisalvestuse puhul sisuliselt tegemist väikesemahulise tekstifailiga toores režiimis (''less -r'' näitab ka), mida asciinema animeerib.: | |||
* asciinema v1.x - [https://github.com/asciinema/asciinema/blob/master/doc/asciicast-v1.md JSON] | |||
* asciinema v2.x - [https://github.com/asciinema/asciinema/blob/develop/doc/asciicast-v2.md asciicast] | |||
Lisalugemist leiab [https://blog.asciinema.org/post/two-point-o/ Asciinema v2.0 artiklist]. | |||
==Kasutamine== | ==Kasutamine== | ||
Line 47: | Line 58: | ||
- arvutis paiknevast failist: | - arvutis paiknevast failist: | ||
asciinema play | asciinema play /teekond/kataloogi/failinimi.cast | ||
less -r /teekond/kataloogi/failinimi.cast #ka võimalus sisu vaadata | |||
- internetist: | - internetist: | ||
Line 55: | Line 68: | ||
Kahekordse kiirusega (-s speed) vaatamine, enda masinasse üles pandud: | Kahekordse kiirusega (-s speed) vaatamine, enda masinasse üles pandud: | ||
asciinema play https://enos.itcollege.ee/~edmund/materials/terminal-recording-streaming/asciinema.cast -s 2 | asciinema play https://enos.itcollege.ee/~edmund/materials/terminal-recording-streaming/asciinema.cast -s 2 | ||
'''Olemuslikult tegemist tegelikult väikesemahulise tekstifailiga, mida asciinema suudab videona näidata. Seejuures on tekst video seest kopeeritav.''' | |||
Kusjuures toetatud on ka kümnendmurrud kiiruse määramisel, nt -s 1.2 (koma asemel tuleb punkti kasutada). | Kusjuures toetatud on ka kümnendmurrud kiiruse määramisel, nt -s 1.2 (koma asemel tuleb punkti kasutada). | ||
Sama video üleval ka ametlikul lehel, samuti saab ise vaatamiskiirust määrata: | |||
asciinema play https://asciinema.org/a/403863 -s 2 | |||
Video üleslaadimiseks: | Video üleslaadimiseks: | ||
asciinema upload failinimi.cast | asciinema upload failinimi.cast | ||
Kui oma serverisse, siis vt [[#S.C3.A4tted|allpool võimalus ka see seadistada]] | |||
Juhul, kui Teil on plaanis ekraanil toimunu salvestada ning hiljem soov üles laadida, siis saab kasutada käskude jada, mis alustab salvestamist, võimaldab vaadata videot peale salvestuse lõppu ning laeb faili üles: | Juhul, kui Teil on plaanis ekraanil toimunu salvestada ning hiljem soov üles laadida, siis saab kasutada käskude jada, mis alustab salvestamist, võimaldab vaadata videot peale salvestuse lõppu ning laeb faili üles: | ||
asciinema rec demo.cast + asciinema play demo.cast + asciinema upload demo.cast | asciinema rec demo.cast + asciinema play demo.cast + asciinema upload demo.cast | ||
Videote vistutamiseks veebis leiab [https://asciinema.org/docs/embedding juhised siit] (HTML, Markdown). | |||
Oma salvestuste kustutamiseks või muutmiseks peab ennast tuvastama käsuga | Oma salvestuste kustutamiseks või muutmiseks peab ennast tuvastama käsuga | ||
Line 106: | Line 128: | ||
[api] | [api] | ||
url = http://asciinema.example.com | url = http://asciinema.example.com | ||
==Salvestuste teisendamine GIF | ==Salvestuste teisendamine pildifailiks== | ||
===GIF=== | |||
Alternatiivina, kui pole võimalust seadistada asciinema serverit ega kasutada avalikku serverit, siis on võimalik salvestusest luua GIF-fail. | Alternatiivina, kui pole võimalust seadistada asciinema serverit ega kasutada avalikku serverit, siis on võimalik salvestusest luua GIF-fail. | ||
https://github.com/asciinema/asciicast2gif - see paistab siiski aegunud olema uue asciinema 2.x jaoks, mis uut failivormingut kasutab. | https://github.com/asciinema/asciicast2gif - see paistab siiski aegunud olema uue asciinema 2.x jaoks, mis uut failivormingut kasutab. | ||
[https://ezgif.com/help/alternative-animated-image-formats Lisateave ka animeeritud GIFi analoogide kohta.] Eriti paljutõotav on [https://flif.info/ Free Lossless Image Format (FLIF)] | [https://ezgif.com/help/alternative-animated-image-formats Lisateave ka animeeritud GIFi analoogide kohta.] Eriti paljutõotav on [https://flif.info/ Free Lossless Image Format (FLIF)] | ||
===SVG=== | |||
Siin on olemas | |||
* [https://github.com/marionebl/svg-term svg-term] | |||
* [https://github.com/marionebl/svg-term-cli svg-term-cli] | |||
* [https://github.com/sharkdp/fd/blob/master/doc/screencast.sh skript teksti automaatsisestuseks] | |||
==Sätted== | ==Sätted== | ||
Line 167: | Line 195: | ||
Täiendavat teavet seadistamise kohta leiab aadressilt: | Täiendavat teavet seadistamise kohta leiab aadressilt: | ||
https://asciinema.org/docs/config | https://asciinema.org/docs/config | ||
==Teksti automaatsisestus== | |||
Antud viited toimivad Linuxis. MS Windowsile tuleb veel lahendused leida. | |||
* [https://stackoverflow.com/questions/53969566/how-can-i-use-scripting-automation-to-record-asciinema-recordings üldine arutelu] | |||
* [https://github.com/paxtonhare/demo-magic konkreetne lahendus] | |||
==Kokkuvõtte ja teised võimalused== | ==Kokkuvõtte ja teised võimalused== | ||
Line 192: | Line 225: | ||
==Viited== | ==Viited== | ||
https://asciinema.org | https://asciinema.org ja näited salvestustest https://asciinema.org/explore | ||
https://blog.asciinema.org/post/two-point-o/ - Asciinema v2.0 | |||
https://discourse.asciinema.org/ - arutelu | https://discourse.asciinema.org/ - arutelu | ||
Line 203: | Line 238: | ||
https://github.com/ibigbug/PowerSession - asciinema PowerShellile MS Windowsis | https://github.com/ibigbug/PowerSession - asciinema PowerShellile MS Windowsis | ||
https://asciinema.org/~lvm - näited PowerShellis salvestamisest | |||
https://discourse.asciinema.org/t/does-asciinema-record-the-passwords-i-type-during-recording-session/23 - kohe ei tasu standardsisendit (stdin) ehk klaviatuuri salvestamist lubada, salasõnad võivad lekkida | https://discourse.asciinema.org/t/does-asciinema-record-the-passwords-i-type-during-recording-session/23 - kohe ei tasu standardsisendit (stdin) ehk klaviatuuri salvestamist lubada, salasõnad võivad lekkida | ||
Line 213: | Line 250: | ||
https://ezgif.com/help/alternative-animated-image-formats - alternatiivsed animeeritud pildifailide vormingud, eriti paljutõotav on [https://flif.info/ Free Lossless Image Format (FLIF)] | https://ezgif.com/help/alternative-animated-image-formats - alternatiivsed animeeritud pildifailide vormingud, eriti paljutõotav on [https://flif.info/ Free Lossless Image Format (FLIF)] | ||
https://asciinema.org/a/153907 - Star Wars, Episode IV. New Hope | |||
[[Category:Operatsioonisüsteemide administreerimine ja sidumine]] | [[Category:Operatsioonisüsteemide administreerimine ja sidumine]] |
Latest revision as of 22:51, 7 April 2021
Sissejuhatus
Terminalis toimunu salvestamiseks ning jagamiseks on mitmeid võimalusi.
Käesolevas artiklis tutvustatakse asciinema projekti arendust, mis sai alguse ja inspiratsiooni "script" ja "scriptreplay" käskudest. Asciinema saadaval: Linux, macOS, *BSD. Analoog olemas ka MS Windowsile.
Asciinema rakendus võimaldab terminalis toimunu salvestada ning jagada asciinema.org lehe vahendusel, ehk jagades linki. Lisaks on võimalik rakendust ka oma serverisse paigaldada ja selle kaudu salvestusi suuremale hulgale huvilistele näidata.
Samuti võimalik lihtsalt salvestus (olemuselt tegelikult tekstifail) mistahes failiserverisse üles panna ja otseligipääsu korral ka otse arvuti käsurealt vaadata, seejuures esituskiirust paindlikult muutes. Sellisel juhul asciinema serverit vaja ei ole, kui salvestust otse käsureal esitada (üle võrgu, kohalikust masinast).
Paigaldamine
Asciinema on võimalik paigaldada erineval viisil, täpsemalt leiab informatsiooni võimalustest asciinema lehelt programmi paigalduse rubriigist.
Ubuntu
Ubuntu Linux 18.10 ja vanemates versioonides vajalik eraldi varamu kuid tegelikult juba alates Ubuntu 16.04 LTS'ist on asciinema Universe'i varamus olemas.
Siin ka väike video asciinema tarkvarapaketi otsimisest, paigaldamisest, juhiste vaatamisest.
apt search asciinema apt show asciinema sudo apt install asciinema asciinema -h man asciinema
Teiste operatsioonisüsteemide tarvis on paigaldusjuhised siin: https://asciinema.org/docs/installation
MS Windowsile (PowerShell) on sisuliselt sama asi olemas - https://github.com/ibigbug/PowerSession
Failivorming
Kuigi räägime "videost", siis tegelikult terminalisalvestuse puhul sisuliselt tegemist väikesemahulise tekstifailiga toores režiimis (less -r näitab ka), mida asciinema animeerib.:
Lisalugemist leiab Asciinema v2.0 artiklist.
Kasutamine
Juhised leiab asciinema kodulehelt.
Ekraanil toimuva salvestamiseks kasutada käsku:
asciinema rec [/teekond/kataloogi/failinimi.cast] [-t "Pealkiri salvestusele"]
Kui kohalikku failinime ei anta, laaditakse pärast salvestamise lõppu salvestus automaatselt vaikimisi serverisse üles. Vastasel korral tehakse kohalik salvestus ja midagi kohe üles ei laadita. Nurksulud annavadki sellest märku, et failinimi ei ole kohustuslik, kuid samas on toetatud. Sama on pealkirja määramisega. Kui pealkirjas erisümboleid (tühikud, täpitähed) ei ole, siis pole jutumärke ka vaja või siis saab erisümboleid kohelda vastavalt kasutatavale kestprogrammile. Pealkirja saab hiljem veebis ka muuta, kui arvuti on profiiliga veebis ära seotud.
Salvestuse lõpetamiseks vajuta CTRL-D või kasuta käsku:
exit
Salvestamise käivitamisel määratakse salvestuse asukoht arvutis läbi faili otsiteekonna (path) määramise.
Salvestatud sessioonide taasesitluseks
- arvutis paiknevast failist:
asciinema play /teekond/kataloogi/failinimi.cast
less -r /teekond/kataloogi/failinimi.cast #ka võimalus sisu vaadata
- internetist:
asciinema play https://asciinema.org/a/faili-id
Kahekordse kiirusega (-s speed) vaatamine, enda masinasse üles pandud:
asciinema play https://enos.itcollege.ee/~edmund/materials/terminal-recording-streaming/asciinema.cast -s 2
Olemuslikult tegemist tegelikult väikesemahulise tekstifailiga, mida asciinema suudab videona näidata. Seejuures on tekst video seest kopeeritav.
Kusjuures toetatud on ka kümnendmurrud kiiruse määramisel, nt -s 1.2 (koma asemel tuleb punkti kasutada).
Sama video üleval ka ametlikul lehel, samuti saab ise vaatamiskiirust määrata:
asciinema play https://asciinema.org/a/403863 -s 2
Video üleslaadimiseks:
asciinema upload failinimi.cast
Kui oma serverisse, siis vt allpool võimalus ka see seadistada
Juhul, kui Teil on plaanis ekraanil toimunu salvestada ning hiljem soov üles laadida, siis saab kasutada käskude jada, mis alustab salvestamist, võimaldab vaadata videot peale salvestuse lõppu ning laeb faili üles:
asciinema rec demo.cast + asciinema play demo.cast + asciinema upload demo.cast
Videote vistutamiseks veebis leiab juhised siit (HTML, Markdown).
Oma salvestuste kustutamiseks või muutmiseks peab ennast tuvastama käsuga
asciinema auth
Seadistamine
Arvuti võimalik siduda asciinema kontoga:
asciinema auth
Antud käsk kuvab veebiaadressi kujul https://asciinema.org/connect/install-id, mille kaudu saab muuta enda salvestatud faile. Lisaks võimalik seadistada kasutaja koos kasutajanime, e-postiga mille aktiveerimiseks saadetakse e-postiga link. asciinema paigalduse ID asub failis $HOME/.config/asciinema/install-id ja seda ID'd kasutataksegi arvuti sidumisel veebikontoga.
Kasutades asciinemat teises arvutis, saab sama ID'd kasutada, kui soovitakse salvestuses sama kasutaja alla üles laadida.
Kui sama ID'd kasutada, ka siis tuleks see käsk (asciinema auth) vähemalt üks kord käivitada. Siis lihtsalt avatakse juba olemasolev konto ehk siis sisuliselt sama ID'ga (access token) saab ligi.
Valikulised argumendid:
-c käivitab määratud käsu asemel kestprogrammi (shell)
-t täpsustab salvestatud faili pealkirja
-y mitte küsida kinnitust
-h abi
-v versiooniteave
man asciinema (põhjalikum juhend)
Asciinema videosid ei pea ilmtingimata laadima asciinema.org lehele. On võimalik ka seadistada oma leht antud otstarbeks.
Asciinema lehe kood on avalikult kättesaadav siin: https://github.com/asciinema/asciinema-server
Lisa oma ~/.config/asciinema/config sätetefaili viide oma lehele:
[api] url = http://asciinema.example.com
Salvestuste teisendamine pildifailiks
GIF
Alternatiivina, kui pole võimalust seadistada asciinema serverit ega kasutada avalikku serverit, siis on võimalik salvestusest luua GIF-fail. https://github.com/asciinema/asciicast2gif - see paistab siiski aegunud olema uue asciinema 2.x jaoks, mis uut failivormingut kasutab.
Lisateave ka animeeritud GIFi analoogide kohta. Eriti paljutõotav on Free Lossless Image Format (FLIF)
SVG
Siin on olemas
Sätted
Asciinema hoiab ligipääsu ID'd (sisuliselt UUID) eraldi failis
$HOME/.config/asciinema/install-id
Esmase asciinema käivituse puhul luuakse ligipääsu ID (access token) ning salvestatakse antud faili, juhul kui seda pole tehtud samas arvutis varem või varasemalt loodud ID sinna ise salvestatud. Kui ise varasemalt loodud ID sinna pandud, siis kasutatakse seda kuid käivitada on igal juhul vähemalt üks kord vaja arvuti sidumiseks olemasoleva kasutajaprofiiliga asciinema.org veebis.
Üldjuhul eraldi sätetefaili asukoht on:
$HOME/.config/asciinema/config
Seda asukohta saab muuta keskkonnamuutuja $ASCIINEMA_CONFIG_HOME abil.
Kui $XDG_CONFIG_HOME on määratud, siis asciinema kasutab $XDG_CONFIG_HOME/asciinema ja mitte $HOME/.config/asciinema
Ennem stdin lubamist tasub lugeda seda postitust.
Automaatselt loodud fail näeb välja selliselt
; API server URL, default: https://asciinema.org ; If you run your own instance of asciinema-server then set its address here ; It can also be overriden by setting ASCIINEMA_API_URL environment variable ;url = https://asciinema.example.com
Sätetefailis on võimalik seadistada täiendavalt:
[record]
; Command to record, default: $SHELL command = /bin/bash -l
; Enable stdin (keyboard) recording, default: no ;stdin = yes
; List of environment variables to capture, default: SHELL,TERM env = SHELL,TERM,USER
; Limit recorded terminal inactivity to max n seconds, default: off idle_time_limit = 3
; Answer "yes" to all interactive prompts, default: no yes = true
; Be quiet, suppress all notices/warnings, default: no quiet = true
[play]
; Playback speed (can be fractional), default: 1 speed = 2
; Limit replayed terminal inactivity to max n seconds, default: off ;idle_time_limit = 1
Täiendavat teavet seadistamise kohta leiab aadressilt: https://asciinema.org/docs/config
Teksti automaatsisestus
Antud viited toimivad Linuxis. MS Windowsile tuleb veel lahendused leida.
Kokkuvõtte ja teised võimalused
Tegemist on kasuliku lahendusega ekraanil toimuva salvestamiseks ning jagamiseks ning ei salvesta sisestatavaid paroole sessiooni ajal. Tööriist on kasulik kui soovitakse teha kas õppevideosi, koostada juhendeid või jagada informatsiooni. Aciinema ei ole ainuvõimalus on ka teisi rakendusi sarnase funktsionaalsusega.
Näiteks:
"ttyrec" - https://www.howtoforge.com/tutorial/how-to-record-your-terminal-session-on-linux/
"bsdutils" - https://www.linuxnix.com/record-terminalshell-session-linux/
"shelr" - https://www.techrepublic.com/blog/linux-and-open-source/record-and-share-your-terminal-session-with-shelrtv/
"TermRecord" - http://xmodulo.com/record-replay-terminal-session-linux.html
jne..
Autorid
Edmund Laugasson, märts 2021, artikli kaasajastamine
Aleksandra Sepp, AK21, november 2017, artikli täiendamine, versioon 2.0
Amagi, jaanuar 2017, versioon 1.0
Viited
https://asciinema.org ja näited salvestustest https://asciinema.org/explore
https://blog.asciinema.org/post/two-point-o/ - Asciinema v2.0
https://discourse.asciinema.org/ - arutelu
https://github.com/asciinema/asciinema - klientprogramm salvestamiseks
https://github.com/asciinema/asciinema-player - veebipõhine videote esitamine
https://github.com/asciinema/asciinema-server - serveri pool oma serverisse paigaldamiseks
https://github.com/ibigbug/PowerSession - asciinema PowerShellile MS Windowsis
https://asciinema.org/~lvm - näited PowerShellis salvestamisest
https://discourse.asciinema.org/t/does-asciinema-record-the-passwords-i-type-during-recording-session/23 - kohe ei tasu standardsisendit (stdin) ehk klaviatuuri salvestamist lubada, salasõnad võivad lekkida
https://anavarre.net/working-with-the-cli-you-should-probably-start-using-asciinema/
https://linuxconfig.org/record-and-replay-terminal-session-with-asciinema-on-linux
https://alternativeto.net/software/asciinema/ - alternatiivid (väga head alternatiivi ei ole)
https://ezgif.com/help/alternative-animated-image-formats - alternatiivsed animeeritud pildifailide vormingud, eriti paljutõotav on Free Lossless Image Format (FLIF)
https://asciinema.org/a/153907 - Star Wars, Episode IV. New Hope