There are multiple methods to go about this. My approach usually would involve using a screen capture software, editing and than convert, This may be rather time consuming and quite cumbersome if you are trying to make a quick GIF of the CLI.
However, for Windows you can use Gifify. It's a great open source utility from GITHUB. Which you can find here.
gifify is a shell script for converting screen recordings into GIFs that can be embedded conveniently into places like Slack channels or GitHub issues and pull requests.
For Linux or Ubuntu rather you can use something a bit similar or at least easier to install and run like ImageMagick.
sudo apt-get install imagemagick
Now you can create a gif from number of pictures(jpg) using:
convert -delay 20 -loop 0 *.jpg myimage.gif
For MAC you can also utlizie Github using QuickTime, ffmpeg, and gifsicle. The process is somewhat similar to the steps you could take on Linux as well.
To capture the video (filesize: 19MB), using the free "QuickTime Player" application:
Open "Quicktime Player",
Go to File -> New Screen Recording
Selected screen portion by dragging a rectangle, recorded 13 second video.
Go to File -> Export -> As Movie
Saved the video in full quality with the filename in.mov
To convert in.mov into out.gif (filesize: 48KB), open Terminal to the folder with in.mov and run the following command:
ffmpeg -i in.mov -s 600x400 -pix_fmt rgb24 -r 10 -f gif - | gifsicle --optimize=3 --delay=3 > out.gif
ttgif is also another notable option for MAC as well. This more so on the side of converting terminal recordings to animated gifs