Guía de Comandos Esenciales y Paquetes Útiles para Ubuntu » Historial » Versión 1
Anibal Pendas Amador, 02/08/2025 04:17
1 | 1 | Anibal Pendas Amador | # Guía de Comandos Esenciales y Paquetes Útiles para Ubuntu |
---|---|---|---|
2 | |||
3 | Esta guía proporciona una lista de comandos esenciales para administrar un sistema Ubuntu en Windows Subsystem for Linux (WSL) y una selección de paquetes útiles para tareas comunes, desarrollo y productividad. Es un complemento ideal para configuraciones como WSL con Nginx y Certbot. |
||
4 | |||
5 | ## Requisitos Previos |
||
6 | - Ubuntu instalado en WSL (por ejemplo, Ubuntu 20.04 LTS o 22.04 LTS). |
||
7 | - Acceso a la terminal de Ubuntu. |
||
8 | - Conexión a Internet para instalar paquetes. |
||
9 | - Familiaridad básica con la terminal. |
||
10 | |||
11 | ## Sección 1: Comandos Esenciales de Ubuntu |
||
12 | Los siguientes comandos son fundamentales para administrar y navegar en Ubuntu. Se dividen en categorías para facilitar su uso. |
||
13 | |||
14 | ### Gestión de Paquetes |
||
15 | - **Actualizar la lista de paquetes**: |
||
16 | ```bash |
||
17 | sudo apt update |
||
18 | ``` |
||
19 | Actualiza el índice de paquetes disponibles. |
||
20 | |||
21 | - **Actualizar paquetes instalados**: |
||
22 | ```bash |
||
23 | sudo apt upgrade -y |
||
24 | ``` |
||
25 | Instala las últimas versiones de los paquetes instalados. |
||
26 | |||
27 | - **Instalar un paquete**: |
||
28 | ```bash |
||
29 | sudo apt install <nombre_paquete> -y |
||
30 | ``` |
||
31 | Ejemplo: `sudo apt install nginx -y`. |
||
32 | |||
33 | - **Eliminar un paquete**: |
||
34 | ```bash |
||
35 | sudo apt remove <nombre_paquete> -y |
||
36 | ``` |
||
37 | Elimina un paquete, pero conserva los archivos de configuración. |
||
38 | |||
39 | - **Eliminar un paquete y sus configuraciones**: |
||
40 | ```bash |
||
41 | sudo apt remove --purge <nombre_paquete> -y |
||
42 | ``` |
||
43 | |||
44 | - **Limpiar paquetes no necesarios**: |
||
45 | ```bash |
||
46 | sudo apt autoremove -y |
||
47 | ``` |
||
48 | Elimina dependencias obsoletas. |
||
49 | |||
50 | - **Buscar un paquete**: |
||
51 | ```bash |
||
52 | apt search <término> |
||
53 | ``` |
||
54 | Busca paquetes en los repositorios. |
||
55 | |||
56 | ### Gestión de Archivos y Directorios |
||
57 | - **Listar archivos y directorios**: |
||
58 | ```bash |
||
59 | ls |
||
60 | ``` |
||
61 | Opciones útiles: `ls -l` (detallado), `ls -a` (incluye ocultos). |
||
62 | |||
63 | - **Cambiar de directorio**: |
||
64 | ```bash |
||
65 | cd <ruta_directorio> |
||
66 | ``` |
||
67 | Ejemplo: `cd /var/www/html`. |
||
68 | |||
69 | - **Crear un directorio**: |
||
70 | ```bash |
||
71 | mkdir <nombre_directorio> |
||
72 | ``` |
||
73 | |||
74 | - **Crear un archivo**: |
||
75 | ```bash |
||
76 | touch <nombre_archivo> |
||
77 | ``` |
||
78 | |||
79 | - **Copiar archivos o directorios**: |
||
80 | ```bash |
||
81 | cp <origen> <destino> |
||
82 | ``` |
||
83 | Ejemplo: `cp /var/www/html/index.html /var/www/html/index.html.bak`. |
||
84 | |||
85 | - **Mover o renombrar archivos**: |
||
86 | ```bash |
||
87 | mv <origen> <destino> |
||
88 | ``` |
||
89 | |||
90 | - **Eliminar archivos o directorios**: |
||
91 | ```bash |
||
92 | rm <archivo> |
||
93 | rm -r <directorio> |
||
94 | ``` |
||
95 | Usa `-f` para forzar eliminación sin confirmación (con cuidado). |
||
96 | |||
97 | - **Ver contenido de un archivo**: |
||
98 | ```bash |
||
99 | cat <archivo> |
||
100 | ``` |
||
101 | Otras opciones: `less <archivo>` (navegación), `more <archivo>` (paginado). |
||
102 | |||
103 | ### Gestión de Permisos |
||
104 | - **Cambiar permisos**: |
||
105 | ```bash |
||
106 | chmod <permisos> <archivo_o_directorio> |
||
107 | ``` |
||
108 | Ejemplo: `chmod 755 /var/www/html`. |
||
109 | |||
110 | - **Cambiar propietario**: |
||
111 | ```bash |
||
112 | chown <usuario>:<grupo> <archivo_o_directorio> |
||
113 | ``` |
||
114 | Ejemplo: `chown www-data:www-data /var/www/html`. |
||
115 | |||
116 | ### Gestión de Procesos |
||
117 | - **Ver procesos activos**: |
||
118 | ```bash |
||
119 | ps aux |
||
120 | ``` |
||
121 | |||
122 | - **Monitorear procesos en tiempo real**: |
||
123 | ```bash |
||
124 | top |
||
125 | ``` |
||
126 | Alternativa: `htop` (requiere instalación). |
||
127 | |||
128 | - **Terminar un proceso**: |
||
129 | ```bash |
||
130 | kill <PID> |
||
131 | ``` |
||
132 | Usa `kill -9 <PID>` para forzar terminación. |
||
133 | |||
134 | ### Gestión de Servicios |
||
135 | - **Iniciar un servicio**: |
||
136 | ```bash |
||
137 | sudo systemctl start <nombre_servicio> |
||
138 | ``` |
||
139 | Ejemplo: `sudo systemctl start nginx`. |
||
140 | |||
141 | - **Detener un servicio**: |
||
142 | ```bash |
||
143 | sudo systemctl stop <nombre_servicio> |
||
144 | ``` |
||
145 | |||
146 | - **Habilitar un servicio al inicio**: |
||
147 | ```bash |
||
148 | sudo systemctl enable <nombre_servicio> |
||
149 | ``` |
||
150 | |||
151 | - **Verificar estado de un servicio**: |
||
152 | ```bash |
||
153 | sudo systemctl status <nombre_servicio> |
||
154 | ``` |
||
155 | |||
156 | ### Gestión de Red |
||
157 | - **Verificar puertos abiertos**: |
||
158 | ```bash |
||
159 | sudo netstat -tuln |
||
160 | ``` |
||
161 | |||
162 | - **Comprobar conectividad**: |
||
163 | ```bash |
||
164 | ping <dominio_o_ip> |
||
165 | ``` |
||
166 | Ejemplo: `ping google.com`. |
||
167 | |||
168 | - **Ver configuración de red**: |
||
169 | ```bash |
||
170 | ip addr |
||
171 | ``` |
||
172 | |||
173 | ### Gestión de Usuarios |
||
174 | - **Crear un usuario**: |
||
175 | ```bash |
||
176 | sudo adduser <nombre_usuario> |
||
177 | ``` |
||
178 | |||
179 | - **Cambiar contraseña**: |
||
180 | ```bash |
||
181 | sudo passwd <nombre_usuario> |
||
182 | ``` |
||
183 | |||
184 | - **Agregar usuario a un grupo**: |
||
185 | ```bash |
||
186 | sudo usermod -aG <grupo> <nombre_usuario> |
||
187 | ``` |
||
188 | Ejemplo: `sudo usermod -aG sudo <nombre_usuario>`. |
||
189 | |||
190 | ### Otros Comandos Útiles |
||
191 | - **Ver uso de disco**: |
||
192 | ```bash |
||
193 | df -h |
||
194 | ``` |
||
195 | |||
196 | - **Ver tamaño de directorios**: |
||
197 | ```bash |
||
198 | du -sh <directorio> |
||
199 | ``` |
||
200 | |||
201 | - **Buscar archivos**: |
||
202 | ```bash |
||
203 | find / -name "<nombre_archivo>" |
||
204 | ``` |
||
205 | |||
206 | - **Comprimir/descomprimir archivos**: |
||
207 | ```bash |
||
208 | tar -cvf archivo.tar <directorio> |
||
209 | tar -xvf archivo.tar |
||
210 | ``` |
||
211 | |||
212 | ## Sección 2: Paquetes Útiles para Ubuntu |
||
213 | A continuación, se listan paquetes recomendados para mejorar la funcionalidad de Ubuntu en WSL, junto con su propósito y comando de instalación. |
||
214 | |||
215 | ### Herramientas de Administración del Sistema |
||
216 | - **htop**: Monitor de procesos interactivo. |
||
217 | ```bash |
||
218 | sudo apt install htop -y |
||
219 | ``` |
||
220 | |||
221 | - **tmux**: Multiplexor de terminal para sesiones persistentes. |
||
222 | ```bash |
||
223 | sudo apt install tmux -y |
||
224 | ``` |
||
225 | |||
226 | - **curl**: Herramienta para transferir datos desde/hacia servidores. |
||
227 | ```bash |
||
228 | sudo apt install curl -y |
||
229 | ``` |
||
230 | |||
231 | - **wget**: Descarga archivos desde la web. |
||
232 | ```bash |
||
233 | sudo apt install wget -y |
||
234 | ``` |
||
235 | |||
236 | ### Herramientas de Desarrollo |
||
237 | - **git**: Sistema de control de versiones. |
||
238 | ```bash |
||
239 | sudo apt install git -y |
||
240 | ``` |
||
241 | Configura Git: |
||
242 | ```bash |
||
243 | git config --global user.name "Tu Nombre" |
||
244 | git config --global user.email "tu.email@ejemplo.com" |
||
245 | ``` |
||
246 | |||
247 | - **build-essential**: Paquete con herramientas de compilación (gcc, g++, make). |
||
248 | ```bash |
||
249 | sudo apt install build-essential -y |
||
250 | ``` |
||
251 | |||
252 | - **python3**: Lenguaje de programación Python (versión 3). |
||
253 | ```bash |
||
254 | sudo apt install python3 python3-pip -y |
||
255 | ``` |
||
256 | |||
257 | - **nodejs y npm**: Entorno para JavaScript y gestor de paquetes. |
||
258 | ```bash |
||
259 | sudo apt install nodejs npm -y |
||
260 | ``` |
||
261 | |||
262 | ### Herramientas de Red y Seguridad |
||
263 | - **nmap**: Escáner de puertos y redes. |
||
264 | ```bash |
||
265 | sudo apt install nmap -y |
||
266 | ``` |
||
267 | |||
268 | - **ufw**: Cortafuegos simple para gestionar reglas de red. |
||
269 | ```bash |
||
270 | sudo apt install ufw -y |
||
271 | ``` |
||
272 | Habilita y configura: |
||
273 | ```bash |
||
274 | sudo ufw allow 80 |
||
275 | sudo ufw allow 443 |
||
276 | sudo ufw enable |
||
277 | ``` |
||
278 | |||
279 | - **fail2ban**: Protección contra ataques de fuerza bruta. |
||
280 | ```bash |
||
281 | sudo apt install fail2ban -y |
||
282 | ``` |
||
283 | |||
284 | ### Herramientas de Productividad |
||
285 | - **vim** o **nano**: Editores de texto en terminal. |
||
286 | ```bash |
||
287 | sudo apt install vim -y |
||
288 | sudo apt install nano -y |
||
289 | ``` |
||
290 | |||
291 | - **jq**: Procesador de JSON para scripts. |
||
292 | ```bash |
||
293 | sudo apt install jq -y |
||
294 | ``` |
||
295 | |||
296 | - **tree**: Muestra la estructura de directorios en forma de árbol. |
||
297 | ```bash |
||
298 | sudo apt install tree -y |
||
299 | ``` |
||
300 | |||
301 | ### Herramientas para Nginx y Certbot |
||
302 | - **nginx**: Servidor web ligero (ya incluido en la guía anterior). |
||
303 | ```bash |
||
304 | sudo apt install nginx -y |
||
305 | ``` |
||
306 | |||
307 | - **certbot**: Herramienta para obtener certificados SSL (ya incluido en la guía anterior). |
||
308 | ```bash |
||
309 | sudo apt install certbot python3-certbot-nginx -y |
||
310 | ``` |
||
311 | |||
312 | ## Sección 3: Consejos para WSL |
||
313 | - **Acceder a archivos de WSL desde Windows**: |
||
314 | Usa `\\wsl$\Ubuntu-22.04` en el Explorador de Archivos de Windows. |
||
315 | |||
316 | - **Acceder a archivos de Windows desde WSL**: |
||
317 | Los discos de Windows están montados en `/mnt/c`, `/mnt/d`, etc. |
||
318 | |||
319 | - **Respaldar la distribución**: |
||
320 | Exporta la distribución para respaldo: |
||
321 | ```powershell |
||
322 | wsl --export Ubuntu-22.04 C:\WSL\Backups\Ubuntu-22.04-backup-$(date +%Y%m%d).tar |
||
323 | ``` |
||
324 | |||
325 | - **Clonar la distribución**: |
||
326 | Importa un respaldo como una nueva distribución: |
||
327 | ```powershell |
||
328 | wsl --import Ubuntu-22.04-Clone C:\WSL\Ubuntu-22.04-Clone C:\WSL\Backups\Ubuntu-22.04-backup-<fecha>.tar |
||
329 | ``` |
||
330 | |||
331 | - **Actualizar WSL**: |
||
332 | En PowerShell: |
||
333 | ```powershell |
||
334 | wsl --update |
||
335 | ``` |
||
336 | |||
337 | ## Sección 4: Ejemplo de Script Útil |
||
338 | Este script instala todos los paquetes recomendados de una vez: |
||
339 | ```bash |
||
340 | #!/bin/bash |
||
341 | sudo apt update |
||
342 | sudo apt install -y htop tmux curl wget git build-essential python3 python3-pip nodejs npm nmap ufw fail2ban vim nano jq tree |
||
343 | echo "Paquetes instalados correctamente." |
||
344 | ``` |
||
345 | Guarda el script como `install_tools.sh`, hazlo ejecutable y ejecútalo: |
||
346 | ```bash |
||
347 | chmod +x install_tools.sh |
||
348 | ./install_tools.sh |
||
349 | ``` |
||
350 | |||
351 | ## Solución de Problemas |
||
352 | - **Comando no encontrado**: |
||
353 | Asegúrate de que el paquete esté instalado: `sudo apt install <paquete>`. |
||
354 | - **Permisos denegados**: |
||
355 | Usa `sudo` para comandos que requieren permisos de administrador. |
||
356 | - **Problemas de red en WSL**: |
||
357 | Reinicia WSL en PowerShell: |
||
358 | ```powershell |
||
359 | wsl --shutdown |
||
360 | ``` |
||
361 | - **Paquetes no encontrados**: |
||
362 | Asegúrate de que los repositorios estén actualizados: `sudo apt update`. |