Angle between two lines: cos(theta) = |a1a2+b1b2+c1*c2|/(sqrt(a1^{2+b1}^{2+c1}^2)*sqrt(a2^{2+b2}^{2+c2}^2)). The absolute value gives the acute angle. Without absolute value, you get the actual angle between the direction vectors.
Angle between two planes: cos(theta) = |n1.n2|/(|n1|*|n2|). Same formula as for lines but using normals. Perpendicular planes: n1.n2 = 0. Parallel planes: n1 x n2 = 0 (proportional normals).
Angle between a line and a plane: sin(theta) = |b.n|/(|b|*|n|), where b is the line direction and n is the plane normal. Note: this gives the complement of the angle between the line direction and the normal.
Special cases: If b.n = 0, the line is parallel to the plane (or lies in it). If b is proportional to n, the line is perpendicular to the plane.
Condition for a line to lie in a plane: (1) The direction is perpendicular to the normal: b.n = 0, AND (2) any point of the line satisfies the plane equation.
Condition for a line to be parallel to a plane but not in it: b.n = 0, but the point on the line does NOT satisfy the plane equation.
The dihedral angle between two half-planes sharing a common edge equals the angle between lines perpendicular to the edge drawn in each half-plane. This equals the angle between the normals (or its supplement).