Acceso a la Línea de Comandos en Red Hat Enterprise Linux

Red Hat Enterprise LinuxBeginner
Practicar Ahora

Introducción

En este laboratorio, te embarcarás en un viaje fundamental al mundo de las operaciones de línea de comandos de Linux, específicamente dentro de un entorno de Red Hat Enterprise Linux (RHEL). Obtendrás experiencia práctica con comandos esenciales para identificar información del usuario y del sistema, gestionar contraseñas de usuario e inspeccionar varios tipos de archivos.

A través de ejercicios prácticos, aprenderás a ver el contenido de los archivos utilizando cat, head y tail, a contar estadísticas de archivos y a navegar eficientemente por tu historial de comandos. Además, dominarás atajos cruciales de edición de línea de comandos, mejorando tu productividad y competencia en la gestión de sistemas Linux.

Identificar Usuario y Hora del Sistema

En este paso, aprenderá a identificar el usuario actual conectado al sistema y a mostrar la fecha y hora actuales del sistema utilizando comandos básicos de Linux. Comprender estos comandos fundamentales es crucial para navegar y administrar cualquier entorno Linux.

Primero, averigüemos con qué usuario ha iniciado sesión actualmente. El comando whoami se utiliza para este propósito. Imprime el nombre de usuario efectivo del usuario actual.

Escriba el siguiente comando en su terminal:

whoami
Screenshot of whoami command output

Debería ver labex como salida, lo que indica que ha iniciado sesión como usuario labex.

labex

A continuación, exploraremos el comando date. Este comando se utiliza para mostrar o establecer la fecha y hora del sistema. Cuando se usa sin ninguna opción, muestra la fecha y hora actuales en un formato predeterminado.

Ejecute el comando date:

date

La salida mostrará el día actual de la semana, el mes, el día del mes, la hora (HH:MM:SS), la zona horaria y el año. La salida exacta variará según cuándo ejecute el comando.

Mon Jul 22 10:30:45 AM UTC 2024

El comando date es muy flexible y le permite formatear la salida de varias maneras utilizando especificadores de formato. Por ejemplo, para mostrar solo la hora actual en formato de 24 horas (HH:MM), puede usar +%R.

Intente mostrar solo la hora:

date +%R

La salida será similar a:

10:30

Para mostrar solo la fecha actual en formato MM/DD/AAAA, puede usar +%x.

Intente mostrar solo la fecha:

date +%x

La salida será similar a:

07/22/2024

Finalmente, puede ejecutar varios comandos en una sola línea separándolos con un punto y coma (;). Esto puede ser útil para ejecutar rápidamente una secuencia de comandos.

Intentemos ejecutar whoami y date en la misma línea:

whoami; date

Verá la salida de ambos comandos, uno tras otro:

labex
Mon Jul 22 10:30:45 AM UTC 2024
Screenshot of whoami and date commands output

Gestionar Contraseñas de Usuario y Visualizar Tipos de Archivo

En este paso, aprenderá a cambiar la contraseña de un usuario y a determinar el tipo de un archivo utilizando el comando file. Comprender los tipos de archivo es esencial para trabajar con varios formatos de datos y ejecutables en Linux.

Primero, practicaremos el cambio de la contraseña de un usuario. El comando passwd se utiliza para cambiar las contraseñas de los usuarios. Para el usuario labex, se le pedirá la contraseña actual y luego la nueva contraseña dos veces. Recuerde, la contraseña actual para labex es labex.

Escriba el siguiente comando en su terminal:

passwd

Se le pedirá que introduzca la contraseña actual y luego la nueva contraseña dos veces. Para este laboratorio, puede establecer la nueva contraseña en newpass (Importante: No cambie la contraseña predeterminada para este laboratorio).

Changing password for user labex.
Current password: old_password  <-- Escriba labex y presione Enter
New password: new_password      <-- Escriba newpass y presione Enter
BAD PASSWORD: The password is shorter than 8 characters

Nota: Cuando escribe contraseñas en Linux, no aparecerá nada en la pantalla por motivos de seguridad. Este es un comportamiento normal y no significa que la VM no esté respondiendo. El sistema sigue recibiendo su entrada aunque no pueda ver los caracteres que se están escribiendo.

Muestra que la contraseña tiene menos de 8 caracteres. En el mundo real, debería establecer una contraseña que tenga al menos 8 caracteres y sea más compleja. Pero para este laboratorio, no cambiaremos la contraseña, por lo que puede simplemente presionar Enter para omitir el cambio de contraseña.

A continuación, exploraremos el comando file. Este comando determina el tipo de un archivo. Es muy útil para comprender qué tipo de datos contiene un archivo, especialmente cuando la extensión del archivo falta o es engañosa.

Examinemos el tipo del archivo /etc/passwd. Este archivo contiene información sobre todas las cuentas de usuario del sistema.

file /etc/passwd

La salida indicará que /etc/passwd es un archivo de texto ASCII.

/etc/passwd: ASCII text

Ahora, comprobemos el tipo de un archivo ejecutable, como /bin/bash, que es el programa de shell que está utilizando actualmente.

file /bin/bash

La salida mostrará que /bin/bash es un archivo ejecutable, junto con detalles sobre su arquitectura y otras propiedades.

/bin/bash: ELF 64-bit LSB pie executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, BuildID[sha1]=<omitted>, for GNU/Linux <omitted>, stripped

Finalmente, determinemos el tipo de un directorio. Utilizaremos el directorio /home como ejemplo.

file /home

La salida simplemente indicará que /home es un directorio.

/home: directory

Estos ejemplos demuestran cómo el comando file puede ayudarle a identificar rápidamente la naturaleza de diferentes archivos y directorios en su sistema Linux.

Inspeccionar el Contenido de Archivos con cat, head y tail

En este paso, aprenderás a inspeccionar el contenido de archivos de texto utilizando tres comandos esenciales de Linux: cat, head y tail. Estos comandos son fundamentales para ver el contenido de los archivos, especialmente archivos de configuración y archivos de registro (log files).

Primero, usemos el comando cat. El comando cat (abreviatura de concatenate, concatenar) se utiliza principalmente para mostrar el contenido de los archivos. También se puede usar para combinar múltiples archivos en uno.

Veamos todo el contenido del archivo /etc/passwd. Este archivo contiene información de la cuenta de usuario.

cat /etc/passwd

Verás el contenido completo del archivo /etc/passwd impreso en tu terminal. La salida será extensa, mostrando todas las entradas de usuario.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
...output omitted...

Ahora, creemos dos archivos de texto simples en tu directorio ~/project para demostrar cat con múltiples archivos.

Crea file1.txt:

echo "Hello World!!" > ~/project/file1.txt

Crea file2.txt:

echo "Introduction to Linux commands." > ~/project/file2.txt

Ahora, usa cat para mostrar el contenido de ambos archivos:

cat ~/project/file1.txt ~/project/file2.txt

La salida mostrará el contenido de file1.txt seguido de file2.txt.

Hello World!!
Introduction to Linux commands.

A continuación, usaremos el comando head. El comando head muestra las primeras líneas de un archivo. Por defecto, muestra las primeras 10 líneas.

Veamos las primeras 10 líneas de /etc/passwd:

head /etc/passwd

Verás las primeras 10 líneas del archivo /etc/passwd.

root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin
adm:x:3:4:adm:/var/adm:/sbin/nologin
lp:x:4:7:lp:/var/spool/lpd:/sbin/nologin
sync:x:5:0:sync:/sbin:/bin/sync
shutdown:x:6:0:shutdown:/sbin:/sbin/shutdown
halt:x:7:0:halt:/sbin:/sbin/halt
mail:x:8:12:mail:/var/spool/mail:/sbin/nologin
operator:x:11:0:operator:/root:/sbin/nologin

Puedes especificar el número de líneas a mostrar usando la opción -n. Por ejemplo, para ver las primeras 3 líneas:

head -n 3 /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/sbin/nologin
daemon:x:2:2:daemon:/sbin:/sbin/nologin

Finalmente, usemos el comando tail. El comando tail muestra las últimas líneas de un archivo. Por defecto, también muestra las últimas 10 líneas.

Veamos las últimas 10 líneas de /etc/passwd:

tail /etc/passwd

Verás las últimas 10 líneas del archivo /etc/passwd.

systemd-coredump:x:999:997:systemd Core Dumper:/:/sbin/nologin
systemd-resolve:x:998:996:systemd Resolver:/:/sbin/nologin
systemd-network:x:997:995:systemd Network Management:/:/sbin/nologin
dbus:x:81:81:System Message Bus:/:/sbin/nologin
polkitd:x:996:994:User for polkitd:/:/sbin/nologin
unbound:x:995:993:Unbound DNS resolver:/:/sbin/nologin
tss:x:59:59:TPM software stack:/:/sbin/nologin
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

Similar a head, puedes especificar el número de líneas a mostrar usando la opción -n. Por ejemplo, para ver las últimas 3 líneas:

tail -n 3 /etc/passwd
gdm:x:42:42::/var/lib/gdm:/sbin/nologin
gnome-initial-setup:x:980:978::/run/gnome-initial-setup/:/sbin/nologin
dnsmasq:x:979:977:Dnsmasq DHCP and DNS server:/var/lib/dnsmasq:/sbin/nologin

Estos comandos son invaluables para examinar rápidamente el contenido de los archivos sin abrirlos en un editor de texto, lo cual es especialmente útil para archivos grandes o cuando solo necesitas verificar partes específicas.

Contar Estadísticas de Archivos y Usar el Historial de Comandos

En este paso, aprenderás a usar el comando wc para contar líneas, palabras y caracteres en archivos, y cómo usar eficazmente la función de historial de comandos en tu terminal. La gestión del historial de comandos es crucial para la eficiencia y para recordar comandos ejecutados previamente.

Primero, exploremos el comando wc (word count, conteo de palabras). Este comando se utiliza para contar el número de líneas, palabras y caracteres en un archivo.

Contemos las líneas, palabras y caracteres en el archivo /etc/passwd:

wc /etc/passwd

La salida mostrará tres números seguidos del nombre del archivo: líneas, palabras y caracteres. Los números exactos pueden variar ligeramente dependiendo de la configuración de tu sistema.

41   98 2338 /etc/passwd

Puedes usar opciones para mostrar solo conteos específicos:

  • -l para líneas
  • -w para palabras
  • -c para caracteres

Contemos solo las líneas en /etc/passwd y /etc/group (que contiene información sobre los grupos de usuarios). Podemos hacer esto en una sola línea usando un punto y coma.

wc -l /etc/passwd
wc -l /etc/group

Verás el conteo de líneas para cada archivo:

41 /etc/passwd
63 /etc/group

Ahora, contemos solo los caracteres en /etc/group y /etc/hosts (que mapea nombres de host a direcciones IP).

wc -c /etc/group /etc/hosts

La salida mostrará el conteo de caracteres para cada archivo y un conteo total.

883 /etc/group
114 /etc/hosts
997 total

A continuación, aprenderemos sobre el historial de comandos. Tu shell mantiene un registro de todos los comandos que has ejecutado. Esto es increíblemente útil para volver a ejecutar comandos o recordar lo que hiciste previamente.

Para mostrar tu historial de comandos, usa el comando history:

history

Verás una lista numerada de todos los comandos que has ingresado en tu sesión actual y sesiones anteriores. La salida variará mucho dependiendo de tu actividad.

...output omitted...
   23  clear
   24  whoami
   25  date
   26  file /etc/passwd
   27  cat /etc/passwd
   28  head /etc/passwd
   29  tail /etc/passwd
   30  wc /etc/passwd
   31  history

Puedes volver a ejecutar un comando de tu historial usando el signo de exclamación (!) seguido del número del comando o una cadena.

Por ejemplo, para volver a ejecutar el comando en el número 26 (que era file /etc/passwd en el ejemplo anterior, pero será diferente para ti), encuentra su número en la salida de tu history y úsalo:

!26 ## Reemplaza 26 con el número real de 'file /etc/passwd' de tu historial

El shell primero mostrará el comando que está a punto de ejecutar, luego su salida:

file /etc/passwd
/etc/passwd: ASCII text

También puedes volver a ejecutar el comando más reciente que comienza con una cadena específica. Por ejemplo, para volver a ejecutar el último comando que comenzó con wc:

!wc

Esto ejecutará el último comando wc que ejecutaste.

wc -c /etc/group /etc/hosts
883 /etc/group
114 /etc/hosts
997 total

