I use Garmin Edge 510 in Linux, just plug in via USB and its registers as a mass storage device (like it does in Windows). From here I upload to Strava via file-upload and don’t bother with Garmin s/w.
Not much software on Linux can read .fit files (Golden Cheetah being one that can), but there’s a python program to convert them to tcx here:
https://github.com/Tigge/FIT-to-TCX
If using Arch Linux, you can install the package fittotcx-git from the AUR – if not, you’ll have to follow the documentation on the FIT-to-TCX github page (good luck).
For offline viewing/manipulation Viking GPS is pretty good (once used to it’s ways) but if you want to use rides you’ve already done you’ll need GPX files for that, I convert the TCX files to GPX using gpsbabel commandline:
gpsbabel -i gtrnctr -o gpx 2016-05-01-10-30.tcx 2016-05-01-10-30.gpx
Which I put in a script which converts all the fit files on the device and moves them to my home dir.
Or you could dl from Strava.