100 Ejercicios de Consola Unix#

Aquí tienes (casi) 100 ejercicios básicos para aprender a manejar una consola Unix (Repaso de Consola Unix). Lo ideal es que trates de resolver la pregunta sin ver la respuesta. Ya sé que te da pereza, pero si quieres aprender inténtalo. Te dará una idea de tu nivel de usuario básico. Deberías tener al menos 85 bien. Si me invitas a un café quizá me de para hacer 100 más.

También puedes ver un documento en PDF con (casi) las mismas preguntas. No publico las respuestas que para aprender hay que trabajar. Le puedes preguntar a ChatGPT también, pero mejor practicar con la consola, que a la larga, te va a compensar.

Buscar en la página

Si usas la búsqueda en tu navegador, por ejemplo con Ctrl+F o Alt+F, va directamente a lo que estás buscando en la página. Por ejemplo, busca con el navegador en qué pregunta aparece el comando ps (te saldrán varias).


1. ¿Cómo se le llama al intérprete de comandos?
Hay diferentes intérpretes, que según esté configurado para cada usuario, se lanza al entrar en el terminal (proceso de login). El más habitual es bash.

Revisa bash

2. En consola, ¿cómo puedo autocompletar?
Pulsando dos veces el tabulador (TAB). Se usa sobre todo para comandos, pero vale también para usar el sistema de archivos.
3. En consola, ¿puedo moverme por lo que escribo?
, hay varias opciones por ejemplo ir a principio de línea (Ctl + A), o ir al final (Ctl + E), o borrar una palabra (Alt+D) o una línea (Ctl+K). Hay muchos

Atajos de teclado usando bash

4. ¿Cómo veo los archivos en el directorio actual?
ls (o ls ./ también vale)

Revisa ls

5. ¿Cómo hago para ver los archivos del directorio anterior?
ls ../
6. ¿Cómo hago para ver los archivos del directorio raíz?
ls /
7. ¿Cómo puedo crear archivos en Unix?
touch

Revisa touch

8. ¿Cómo salgo de la consola?
exit

Revisa exit

9. ¿Cómo puedo crear uno o varios directorios?
Con el comando mkdir seguido del nombre o nombres, separados por espacio, de los directorios que quiero crear.

Revisa mkdir

10. ¿En que directorios se guardan generalmente los programas?
Generalmente en /bin /sbin y /usr/sbin, aunque depende también de la distribución.
11. ¿Cómo denomina Unix a los disco duros IDE?
Los denomina como hd (de Hard Disk). Canal Primario: hda (Maestro) y hdb (Esclavo) Canal Secundario: hdc (Maestro) y hdd (Secundario)
12. ¿Cómo puedo obtener un listado de los procesos que tengo en ejecución?
Con el comando ps y varias opciones (por ejemplo -axf). También, de forma interactiva con el comando top o htop

Revisa ps

13. ¿De qué forma puedo averiguar el uso de memoria que consume mi ordenador?
Comando free.

Revisa free

14. ¿Cómo se cambia al propietario de un fichero?
Con el comando chown

Revisa chown

15. ¿Cómo puedo saber el orden de ejecución de mis procesos?
Mediante el comando ps y observando el  que aparece al lado del proceso (PID)
16. ¿Con qué comando se monitorea la memoria?
Comando top o htop (porque monitorea periódicamente)

Revisa top

17. ¿Cómo puedo ver el contenido de un archivo sin abrirlo?
Utilizando el comando cat (o también con more o less)

Revisa cat / more / less

18. ¿ Cuál es el comando para saber donde estás?
pwd

Revisa pwd

19. ¿Cómo se qué usuario soy?
whoami

Revisa whoami

20. ¿Puedo tener más de una consola abierta?
. Y se puede alternar entre ellas con el atajo de teclado alt +f1, f2, f3 según a la consola que queramos cambiar
Y también se pueden tener consolas remotas, o consolas virtuales (dentro de un editor de texto por ejemplo).
21. ¿Existen físicamente todos los dispositivos que hay en /dev?
No
22. ¿Cómo asignar una IP a mi ordenador?
ip addr add IP/MASK dev INTERFACE

Antes con ifconfig, en la actulidad mejor revisa ip addr add

23. ¿ Qué comando reinicia el equipo?
shutdown -r (y tiene otras opciones interesantes)

Revisa shutdown

24. ¿Qué comando me sirve para apagar mi ordenador?
shutdown -h
25. ¿Cómo borro la pantalla?
Con el comando clear

Revisa clear

26. ¿Con qué comando puedo empaquetar y desempaquetar un conjunto de archivos o directorios?
Con el comando tar (y sus múltiples opciones)

