Boil the linguine in salted water until done to your liking, 9-11 minutes. Drain well, preserving about 1/2 cup of the pasta water.
In a large skillet over medium-low heat, add 1 tablespoon of oil and the bacon. Cook for about 5 minutes, until just starting to crisp
Add the remaining 2 tablespoons of olive oil, then add the shallots and cook until beginning to turn translucent, about 2 minutes more. Add garlic and cook for another minute.
Add tomato and spinach and a generous dash of salt and ground black pepper. Cook, stirring, until spinach begins to wilt, about 2 minutes. Turn off the heat.
Add cooked and drained pasta and toss to combine. If the pasta seems a little dry, add some of the reserved pasta water. Season to taste with more salt and pepper, if needed.
Serve immediately, topped with grated parmesan if desired.