Coffee bytes

Blog de desarrollo web con Python y Javascript

Eduardo Zepeda

Comandos de la terminal de GNU/Linux que deberías conocer (segunda parte)

El lunes, 13 de mayo de 2019

por Eduardo Zepeda

Tiempo de lectura: 13 minutos

Esta es la segunda parte de la lista de comandos para la terminal de GNU/Linux basicos. Si quieres ver los comandos de la entrada anterior por favor entra en la primera parte aquí. También tengo una tercera parte de comandos de GNU/Linux disponible.

Vamos a empezar con el comando uname, para situarnos un poco en el contexto del sistema operativo con el que estamos trabajando.

uname

Este comando nos muestra información relativa al sistema, es usado frecuentemente para mostrar toda la información agregando la opción ‘-a‘ al final de comando.

uname 
 Linux
uname -a
 Linux kino 4.9.0-8-amd64 #1 SMP Debian 4.9.144-3.1 (2019-02-19) x86_64 GNU/Linux

who

El comando who, sí, como «the who», nos muestra las personas que están conectadas al momento de ejecutarlo.

who 
 usuario  tty2         2019-04-29 08:07 (:0)

whoami

El comando whoami nos dice quien es el usuario actual de la sesión

whoami 
 usuario

id

El comando id nos muestra información relativa a nuestro usuario, su identificador de usuario (uid), su identificador de grupo (gid) y los grupos a los que pertenece.

id 
uid=1000(eduardo) gid=1000(eduardo) grupos=1000(eduardo),7(lp),24(cdrom),25(floppy),27(sudo),29(audio),30(dip),44(video),46(plugdev),108(netdev),113(bluetooth),117(scanner),999(docker)

passwd

Con este comando, al cual parece que se les olvidó la letra «o» y la «r», podemos cambiar nuestra contraseña para acceder al sistema. Una vez ejecutado el comando, este nos pedirá ingresar la contraseña actual para poder cambiar a una nueva.

passwd 
Cambiando la contraseña de usuario.
(actual) contraseña de UNIX: 

du

Que proviene de las siglas de «Disk Usage«, nos muestra el espacio que ocupan los directorios y subdirectorios desde donde estamos ejecutando el comando en kilobytes. Puede usarse también para conocer el tamaño de los archivos utilizando la opción ‘-a‘ al final del archivo, así como usar kilobytes, megabytes. La opción ‘-h‘ decide si mostrarnos kb, mb o gb en función del tamaño, de esta manera se obtiene una medida más amigable con los humanos.

du 
 nuestra todos los directorios y su tamaño en kb
 668	./carpeta1
 3065936	./carpeta1/subarpeta1
 28080	./carpeta2/subcarpeta1/subsubcarpeta1
du -a
 nos muestra tambien los archivos
 4 archivo1
 40 archivo2
 668	./carpeta1
 3065936	./carpeta1/subarpeta1
 28080	./carpeta2/subcarpeta1/subsubcarpeta1
du -m -a 
 lo mismo que el anterior pero en megabytes
 1 archivo1
 1 archivo2
 1	./carpeta1
 2995	./carpeta1/subarpeta1
 28	./carpeta2/subcarpeta1/subsubcarpeta1
du -a -h
# la h es de humano
 4.0K archivo1
 40K archivo2
 668K	./carpeta1
 2.9G	./carpeta1/subarpeta1
 28M	./carpeta2/subcarpeta1/subsubcarpeta1

df

Nos muestra el tamaño, el espacio ocupado y el espacio disponible del sistema de ficheros en bloques de 1kb y, al igual que el comando anterior, también tiene disponible la opción ‘-h’, para que muestre la información de una manera más amigable para los humanos.

df -h
S.ficheros     Tamaño Usados  Disp Uso% Montado en
udev             3.9G      0  3.9G   0% /dev
tmpfs            793M   9.5M  783M   2% /run
/dev/sda4        235G    65G  158G  29% /
tmpfs            3.9G    55M  3.9G   2% /dev/shm
tmpfs            5.0M   4.0K  5.0M   1% /run/lock
tmpfs            3.9G      0  3.9G   0% /sys/fs/cgroup
tmpfs            793M    16K  793M   1% /run/user/115
tmpfs            793M    48K  793M   1% /run/user/1000

