Comments

March 17, 2025

Cómo instalar Git en Ubuntu 22.04

Introducción

Los sistemas de control de versiones como Git son esenciales para las mejores prácticas de desarrollo de software moderno. El control de versiones permite realizar un seguimiento del software a nivel de código fuente. Permite realizar un seguimiento de los cambios, revertir a etapas anteriores y crear versiones alternativas de archivos y directorios.

Los archivos de muchos proyectos de software se mantienen en repositorios de Git, y plataformas como GitHub, GitLab y Bitbucket ayudan a facilitar el intercambio y la colaboración en proyectos de desarrollo de software.

En esta guía, aprenderá a instalar y configurar Git en un servidor Ubuntu 22.04 de dos maneras diferentes: mediante el gestor de paquetes integrado y mediante source . Cada método ofrece sus propias ventajas, según sus necesidades específicas.

Prerrequisitos

Necesitará un servidor Ubuntu 22.04 con una cuenta de superusuario que no sea root.

Para configurarlo, puede seguir nuestra Guía de configuración inicial del servidor para Ubuntu 22.04 .

Con el servidor y el usuario configurados, está listo para comenzar.

Instalación de Git con paquetes predeterminados

La opción de instalar con los paquetes predeterminados es la mejor opción si desea empezar a usar Git rápidamente, si prefiere una versión estable ampliamente utilizada o si no busca las últimas funcionalidades disponibles. Si busca la versión más reciente, consulte la sección sobre instalación desde el código fuente .

Es probable que Git ya esté instalado en tu servidor Ubuntu 22.04. Puedes confirmarlo con el siguiente comando:

git --version

Si recibe un resultado similar al siguiente, entonces Git ya está instalado.

Outputgit version 2.34.1

Si este es tu caso, puedes continuar con la configuración de Git o leer la siguiente sección sobre cómo instalar desde la fuente si necesitas una versión más actualizada.

Sin embargo, si no obtiene el resultado de un número de versión de Git, puede instalarlo con el administrador de paquetes predeterminado de Ubuntu, APT.

Primero, utilice las herramientas de administración de paquetes apt para actualizar su índice de paquetes local.

sudo apt update

Una vez completada la actualización, puedes instalar Git:

sudo apt install git

Puedes confirmar que has instalado Git correctamente ejecutando el siguiente comando y comprobando que recibes el resultado correspondiente.

git --version

Outputgit version 2.34.1

Una vez instalado Git correctamente, puedes pasar a la sección Configuración de Git de este tutorial para completar la configuración.

Instalación de Git desde el código fuente

Si busca un método más flexible para instalar Git, puede compilar el software desde el código fuente. Esto lleva más tiempo y no se mantendrá a través de su gestor de paquetes, pero le permitirá descargar la última versión y le dará mayor control sobre las opciones que incluye si desea realizar personalizaciones.

Verifique la versión de Git actualmente instalada en el servidor:

git --version

Si Git está instalado, recibirás un resultado similar al siguiente:

Outputgit version 2.34.1

Antes de empezar, necesitas instalar el software del que depende Git. Todo esto está disponible en los repositorios predeterminados, así que puedes actualizar el índice de paquetes local e instalar los paquetes correspondientes.

sudo apt update
sudo apt install libz-dev libssl-dev libcurl4-gnutls-dev libexpat1-dev gettext cmake gcc

Después de haber instalado las dependencias necesarias, cree un directorio temporal:

mkdir tmp

Muévete al tmpdirectorio donde descargarás tu archivo tar de Git:

cd /tmp

Desde el sitio web del proyecto Git , acceda a la lista de archivos tar disponible en https://mirrors.edge.kernel.org/pub/software/scm/git/ y descargue la versión deseada. Al momento de escribir este artículo, la versión más reciente es la 2.38.1. Descargará la última versión para fines de demostración. Use curl y exporte el archivo descargado a [nombre del archivo] git.tar.gz.

curl -o git.tar.gz https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.38.1.tar.gz

Descomprima el archivo tarball comprimido:

tar -zxf git.tar.gz

A continuación, muévete al nuevo directorio Git:

cd git-*

Ahora, puedes crear el paquete con este comando:

make prefix=/usr/local all

Este proceso puede tardar un tiempo en crearse. Una vez finalizado, instala Git escribiendo el siguiente comando:

sudo make prefix=/usr/local install

Ahora, reemplace el proceso de shell para que se use la versión de Git que acaba de instalar:

 exec bash

Una vez completado esto, puedes estar seguro de que tu instalación fue exitosa verificando la versión.

git --version

Outputgit version 2.38.1

Una vez instalado Git correctamente, ahora puedes completar tu configuración.

Configuración de Git

Una vez que esté satisfecho con su versión de Git, debe configurar Git para que los mensajes de confirmación generados contengan la información correcta y lo ayuden a construir su proyecto de software.

La configuración se puede realizar mediante el git configcomando. En concreto, debes proporcionar tu nombre y correo electrónico, ya que Git integra esta información en cada confirmación. Puedes añadir esta información escribiendo:

git config --global user.name "Your Name"
git config --global user.email "youremail@domain.com"

Puede visualizar todos los elementos de configuración que se han establecido escribiendo:

git config --list

Outputuser.name=Your Name
user.email=youremail@domain.com
...

La información que introduces se almacena en tu archivo de configuración de Git, que puedes editar manualmente con el editor de texto que prefieras. Este ejemplo usa nano:

nano ~/.gitconfig

~/.gitconfig contenido

[user]
  name = Your Name
  email = youremail@domain.com

Presione CTRLy X, luego Ypara ENTERsalir del nanoeditor de texto.

Hay muchas otras opciones que puedes configurar, pero estas son las dos esenciales. Si omites este paso, probablemente verás advertencias al confirmar en Git. Esto te genera más trabajo, ya que tendrás que revisar las confirmaciones realizadas con la información correcta.

Conclusión

Ahora debería tener Git instalado y listo para usar en su sistema.

Stephen Dove
Comments

March 17, 2025

Fundamentos de la gestión de paquetes de Ubuntu y Debian

Introducción

La gestión de paquetes es una de las características fundamentales de un sistema Linux. El formato de empaquetado y las herramientas de gestión de paquetes varían según la distribución, pero la mayoría utiliza uno de dos conjuntos principales de herramientas.

Para las distribuciones basadas en Red Hat Enterprise Linux (como RHEL y Rocky Linux), el formato de empaquetado RPM y las herramientas de empaquetado como rpmy yumson comunes. La otra familia principal, utilizada por Debian, Ubuntu y distribuciones relacionadas, utiliza el .debformato de empaquetado y las herramientas como apty dpkg.

En los últimos años, han aparecido más administradores de paquetes auxiliares diseñados para ejecutarse en paralelo con el núcleo apty dpkglas herramientas: por ejemplo, snap proporciona más portabilidad y espacio aislado, y Homebrew , portado desde macOS, proporciona herramientas de línea de comandos que los usuarios individuales pueden instalar para evitar conflictos con los paquetes del sistema.

En esta guía, aprenderá algunas de las herramientas de gestión de paquetes más comunes que utilizan los administradores de sistemas en sistemas Debian y Ubuntu. Esta guía le servirá como referencia rápida cuando necesite saber cómo gestionar paquetes en estos sistemas.

Prerrequisitos

  • Un servidor Ubuntu 20.04 o Debian y un usuario no root con privilegios sudo. Puede obtener más información sobre cómo configurar un usuario con estos privilegios en nuestra guía “Configuración inicial del servidor con Ubuntu 20.04” .

Paso 1: Descripción general de las herramientas de gestión de paquetes de Debian

El ecosistema Debian/Ubuntu emplea bastantes herramientas de gestión de paquetes diferentes para administrar el software en el sistema.

La mayoría de estas herramientas están interrelacionadas y funcionan con las mismas bases de datos de paquetes. Algunas intentan proporcionar interfaces de alto nivel al sistema de empaquetado, mientras que otras se centran en proporcionar funcionalidad de bajo nivel.

apto

Este aptcomando es probablemente el más utilizado del aptconjunto de herramientas de empaquetado. Su principal objetivo es interactuar con repositorios remotos gestionados por el equipo de empaquetado de la distribución y ejecutar acciones en los paquetes disponibles.

La aptsuite, en general, funciona extrayendo información de repositorios remotos a una caché del sistema local. El aptcomando se utiliza para actualizar la caché local. También se utiliza para modificar el estado de un paquete, es decir, para instalarlo o eliminarlo del sistema.

En general, aptse utilizará para actualizar la memoria caché local y realizar modificaciones en el sistema en vivo.

Nota: En versiones anteriores de Ubuntu, el aptcomando principal se conocía como apt-get. Se ha simplificado, pero aún se puede llamar con , apt-getya sea por costumbre o por compatibilidad con versiones anteriores.

apt-cache

Otro miembro importante de la aptsuite es apt-cache. Esta utilidad utiliza la caché local para consultar información sobre los paquetes disponibles y sus propiedades.

Por ejemplo, buscar un paquete o una herramienta específica que realice una función específica apt-cachees un buen punto de partida. También puede ser útil para obtener información sobre la versión exacta del paquete a la que se dirigirá un procedimiento. La información sobre dependencias y dependencias inversas es otra área apt-cacheútil.

paquete dpkg

Si bien las herramientas anteriores se centraban en la gestión de paquetes almacenados en repositorios, el dpkgcomando también permite operar con .debpaquetes individuales. dpkgDe hecho, la herramienta se encarga de la mayor parte del trabajo interno de los comandos mencionados; aptproporciona tareas de mantenimiento adicionales mientras dpkginteractúa con los propios paquetes.

A diferencia de los aptcomandos, dpkgno puede resolver dependencias automáticamente. Su principal característica es la posibilidad de trabajar con .debpaquetes directamente y analizarlos para obtener más información sobre su estructura. Aunque puede recopilar información sobre los paquetes instalados en el sistema, no debe utilizarse como gestor de paquetes principal. En el siguiente paso, aprenderá las mejores prácticas para la actualización de paquetes.

Paso 2: Actualización de la caché de paquetes y del sistema

Las herramientas de gestión de paquetes de Debian y Ubuntu ayudan a mantener actualizada la lista de paquetes disponibles de su sistema. También ofrecen varios métodos para actualizar los paquetes que tenga instalados en su servidor.

Actualización de la caché de paquetes locales

Los repositorios remotos que utilizan sus herramientas de empaquetado para obtener información de paquetes se actualizan constantemente. Sin embargo, la mayoría de las herramientas de gestión de paquetes de Linux están diseñadas, por razones históricas, para trabajar directamente con una caché local de esta información. Esta caché debe actualizarse periódicamente.

Suele ser recomendable actualizar la caché local de paquetes en cada sesión antes de ejecutar otros comandos. Esto garantizará que esté trabajando con la información más actualizada sobre el software disponible. Algunos comandos de instalación fallarán si trabaja con información de paquetes obsoleta.

Para actualizar la caché local, utilice el aptcomando con el updatesubcomando:

sudo apt update

Esto mostrará una lista actualizada de los paquetes disponibles en los repositorios que estás rastreando.

Actualización de paquetes

El aptcomando distingue entre dos procedimientos de actualización diferentes. El primero (que se describe en esta sección) permite actualizar cualquier componente que no requiera su eliminación. Para saber cómo actualizar y permitir aptla eliminación e intercambio de componentes según sea necesario, consulte la sección siguiente.

Esto puede ser muy importante si no desea eliminar ningún paquete instalado bajo ninguna circunstancia. Sin embargo, algunas actualizaciones implican reemplazar componentes del sistema o eliminar archivos conflictivos. Este procedimiento ignorará cualquier actualización que requiera la eliminación de paquetes:

sudo apt upgrade

El segundo procedimiento actualizará todos los paquetes, incluso aquellos que requieren su eliminación. Esto suele ser necesario a medida que cambian las dependencias de los paquetes.

Normalmente, los paquetes que se eliminan se reemplazan por equivalentes funcionales durante el proceso de actualización, por lo que esto suele ser seguro. Sin embargo, conviene estar atento a los paquetes que se eliminarán, por si acaso se marcan componentes esenciales para su eliminación. Para realizar esta acción, escriba:

sudo apt full-upgrade

Esto actualizará todos los paquetes de su sistema. En el siguiente paso, aprenderá a descargar e instalar nuevos paquetes.

Paso 3: Descargar e instalar paquetes

Buscar paquetes

El primer paso al descargar e instalar paquetes a menudo es buscar en los repositorios de su distribución los paquetes que está buscando.

La búsqueda de paquetes es una operación que busca información en la caché de paquetes. Para ello, utilice apt-cache search. Recuerde que debe asegurarse de que su caché local esté actualizada utilizando sudo apt updateantes de buscar paquetes:

apt-cache search package

Dado que este procedimiento solo consulta información, no requiere sudoprivilegios. Cualquier búsqueda realizada examinará los nombres de los paquetes, así como sus descripciones completas.

Por ejemplo, si buscas htop, verás resultados como estos:

apt-cache search htop

