You probably already know of existence of two Linux commands available by default across all Linux distributions script – which makes a text based save of all commands executed on console and scriptreplay – which playbacks saved script command typescripts. Using this two you can save terminal sessions without problem, but in order to play them you need to have a Linux / UNIX computer at hand.
However If you want to make a short video record displaying what you have done on Linux console / terminal, you have few other options with which you can share your Linux terminal sessions on the web. In this short article I will go through 3 popular tools to do that – asciinema, showterm and termrecord.
1. Asciinema Current most popular tool to create video from Linux terminal
Here is how ASCIINEMA's website describes it:
"Asciinema is a free and open source solution for recording the terminal sessions and sharing them on the web."
apt-get –yes install python-pip
To install it with pip – python package installer
pip install asciinema
Or if the machine is in DMZ secured zone and have access to the internet over a Proxy:
pip install –proxy=http://internet-proxy-host.com:8080 asciinema
It will get installed in /usr/local/bin/asciinema to make a terminal screen video capture just launch it (nomatter if it is privileged or non-privileged user):
asciinema
To finalize and upload the recorded terminal session, just type exit (to exit the shell), hopefully it will get you an upload link.
exit
You can claim authorship on video you issue:
asciinema auth
Use can then embed the new Linux terminal session video to your website.
2. ShowTerm – "It's showtime in a terminal near you!"
ShowTerm have same features as AsciiNema. Just like AsciiNema, what it does is it creates a record of your terminal session and then uploads it to showterm.io website, providing you a link over which you can share your terminal lesson / ascii art video / whatever with your friends. ShowTerm is written in, the world famous Ruby on Rails – ruby web development framework, so you will need to have ruby programming language installed before use. As showterm uses the Internet to upload video, so it is not really an option to create videos from remote terminal session on servers which are in DMZ with no access to the internet, I will explain in a little while how to create video of your terminal / console for private purpose on local server and then share it online on your own site.
a) To install ShowTerm:
– First be sure to have ruby installed:
On Debian / Ubuntu and derives deb Linux, as supersuser:
apt-get install –yes ruby curl
On CentOS / RHEL / Fedora Linux
yum -y install ruby curl
NB! curl is real requirement but as showterm.io website recommends downloading the script with it and later same curl tool is used to upload the created showterm file to http://showterm.io .
– Then to finalize install, download showterm script and make it executable
curl showterm.io/showterm > ~/bin/showterm
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 2007 100 2007 0 0 2908 0 –:–:– –:–:– –:–:– 8468
mkdir ~/bin
chmod +x ~/bin/showterm
This will save the script into your home folder ~/bin/showterm
b) Using showterm
To run it to create video from your terminal simply start it and do whatver you will in terminal.
~/bin/showterm
After you're done with the video you like type exit
exit
Note that if your server is behind a proxy curl will not understand proxy set inside Linux shell variable with http_proxy var, to upload the file if you're behind a proxy you will have to pass to curl –proxy setting, once you get the curl line invoked after failure to upload use something like:
curl –proxy $(echo $http_proxy) https://showterm.herokuapp.com/scripts –data-urlencode cols=80 –data-urlencode lines=24 –data-urlencode scriptfile@/tmp/yCudk.script –data-urlencode timingfile@/tmp/lkiXP.timing
Where assuming proxy is defined already inside http_proxy shell variable.
3. Creating video from your terminal / console on Linux for local (private) use with TermRecord
In my humble view TermRecord is the most awesome of all the 3, as it allows you to make records with an own generated Javascript based video player and allows you to keep the videos on your own side, guaranteeing you independence of external services. Its
pip install TermRecord
TermRecord -o /tmp/session.html
You can further access the video in a local browser in Firefox / Chrome / Epiphany type in URL address bar:
/tmp/session.html to play the video
TermRecord uses term.js javascript to create the video web player and play the video which is directly encoded inside session.html.
If you want to share the video online, place it on your webserver and you're done 🙂
Check out my TermRecord generated video terminal sample session here.