También nos sirve para ver la cantidad de i-nodos libres en nuestro sistema de archivos.

df -h
S.ficheros      Nodos-i NUsados  NLibres NUso% Montado en
udev            1000495     502   999993    1% /dev
tmpfs           1009954     948  1009006    1% /run
/dev/sdb1       7331840  853743  6478097   12% /
tmpfs           1009954     281  1009673    1% /dev/shm
tmpfs           1009954       4  1009950    1% /run/lock
/dev/sda4      15654912 5525610 10129302   36% /home/hdd
tmpfs            201990     137   201853    1% /run/user/1000
/dev/sdc              0       0        0     - /media/eduardo/NOOK
/dev/sdd              0       0        0     - /media/eduardo/11D8-1E0C

free

Nos muestra la cantidad, en kilobytes, de memoria libre y ocupada en el sistema y en la memoria swap. Si queremos una lectura más amigable podemos usar la opción ‘-h’

free 
               total        used        free      shared  buff/cache   available
Mem:        8111072     4937452      736592      263560     2437028     2605744
Swap:      11717628           0    11717628
free -h
              total        used        free      shared  buff/cache   available
Mem:           7.7G        4.7G        762M        246M        2.3G        2.5G
Swap:           11G          0B         11G

su

Hay comandos que no podemos usar si no tenemos los permisos adecuados. El super usuario es aquel usuario que tiene acceso sin restricciones al sistema. Este comando, tras una verificación por contraseña, te permite acceder como super usuario al sistema.

su 
 Contraseña:

Si pasamos la verificación nuestro prompt cambiará y nos mostrará una almohadilla al final ‘#’. No cierres tu terminal aún, necesitamos quedarnos en modo super usuario para ejecutar los siguientes comandos.

...~#

useradd

Nos permite agregar un usuario. Solo disponible para super usuario.

useradd nombre_de_usuario

Si usamos la opción -m creará un directorio en /home con el nombre del usuario y los permisos necesarios

useradd -m nombre_de_usuario

usermod

El comando usermod nos permite modificar la cuenta de un usuario y tiene muchas funciones, entre las que se incluyen:

  • Agregar un usuario a un grupo
  • Deshabilitar cuentas tras un periodo de tiempo de inactividad
  • Modificar el directorio de inicio de sesión de un usuario
  • Cambiar el nombre de un usuario
  • Mover el directorio home de un usuario a otra localización

Con el comando de abajo usaremos la opción -a para agregar a uno o varios grupos al usuario llamado usuario. Podemos agregar más grupos separándolos por una coma.

usermod -a -G grupo usuario

Con la opción -e podemos establecer una fecha de caducidad a una cuenta de usuario. El formato de la feche debe ser YYYY-MM-DD.

usermod -e 2099-11-11 usuario

userdel

Este comando nos permite eliminar un usuario. Solo disponible para super usuario.

userdel nombre_de_usuario

fdisk

El comando fdisk sirve para mostrar las tablas o particiones del sistema, solo podrá ejecutarse como super usuario. Si lo ejecutas sin argumentos mostrará la página de ayuda del comando. Es usado generalmente con la opción ‘-l‘ para listar y ver detalles de las particiones y tablas del sistema. Solo disponible para super usuario.

fdisk
 Modo de empleo:
 fdisk [opciones] <disco>     cambia tabla de particiones
 fdisk [opciones] -l [<disco>] muestra tabla(s) de particiones

Muestra o manipula una tabla de particiones de disco.
fdisk -l
Disco /dev/sda: 931.5 GiB, 1000204886016 bytes, 1953525168 sectores
Unidades: sectores de 1 * 512 = 512 bytes
Tamaño de sector (lógico/físico): 512 bytes / 4096 bytes
Tamaño de E/S (mínimo/óptimo): 4096 bytes / 4096 bytes
Tipo de etiqueta de disco: dos
Identificador del disco: 0x325cbe04

Disposit.  Inicio   Comienzo      Final   Sectores Tamaño Id Tipo
/dev/sda1  *            2048    1026047    1024000   500M  7 HPFS/NTFS/exFAT
/dev/sda2            1026048 1429233663 1428207616   681G  7 HPFS/NTFS/exFAT
/dev/sda3         1429235710 1452670975   23435266  11.2G  5 Extendida
/dev/sda4         1452670976 1953523711  500852736 238.8G 83 Linux
/dev/sda5         1429235712 1452670975   23435264  11.2G 82 Linux swap / Solaris</disco></disco>

