Las ventajas de un servidor dedicado con el precio de un hosting compartido.
Hosting es el Hospedaje web que hace que su sitio sea visible en la web. Ofrecemos planes rápidos y confiables para cada necesidad, desde una Web básica hasta un sitio de gran potencia.
Las ventajas de un servidor dedicado con el precio de un hosting compartido.
Consiga el rendimiento de un servidor dedicado con la facilidad de un hosting compartido.
Amplié sus Recursos de disco duro, memoria, CPU según tus necesidades en minutos.
Disponga de toda la potencia, privacidad y seguridad que te otorgan nuestros servidores VPS.
Para aquellas empresas que necesitan un servidor físico para sus aplicaciones y sistemas.
Alta disponibilidad, Hardware de vanguardia, Fuentes de alimentación redundantes.
A su disposición sistemas operativos de gran alcance, como Linux o Windows.
Rendimiento de alto nivel gracias al uso de nuestros potentes procesadores Intel Xeon.
Ventas: ventas@hostingplus.com.es
Publicado en:
Tal vez hayas oído de Ubuntu, Fedora, Debian, o incluso te encuentres en la terminal de un servidor remoto. En todas esas situaciones, dominar los comandos esenciales de Linux te abrirá la puerta a acciones sumamente útiles. Luego, al sentirte más confiado, podrás adentrarte en funciones más avanzadas que te harán ver como un verdadero experto en el manejo de tu sisitema.
Hoy veremos la forma de navegar por tu directorio, consultar archivos y carpetas, crear documentos o instalarlos, y muchas otras cositas que constituyen el básico de Linux. Luego, caminaremos hacia comandos avanzados que involucran ejecución de procesos, redirecciones de entrada y salida, permisos, y exploraremos también algunas utilidades que pueden ahorrarte muchísimo tiempo en tareas que exigen precisión y velocidad.
Generalmente se lo asocia con tareas para personas que les gusta programar, pero en realidad es un componente indispensable de la mayoría de las distribuciones. Con tan solo un par de caracteres, puedes realizar cosas que en interfaces gráficas llevarían varios clics y menús. Por eso, en entornos profesionales, la terminal linux se convierte en un recurso fundamental.
Por si fuera poco, si algún día piensas crecer y convertirte en un auténtico experto, necesitarás un dominio sólido de los comandos Linux. Las interfaces gráficas son muy cómodas, pero la terminal te da la posibilidad de automatizar con scripts o de controlar tareas múltiples. Y ese es una habilidad que no querrás dejar pasar.
Comencemos con la navegación de directorios y la administración de archivos. Esto se asemeja a abrir carpetas y mover objetos en un entorno visual, pero aquí se realiza con línea de comándo. Conocerás cd
, ls
, cp
y otros códigos que te servirán en el día a día.
La base de la navegación por la terminal radica en cd
. Con este comando, puedes saltar de un directorio a otro. Por ejemplo, si te encuentras en tu carpeta personal y quieres ir a Documentos, teclearías:
cd Documentos
Y con eso ya estarás adentro. Si deseas retroceder un directorio, lo harías de la siguiente manera:
cd ..
El doble punto (..
) hace referencia al directorio padre, es decir, aquel un nivel más arriba. Para saber en qué lugar del sisitema te encuentras, puedes usar:
pwd
Ese comando te mostrará la ruta completa en la cual estás ubicado. De esa forma, nunca te perderás en las carpetas.
Para ver el contenido de un directorio, usa el comando ls
. Puedes escribir simplemente:
ls
Y obtendrás una lista de archivos y subdirectorios. Existe la posibilidad de agregarle -l
para ver más detalles, como permisos y fechas de modificación:
ls -l
Si prefieres una vista de archivos ocultos, agrégale -a
:
ls -a
Con estas combinaciones, tendrás toda la información que necesitas sobre los archivos alojados en tu carpeta.
En Linux, los directorios se crean con mkdir
. De modo que, si necesitas una carpeta llamada “proyectos,” basta con:
mkdir proyectos
Si más adelante notas que creaste una carpeta adicional por error, o simplemente deseas organizar tu sistema, el comando para borrar una carpeta es rmdir
, siempre y cuando esta carpeta esté vacía:
rmdir proyectos
Ahora, si pretendes eliminar un directorio que ya tiene archivos en su interior, tocará usar rm
con la opción -r
, que indica una eliminación recursiva:
rm -r proyectos
Ten muchísimo cuidado con ese comando porque eliminará todo su contenido sin mandarlo a la papelera. Cuando tecleas rm -r
, básicamente no hay marcha atrás.
Para copiar archivos, se emplea cp
. Por ejemplo, si tienes un archivo llamado “informe.txt” en tu directorio actual y quieres duplicarlo en otra ubicación, harías algo como:
cp informe.txt /ruta/del/destino
De esta manera, mantienes el original donde está y generas una copia adicional. Si quieres trasladar archivos en lugar de copiarlos, usa el comando mv
.
mv informe.txt /ruta/del/destino
Si no especificas un destino, por ejemplo:
mv informe.txt informe_viejo.txt
Renombrarás el archivo al nuevo nombre que indiqués. Es una forma práctica de evitar el uso de combinaciones innecesarias.
En la terminal, puedes ver el contenido de archivos de texto con cat
. Por ejemplo:
cat informe.txt
Te mostrará directamente el texto en la terminal. Si deseas explorar un archivo muy extenso y no quieres que te aparezca todo de una, podrías usar less
, que te deja navegar con las flechas y cerrar con la tecla “q”:
less informe.txt
Otro tema fundamental en Linux es la gestión de permisos y la asignación de propietarios, ya que define quién puede leer, escribir o ejecutar determinados archivos o directorios. Este aspecto puede parecer enredado al comienzo, pero con algo de práctica se te hará sencillo.
Los archivos en Linux cuentan con permisos básicos para el propietario, el grupo y los demás usuarios. Estas categorías se representan normalmente con letras como r
(lectura), w
(escritura), y x
(ejecución). Por ejemplo, si ves algo como rwxr-xr--
, significa que el propietario puede leer, escribir y ejecutar, el grupo solo puede leer y ejecutar, y todos los demás solo pueden leer.
Para verificar los permisos de un archivo, puedes usar:
ls -l archivo
Cuando quieras modificar los permisos, chmod
te permite hacerlo. Una forma clásica es la que usa números, como 755, 644, etc. Por ejemplo:
chmod 755 script.sh
Esto dará permiso de lectura, escritura y ejecución al propietario, y permiso de lectura y ejecución al grupo y a los demás. Para personalizarlo, podrías emplear algo como:
chmod u+x archivo
Con ello, le agregas permiso de ejecución al propietario (u = user).
Hay ocasiones en que necesitas transferir la propiedad de un archivo a otro usuario. Para ello, existe chown
. Por ejemplo, para asignar el archivo “documento.txt” al usuario “pedro,” teclearías:
sudo chown pedro documento.txt
sudo
se utiliza porque solo un usuario con privilegios elevados puede cambiar propietarios. De igual modo, si precisas cambiar tanto el propietario como el grupo, lo haces así:
sudo chown pedro:ventas reporte.pdf
Estas herramientas se vuelven esenciales cuando gestionas un servidor o cuando compartes recursos con más personas.
En la terminal de Linux, a veces necesitas encontrar un archivo que no recuerdas en qué carpeta dejaste, o identificar qué proceso está consumiendo más recursos de tu CPU. Para esas tareas, existen find
, grep
, ps
, top
y kill
. Dominarlos será un paso firme hacia tu desarrollo como usuario experimentado.
El comando find
te deja localizar archivos en tu disco o en un directorio específico. Un ejemplo sencillo sería:
find /home -name informe.txt
En ese caso, estarías buscando en la carpeta /home
un archivo llamado “informe.txt.” Con -iname
es posible realizar una búsqueda sin distinguir mayúsculas o minúsculas:
find /home -iname "informe.txt"
Y si necesitas filtrar por otros criterios, como fecha de modificación o tamaño, find
te ofrece opciones como -mtime
, -size
y más.
A veces tienes que buscar una palabra o frase en un archivo. Para eso se usa grep
. Por ejemplo, para localizar la palabra “error” dentro de un archivo “log.txt,” puedes hacerlo con:
grep "error" log.txt
Si deseas que se ignoren las mayúsculas y minúsculas, agrégale -i
:
grep -i "error" log.txt
Con -r
, puedes buscar recursivamente en todos los archivos dentro de una carpeta. De esa manera, no tendrás que revisar manualmente lineaa a linea cada documento.
Para obtener información sobre los procesos que corren en tu sisitema, ps
es el comando básico:
ps aux
Te mostrará una lista de procesos con detalles como usuario, PID (identificador de proceso), uso de CPU y memoria, etc. Pero si prefieres una vista actualizada en tiempo real, top
es la herramienta que necesitas. Al escribir:
top
Vas a ver, actualizándose al segundo, qué procesos están acaparando tu CPU, cuánta memoria se está usando, y otras estadísticas importantes. Para salir de top
, presiona “q.”
Cuando un proceso se queda congelado o te genera problemas, el comando kill
permite finalizarlo. Primero, revisa el PID con ps
o top
. Por ejemplo, si detectas que el PID es 1234, ejecutas:
kill 1234
En la mayoría de situaciones, eso basta. Pero si necesitas forzar la terminación del proceso, puedes utilizar la señal -9
:
kill -9 1234
Úsala con cuidado, porque mata el proceso de inmediato, sin darle tiempo de cerrar adecuadamente.
En Linux, muchas tareas administrativas exigen permisos especiales que solo un super usario, o root, puede realizar. Sin embargo, entrar siempre como root no es recomendable por cuestiones de seguridad. Ahí es donde entra el comando sudo
, que otorga privilegios temporales al usuario actual para ejecutar acciones específicas.
Si deseas instalar un programa, por ejemplo, utilizarías algo como:
sudo apt-get install nombre-de-paquete
En distribuciones basadas en Debian, apt-get
es un método muy popular para instalar software. Si estás en otras distros, como Fedora, se usa dnf
. El punto es que sudo
te pedirá la contraseña para asegurarse de que efectivamente tengas permiso de realizar la acción. Una vez autentificado, se ejecuta la orden con privilegios elevados.
Uno de los aspectos más llamativos de la terminal en Linux es la redirección de la salida de un comando a un archivo o a otro comando. Esto te permite encadenar acciones y crear flujos de trabajo muy potentes.
Si quieres almacenar la salida de un comando en un archivo, usarás el operador >
:
ls -l > contenido_directorio.txt
Todo el resultado de ls -l
quedará guardado en “contenido_directorio.txt.” Para agregar sin sobrescribir, usarías >>
:
ls -a >> contenido_directorio.txt
En cuanto a la entrada, el operador <
se encarga de suministrar contenido a un comando desde un archivo. Este recurso no se usa tanto como la redirección de salida, pero puede serte útil en contextos concretos.
Los pipes (|) permiten tomar la salida de un comando y usarla como entrada de otro. Esto te brinda la oportunidad de filtrar o procesar datos de manera muy flexible. Por ejemplo:
ls -l | grep "txt"
Te mostrará solo las líneas de la salida de ls -l
que contengan la palabra “txt.” Y si quisieras contar cuántas líneas resultan, podrías:
ls -l | grep "txt" | wc -l
De esa forma vas concatenando procesos hasta conseguir el resultado que deseas. Esta característica es una de las más destacadas del entorno de la terminal en Linux, pues te permite crear soluciones muy creativas con sencillos comandos enlazados.
No siempre tendrás acceso a un editor gráfico. Y aunque lo tuvieras, es útil saber editar archivos de configuración directamente en la terminal. Para ello, existen editores como nano
y vim
.
nano
es un editor simple, fácil de manejar. Al escribir:
nano archivo.txt
Podrás editar el texto, moverte con las flechas, y ver en la parte inferior algunos atajos básicos. Para guardar cambios, Ctrl + O, y para salir, Ctrl + X. Es ideal para principiantes o para aquellos que no quieran lidiar con la curva de aprendizaje de vim
.
vim
es un editor veterano, muy usado en la línea de comándo, con una filosofía basada en modos de inserción, comandos y navegación. Para abrir un archivo con vim
:
vim archivo.txt
Al principio, puede intimidar con sus diferentes modos (normal, inserción, visual), pero, una vez aprendes, te permite moverte con rapidez, editar y manipular texto con gran eficiencia. Sin embargo, si estás empezando, no te sientas mal en optar por nano
mientras te familiarizas con la terminal.
Para mantener tu sisitema al día, necesitarás instalar software y aplicar actualizaciones. Dependiendo de la distribución, el método varía, pero siempre gira en torno a un gestor de paquetes. En distribuciones basadas en Debian, encontrarás apt-get
o apt
. En Red Hat y Fedora, verás yum
o dnf
. En Arch Linux, pacman
. Pero las nociones centrales son similares.
En Debian/Ubuntu, para instalar un paquete, se usa:
sudo apt-get install paquete
Si tu distribución es un poco más moderna, puedes usar:
sudo apt install paquete
Con eso, el gestor localiza el paquete en los repositorios y lo descarga e instala, resolviendo dependencias automáticamente.
Para actualizar, primero sincronizas la lista de paquetes:
sudo apt-get update
Luego actualizas todo:
sudo apt-get upgrade
También puedes combinar estos pasos, pero hacerlo en dos partes permite asegurarte de que todo vaya bien y de que tengas un control más fino sobre lo que se está instalando o actualizando.
Si gestionas un servidor o quieres acceder a equipos en la misma red, conocer algunos comandos de redes te será indispensable. Con ping
, ssh
, scp
y otros, puedes verificar conexiones, acceder a máquinas remotas y transferir archivos con sencillez.
ping
te ayuda a comprobar si un host está accesible. Por ejemplo:
ping google.com
Envía paquetes ICMP a la dirección especificada y te indica cuánto tardan en regresar. Para detenerlo, presiona Ctrl + C. De ese modo, sabes si hay buena conexión y cuál es la latencia.
El protocolo SSH (Secure Shell) es fundamental para acceder a otros equipos de manera cifrada. Para conectarte a un servidor remoto:
ssh usuario@direccion_ip
Te pedirá la contraseña de “usuario,” y tras autenticarte, podrás manejar el servidor remoto como si estuvieras sentado frente a él. Suele ser la forma preferida de administrar servidores en la nube, ya que evita la necesidad de interfaces gráficas.
scp
(secure copy) es parte de la suite de SSH y te permite transferir archivos entre tu máquina local y un servidor remoto. Por ejemplo, para enviar un archivo local “informe.txt” a tu carpeta personal en un servidor:
scp informe.txt usuario@direccion_ip:~
De igual modo, puedes traer archivos del servidor a tu equipo local:
scp usuario@direccion_ip:~/informe_remoto.txt .
Realizar copias de seguridad es una parte crucial en cualquier sisitema. En la terminal de Linux, tienes herramientas para comprimir y empaquetar archivos que facilitan tu vida. Además, eso reduce el tamaño de tus respaldos y te permite gestionar los archivos de manera más sencilla.
tar
es un empaquetador que combina archivos y carpetas en un único archivo tarball, el cual luego puede comprimirse con gzip. Por ejemplo, para empaquetar y comprimir una carpeta “mis_fotos” en un archivo “fotos.tar.gz,” ejecuta:
tar -czvf fotos.tar.gz mis_fotos
Las letras significan: -c
crea un archivo, -z
usa gzip para comprimir, -v
muestra el progreso, y -f
indica el nombre del archivo resultante. Para extraerlo:
tar -xzvf fotos.tar.gz
Así descomprimes y obtienes la carpeta original.
rsync
es un comando muy poderoso para realizar copias de seguridad y sincronizaciones entre carpetas. Por ejemplo, para copiar la carpeta “proyectos” a otra ubicación:
rsync -av proyectos /ruta/destino
La opción -a
preserva permisos y enlaces simbólicos, mientras que -v
muestra la actividad en pantalla. Si vuelves a ejecutar el mismo comando, solo actualizará los cambios, sin volver a copiar todo desde cero. Es genial para mantener respaldos incrementales.
Una ventaja enorme de Linux es la posibilidad de automatizar tareas con scripts, usualmente escritos en bash o algún otro shell. Al crear un archivo con extensión .sh
, por ejemplo “respaldo.sh,” y darle permisos de ejecución, puedes agrupar varios comandos que se ejecuten en secuencia o según tus indicaciones.
Dentro del script, podrías tener algo como:
#!/bin/bash
# Script sencillo de respaldo
tar -czvf respaldo_$(date +%Y%m%d).tar.gz /ruta/importante
Con chmod +x respaldo.sh
, lo conviertes en un ejecutable. Luego, cada vez que quieras generar un nuevo respaldo, tecleas:
./respaldo.sh
Así, en pocos pasos, has creado tu propia herramienta. Con un conocimiento más profundo de bash, podrás añadir condicionales, bucles, variables y todo lo que necesites para automatizar verdaderas maravillas.
Para quienes van más allá de lo básico, los comandos sed
y awk
son muy apreciados al momento de editar o procesar textos en bulk.
sed
te permite buscar y reemplazar texto dentro de un flujo sin necesidad de abrir un editor. Por ejemplo, si quieres reemplazar la palabra “hola” por “buenas” en un archivo “saludos.txt”:
sed 's/hola/buenas/g' saludos.txt
La “g” al final indica que la sustitución se aplique a todas las apariciones de la palabra en cada línea. Puedes redirigir la salida a un nuevo archivo, o utilizar la opción -i
para modificarlo directamente (pero asegúrate de hacer copia de seguridad si es algo sensible).
awk
resulta muy útil para examinar archivos de texto con datos organizados por columnas. Imagina que tienes un archivo CSV con nombres y edades. Podrías extraer la segunda columna (edades) así:
awk -F, '{ print $2 }' datos.csv
La opción -F,
indica que el separador de campos es una coma. Este comando imprimirá todas las edades, lo que facilita la extracción de datos sin necesidad de abrir una hoja de cálculo.
Si te gustaría que un script o un conjunto de comandos se ejecute automáticamente a una hora específica, cron
es tu amigo. cron
es el planificador de tareas en Linux y permite acciones periódicas sin tu intervención.
Para editar la tabla de cron, usas:
crontab -e
Ahí agregas una línea con la especificación de la fecha y hora, seguida del comando a ejecutar. Por ejemplo, para que un script se ejecute todos los días a las 3 de la mañana:
0 3 * * * /ruta/al/script.sh
Los cinco campos representan minuto, hora, día del mes, mes y día de la semana, respectivamente. Con cron
, puedes programar respaldos, limpiezas, envíos de correos y más.
Conforme avanzas en tu periplo por la terminal, quizás quieras ahondar en el monitoreo de recursos. Más allá de top
, existen otras utilidades como htop
(muy parecida a top
pero con interfaz más atractiva) y iotop
(centrada en el uso de disco). Estas herramientas te proporcionan datos relevantes en tiempo real. Incluso, algunos scripts personalizados basados en bash
pueden presentarte informes sobre el estado de tu CPU, memoria, disco y red, para que sepas si un servicio está saturando la máquina o si requieres optimizar algo.
De la misma manera, si te interesan aspectos como la temperatura de tu CPU o la carga que soportan tus discos, la terminal te ofrece comandos como sensors
(necesitas instalar el paquete correspondiente) o df -h
para ver el espacio libre en tus sistemas de archivos. Con cada herramienta que sumas a tu arsenal, te sientes menos intimidado por la terminal y más fascinado con las posibilidades que te brinda.
En la actualidad, muchos profesionales utilizan contenedores y entornos de virtualización para gestionar aplicaciones y servicios. Aunque estas prácticas son un poco más avanzadas, no podemos obviar que, en su mayoría, se administran desde la terminal. Si en algún momento decides dar el salto hacia el uso de contenedores con Docker o a la orquestación con Kubernetes, verás que un conocimiento sólido de los comandos Linux te facilitará enormemente el camino.
Además, para la virtualización clásica, existen hipervisores como KVM, VirtualBox o VMware, pero la interacción con ellos se puede combinar con scripts de la terminal que permitan automatizar la creación o eliminación de máquinas virtuales, copias instantáneas y otras funciones avanzadas.
El aspecto y funcionalidad de tu terminal pueden personalizarse de muchas formas. Por ejemplo, si empleas Bash, tienes un archivo .bashrc
en tu carpeta de usuario. Si usas Zsh, tendrás un .zshrc
. Estos archivos contienen variables de entorno, alias y configuraciones que hacen tu vida más sencilla.
Si te aburre escribir siempre lo mismo, como ls -l --color=auto
, puedes crear un alias en tu archivo de configuración. Basta con editar el archivo y agregar una línea como:
alias ll="ls -l --color=auto"
Guarda y cierra. La próxima vez que abras la terminal, con solo teclear ll
, obtendrás el mismo resultado.
En .bashrc
o .zshrc
, también puedes definir variables de entorno, como PATH
, que indica dónde buscar los comandos. Agregar rutas extra te permite ejecutar programas locales sin escribir la ruta completa. Y si tienes proyectos en lenguajes como Python o Node.js, quizá desees configurar variables específicas para que tu sistema sepa dónde localizar dependencias.
Aunque ya has visto un enorme conjunto de comandos, siempre es bueno conocer algunos “trucos” que pueden ahorrarte tiempo y dolores de cabeza.
Para reutilizar un comando largo que acabas de tipear, presiona la flecha hacia arriba para navegar por tu historial. Además, con Ctrl + R, puedes buscar en tu historial de comandos. Empieza a escribir algo que recuerdes del comando y verás cómo aparece. Una vez que lo encuentres, pulsa Enter para lanzarlo.
Por otra parte, si necesitas detener la ejecución de un comando que está tardando demasiado, Ctrl + C es tu vía de escape rápida. Y si un comando se está ejecutando, pero en segundo plano, puedes traerlo al primer plano con fg
.
Evita ejecutar sudo
a menos que sea necesario. Si vas a manipular archivos delicados o modificar configuraciones sistémicas, asegúrate de hacer respaldos. Recuerda que Linux asume que sabes lo que haces, y no siempre hay un aviso de confirmación.
También es buena práctica cambiar tus contraseñas con regularidad y tener un firewall activo si manejas un servidor público. Podrías usar herramientas como ufw
(para Ubuntu) y mantener tu sisitema siempre actualizado, porque los parches de seguridad a menudo corrigen vulnerabilidades críticas.
La mejor forma de aprender realmente los comandos Linux es practicando. No te quedes únicamente con la teoría. Crea archivos, muévelos, cámbiales los permisos, edita scripts, experimenta con sed
y awk
, filtra resultados con grep
y redirige salidas con >
.
Linux incluye otra multitud de utilidades que, combinadas con lo aprendido, dan lugar a auténticas maravillas en la línea de comándo. Hay herramientas para reproducir audio, manipular imágenes, convertir formatos de vídeo, y hasta para gestionar base de datos.
Asimismo, en tu camino, descubrirás que cada distribución cuenta con peculiaridades y que la comunidad de usuarios es muy activa. Si tienes dudas o experimentas problemas, puedes consultar foros o grupos de usuarios.
Por otra parte, si te orientas al desarrollo web, te darás cuenta de que utilizar la terminal es casi innegociable. Sea para instalar entornos de ejecución (Node.js, Python, PHP, etc.), sea para lanzar servidores locales, o para trabajar con repositorios de versiones como Git, todo se hace muy rápido por medio de comandos.
Si te animas a explorar la parte más avanzada, quizás te topes con shells alternativos como Fish, que ofrecen completados más intuitivos, o con frameworks que embellecen tu terminal con colores y plugins.