Proyecto

General

Perfil

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`.