Cómo comprobar si se está utilizando un shell específico en Linux

LinuxLinuxBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este laboratorio, aprenderás cómo determinar qué shell se está utilizando actualmente en un entorno Linux. Explorarás diferentes métodos para verificar el shell activo, incluyendo el uso del comando echo $SHELL para mostrar el shell de la sesión actual, el examen del archivo /etc/passwd para verificar el shell de inicio de sesión predeterminado de un usuario y la inspección de los procesos en ejecución con el comando ps para identificar el proceso del shell.

Al completar estos pasos, adquirirás habilidades prácticas para identificar y comprender el entorno del shell, lo cual es fundamental para una interacción efectiva en la línea de comandos y la escritura de scripts en Linux.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL linux(("Linux")) -.-> linux/BasicSystemCommandsGroup(["Basic System Commands"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) linux(("Linux")) -.-> linux/TextProcessingGroup(["Text Processing"]) linux(("Linux")) -.-> linux/SystemInformationandMonitoringGroup(["System Information and Monitoring"]) linux(("Linux")) -.-> linux/UserandGroupManagementGroup(["User and Group Management"]) linux/BasicSystemCommandsGroup -.-> linux/echo("Text Display") linux/BasicFileOperationsGroup -.-> linux/cat("File Concatenating") linux/TextProcessingGroup -.-> linux/grep("Pattern Searching") linux/SystemInformationandMonitoringGroup -.-> linux/ps("Process Displaying") linux/UserandGroupManagementGroup -.-> linux/env("Environment Managing") subgraph Lab Skills linux/echo -.-> lab-558763{{"Cómo comprobar si se está utilizando un shell específico en Linux"}} linux/cat -.-> lab-558763{{"Cómo comprobar si se está utilizando un shell específico en Linux"}} linux/grep -.-> lab-558763{{"Cómo comprobar si se está utilizando un shell específico en Linux"}} linux/ps -.-> lab-558763{{"Cómo comprobar si se está utilizando un shell específico en Linux"}} linux/env -.-> lab-558763{{"Cómo comprobar si se está utilizando un shell específico en Linux"}} end

Verificar el shell actual con echo $SHELL

En este paso, aprenderás cómo identificar el shell que estás utilizando actualmente en la terminal. El shell es el intérprete de la línea de comandos que procesa tus comandos. Diferentes shells tienen diferentes características y sintaxis, aunque muchos comandos básicos funcionan de la misma manera en todos ellos.

El entorno de LabEx utiliza zsh como shell predeterminado. Puedes verificar esto comprobando el valor de la variable de entorno $SHELL. Las variables de entorno son valores dinámicos que afectan el comportamiento de los procesos en la computadora. La variable $SHELL almacena específicamente la ruta al shell predeterminado del usuario.

Para mostrar el valor de la variable $SHELL, utiliza el comando echo seguido del nombre de la variable precedido por un signo de dólar ($).

Escribe el siguiente comando en tu terminal y presiona Enter:

echo $SHELL

Deberías ver una salida similar a esta, lo que indica que tu shell actual es zsh:

/usr/bin/zsh

Esto confirma que la terminal está ejecutando actualmente el shell zsh, que es la configuración predeterminada para tu entorno de LabEx. Comprender qué shell estás utilizando es importante a medida que avanzas en tu viaje en Linux, ya que algunas características avanzadas o scripts pueden ser específicos de un shell en particular.

Haz clic en Continuar para pasar al siguiente paso.

Verificar el shell de usuario en /etc/passwd

En el paso anterior, utilizaste echo $SHELL para ver el shell que estás utilizando actualmente. Este es el shell que se lanzó para tu sesión de terminal actual. Sin embargo, el sistema también guarda un registro del shell de inicio de sesión predeterminado de cada usuario en un archivo de configuración.

Este archivo de configuración es /etc/passwd. Contiene información sobre todos los usuarios del sistema. Cada línea en /etc/passwd representa una cuenta de usuario y se divide en campos separados por dos puntos (:). El último campo de cada línea especifica el shell de inicio de sesión predeterminado del usuario.

Para ver el contenido de /etc/passwd, puedes utilizar el comando cat. Dado que solo estamos interesados en la línea del usuario labex, podemos combinar cat con el comando grep para filtrar la salida. grep es una herramienta poderosa para buscar patrones de texto en archivos.

Escribe el siguiente comando en tu terminal y presiona Enter:

cat /etc/passwd | grep labex

Desglosemos este comando:

  • cat /etc/passwd: Este comando lee el contenido del archivo /etc/passwd y lo imprime en la salida estándar.
  • |: Este es un pipe (tubería). Toma la salida del comando de la izquierda (cat /etc/passwd) y la envía como entrada al comando de la derecha (grep labex).
  • grep labex: Este comando busca en la entrada que recibe las líneas que contengan la cadena "labex" y las imprime.

Deberías ver una única línea de salida similar a esta:

labex:x:5000:5000:LabEx user,,,:/home/labex:/usr/bin/zsh

Esta línea contiene varias piezas de información sobre el usuario labex, separadas por dos puntos. Los campos son (en orden):

  1. Nombre de usuario (labex)
  2. Contraseña (representada por x, el hash real de la contraseña se almacena en otro lugar por seguridad)
  3. Identificador de usuario (UID) (5000)
  4. Identificador de grupo (GID) (5000)
  5. Información del usuario (campo GECOS) (LabEx user,,,)
  6. Directorio personal (/home/labex)
  7. Shell de inicio de sesión predeterminado (/usr/bin/zsh)

El último campo, /usr/bin/zsh, confirma que el shell de inicio de sesión predeterminado para el usuario labex es en efecto zsh, lo que coincide con lo que viste con echo $SHELL.

Haz clic en Continuar para continuar.

Inspeccionar el proceso del shell con ps

En los pasos anteriores, identificaste tu shell actual utilizando echo $SHELL y verificaste tu shell de inicio de sesión predeterminado en /etc/passwd. Ahora, veamos los procesos en ejecución en el sistema para ver el propio proceso del shell.

En Linux, cada programa en ejecución es un proceso. El comando ps (abreviatura de "process status", estado del proceso) se utiliza para ver información sobre los procesos en ejecución actualmente.

Para ver los procesos asociados a tu sesión de terminal actual, puedes utilizar el comando ps con la opción -f, que proporciona una lista en formato completo.

Escribe el siguiente comando en tu terminal y presiona Enter:

ps -f

Deberías ver una salida similar a esta:

UID          PID    PPID  C STIME TTY          TIME CMD
labex       XXXX    XXXX  0 HH:MM pts/0    00:00:00 zsh
labex       YYYY    XXXX  0 HH:MM pts/0    00:00:00 ps -f

Veamos las columnas:

  • UID: El identificador de usuario del propietario del proceso (labex).
  • PID: El Identificador de Proceso, un número único para cada proceso.
  • PPID: El Identificador de Proceso Padre. Este es el PID del proceso que inició este.
  • C: Utilización de la CPU.
  • STIME: La hora en que el proceso se inició.
  • TTY: La terminal asociada al proceso (pts/0 indica una pseudo-terminal, como la que estás utilizando).
  • TIME: El tiempo acumulado de CPU utilizado por el proceso.
  • CMD: El comando que inició el proceso.

En la salida, deberías ver una línea con CMD como zsh. Esta línea representa el proceso del shell zsh que está ejecutando tu sesión de terminal actual. También verás una línea para el propio comando ps -f, ya que también es un proceso en ejecución cuando lo ejecutas.

Este paso te muestra cómo utilizar ps para inspeccionar los procesos en ejecución y confirmar que tu shell está en efecto en ejecución como un proceso en el sistema.

Haz clic en Continuar para completar este laboratorio.

Resumen

En este laboratorio, aprendiste cómo verificar qué shell estás utilizando actualmente en Linux. Primero, utilizaste el comando echo $SHELL para mostrar la ruta del shell que se está ejecutando en tu sesión de terminal actual. Esto mostró que el entorno de LabEx utiliza zsh por defecto.

Luego, exploraste el archivo /etc/passwd, que almacena información sobre los usuarios del sistema, incluyendo su shell de inicio de sesión predeterminado. Al examinar el último campo de la entrada de tu usuario en este archivo, puedes verificar el shell asignado a tu cuenta al iniciar sesión. Estos métodos proporcionan diferentes formas de determinar el shell en uso, ya sea para la sesión actual o como el shell predeterminado del usuario.