Introducción
Linux es una familia de sistemas operativos libres y de código abierto basados en el núcleo Linux. Los sistemas operativos basados en Linux se conocen como distribuciones Linux . Algunos ejemplos son Debian, Ubuntu, Fedora, CentOS, Gentoo, Arch Linux y muchos otros.
El kernel de Linux ha estado en desarrollo activo desde 1991 y ha demostrado ser extremadamente versátil y adaptable. Se pueden encontrar computadoras que ejecutan Linux en una amplia variedad de contextos en todo el mundo, desde servidores web hasta teléfonos móviles. Hoy en día, el 90 % de la infraestructura en la nube y el 74 % de los teléfonos inteligentes del mundo funcionan con Linux.
Sin embargo, a los recién llegados a Linux les puede resultar algo difícil de usar, ya que los sistemas de archivos de Linux tienen una estructura diferente a la de Windows o macOS. Además, los sistemas operativos basados en Linux dependen en gran medida de la interfaz de línea de comandos, mientras que la mayoría de las computadoras personales utilizan interfaces gráficas.
Esta guía sirve como introducción a conceptos y habilidades importantes de la línea de comandos y prepara a los recién llegados para aprender más sobre Linux.
Prerrequisitos
Para seguir esta guía, necesitará acceder a un ordenador con sistema operativo Linux. Puede ser un servidor privado virtual al que se haya conectado por SSH o su equipo local. Tenga en cuenta que este tutorial se validó con un servidor Linux con Ubuntu 20.04, pero los ejemplos proporcionados deberían funcionar en cualquier ordenador con cualquier versión de Linux.
Si planea usar un servidor remoto para seguir esta guía, le recomendamos que primero complete nuestra guía de configuración inicial del servidor . Esto le permitirá configurar un entorno de servidor seguro, que incluye un usuario no root con sudo
privilegios y un firewall configurado con UFW, que puede usar para mejorar sus habilidades con Linux.
La terminal
Los términos “terminal”, “shell” e “interfaz de línea de comandos” a menudo se usan indistintamente, pero existen diferencias sutiles entre ellos:
- Una terminal es un entorno de entrada y salida que presenta una ventana de solo texto que ejecuta un shell.
- Un shell es un programa que expone el sistema operativo de la computadora a un usuario o programa. En sistemas Linux, el shell presentado en una terminal es un intérprete de línea de comandos.
- Una interfaz de línea de comandos es una interfaz de usuario (administrada por un programa intérprete de línea de comandos) que procesa comandos a un programa de computadora y genera los resultados.
Cuando alguien se refiere a uno de estos tres términos en el contexto de Linux, generalmente se refiere a un entorno de terminal donde puede ejecutar comandos y ver los resultados impresos en la terminal, como esto:

