Diferencias entre los comandos de entrada en Python 2.xy 3.x

Ok, entonces uso muchos comandos de entrada, y entendí que en Python2 puedo hacer:

text = raw_input ('Text here')

Pero ahora que uso Python 3 me preguntaba cuál es la diferencia entre:

text = input('Text here')

y:

text = eval(input('Text here'))

¿Cuándo tengo que usar el uno o el otro?

Respuestas a la pregunta(2)

Su respuesta a la pregunta