The (unit) direction vector $r$ of a line $L$ in 3D I write in spherical coordinates,
$$ r_x = \sin\theta\cos\phi \\ r_y = \sin\theta\sin\phi \\ r_z = \cos\theta $$ This line passes through the point $(0, 0, 0)$, and I can write it as $L(t) = rt$, where $t$ is my parameter. What I am interested in is a line with the same gradient as above, but now I want it to pass through the point $P=(x_0, y_0, z_0)$ instead of $(0,0,0)$.
I am unsure of how to generalize $L(t)$ in order to achieve this, but here is my suggestion: I believe it is sufficient simply to shift all coordinates, i.e. now I can write $L(t) = P + rt$. But I also believe that this requires for me to normalize $P$ since $r$ is also normalized. Is this suggestion correct?
If you introduce new system of coordinates shifted by $(x_0, y_0, z_0)$, then in new system the line equation is still $$ L'(t) = rt $$ so, to write that equation in old system you just need to do backward translation $$ L(t) = P + L'(t) = (x_0, y_0, z_0) + rt $$ You have to keep in mind, that angles $(\theta, \phi)$ are constants, and the only free parameter is $t$. Otherwise you'll get an equation of unit sphere, so with presence of $t$, you'll get a family of concentric spheres.