
La mayoría de los usuarios de Linux generalmente se adhieren al shell predeterminado intento. Pero Linux proporciona muchas otras conchas Zsh,,,,, pez,,,,, sprinty ksh. Cada caparazón se comporta de manera diferente y proporciona características únicas. estudiar Ejecutar múltiples conchas Le ayuda a escribir mejores guiones, problemas de depuración y elegir el caparazón adecuado para su trabajo.
En este artículo, aprenderá:
- Por qué es posible que desee usar múltiples conchas
- Diferentes formas de instalar y ejecutar múltiples conchas en Linux
- Herramientas y consejos inteligentes para pruebas de cáscara cruzada
¿Qué es la carcasa en Linux?
uno caparazón Es el programa que ejecuta los comandos que ingresa en la terminal. Le permite hablar con el sistema, ejecutar programas, administrar archivos y más.
Linux admite muchas conchas. Aquí hay algunos populares:
caparazón | por |
---|---|
intento | Valores predeterminados para la mayoría de los sistemas de Linux |
Zsh | Autocompletado inteligente y complementos |
pez | Fácil de usar y moderno |
sprint | Rápido, simple, compatible con Posix |
ksh | Utilizado para sistemas UNIX más antiguos |
¿Por qué usar múltiples conchas?
Esta es la razón principal:
1. Compatibilidad del script de prueba
Diferentes sistemas de Linux usan diferentes conchas. Algunas conchas admiten características adicionales. Otros se adhieren a las estrictas reglas de Posix.
Los guiones que funcionan en Bash pueden fallar en guiones o peces. Las pruebas de cáscara cruzada te ayudan a detectar estos problemas temprano.
2. Elija el mejor caparazón para su trabajo
- usar Zsh o pez Pedido diario. Son rápidos e inteligentes.
- usar intento o sprint Se usa para escribir scripts. Son simples y predecibles.
3. Explore y aprende
Probar diferentes conchas puede ayudarlo a comprender cómo funcionan, cómo difieren y cómo escribir mejores comandos.
Cómo ejecutar múltiples conchas en Linux
Puede ejecutar muchos proyectiles en un sistema. Aquí hay todas las formas posibles:
Método 1: Use el contenedor Docker (recomendado)
Si desea un entorno de caparazón limpio sin afectar el sistema, use Docker. Docker hace que las pruebas sean súper fáciles. Por supuesto, no necesita instalar nada en su sistema principal, excepto Docker.
Si no es así, instale Docker como se describe en el siguiente enlace:
Prueba de shell básica
# Test with bash docker run --rm -it ubuntu bash # Test with fish docker run --rm -it ubuntu fish # Test with zsh docker run --rm -it ubuntu zsh # Test with multiple shells docker run --rm -it ubuntu bash -c "apt update && apt install -y zsh fish && zsh"
El último comando hace tres cosas:
- Crea un nuevo contenedor de Ubuntu
- Instalar ZSH y conchas de pescado
- Iniciar ZSH para probar
Salga del contenedor cuando termine. Se eliminará automáticamente. Los cambios no se guardaron en su sistema de host.
Mejor práctica: Dockerfile Método
Para pruebas repetidas, le recomiendo que use DockerFile.
Paso 1: crear un DockerFile
Crea un nuevo archivo llamado Dockerfile
(Sin extensión) en una nueva carpeta, luego pega tu contenido de DockerFile en ella.
mkdir multi-shell-container cd multi-shell-container nano Dockerfile
Agregue la siguiente línea:
# Use latest Ubuntu as base image FROM ubuntu:latest # Set non-interactive mode to avoid prompts ENV DEBIAN_FRONTEND=noninteractive # Install all popular shells RUN apt update && apt install -y \ zsh \ fish \ dash \ ksh \ tcsh \ mksh \ yash \ busybox \ && rm -rf /var/lib/apt/lists/* # Set working directory WORKDIR /test # Default to bash shell CMD ["bash"]
Paso 2: Construya la imagen
usar Comando Docker:
docker build -t multi-shell .
Si usas Podmanuse este comando en su lugar:
podman build -t multi-shell .
Paso 3: Ejecute el contenedor
Ahora, ejecute el contenedor con el comando:
docker run --rm -it multi-shell
o,
podman run --rm -it multi-shell
Este comando lo coloca en un caparazón de Bash dentro del contenedor.
(Opcional) anular el shell predeterminado
desde CMD
Establecer como bash
En Dockerfile, por defecto, el contenedor comienza en Bash. Pero puede anular el shell predeterminado (bash
) y luego comience con otro shell instalado en la imagen.
Por ejemplo, si desea iniciar un contenedor sprint Por defecto, ejecute:
docker run --rm -it multi-shell dash
pez:
docker run --rm -it multi-shell fish
KSH:
docker run --rm -it multi-shell ksh
TCSH:
docker run --rm -it multi-shell tcsh
ZSH:
docker run --rm -it multi-shell zsh
Nota importante: Agregué --rm
Firme para eliminar automáticamente el contenedor cuando se retire la salida. Si desea mantener el contenedor, simplemente elimine la bandera.
ejemplo:
docker run -it multi-shell zsh
Composición de Docker
Usar dos Dockfile y Docker-composa.yml Déjame darte un archivo juntos Ambiente limpio, flexible y reproducible.
Esto es muy simple docker-compose.yml
De forma predeterminada, las imágenes de múltiples capas se ejecutan con BASH y le permite cambiar fácilmente los shells cuando sea necesario.
Paso 1: crear un archivo de composición
Crea un nuevo docker-compose.yml
Envíe lo siguiente:
version: "3.8" services: multi-shell: build: context: . dockerfile: Dockerfile image: multi-shell container_name: multi-shell-container stdin_open: true # for interactive terminal tty: true # for proper terminal behavior command: bash # default shell (can change to zsh, fish, etc.)
Poner esto docker-compose.yml
existir Misma carpeta Como tu Dockerfile.
Paso 2: construir y ejecutar el contenedor
Use comandos para crear imágenes:
docker-compose build
Ejecute el contenedor:
docker-compose run multi-shell
Por defecto, aterrizará en el shell bash.
Puede cambiar a otra carcasa escribiendo:
fish zsh
Inicie el contenedor con un caparazón específico
Si desea usar otro shell, como ZSH, ejecute:
docker-compose run multi-shell zsh
O actualizado command:
En el archivo YAML, si necesita otros valores predeterminados.
Ahora, pruebe todos sus scripts o aplicaciones en un shell diferente.
Una vez hecho esto, use el comando para eliminar el contenedor y la imagen:
docker-compose down --rmi all
Método 2: instalar y ejecutar el shell localmente
Esta es la forma más fácil. Simplemente instale el shell requerido en su sistema local utilizando el Administrador de paquetes predeterminado.
sudo apt install zsh fish dash ksh
reemplazar apt
Use el Administrador de paquetes predeterminado del sistema.
Después de la instalación, ejecute el shell ingresando su nombre:
zsh # Start Zsh fish # Start Fish dash # Start Dash
Para volver a su shell predeterminado o anterior, ingrese:
exit
Cambie el shell predeterminado (opcional)
Puede cambiar qué shell comienza cuando se registra:
chsh -s /usr/bin/zsh
Iniciar sesión y volver para aplicar los cambios. reemplazar zsh
Con cualquier otra carcasa montada.
Método 3: Use una máquina virtual (VM) o contenedor
Este método es útil cuando se prueba en diferentes distribuciones o configuraciones del sistema. Hay múltiples aplicaciones que pueden ejecutar todo el sistema Linux.
Algunas herramientas notables para ejecutar máquinas virtuales son:
También puede usar una plataforma de virtualización destacada completa, p. proxmox o Xcp-ng.
Ejecutar comandos directamente en otro shell
Después de instalar el shell utilizando cualquiera de los métodos anteriores, use -c
Ejecutar el comando sin cambiar:
bash -c 'echo $BASH_VERSION' zsh -c 'echo $ZSH_VERSION' fish -c 'echo $FISH_VERSION'
Prueba comandos en shell usando script
¿Quieres probar comandos en muchos proyectiles? Usa este script simple. Asegúrese de que se instale la carcasa que se muestra en el método anterior.
#!/bin/bash for sh in bash zsh fish dash; do if command -v $sh > /dev/null; then echo "=== Testing in $sh ===" echo 'echo Hello from $0' | $sh else echo "$sh not found" fi done
Ahorrar test-shells.sh
hazlo ejecutable y ejecutado.
Consejos profesionales para usar múltiples conchas
- usar
#!/bin/bash
(o#!/bin/sh
) en la parte superior del guión: Asegúrese de que el caparazón correcto los ejecute. - Verifique la compatibilidad del shell: usar Caparazón (Una herramienta) Encuentre errores.
- Configuraciones separadas: usar
.bashrc
Para Bash,.zshrc
Para Zsh.
Resumen: la mejor manera de usar múltiples conchas
método | Casos de uso |
---|---|
Contenedor de acopolador | Un ambiente limpio y seguro |
Instalación local | Simple, fuera de línea |
Máquina virtual | Prueba de versión cruzada |
en conclusión
Ejecutar múltiples conchas en Linux puede ayudarlo:
- Escritos mejores scripts más portátiles
- Elija el mejor caparazón para su trabajo
- Comprender cómo funciona Linux
Primero instale ZSH o pescado con Bash. Luego intente probar el script o el contenedor. No tiene que cambiar por completo, solo explorar y aprender.