Revisa tar

27. ¿Con qué comando genérico de UNIX puedo comprimir y descomprimir archivos y directorios?
Con el comando gzip (y sus múltiples opciones).

En realidad, cada algoritmo de compresión tiene sus comandos (bziz, rar, etc)

Revisa gzip

28. ¿Cómo sé los usuarios conectados a mi máquina?
who

Revisa who

29. ¿Cómo puedo obtener información detallada de un comando?
Hay varias opciones, de la más rápida a la más lenta:

#. Usar la opción -h o --help del comando. Por ejemplo: ls -h o ls --help
#. Usar el comando man
#. Usar el comando info (en algunos casos)

Revisa man

30. ¿ Donde se escriben los comandos?
 En el intérprete de comandos, por ejemplo sh bash. Se muestra el prompt y a continuación el intérprete queda a la espera de comandos.

`prompt`_
31. ¿Cómo un archivo sin posibilidad de recuperación?
shred (otra opción es sobreescribir con ceros)

Revisa shred

32. ¿Cómo creo un enlace?
Con ln. Hay diferentes tipos de enlaces (duros y simbólicos). Lo habitual es usar ln -s archivo enlace

Revisa ln

33. ¿Cómo borrar directorios con todos sus archivos dentro?
Con las opciones r y f del comando rm. rm -rf directorio.

Revisa rm

34. ¿Cómo averiguar la cantidad de disco utilizado?
En realidad el comando du en realidad muestra el uso de diferentes fuentes de almacenamiento, no sólo los discos

Revisa du

35. ¿Cómo se le llaman a los drivers en UNIX?
Depende del sistema pero en general los drivers son los módulos del kernel.
36. Cómo puedo matar un proceso?
En realidad más que matar, implica enviarle una señal a un proceso. Típicamente kill -15 PID (usando la señal de código 15)

Revisa kill

37. ¿Cómo se que versión del kernel tengo?
Con uname -r. Todos los valores del sistema sería con uname -a

Revisa uname

38. Dónde se guardan los archivos de configuración del sistema?
Depende de la distribución concreta, pero lo más habitual es en /etc
39. ¿Cómo diferencio entre ruta absoluta y ruta relativa?
Con el carácter / delante de la ruta (absoluta). Por ejemplo ls /home/user . Si no tiene / o hay un ./, sería una ruta relativa al directorio actual (que se obtiene con pwd). Por ejemplo ls user/ejemplo1/archivo.txt o ls ./user/ejemplo1/archivo.txt
40. ¿Dónde se guardan los archivos de usuario?
Depende de la distribución pero generalmente en /home hay un subdirectorio por cada usuario (activo). No todos los usuarios tienen un subdirectorio home. La variable de entorno HOME guarda la carpeta de referencia del usuario, y se puede ver con echo "$HOME"
41. ¿Cómo puedo ver los detalles de un archivo?
Con la opción -l del comando ls. Es decir ls -l
42. ¿Cómo ejecuto un proceso en 2º plano?
Con el comando bg

Revisa bg

43. ¿Cómo veo los procesos que se están ejecutando en 2º plano y en ese termianl?
Con el comando jobs

Revisa jobs

44. ¿Cómo traer un proceso en 2º plano al 1º?
Con el comando fg

Revisa fg

45. ¿Cómo puedo saber en qué directorio está un comando determinado?
Con el comando whereis

Revisa whereis

46. ¿Puede haber 2 archivos o más con la misma ruta absoluta?
No. En el caso de los enlaces, puede ser el mismo archivo, pero las rutas absolutas son diferentes.
47. ¿Cómo visualizo la fecha y hora del sistema?
Con el uso del comando date

Revisa date

48. ¿Puedo ver la fecha en un formato determinado?
, el comando date tiene diferentes opciones y posibilidades.

Uso de formato con comando date.

49. ¿Qué letra significa permiso de ejecución?
  En el sistema de permisos UGO la x indica permiso de ejecución

`Permisos UGO`_
50. ¿A que se refiere cuando se dice que los entornos Unix son CASE SENSITIVE?
Pues que distingue entre mayúsculas y minúsculas
51. ¿Cómo puedo ver más allá de la pantalla?
Shift+Av Pág, para avanzar Shift+Re Pág, para retroceder
52. ¿Cómo consulto el historial de comandos?
Con el comando history

Revisa history

53. ¿Cómo accedo a la consola desde el modo gráfico?
Pues puedo abrir un emulador de terminal (una aplicación) o ir a una de las consolas (con Alt + Fn en algunos casos).
54. ¿Cómo se los grupos a los que pertenezco?
Con el comando groups. Sirve también para conocer los grupos a los que pertenece un usuario

