Yes. Well, yes, but with a caveat.
If $\lambda$ is a real eigenvalue of a matrix $B$ with real entries, then this means that $B - \lambda I$ is a singular matrix with real coefficients. When we apply Gauss-Jordan elimination on this matrix, there's no cause to go outside the real numbers. Indeed, when we eliminate entries above or below a leading $1$, we simply subtract a multiple of the row with a leading $1$, where the multiple is the entry we need to eliminate. If that number is real, then we are subtracting a real multiple of a real row vector from another real row vector, which means the matrix remains real.
Similarly, if we need to divide a row by its leading entry, then we are dividing by a real number. Swapping also trivially preserves realness.
Once we get to reduced row-echelon form, then once again, there is no cause to go outside the real numbers, though we could if we wanted to. We assign the variables, corresponding to columns without leading $1$s, to be free variables. This could mean freely ranging over $\Bbb{R}$ or $\Bbb{C}$. If we let them range over $\Bbb{R}$, then the other variables are found to be real linear combinations of these variables, giving us real solution eigenvectors.
But, of course, we could just take any given eigenvector, and multiply it by a non-real scalar, and we would get a complex eigenvector. So, technically, eigenvectors of an operator on $\Bbb{C}^n$ will never all be real. But, when the matrix has real entries, yes, you can choose an eigenbasis of vectors that have real entries.