lscpu

Imprime información relacionada con la arquitectura del CPU.

Architecture:          i686
# CPU op-mode(s):        32-bit, 64-bit
# Byte Order:            Little Endian
# CPU(s):                1
# On-line CPU(s) list:   0
# Thread(s) per core:    1
#...

Comandos apt

Esta serie de comandos que viene a continuación se encargan de servir como una interfaz de alto nivel para gestionar los paquetes del sistema.

Las distribuciones antiguas de GNU/Linux usaban una versión antigua de apt, que agregaba «-get» a cada comando.

apt-cache search
apt-get install
apt-get remove
apt-get update

Las nuevas versiones incluyen versiones mejoradas de cada comando que remueve «-get» para diferenciarse.

apt search

Este comando busca en los repositorios y nos muestra los paquetes que son relevantes para nuestra búsqueda. Solo disponible para super usuario.

apt search chromium
Ordenando... Hecho
Buscar en todo el texto... Hecho
browser-plugin-freshplayer-pepperflash/oldstable,oldstable 0.3.5-1+b1 amd64
  PPAPI-host NPAPI-plugin adapter for pepperflash

cgpt/oldstable,oldstable 0~R52-8350.B-2 amd64
  GPT manipulation tool with support for Chromium OS extensions

apt policy

Con apt policy podremos ver la versión que tenemos instalada de un paquete y las versiones que se encuentran disponibles para instalar. Solo disponible para super usuario.

apt policy chromium
chromium:
  Instalados: 73.0.3683.75-1~deb9u1
  Candidato:  73.0.3683.75-1~deb9u1
  Tabla de versión:
 *** 73.0.3683.75-1~deb9u1 500
        500 http://security.debian.org/debian-security stretch/updates/main amd64 Packages
        100 /var/lib/dpkg/status
     70.0.3538.110-1~deb9u1 500
        500 http://ftp.us.debian.org/debian stretch/main amd64 Packages
        500 http://http.debian.net/debian stretch/main amd64 Packages

apt show

Con apt show podremos ver información sobre los paquetes que tenemos instalados, su versión, tamaño, las librerías de las que depende, sus tags y más. Solo disponible para super usuario.

apt show python3
 Package: python3
 Source: python3-defaults
 Version: 3.5.3-1
 Installed-Size: 67
 Maintainer: Matthias Klose <doko@debian.org>
 Architecture: amd64
 Replaces: python3-minimal (&lt;&lt; 3.1.2-2)
 # más información&lt;/doko@debian.org&gt;</doko@debian.org>

apt install

Ahora toca el turno de instalar otros paquetes que dotarán a nuestro sistema de diversas funcionalidades, desde bases de datos, lenguajes de programación, hasta interfaces gráficas completas o navegadores. Podemos usar este comando para instalar el paquete que deseemos siempre y cuando se encuentre disponible en nuestra lista de repositorios. Solo disponible para super usuario.

apt install recordmydesktop
 # Instalará el paquete recordmydesktop

En distribuciones más antiguas de GNU/Linux se colocaba un «-get» después de apt.

apt install recordmydesktop
 # Instalará el paquete recordmydesktop

apt remove

Así como podemos añadir paquetes, también podemos removerlos de nuestro sistema. Este comando se encarga de eso. Solo disponible para super usuario.

apt remove recordmydesktop
 # Este comando se encarga de remover el paquete de recordmydesktop del sistema

apt update

Este comando actualiza la información disponible de los programas que tenemos desde los repositorios. Con esta información sabremos cuales pueden ser actualizados.

apt update 
Obj:13 http://ftp.us.debian.org/debian stretch-updates InRelease
Obj:14 http://ftp.us.debian.org/debian stretch Release 
Leyendo lista de paquetes... Hecho                     
Creando árbol de dependencias       
Leyendo la información de estado... Hecho
Se pueden actualizar 33 paquetes. Ejecute «apt list --upgradable» para verlos.

apt list –upgradable

Muestra los paquetes que pueden ser actualizados

