Comandos esenciales de linux:
pwd, ls, cd ., cd.., cd /, clear, ls -l, historial de comandos, tabulador para completar comando, * para buscar archivos.
Crear, mover y eliminar directorios y archivos:
mkdir, rmdir, touch, clear, cat <fichero>, cp, rm, rm *, rm -r, clear, mv.
Usuario root y permisos sobre archivos y directorios:
whoami, id, su, adduser, permisos rwx, chmod.
CUIDADO: difícil añadir usuarios sin ser root y al cambiar permisos en el laboratorio solo de directorios y ficheros del propio usuario.
chmod - ANEXO PERMISOS rwxrwxrwx - Tabla equivalencia entre binario y decimal
001 - 1
010 - 2
011 - 3
100 - 4
101 - 5
110 - 6
111 - 7
Ejemplos:
chmod 777 fichero.txt, chmod 700 fichero.txt, chmod 611 fichero.txt, chmod 655 fichero.txt
Procesos. Monitorearlos y administrarlos:
ps, top, kill, apt install htop, htop.
E/S estándar, redirecciones, comando find:
stdin (0: teclado y ratón),
stdout (1: pantalla),
sterr (2: error),
redirección con >, cat, find . -name "*.txt", find . -size...
Comandos del manual "comandosLinux_BasicosBienExplicados_Resumen.pdf" que no están en los videos:
man, carácter *, carácter ?, echo, date, clear, tree, ls -l, more <fichero>
EDITOR nano o vim EN LÍNEA DE COMANDOS: Editar fichero, guardar fichero editado, cerrar el editor.
Comandos de red que no están ni en manual "comandosLinux_BasicosBienExplicados_Resumen.pdf"
ni en los videos:
Utilizado para probar la conectividad con otros hosts enviando paquetes ICMP.
Ejemplos:
text
ping 192.168.0.1
ping google.com
ping -c 5 192.168.1.1
Muestra conexiones de red, tablas de enrutamiento y estadísticas de interfaces.
Ejemplos:
text
netstat -r
netstat -tuln
Muestra la ruta que toman los paquetes para llegar a un destino.
Ejemplos:
traceroute google.com
traceroute -n 8.8.8.8
Muestra la configuración de las interfaces de red.
Ejemplos:
ifconfig
Una alternativa más moderna a netstat que muestra información sobre sockets.
Ejemplos:
ss -tuln
ss -i
Herramienta para medir el rendimiento de la red entre dos hosts.
Ejemplos:
iperf -s
iperf -c 192.168.1.10
Escáner de puertos y herramienta de descubrimiento de red.
Ejemplos:
nmap 192.168.1.0/24
nmap -p 1-100 example.com
Analizador de paquetes de red que captura y muestra el tráfico en tiempo real.
Ejemplos:
tcpdump -i eth0
tcpdump host 192.168.1.1
Herramienta para realizar consultas DNS.
Ejemplos:
dig google.com
dig +short mx gmail.com
El comando ip es una herramienta versátil para configurar interfaces de red, direcciones IP y rutas.
Ejemplos:
ip addr show
ip link set eth0 up
Ejercicios Prácticos de Linux 1 - Nivel Básico
## SECCIÓN 1: Navegación básica (pwd, ls, cd)
1. Muestra la ruta actual donde te encuentras
2. Lista todos los archivos de tu directorio actual
3. Navega a tu directorio personal
4. Muestra el contenido de la carpeta /etc
5. Vuelve al directorio anterior
6. Lista los archivos ocultos de tu directorio actual
7. Navega a la raíz del sistema
8. Lista el contenido de tu directorio home con formato detallado
9. Entra en la carpeta Documentos
10. Muestra la ruta completa de donde estás
## SECCIÓN 2: Gestión de directorios (mkdir, rmdir)
11. Crea una carpeta llamada "ejercicios"
12. Crea tres carpetas: "prueba1", "prueba2" y "prueba3"
13. Elimina la carpeta "prueba2"
14. Crea una estructura de carpetas: "curso/linux/ejercicios"
15. Elimina la carpeta "prueba3" si está vacía
16. Crea una carpeta con tu nombre
17. Crea una carpeta llamada "backup"
18. Elimina la carpeta "backup" si está vacía
19. Crea una carpeta llamada "temp"
20. Crea cinco carpetas numeradas del 1 al 5
## SECCIÓN 3: Manipulación de archivos (touch, cat, cp)
21. Crea un archivo vacío llamado "nota.txt"
22. Copia "nota.txt" a "nota_backup.txt"
23. Crea tres archivos: "a.txt", "b.txt", "c.txt"
24. Muestra el contenido de "nota.txt"
25. Copia todos los archivos .txt a la carpeta "backup"
26. Crea un archivo llamado "lista.txt"
27. Copia "lista.txt" al directorio padre
28. Muestra el contenido de "a.txt"
29. Crea un archivo con la fecha actual como nombre
30. Copia todos los archivos de texto a otra carpeta
## SECCIÓN 4: Eliminación y movimiento (rm, mv)
31. Elimina el archivo "a.txt"
32. Mueve "b.txt" a la carpeta "backup"
33. Elimina todos los archivos .txt
34. Mueve tres archivos a una nueva carpeta
35. Elimina la carpeta "temp" y su contenido
36. Renombra "nota.txt" a "notas_clase.txt"
37. Elimina todos los archivos que empiecen por "temp"
38. Mueve todos los archivos .txt a una nueva ubicación
39. Elimina archivos más antiguos de 7 días
40. Renombra múltiples archivos a la vez
## SECCIÓN 5: Información del sistema (whoami, id, ps)
41. Muestra tu nombre de usuario
42. Verifica tu ID de usuario
43. Lista los procesos actuales
44. Muestra los grupos a los que perteneces
45. Lista los procesos que consumen más CPU
46. Identifica el PID de un proceso específico
47. Muestra información detallada de un usuario
48. Lista todos los procesos de root
49. Verifica los permisos de tu usuario
50. Muestra los procesos ordenados por uso de memoria
## NOTAS IMPORTANTES PARA ESTUDIANTES:
1. Siempre verifica dos veces antes de usar comandos de eliminación (rm)
2. Haz una copia de seguridad antes de modificar archivos importantes
3. Usa el comando 'man' para consultar el manual si tienes dudas
4. Practica en un directorio de pruebas para evitar daños
5. Utiliza el comando 'clear' para mantener la terminal organizada
## CONSEJOS DE SEGURIDAD:
- Nunca ejecutes comandos como root sin entender qué hacen
- Ten cuidado con los comodines (* y ?) en comandos de eliminación
- Verifica siempre la ruta actual antes de ejecutar comandos destructivos
- Usa opciones interactivas (-i) cuando sea posible
- Mantén copias de seguridad de archivos importantes
## PROGRESIÓN RECOMENDADA:
1. Comienza con comandos de navegación básica
2. Practica la creación y eliminación de archivos
3. Avanza hacia la manipulación de archivos
4. Experimenta con permisos y procesos
5. Finaliza con búsquedas y redirecciones
## SECCIÓN 6: Búsqueda y Filtrado (find, grep)
51. Busca todos los archivos .txt en tu directorio personal
52. Encuentra archivos modificados en las últimas 24 horas
53. Busca archivos mayores de 1MB
54. Localiza todos los archivos que contengan la palabra "linux"
55. Encuentra archivos con permisos 644
56. Busca archivos vacíos en el directorio actual
57. Localiza archivos .jpg en todas las subcarpetas
58. Encuentra archivos que empiecen por "temp"
59. Busca archivos modificados en la última hora
60. Localiza archivos que terminen en .log
## SECCIÓN 7: Manipulación de Permisos (chmod)
61. Cambia los permisos de "script.sh" a 755
62. Da permisos de ejecución a un archivo
63. Quita permisos de escritura a "datos.txt"
64. Establece permisos solo lectura para todos
65. Da permisos totales al propietario únicamente
66. Cambia permisos recursivamente en una carpeta
67. Establece permisos 644 a todos los .txt
68. Quita todos los permisos a "temporal.tmp"
69. Da permisos de escritura al grupo
70. Establece permisos 777 a un script
## SECCIÓN 8: Redirección y Concatenación
71. Redirige la salida de ls a "archivos.txt"
72. Concatena dos archivos en uno nuevo
73. Añade la fecha actual al final de "log.txt"
74. Redirige los errores a "errores.log"
75. Crea un archivo con el contenido del directorio
76. Añade una línea al final de un archivo
77. Combina tres archivos en uno
78. Redirige la salida de ps a un archivo
79. Crea un archivo con el espacio en disco
80. Añade el resultado de who a "usuarios.txt"
## SECCIÓN 9: Gestión de Procesos (ps, top, kill)
81. Lista todos los procesos en formato detallado
82. Encuentra el PID de un proceso específico
83. Mata un proceso usando su PID
84. Muestra procesos ordenados por uso de CPU
85. Lista procesos de un usuario específico
86. Termina todos los procesos de un programa
87. Muestra los 5 procesos que usan más memoria
88. Encuentra procesos zombies
89. Mata un proceso usando pkill
90. Lista procesos en formato árbol
## SECCIÓN 10: Utilidades del Sistema
91. Muestra la fecha y hora actual
92. Visualiza el calendario del mes
93. Muestra el espacio libre en disco
94. Verifica la memoria disponible
95. Muestra información del sistema operativo
96. Verifica el tiempo de actividad del sistema
97. Muestra las variables de entorno
98. Verifica la carga del sistema
99. Muestra la tabla de particiones
100. Verifica la configuración de red
## SECCIÓN 11: Ejercicios de Práctica Combinados
101. Crea una carpeta, entra en ella y lista su contenido
102. Busca archivos y redirige la salida a un nuevo archivo
103. Cambia permisos y mueve archivos a una nueva ubicación
104. Crea una estructura de directorios y archivos
105. Busca y elimina archivos antiguos
106. Monitoriza procesos y guarda la información
107. Crea copias de seguridad de archivos importantes
108. Organiza archivos por tipo en diferentes carpetas
109. Encuentra y cuenta archivos por extensión
110. Crea un script simple de backup
## SECCIÓN 12: Ejercicios de Terminal Avanzados
111. Usa el historial de comandos para repetir acciones
112. Combina múltiples comandos con pipes
113. Utiliza comodines para operaciones masivas
114. Trabaja con variables de entorno
115. Crea alias para comandos frecuentes
116. Usa la completación de comandos
117. Navega eficientemente entre directorios
118. Manipula la salida de comandos
119. Gestiona trabajos en segundo plano
120. Utiliza control de trabajos
## SECCIÓN 13: Ejercicios de Manejo de Texto
121. Cuenta líneas en un archivo
122. Busca patrones en archivos
123. Ordena el contenido de un archivo
124. Elimina líneas duplicadas
125. Muestra las primeras/últimas líneas
126. Filtra contenido específico
127. Sustituye texto en archivos
128. Compara dos archivos
129. Cuenta palabras en un archivo
130. Extrae columnas específicas
## CONSEJOS ADICIONALES:
1. Practica estos ejercicios en orden secuencial
2. Documenta los comandos que te resulten más útiles
3. Crea situaciones reales para practicar
4. Experimenta con diferentes opciones de cada comando
5. Combina comandos para crear soluciones más complejas
## NOTAS DE SEGURIDAD:
- Mantén respaldos de archivos importantes
- Verifica siempre antes de ejecutar comandos destructivos
- Usa opciones -i (interactivo) cuando sea posible
- Ten cuidado con los permisos de archivos
- Documenta los cambios importantes que realices
## SECCIÓN 14: Manipulación de Archivos Avanzada
131. Crea una estructura de directorios anidados y navega entre ellos
132. Busca y reemplaza texto en múltiples archivos
133. Crea archivos con contenido específico usando echo
134. Combina y ordena el contenido de varios archivos
135. Encuentra archivos duplicados en el sistema
136. Crea una copia de seguridad con fecha en el nombre
137. Renombra múltiples archivos en secuencia
138. Organiza archivos por fecha de modificación
139. Comprime una carpeta y su contenido
140. Extrae información específica de archivos log
## SECCIÓN 15: Gestión de Permisos Avanzada
141. Establece permisos recursivos manteniendo la estructura
142. Cambia el propietario de múltiples archivos
143. Configura permisos especiales (SUID, SGID)
144. Establece permisos por defecto con umask
145. Gestiona ACLs en archivos importantes
146. Configura permisos para un proyecto compartido
147. Verifica y corrige permisos inconsistentes
148. Implementa permisos para un servidor web
149. Configura permisos para scripts ejecutables
150. Gestiona permisos de grupos de trabajo
## SECCIÓN 16: Monitorización del Sistema
151. Monitoriza el uso de CPU en tiempo real
152. Verifica el consumo de memoria por proceso
153. Analiza el espacio en disco por carpeta
154. Monitoriza la red y sus conexiones
155. Verifica los logs del sistema
156. Controla los procesos en segundo plano
157. Analiza el rendimiento del sistema
158. Monitoriza usuarios conectados
159. Verifica servicios en ejecución
160. Analiza el uso de swap
## SECCIÓN 17: Gestión de Archivos de Texto
161. Filtra líneas específicas de un archivo log
162. Cuenta ocurrencias de palabras en textos
163. Extrae campos específicos de un CSV
164. Ordena y elimina duplicados en archivos
165. Combina archivos por columnas
166. Procesa archivos de configuración
167. Extrae direcciones IP de logs
168. Analiza patrones en archivos de texto
169. Convierte formatos de texto
170. Crea reportes personalizados
## SECCIÓN 18: Automatización y Scripts
171. Crea un script para backup automático
172. Automatiza la limpieza de archivos temporales
173. Programa tareas con cron
174. Crea un script de monitorización
175. Automatiza la organización de archivos
176. Crea alertas del sistema
177. Programa copias de seguridad
178. Automatiza actualizaciones
179. Crea scripts de mantenimiento
180. Implementa rotación de logs
## SECCIÓN 19: Networking Básico
181. Verifica la configuración de red
182. Prueba conectividad con ping
183. Analiza rutas de red
184. Verifica puertos abiertos
185. Monitoriza tráfico de red
186. Configura interfaces de red
187. Verifica resolución DNS
188. Analiza conexiones activas
189. Configura firewall básico
190. Gestiona tablas de routing
## SECCIÓN 20: Gestión de Usuarios
191. Crea nuevos usuarios
192. Gestiona grupos de usuarios
193. Configura permisos de usuario
194. Establece cuotas de disco
195. Gestiona contraseñas
196. Configura entornos de usuario
197. Gestiona accesos SSH
198. Configura sudo
199. Audita acciones de usuarios
200. Implementa políticas de seguridad
## SECCIÓN 21: Ejercicios de Integración
201. Implementa un sistema de logs centralizado
202. Crea un script de backup completo
203. Configura un entorno de desarrollo
204. Implementa monitoring básico
205. Crea una estructura de proyecto
206. Configura un servidor web básico
207. Implementa control de versiones
208. Crea un sistema de deployment
209. Configura automatización básica
210. Implementa seguridad básica
## SECCIÓN 22: Desafíos Prácticos
211. Recupera archivos eliminados
212. Soluciona problemas de permisos
213. Optimiza rendimiento del sistema
214. Implementa logging avanzado
215. Configura servicios del sistema
216. Gestiona recursos del sistema
217. Implementa backup y recuperación
218. Configura seguridad básica
219. Gestiona almacenamiento
220. Implementa monitorización
## RECOMENDACIONES FINALES:
1. Practica regularmente estos ejercicios
2. Documenta tus soluciones
3. Crea variaciones de los ejercicios
4. Combina diferentes comandos
5. Establece objetivos de aprendizaje
## MEJORES PRÁCTICAS:
- Mantén copias de seguridad
- Verifica antes de ejecutar
- Documenta los cambios
- Usa entornos de prueba
- Aprende de los errores
## RECURSOS ADICIONALES:
- Consulta las páginas del manual
- Utiliza recursos online
- Participa en comunidades
- Lee documentación oficial
- Practica en máquinas virtuales
-- Kali-Linux en VirtualBox
1.- Descargar VirtualBox e instalarlo en Ubuntu
https://www.youtube.com/watch?v=iCIYKvIOX5Q
2.- kali.org > get kali > Virtual Machines > VirtualBox
default credentials: "kali/kali"
3.- Ejecutar la máquina virtual
Abrir terminal
Hacer un "sudo su" e indicar el password (u/p:kali/kali)
4.- Conectarse a las máquinas virtuales de OvertheWire con ssh:
ssh bandit0@bandit.labs.overthewire.org -p 2220
El password para nivel 0 es bandit0
Seguir las indicaciones en dicho nivel 0
5.- Cada vez que encontremos la contraseña del nivel:
exit para salir de ssh
volvemos a conectar por ssh cambiando bandit0@ por bandit1@, bandit2@, bandit3@...
El password para acceder al nivel bandit1 ahora será:
ZjLjTmM6FvvyRnrb2rfNWOZOTa6ip5If
Cambiaremos el número de bandit0 a bandit1 y accederemos con esa contraseña:
ssh bandit1@bandit.labs.overthewire.org -p 2220
Ejemplo de conexión con ssh a una máquina remota:
ssh bandit0@bandit.labs.overthewire.org -p 2220
[comando] [usuario] @ [host] [-p puerto]
Ejemplo de desconexión de la máquina remota:
exit
Listado comandos LINUX para ficheros y directorios: https://www.investigacion.frc.utn.edu.ar/labsis/publicaciones/apunte_linux/mmad.html
LINUX - Chuleta resumen comandos con ejemplos (CTRL + para agrandar las imágenes)
LINUX - Chuleta resumen principales comandos sin ejemplos
traceroute google.c