Skip to main content

How to replay terminal sessions recorded with the Linux script command

Playback those recorded terminal sessions with the scriptreplay command.
How to replay terminal sessions with scriptreplay

Photo by cottonbro from Pexels

In my previous article, How to capture terminal sessions and output with the Linux script command, covering the script command and some common options, you learned how to record your interactive terminal sessions. This follow-up article demonstrates how to replay those recorded terminal sessions.

The only caveat with replaying your sessions is that the sessions aren't "live." The playback feature only replays what's in the file and doesn't reflect any changes you've made since you created the scriptfile. In other words, if in your recorded session, you issue the ls command to see the following list of files:

$ ls
test1 test2 test3 test4

and then decide to add a file named test5 outside of the script recording, it will not appear when the session is replayed. Only what you see in the scriptfile appears in the replay. You can edit the scriptfile to include the test5 file, but otherwise it won't appear.

[ You might also enjoy reading: Sysadmin fails: When service dependencies go wrong ]

Session replay

It is simple to replay a recorded session and the syntax is almost identical to recording a session, except that you use the scriptreplay command. Continuing with the example from the previous article:

$ scriptreplay --timing=script_log scriptfile

The interesting point to note about replaying your scripts is that the playback mimics your speed, hesitations, backspacing, and misspelled commands. You can manipulate the speed with scriptreplay options but it isn't something that I've ever needed to do. Check the man page for options.

The following is an example of a standard script file being created. It is played back using the command above. You'll notice that I'm saving the script_log and the scriptfile to the directory above my working directory. This ensures that there's no mixup or file listing that's confusing to the person watching the playback.

Now, watch the replay of this script to see that the replay has exactly the same pacing as the original.

Check out this more elaborate script as a demonstration of the kind of complexity that you can incorporate into a script command-created terminal session recording:

As you can see, terminal session recordings can be pretty elaborate. The documentation recommends not using the script command within non-interactive sessions, such as automated scripts, because the behavior might not be what you expect. Experiment at your own peril.

[ Free course: Red Hat Satellite Technical Overview.

Wrap up

These examples demonstrate how easy it is to create recorded terminal sessions and how to replay them for your audience. There's nothing magical about it. Be patient and remember it's not necessarily bad to have typos or other mistakes in your videos, and it can be quite frustrating to try to create a perfect one.

Topics:   Linux   Command line utilities  
Author’s photo

Ken Hess

Ken has used Red Hat Linux since 1996 and has written ebooks, whitepapers, actual books, thousands of exam review questions, and hundreds of articles on open source and other topics. Ken also has 20+ years of experience as an enterprise sysadmin with Unix, Linux, Windows, and Virtualization. More about me

Try Red Hat Enterprise Linux

Download it at no charge from the Red Hat Developer program.