I don't get the downvotes since this is a concern to those wanting to maintain healthy diet, there are plenty of fat and protein rich non-perishables out there. Ever heard about canned sardines and other fish in extra virgin olive oil? Or pure protein powder? For fats, well why not having a bit of that olive oil? Mediterranean cuisine puts it literally everywhere. Cheap doesn't have to mean junk food automatically. One just has to have a bit of resilience when tastes become not so exciting.
I'd argue that canned fish and lots of fats makes the flavors more exciting. But there are plenty of people who find canned fish gross (the idea if nothing else.)