Bring a large pot of water to a rolling boil and salt it generously.
While the water comes to a boil, cook the bacon in a large, deep skillet, turning occasionally, over medium heat until crisp, about 10 minutes. Transfer to paper towels to drain and crumble. Drain all but 2 tablespoons fat from the skillet.
Add the pasta to the boiling water and cook until al dente according to the label’s directions, stirring occasionally.
To the fat in the skillet, add the onions and a pinch each of salt and pepper. Cook, stirring, until the onions brown, about 3 minutes. Add the shrimp, season with salt and pepper, and cook, stirring, until just opaque throughout, about 5 minutes. Add the tomatoes, season with salt and pepper, and cook just until warmed through, about 1 minute.
Transfer the pasta directly from the pot to the skillet. Toss until very well coated and top with the bacon.