Google Authenticator is an implementation of the catchily-named "Time-based One-Time Password" or TOTP.

https://en.wikipedia.org/wiki/Time-based_One-Time_Password

It is not the only one, any time a site asks you to add a "Google Authenticator" code you can use any TOTP app. 1Password has the functionality built in, for example.

You can use oathtool if you'd like to "do it yourself". I usually just keep (encrypted with Pass) my secret keys for Authenticators, and execute a one line alias:

oathtool -b --totp `pass show `

... for in github, gmail, blizzard, whatever ...

This way, you can have a backup in case your phone gets lost, and easily port between phones.

If you're using pass already you could use their OTP plugin:

https://github.com/tadfisher/pass-otp

That gives you "pass otp github.com", etc. You can also export the QRcode, and do similar things.

I put together a simple distribution of pass with a couple of plugins I use, including otp, which is easy to setup - just clone beneath `/opt/pass`:

https://github.com/skx/pass