Para convertirse en un experto en Linux, es necesario familiarizarse con el uso de una terminal. Cualquier tarea administrativa, como la manipulación de archivos, la instalación de paquetes y la gestión de usuarios, se puede realizar a través de la terminal. La terminal es interactiva: se especifican los comandos a ejecutar y la terminal muestra los resultados. Para ejecutar cualquier comando, se escribe en el símbolo del sistema y se pulsa ENTER
.
Al acceder a un servidor en la nube, lo más frecuente es hacerlo a través de una terminal. Aunque las computadoras personales con Linux suelen incluir el entorno de escritorio gráfico habitual para la mayoría de los usuarios, suele ser más eficiente o práctico realizar ciertas tareas mediante comandos introducidos en la terminal.
El estándar de jerarquía del sistema de archivos
Casi todas las distribuciones de Linux cumplen con un estándar universal para la estructura de directorios del sistema de archivos, conocido como el Estándar de Jerarquía del Sistema de Archivos (FHS) . El FHS define un conjunto de directorios, cada uno con una función específica.
La barra diagonal ( /
) se utiliza para indicar el directorio raíz en la jerarquía del sistema de archivos definida por el FHS.
Cuando un usuario inicia sesión en el shell, se le redirige a su propio directorio de usuario, almacenado en [nombre del directorio] /home/
. Este se denomina directorio de inicio del usuario . El FHS define [ /home/
nombre del directorio] como el que contiene los directorios de inicio de los usuarios habituales.
El usuario root tiene su propio directorio de inicio, especificado por el FHS: /root/
. Tenga en cuenta que /
se denomina “directorio raíz” y que es diferente de root/
, que se almacena dentro de /
.
Debido a que FHS es el diseño del sistema de archivos predeterminado en las máquinas Linux, y cada directorio dentro del mismo está incluido para cumplir un propósito específico, se simplifica el proceso de organización de archivos según su función.
Navegación
Los sistemas de archivos de Linux se basan en un árbol de directorios. Esto significa que se pueden crear directorios (funcionalmente idénticos a las carpetas de otros sistemas operativos) dentro de otros directorios, y los archivos pueden existir en cualquier directorio.
Para ver en qué directorio se encuentra activo actualmente, puede ejecutar el pwd
comando que significa “imprimir directorio de trabajo”:
pwd
pwd
Imprime la ruta a tu directorio actual. El resultado será similar a esto:
Output/home/sammy
Este ejemplo de salida indica que el directorio activo actual es sammy
, que se encuentra dentro del home/
directorio raíz, /
. Como se mencionó anteriormente, dado que el sammy/
directorio se almacena dentro del home/
directorio, sammy/
representa el directorio de inicio del usuario sammy .
Para ver una lista de archivos y directorios que existen en su directorio de trabajo actual, ejecute el ls
comando:
ls
Esto devolverá una lista con los nombres de los archivos o directorios que se encuentran en su directorio de trabajo actual. Sin embargo, si sigue esta guía en una máquina nueva, es posible que este comando no devuelva ningún resultado.
Puedes crear uno o más directorios nuevos dentro de tu directorio de trabajo actual con el mkdir
comando “crear directorio”. Por ejemplo, para crear dos directorios nuevos llamados testdir1
y testdir2
, podrías ejecutar el siguiente comando:
mkdir testdir1 testdir2
Ahora, cuando ejecute el ls
comando, estos directorios aparecerán en la salida:
ls
Outputtestdir1
testdir2
Para navegar a uno de estos nuevos directorios, ejecute el cd
comando (que significa “cambiar directorio”) y especifique el nombre del directorio:
cd testdir1
Esto cambiará tu nuevo directorio de trabajo actual al directorio que especificaste. Puedes comprobarlo con pwd
:
pwd
Output/home/sammy/testdir1
Sin embargo, dado testdir1
que testdir2
ambos se encuentran en el directorio personal del usuario sammy , residen en ramas diferentes del árbol de directorios. El cd
comando busca directorios dentro de su directorio de trabajo actual, lo que significa que no puede cd
acceder directamente al testdir2
directorio creado previamente mientras testdir1
sea su directorio de trabajo:
cd testdir2
Outputbash: cd: testdir2: No such file or directory
Sin embargo, puede navegar a cualquier directorio existente independientemente de su directorio de trabajo actual si especifica la ruta completa del directorio al que desea navegar:
cd /home/sammy/testdir2
Nota: En Linux, una tilde ( ~
) es la abreviatura del directorio de inicio del usuario con el que se ha iniciado sesión. Sabiendo esto, podría escribir el comando anterior así y obtendría el mismo resultado:
cd ~/testdir2
Además, puedes especificar ..
que se cambie al directorio un nivel superior en tu ruta. Para volver a tu directorio original:
cd ..
Si alguna vez no sabe dónde se encuentra en el árbol de navegación, recuerde que siempre puede ejecutar el pwd
comando para encontrar su directorio actual. Muchos shells modernos (incluido Bash, el predeterminado para muchas distribuciones de Linux) también indican su directorio actual, como se muestra en los comandos de ejemplo de esta sección.
Manipulación de archivos
No se puede usar cd
para interactuar con archivos; cd
significa “cambiar de directorio” y solo permite navegar por directorios. Sin embargo, sí se puede crear, editar y ver el contenido de los archivos.
Una forma de crear un archivo es con el touch
comando. Para crear un nuevo archivo llamado file.txt
:
touch file.txt
Esto crea un archivo vacío con el nombre file.txt
en su directorio de trabajo actual. El contenido de este archivo está vacío.
Si decide cambiar el nombre file.txt
más adelante, puede hacerlo con el mv
comando:
mv file.txt newfile.txt
mv
Significa “mover” y permite mover un archivo o directorio. Al especificar el archivo original, file.txt
se puede “mover” a una nueva ubicación en el directorio de trabajo actual, renombrándolo.
También es posible copiar un archivo a una nueva ubicación con el cp
comando. Si queremos recuperarlo file.txt
pero conservarlo newfile.txt
, podemos hacer una copia de newfile.txt
`name` file.txt
así:
cp newfile.txt file.txt
Como habrás adivinado, cp
es la abreviatura de “copiar”. Al copiar newfile.txt
a un nuevo archivo llamado file.txt
, has replicado el archivo original en un nuevo archivo con un nombre diferente.
Sin embargo, los archivos no sirven de mucho si no contienen nada. Para editarlos, se necesita un editor de archivos.
Existen numerosas opciones de editores de archivos, todos creados por profesionales para uso diario. Entre estos editores se incluyen vim
, emacs
, nano
y pico
.
nano
Es una opción adecuada para principiantes: es relativamente fácil de usar y no te sobrecarga con opciones o comandos crípticos.
Para agregar texto a file.txt
con nano
, ejecute el siguiente comando:
nano file.txt
Esto abrirá un espacio donde podrás empezar a escribir para editar inmediatamente file.txt
. Agrega el texto que desees o copia el texto de este ejemplo: archivo.txt
Say it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.
Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.
Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.
It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.
Para guardar el texto escrito, pulse CTRL + X
, Y
y luego ENTER
. Esto le llevará de vuelta al shell con un file.txt
archivo recién guardado.
Ahora que file.txt
tiene algo de texto dentro, puedes verlo usando cat
o less
.
El cat
comando imprime el contenido de un archivo específico en la salida del sistema. Intente ejecutarlo cat
y pasar el file.txt
archivo que acaba de editar como argumento:
cat file.txt
Esto imprimirá todo el contenido file.txt
en la terminal. Si usó el texto del ejemplo anterior, este comando devolverá un resultado similar a este:
OutputSay it's only a paper moon
Sailing over a cardboard sea,
But it wouldn't be make believe
If you believed in me.
Yes it's only a canvas sky
Hanging over a muslin tree,
But it wouldn't be make believe
If you believed in me.
Without your love,
It's a honky-tonk parade.
Without your love,
It's a melody played in a penny arcade.
It's a Barnum and Bailey world,
Just as phony as it can be,
But it wouldn't be make believe
If you believed in me.
Ver cat
el contenido de un archivo puede resultar complicado y difícil de leer si es muy largo. Como alternativa, puede usar el less
comando que le permitirá paginar la salida.
Úselo less
para ver el contenido del file.txt
archivo, de la siguiente manera:
less file.txt
Esto también imprimirá el contenido de file.txt
, pero página por página, comenzando desde el principio del archivo. Puedes usar la barra espaciadora para avanzar una página o las flechas para subir y bajar una línea a la vez.
Presione q
para salir de less
.
Finalmente, para eliminar el file.txt
archivo, pase el nombre del archivo como argumento a rm
:
rm file.txt
Nota: Sin otras opciones, el rm
comando (que significa “eliminar”) no puede usarse para eliminar directorios. Sin embargo, incluye la -d
opción que permite eliminar directorios vacíos:
rm -d directory
También puedes eliminar directorios vacíos con el rmdir
comando:
rmdir directory
Si desea eliminar un directorio que no esté vacío, puede ejecutar rm
la -r
bandera. Esto eliminará el directorio especificado junto con su contenido, incluyendo archivos y subdirectorios:
rm -r directory
Sin embargo, debido a que eliminar contenido es una acción permanente, solorm
-r
debe ejecutar esta opción si está seguro de que desea eliminar el directorio especificado .
Una cultura de aprendizaje
Se necesita tiempo, dedicación y una mentalidad curiosa para sentirse cómodo navegando por un sistema Linux a través de una ventana de terminal, especialmente si es completamente nuevo para usted.
Cuando tengas una pregunta sobre cómo realizar una tarea, existen varias vías de aprendizaje a las que puedes recurrir. Motores de búsqueda como Google y DuckDuckGo son recursos invaluables, al igual que sitios de preguntas y respuestas como Stack Exchange o la Comunidad de Preguntas y Respuestas de DigitalOcean . Es probable que, si tienes una pregunta, muchos otros ya la hayan formulado y hayan obtenido respuesta.
Si su pregunta se refiere a un comando específico de Linux, las páginas del manual ofrecen documentación detallada y esclarecedora para casi todos los comandos. Para ver la página del manual de cualquier comando, pase el nombre del comando como argumento man
:
man command
Por ejemplo, man rm
muestra el propósito de rm
, cómo usarlo, qué opciones están disponibles, ejemplos de uso y más información útil.
Conclusión
Esta guía sirve como introducción al trabajo con un entorno Linux. Sin embargo, comprender completamente Linux y todos sus componentes va mucho más allá del alcance de un solo tutorial. Por ejemplo, este tutorial no menciona los permisos , un concepto fundamental de la administración de sistemas Linux.
Te invitamos a que revises todo nuestro contenido introductorio de Linux, que se puede encontrar en nuestra página de etiquetas Conceptos básicos de Linux .