Cómo cambiar su shell predeterminado en Linux con chsh
Publicado: 2022-01-29 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, use el comando chsh
para convertirlo en su shell predeterminado. Te mostraremos cómo.
Por qué es importante una concha
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 quiere. Si puede realizar sus ofertas por sí mismo, lo hace. Si necesita ayuda externa, busca la ruta y encuentra los programas que pueden hacer lo que usted solicitó.
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.
Las conchas tienden a ser diseñadas 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!
RELACIONADO: ¿Qué es ZSH y por qué debería usarlo en lugar de Bash?
Un balde lleno de conchas
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 secuencia de comandos que se ejecuta en él. - ash: El caparazón 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 ligero quebash
. - zsh: El shell Z es una versión moderna de la familia de shells
bash
. Ofrece mejoras ordenadas, como correctores ortográficos de comandos y correcciones sugeridas. - fish: Este amigable caparazón interactivo fue escrito desde cero y no se deriva de ninguna de las otras familias de caparazones. 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 secuencias de comandos particularmente fuerte.
RELACIONADO: ¿Cuál es la diferencia entre Bash, Zsh y otros shells de Linux?
Enumere las carcasas instaladas
Para ver qué shells están instalados en su computadora, use este comando. Simplemente enumera el contenido del /etc/shells
:
gato /etc/conchas
Hemos mencionado bash
, dash
y rbash
, pero ¿qué es sh
?
sh
es el caparazón de Thompson, escrito allá por 1971 por Ken Thompson de Bell Labs. Ya no se mantiene y hace mucho tiempo que fue reemplazado por proyectiles 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 indica al sistema que use el shell sh
para ejecutar el script. ¿Realmente tiene ese shell antiguo en su máquina y se está utilizando para ejecutar sus scripts? El comando which
nos dirá qué programa se ejecuta realmente cuando escribe un comando.
Veamos qué se ejecuta cuando sh
:
que 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 que se usa para ejecutar scripts:
ls -l /bin/sh
Esa es una forma ordenada y liviana de proporcionar una red de seguridad para los scripts que esperan encontrar sh
en los sistemas modernos.
Instalar otra carcasa
Instalemos el caparazón de fish
y configúrelo como predeterminado para dave
. En Ubuntu, escribimos el siguiente comando:
sudo apt-get install pez
En Manjaro, usa pacman
:
sudo pacman-sy pescado
En Fedora, escriba lo siguiente:
sudo dnf instalar pescado
Cuando se complete la instalación, puede verificar los shells instalados una vez más:
gato /etc/conchas
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 verificar en cuál está configurado con echo
:
echo $SHELL
Comencemos la concha de fish
:
pescado
Ahora, veamos de nuevo 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 lanzamos el caparazón de fish
, recibimos un mensaje de bienvenida amistoso y cambia el símbolo del sistema. Lo que podría ser sorprendente es que el entorno $SHELL
aún 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 caparazón de fish
hereda las variables de entorno globales y exportadas del caparazón bash
. Debido a que el valor en la variable de entorno $SHELL
no ha cambiado, tiene el mismo valor en el caparazón de fish
que tenía en el caparazón de bash
.
Estamos ejecutando fish
como cualquier otro programa. También podemos usar exit
para salir del caparazón del fish
. Se cierra como cualquier otro programa y volvemos al shell bash
.
Eso es genial para probar nuevos proyectiles, ver qué pueden hacer y si te llevas bien con ellos. Puede explorar antes de dar el salto y adoptar uno como su caparazón de acceso.
Si decide hacer que el fish
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 ser consciente de 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 su shell de inicio de sesión. Cuando ya ha iniciado sesión y abre una ventana de terminal, utiliza el shell configurado para ser su shell interactivo. Estos pueden ser conchas iguales o diferentes.
Para configurar su shell de inicio de sesión, use chsh
sin parámetros:
chsh
Se le pedirá su contraseña. Luego, debe escribir la ruta al nuevo shell y presionar Enter.
Si hacemos una conexión remota a esta computadora de prueba desde otra, nos encontraremos en el caparazón de 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/pescado
Se le solicitará su contraseña y regresará al símbolo del sistema de su shell actual. Debe cerrar la sesión y volver a iniciarla para que el cambio surta efecto. Cuando lo haga, verá el saludo y el símbolo del sistema de concha de 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 en la línea de comando:
sudo chsh -s /usr/bin/pez maría
La próxima vez que mary
sesión, verá el nuevo shell cuando abra una ventana de terminal.
Todo el mundo tiene un favorito
Siempre que se sienta cómodo con su elección de caparazón y funcione para usted, ¡eso es genial! Solo recuerde, debe poder ejecutar scripts comunes, como las rutinas de instalación. Para las conchas mencionadas 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 ti.
Comandos Linux | ||
archivos | 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 · cola · stat · ls · fstab · eco · menos · chgrp · chown · rev · mirar · cadenas · tipo · renombrar · zip · descomprimir · montar · desmontar · instalar · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · parche · convertir · rclone · triturar · srm | |
Procesos | alias · pantalla · top · agradable · renice · progreso · strace · systemd · tmux · chsh · historia · at · lote · gratis · cual · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · tiempo de espera · pared · sí · matar · dormir · sudo · su · hora · groupadd · usermod · grupos · lshw · apagar · reiniciar · detener · apagar · contraseña · lscpu · crontab · fecha · bg · fg | |
Redes | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · cavar · dedo · nmap · ftp · curl · wget · quién · whoami · w · iptables · ssh-keygen · ufw |
RELACIONADO: Las mejores computadoras portátiles Linux para desarrolladores y entusiastas