Cómo cambiar el shell predeterminado en Linux con chsh

Puntos clave

  • Probar diferentes shells de Linux, como Zsh, puede ser un proceso sencillo y útil para encontrar uno que se ajuste a sus preferencias.
  • Cada shell tiene sus propias características únicas y su forma de realizar tareas, y diferentes shells pueden tener un impacto importante en su flujo de trabajo.
  • El comando chsh le permite cambiar el shell predeterminado.

Bash no es el único shell de Linux. Es fácil probar otros shells, como Zsh, que es muy popular. Cuando hayas encontrado uno que te guste, utiliza el chsh comando para convertirlo en su shell predeterminado. Te mostraremos cómo.

→ Índice de contenidos
  • Por qué es importante un Shell
  • ¿Cuáles son los mejores shells de Linux?
  • Listas de shells instalados
  • Instalar otro shell
  • La variable de entorno $SHELL
  • El comando chsh
  • Cambiar el shell de otra cuenta de usuario
  • Todos tienen un favorito
  • Por qué es importante un Shell

    El shell se encuentra entre usted y el sistema operativo. Proporciona el entorno dentro de una ventana de terminal que le permite escribir comandos y ejecutar programas. El shell verifica su entrada y descubre lo que desea. Si él mismo puede cumplir sus órdenes, lo hará. Si necesita ayuda externa, busque la ruta y encuentre programas que puedan hacer lo que usted solicite.

    Hay muchos shells diferentes disponibles en Linux. Todos le permiten realizar las mismas tareas principales: explorar el sistema de archivos, trabajar con archivos, iniciar programas y ejecutar scripts. Sin embargo, cada uno realiza estas tareas a su manera y tiene sus propias características e idiosincrasias especiales.

    Los caparazones tienden a ser diseñados por personas que quieren que las cosas se comporten de una manera específica. Si su pensamiento se alinea con el del diseñador, ese caparazón podría ser adecuado para usted. Además, probar un nuevo shell en Linux es fácil.

    En la mayoría de las distribuciones de Linux, incluido Ubuntu, el shell predeterminado es bash. Hace un gran trabajo y es muy capaz. Sin embargo, otro shell podría ofrecer una diferencia de ahorro de tiempo que tendría un gran impacto en su flujo de trabajo. ¡Nunca lo sabrás si no miras!

    ¿Cuáles son los mejores shells de Linux?

    Ya hemos cubierto los diferentes shells de Linux, pero aquí hay una introducción rápida a los más comunes:

    • intento: Bourne Again Shell es el predeterminado en muchas distribuciones.
    • rabash: esta limitado bash shell proporciona una funcionalidad mínima a la persona o script que se ejecuta dentro de él.
    • ceniza: El shell Almquist es una versión más ligera de bash.
    • estrellarse: Debian Alquist Shell es el script de shell predeterminado en Ubuntu. Mientras bash es el inicio de sesión predeterminado y el shell interactivo, dash se utiliza para ejecutar procesos del sistema porque es mucho más liviano que bash.
    • zsh: La carcasa Z es una versión moderna de la bash familia de conchas. Ofrece mejoras claras, como revisión ortográfica de comandos y correcciones sugeridas.
    • pez: Este amigable shell interactivo fue escrito desde cero y no deriva de ninguna de las otras familias de shells. Está destinado a ser fácil de usar. Entre sus muchos otros beneficios, Fish ofrece sugerencias de comandos basadas en el historial y el contenido de la carpeta actual, similar al texto predictivo.
    • ksh: KornShell proporciona un lenguaje de programación particularmente potente.

    Listas de shells instalados

    Para ver qué shells están instalados en su computadora, use este comando. Simplemente enumere el contenido del archivo /etc/shells:

    cat /etc/shells

    Mencionamos bash, dashY rbashpero que es sh?

    sh es el caparazón de Thompson, escrito allá por 1971 por Ken Thompson, famoso por los Laboratorios Bell. Ya no recibe mantenimiento y hace tiempo que fue reemplazado por armazones modernos. Se incluye únicamente para mantener la compatibilidad con scripts más antiguos que todavía tienen lo siguiente como primera línea:

    #!/bin/sh

    Esto le dice al sistema que use el archivo. sh shell para ejecutar el script. ¿Realmente tienes ese antiguo shell en tu máquina y lo utilizas para ejecutar tus scripts? EL which El comando nos dirá qué programa se ejecuta realmente cuando escribes un comando.

    Veamos qué se ejecuta al escribir. sh:

    which sh

    Esto parece encontrar un binario. Sin embargo, si profundizamos un poco más, veremos que se trata de un vínculo simbólico que en realidad apunta a dashel shell liviano utilizado para ejecutar scripts:

    ls -l /bin/sh

    ubicado en una ventana de terminal

    Esta es una forma limpia y ligera de proporcionar una red de seguridad para los scripts que esperan ser encontrados. sh en sistemas modernos.

    Instalar otro shell

    instalemos el fish shell y configúrelo como predeterminado para dave. En Ubuntu escribimos el siguiente comando:

    sudo apt-get install fish

    sudo apt-get install fish en una ventana de terminal

    En Manjaro, use pacman:

    sudo pacman -Sy fish

    sudo pacman -Sy fish en una ventana de terminal.

    En Fedora, escriba lo siguiente:

    sudo dnf install fish

    sudo dnf instala fish en una ventana de terminal

    Una vez que se completa la instalación, puede volver a verificar los shells instalados:

    cat /etc/shells

    cat /etc/shells en una ventana de terminal

    Nuestro nuevo caparazón se parece /usr/bin/fish. Tome nota de esa ruta; la necesitará pronto.

    La variable de entorno $SHELL

    EL $SHELL la variable de entorno contiene el nombre de su shell actual. Podemos comprobar en cuál está configurado. echo:

    echo $SHELL

    comencemos el fish caparazón:

    fish

    Ahora, veamos qué otra vez $SHELL la variable de entorno dice:

    echo $SHELL

    echo $SHELL en una ventana de terminal

    Primera vez usando echo $SHELLestamos en bash caparazón. La variable de entorno contiene la ruta al archivo. bash ejecutable, /bin/bash.

    Cuando lanzamos el fish shell, recibimos un mensaje amigable de bienvenida y el símbolo del sistema cambia. Lo que podría resultar sorprendente es la $SHELL el entorno aún mantiene el camino hacia el bash ejecutable, /bin/bash. Está bien, es normal.

    Cuando inicia un nuevo shell (o cualquier otro programa), hereda el entorno del shell principal. Entonces el fish shell hereda variables de entorno globales y exportadas de bash caparazón. Dado que el valor en $SHELL la variable de entorno no ha sido modificada, tiene el mismo valor en el archivo fish caparazón que hizo en bash caparazón.

    Ellos estaban corriendo fish como cualquier otro programa. También podemos usar exit para salir del fish caparazón. Se cierra como cualquier otro programa y volvemos al archivo. bash caparazón.

    Es fantástico para probar nuevos caparazones, ver qué pueden hacer y si te llevas bien con ellos. Puedes explorar antes de dar el salto y adoptar uno como caparazón de referencia.

    Si decides hacer el fish—o cualquier otro shell: el predeterminado, tendrás que usar el chsh dominio.

    El comando chsh

    EL chsh El comando le permite cambiar el shell predeterminado. El truco consiste en tener en cuenta que le permite cambiar tanto el inicio de sesión predeterminado como los shells interactivos predeterminados. Es posible que desee cambiar uno u otro, o ambos.

    Cada vez que inicia sesión para obtener un símbolo del sistema, utiliza el shell configurado para ser el shell de inicio de sesión. Cuando ya haya iniciado sesión y abra una ventana de terminal, utilizará el shell configurado para ser su shell interactivo. Pueden ser conchas iguales o diferentes.

    Para configurar el shell de inicio de sesión, utilice chsh sin parámetros:

    chsh

    chsh en una ventana de terminal

    Se le pedirá su contraseña. Luego, debe escribir la ruta al nuevo shell y presionar Enter.

    Si realizamos una conexión remota a este ordenador de prueba desde otro, nos encontraremos en el archivo fish shell una vez que haya iniciado sesión.

    Conexión SSH que muestra fish shell como shell de inicio de sesión, en una ventana de terminal

    Para cambiar el uso del shell interactivo chsh con el -s Opción (cáscara). Pase la ruta al nuevo shell en la línea de comando:

    chsh -s /usr/bin/fish

    chsh -s /usr/bin/fish en una ventana de terminal

    Se le pedirá su contraseña y se le regresará al símbolo del sistema de su shell actual. Debe cerrar sesión y volver a iniciarla para que el cambio surta efecto. Cuando lo hagas verás el saludo y el archivo. fish símbolo del sistema de shell.

    EL $SHELL la variable de entorno ahora contiene la ruta a su nuevo shell predeterminado:

    echo $SHELL

    echo $SHELL en una ventana de terminal

    Cambiar el shell de otra cuenta de usuario

    Si tiene privilegios de root y puede usar sudo, puede editar los shells de otras cuentas de usuario. El comando es el mismo que antes, con el nombre de usuario de esa persona agregado a la línea de comando:

    sudo chsh -s /usr/bin/fish mary

    sudo chsh -s /usr/bin/fish mary en una ventana de terminal

    Cuando mary la próxima vez que inicie sesión, verá el nuevo shell cuando abra una ventana de terminal.

    usuario mary en el símbolo del sistema de fish shell, en una ventana de terminal

    Todos tienen un favorito

    Siempre y cuando te sientas cómodo con tu elección de caparazón y te funcione, ¡genial! Sólo recuerde que debe poder ejecutar scripts comunes, como rutinas de instalación. Para los shells mencionados aquí, esto no debería ser un problema.

    Por supuesto, también puede descargar e instalar un nuevo shell y probarlo sin realizar ningún cambio en la configuración de su computadora. Cuando estés listo para casarte, chsh realizará la ceremonia por usted.

    Subir Change privacy settings