Revisa groups

55. ¿Qué hace el comando echo?
Pues enviar a la salida estándar, los argumentos que se le pasan. Por ejemplo >echo "hola"

Revisa echo

56. ¿Cómo puedo saber en que consola me encuentro?
Con el comando tty, y te indicará el dispositivo en el que te encuentras. Por ejemplo /dev/ttys001

Revisa tty

57. ¿Cómo hago un enlace en el directorio dir a un archivo en el directorio actual?
ln -s archivo.ejemplo dir/

Si no pongo el nombre de archivo el enlace tendrá el mismo nombre
58. ¿Cómo hago para ir al final de línea en una consola?
Pulsando Ctl + e

Atajos de teclado usando bash

59. ¿Cómo hago para avanzar hacia atrás, palabra a palabra, en una consola?
Pulsando Alt + b

Atajos de teclado usando bash

60. ¿Cómo hago para borrar desde el cursor hasta el final de línea?
Pulsando Ctl + k

Atajos de teclado usando bash

61. ¿Cómo hago para borrar la palabra siguiente?
Pulsando Alt + d

Atajos de teclado usando bash

62. Si quiero ver cual es la diferencia horaria de mi sesión con UTC (UTC+00), ¿cómo hago?
Con la opción R del comando date (formato RFC 8222). Sería date -R
63. ¿Cómo sé cual es el nombre de la máquina en la que estoy conectado?
Con el comando hostname. Acuérdate de distinguir el nombre de host del nombre completo (lo que se llama FQDN).

Revisa hostname

64. ¿Cómo hago para ver las variables de entorno de mi sesión?
Con el comando env. Recuerda que son variables creadas previamente y cuyo valor puedes usar con $VAR, por ejemplo echo $HOME.

env(1)

65. Puedo ejecutar un comando que no esté en mi directorio actual
 claro, usando la ruta relativa o absoluta. Por ejemplo /bin/echo  o ../bin/echo

Y la otra opción es que, si el comando se encuentra en un directorio que está en la variable de entorno PATH, no hay que usar la ruta absoluta (lo hace automáticamente el intérprete).
66. ¿Cómo muestro el contenido de la variable PATH?
echo $PATH
67. ¿Cómo hago para escribir en consola, sin parar, «Hola, soy yo»?
Con el comando yes, en concreto; yes "Hola, soy yo".

Revisa yes

68. ¿Cómo hago para copiar archivo1 a archivo2 que está en el directorio dir?
cp archivo1 dir/archivo2

Revisa cp

Quiero construir un archivo suma que tenga el contenido de A1 y A2, cómo hago?
cat A1 A2 > nuevo_archivo.txt

Revisa cat

69. ¿Cómo sé cuantas líneas tiene un archivo?
wc -l archivo

Revisa wc

70. Suponiendo que tengo el archivo software.tar.gz y el archivo de firma MD5 software.tar.gz.md5, cómo compruebo que es correcta?
(waiting)
71. ¿Cómo hago para extraer campos de texto de un archivo
(waiting)
72. ¿Cómo redirecciono la salida estándar de error?
(waiting)
73. cómo hago para cancelar la operación de un comando?
(waiting)
74. ¿Cómo hago para enviar el caracter EOF a la entrada estándar?
(waiting)
75. Puedo descomprimir un archivo ZIP Windows en Linux?
(waiting)
76. ¿Cómo hago para saber el tiempo que tarda en ejecutarse un comando?
time comando

Revisa time

77. Si quiero crear el directorio dir11 dentro de dir1, y dir1 no existe, ¿cómo lo hago con una sola instrucción?
mkdir -f dir1/dir11

Revisa mkdir

78. ¿Cómo hago para encontrar si hay un usuario que se llame pepe?
(waiting)
79. ¿Cómo mostrar todas las líneas de un archivo de texto que NO contengan la palabra hola?
grep -v "hola" ejemplo.txt

Revisa grep

80. ¿Cómo hago para ver qué usuarios no tienen una shell asignada?
(waiting)
81. Como encuentro los archivos terminados en .txt en mi directorio actual?
(waiting)
82. Quiero ver el contenido de los archivos de texto que empiecen por a, seguidos de un 3 o un 4, y terminados en .sh, como hago?
(waiting)
83. Estoy perdido en el árbol de directorios, cómo vuelvo a mi HOME?
(waiting)
84. Quiero ver cuanto espacio ocupa mi home, cómo hago?
(waiting)