Los 42 comandos más importantes en GNU/Linux
Como bien sabes la consola de comandos para GNU/Linux es una gran navaja suiza, con todas las herramientas disponibles y listas para usar prácticamente para cualquier fin. La intención del artículo es hablar de las más importantes y habituales. Por lo menos en lo que respecta a mi experiencia.
¿Por qué 42? ¿Me lo preguntas en serio? ¡Como iba a ser otro número! ¡Empecemos!
42 comandos imprescindibles para trabajar con GNU/Linux
Cabe decir que esta lista es de los que yo creo que son los más importantes. Seguro que me he dejado muchos. También he intentado utilizar un poco de humor (intentarlo es la palabra) para que la entrada sea más amena.
«Seis por nueve. Cuarenta y dos».
«Ya está. Eso es todo lo que hay».
«Siempre pensé que había algo fundamentalmente erróneo con este universo»
Cita del libro «El restaurante del fin del mundo» de Douglas Adams
1. ls
Este comando lista los ficheros y directorios (¡Recuerda que en GNU/Linux todo es un fichero!)
Veamos un ejemplo:
ls /home
Si queremos que nos muestre la información ampliada y en columnas, utilizaremos el parámetro ‘-l’, y si además queremos que nos muestre los elementos ocultos, usaremos ‘ls -la /home’
2. cd
Con este comando nos podemos mover entre diferentes directorios. Si nos queremos ir a un directorio el particular:
cd /var/cache
Si en cambio nos encontramos en un directorio, y queremos pasar al inmediatamente superior:
cd ..
O bien ir directamente a otro directorio que esta al mismo nivel que el nuestro:
cd ../log
3. mkdir
Ya que hablamos de directorios, con este comando podemos crear los que deseemos, como si no hubiera un mañana.
Simplemente:
mkdir LaLigaDeLaJusticia
mkdir LaLigaDeLaJusticia/Batman
4. rmdir
Como si fuéramos un archi enemigo del universo DC, podemos borrar del mapa un directorio, por ejemplo:
rmdir /LaLigaDeLaJustica/GreenLantern
#(Total, a quien le importante Linterna Verde)
5. touch
Con este comando podemos crear ficheros. Su uso es el siguiente:
touch fichero1 fichero2 fichero3
No hace falta que os diga que dichos ficheros están vacíos.
6. rm
Al igual que con touch podemos crear nuevos ficheros, con rm, su antítesis (lo siento, a veces me salen estos palabros), podemos eliminarlos de la faz de la tierra.
Es primo hermano del comando comando ‘rmdir’, pero en este caso borra ficheros en vez de directorios.
Un ejemplo de uso:
rm lunes.txt
Es un comando un poco preguntón, si quieres que se dedique a eliminar sin mala conciencia, sólo debemos añadir el parámetro ‘-f’, y si además quieres que elimine ficheros y subdirectorios, con ‘-r’, tendrás más que suficiente. Vamos lo que viene a ser un “rm -rf” (Nota: ¡Utilizar este comando con esos parámetros son responsabilidad tuya y solo tuya, eh!)
7. mv
¿Quieres mover un fichero o un directorio de lugar? ¿Quieres cambiar el nombre de un fichero? ¡Este es tu comando!
Su uso es muy sencillo:
mv /facturas/porpagar/factura1.pdf /facturas/yapagadas/
O bien:
mv /Avengers/PeterParker.jpg /Avengers/Spider-Man.jpg
8. rename
Cambia el nombre de un fichero o conjunto de ficheros. Tiene un buen puñado de parámetros interesantes.
Su uso:
rename 's/.jpeg/.jpg/' *
De esta manera indicamos que en la ubicación se cambiarán todas los ficheros con extensión «jpeg» por «jpg»
9. man
Con este comando podemos consultar el manual, de ahí que se llame “man”
Si lo utilizamos seguido del comando a consultar, nos mostrará su entrada en el manual.
Por ejemplo:
man touch
10. info
Es un comando similar al de ‘man’ con información ampliada sobre el comando a consultar.
Su uso es igual de simple:
info touch
11. whatis
Un comando poco conocido, realmente muy útil.
Se encarga de buscar el contenido de la palabra indicada, en una base de datos propia, que contiene breves descripciones de los comandos.
Por ejemplo:
[david@servcentos1 ~]$ whatis man
man (1) - una interfaz de los manuales de referencia electrónicos
12. clear
Este comando se encarga de borrar la pantalla. No hace mucho más. Para utilizar solo hemos de escribir ‘clear’
13. sudo
Alguno o alguna se puede haber enfadado de que todavía no hayamos hablado de él, pero no os preocupéis, el puesto 11 no es un mal puesto.
Con este comando nos podemos otorgar los poderes de super usuario, siempre que tengamos permisos para ello.
# make install pastel
¡No tienes permisos!
#sudo make install pastel
¡No te olvides apagar el horno!
Ya os expliqué en una entrada a trabajar con sudo.
14. history
Este es uno de los comandos, que sobre todo al principio, utilizarás más a menudo.
Se encarga de mostrar un historial de todos los comandos que has utilizado.
Puedes consultar la entrada que le dediqué al comando history
15. pwd
Nos muestra el nombre del directorio de trabajo actual.
Un ejemplo:
[david@servcentos1 ~]$ pwd
/home/david
16. cat
Muestra el contenido de un fichero dado. Si se utiliza con varios ficheros a la vez, mostrará su contenido de manera secuencial.
Su uso:
cat GuiaDelAutoestopistaGalactico-CopiaLegal-eh.txt
17. chmod
Se encarga de cambiar los permisos de acceso a los ficheros.
Le dediqué una entrada a su uso, por si os interesa: «Permisos de archivos en Linux»
18. chown
Cambia el usuario y grupo propietarios de ficheros
Un ejemplo de su uso:
chown david:familia fotos-de-vacaciones.tar.gz
19. find
Busca un directorio o ficheros específico en el sistema de ficheros. Tiene un larga lista de opciones.
También le dedique una entrada, que comparte con el siguiente comand, llamada: «Búsqeda de ficheros en carpetas en GNU/Linux»
20. locate
Similar al comando ‘find’, se encarga de buscar en el todo el sistema, ficheros o directorios que coincidan con una consulta. Por forma predeterminada busca únicamente en los ficheros que tiene permisos. A diferencia de ‘find’ tiene su propia base de datos de consulta.
21. wget
Descarga el fichero o página web dada, indicando la URL
Ejemplo de uso:
wget https://www.ochobitshacenunbyte.com/
Le dediqué un artículo a su uso.
22. grep
Busca en uno o más ficheros una cadena determinada de texto. Si encuentra la cadena nos indica donde está. Es un comando muy potente, muy utilizado por DevOps y desarrolladores.
Un ejemplo:
cat /etc/passwd | grep -i davidochobits
Utilizando el parámetro ‘-i’ ignoramos la diferencia entre mayúsculas y minúsculas.
23. tail
Imprime las diez últimas líneas de un fichero.
Es muy utilizado en la consulta de ficheros de registro.
Por ejemplo:
tail -f -n 20 /var/log/httpd/httpd.log
De esta manera lista las últimas líneas de registro del fichero httpd.log, con el parámetro “-f”, indicamos que queremos ver la actividad del registro “en directo”, con “-n” indicamos que queremos ver siempre las 20 últimas líneas.
24. head
Al igual que tail nos mostraba por defecto las diez últimas líneas, con head se nos muestran las diez primeras líneas.
25. dpkg
Es la herramienta habitual para trabajar con los paquetes con extensión .DEB, esto es, el gestor de paquetes de Debian. Su fin es instalar, compilar, eliminar y manipular los paquetes de Debian.
Podéis consultar su página dedicada en el proyecto Debian
26. rpm
Es un potente administrador de paquetes con extensión .RPM, como bien dice su nombre “Red Hat Package Manager”, sirve para gestionar los paquetes de RHEL y similares, en distribuciones como Centos, Fedora o ScientificLinux
En la Wiki de Centos hay un buen artículo al respecto
27. free
Muestra la memoria utilizada y disponible en el sistema, incluyendo la swap.
Sus parámetros más habituales, por ejemplo, “-m” que nos muestra la información en megabytes, o “-k” que nos la muestra en kilobytes.
Un ejemplo:
free -m
28. df
Nos informa de la utilización de disco en un sistema de ficheros. Este comando se encarga de mostrar el espacio usado y del disponible en todos los sistemas de ficheros montados.
Mi parámetro favorito es ‘-h’ que muestra información para humanos, vamos más entendible.
Su uso habitual:
df -h
29. du
Muestra el espacio estimado ocupado por los ficheros y directorios.
Mis parámetros favoritos para este comando, son ‘-s’ , que nos muestra únicamente el espacio utilizado real, no el de sus subdirectorios, en el caso de un directorio. Y ‘-h’, que muestra el tamaño en megabytes
du -sh
30. lsblk
Muestra información de los dispositivos de bloques, como son los discos duros, volúmenes y grupos de volúmenes
Su uso habitual:
lsblk -fm
Con “-f” se muestra información amplaida y con “-m”, muestra información de su propietario y los permisos de lectura.
31. fdisk
Muestra información de los discos duros y los discos lógicos, llamados particiones.
El uso más habitual es:
fdisk -l
De estos dos últimos comandos os hablé en el artículo: “Ubuntu: Cómo ver particiones”
32. top
Sí, es verdad, este comando es de los más utilizados, el puesto 32 no le hace justicia, ¡pero es que ahora le tocan a los procesos!
Top se encarga de mostrar una lista de los principales procesos y su uso de CPU entre otros valores.
Su uso es bien simple:
top
Podéis ampliar información de su uso en este enlace.
33. ps
Infoma del estado de los procesos. Nos muestra una instantánea de los procesos actuales.
Los parámetros habituales, por lo menos lo que yo utilizo son:
ps -ef
34. kill
Se encarga de liquidar un proceso dado, su uso es:
kill -9 pid-del-proceso
Su utilizaremos el parámetro “-9”, se encarga de eliminar el proceso y sus procesos hijos.
Si queremos ser como Thanos, aunque a lo bruto, podemos utilizar “killall”
35. mount y umount
Se encarga de montar o desmontar un dispositivo dado sobre el sistema de ficheros.
Un ejemplo de uso uso:
mount recursonfs:/carpeta /carpeta
O bien:
umount /carpeta
36. uname
Imprime información del sistema, incluyendo la versión del kernel o núcleo y del sistema operativo.
Si queremos que nos muestra una información ampliada:
uname -a
37. uptime
Indica el tiempo que el sistema encendido
Un ejemplo:
[david@servcentos1 ~]$ uptime
20:04:58 up 0 min, 2 users, load average: 4,26, 1,19, 0,41
38. who
Nos muestra quien está conectando en el sistema. Importante si lo queremos reiniciar y no queremos que nadie se encuentre con la sorpresa.
Un ejemplo de uso:
[david@servcentos1 ~]$ who
root tty1 2018-12-04 20:04
david pts/0 2018-12-04 20:04
39. whereis
Nos indica la ubicación de los binarios de un comando.
Por ejemplo:
whereis python
40. sort
Ordena el resultado de un texto dado
41. more
Se encarga de paginar texto, mostrando una pantalla cada vez.
42. less
Se trata de un programa similar a «more», pero más avanzado, ya que permite consultar páginas hacia atrás y hacia delante.
Todavía algo más
Es cierto, me he dejado, por ejemplo, los comandos para comprimir o descomprimir ficheros, de los que hablé en la entrada:
«Comprimir y descomprimir ficheros en GNU/Linux»
Además dediqué un extenso artículo a las herramientas de redes:
«Herramientas de administración de redes en Linux»
Aún así es cierto que me he dejado muchos comandos, algunos que para ti deben ser esenciales.
Puedes dejar tu aporte en los comentarios ?
Nota adicional: No es la primera vez que hablamos del número 42, lo utilizamos para hablar de ese gran incomprendido llamado SELINUX : «Una guía SysAdmin para SELinux«
Aunque mencionas que faltan muchos, creo que dentro de esos 42 que mencionas deberia estar ifconfig… excelente articulo, y te soy sincero, desconocia ese comando: whatis
Aprendi algo nuevo hoy jejeje
Hola Eduardo,
Me alegro que te haya gustado y que hayas conocido un comomando nuevo 🙂
Respecto al comando ifconfig, si te fijas al final del artículo, menciono una entrada donde trato las herramientas de redes.
Saludos
Mejor que IFCONFIG sería que hable del comando IP, que es más completo y no está obsoleto.
Muy buena lista, todos de gran utilidad sin duda. Los que usamos la consola a menudo en algún momento hemos recurrido a la mayoría de los comandos de la lista, algunos como mkdir y rmdir los tenía prácticamente olvidados, los utilizaba mucho en msdos y drdos -viejos tiempos-. Otros como locate, info y rename no los conocía.
Aquí algunos otros que suelo usar en mayor o menor medida dependiendo el caso -sin orden de importancia-:
lsmod – lspci – xxd – which – watch – echo – export – dd – lsoft – aria2c
PD. En el artículo https://www.ochobitshacenunbyte.com/2018/12/03/como-instalar-y-usar-snmpwalk/ tiene un pequeño error de capa 8 😀 y te anula lo comentado en el podcast #4 (5). Agradable podcast por cierto.
Saludos @David.
Hola colega,
Me alegro que te haya gustado la entrada.
Respecto a los comandos que mencionas algunos de ellos ya los he tratado en la web alguna vez, por ejemplo en el artículo que dediqué a los programas y herramientas para obtener información del hardware:
https://www.ochobitshacenunbyte.com/2018/11/29/obtener-informacion-del-hardware-en-linux/
Si que es verdad que xxd y aria2c no los conozco y les echaré un vistazo.
En referencia al artículo sobre snmpwalk es cierto que se me había escapado «amigos y amigos», cuando quería decir «amigas y amigos» xD, ya lo he corregido. Me ha gustado lo de error de capa 8 🙂
Gracias y salu2!!!
En una laptop quiere poner Lubuntu, y en otra laptop instalar Ubuntu Studio. Todos los comandos funcionaran igual, en ambos distros? Apenas voy empezando en esto de GNU. Saludos!
Hola DanyGi,
Sí, los comandos que he listado son comunes en todas las distribuciones. Excepto RPM que es para distribuciones como Red Hat Linux Enterprise, Centos, Fedora o Scientific Linux, y Dpkg que es común para Debian, Ubuntu, Linux Mint y similares.
Gracias por pasarte y comentar!
Magnífico artículo, la verdad. Lo estuve leyéndolo junto con una terminal para ir haciendo pruebas y refrescar viejos conocidos y aprender otros tantos que no había usado (no conocía history o whatis entre otros… alucinante) y he vuelto para continuar haciendo pruebas. Muchas gracias por el aporte. Ahora le echaré un ojo a los otros dos enlaces que pones.
Hay una pequeña errata sin importancia, en el punto 32 hablas de puerto 32 en lugar de puesto 32… como te digo, se entiende en su contexto, pero por si quieres modificarlo.
Hola colega,
Me alegro que te haya servido y te parezca magnífico 🙂
Respecto a la errata ahora lo reviso.
Gracias por pasarte y comentar!!
Hola
me resultó muy útil el artículo.
Por cierto otros comandos que suelo usar también a diario son:
touch, htop, pkill, chmod, ssh, dig, ping, sync, screenfetch, xkill, entre otros.
Saludos
Mariano
Hola Mariano,
Me alegro que te haya resultado útil.
De ‘touch’ y ‘chmod’ hablo en el artículo, la mayoría que mencionas también los conozco y los he tratado alguna vez en estos años.
No conozco ‘dig’, gracias por el aporte.
Saludos
Excelente Entrada. Aunque ya había tenido linux en ocasiones anteriores… en esta ocasión ya es permanente, así que vamos a darle caña con la terminal :D.
Hola Igor,
Espero que la entrada te sea de ayuda en este reencuentro con GNU/Linux.
Saludos!!!
Faltas de ortografía pero gracias por ayudarnos en esto :’3 ya que es muy importante para los que están estudiando informática :’3
Hola,
Agradecería saber a qué faltas de ortografía te refieres, para así poder corregir el texto. Me harías un favor si me envías un correo con ellas a davidochobits@colaboratorio.net
Gracias!
hola. este articulo esta interesante, aprendi muchos comando que desconocia, solo queria preguntar si puedes hacer una seccion donde aparezcan unos comando que son para copiar de un fichero a otro. Gracias x el contenido
mkuy buen olos comanmdsosss
Hola David8bits, muy buen aporte.
Acabo de descubrir tu página, me ha ayudado mucho.
tengo unas dudas,espero me puedas apoyar por favor.
kill -9 es prácticamente lo mismo que killalll?
¿Núcleo = Kernel?
¿Qué es el Kernel?
¿todos los comandos de Linux\Mac\Otros tienen su equivalente en Windows?
-whereis , a qué se refiere la ubicación de los binarios de un comando?
-sort (cómo que ordenla el resulatdo de un texto, de mayor a menor, por orden -alfabético, al azahar o cómo?
more qué es paginar texto, ¿enumerar las páginas?
Son tantas preguntas porque soy nueva en Linux xD
Hola,
Intentaré contestar a tus preguntas.
En cualquier caso puedes encontrar información sobre todos los comandos consultando las páginas de manual de ‘man’ o utilizando ‘apropos’
Espero haber aclarado parte de tus dudas.
Saludos
hola amigo a mi me gustaría saber que debo hacer una vez instalado Linux mint pues me sale todo menu y todo pero no me deja hacer nada ni descargar actualizaciones ni nada y en la ventana negra de sistema no se que poner aparte de usuario y paswor no se mas
gracias ………lo tengo en un windows10
Hola Paco,
Entiendo que tienes Linux Mint sobre una máquina virtual con VirtualBox. Primero de todo mira que la máquina virtual tenga configurado correctamente la red. ¿Cuando has realizado la instalación has instalado el escritorio, ya sea Cinnamon, KDE o Gnome? Esto es importante, ya que con el escritorio instalado podrás acceder a navegadores web (Firefox, Chrome, etc) o a la suite ofimática como por ejemplo LibreOffice.
Ya me dices.
Saludos
Paco:
Según entiendo lo tienes instalado sobre una máquina virtual. En caso de ser Virtualbox tienes que tener una interfaz de red tipo NAT para que puedas conectarte a la Internet y en la terminal solo tienes que escribir SUDO APT UPDATE (para actualizar la base de datos) y SUDO APT UPGRADE (para actualizar el sistema a partir de la nueva base de datos) e incluso SUDO APT FULL-UPGRADE.
Espero haber podido aclarar tus dudas.
Buenas noches Paco,
Muy buen aporte, la verdad es que se agradece muchísimo que la comunidad de linux tenga tanto compañerismo y ayuda,
Me ha ido muy bien para refrescar algunos comandos y la mayoria no los conocía, a ver si vuelvo a entrar de cabeza a linux de una vez!
Gracias por el aporte!
Hola Patrick,
No me llamo Paco,pero gracias xD
Saludos!
En esta larga temporada de aislamiento preventivo el artículo ayuda para estudiar un poco, que falta me hace. Gracias por el esfuerzo docente.
buenas noches abra una manera de un manual de linux