En la actualidad hay 3.74 billones de usuarios de internet en el mundo, y casi todos ellos usan Linux de alguna manera, aunque puede que en principio ni lo sepan. Decimos esto ya que la mayoría de los servidores que alojan las páginas web que visitáis son Linux en torno al 90%. Y no es el único lugar donde encontramos este sistema operativo, ya que la mayoría de los routers modernos funcionan con Linux o Unix, además de la mayoría de las supercomputadoras. Ahh y no olvidemos que si tienes un smartphone Android, estas usando un sistema operativo que está construido a partir del núcleo de Linux.
En otras palabras, Linux está en todas partes.
Por este motivo puede que en algún momento tengas interés en dejar de lado sistemas operativos propietarios (Windows y Mac) y dar el salto al mundo de linux y todo su ecosistema… Si ese es tu caso es interesante que conozcas los comandos linux básicos y más útiles cuando usas la terminal de linux.
Los siguientes comandos te ayudarán a conocer la interfaz de línea de comandos de Linux (CLI) y son comandos fundamentales de Linux que cualquier usuario debe conocer.
¿POR QUÉ ES IMPORTANTE CONOCER LOS COMANDOS LINUX?
La respuesta es sencilla….conocer los comandos te ayudará a estar cómodo sea cual sea la distribución linux que uses. Ya sea esta Ubuntu, Manjaro, Linux Mint…. incluso te permitirá usar otros sistemas operativos como Mac de manera bastante sencilla ya que muchos de los comandos entre ambos sistemas operativos se comparten.
El terminal es una herramienta muy poderosa…y conocerla te ayudará mucho a entender el propio funcionamiento del sistema operativo.
ATAJOS DE TECLADO EN LINUX
Empezaremos por algo que no son comandos de Linux…pero que nos ahorran muchos dolores de cabeza y que te ayudarán a familiarizarte con esta potente herramienta…
CTRL + A
Mueve el cursor al principio de la línea
CTRL + C
Interrumpe cualquier proceso en ejecución de forma inmediata y nos devuelve al prompt.
CTRL + D
te desconecta
CTRL + E
Mueve el cursor al final de la línea
CTRL + K
Corta el texto desde el cursor hasta el final de la línea
CTRL + R
Buscará en el historial el último comando usado según lo que vayamos escribiendo.
CTRL + T
Abre una nueva pestaña en la ventana del terminal
CTRL + Y
Pega el texto
CTRL + U
Corta la línea completa en la que nos encontramos
CTRL + W
Corta la palabra detrás del cursor
CTRL + Z
Envía el proceso actual a segundo plano. Para recuperarlo sólo tendremos que escribir fg y pulsar Intro.
ALT + B
Salta al espacio anterior
ALT + F
Salta al siguiente espacio
ALT + Retroceso
Borra la palabra anterior
Shift + Insertar
Pega el texto en el terminal
Shift (Mayus) + RePág
Realizaremos scroll hacia arriba en la terminal
Shift (Mayus) + AvPág
Realizaremos scroll hacia abajo en la terminal
Tab (Tabulador)
Permite completar el comando, nombre de fichero o directorio que estemos escribiendo. En caso de múltiples coincidencias, con una doble pulsación de esta tecla obtendremos todos los resultados posibles encontrados en el directorio o sistema.
Flecha de dirección ‘arriba’ y /o ‘abajo’
Nos moveremos por el historial de los últimos comandos que hayamos usados.
!!
Vuelve a lanzar el último comando ejecutado
Estos comandos son útiles de muchas maneras. Por ejemplo, imagina que escribes mal una palabra en el siguiente comando:
$> sudo apt-get intall [nombre del programa que queremos instalar]
Probablemente vieras que «instalar» está mal escrito, por lo que el comando no funcionará. Pero gracias a los atajos de teclado que os hemos indicado hace unos momentos es fácil volver atrás y modificarlo. Si tenemos el cursor al final de la línea, puedo hacer clic en ALT+B dos veces para mover el cursor al lugar indicado (el cursor se colocaría donde colocamos el caracter ^):
$> sudo apt-get^intall [nombre del programa que queremos instalar]
Ahora, podemos añadir rápidamente la letra s para arreglar este comando.
COMANDOS PARA DIRECTORIOS/FICHEROS
LS
La mayoría de comandos de linux y de MS-DOS corresponden a abreviaturas de palabras en inglés que describen su funcionalidad. En este caso el comando ls
viene de «list» en inglés «lista o listar». Y como os podréis imaginar lo que hace es listar el contenido de un directorio… Por ejemplo, si ejecutamos el comando:
$> ls /aplicaciones
listará el contenido de la carpeta aplicaciones que se encuentra dentro de la carpeta actual.
Si necesitamos ver todos los archivos incluidos en una carpeta incluidos los ocultos lo podemos lograr mediante el comando:
$> ls -a
CD
El comando cd
nos permite cambiar de directorio (deriva de Change Directory). Por ejemplo en el siguiente ejemplo cambiaremos el directorio actual en el que nos encontramos por /Descargas:
$> cd /Descargas
Para volver a la carpeta actual a la anterior, tendremos que escribir:
$> cd ..
En el caso de linux es importante el espacio en blanco entre el comando cd y los ..
Si quisiéramos cambiar de directorio a uno que se encontrara dentro del directorio actual usaríamos ./
$> cd ./Documentos
MV
Este comando transfiere un archivo de una carpeta a otra, mv
significa «mover». Sería el equivalente a arrastrar un carpeta dentro de otra usando un gestor de archivos gráfico.
Por ejemplo, si tenemos un archivo llamado origen.txt podremos moverlo a mi carpeta de planetared usando este comando:
$> mv /home/planetared/origen.txt /home/planetared/destino.txt
El comando es bastante potente ya que además de mover el fichero de carpeta permite renombrarlo.
MKDIR
Ya que estamos tratando con comando habituales en el uso de directorio/ficheros es importante que conozcáis la función del comando mkdir
. Ya que nos permitirá crear un directorio.
Por ejemplo, si te gustan las series puedes crearte la carpeta correspondiente usando el comando
$> mkdir /series
RMDIR
El comando rmdir
es el opuesto al anterior, ya que nos permitirá eliminar una carpeta vacía.
$> rmdir /series
RM
Si queremos eliminar ficheros usaremos el comando rm
. Su uso es bastante sencillo:
$> rm /series/*
Si la carpeta contiene subdirectorio tendremos que ejecutar de manera recursiva el comando anterior, para lo cual usaremos el siguiente comando:
$> rm -Rf /series/*
En este caso -R
indica que el comando recorre de manera recursiva los subdirectorios internos sin preguntarnos….debido a esto os aconsejamos que tengáis cuidado con la ejecución del mismo.
En el caso de que queramos que el sistema nos pregunte si de verdad estamos seguros de que queremos eliminar un archivo usaremos -i.
$> rm -i prueba.txt
TOUCH
El comando touch
te permite crear nuevos ficheros vacíos… En este sentido actúa de manera similar a como lo hace el comando mkdir
que crea directorios vacíos, touch
crea como os decíamos crea ficheros vacíos. Por ejemplo
$> touch prueba.txt
crea un fichero vacío llamado prueba.txt.
LOCATE
Este comando es lo que se usa para encontrar un archivo en un ordenador con Linux. Es muy útil si olvidas dónde has guardado un archivo o cómo lo has llamado.
Por ejemplo, si tienes un documento en el que se habla de «integrales de matemáticas» pero no te acuerdas del nombre del fichero puedes intentar encontrarlo usando un texto que supieras que se encontrara dentro esto se consigue con el siguiente comando:
$> locate -i*integrales*de*mateáticas*.
Comandos de Información del Sistema
A continuación tenéis alguno de los comandos más habituales a la hora de trabajar u obtener información del sistema
DATE
date
muestra la fecha y hora del sistema al completo.
CAL
cal
muestra el calendario del mes en curso.
WHOAMI
whoami
muestra el nombre del usuario con el que estamos trabajando.
W
w
muestra qué usuarios están conectados actualmente.
UPTIME
uptime
muestra el tiempo que lleva encendido el sistema, y cuántos usuarios lo han usado.
UNAME
uname –a
Ofrece información del Kernel del sistema.
CAT
El comando cat es bastante utilizado ya que muestra el contenido de un archivo. Nos permite por ejemplo obtener información interesante del sistema. Por ejemplo:
$> cat /proc/cpuinfo
Muestra información del microprocesador.
$> cat /proc/meminfo
Muestra información de la memoria del equipo.
FREE
El comando free
muestra la cantidad de memoria total, usada y libre, así como el espacio en la unidad de intercambio.
COMANDOS DE ADMINISTRACIÓN
Los comandos que siguen a continuación permiten administrar usuarios y los permisos de estos
ADDUSER
adduser [USUARIO]:
Añadirá un usuario a nuestro sistema.
$> adduser planetared
PASSWD
passwd [USUARIO]
Permite cambiar la contraseña del usuario que especifiquemos. Necesitaremos conocer la contraseña ya establecida si queremos cambiarla.
$> passwd planetared
SU
su
Inicia sesión como superusuario o root desde la sesión actual.
SUDO
sudo
Otorga permisos de superusuario al comando que está a continuación. En algunas ocasiones la ejecución de ciertos comandos se ve restringida por los permisos del mismo. En ese caso usaremos el comando sudo
para poder ejecutarlo. Por ejemplo:
$> sudo shutdown -r now
Reiniciará el sistema.
EXIT
exit
Cierra la sesión del superusuario o root, volviendo al usuario desde la que se inició.
CHOWN
El comando chown
permite cambiar el propietario de un fichero. Por ejemplo:
$> chown planetared:blog prueba.txt
Cambia el propietario del fichero prueba.txt al usuario «planetared» y lo añade al grupo «blog»
CHMOD
Otro comando muy útil es el comando chmod
. Este comando permite cambiar los permisos de ejecución.
$> chmod 777 prueba.txt
Cambia los permisos de ejecución del archivo prueba.txt a 777 (permisos de lectura, escritura y ejecución).
COMANDOS DE PROCESO
En linux como en otros muchos sistemas operativos las diferentes aplicaciones se ejecutan en procesos, de esta manera se puedan establecer privilegios y tener cierto orden sobre ellos. Linux cuenta como no podía ser se otra manera de una serie de comandos que nos permiten conocer los procesos activos…estos son los comandos más importantes relacionados con los procesos del sistema:
PS
ps
Muestra los procesos que se encuentran activos en el sistema actualmente.
TOP
top
Muestra todos los procesos en funcionamiento.
KILL
kill [ID DEL PROCESO]
Detiene el proceso asignado al pid que muestra la salida del comando ps.
BG
bg
Muestra todos los procesos pausados o en segundo plano (recordamos que Ctrl + z establecía procesos en segundo plano).
FG
fg
Trae de vuelta el proceso más reciente puesto en segundo plano.
COMANDOS DE ACTUALIZACIÓN DEL SISTEMA
Es importante tener actualizado nuestro equipo tango para obtener nuevas funcionalidades como para solucionar errores y/o corregir problemas de seguridad.
APT-GET
apt-get update
Actualiza los repositorios para añadir nuevas fuentes que instalarán las versiones más recientes de los programas que indiquemos.
apt-get upgrade
Actualizará las aplicaciones que el comando ‘apt-get update’ haya actualizado, en caso de existir versiones más recientes.
apt-get install [paquete]
Por ejemplo:
$> apt-get install libreoffice
Instalará en nuestro equipo el paquete ofimático Libre Office.
El comando apt-get no es el único que permite instalar paquetes o programas en nuestro equipo. Existen otros sistemas de paquetes como por ejemplo:
dpkg –i [NOMBRE_PAQUETE.deb]
Instalador de paquetería para gestores de paquetes deb.
yum install [NOMBRE_DE_PAQUETE]
Instalador de paquetería para gestores de paquetes rpm.
rpm –i [NOMBRE_DE_PAQUETE.RPM]
Instalador de paquetería para gestores de paquetes rpm.
flatpak search [NOMBRE APLICACION]
Instalador de paquetería para gestores de paquetes flatpak.
snap find [NOMBRE APLICACION]
Instalador de paquetería para gestores de paquetes snap.
Por cierto es probable que necesitemos lanzar estos paquetes con permisos de supersusuario….para lo cual como ya os hemos mencionado debemos lanzar el comando sudo
.
COMANDOS DE INICIO Y APAGADO DEL SISTEMA
HALT
halt
Detiene todos los procesos y apaga el equipo.
SHUTDOWN
shutdown
Programa el apagado del sistema en 1 minuto.
shutdown –r X
Programa el reinicio del sistema, donde X será el número de minutos en el que se reiniciará el equipo.
shutdown –h now
Apaga el equipo saltándose el minuto de espera programado.
shutdown –r now
Reinicia el equipo saltándose la espera programada.
REBOOT
reboot
Reinicia el sistema de la misma forma que el comando anterior.
INIT
init 0
Apaga el sistema.
init 6
Reinicia el sistema.
STARTX
startx
Inicia la interfaz gráfica si ésta se encuentra instalada en el sistema.
COMANDOS DE RED
A continuación disponéis de alguno de los comandos relacionados con la configuración de la red más habituales.
IFCONFIG
ifconfig
Lista las direcciones IP de todos los dispositivos del equipo.
PING
ping [DIRECCIÓN IP]
Manda una señal que deberá ser devuelta por el equipo xxxx para comprobar si se encuentra en línea o no.
WHOIS
whois [NOMBRE DE DOMINIO]
Obtiene información acerca de un dominio, como por ejemplo google.com
WGET
wget [URL]
Descargará la url que le indiquemos a continuación.
OTROS COMANDOS
AT
Si quieres ejecutar un comando de Linux en un momento determinado, puedes añadir at a la ecuación. La sintaxis es «at» seguida por la fecha y la hora en que quieres que se ejecute el comando. Luego el símbolo del sistema cambia a at> para que puedas introducir el/los comando(s) que quieres ejecutar en el momento que indicaste.
Por ejemplo:
$> at 9:00 PM Sat at> cowsay 'hola mundo' at> CTRL+D
Este programa se llevará a cabo a las 9:00 p.m. de la noche del sábado y nos dirá «hola mundo».
Saludos desde lo más profundo de los bytes.