La línea de comandos es el corazón de la administración de servidores Linux. Tanto si eres principiante como si eres un administrador de sistemas experimentado, comprender los conceptos básicos de la administración por línea de comandos es crucial para gestionar tu servidor Ubuntu de forma eficiente. Este artículo ofrece una introducción en profundidad a la línea de comandos de Linux, que abarca comandos, herramientas y técnicas esenciales para gestionar archivos, directorios y el entorno del servidor.
Artículo anterior:
01. Introducción a Ubuntu Server – SysOSX: AI & Cloud
02. Cómo configurar tu primer servidor Ubuntu: guía para principiantes – SysOSX: AI & Cloud
¿Por qué aprender la línea de comandos?
La línea de comandos de Linux, a la que se accede a través de la terminal, es una herramienta potente para interactuar con el sistema operativo. A diferencia de las interfaces gráficas, la línea de comandos ofrece:
- Velocidad: Las tareas se pueden realizar más rápido con comandos que a través de interfaces gráficas.
- Flexibilidad: Automatiza procesos y realiza operaciones complejas mediante scripts.
- Control: Accede a funciones más profundas del sistema y soluciona problemas de forma eficaz.
Cómo acceder a la línea de comandos en Ubuntu Server
Las instalaciones de Ubuntu Server no incluyen una interfaz gráfica por defecto, por lo que todas las interacciones se realizan a través de la terminal. Estas son las formas habituales de acceder a la línea de comandos:
1. Acceso directo mediante la consola local
Después de iniciar sesión en tu servidor Ubuntu, se te presentará la interfaz de la terminal.
2. Acceso remoto mediante SSH
Usa Secure Shell (SSH) para acceder a tu servidor de forma remota:
ssh username@server_ip
Comandos esenciales de Linux para principiantes
1. Navegar por el sistema de archivos
Comprender la jerarquía del sistema de archivos de Linux es fundamental para gestionar archivos y directorios.
Ver el directorio actual: pwd
Muestra el directorio de trabajo actual:
pwd
Listar el contenido del directorio: ls
Lista los archivos y directorios de la ubicación actual:
ls
Opciones:
ls -l: Lista detallada con permisos, propiedad y tamaño.ls -a: Incluye archivos ocultos (archivos que empiezan por.).
Cambiar de directorio: cd
Cambia a otro directorio:
cd /path/to/directory
Ejemplos:
cd ..: Sube un nivel.cd ~: Cambia al directorio principal.
2. Gestionar archivos y directorios
Crear un directorio: mkdir
Crea un directorio nuevo:
mkdir directory_name
Ejemplo: crea una estructura de subdirectorios.
mkdir -p /home/user/documents/projects
Explicación:
- La opción
-pcrea los directorios padre si no existen (p. ej.,documentsyprojects).
Eliminar un directorio: rmdir
Elimina un directorio vacío:
rmdir directory_name
Ejemplo:
rmdir /home/user/old_directory
Copiar archivos: cp
Copia archivos o directorios:
cp source_file destination_file
Ejemplo: copia un archivo a un directorio nuevo.
cp /home/user/file.txt /home/user/backup/file.txt
Para copiar directorios enteros:
cp -r /home/user/documents /home/user/backup/documents
Mover o renombrar archivos: mv
Mueve o renombra archivos:
mv old_name new_name
Ejemplo: renombra un archivo.
mv file.txt renamed_file.txt
Mover archivos a otro directorio:
mv /home/user/file.txt /home/user/backup/
Eliminar archivos: rm
Elimina archivos o directorios:
rm file_name
Ejemplo: elimina un archivo.
rm /home/user/file.txt
Para eliminar directorios y su contenido:
rm -r /home/user/old_directory
Advertencia: Ten cuidado con rm para evitar eliminaciones accidentales.
3. Ver y editar archivos
Ver el contenido de un archivo: cat
Muestra el contenido de un archivo:
cat file_name
Ejemplo:
cat /etc/hostname
Ver el contenido de un archivo con paginación: less
Permite desplazarse por el contenido de un archivo:
less file_name
Ejemplo:
less /var/log/syslog
Crear o editar archivos: nano
Un editor de texto apto para principiantes:
nano file_name
Ejemplo: crea un archivo nuevo o edita uno existente.
nano /home/user/new_file.txt
Buscar texto en archivos: grep
Busca una cadena concreta en archivos:
grep "search_term" file_name
Ejemplo: encuentra mensajes de error en un archivo de registro.
grep "error" /var/log/syslog
4. Comandos de administración del sistema
Comprobar el uso del disco: df
Muestra el uso del espacio en disco:
df -h
Opciones:
-h: Formato legible para humanos.
Comprobar el uso de la memoria: free
Muestra el uso de la memoria:
free -h
Supervisar los procesos del sistema: top
Muestra los procesos en ejecución y el uso de recursos del sistema:
top
Alternativa:
htop: Un monitor de procesos más fácil de usar (instálalo consudo apt install htop).
Gestionar servicios: systemctl
Controla los servicios del sistema:
sudo systemctl status service_name
sudo systemctl start service_name
sudo systemctl stop service_name
sudo systemctl restart service_name
Apagar o reiniciar: shutdown
Apaga o reinicia el servidor:
sudo shutdown now # Immediate shutdown
sudo shutdown -r now # Immediate restart
5. Permisos y propiedad de archivos
Linux usa un modelo de permisos para controlar el acceso a archivos y directorios.
Ver los permisos de un archivo: ls -l
Muestra los permisos de los archivos en formato detallado:
ls -l
Cambiar los permisos de un archivo: chmod
Modifica los permisos de los archivos:
chmod 644 file_name
Cambiar la propiedad de un archivo: chown
Cambia la propiedad de los archivos:
sudo chown new_owner:new_group file_name
6. Buscar y encontrar archivos
Localizar archivos: locate
El comando locate no está instalado por defecto. Instálalo primero:
sudo apt update
sudo apt install mlocate
Actualiza la base de datos:
sudo updatedb
Busca archivos:
locate file_name
Encontrar archivos: find
Busca archivos según criterios:
find /path -name "file_name"
7. Comandos de red
Comprobar la conectividad de red: ping
Prueba la conectividad con un host:
ping google.com
Comprobar los puertos abiertos: ss
El comando netstat está obsoleto y no está instalado por defecto. Usa ss, una alternativa moderna:
ss -tuln
Explicación:
-t: Muestra las conexiones TCP.-u: Muestra las conexiones UDP.-l: Muestra los puertos en escucha.-n: Muestra direcciones y puertos numéricos.
Probar la conectividad remota: curl
Obtiene datos de una URL:
curl http://example.com
Consejos prácticos para la administración por línea de comandos
1. Usar el autocompletado con Tab
Pulsa Tab mientras escribes un comando o un nombre de archivo para autocompletar rutas o comandos.
2. Usar los comandos del historial
Accede a comandos ejecutados anteriormente:
history
Ejecuta un comando concreto del historial:
!number
3. Redirigir la salida
Guarda la salida de un comando en un archivo:
command > output_file
4. Encadenar comandos
Ejecuta varios comandos en secuencia:
command1 && command2
Flujo de trabajo de ejemplo: configurar un servidor web
Aquí tienes una guía paso a paso para configurar un servidor web con comandos básicos. Sigue estas instrucciones para configurar tu sitio web personalizado y asegurarte de que sustituya a la página predeterminada de Apache.
1. Actualizar el sistema
Mantener el sistema actualizado es esencial para la seguridad y la estabilidad. Ejecuta el siguiente comando para actualizar todos los paquetes:
sudo apt update && sudo apt upgrade -y
2. Instalar Apache
Instala el servidor web Apache:
sudo apt install apache2 -y
Una vez instalado, comprueba que Apache se está ejecutando:
sudo systemctl status apache2
Deberías ver un mensaje de estado como: Active: active (running).
3. Crear un directorio para tu sitio web
Crea un directorio para almacenar los archivos de tu sitio web. Para este ejemplo, crearemos un directorio llamado mywebsite:
sudo mkdir -p /var/www/mywebsite
4. Establecer permisos
Establece la propiedad y los permisos correctos para que Apache pueda acceder a los archivos del sitio web:
sudo chown -R www-data:www-data /var/www/mywebsite
sudo chmod -R 755 /var/www/mywebsite
5. Crear un archivo HTML de ejemplo
Añade un sencillo archivo index.html que sirva como página de inicio de tu sitio web:
sudo tee /var/www/mywebsite/index.html > /dev/null << EOF
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to My Website</h1>
</body>
</html>
EOF
Esto crea una página básica que dice: “Welcome to My Website”.
6. Configurar un host virtual
Para servir tu sitio web personalizado, crea un nuevo archivo de configuración de host virtual para Apache:
sudo nano /etc/apache2/sites-available/mywebsite.conf
Pega el siguiente contenido en el archivo:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /var/www/mywebsite
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
Guarda y sal del archivo pulsando Ctrl+O, y luego Ctrl+X.
7. Habilitar tu sitio web
Habilita la nueva configuración de host virtual:
sudo a2ensite mywebsite.conf
Deshabilita la configuración predeterminada del sitio de Apache para asegurarte de que se sirva tu sitio web:
sudo a2dissite 000-default.conf
Recarga Apache para aplicar los cambios:
sudo systemctl reload apache2
8. Probar la conectividad
Comprueba si tu sitio web funciona ejecutando:
curl http://localhost
Deberías ver el contenido HTML de tu archivo index.html personalizado:
<!DOCTYPE html>
<html>
<head>
<title>Welcome</title>
</head>
<body>
<h1>Welcome to My Website</h1>
</body>
</html>
También puedes abrir un navegador y navegar a http://<your-server-ip> para ver tu sitio web.
Solución de problemas
Si sigues viendo la página predeterminada de Apache o tienes problemas:
- Asegúrate de que tu sitio está habilitado
Comprueba que tu configuración está activa:
ls /etc/apache2/sites-enabled/
- Deberías ver
mywebsite.conf. Si no es así, actívalo con:
sudo a2ensite mywebsite.conf
- Comprueba los registros de Apache
Busca errores en los registros:
sudo tail -f /var/log/apache2/error.log
- Reinicia Apache
Si el problema persiste, reinicia Apache:
sudo systemctl restart apache2
Conclusión
Dominar la línea de comandos de Linux es esencial para administrar Ubuntu Server de forma eficaz. Al aprender y practicar estos comandos, ganarás confianza para gestionar tu entorno de servidor, solucionar problemas y realizar tareas administrativas de forma eficiente.
Próximos pasos: Gestionar usuarios y permisos
Una vez que te sientas cómodo con los conceptos básicos de la administración por línea de comandos, el siguiente paso fundamental en la gestión de servidores es comprender los usuarios, los grupos y los permisos. Gestionar adecuadamente las cuentas de usuario y los controles de acceso es esencial para mantener la seguridad y garantizar que solo las personas autorizadas puedan acceder a archivos y recursos sensibles de tu servidor o modificarlos.
En el próximo artículo, “Gestionar usuarios y permisos”, cubriremos:
- Cómo crear, modificar y eliminar cuentas de usuario.
- Gestionar grupos para un control de acceso eficiente.
- Comprender los permisos de archivos y directorios (lectura, escritura, ejecución).
- Usar herramientas avanzadas como
sudopara la escalada de privilegios. - Buenas prácticas para proteger las cuentas de usuario en Ubuntu Server.
¡Estate atento a ideas prácticas para mejorar tu seguridad y la gestión de accesos!
14 thoughts on “03.Mastering the Linux Command Line for Ubuntu Server”