Búsqueda de sitios web

Cómo cambiar su Shell predeterminado en Linux con chsh


Conclusiones clave

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

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

Por qué es importante un caparazón

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 puede realizar su oferta por sí mismo, lo hace. Si necesita ayuda externa, busca la ruta y encuentra los programas que pueden 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 de ese diseñador, ese caparazón podría ser una buena opción 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?

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

  • bash: El shell Bourne Again es el predeterminado en muchas distribuciones.
  • rbash: este shell bash restringido proporciona una funcionalidad mínima a la persona o script que se ejecuta en él.
  • ash: El shell Almquist es una versión más ligera de bash.
  • dash: Debian Alquist Shell es el script de shell predeterminado en Ubuntu. Si bien bash es el inicio de sesión predeterminado y el shell interactivo, dash se usa para ejecutar procesos del sistema porque es mucho más liviano que bash.
  • zsh:El shell Z es una versión moderna de la familia de shells bash. Ofrece mejoras interesantes, como correctores ortográficos de comandos y correcciones sugeridas.
  • fish: 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 muchas otras ventajas, Fish ofrece sugerencias de comandos basadas en su historial y el contenido de la carpeta actual, similar al texto predictivo.
  • ksh:KornShell proporciona un lenguaje de programación particularmente potente.

Listar los shells instalados

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

cat /etc/shells

Hemos mencionado bash, dash y rbash, pero ¿qué es sh?

sh es el shell de Thompson, escrito allá por 1971 por Ken Thompson de los famosos Bell Labs. Ya no recibe mantenimiento y desde hace mucho tiempo ha sido reemplazado por depósitos 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 indica al sistema que utilice el shell sh para ejecutar el script. ¿Realmente tiene ese antiguo shell en su máquina y lo está utilizando para ejecutar sus scripts? El comando what nos dirá qué programa se ejecuta realmente cuando escribes un comando.

Veamos qué se ejecuta cuando escribes sh:

which sh

Esto parece encontrar un binario. Sin embargo, si profundizamos un poco más, veremos que es un enlace simbólico que en realidad apunta a dash, el shell liviano utilizado para ejecutar scripts:

ls -l /bin/sh

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

Instalar otro Shell

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

sudo apt-get install fish

En Manjaro, usa pacman:

sudo pacman -Sy fish

En Fedora, escriba lo siguiente:

sudo dnf install fish

Cuando se complete la instalación, puede verificar los shells instalados una vez más:

cat /etc/shells

Nuestro nuevo shell aparece como /usr/bin/fish. Tome nota de ese camino: lo necesitará en breve.

La variable de entorno $SHELL

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

echo $SHELL

Comencemos el caparazón fish:

fish

Ahora, revisemos nuevamente lo que dice la variable de entorno $SHELL:

echo $SHELL

La primera vez que usamos echo $SHELL, estamos en el shell bash. La variable de entorno contiene la ruta al ejecutable bash, /bin/bash.

Cuando iniciamos el shell fish, recibimos un mensaje de bienvenida amigable y el símbolo del sistema cambia. Lo que podría resultar sorprendente es que el entorno $SHELL todavía contiene la ruta al ejecutable bash, /bin/bash. Está bien, esto es normal.

Cuando inicia un nuevo shell (o cualquier otro programa), hereda el entorno del shell principal. Entonces, el shell fish hereda las variables de entorno globales y exportadas del shell bash. Debido a que el valor en la variable de entorno $SHELL no ha sido cambiado, tiene el mismo valor en el shell fish que tenía en bash cáscara.

Estamos ejecutando fish como cualquier otro programa. También podemos usar exit para salir del shell fish. Se cierra como cualquier otro programa y volvemos al shell bash.

Esto 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 tu caparazón de referencia.

Si decide hacer que el pez ,o cualquier otro caparazón, sea su valor predeterminado, deberá usar el comando chsh.

El comando chsh

El comando chsh le permite cambiar su shell predeterminado. El truco es 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.

Siempre que inicia sesión para obtener un símbolo del sistema, utiliza el shell configurado para ser su 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 su shell de inicio de sesión, use chsh sin parámetros:

chsh

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

Si realizamos una conexión remota a esta computadora de prueba desde otra, nos encontraremos en el shell fish una vez que hayamos iniciado sesión.

Para cambiar su shell interactivo use chsh con la opción -s (shell). Pase la ruta al nuevo shell en la línea de comando:

chsh -s /usr/bin/fish

Se le solicitará 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 símbolo del sistema del shell fish.

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

echo $SHELL

Cambiar el Shell de otra cuenta de usuario

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

sudo chsh -s /usr/bin/fish mary

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

Todo el mundo tiene un favorito

Siempre y cuando te sientas cómodo con tu elección de caparazón y funcione para ti, ¡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 de configuración en su computadora. Cuando estés listo para casarte, chsh realizará la ceremonia por ti.

Linux Commands

Files

tar·pv·cat·tac·chmod·grep ·diff·sed·ar·man·pushd·popd·fsck·testdisk·seq·fd·pandoc·cd·$PATH·awk·join·jq·fold·uniq·journalctl·tail·stat·ls·fstab·echo·less·chgrp·chown·rev·look·strings·type·rename·zip·unzip·mount·umount·install·fdisk·mkfs·rm·rmdir·rsync·df·gpg·vi·nano·mkdir·du·ln·patch·convert·rclone·shred·srm·scp·gzip·chattr·cut·find·umask·wc· tr

Processes

alias·screen·top·nice·renice·progress·strace·systemd·tmux·chsh·history·at·batch·free·which·dmesg·chfn·usermod·ps·chroot·xargs·tty·pinky·lsof·vmstat·timeout·wall·yes·kill·sleep·sudo·su·time·groupadd·usermod·groups·lshw·shutdown·reboot·halt·poweroff·passwd·lscpu·crontab·date·bg·fg·pidof·nohup·pmap

Networking

netstat·ping·traceroute·ip·ss·whois·fail2ban·bmon·dig·finger·nmap·ftp·curl·wget·who·whoami·w·iptables·ssh-keygen·ufw·arping·firewalld

Artículos relacionados