32 votos

¿Cómo pido pantalla a comportarse como un shell bash estándar?

Acaba de aprender acerca de la pantalla de comandos en linux - es un genio. Me encanta. Sin embargo, la actual terminal/símbolo de sistema en la pantalla se ve y se comporta de manera diferente que mi estándar de bash. Es decir, los colores no son los mismos, la implementación del tabulador parece que no funciona, etc.

Hay una manera que puedo decir de la pantalla para que se comportan igual que una normal (al menos, lo normal en lo que yo estoy acostumbrado a) de bash ?

Información Adicional

Me estoy conectando a través de ssh desde un Mac (Terminal) para una cabeza, linux (Ubuntu). Después de iniciar sesión, he TERM=xterm-color y cuando ejecuto la pantalla he TERM=screen.

Voy a probar las sugerencias de abajo para ver si puedo cambiar el $TERM valor primero.

32voto

Seamus Abshere Puntos238

Gracias a este post, lo que hice fue añadir una línea de ~/.screenrc :

# ~/.screenrc
defshell -bash      # dash makes it a login shell

Entonces las cosas en su ~/.bashrc , /etc/bashrc , etc. se debe ejecutar.

13voto

ashwnacharya Puntos3144

pantalla cambia el tipo de plazo para screen . Usted puede hacer una de dos cosas:

  1. cambiar la configuración del término en su.screenrc
  2. modificar sus .bashrc buscan archivos TERM=screen comoTERM=xterm

11voto

Kyle Puntos243

Me gusta la forma en la que escribió su pregunta, me estaba haciendo la misma cosa y tomó un poco de tiempo para averiguar. Yo tuve la suerte de que ya sabe un poco acerca de shell invocación, así que pensé que el problema estaba allí en alguna parte.

Aquí están mis conclusiones. En primer lugar, yo personalmente creo que es muy interesante y vale la pena conocer la diferencia entre un shell de inicio de sesión y una no-shell de inicio de sesión. Hacer una man $SHELL y busque la sección sobre la INVOCACIÓN para leer más sobre esto.

Usted puede pedirle a su actual shell ejemplo, si su un shell de inicio de sesión o no-shell de inicio de sesión mediante la emisión de un shopt login_shell en el símbolo del sistema. Nota: esta es normalmente una opción de sólo lectura.

En mi Debian sistemas, screen siempre ha venido en mora con los no-shells de inicio de sesión.

Después de buscar en la web y la lectura de man $SHELL, he probado un par de cosas y los dos enfoques siguientes trabajó para mí. En ~/.screenrc agregar o actualizar una línea como la siguiente:

shell -$SHELL

Si eso no funciona Y usted está usando bash, alternativamente, usted puede intentar, compartidos por Seamus:

defshell -bash

Como se ha mencionado, usted puede comprobar si su actual consola de instancia es un shell de inicio de sesión mediante la emisión de shopt login_shell en el símbolo del sistema.

9voto

jason saldo Puntos5036

Dependiendo de cómo usted está acostumbrado a correr Bash, puede estar ejecutando un shell de inicio de sesión. Cuando ejecute screen, se está ejecutando un no-login shell interactivo.

La diferencia está en que los scripts de inicio de la ejecución.

  • /etc/bash.bashrc entonces ~/.bashrc son de origen cuando un no-login shell interactivo que se inicia

  • /etc/profile , a continuación, el primero encontrado de ~/.bash_profile, ~/.bash_loginy ~/.profile son de origen cuando una interactive shell de inicio de sesión se inicia

Esto puede estar afectando.

También me echa para ver si $TERM es diferente.

2voto

SteveCl Puntos1655

No reemplaza la pantalla bash, funciona, o cualquier otra shell. Tal vez esté en funcionamiento csh , zsh , o bash , pero con diferentes parámetros.

lo primero que intentaría es consultar con ps y /proc/<pid>/cmdline que no está usando la misma cáscara con los mismos parámetros que login hace.

después de eso, ver /etc/screenrc y cualquier otro archivo mencionado en man screen sección de archivos.

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: