Introducción
En este laboratorio, te embarcarás en un viaje fundamental hacia el mundo de las operaciones en la 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 de usuario y del sistema, administrar contraseñas de usuarios e inspeccionar varios tipos de archivos.
A través de ejercicios prácticos, aprenderás a ver el contenido de los archivos usando cat, head y tail, a contar estadísticas de archivos y a navegar de manera eficiente por tu historial de comandos. Además, dominarás atajos cruciales de edición en la línea de comandos, lo que mejorará tu productividad y competencia en la gestión de sistemas Linux.
Identificar al usuario y la hora del sistema
En este paso, aprenderás a identificar al usuario actual que ha iniciado sesión en el 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, vamos a averiguar con qué usuario has iniciado sesión actualmente. El comando whoami se utiliza para este propósito. Imprime el nombre de usuario efectivo del usuario actual.
Escribe el siguiente comando en tu terminal:
whoami

Deberías ver labex como resultado, lo que indica que has iniciado sesión como el usuario labex.
labex
A continuación, exploraremos el comando date. Este comando se utiliza para mostrar o configurar la fecha y hora del sistema. Cuando se usa sin ninguna opción, muestra la fecha y hora actuales en un formato predeterminado.
Ejecuta el comando date:
date
La salida mostrará el día de la semana actual, 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 ejecutes el comando.
Mon Jul 22 10:30:45 AM UTC 2024
El comando date es muy flexible y te 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), puedes usar +%R.
Prueba a mostrar solo la hora:
date +%R
La salida será similar a:
10:30
Para mostrar solo la fecha actual en formato MM/DD/AAAA, puedes usar +%x.
Prueba a mostrar solo la fecha:
date +%x
La salida será similar a:
07/22/2024
Por último, puedes ejecutar varios comandos en una sola línea separándolos con un punto y coma (;). Esto puede resultar útil para ejecutar rápidamente una secuencia de comandos.
Intentemos ejecutar whoami y date en la misma línea:
whoami; date
Verás la salida de ambos comandos, uno tras otro:
labex
Mon Jul 22 10:30:45 AM UTC 2024

Administrar contraseñas de usuario y ver tipos de archivos
En este paso, aprenderás a cambiar la contraseña de un usuario y a determinar el tipo de un archivo utilizando el comando file. Comprender los tipos de archivos es esencial para trabajar con varios formatos de datos y ejecutables en Linux.
Primero, observemos cómo comienza un cambio de contraseña sin cambiar la contraseña predeterminada del laboratorio. El comando passwd se utiliza para cambiar las contraseñas de los usuarios. Para el usuario labex, solicita la contraseña actual y luego una contraseña nueva. La contraseña actual es labex.
Escribe el siguiente comando en tu terminal:
passwd
En la solicitud de la contraseña actual, escribe labex y presiona Enter. Cuando aparezca la solicitud de la nueva contraseña, presiona Ctrl+C para cancelar el comando y regresar a la terminal. No introduzcas una contraseña nueva.
Changing password for user labex.
Current password:
New password: ^C
Nota: Cuando escribes contraseñas en Linux, no aparecerá nada en la pantalla por razones de seguridad. Este es un comportamiento normal y no significa que la máquina virtual no responda. El sistema sigue recibiendo tu entrada aunque no puedas ver los caracteres que estás escribiendo.
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 falta la extensión del archivo o es engañosa.
Examinemos el tipo del archivo /etc/passwd. Este archivo contiene información sobre todas las cuentas de usuario en el 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ás 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
Por último, determinemos el tipo de un directorio. Usaremos 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 ayudarte a identificar rápidamente la naturaleza de diferentes archivos y directorios en tu 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 los archivos de configuración y de registro (logs).
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 utilizar para combinar varios archivos en uno solo.
Veamos todo el contenido del archivo /etc/passwd. Este archivo contiene información de las cuentas de usuario.
cat /etc/passwd
Verás que todo el contenido del archivo /etc/passwd se imprime en tu terminal. La salida será extensa y mostrará 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 el uso de cat con varios 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 del de file2.txt.
Hello World!!
Introduction to Linux commands.
A continuación, utilizaremos el comando head. El comando head muestra las primeras líneas de un archivo. De manera predeterminada, 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 que deseas mostrar utilizando 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
Por último, usemos el comando tail. El comando tail muestra las últimas líneas de un archivo. De manera predeterminada, 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
De manera similar a head, puedes especificar el número de líneas a mostrar utilizando 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 sumamente valiosos 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 utilizar el comando wc para contar líneas, palabras y caracteres en archivos, y a utilizar de manera eficaz la función de historial de comandos en tu terminal. Administrar el historial de comandos es crucial para lograr eficiencia y recordar comandos ejecutados anteriormente.
Primero, exploremos el comando wc (word count, recuento 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 del 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 según la configuración de tu sistema.
41 98 2338 /etc/passwd
Puedes utilizar opciones para mostrar únicamente recuentos específicos:
-lpara líneas-wpara palabras-cpara caracteres
Contemos solo las líneas en /etc/passwd y /etc/group (el cual contiene información sobre los grupos de usuarios). Podemos hacer esto en una sola línea utilizando un punto y coma.
wc -l /etc/passwd
wc -l /etc/group
Verás el recuento de líneas de cada archivo:
41 /etc/passwd
63 /etc/group
Ahora, contemos solo los caracteres en /etc/group y /etc/hosts (que asigna nombres de host a direcciones IP).
wc -c /etc/group /etc/hosts
La salida mostrará el recuento de caracteres para cada archivo y un recuento 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 antes.
Para mostrar tu historial de comandos, usa el comando history:
history
Verás una lista numerada de todos los comandos que has introducido en tu sesión actual y en sesiones anteriores. La salida variará enormemente según 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 utilizando el signo de exclamación (!) seguido del número de comando o de una cadena de texto.
Por ejemplo, para volver a ejecutar el comando número 26 (que era file /etc/passwd en el ejemplo anterior, pero será diferente para ti), busca su número en la salida de tu history y úsalo:
!26 ## Reemplaza 26 con el número real de 'file /etc/passwd' en tu historial
El shell mostrará primero el comando que está a punto de ejecutar y luego su salida:
file /etc/passwd
/etc/passwd: ASCII text
También puedes volver a ejecutar el comando más reciente que comience 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 hayas lanzado.
wc -c /etc/group /etc/hosts
883 /etc/group
114 /etc/hosts
997 total
Estas funciones del historial pueden acelerar significativamente tu flujo de trabajo al permitirte recordar y volver a ejecutar rápidamente comandos complejos sin tener que volver a escribirlos.
Practicar atajos de edición en la línea de comandos
En este paso, aprenderás y practicarás útiles atajos de edición en 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 recurrir constantemente al ratón.
Primero, comprendamos cómo escribir un comando largo en varias líneas. Esto puede mejorar la legibilidad en comandos complejos. Puedes usar una barra invertida (\) al final de una línea para indicar que el comando continúa en la línea siguiente.
Intentemos mostrar las primeras 3 líneas de dos archivos de diccionario utilizando un comando multilínea. 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 símbolo > (o similar) que indica que está esperando el resto del comando. Escribe las partes restantes y vuelve a presionar Enter.
==> /home/labex/project/words <==
1080
10-point
10th
==> /home/labex/project/linux.words <==
1080
10-point
10th
Ahora, practiquemos algunos atajos de edición en la línea de comandos. Estos atajos funcionan en la mayoría de las terminales modernas de Linux (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: Salta al principio de la línea de comandos.
- Escribe el comando anterior y presiona
Ctrl+A. Tu cursor se moverá al principio de la línea.
- Escribe el comando anterior y presiona
- Ctrl+E: Salta al final de la línea de comandos.
- Después de presionar
Ctrl+A, presionaCtrl+E. Tu cursor volverá al final de la línea.
- Después de presionar
- Ctrl+U: Borra desde el cursor hasta el principio de la línea de comandos.
- Escribe el comando de nuevo. Coloca tu cursor en algún lugar del medio de la línea (por ejemplo, después de "very"). Presiona
Ctrl+U. El texto desde el cursor hasta el principio será eliminado.
- Escribe el comando de nuevo. Coloca tu cursor en algún lugar del medio de la línea (por ejemplo, después de "very"). Presiona
- Ctrl+K: Borra desde el cursor hasta el final de la línea de comandos.
- Escribe el comando de nuevo. Coloca tu cursor en algún lugar del medio de la línea (por ejemplo, después de "very"). Presiona
Ctrl+K. El texto desde el cursor hasta el final será eliminado.
- Escribe el comando de nuevo. Coloca tu cursor en algún lugar del medio de la línea (por ejemplo, después de "very"). Presiona
- Ctrl+FlechaIzquierda (o Alt+B): Salta 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+FlechaIzquierdarepetidamente para moverte palabra por palabra hacia la izquierda.
- Escribe el comando de nuevo. Coloca tu cursor al final de la línea. Presiona
- Ctrl+FlechaDerecha (o Alt+F): Salta al final de la palabra siguiente en la línea de comandos.
- Coloca tu cursor al principio de la línea. Presiona
Ctrl+FlechaDerecharepetidamente para moverte palabra por palabra hacia la derecha.
- Coloca tu cursor al principio de la línea. Presiona
- Ctrl+R: Busca un patrón en la lista del historial de comandos.
- Presiona
Ctrl+R. Aparecerá una indicación de búsqueda ((reverse-i-search)). Comienza a escribir una parte de un comando que hayas ejecutado previamente, por ejemplo,date. La terminal mostrará el comando más reciente de tu historial que coincida. Sigue presionandoCtrl+Rpara recorrer las coincidencias más antiguas. Presiona Enter para ejecutar el comando encontrado, o las flechas Izquierda/Derecha para editarlo.
- Presiona
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 desarrollar memoria muscular.
Resumen
En este laboratorio, aprendiste comandos fundamentales de Linux para identificar información de usuario y del sistema. Practicaste el uso de whoami para determinar el usuario que ha iniciado sesión actualmente 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 varios comandos en una sola línea usando un punto y coma, lo que mejora la eficiencia en el entorno de la línea de comandos.