sudo apt list --upgradable
Listando... Hecho
apache2/oldstable 2.4.25-3+deb9u10 amd64 [actualizable desde: 2.4.25-3+deb9u9]
apache2-bin/oldstable 2.4.25-3+deb9u10 amd64 [actualizable desde: 2.4.25-3+deb9u9]
apache2-data/oldstable,oldstable 2.4.25-3+deb9u10 all [actualizable desde: 2.4.25-3+deb9u9]
apache2-doc/oldstable,oldstable 2.4.25-3+deb9u10 all [actualizable desde: 2.4.25-3+deb9u9]

apt upgrade

Una vez que ya sabemos que paquetes podemos actualizar, podemos actualizarlos con el comando apt upgrade.

sudo apt upgrade

exit

exit, ejecutado en modo super usuario, nos devuelve el prompt a la normalidad y termina nuestros privilegios como super usuario.

exit 

Si ejecutamos exit nuevamente, esta vez en nuestro usuario de sistema, se cerrará la terminal.

whereis

El comando nos muestra donde se encuentran los binarios, código fuente y manuales del comando que le solicitemos.

whereis node
node: /home/usuario/.nvm/versions/node/v11.9.0/bin/node

which

Parecido al anterior, pero con una diferencia: este nos muestra donde se ejecutaría el comando en el entorno actual.

Si desconoces que es un entorno virtual te invito a leer mi entrada donde explico los entornos virtuales.

En cambio, si no estamos usando entornos virtuales mostrará el mismo resultado que el anterior.

which python3
usr/bin/python3

Si activamos un entorno virtual nos cambiará la localización del comando en el entorno virtual.

source virtual/bin/activate
which python3
# activemos un entorno virtual para ver que sucede
/home/usuario/proyecto/entorno_virtual/bin/python3

uptime

El comando uptime nos dice la hora actual, el tiempo que el sistema operativo lleva corriendo, la cantidad de usuarios están conectados y la carga promedio del sistema hace un minuto, 5 minutos y 15 minutos.

uptime 14:15:10 up  6:08,  1 user,  load average: 0.87, 0.87, 0.93

last

Este comando se encarga de mostrarnos los últimos logins en el sistema.

last
 usuario  tty2         :0               Mon Apr 29 12:24   still logged in
 reboot   system boot  4.9.0-12-amd64   Mon Apr 29 07:22   still running
 usuario  tty2         :0               Sun Apr 29 11:27 - down   (13:33)
 reboot   system boot  4.9.0-12-amd64   Sun Apr 28 06:26 - 01:01  (18:34)
 usuario  tty2         :0               Sat Apr 27 22:42 - down   (02:07)

w

Este comando de una letra nos muestra los usuarios que están loggeados actualmente en el sistema

w
 13:48:46 up  1:25,  1 user,  load average: 0.73, 0.83, 1.09
 USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT
 usuario  tty2     :0               12:24    1:25m  1:20m  7.69s /opt/firefox/firefox-bin -contentproc -childID 23 -isForBrowser -prefsLen 9788 -prefMapSize 224870 -parentBuildID 20200708170

last reboot

Last reboot nos muestra el historial de reinicios de nuestro sistema.

last reboot
 reboot   system boot  4.9.0-12-amd64   Sat Apr 27 07:22   still running
 reboot   system boot  4.9.0-12-amd64   Fri Apr 26 06:26 - 01:01  (18:34)

Comando bonus: neofetch

Ahora que sabes como instalar paquetes voy a mostrarte un paquete que muestra información del sistema pero de una manera bastante visual, el nombre del paquete es neofetch.

sudo apt install neofetch

Ahora ejecuta neofetch con privilegios de super usuario y mira por ti mismo lo que se imprime en la terminal.

sudo neofetch

Más comandos básicos para la terminal de linux

Otra entrada y muchos más comandos revisados, faltan algunos comandos para cubrir solo una pequeña parte, toma tu tiempo, no hay prisa, levántate de la silla y ve a tomar agua o café. La tercera parte es la última e incluyo más comandos, algunos de ellos un poquito más complicados. ¡Entra aquí para leer la tercera parte de los comandos básicos GNU/Linux!

Presume lo que aprendiste en redes

Únete a mi comunidad de lectores

Recibe contenido como este por correo electrónico, una vez por semana, de manera totalmente gratuita.

* Campo obligatorio