Outputaha - ANSI color to HTML converter
htop - interactive processes viewer
libauthen-oath-perl - Perl module for OATH One Time Passwords

Como puedes ver, tienes un paquete llamado htop, pero también puedes ver otros dos programas, cada uno de los cuales se menciona htopen el campo de descripción completa del paquete (la descripción junto a la salida es solo un breve resumen).

Instalar un paquete desde los repositorios

Para instalar un paquete desde los repositorios, así como todas las dependencias necesarias, puede utilizar el aptcomando con el installargumento.

Los argumentos para este comando deben ser el nombre o los nombres del paquete tal como están etiquetados en el repositorio:

sudo apt install package

Puede instalar varios paquetes a la vez, separados por un espacio:

sudo apt install package1 package2

Si el paquete solicitado requiere dependencias adicionales, estas se imprimirán en la salida estándar y se le solicitará que confirme el procedimiento. Se verá así:

sudo apt install apache2

OutputReading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  apache2-data
Suggested packages:
  apache2-doc apache2-suexec-pristine apache2-suexec-custom
  apache2-utils
The following NEW packages will be installed:
  apache2 apache2-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 236 kB of archives.
After this operation, 1,163 kB of additional disk space will be used.
Do you want to continue [Y/n]?

Como puede ver, aunque nuestro objetivo de instalación era el apache2paquete, este apache2-datase necesita como dependencia. En este caso, puede continuar presionando Intro o “Y”, o cancelar escribiendo “n”.

Instalar una versión específica del paquete desde los repositorios

Si necesita instalar una versión específica de un paquete, puede proporcionar la versión que desea utilizar =, de la siguiente manera:

sudo apt install package=version

En este caso, la versión debe coincidir con uno de los números de versión del paquete disponibles en el repositorio. Esto implica utilizar el sistema de control de versiones de su distribución. Puede encontrar las versiones disponibles mediante :apt-cache policy package

apt-cache policy nginx

Outputnginx:
  Installed: (none)
  Candidate: 1.18.0-0ubuntu1.2
  Version table:
     1.18.0-0ubuntu1.2 500
        500 http://mirrors.digitalocean.com/ubuntu focal-updates/main amd64 Packages
        500 http://security.ubuntu.com/ubuntu focal-security/main amd64 Packages
     1.17.10-0ubuntu1 500
        500 http://mirrors.digitalocean.com/ubuntu focal/main amd64 Packages

Reconfigurar paquetes

Muchos paquetes incluyen scripts de configuración posteriores a la instalación que se ejecutan automáticamente una vez finalizada. Estos suelen incluir indicaciones para que el administrador tome decisiones de configuración.

Si necesita ejecutar estos pasos de configuración (y otros adicionales) más adelante, puede usar el dpkg-reconfigurecomando. Este comando examina el paquete que se le ha proporcionado y vuelve a ejecutar cualquier comando posterior a la configuración incluido en la especificación del paquete:

sudo dpkg-reconfigure package

Esto le permitirá acceder a las mismas indicaciones (y a menudo más) que encontró durante la instalación.

Realizar un ensayo de las acciones del paquete

Muchas veces, querrás ver los efectos secundarios de un procedimiento antes de comprometerte realmente a ejecutar el comando. aptte permite agregar la -sbandera para “simular” un procedimiento.

Por ejemplo, para ver qué se haría si decide instalar un paquete, puede escribir:

apt install -s package

Esto le permitirá ver todas las dependencias y los cambios que se producirán en su sistema si elimina la -smarca. Una ventaja es que puede ver los resultados de un proceso que normalmente requeriría privilegios de root, sin usar sudo.

Por ejemplo, si desea evaluar qué se instalaría con el apache2paquete, puede escribir:

apt install -s apache2

OutputNOTE: This is only a simulation!
      apt needs root privileges for real execution.
      Keep also in mind that locking is deactivated,
      so don't depend on the relevance to the real current situation!
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following extra packages will be installed:
  apache2-data
Suggested packages:
  apache2-doc apache2-suexec-pristine apache2-suexec-custom
  apache2-utils
The following NEW packages will be installed:
  apache2 apache2-data
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Inst apache2-data (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [all])
Inst apache2 (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [amd64])
Conf apache2-data (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [all])
Conf apache2 (2.4.6-2ubuntu2.2 Ubuntu:13.10/saucy-updates [amd64])

Obtendrás toda la información sobre los paquetes y versiones que se instalarán, sin tener que completar el proceso real.

Esto también funciona con otros procedimientos, como realizar actualizaciones del sistema:

apt -s dist-upgrade

De forma predeterminada, aptse solicitará confirmación al usuario para muchos procesos, como instalaciones que requieren dependencias adicionales y actualizaciones de paquetes.

Para omitir estas actualizaciones y aceptar de forma predeterminada cualquiera de estas indicaciones, puede pasar la -ybandera al realizar estas operaciones:

sudo apt install -y package

Esto instalará el paquete y sus dependencias sin necesidad de solicitarlo al usuario. También puede usarse para procedimientos de actualización:

sudo apt dist-upgrade -y

Reparar dependencias y paquetes rotos

A veces, una instalación puede no finalizar correctamente debido a dependencias u otros problemas. Un caso común es al instalar un .debpaquete con dpkg, que no resuelve las dependencias.

El aptcomando puede intentar resolver esta situación pasándole el -fcomando.

sudo apt install -f

Esto buscará las dependencias incumplidas e intentará instalarlas para corregir el árbol de dependencias. Si su instalación presentó un problema de dependencia, este debería ser el primer paso para intentar resolverlo. Si no puede resolver el problema de esta manera e instaló un paquete de terceros, debería eliminarlo y buscar una versión más reciente con un mantenimiento más activo.

Descargar paquete desde los repositorios

Hay casos importantes en los que puede ser útil descargar un paquete de los repositorios sin instalarlo. Puedes hacerlo ejecutando aptel downloadargumento.

Dado que esto solo descarga un archivo y no afecta al sistema real, no sudose requieren privilegios:

apt download package

Esto descargará los paquetes especificados al directorio actual.

Instalar un paquete .deb

Aunque la mayoría de las distribuciones recomiendan instalar el software desde sus repositorios mantenidos, algunos proveedores suministran .debarchivos sin procesar que puedes instalar en tu sistema.

Para ello, se utiliza dpkg. dpkgSe utiliza principalmente para trabajar con paquetes individuales. No intenta realizar instalaciones desde el repositorio, sino que busca .debpaquetes en el directorio actual o en la ruta proporcionada:

sudo dpkg --install debfile.deb

Es importante tener en cuenta que la dpkgherramienta no implementa ningún manejo de dependencias. Esto significa que si hay dependencias incumplidas, la instalación fallará. Sin embargo, marca las dependencias necesarias, por lo que si todas están disponibles en los repositorios, puede completarlas escribiendo lo siguiente después:

sudo apt install -f

Esto instalará las dependencias no satisfechas, incluidas las marcadas con dpkg. En el siguiente paso, aprenderá a eliminar algunos de los paquetes que ha instalado.

Paso 4: Eliminar paquetes y archivos

En esta sección se explicará cómo desinstalar paquetes y limpiar los archivos que puedan quedar tras las operaciones de paquetes.

Desinstalar un paquete

Para eliminar un paquete instalado, se usa apt remove. Esto eliminará la mayoría de los archivos que el paquete instaló en el sistema, con una excepción notable.

Este comando conserva los archivos de configuración para que su configuración siga disponible si necesita reinstalar la aplicación posteriormente. Esto es útil porque significa que los archivos de configuración personalizados no se eliminarán si elimina accidentalmente un paquete.

Para completar esta operación, debe proporcionar el nombre del paquete que desea desinstalar:

sudo apt remove package

El paquete se desinstalará con la excepción de los archivos de configuración.

Desinstalar un paquete y todos los archivos de configuración asociados

Si desea eliminar un paquete y todos los archivos asociados de su sistema, incluidos los archivos de configuración, puede utilizar apt purge.

A diferencia del removecomando mencionado anteriormente, este purgelo elimina todo. Esto es útil si no desea guardar los archivos de configuración o si tiene problemas y desea empezar desde cero.

Tenga en cuenta que una vez que se eliminen los archivos de configuración, no podrá recuperarlos:

sudo apt purge package

Ahora, si alguna vez necesita reinstalar ese paquete, se utilizará la configuración predeterminada.

Eliminar cualquier dependencia automática que ya no sea necesaria

Al eliminar paquetes del sistema con apt removeo apt purge, se eliminará el destino del paquete. Sin embargo, se conservarán las dependencias que se instalaron automáticamente para cumplir con los requisitos de instalación.

Para eliminar automáticamente cualquier paquete que se haya instalado como dependencia y que ya no sea necesario para ningún paquete, puede utilizar el autoremovecomando:

sudo apt autoremove

Si desea eliminar todos los archivos de configuración asociados a las dependencias que se van a eliminar, deberá añadir la --purgeopción al autoremovecomando. Esto también limpiará los archivos de configuración, al igual que el purgecomando para una eliminación específica:

sudo apt --purge autoremove

Limpiar archivos de paquetes obsoletos

A medida que los mantenedores de paquetes de una distribución agregan y eliminan paquetes de los repositorios, algunos paquetes quedarán obsoletos.

La aptherramienta puede eliminar cualquier archivo de paquete en el sistema local que esté asociado con paquetes que ya no están disponibles en los repositorios mediante el uso del autocleancomando.

Esto liberará espacio en su servidor y eliminará cualquier paquete potencialmente obsoleto de su caché local.

sudo apt autoclean

En el siguiente paso, aprenderá más formas de consultar paquetes sin necesariamente instalarlos.

Paso 5 – Obtener información sobre los paquetes

Cada paquete contiene una gran cantidad de metadatos a los que se puede acceder mediante las herramientas de gestión de paquetes. Esta sección mostrará algunas formas comunes de obtener información sobre los paquetes disponibles e instalados.

Para mostrar información detallada sobre un paquete en los repositorios de su distribución, puede usar el comando apt-cache show. El objetivo de este comando es el nombre de un paquete dentro del repositorio:

apt-cache show nginx

Esto mostrará información sobre cualquier candidato a instalación para el paquete en cuestión. Cada candidato incluirá información sobre sus dependencias, versión, arquitectura, conflictos, el nombre del archivo del paquete, el tamaño del paquete y la instalación, y una descripción detallada, entre otros datos.

OutputPackage: nginx
Architecture: all
Version: 1.18.0-0ubuntu1.2
Priority: optional
Section: web
Origin: Ubuntu
Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
Original-Maintainer: Debian Nginx Maintainers <pkg-nginx-maintainers@lists.alioth.debian.org>
Bugs: https://bugs.launchpad.net/ubuntu/+filebug
Installed-Size: 44
Depends: nginx-core (<< 1.18.0-0ubuntu1.2.1~) | nginx-full (<< 1.18.0-0ubuntu1.2.1~) | nginx-light (<< 1.18.0-0ubuntu1.2.1~) | nginx-extras (<< 1.18.0-0ubuntu1.2.1~), nginx-core (>= 1.18.0-0ubuntu1.2) | nginx-full (>= 1.18.0-0ubuntu1.2) | nginx-light (>= 1.18.0-0ubuntu1.2) | nginx-extras (>= 1.18.0-0ubuntu1.2)
Filename: pool/main/n/nginx/nginx_1.18.0-0ubuntu1.2_all.deb
…

Para mostrar información adicional sobre cada candidato, incluyendo una lista completa de dependencias inversas (una lista de paquetes que dependen del paquete consultado), utilice el showpkgcomando. Esto incluirá información sobre la relación de este paquete con otros paquetes:

apt-cache showpkg package

Mostrar información sobre un paquete .deb

Para mostrar detalles sobre un .debarchivo, puede usar la --infobandera con el dpkgcomando. El objetivo de este comando debe ser la ruta de un .debarchivo:

dpkg --info debfile.deb

Esto le mostrará metadatos sobre el paquete en cuestión, como el nombre y la versión, la arquitectura para la que fue creado, el tamaño y las dependencias requeridas, una descripción y los conflictos.

Para enumerar específicamente las dependencias (paquetes de los que depende este paquete) y las dependencias inversas (los paquetes que dependen de este paquete), puede utilizar la apt-cacheutilidad.

Para obtener información de dependencia convencional, puede utilizar el dependssubcomando:

apt-cache depends nginx

Outputnginx
 |Depends: nginx-core
 |Depends: nginx-full
 |Depends: nginx-light
  Depends: nginx-extras
 |Depends: nginx-core
 |Depends: nginx-full
 |Depends: nginx-light
  Depends: nginx-extras

Esto mostrará información sobre cada paquete que figure como dependencia dura, sugerencia, recomendación o conflicto.

Si necesita saber qué paquetes dependen de un paquete determinado, puede pasar ese paquete a apt-cache rdepends:

apt-cache rdepends package

Mostrar versiones de paquetes instalados y disponibles

A menudo, existen varias versiones de un paquete en los repositorios, con un único paquete predeterminado. Para ver las versiones disponibles de un paquete, puede usar apt-cache policy:

apt-cache policy package

Esto le mostrará qué versión está instalada (si hay alguna), el paquete que se instalará de manera predeterminada si no especifica una versión con el comando de instalación y una tabla de versiones de paquetes, completa con el peso que indica la prioridad de cada versión.

Esto permite determinar qué versión se instalará y qué alternativas están disponibles. Dado que también se listan los repositorios donde se encuentra cada versión, permite determinar si hay repositorios adicionales que reemplacen los paquetes de los repositorios predeterminados.

Mostrar paquetes instalados con dpkg -l

Para mostrar los paquetes instalados en su sistema, tiene algunas opciones separadas, que varían en formato y nivel de detalle de salida.

El primer método implica usar el comando dpkgo el dpkg-querycomando con la -lbandera. El resultado de ambos comandos es idéntico. Sin argumentos, proporciona una lista de todos los paquetes instalados o parcialmente instalados en el sistema. El resultado será similar a esto:

dpkg -l

OutputDesired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                                        Version                                 Architecture Description
+++-===========================================-=======================================-============-=====================================================================================================================
ii  account-plugin-generic-oauth                0.10bzr13.03.26-0ubuntu1.1              amd64        GNOME Control Center account plugin for single signon - generic OAuth
ii  accountsservice                             0.6.34-0ubuntu6                         amd64        query and manipulate user account information
ii  acl                                         2.2.52-1                                amd64        Access control list utilities
ii  acpi-support                                0.142                                   amd64        scripts for handling many ACPI events
ii  acpid                                       1:2.0.18-1ubuntu2                       amd64        Advanced Configuration and Power Interface event daemon
. . .

La salida continúa para cada paquete del sistema. En la parte superior de la salida, se puede ver el significado de los tres primeros caracteres de cada línea. El primer carácter indica el estado deseado del paquete. Puede ser:

  • u : Desconocido
  • i : Instalado
  • r : Eliminado
  • p : Purgado
  • h : Versión mantenida

El segundo carácter indica el estado real del paquete, tal como lo conoce el sistema de embalaje. Estos pueden ser:

  • n : No instalado
  • i : Instalado
  • c : Los archivos de configuración están presentes, pero la aplicación está desinstalada.
  • u : Descomprimido. Los archivos están descomprimidos, pero aún no están configurados.
  • f : El paquete está a medio instalar, lo que significa que hubo una falla durante la instalación que detuvo la operación.
  • w : El paquete está esperando un disparador de un paquete separado
  • p : El paquete ha sido activado por otro paquete.

El tercer carácter, que será un espacio en blanco para la mayoría de los paquetes, solo tiene otra opción potencial:

  • r : Esto indica que se requiere una reinstalación. Esto suele significar que el paquete está dañado y no funciona.

El resto de las columnas contienen el nombre del paquete, la versión, la arquitectura y una descripción.

Mostrar estados de instalación de paquetes filtrados

Si añade un patrón de búsqueda después del -lpatrón, dpkgse mostrarán todos los paquetes (instalados o no) que lo contengan. Por ejemplo, puede buscar bibliotecas de procesamiento YAML aquí:

dpkg -l libyaml*

OutputDesired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name            Version      Architecture Description
+++-===============-============-============-===================================
ii  libyaml-0-2:amd 0.1.4-2ubunt amd64        Fast YAML 1.1 parser and emitter li
ii  libyaml-dev:amd 0.1.4-2ubunt amd64        Fast YAML 1.1 parser and emitter li
un  libyaml-perl    <none>                    (no description available)
un  libyaml-syck-pe <none>                    (no description available)
ii  libyaml-tiny-pe 1.51-2       all          Perl module for reading and writing

Como puede ver en la primera columna, el tercer y cuarto resultado no están instalados. Esto le muestra todos los paquetes que coinciden con el patrón, así como sus estados actual y deseado.

Una forma alternativa de renderizar los paquetes que están instalados en su sistema es con dpkg –get-selections.

Esto proporciona una lista de todos los paquetes instalados o eliminados pero no purgados:

dpkg --get-selections

Para diferenciar entre estos dos estados, puede canalizar la salida de dpkga awkpara filtrar por estado. Para ver solo los paquetes instalados, escriba:

dpkg --get-selections | awk '$2 ~ /^install/'

Para obtener una lista de paquetes eliminados cuyos archivos de configuración no se han purgado, puede escribir:

dpkg --get-selections | awk '$2 !~ /^install/'

Quizás también desee obtener más información sobre cómo canalizar la salida de comandos a través de awk .

Buscar paquetes instalados

Para buscar un paquete específico en la base de datos de paquetes instalados, puede agregar una cadena de filtro de paquetes después de la --get-selectionsopción. Esto permite la coincidencia con comodines. De nuevo, esto mostrará los paquetes instalados o que aún tengan archivos de configuración en el sistema:

dpkg --get-selections libz*

Puedes, una vez más, filtrar utilizando las awkexpresiones de la sección anterior.

Lista de archivos instalados por un paquete

Para saber de qué archivos es responsable un paquete, puede utilizar la -Lbandera con el dpkgcomando:

dpkg -L package

Esto imprimirá la ruta absoluta de cada archivo controlado por el paquete. No se incluirán los archivos de configuración generados por los procesos dentro del paquete.

Para saber qué paquete es responsable de un determinado archivo en su sistema de archivos, puede pasar la ruta absoluta al dpkgcomando con la -Sbandera.

Esto imprimirá el paquete que instaló el archivo en cuestión:

dpkg -S /path/to/file

Tenga en cuenta que cualquier archivo que se mueva a su lugar mediante scripts posteriores a la instalación no se puede vincular nuevamente al paquete con esta técnica.

Descubra qué paquete proporciona un archivo sin instalarlo

Usando dpkg, puedes averiguar qué paquete contiene un archivo usando la -Sopción. Sin embargo, a veces necesitas saber qué paquete contiene un archivo o comando, incluso si no tienes instalado el paquete asociado.

Para ello, necesitará instalar una utilidad llamada apt-file. Esta mantiene su propia base de datos, que incluye la ruta de instalación de cada archivo controlado por un paquete en la base de datos.

Instale el apt-filepaquete de forma normal:

sudo apt update
sudo apt install apt-file

Ahora, actualice la base de datos de la herramienta y busque un archivo escribiendo:

sudo apt-file update
sudo apt-file search /path/to/file

Esto solo funcionará con las ubicaciones de archivos instaladas directamente por un paquete. No se pueden consultar los archivos creados mediante scripts posteriores a la instalación. En el siguiente paso, aprenderá a importar y exportar listas de paquetes instalados.

Paso 6: Transferencia de listas de paquetes entre sistemas

Muchas veces, puede que necesite hacer una copia de seguridad de la lista de paquetes instalados de un sistema y usarla para instalar un conjunto idéntico de paquetes en otro. Esto también es útil para realizar copias de seguridad. Esta sección le mostrará cómo exportar e importar listas de paquetes.

Si necesita replicar el conjunto de paquetes instalados en un sistema a otro, primero deberá exportar su lista de paquetes.

Puede exportar la lista de paquetes instalados a un archivo redirigiendo la salida dpkg --get-selectionsa un archivo de texto:

dpkg --get-selections > ~/packagelist.txt

Quizás también desee obtener más información sobre la redirección de entrada y salida .

Luego esta lista se puede copiar a la segunda máquina e importar.

También podría necesitar hacer una copia de seguridad de sus listas de fuentes y de su lista de claves de confianza. Puede hacer una copia de seguridad de sus fuentes creando un nuevo directorio y copiándolo desde la configuración del sistema en /etc/apt/:

mkdir ~/sources
cp -R /etc/apt/sources.list* ~/sources

Cualquier clave que haya agregado para instalar paquetes desde repositorios de terceros se puede exportar usando apt-key exportall:

apt-key exportall > ~/trusted_keys.txt

Ahora puede transferir el packagelist.txtarchivo, el sourcesdirectorio y el trusted_keys.txtarchivo a otra computadora para importar.

Lista de paquetes de importación

Si ha creado una lista de paquetes utilizando como se demostró anteriormente, también dpkg --get-selectionspuede importar los paquetes en otra computadora usando el comando.dpkg

Primero, debe agregar las claves de confianza e implementar las listas de fuentes que copió del primer entorno. Suponiendo que todos los datos respaldados se hayan copiado al directorio de inicio del nuevo equipo, podría escribir:

sudo apt-key add ~/trusted_keys.txt
sudo cp -R ~sources/* /etc/apt/

A continuación, borre el estado de todos los paquetes no esenciales del nuevo equipo. Esto garantizará que los cambios se apliquen desde cero. Debe hacerlo con la cuenta o sudoprivilegios de root:

sudo dpkg --clear-selections

Esto marcará todos los paquetes no esenciales para su desinstalación. Debe actualizar la lista de paquetes local para que su instalación contenga registros de todo el software que planea instalar. El proceso de instalación y actualización se gestionará mediante una herramienta llamada dselect.

Debe asegurarse de que la dselectherramienta esté instalada. Esta herramienta mantiene su propia base de datos, por lo que también debe actualizarla antes de continuar:

sudo apt update
sudo apt install dselect
sudo dselect update

A continuación, puede aplicar la lista de paquetes sobre la lista actual para configurar qué paquetes se deben conservar o descargar:

sudo dpkg --set-selections < packagelist.txt

Esto establece los estados correctos del paquete. Para aplicar los cambios, ejecute apt dselect-upgrade:

sudo apt dselect-upgrade

Esto descargará e instalará los paquetes necesarios. También eliminará los paquetes marcados para deseleccionar. Al final, la lista de paquetes debería coincidir con la del equipo anterior, aunque aún será necesario copiar o modificar los archivos de configuración. Puede usar una herramienta como etckeeper para migrar los archivos de configuración desde el /etcdirectorio.

En el siguiente y último paso, aprenderá a trabajar con repositorios de paquetes de terceros.

Paso 7: Agregar repositorios y PPA

Aunque el conjunto predeterminado de repositorios que ofrecen la mayoría de las distribuciones suele ser el más fácil de mantener, a veces pueden ser útiles fuentes adicionales. En esta sección, aprenderá a configurar sus herramientas de empaquetado para consultar fuentes adicionales.

Una alternativa a los repositorios tradicionales en Ubuntu son los PPA, o archivos de paquetes personales . Otras versiones de Linux suelen utilizar conceptos de repositorios de terceros diferentes, pero similares. Normalmente, los PPA tienen un alcance menor que los repositorios y contienen conjuntos específicos de aplicaciones mantenidas por el propietario del PPA.

Añadir PPAs a su sistema le permite gestionar los paquetes que contienen con sus herramientas habituales de gestión de paquetes. Esto puede utilizarse para proporcionar paquetes más actualizados que no están incluidos en los repositorios de la distribución. Asegúrese de añadir únicamente PPAs de confianza, ya que estará permitiendo que un mantenedor no estándar cree paquetes para su sistema.

Para agregar un PPA, puede usar el add-apt-repositorycomando. El objetivo debe incluir la etiqueta ppa:, seguida del nombre del propietario del PPA en Launchpad , una barra diagonal y el nombre del PPA:

sudo add-apt-repository ppa:owner_name/ppa_name

Es posible que se le solicite que acepte la clave del empaquetador. Posteriormente, el PPA se añadirá a su sistema, lo que le permitirá instalar los paquetes con los aptcomandos habituales. Antes de buscar o instalar paquetes, asegúrese de actualizar su caché local con la información sobre su nuevo PPA:

sudo apt update

También puede editar la configuración de su repositorio directamente. Puede editar el /etc/apt/sources.listarchivo o crear una nueva lista en el /etc/apt/sources.list.ddirectorio. Si opta por esta última opción, el nombre del archivo que cree debe terminar en .list:

sudo nano /etc/apt/sources.list.d/new_repo.list

Dentro del archivo, puedes agregar la ubicación del nuevo repositorio utilizando el siguiente formato: /etc/apt/sources.list.d/new_repo.list

deb_or_deb-src url_of_repo release_code_name_or_suite component_names

Las diferentes partes de la especificación del repositorio son:

  • deb o deb-src : Identifica el tipo de repositorio. Los repositorios convencionales se marcan con deb, mientras que los repositorios de código fuente empiezan con deb-src.
  • URL : La URL principal del repositorio. Esta debe ser la ubicación donde se puede encontrar el repositorio.
  • nombre del código de lanzamiento o suite : generalmente, este es el nombre del código del lanzamiento de su distribución, pero puede ser cualquier nombre que se use para identificar un conjunto específico de paquetes creados para su versión de la distribución.
  • Nombres de componentes : Las etiquetas para la selección de paquetes que desea tener disponibles. Esta suele ser una distinción proporcionada por el responsable del repositorio para indicar la fiabilidad o las restricciones de licencia del software que contiene.

Puede agregar estas líneas dentro del archivo. La mayoría de los repositorios contienen información sobre el formato exacto que debe usarse. En otras distribuciones de Linux, puede agregar fuentes de repositorio adicionales instalando paquetes que solo contienen un archivo de configuración para ese repositorio, lo cual es coherente con el funcionamiento de los administradores de paquetes.

Conclusión

La gestión de paquetes es quizás el aspecto más importante de la administración de un sistema Linux. Existen muchas otras operaciones de gestión de paquetes que puede realizar, pero este tutorial le ha proporcionado una base de los fundamentos de Ubuntu, muchos de los cuales son generalizables a otras distribuciones con pequeños cambios.

Stephen Dove
Comments

March 17, 2025

Cómo mantener actualizados los servidores Ubuntu 22.04

Introducción

En este tutorial, explorarás algunas prácticas recomendadas para mantener tu servidor Ubuntu 22.04 actualizado. Al igual que con el fortalecimiento de la seguridad de la red , existen diversas medidas que puedes tomar para garantizar que tus servidores sigan funcionando de forma segura sin necesidad de intervención futura.

Hay varias herramientas y configuraciones que puedes aplicar a la mayoría de los servidores Ubuntu, además de las que vienen configuradas automáticamente. Si administras tu propio servidor, parchear todos tus entornos manualmente puede ser bastante problemático y propenso a errores.

Este tutorial cubrirá:

  • Probar reinicios elegantes siguiendo las mejores prácticas para la gestión de aplicaciones, para minimizar cualquier complicación derivada de las actualizaciones de mantenimiento
  • Configurar actualizaciones automáticas para la mayoría de los paquetes y bibliotecas que se ejecutan en su máquina
  • Aplicación de parches de kernel en vivo y otras prácticas recomendadas en torno a las actualizaciones del kernel

Prerrequisitos

  • Un servidor Ubuntu 22.04 y un usuario no root con privilegios sudo. Puede obtener más información sobre cómo configurar un usuario con estos privilegios en nuestra guía “Configuración inicial del servidor con Ubuntu 22.04” .

Paso 1: Seguir las mejores prácticas para la gestión de aplicaciones

Un aspecto fundamental de la configuración de su servidor para actualizaciones automáticas es garantizar que todas las aplicaciones que se ejecutan en él puedan reiniciarse correctamente tras una inactividad imprevista o un reinicio. Los administradores de paquetes de Linux están diseñados para ejecutarse sin interrupciones en segundo plano, de modo que el mantenimiento necesario no genere sobrecarga adicional. A pesar de ello, una de las razones más comunes para no contar con una buena estrategia de actualización es la preocupación por el comportamiento del servidor tras el reinicio.

Siempre que sea posible, las aplicaciones de su pila deben ser administradas por el sistema de inicio de su servidor, que en la mayoría de las distribuciones modernas de Linux, incluyendo Ubuntu, es systemd. Systemd proporciona el comando systemctl para interactuar con los servicios en ejecución y reiniciarlos automáticamente cuando sea necesario. Prácticamente todo el software instalado a través de su gestor de paquetes y diseñado para ejecutarse en segundo plano debería proporcionar automáticamente un servicio systemd y un archivo de unidad de configuración como práctica recomendada.

Al ejecutar su propio software, o software implementado desde repositorios de Git, es recomendable escribir sus propios archivos de unidad para integrarlos con systemd. Como alternativa ligera, puede preferir usar una herramienta como supervisor . También puede usar el programador cron de su sistema con la @rebootsintaxis.

Una vez establecida la configuración, asegúrese de probarla reiniciando el sistema. Puede reiniciar ejecutando sudo shutdown now -r, lo que detendrá automáticamente los procesos en ejecución y reiniciará el sistema inmediatamente. También puede especificar una hora en hh:mm o en minutos, en lugar de nowpara programar un reinicio futuro. Las implementaciones de producción generalmente no deberían requerir su atención después de interrupciones imprevistas, y todos los servicios y endpoints necesarios deberían volver a estar operativos automáticamente.

Ahora que se ha asegurado de que su entorno no tendrá problemas para persistir durante los reinicios de mantenimiento, en el siguiente paso aprenderá a programar actualizaciones automáticas.

Paso 2: Configuración de actualizaciones no supervisadas

El gestor de paquetes de Ubuntu, apt, cuenta con un flujo de trabajo bien establecido para realizar una actualización completa del sistema. Primero, se ejecuta apt updatepara actualizar la lista de paquetes y, a continuación, se ejecuta apt upgradesin especificar ningún paquete para actualizar todos los paquetes del sistema. Este flujo de trabajo puede variar ligeramente si existen conflictos de versiones con paquetes de terceros o si se mantienen algunos paquetes sin actualizar intencionalmente, pero los comandos principales son los mismos.

Ubuntu ofrece una herramienta única llamada ” unattended-upgradespara recuperar e instalar automáticamente parches de seguridad y otras actualizaciones esenciales para su servidor”. La mayoría de los servidores Ubuntu vienen con esta herramienta instalada y configurada automáticamente, pero puede instalarla con los siguientes aptcomandos:

sudo apt update
sudo apt install unattended-upgrades

Después de la instalación, puede comprobar que el unattended-upgradesservicio se está ejecutando mediante systemctl:

sudo systemctl status unattended-upgrades.service

Output● unattended-upgrades.service - Unattended Upgrades Shutdown
     Loaded: loaded (/lib/systemd/system/unattended-upgrades.service; enabled; vendor preset: enabled)
     Active: active (running) since Mon 2022-02-14 17:51:49 UTC; 3h 4min ago
       Docs: man:unattended-upgrade(8)
   Main PID: 829 (unattended-upgr)
      Tasks: 2 (limit: 1137)
     Memory: 10.6M
     CGroup: /system.slice/unattended-upgrades.service

La configuración predeterminada de unattended-upgradesrecuperará automáticamente las correcciones de errores y las actualizaciones de seguridad para la mayoría de los paquetes incluidos en los repositorios de Ubuntu. Sin embargo, si utiliza versiones anteriores de algunos paquetes para evitar cambios originales, o si su servidor utiliza repositorios de paquetes de terceros además de los de Ubuntu, puede configurar el unattended-upgradesservicio con más detalle.

Su configuración se almacena en /etc/apt/apt.conf.d/50unattended-upgrades. Abra este archivo con nanosu editor de texto favorito:

sudo nano /etc/apt/apt.conf.d/50unattended-upgrades

El archivo está bien anotado y se pueden ver numerosas líneas de comentarios de código (que empiezan por //) que explican su funcionalidad. El primer bloque de configuración gestiona qué paquetes se actualizarán automáticamente, siguiendo una plantilla para los nombres de los repositorios de paquetes de Ubuntu. Los archivos del repositorio principal y del -securityrepositorio se actualizarán por defecto, pero las líneas que contienen los repositorios -updates, -proposedy -backportsestán comentadas por defecto.

Estos repositorios están deshabilitados por defecto porque es más probable que contengan cambios importantes en los paquetes instalados. Para habilitarlos manualmente para actualizaciones automáticas, puede eliminar los //símbolos de comentario de estas líneas. /etc/apt/apt.conf.d/50actualizaciones-unattendidas

// Automatically upgrade packages from these (origin:archive) pairs
//
// Note that in Ubuntu security updates may pull in new dependencies
// from non-security sources (e.g. chromium). By allowing the release
// pocket these get automatically pulled in.
Unattended-Upgrade::Allowed-Origins {
        "${distro_id}:${distro_codename}";
        "${distro_id}:${distro_codename}-security";
        // Extended Security Maintenance; doesn't necessarily exist for
        // every release and this system may not have it installed, but if
        // available, the policy for updates is such that unattended-upgrades
        // should also install from here by default.
        "${distro_id}ESMApps:${distro_codename}-apps-security";
        "${distro_id}ESM:${distro_codename}-infra-security";
//      "${distro_id}:${distro_codename}-updates";
//      "${distro_id}:${distro_codename}-proposed";
//      "${distro_id}:${distro_codename}-backports";
};
…

Más abajo en el archivo, hay varias opciones con interruptores truede falseconfiguración. Por ejemplo, hay un interruptor para reiniciar automáticamente tras la instalación de paquetes que requieren reinicio para que surtan efecto. Puede habilitar esta opción eliminando el //símbolo de comentario y cambiándolo falsepor true. Sin embargo, al hacerlo, su servidor dejará de estar disponible a intervalos impredecibles. Si habilita esta opción, asegúrese de que sus aplicaciones o usuarios puedan tolerar tiempos de inactividad. /etc/apt/apt.conf.d/50actualizaciones-unattendidas

// Automatically reboot *WITHOUT CONFIRMATION* if
//  the file /var/run/reboot-required is found after the upgrade
//Unattended-Upgrade::Automatic-Reboot "false";

Guarde y cierre el archivo al terminar de editarlo. Si usa nano, presione Ctrl+X, luego, cuando se le solicite, Yy luego Enter.

Si realizó cambios en la configuración, reinicie el unattended-upgradesservicio para que surtan efecto:

sudo systemctl restart unattended-upgrades.service

Ahora debería contar con soluciones para garantizar que todos los paquetes de su servidor reciban actualizaciones de seguridad esenciales sin necesidad de intervención adicional. En el último paso, aprenderá a mantener su kernel actualizado y a gestionar mejor los reinicios del servidor cuando sean necesarios.

Paso 3: Actualización y parcheo en vivo del kernel

Con menos frecuencia que otros paquetes, necesitará actualizar el kernel de su sistema. El kernel de Linux contiene (casi) todos los controladores de hardware en ejecución y es responsable de la mayoría de las interacciones de bajo nivel del sistema. Las actualizaciones del kernel generalmente solo son necesarias si existe una vulnerabilidad importante que abordar, si necesita usar una nueva característica del kernel ya conocida o si su kernel es tan antiguo que existe un mayor riesgo de acumular errores y vulnerabilidades que quizás desconozca.

No existe un método universal para programar automáticamente las actualizaciones del kernel de Linux. Esto se debe a que, históricamente, las actualizaciones del kernel han requerido un reinicio completo del sistema, y ​​programar reinicios es imposible sin hacer suposiciones sobre el entorno. Se espera que muchos servidores proporcionen una disponibilidad lo más cercana posible a las 24 horas, los 7 días de la semana, y un reinicio puede tardar un tiempo indeterminado o requerir intervención manual.

Si está dispuesto a tolerar algún tiempo de inactividad, actualizar su kernel es sencillo: aptpuede configurar las actualizaciones automáticas para instalar y preparar nuevos kernels junto con otros paquetes, y tras reiniciar, su servidor debería usar automáticamente el nuevo kernel. La mayoría de las implementaciones de producción requieren una complejidad adicional en torno a este tipo de reinicios para garantizar la disponibilidad del servicio. Por ejemplo, podría usar un balanceador de carga para redirigir automáticamente el tráfico a servidores que puedan ofrecer la misma funcionalidad en una implementación de escala horizontal mientras se reinician individualmente en secuencia, para evitar cualquier tiempo de inactividad visible.

Habilitar Livepatch para garantizar el tiempo de actividad del servidor durante las actualizaciones del kernel

Para evitar tiempos de inactividad durante las actualizaciones del kernel, puede usar una función del kernel de Linux llamada parches en vivo. Esta función permite implementar actualizaciones del kernel sin reiniciar. Hay dos proveedores principales de parches en vivo del kernel: Canonical, que ofrece su propio servicio Livepatch para Ubuntu, y KernelCare, que ofrece soporte para Ubuntu, además de la mayoría de las principales distribuciones de Linux. Ambos requieren registro para su uso, y solo el servicio de Canonical es gratuito para uso individual.

Puede registrarse para obtener una clave de Livepatch en https://auth.livepatch.canonical.com/ . Después de registrarse, puede instalar el canonical-livepatchpaquete snap. Snap es otro gestor de paquetes de Ubuntu que se ejecuta junto con apt.

sudo snap install canonical-livepatch

Puedes habilitarlo canonical-livepatchcon un comando de una línea usando la clave de su sitio web:

sudo canonical-livepatch enable your-key

La salida debe contener el mensaje Successfully enabled device.El servicio debe ejecutarse en segundo plano a partir de ahora sin ninguna intervención adicional y puede verificar su estado mediante canonical-livepatch status:

sudo canonical-livepatch status

Outputlast check: 50 seconds ago
kernel: 5.15.0-25-generic
server check-in: succeeded
patch state: ✓ all applicable livepatch modules inserted
patch version: 84.1
tier: updates (Free usage; This machine beta tests new patches.)
machine id: 2565a9e7fc9f4405a167e4caf9b9dcf3

Ahora ha configurado actualizaciones automáticas del kernel para su servidor, lo que significa que ya no debería ser necesario reiniciar para mantener un entorno seguro y actualizado.

Conclusión

En este tutorial, exploraste diversas estrategias para mantener tus servidores Ubuntu actualizados automáticamente. También aprendiste algunos detalles sobre los repositorios de paquetes, las actualizaciones del kernel y la gestión de reinicios del servidor. Estos son fundamentos importantes de DevOps y del trabajo con servidores en general, y casi todas las configuraciones de producción se basan en estos conceptos básicos.

A continuación, puede que quieras aprender más sobre la gestión de paquetes en Ubuntu . Si quieres saber más sobre el formato de paquetes Snap, visita nuestro tutorial ” Cómo empaquetar y publicar una aplicación Snap” .

Stephen Dove
Comments

March 17, 2025

Cómo instalar Linux, Apache, MySQL y PHP (LAMP) en Ubuntu 20.04 [Inicio rápido]

Introducción

En esta guía de inicio rápido, instalaremos una pila LAMP en un servidor Ubuntu 20.04.

Para obtener una versión más detallada de este tutorial, con más explicaciones de cada paso, consulte Cómo instalar la pila Linux, Apache, MySQL, PHP (LAMP) en Ubuntu 20.04

Prerrequisitos

Para seguir esta guía, necesitará acceso a un servidor Ubuntu 20.04 como sudousuario.

Paso 1 — Instalar Apache

Actualice el caché de su administrador de paquetes y luego instale Apache con:

sudo apt update
sudo apt install apache2

Una vez finalizada la instalación, deberá ajustar la configuración de su firewall para permitir el tráfico HTTP en su servidor. Ejecute el siguiente comando para permitir el acceso externo en el puerto 80(HTTP):

sudo ufw allow in "Apache"

Con la nueva regla de firewall añadida, puede comprobar si el servidor está en funcionamiento accediendo a la dirección IP pública o al nombre de dominio desde su navegador web. Verá una página como esta:

Apache predeterminado en Ubuntu 20.04

Paso 2 — Instalar MySQL

Ahora instalaremos MySQL, un popular sistema de gestión de bases de datos utilizado en entornos PHP.

Nuevamente, utilice aptpara adquirir e instalar este software:

sudo apt install mysql-server

Al finalizar la instalación, se recomienda ejecutar un script de seguridad preinstalado con MySQL. Inicie el script interactivo ejecutando:

sudo mysql_secure_installation

Se le preguntará si desea configurar el [nombre de la cuenta VALIDATE PASSWORD PLUGIN]. Responda Y“sí” o cualquier otra opción para continuar sin habilitarlo. Si responde “sí”, se le pedirá que seleccione un nivel de validación de contraseña.

A continuación, su servidor le solicitará que seleccione y confirme una contraseña para el usuario root de MySQL . Aunque el método de autenticación predeterminado para el usuario root de MySQL no requiere contraseña, incluso si se configura una , le recomendamos definir una contraseña segura como medida de seguridad adicional.

Para el resto de las preguntas, presione Yy marque la ENTERtecla en cada indicación.

Nota: Al momento de escribir este artículo, la biblioteca PHP nativa de MySQL mysqlnd no es compatible con caching_sha2_authentication , el método de autenticación predeterminado para MySQL 8. Por lo tanto, al crear usuarios de bases de datos para aplicaciones PHP en MySQL 8, deberá asegurarse de que estén configurados para usar mysql_native_passworden su lugar. Consulte el paso 6 de nuestra guía detallada de LAMP en Ubuntu 20.04 para saber cómo hacerlo.

Paso 3 — Instalar PHP

Para instalar PHP y sus dependencias, ejecute:

sudo apt install php libapache2-mod-php php-mysql

Una vez finalizada la instalación, puedes ejecutar el siguiente comando para confirmar tu versión de PHP:

php -v

OutputPHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies
    with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

Paso 4: Crea un host virtual para tu sitio web

En esta guía, configuraremos un dominio llamado your_domain , pero deberá reemplazarlo con su propio nombre de dominio .

Apache en Ubuntu 20.04 tiene un bloque de servidor habilitado por defecto, configurado para servir documentos desde el /var/www/htmldirectorio. En lugar de modificar [nombre del directorio] /var/www/html, crearemos una estructura de directorios dentro /var/wwwdel sitio “your_domain”/var/www/html , dejando [nombre del directorio] como directorio predeterminado para servir documentos si una solicitud de cliente no coincide con ningún otro sitio.

Cree el directorio para su_dominio de la siguiente manera:

sudo mkdir /var/www/your_domain

A continuación, asigne la propiedad del directorio con la $USERvariable de entorno, que hará referencia a su usuario actual del sistema:

sudo chown -R $USER:$USER /var/www/your_domain

Luego, abra un nuevo archivo de configuración en el directorio de Apache sites-availableusando su editor de línea de comandos preferido:

sudo nano /etc/apache2/sites-available/your_domain.conf

Esto creará un nuevo archivo en blanco. Pegue la siguiente configuración básica: /etc/apache2/sitios-disponibles/su_dominio.conf

<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain 
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Guarda y cierra el archivo al terminar. Si usas nano, puedes hacerlo presionando CTRL+X, luego Yy ENTER.

Ahora puedes usar a2ensitepara habilitar el nuevo host virtual:

sudo a2ensite your_domain

Para deshabilitar el sitio web predeterminado de Apache, escriba:

sudo a2dissite 000-default

Para asegurarse de que su archivo de configuración no contenga errores de sintaxis, ejecute:

sudo apache2ctl configtest

Por último, recargue Apache para que estos cambios surtan efecto:

sudo systemctl reload apache2

Tu nuevo sitio web ya está activo, pero la raíz web sigue vacía. Crea un archivo en esa ubicación para que podamos comprobar que el host virtual funciona correctamente./var/www/your_domainindex.html

nano /var/www/your_domain/index.html

Incluya el siguiente contenido en este archivo: /var/www/tu_dominio/index.html

<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>

Ahora vaya a su navegador y acceda nuevamente al nombre de dominio o dirección IP de su servidor:

http://server_domain_or_IP

Verás una página como ésta:

Prueba de host virtual Apache

Paso 5: Probar PHP con Apache

Ahora crearemos un script de prueba PHP para confirmar que Apache puede manejar y procesar solicitudes de archivos PHP.

Crea un nuevo archivo con el nombre info.phpdentro de tu carpeta raíz web personalizada:

nano /var/www/your_domain/info.php

Se abrirá un archivo en blanco. Añada el siguiente contenido dentro del archivo: /var/www/su_dominio/info.php

<?php
phpinfo();

Cuando haya terminado, guarde y cierre el archivo.

Vaya a su navegador web y acceda al nombre de dominio o dirección IP de su servidor, seguido del nombre del script, que en este caso es info.php:

http://server_domain_or_IP/info.php

Verás una página similar a ésta:

Información sobre PHP en Ubuntu 20.04

Después de verificar la información relevante sobre su servidor PHP en esa página, es recomendable eliminar el archivo que creó, ya que contiene información confidencial sobre su entorno PHP y su servidor Ubuntu. Puede usar rm:

sudo rm /var/www/your_domain/info.php

Stephen Dove
Comments

March 17, 2025

Configuración inicial del servidor con Ubuntu 20.04

Introducción

Cuando crea por primera vez un nuevo servidor Ubuntu 20.04, debe realizar algunos pasos de configuración importantes como parte de la configuración básica. Estos pasos aumentarán la seguridad y utilidad de su servidor, y le brindará una base sólida para las siguientes acciones.

Paso 1: Iniciar sesión como root

Para iniciar sesión en su servidor, deberá conocer la dirección IP pública de este. También necesitará la contraseña o, si instaló una clave SSH para la autenticación, la clave privada para la cuenta del root user. Si aún no inició sesión en su servidor, quizá desee seguir nuestra guía sobre cómo establecer conexión con servidor mediante SSH, que cubre con detalle este proceso.

Si aún no está conectado con su servidor, inicie sesión como root user usando ahora el siguiente comando (sustituya la parte resaltada del comando por la dirección IP pública de su servidor):

ssh root@your_server_ip

Acepte la advertencia sobre la autenticidad del host si aparece. Si utiliza la autenticación con contraseña, proporcione su contraseña root para iniciar sesión. Si utiliza una clave SSH protegida con una frase de contraseña, es posible que se le solicite ingresar esta última la primera vez que utilice la clave en cada sesión. Si es la primera vez que inicia sesión en el servidor con una contraseña, puede que también se le solicite cambiar la contraseña root.

Acerca de root

El root user es el usuario administrativo en un entorno Linux y tiene privilegios muy amplios. Debido a estos privilegios mayores de la cuenta root, no se recomienda usarla de manera regular. Esto se debe a que parte del poder inherente de la cuenta root es la capacidad de realizar cambios muy destructivos, incluso por accidente.

El siguiente paso es configurar una nueva cuenta de usuario con menos privilegios para el uso cotidiano. Más tarde, le enseñaremos cómo obtener más privilegios solo durante los momentos en que los necesite.

Paso 2: Crear un nuevo usuario

Una vez que haya iniciado sesión como root, estaremos preparados para añadir la nueva cuenta de usuario. En el futuro, iniciaremos sesión con esta nueva cuenta en vez de con root.

En este ejemplo se crea un nuevo usuario llamado sammy, pero debe sustituirlo por cualquier nombre de usuario que prefiera:

adduser sammy

Se le harán algunas preguntas, comenzando con la contraseña de la cuenta.

Introduzca una contraseña segura y, opcionalmente, complete la información adicional si lo desea. Esto no es obligatorio y puede pulsar ENTER en cualquier campo que desee omitir.

Paso 3: Conceder privilegios administrativos

Ahora, tenemos una nueva cuenta de usuario con privilegios de una cuenta regular. Sin embargo, a veces necesitaremos realizar tareas administrativas.

Para evitar tener que cerrar la sesión de nuestro usuario normal y volver a iniciar sesión como cuenta root, podemos configurar lo que se conoce como “superusuario” o privilegios root para nuestra cuenta normal. Esto permitirá a nuestro usuario normal ejecutar comandos con privilegios administrativos anteponiendo la palabra sudo a cada comando.

Para añadir estos privilegios a nuestro nuevo usuario, debemos agregarlo al grupo sudo. Por defecto, en Ubuntu 20.04, los usuarios que son miembros del grupo sudo pueden usar el comando sudo.

Como root, ejecute este comando para añadir su nuevo usuario al grupo sudo (sustituya el nombre de usuario resaltado por su nuevo usuario):

usermod -aG sudo sammy

Ahora, cuando inicie sesión como usuario normal, puede escribir sudo antes de los comandos para realizar acciones con privilegios de superusuario.

Paso 4: Configurar un firewall básico

Los servidores Ubuntu 20.04 pueden usar el firewall UFW para garantizar que solo se permiten las conexiones con ciertos servicios. Podemos configurar un firewall básico fácilmente usando esta aplicación.

Nota: Si sus servidores están funcionan con DigitalOcean, puede usar de manera opcional los firewalls en la nube de DigitalOcean en lugar del firewall UFW. Recomendamos usar solo un firewall a la vez para evitar reglas conflictivas que pueden ser difíciles de depurar.

Las aplicaciones pueden registrar sus perfiles con UFW tras la instalación. Estos perfiles permiten a UFW gestionar estas aplicaciones por su nombre. OpenSSH, el servicio que nos permite conectar con nuestro servidor ahora, tiene un perfil registrado con UFW.

Puede ver esto escribiendo lo siguiente:

ufw app list

OutputAvailable applications:
  OpenSSH

Debemos asegurarnos que el firewall permite conexiones SSH de forma que podamos iniciar sesión de nuevo la próxima vez. Podemos permitir estas conexiones escribiendo lo siguiente:

ufw allow OpenSSH

Posteriormente, podemos habilitar el firewall escribiendo:

ufw enable

Escriba y y pulse INTRO para continuar. Puede ver que las conexiones SSH aún están permitidas escribiendo lo siguiente:

ufw status

OutputStatus: active

To                         Action      From
--                         ------      ----
OpenSSH                    ALLOW       Anywhere
OpenSSH (v6)               ALLOW       Anywhere (v6)

Ya que el firewall está bloqueando actualmente todas las conexiones excepto SSH, si instala y configura servicios adicionales, deberá ajustar la configuración del firewall para permitir el tráfico entrante. Puede obtener más información sobre algunas operaciones comunes de UFW en nuestra guía Puntos esenciales de UFW.

Paso 5: Habilitar el acceso externo para su usuario normal

Ahora que tenemos un usuario regular para el uso cotidiano, debemos asegurarnos que podemos realizar SSH en la cuenta directamente.

Nota: Mientras no verifique que pueda iniciar sesión y usar sudo con su nuevo usuario, le recomendamos permanecer conectado como root. De esta manera, si tiene problemas, puede resolverlos y realizar cualquier cambio necesario como root. Si utiliza un Droplet de DigitalOcean y experimenta problemas con su conexión SSH de root, puede iniciar sesión en el Droplet usando la consola de DigitalOcean.

El proceso para configurar el acceso SSH de su nuevo usuario depende de que en la cuenta root de su servidor se utilicen una contraseña o claves SSH para la autenticación.

Si en la cuenta root se utiliza la autenticación con contraseña

Si inició sesión en su cuenta root usando una contraseña, entonces la autenticación con contraseña estará habilitada para SSH. Puede aplicar SSH en su nueva cuenta de usuario abriendo una nueva sesión de terminal y usando SSH con su nuevo nombre de usuario:

ssh sammy@your_server_ip

Después de ingresar la contraseña de su usuario normal, iniciará sesión. Recuerde que si necesita ejecutar un comando con privilegios administrativos debe escribir sudo antes de este, como se muestra a continuación:

sudo command_to_run

Se le solicitará la contraseña de su usuario normal cuando utilice sudo por primera vez en cada sesión (y periódicamente después).

Para mejorar la seguridad de su servidor, le recomendamos enfáticamente establecer claves de SSH en lugar de usar la autenticación con contraseña. Siga nuestra guía de configuración de claves de SSH en Ubuntu 20.04 para aprender a configurar la autenticación basada en claves.

Si en la cuenta root se utiliza la autenticación con clave SSH

Si inició sesión en su cuenta root usando claves SSH, la autenticación con contraseña estará desactivada para SSH. Para iniciar sesión correctamente deberá añadir una copia de su clave pública local al archivo ~/.ssh/authorized_keys del nuevo usuario.

Debido a que su clave pública ya está en el archivo ~/.ssh/authorized_keys de la cuenta root, podemos copiar esa estructura de archivos y directorios a nuestra nueva cuenta de usuario en nuestra sesión existente.

El medio más sencillo para copiar los archivos con la propiedad y los permisos adecuados es el comando rsync. Con este, se copiará el directorio .ssh del usuario root, se conservarán los permisos y se modificarán los propietarios de archivos; todo a través de un solo comando. Asegúrese de cambiar las porciones resaltadas del comando que se muestra a continuación para que coincida con el nombre de su usuario normal:

Nota: El comando rsync trata de manera diferente las fuentes y destinos que tienen una barra diagonal al final respecto de aquellos que no la tienen. Al usar rsync a continuación, asegúrese de que en el directorio de origen (~/.ssh) no se incluya una barra diagonal al final (verifique que no esté usando ~/.ssh/).

Si accidentalmente añade una barra diagonal al final del comando, en rsync se copiará el contenido del directorio ~/.ssh de la cuenta root al directorio principal del usuario sudo en lugar de la estructura de directorios completa ~/.ssh. Los archivos se encontrarán en la ubicación equivocada y SSH no podrá encontrarlos ni utilizarlos.

rsync --archive --chown=sammy:sammy ~/.ssh /home/sammy

Ahora, abra una nueva sesión terminal en su equipo local, y utilice SSH con su nuevo nombre de usuario:

ssh sammy@your_server_ip

Su sesión de la nueva cuenta de usuario deberá iniciarse sin contraseña. Recuerde que si necesita ejecutar un comando con privilegios administrativos debe escribir sudo antes de este, como se muestra a continuación:

sudo command_to_run

Se le solicitará la contraseña de su usuario normal cuando utilice sudo por primera vez en cada sesión (y periódicamente después).

¿Dónde puedo ir desde aquí?

En este momento, dispondrá de una base sólida para su servidor. Ahora podrá instalar el software que necesite en su servidor.

Stephen Dove
Comments

March 17, 2025

Los 50+ mejores comandos de Linux que DEBES conocer

Introducción

¿Usas comandos de Linux con frecuencia? Hoy veremos más de 50 comandos de Linux que debes conocer . Los siguientes son algunos de los más útiles y usados.

Prerrequisitos

Ejecutaremos estos comandos en un servidor Ubuntu, pero puedes seguirlos en cualquier distribución moderna de Linux. Puedes configurar un servidor Ubuntu para este tutorial siguiendo nuestra guía de Configuración Inicial del Servidor en Ubuntu .

Implementa tus aplicaciones frontend desde GitHub con la plataforma de aplicaciones IsnHosting . Deja que IsnHosting se encargue de escalar tu aplicación.

¡Vamos directo al grano!
Los 50 principales comandos de Linux que debes conocer como usuario habitual

ls : el comando más utilizado en Linux para listar directorios
pwd - Comando para imprimir el directorio de trabajo en Linux
cd - Comando de Linux para navegar por directorios
mkdir - Comando utilizado para crear directorios en Linux
mv - Mover o renombrar archivos en Linux
cp : uso similar a mv pero para copiar archivos en Linux
rm - Eliminar archivos o directorios
tocar - Crear archivos en blanco/vacíos
ln - Crea enlaces simbólicos (accesos directos) a otros archivos
clear - Limpia la pantalla del terminal
cat - Mostrar el contenido del archivo en la terminal
echo - Imprime cualquier texto que siga al comando
less - Comando de Linux para mostrar salidas paginadas en la terminal
man - Accede a las páginas del manual para todos los comandos de Linux
uname - Comando de Linux para obtener información básica sobre el sistema operativo
whoami - Obtener el nombre de usuario activo
tar - Comando para extraer y comprimir archivos en Linux
grep - Busca una cadena dentro de una salida
cabeza - Devuelve el número especificado de líneas desde la parte superior
tail - Devuelve el número especificado de líneas desde la parte inferior
diff - Encuentra la diferencia entre dos archivos
cmp - Le permite comprobar si dos archivos son idénticos
comm - Combina la funcionalidad de diff y cmp
sort - Comando de Linux para ordenar el contenido de un archivo durante la salida
exportar - Exportar variables de entorno en Linux
zip - Archivos zip en Linux
unzip - Descomprimir archivos en Linux
ssh - Comando de Secure Shell en Linux
servicio - Comando de Linux para iniciar y detener servicios
ps - Mostrar procesos activos
kill y killall : elimina procesos activos por ID o nombre de proceso
df - Mostrar información del sistema de archivos del disco
mount - Montar sistemas de archivos en Linux
chmod - Comando para cambiar los permisos de archivos
chown - Comando para otorgar propiedad sobre archivos o carpetas
ifconfig - Mostrar interfaces de red y direcciones IP
traceroute : rastrea todos los saltos de la red para llegar al destino
wget - Descarga directa de archivos desde internet
ufw - Comando de firewall
iptables : firewall base con el que pueden interactuar todas las demás utilidades de firewall
apt, pacman, yum, rpm - Gestores de paquetes según la distribución
sudo - Comando para escalar privilegios en Linux
cal - Ver un calendario de línea de comandos
alias - Crea atajos personalizados para los comandos que usas habitualmente
dd - Se utiliza principalmente para crear memorias USB de arranque.
whereis - Localiza las páginas binarias, de origen y del manual de un comando
whatis - Encuentra para qué se utiliza un comando
Arriba : Ver los procesos activos en vivo con su uso del sistema
useradd y usermod : agregar un nuevo usuario o cambiar los datos de un usuario existente
passwd - Crear o actualizar contraseñas para usuarios existentes

Ahora, profundicemos un poco más en cada uno de estos comandos y los comprendamos con más detalle. Ya contamos con numerosos artículos sobre cada uno de ellos. Para su comodidad, añadiremos enlaces a todos los artículos existentes y los actualizaremos a medida que se aborden nuevos temas.

El comando ls en Linux

Este comando ls se usa para listar archivos y directorios en el directorio de trabajo actual. Es uno de los comandos de Linux más usados ​​que debes conocer.

Comando ls predeterminado

Como puede ver en la imagen anterior, usar el comando solo, sin argumentos, nos dará una salida con todos los archivos y directorios del directorio. El comando ofrece mucha flexibilidad para mostrar los datos en la salida.

Obtenga más información sobre el uso del lscomando

El comando pwd en Linux

Este comando pwd permite imprimir el directorio de trabajo actual en la terminal. Es un comando muy básico y cumple su función a la perfección.

Salida predeterminada de pwd

De todas formas, el indicador de terminal debería mostrar el directorio completo. Pero si no es así, este comando puede ser un recurso rápido para ver el directorio en el que se encuentra. Otra aplicación de este comando es la creación de scripts, donde permite encontrar el directorio donde se guardó el script.

El comando cd en Linux

Al trabajar en la terminal, navegar entre directorios es prácticamente necesario. El comando cd es uno de los comandos importantes de Linux que debes conocer y te ayudará a navegar por los directorios. Simplemente escribe ” cd y luego directorio”, como se muestra a continuación.

root@ubuntu:~# cd

Comando cd predeterminado

Como puede ver en el comando anterior, simplemente escribí cd /etc/para acceder al directorio /etc. Usamos el comando pwd para imprimir el directorio de trabajo actual.

El comando mkdir en Linux

El comando mkdir le permite crear directorios desde dentro de la terminal.

root@ubuntu:~# mkdir

mkdir predeterminado

Como puede ver en la captura de pantalla anterior, creamos el directorio JournalDev con solo este simple comando.

Los comandos cp y mv

Los comandos cp”y” mv son equivalentes a los comandos “copiar-pegar” y “cortar-pegar” de Windows. Sin embargo, como Linux no tiene un comando para renombrar archivos, también lo usamos mv para renombrar archivos y carpetas.

root@ubuntu:~# cp

Comando cp predeterminado

En el comando anterior, creamos una copia del archivo llamado Sample. Veamos qué sucede si usamos el comando de mv la misma manera.

root@ubuntu:~# mv < destino

Comandos mv de Linux que debes conocer

En el caso anterior, al mover el archivo dentro del mismo directorio, actuó como un cambio de nombre. El nombre del archivo ha cambiado.

El comando rm en Linux

En la sección anterior, eliminamos el archivo Sample-Copy. El comando rm se usa para eliminar archivos y carpetas y es uno de los comandos importantes de Linux que debes conocer.

root@ubuntu:~# rm

rm predeterminado

Para eliminar un directorio, debe agregarle el -r argumento. Sin el -r argumento, el comando rm no eliminará los directorios.

root@ubuntu:~# rm -r

En Linux, el argumento-r del comando rm significa ” recursivo “. Al usarla con este comando rm , eliminará recursivamente no solo el archivo especificado, sino también todos sus subdirectorios y los archivos dentro de ellos.

Nota: Es importante tener cuidado al usar el comando rm con el argumento -r, ya que puede eliminar rápida y permanentemente una gran cantidad de archivos y directorios. Es recomendable usar el argumento -i junto con el argumento -r, lo que le solicitará confirmación antes de eliminar cada archivo y directorio.

Por ejemplo, para eliminar el mydirectorio y su contenido con confirmación, puede utilizar este comando:

root@ubuntu:~# rm -rmdir mydirectorio

Esto le solicitará confirmación antes de eliminar cada archivo y directorio dentro del mydirectorio.

El comando touch en Linux

El comando touch en Linux crea un archivo vacío o actualiza la marca de tiempo de un archivo existente.

root@ubuntu:~# touch

Comando táctil: comandos de Linux que debes conocer

El comando ln en Linux

Para crear un enlace a otro archivo, usamos el lncomando. Este es uno de los comandos de Linux más importantes que debes conocer si planeas trabajar como administrador de Linux.

root@ubuntu:~# ln -s

Enlace simbólico predeterminado

El argumento -s crea un enlace simbólico (también conocido como enlace simbólico o enlace simbólico) a un archivo o directorio. Un enlace simbólico es un tipo especial de archivo que actúa como acceso directo o puntero a otro archivo o directorio.

De forma predeterminada, el comando ln creará enlaces duros en lugar de enlaces simbólicos o blandos.

Nota: Supongamos que tiene un archivo de texto. Si crea un enlace simbólico a ese archivo, este solo apunta al archivo original. Si elimina el archivo original, el enlace se romperá, ya que no tendrá adónde apuntar.

Un enlace físico es una copia reflejada de un archivo original con el mismo contenido. Al igual que los enlaces simbólicos, si edita el contenido del archivo original, los cambios se reflejarán en el enlace físico. Sin embargo, si elimina el archivo original, el enlace físico seguirá funcionando y podrá verlo y editarlo como si fuera una copia normal del archivo original.

Obtenga más información sobre enlaces blandos y duros .

El comando clear en Linux

El clearcomando en Linux borra la pantalla de la terminal. Elimina todo el texto y la salida que se muestran en la terminal y te ofrece una página en blanco para trabajar.

A continuación se muestra un ejemplo de cómo utilizar el comando clear:

root@ubuntu:~# clear

Esto borrará la pantalla del terminal y moverá el cursor a la esquina superior izquierda de la pantalla.

También puedes usar el comando clear en combinación con otros comandos, como este:

root@ubuntu:~# ls -l; clear

Esto listará los archivos y directorios en el directorio actual y luego borrará la pantalla del terminal.

Nota: Este comando clear no elimina ningún archivo ni dato del sistema. Solo afecta la visualización de la terminal.


Los comandos cat, echo, y less

Para mostrar el contenido de un archivo o imprimir cualquier cosa en la salida del terminal, usamos los comandos cat”or” echo. Veamos su uso básico.

root@ubuntu:~# cat
root@ubuntu:~# echo

Comandos de cat y echo

Como puede ver en el ejemplo anterior, el comando cat, al usarlo en nuestro archivo New-File, imprime el contenido del archivo. Al mismo tiempo, al usar el comando echo , simplemente imprime lo que sigue después del comando.

Este comando less se utiliza cuando la salida impresa por cualquier comando es mayor que el espacio de la pantalla y requiere desplazamiento. less permite al usuario descomponer la salida y desplazarse por ella con las teclas Intro o Espacio.

La forma sencilla de hacer esto es mediante el uso del operador de pipe ( | ).

root@ubuntu:~# cat /boot/grub/grub.cfg | less

Nota: Usa el argumento -S con less para habilitar el ajuste de línea. Esto te permitirá ver líneas largas de texto sin tener que desplazarte horizontalmente.

Usa el argumento -N con less para mostrar los números de línea. Esto puede ser útil cuando necesitas saber el número de línea de un texto específico.

Puedes utilizar estas útiles argumentos de la siguiente manera:

root@ubuntu:~# cat /boot/grub/grub.cfg | less -SN

Usar less el operador de pipe puede ser útil en diversas situaciones. Aquí hay algunos ejemplos:

Visualizar la salida de un comando de ejecución prolongada, como topo htop.
Búsqueda de texto específico en la salida de un comando, como grep o cat.

El comando man en Linux

Este comando man es muy útil en Linux y es fundamental conocerlo. Al trabajar con Linux, los paquetes que descargamos pueden tener muchísimas funciones. Saberlo todo es imposible.

En Linux, el comando man se usa para mostrar la página del manual de un comando específico. Proporciona información detallada sobre el comando, incluyendo su sintaxis, opciones y ejemplos.

A continuación se muestra un ejemplo de cómo utilizar el comando man:

Abra una terminal y escriba man ls para mostrar la página del manual del comando ls.

root@ubuntu:~# man ls

Esto mostrará una página que se parece a esto:

Output
LS(1) User Commands LS(1)

NAME
ls – list directory contents

SYNOPSIS
ls [OPTION]… [FILE]…

DESCRIPTION
List information about the FILEs (the current directory by default).

   Sort entries alphabetically if none of -cftuvSUX nor --sort is specified.

   Mandatory arguments to long options are mandatory for short options too.

   -a, --all
          do not ignore entries starting with .

   -A, --almost-all
          do not list implied . and ..

   -c     with -lt: sort by, and show, ctime (time of last modification
          of file status information) with -l: show ctime and sort
          by name; 

Los comandos uname y whoami

Los comandos uname y whoami le permiten acceder a información básica que resulta útil cuando trabaja en varios sistemas.

El comando uname en Linux muestra información sobre el kernel del sistema, incluido el nombre del kernel, el nombre del host, la versión del kernel, la versión del kernel y el nombre del hardware de la máquina.

El comando whoami en Linux devuelve el nombre de usuario del usuario actual. Significa “¿quién soy?” y se usa a menudo para determinar la identidad del usuario actual en scripts de shell o en la terminal.

Veamos la salida de ambos comandos y la forma en que podemos utilizarlos.

root@ubuntu:~# uname -a

Comandos uname y whoami Comandos de Linux que debes conocer

El parámetro -a con uname el comando significa “all”. Esto imprime la información completa. Si no se añade el parámetro, la salida será “Linux”.

Nota: Algunas banderas importantes que puedes usar con el unamecomando.

Úselo uname -s para mostrar el nombre del núcleo.
Úselo uname -n para mostrar el nombre del host.
Úselo uname -r para mostrar la versión del kernel.
Úselo uname -v para mostrar la versión del kernel.
Úselo uname -m para mostrar el nombre del hardware de la máquina.

Los comandos tar, zip, y unzip

En Linux, este comando tar se usa para crear y extraer archivos comprimidos. Podemos extraer varios archivos comprimidos diferentes con este comando tar.

Para crear un archivo, usamos el parámetro -c , y para extraerlo, usamos el parámetro -x. Veamos cómo funciona.

Comprimir

root@ubuntu:~# tar -cvf

Extraer

root@ubuntu:~# tar -xvf

Uso básico de Tar: Comandos de Linux que debes conocer

En la primera línea, creamos un archivo comprimido llamado Compress.tar con New-File y New-File-Link. En el siguiente comando, extrajimos esos archivos del archivo comprimido.

Analicemos los comandos zip y unzip. Ambos son muy sencillos. Puedes usarlos sin parámetros y funcionarán correctamente. Veamos un ejemplo a continuación.

root@ubuntu:~# zip
root@ubuntu:~# unzip

Comandos de descompresión de archivos Zip

Como ya tenemos esos archivos en el mismo directorio, el comando unzip nos pregunta antes de sobre scribirlos.

El comando grep en Linux

Este comando grep es una herramienta de búsqueda de texto potente y versátil en sistemas operativos Linux y Unix. Permite buscar patrones o cadenas específicos en uno o más archivos y filtrar la salida de otros comandos.

El comando grep significa “impresión de expresión regular global”, lo que refleja su capacidad para buscar expresiones regulares en múltiples líneas y archivos.

root@ubuntu:~# | grep “”

Ejemplo de comando grep

Esta fue una demostración sencilla del comando. Obtenga más información sobre el comando grep .

Los comandos head y tail

Al generar archivos grandes, los comandos head y tail resultan útiles. Estos comandos muestran el inicio o el final de un archivo, respectivamente. Se utilizan comúnmente para ver rápidamente el contenido de un archivo sin tener que abrirlo en un editor de texto.

Los comandos heady tail muestran las primeras 10 líneas de un archivo de forma predeterminada. Para mostrar un número diferente de líneas, puede usar la -n opción y, a continuación, indicar el número de líneas que desee mostrar.

A continuación se muestra un ejemplo del uso de los comandos heady :tail

root@ubuntu:~# head
root@ubuntu:~# tail

Comando principal

Como puede ver, el comando head mostró 10 líneas desde la parte superior del archivo.

Comandos Tail Command de Linux que debes conocer

El comando tail generó las últimas 10 líneas del archivo.

Estos comandos se pueden usar para ver rápidamente el contenido de un archivo, monitorear actualizaciones en tiempo real para solucionar problemas, filtrar la salida de otros comandos y realizar análisis de registros.

Los comandos diff, comm, y cmp

Los comandos diff, comm, y cmp se utilizan para comparar archivos en sistemas operativos Linux y Unix. Estos comandos permiten identificar diferencias entre dos archivos, fusionar cambios y realizar otras tareas de comparación.

root@ubuntu:~# diff

Comando Diff: Comandos de Linux que debes conocer

Como puede ver arriba, hemos agregado un pequeño fragmento de texto que dice “Esta línea está editada” al archivo Nuevo-Archivo-Editado.

El comando cmp se usa para comparar dos archivos y mostrar el primer byte que difiere entre ellos. Puede usarse para identificar diferencias entre archivos binarios o para verificar si hay archivos dañados.

root@ubuntu:~# cmp

Comando cmp

El comando cmp solo nos indica el número de línea, que es diferente. No el texto real.

El comando comm se utiliza para comparar dos archivos ordenados y mostrar las líneas que son únicas para cada archivo, así como las líneas que son comunes a ambos archivos.

root@ubuntu:~# comm

Comando de comunicaciones

El texto alineado a la izquierda solo está presente en file 1. El texto alineado al centro solo está presente en file 2. Y el texto alineado a la derecha está presente en ambos archivos.

Al parecer, el comando comm tiene más sentido cuando intentamos comparar archivos más grandes y nos gustaría ver todo organizado junto.

Estos tres comandos son herramientas esenciales para trabajar con archivos en sistemas operativos Linux y Unix. Al comprender el uso eficaz de los comandos diff, comm y cmp, podrá identificar diferencias entre archivos, fusionar cambios y realizar otras tareas de comparación de archivos.

Estos comandos pueden ayudarte a identificar y resolver problemas con los archivos, así como a realizar un seguimiento de los cambios y mantener el control de versiones. Tanto si eres desarrollador como administrador de sistemas, estos comandos son esenciales para tu conjunto de herramientas.

El comando sort en Linux

El comando sort se utiliza para ordenar líneas en un archivo de texto o en la entrada estándar en sistemas operativos Linux y Unix. Permite ordenar líneas en orden ascendente o descendente, así como realizar otras operaciones de ordenación, como ordenar por campos o usar un orden personalizado.

La sintaxis básica del sortcomando es:

root@ubuntu:~# sort

Comando de ordenamiento: Comandos de Linux que debes conocer

De forma predeterminada, el comando sort ordena las líneas en secuencia de intercalación ASCII , lo que puede generar resultados inesperados al ordenar números o caracteres especiales. Para ordenar números numéricamente, puede usar la -n opción.

A continuación se muestra un ejemplo del uso de la opción -n:

root@ubuntu:~# sort -n file.txt

El comando anterior ordenará las líneas en file.txt orden numérico.

El comando sort también se puede utilizar para ordenar líneas según campos específicos utilizando la opción -k.

A continuación se muestra un ejemplo del uso de la -kopción:

root@ubuntu:~# sort -k 2 file.txt

Este comando ordenará las líneas file.txt según el segundo campo.

Este comando sort es una herramienta potente y flexible para trabajar con archivos de texto en sistemas operativos Linux y Unix. Al comprender su uso eficaz de sort, podrá ordenar líneas en archivos de texto, ordenar líneas según campos específicos y realizar otras operaciones de ordenación.

Estos comandos pueden ayudarte a organizar y analizar datos, así como a realizar otras tareas de manipulación de archivos. Tanto si eres desarrollador como administrador de sistemas, este comando sort es esencial en tu conjunto de herramientas.

El comando export en Linux

En sistemas operativos Linux y Unix, el comando export se utiliza para configurar variables de entorno. Estas variables almacenan información que puede ser utilizada por procesos o comandos.

Una vez que se configura una variable de entorno, cualquier proceso o comando que se ejecute en el mismo shell puede acceder a ella.

Las variables de entorno se pueden utilizar para almacenar una amplia gama de información, como configuraciones, preferencias de usuario o información del sistema.

A continuación se muestra un ejemplo del uso del comando export:

root@ubuntu:~# export =

Variables de entorno de exportación

Obtenga más información sobre el comando export

El comando ssh en Linux

Este comando ssh, en sistemas operativos Linux y Unix, establece una conexión de shell segura con un servidor remoto. Proporciona una conexión cifrada segura entre los servidores local y remoto, lo que permite a los usuarios ejecutar comandos y transferir archivos de forma segura.

La sintaxis básica del comando ssh es:

root@ubuntu:~ ssh username@remote-server

Este comando establece una conexión ssh con el usuario en el remote-server de la cuenta username.

El comando ssh admite una amplia gama de opciones y configuraciones, incluidas:

Configurar métodos de autenticación (contraseña, clave pública, etc.)
Configuración de algoritmos de cifrado
Configurar la compresión
Configuración del reenvío de puertos
Configuración del reenvío X11
Configuración de claves SSH

El comando service en Linux

En Linux, este comando service se utiliza para administrar los servicios del sistema, que son procesos de larga duración que se inician al arrancar el sistema y se ejecutan en segundo plano. Estos servicios se encargan de proporcionar diversas funcionalidades del sistema, como la red, la gestión de bases de datos y la autenticación de usuarios.

El comando service se utiliza para iniciar, detener, reiniciar y comprobar el estado de estos servicios. Es una interfaz para el comando systemctl, que se utiliza para gestionar el administrador de servicios.

La sintaxis básica del comando es la siguiente.

root@ubuntu:~ service ssh status
root@ubuntu:~ service ssh stop
root@ubuntu:~ service ssh start

Comando de servicio

Como puedes ver en la imagen, el servidor ssh está ejecutándose en nuestro sistema.

Los comandos ps, kill, y kill all

Los comandos ps, kill, y kill all se utilizan para administrar procesos en Linux.

Este comando ps se utiliza para mostrar información sobre los procesos que se están ejecutando en el sistema. A continuación, se muestran algunos ejemplos de su uso ps:

Mostrar una lista de todos los procesos en ejecución:

root@ubuntu:~ ps -ef

Mostrar una lista de todos los procesos para un ID de proceso específico (PID):

root@ubuntu:~ ps -p PID

Veamos todo esto en acción:

root@ubuntu:~ ps
root@ubuntu:~ kill
root@ubuntu:~ kill all

Para fines de demostración, crearemos un script de shell con un bucle infinito y lo ejecutaremos en segundo plano.

Con el &símbolo, podemos pasar un proceso a segundo plano. Como puede ver, se crea un nuevo proceso bash con el PID 14490.

Comandos de ps Command para Linux que debes conocer

Ahora, para matar un proceso con el comando kill, puede escribir kill seguido del PID (Id. de proceso) del proceso.

Comandos Kill Command de Linux que debes conocer

Pero si no conoce el ID del proceso y solo desea matar el proceso con el nombre, puede utilizar el comando kill all.

Comando Kill all: Comandos de Linux que debes conocer

Notarás que el PID 14490permaneció activo. Esto se debe a que, en ambas ocasiones, cancelamos el proceso de suspensión.

Obtenga más información sobre el comando ps y el comando kill.

Los comandos df y mount

Al trabajar con Linux, los comandos df y mount son utilidades muy eficientes para montar sistemas de archivos y obtener detalles del sistema de archivos.

El comando df se utiliza para mostrar la cantidad de espacio en disco utilizado y disponible en los sistemas de archivos, y mount se utiliza para montar un sistema de archivos o un dispositivo en un directorio específico.

Cuando decimos mount, significa que conectaremos el dispositivo a una carpeta para poder acceder a los archivos de nuestro sistema de archivos. La sintaxis predeterminada para montar un sistema de archivos es la siguiente:

root@ubuntu:~ mount /dev/cdrom /mnt
root@ubuntu:~ df -h

En el caso anterior, /dev/cdrom es el dispositivo que debe montarse. Normalmente, un dispositivo montable se encuentra dentro de la /dev carpeta. mnt es la carpeta de destino donde se montará el dispositivo. Puede cambiarla a cualquier carpeta que desee, pero la hemos usado /mnt porque es la carpeta predeterminada del sistema para montar dispositivos.

Para ver los dispositivos montados y obtener más información sobre ellos, usamos el comando df. Con solo escribirlo, df obtenemos los datos en bytes, que no son legibles. Por lo tanto, usaremos el -h parámetro para que los datos sean legibles.

Comandos de Linux que debes conocer en df Command

Los comandos chmod y chown

Los comandos chmod y chown se utilizan para modificar los permisos y la propiedad de archivos en Linux.

El comando chmod se utiliza para cambiar los permisos de un archivo o directorio, y el comando chown se utiliza para cambiar la propiedad de un archivo o directorio.

La sintaxis predeterminada para ambos comandos es chmod filenameychown filename

root@ubuntu:~ chmod +x loop.sh
root@ubuntu:~ chmod root:root loop.sh

Comando chmod: Comandos de Linux que debes conocer

En el ejemplo anterior, agregamos permisos de ejecución al loop.sh archivo con el comando chmod. Además, con este comando chown, solo el usuario root y los usuarios del grupo root podrán acceder a él.

Comandos chown de Linux que debes conocer

Como notarás, root root ahora se ha cambiado la parte www-data que corresponde al nuevo usuario que tiene propiedad total del archivo.

Obtenga más información sobre los permisos de archivos de Linux y el uso del comando chmod.

Los comandos ifconfig y traceroute

Los comandos ifconfig y traceroute administran interfaces de red y rastrean la ruta de los paquetes de red en Linux.

El comando ifconfig le proporcionará la lista de todas las interfaces de red junto con las direcciones IP, direcciones MAC y otra información sobre la interfaz.

root@ubuntu:~ ifconfig

Hay varios parámetros que se pueden utilizar, pero aquí trabajaremos con el comando básico.

Comando ifconfig: comandos de Linux que debes conocer

El comando traceroute se utiliza para rastrear la ruta de los paquetes de red y determinar el camino que toman para llegar a un destino específico.

Al trabajar con traceroute, puede simplemente especificar la dirección IP, el nombre de host o el nombre de dominio del punto final.

root@ubuntu:~ traceroute

Comando traceroute comandos de Linux que debes conocer

Ahora, obviamente, localhost solo hay un salto (la interfaz de red). Puedes probar este mismo comando con cualquier otro nombre de dominio o dirección IP para ver todos los enrutadores por los que pasan tus paquetes de datos para llegar a su destino.

Obtenga más información sobre las útiles herramientas de red de Linux .

El comando wget en Linux

Si desea descargar un archivo desde la terminal, este comando wget es una de las utilidades de línea de comandos más prácticas disponibles. Es uno de los comandos de Linux más importantes que debe conocer al trabajar con archivos fuente.

Al especificar el enlace de descarga, debe ser un enlace directo al archivo. Si el comando no puede acceder al archivo wget, simplemente descargará la página web en formato HTML en lugar del archivo deseado.

Probemos con un ejemplo. La sintaxis básica del comando wget es:

root@ubuntu:~ wget

O,

root@ubuntu:~ wget -c

El argumento -c nos permite reanudar una descarga interrumpida.

Los comandos ufw y iptables

Los comandos ufw y iptables se utilizan para administrar firewalls en Linux.

UFW e IPTables son interfaces de firewall para el firewall Netfilter del kernel de Linux. IPTables pasa directamente las reglas del firewall a Netfilter, mientras que UFW configura las reglas en IPTables, que a su vez las envía a Netfilter.

¿Por qué necesitamos UFW si tenemos IPTables? Porque IPTables es bastante difícil para un principiante. UFW lo simplifica muchísimo. Vea el ejemplo a continuación, donde intentamos habilitar el puerto 80 para nuestro servidor web.

root@ubuntu:~# iptables -A INPUT -p tcp -m tcp –dport 80 -j ACCEPT
root@ubuntu:~# ufw allow 80

¡Seguro que ya sabes por qué se creó UFW! Observa lo sencilla que es la sintaxis. Ambos firewalls son muy completos y te permiten crear cualquier tipo de configuración que necesites para tu red. Aprende al menos los conceptos básicos de UFW o de IPTables, ya que son los comandos de Linux que debes conocer.

Obtenga más información sobre cómo administrar el firewall conufw y cómo administrar el firewall coniptables .

Gestores de paquetes en Linux

Las distintas distribuciones de Linux usan distintos gestores de paquetes. Como trabajamos en un servidor Ubuntu, tenemos el apt gestor de paquetes. Sin embargo, para alguien que trabaja en una máquina Fedora, Red Hat, Arch o CentOS, el gestor de paquetes será diferente.

A continuación se muestran los comandos sobre cómo utilizar estos administradores de paquetes en diferentes distribuciones de Linux.

Debian y distribuciones basadas en Debian -apt install <package name>
Arch y distribuciones basadas en Arch -pacman -S <package name>
Red Hat y distribuciones basadas en Red Hat -yum install <package name>
Fedora y CentOS -yum install <package>

Familiarizarse con el gestor de paquetes de su distribución le facilitará mucho las cosas a largo plazo. Así que, incluso si tiene instalada una herramienta de gestión de paquetes basada en GUI, pruebe a usar la herramienta basada en CLI antes de pasar a la utilidad GUI. Añada estos comandos a su lista de comandos de Linux imprescindibles.

El comando sudo en Linux

“Un gran poder conlleva una gran responsabilidad”

Esta es la cita que se muestra cuando un usuario con sudo habilitado (sudoer) usa el sudocomando para escalar privilegios por primera vez. Este comando equivale a iniciar sesión como root(según los permisos que tenga como sudo).

non-root-user@ubuntu:~# sudo
Password:

Simplemente añade el comando sudo antes de cualquier comando que necesites ejecutar con privilegios elevados, y listo. Es muy fácil de usar, pero también puede suponer un riesgo de seguridad adicional si un usuario malintencionado accede a un sudo.

Obtenga más información sobre cómo crear un nuevo sudo usuario y cómo editar el archivo sudoers .

El comando cal en Linux

¿Alguna vez has querido ver el calendario en la terminal? Parece que hay gente que quiere que suceda, y bueno, aquí está.

El comando cal muestra un calendario bien presentado en la terminal. Simplemente introdúzcalo calen el indicador de la terminal.

root@ubuntu:~# cal
root@ubuntu:~# cal March 2024

Salida del comando Cal

Aunque no lo necesitamos a menudo, ¡es una gran adición! Es una opción increíble para los fanáticos de las terminales.

El comando alias

¿Tienes algún comando que ejecutes con mucha frecuencia al usar la terminal? Podría ser rm -ro ls -l, o algo más largo como tar -xvzf.

Este es uno de los comandos de Linux que mejoran la productividad y que debes conocer.

Si conoce un comando que ejecuta muy a menudo, es hora de crear un alias.

¿Qué es un alias? En pocas palabras, es otro nombre para un comando que has definido.

root@ubuntu:~# alias lsl=”ls -l”
OR
root@ubuntu:~# alias rmd=”rm -r”

Ahora, cada vez que ingreses ls -la rm de la terminal, recibirás la salida que habrías recibido si hubieras utilizado los comandos completos.

Los ejemplos aquí son para comandos muy pequeños que aún se pueden escribir a mano en cualquier momento. Sin embargo, en situaciones donde un comando tiene demasiados argumentos que se deben escribir, es mejor crear una versión abreviada.

El comando dd en Linux

Este comando se creó para convertir y copiar archivos de múltiples formatos de sistemas de archivos. Actualmente, se usa simplemente para crear USB de arranque para Linux, pero aún se pueden realizar algunas tareas importantes con él.

En Linux, este comando dd es versátil y se utiliza para copiar y convertir datos a bajo nivel. Significa “descripción de datos” o “definición de datos” y permite copiar y convertir datos entre diferentes formatos de archivo y dispositivos de almacenamiento.

Por ejemplo, si quisiéramos hacer una copia de seguridad de todo el disco duro tal como está en otra unidad, usaríamos el comando dd.

root@ubuntu:~# dd if=/dev/sdb of=/dev/sda

Los argumentos if y of representan el archivo de entrada y el archivo de salida .

Es una herramienta potente y flexible, pero también puede ser peligrosa si no se usa con cuidado. Siempre revise la sintaxis y asegúrese de comprender la función del comando antes de ejecutarlo.

Los comandos whereis y whatis

Los comandos whereis y whatis se utilizan en Linux para buscar información sobre programas y archivos.

El comando whereis ubica las páginas binarias, de origen y del manual de un comando o programa específico, y whatis muestra una breve descripción de un comando o programa.

root@ubuntu:~# whereis sudo
sudo: /usr/bin/sudo /usr/lib/sudo /usr/share/man/man8/sudo.8.gz

El whatiscomando nos da una explicación de lo que realmente es un comando.

root@ubuntu:~# whatis sudo
sudo (8) – execute a command as another user

El comando top en Linux

En algunas secciones anteriores, hablamos sobre el comando ps. Observaron que ps este mostrará los procesos activos y finalizará automáticamente.

El comando top es como una versión CLI del administrador de tareas de Windows.

El comando top en Linux es una herramienta de monitorización del sistema que muestra información en tiempo real sobre los procesos del sistema y el uso de recursos. Proporciona una vista dinámica y en tiempo real de la actividad del sistema, incluyendo el uso de la CPU, el uso de la memoria y la información de los procesos.

Principales comandos de salida de comandos de Linux que debes conocer

Nota: A continuación se muestran algunos ejemplos del uso del comando top:

Ordenar procesos por uso de memoria:

root@ubuntu:~# top -o MEM

Esto ordenará la lista de procesos por uso de memoria, con los procesos con mayor uso de memoria en la parte superior.

Mostrar información detallada sobre un proceso específico:

root@ubuntu:~# top -p PID

Reemplace PIDcon el ID del proceso que desea inspeccionar.

Mostrar un resumen del uso de los recursos del sistema:

root@ubuntu:~# top -n 1

Esto mostrará una única pantalla de resumen del uso de los recursos del sistema.

Es una herramienta poderosa y flexible para monitorear la actividad del sistema y solucionar problemas de rendimiento.

Los comandos useradd y usermod

Los comandos useradd y usermod se utilizan en Linux para administrar cuentas de usuario.

Los comandos useradd “o” adduser son exactamente los mismos, pero adduser solo contienen un enlace simbólico useradd. Este comando permite crear un nuevo usuario en Linux.

root@ubuntu:~# useradd JournalDev -d /home/JD

El comando anterior creará un nuevo usuario JournalDev cuyo directorio de inicio será /home/JD.

El comando usermod, por otro lado, se utiliza para modificar usuarios existentes. Se puede modificar cualquier valor del usuario, incluyendo grupos, permisos, etc.

Por ejemplo, si desea agregar más grupos al usuario, puede escribir:

root@ubuntu:~# usermod JournalDev -a -G sudo, audio, mysql

El comando passwd en Linux

Ahora que ya sabes cómo crear nuevos usuarios, vamos a configurar también sus contraseñas. El comando passwd te permite configurar la contraseña para tu propia cuenta o, si tienes los permisos necesarios, para otras cuentas.

A continuación se muestran algunos ejemplos del uso del comando passwd:

Cambiar la contraseña del usuario actual:

root@ubuntu:~# passwd

Esto le pedirá que ingrese una nueva contraseña para el usuario actual.

Cambiar la contraseña de un usuario específico:

root@ubuntu:~# passwd username

Reemplace username con el nombre del usuario cuya contraseña desea cambiar.

Obligar a un usuario a cambiar su contraseña en el próximo inicio de sesión:

root@ubuntu:~# passwd -f username

Establecer una fecha de vencimiento para la contraseña de un usuario:

root@ubuntu:~# passwd -e -n days -w warn days username

Reemplace days con el número de días antes de que expire la contraseña y warm days con el número de días antes de que expire la contraseña que se le advertirá al usuario.

Estos son solo algunos ejemplos del uso del comando passwd en Linux. Al comprender cómo usarlo eficazmente, podrá administrar las cuentas de usuario y garantizar la seguridad de su sistema.

Comando passwd

Conclusión

Estamos seguros de que este artículo le resultó útil. Si tiene alguna pregunta o inquietud, no dude en dejarla en la sección de comentarios.

Stephen Dove