Estas funciones de historial pueden acelerar significativamente tu flujo de trabajo al permitirte recordar y volver a ejecutar rápidamente comandos complejos sin volver a escribirlos.

Practicar Atajos de Edición en la Línea de Comandos

En este paso, aprenderás y practicarás atajos útiles de edición de la línea de comandos. Estos atajos pueden mejorar significativamente tu eficiencia al escribir y modificar comandos en la terminal, permitiéndote navegar y editar texto sin tener que usar constantemente el ratón.

Primero, entendamos cómo escribir un comando largo en múltiples líneas. Esto puede mejorar la legibilidad de comandos complejos. Puedes usar una barra invertida (\) al final de una línea para indicar que el comando continúa en la siguiente línea.

Intentemos mostrar las primeras 3 líneas de dos archivos de diccionario usando un comando de múltiples líneas. Estos archivos se encuentran típicamente en sistemas Linux y contienen listas de palabras.

head -n 3 \
  /home/labex/project/words \
  /home/labex/project/linux.words

Cuando presionas Enter después de la primera línea, tu terminal mostrará un indicador > (o similar) indicando que está esperando el resto del comando. Escribe las partes restantes y presiona Enter de nuevo.

==> /home/labex/project/words <==
1080
10-point
10th

==> /home/labex/project/linux.words <==
1080
10-point
10th

Ahora, practiquemos algunos atajos de edición de la línea de comandos. Estos atajos funcionan en la mayoría de las terminales Linux modernas (como Bash o Zsh).

Escribe un comando largo, pero no presiones Enter todavía:

echo "This is a very long command that we will edit using shortcuts."
  • Ctrl+A: Ir al principio de la línea de comandos.
    • Escribe el comando anterior, luego presiona Ctrl+A. Tu cursor se moverá al principio de la línea.
  • Ctrl+E: Ir al final de la línea de comandos.
    • Después de presionar Ctrl+A, presiona Ctrl+E. Tu cursor se moverá de nuevo al final de la línea.
  • Ctrl+U: Borrar desde el cursor hasta el principio de la línea de comandos.
    • Escribe el comando de nuevo. Coloca tu cursor en algún lugar en medio de la línea (por ejemplo, después de "very"). Presiona Ctrl+U. El texto desde el cursor hasta el principio se borrará.
  • Ctrl+K: Borrar desde el cursor hasta el final de la línea de comandos.
    • Escribe el comando de nuevo. Coloca tu cursor en algún lugar en medio de la línea (por ejemplo, después de "very"). Presiona Ctrl+K. El texto desde el cursor hasta el final se borrará.
  • Ctrl+LeftArrow (o Alt+B): Ir al principio de la palabra anterior en la línea de comandos.
    • Escribe el comando de nuevo. Coloca tu cursor al final de la línea. Presiona Ctrl+LeftArrow repetidamente para moverte palabra por palabra hacia la izquierda.
  • Ctrl+RightArrow (o Alt+F): Ir al final de la siguiente palabra en la línea de comandos.
    • Coloca tu cursor al principio de la línea. Presiona Ctrl+RightArrow repetidamente para moverte palabra por palabra hacia la derecha.
  • Ctrl+R: Buscar en la lista de historial de comandos un patrón.
    • Presiona Ctrl+R. Aparecerá un indicador (reverse-i-search). Comienza a escribir una parte de un comando que ejecutaste previamente, por ejemplo, date. La terminal mostrará el comando más reciente de tu historial que coincida. Sigue presionando Ctrl+R para recorrer coincidencias más antiguas. Presiona Enter para ejecutar el comando encontrado, o las flechas izquierda/derecha para editarlo.

Estos atajos acelerarán significativamente tu interacción con la línea de comandos una vez que te acostumbres a ellos. Practícalos regularmente para construir memoria muscular.

Resumen

En este laboratorio, aprendiste comandos Linux fundamentales para identificar información del usuario y del sistema. Practicaste el uso de whoami para determinar el usuario actual conectado y date para mostrar la fecha y hora actuales del sistema, incluyendo varias opciones de formato como +%R para la hora y +%x para la fecha. Además, descubriste cómo ejecutar múltiples comandos en una sola línea usando un punto y coma, mejorando la eficiencia en el entorno de la línea de comandos.