Linq is short for "Language integrated query." It's a set of language enhancements built into C# and VB. Basically, what you get is a bunch of standard query operators that can be applied to any IEnumerable of type T. There's a lot of different linq providers for specific types of data- for example, there's linq to xml, linq to entities, even linq to sharepoint.
To get started with linq, in all its many forms, I suggest the book Pro Linq by Joseph C. Rattz. It's an excellent overview of Linq. He takes a ground-up approach, first describing all the language features (like Lambda Expressions and Expression Trees) that Linq is built on, and then moving on to some standard linq provider implementations.
Additionally, here's a pretty good MSDN article describing Linq: LINQ: .NET Language-Integrated Query
Now, Linq to Sql is a linq provider written specifically for SQL Server. Included in this provider is an OR/M, that gives you some handy-dandy functionality (like typing out all your sql tables, so you get a robust design-time view of your database schema.) It's totally awesome, and for me, has greatly speed up development time when working with a sql database.
The book I recommended above also has a great section about using Linq To Sql. Also,
here's a good "beginner's guide" article from MSDN: Linq To SQL: .NET Language-Integrated Query for Relational Data