Linux and Unix have the script
command, which is quite useful:
The script command is a Unix utility that records a terminal session.1 The scriptreplay command offers a replay function to script.[2] The session is captured in file name typescript by default; to specify a different filename follow the script command with a space and the filename as such: script recorded_session.
The ttyrec program provides the same kind of functionality and offers several bindings.
Recorded shell sessions can be shared using online services.[3] The advantage of sessions recorded in this format from the usual screencasts is that shell instructions can be easily copy/pasted from the player screen.
What's analogous for Windows?
see also:
Tool to record an interactive bash session to shell script
for the utility of the script
command.