Tutoriales

Cómo ejecutar múltiples conchas en Linux: Carnival, Fish, ZSH, etc.

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ónpor
intentoValores predeterminados para la mayoría de los sistemas de Linux
ZshAutocompletado inteligente y complementos
pezFácil de usar y moderno
sprintRápido, simple, compatible con Posix
kshUtilizado para sistemas UNIX más antiguos

¿Por qué usar múltiples conchas?

Esta es la razón principal:

Publicaciones relacionadas

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:

  1. Crea un nuevo contenedor de Ubuntu
  2. Instalar ZSH y conchas de pescado
  3. 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.shhazlo 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étodoCasos de uso
Contenedor de acopoladorUn ambiente limpio y seguro
Instalación localSimple, fuera de línea
Máquina virtualPrueba 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.

LEER  ¿Mejor que las páginas humanas? Estas herramientas lo ayudan a comprender los comandos de Linux

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba