Porque el comando cd no funciona desde dentro de mi script linux??
En realidad si funciona, pero solo dentro del alcance del script que contiene dicha llamada.
Cd es hecho dentro del shell del script. Cuando el script termina, ese shell termina, y entonces el sistema te regresa al directorio donde estabas.
Esto no es muy bueno cuando queremos scripts que nos manden a determinada ruta y continuar trabajando ahi manualmente, si quieres realizar esto simplemente agrega un . antes de llamar el script.
De tal manera que si el script se llama cambioderuta.sh entonces ejecutaras de esta manera tu script:
. ./cambioderuta.sh
De esta forma al terminar el script estaras dentro del directorio al que accediste con cd dentro del script.
Algo muy simple pero que ayuda mucho