Aplicación Mac Terminal: no se puede usar la flecha hacia arriba para cargar comandos anteriores cuando se usa SSH en un servidor remoto ( ^[[A )

Me encuentro con un problema extraño en el que la flecha ARRIBA ya no restaura los comandos ingresados ​​previamente en un servidor remoto durante la sesión SSH:

:~ user$ ssh user@myserver
//... type the password, get welcome message
$ ^[[A  //<- This is what I see when pressing up arrow on the server
$ ls //<- I expect to see my previous commands to be visible

¿Cómo puedo hacer que Terminal recupere los comandos ingresados ​​en un servidor remoto al presionar la flecha hacia arriba? Este es el comportamiento que he observado anteriormente, actualmente ejecutando OSX 10.11.2

¿Qué shell se está ejecutando en el servidor?
Esto no está relacionado con la terminal macOS; esta es una característica/problema con el shell del sistema en el que está iniciando sesión.

Respuestas (3)

Prueba esto:

echo $HISTSIZE

Si ese número es negativo o cero, provocará el comportamiento que está viendo. Debe establecerlo en un número positivo en su ~/.bash_profile remoto (o ~/.bashrc dependiendo del sistema operativo remoto).

export HISTSIZE=100000
Tuve el mismo problema que OP, y mi histsize devuelto fue 500. Probé su solución de todos modos y funcionó.
Simplemente ejecutando echo $HISTSIZE resolvió el problema. Después de ejecutar este comando, la consola comenzó a funcionar normalmente.

Intente cambiar temporalmente su shell, escriba el nombre del shell:

$ /bin/csh 

Vea si eso arregla su tecla de flecha. Si es así, su shell o perfil de shell tiene la causa del problema.

Soluciones posibles:

  1. Repare su caparazón o perfil de caparazón actual.
  2. Puede cambiar a un caparazón diferente de forma permanente.

Referencia: Mac OS X: Cómo cambiar el terminal shell

Gracias, revisé la configuración y vi que la ventana del terminal tiene "SSH" en el título de la ventana, a diferencia de csh o tcsh. No estoy seguro de cómo arreglar ese perfil en particular

Por alguna razón, usar el comando C exit(0)estropea mi shell, causando este problema de shell entre otros. Específicamente, esto sucedió mientras jugueteaba con el código fuente de FFMPEG.

Espero que esto ayude a otros googlers confundidos :)