Parte 1.2: operaciones básicas en Linux

Se aplica a:   .NET Core 2.1, .NET Core 3.1, .NET 5

Objetivo de esta parte

Esta parte del aprendizaje se centra en directorios especiales de Linux, cómo ejecutar comandos como superusuario (raíz) y cómo instalar y desinstalar aplicaciones mediante administradores de paquetes.

El uso de administradores de paquetes para instalar y quitar paquetes requiere privilegios raíz. Por lo tanto, primero debe comprender cómo ejecutar comandos como superusuario.

Directorios especiales de Linux

Para este aprendizaje, no es necesario profundizar en cómo administrar Linux. Sin embargo, un resumen de algunos de los directorios especiales sería útil porque los usarás en el resto del aprendizaje.

Directorio Descripción
/ Directorio raíz (carpeta de nivel superior).
/bin Contiene archivos binarios de usuario, archivos ejecutables.
/sbin Contiene archivos binarios de usuario, archivos ejecutables.
/etc Contiene los archivos de configuración del sistema local y las aplicaciones. Por ejemplo, creará algunos archivos de configuración en el directorio /etc/system para permitir que la aplicación ASP.NET Core inicie automáticamente el sistema.
/home Contiene el directorio principal de cada usuario. Por ejemplo, /home/ <username>.
/tmp Directorio temporal para almacenar archivos temporales creados por el sistema y las aplicaciones.
/usr Almacena archivos que se pueden compartir, incluidos archivos ejecutables, bibliotecas y documentos. Por ejemplo, el tiempo de ejecución de .NET Core y los SDK se instalan en el directorio /usr/share/dotnet/.
/var Almacena archivos de datos variables. Por ejemplo, Apache almacena el contenido del sitio web raíz en el directorio /var/www/html y los archivos de registro en el directorio /var/log/apache2/. Aunque no es necesario, publicará las aplicaciones web en este directorio.

Nota

Linux distingue mayúsculas de minúsculas. Por lo tanto, /home y /Home son directorios diferentes, y filename y Filename son archivos diferentes.

Cuando se conecte por primera vez a la máquina virtual Linux, empezará en el directorio raíz. Será /home/ <username>.

El acceso directo del directorio raíz ~ es (tilde). Puede usar el cd ~ comando en cualquier momento para volver al directorio principal.

Revise y pruebe los siguientes comandos (que se muestran en la siguiente captura de pantalla):

  • pwd(directorio de trabajo de impresión): imprime el directorio actual y el directorio /etc/systemd.
  • echo: imprime el valor del directorio ~ (raíz).
  • cd ~: devuelve al directorio raíz.

Captura de pantalla del comando password.

En este ejemplo no se incluye la descripción del contenido del directorio. Sin embargo, un paso posterior de este aprendizaje trata sobre cómo trabajar con archivos y carpetas. Algunas de estas tareas requerirán permisos de superusuario. En la siguiente sección se explica cómo elevarse al estado de superusuario.

Ejecutar comandos como superusuario

El superusuario es la cuenta de usuario con más privilegios. Tiene acceso raíz (sin restricciones) a todos los archivos y carpetas y control total sobre el funcionamiento del equipo. El administrador del sistema usa esta cuenta para el mantenimiento del sistema.

En UNIX de tipo, el nombre convencional del superusuario es "root". El usuario raíz puede realizar tareas que, de lo contrario, están restringidas para los usuarios estándar, incluidos los siguientes:

  • Cambio de directorios del sistema
  • Cambio de privilegios de usuario
  • Cambiar la propiedad del archivo
  • Tareas relacionadas con el sistema, como reinicios
  • Instalación de determinadas aplicaciones

Hay varias maneras de ejecutar comandos como usuario de la cuenta raíz. Uno es usar el sudo su comando. En este comando, sudo es breve para , y es una abreviatura de superuser do su "cambiar de usuario". También puede usar el comando su para cambiar entre usuarios estándar.

Importante

Después de convertirte en el usuario de la cuenta raíz, todo lo que hagas se ejecuta en el contexto raíz. Por lo tanto, debe actuar con cuidado porque la cuenta raíz tiene acceso a todo el sistema.

Para demostrar un problema de permisos, cree un archivo de texto en una carpeta especial denominada /etc.

La carpeta /etc/ es donde se encuentran los archivos de configuración del sistema. Esta carpeta protege su contenido de que un usuario estándar cambie su contenido.

Ejecute el siguiente comando:

echo hello world > /etc/helloworld.txt

El echo comando escribe todo el texto que le sigue en la salida. El corchete angular ( ) indica al sistema que envíe la salida al > archivo /etc/helloworld.txt en lugar de a la consola. Esto es similar a cómo Windows funciona.

Nota

Linux distingue mayúsculas de minúsculas:Helloworld.txt, helloworld.txt y helloworld.Txt son archivos diferentes.

No tiene que proporcionar una extensión de nombre de archivo. El nombre "helloworld" por sí mismo es perfectamente válido. (La extensión "txt" solo se usa aquí como ejemplo).

Al ejecutar este comando, recibe un mensaje de error de permiso denegado.

Captura de pantalla del mensaje denegado de permiso.

Se produce un error en la operación porque la carpeta /etc es una carpeta especial que un usuario estándar no puede cambiar. Compruebe el usuario ejecutando el id comando.

Captura de pantalla del comando id.

Para convertirse en el usuario de la cuenta raíz, ejecute el sudo su comando.

Captura de pantalla del comando sudo su.

You should notice two things: When you become root, the dollar sign character ( $ ) becomes a pound sign character ( # ). Además, el nombre de usuario se cambia a raíz. Si vuelve a ejecutar el mismo comando, verá que el identificador de usuario y grupo id de raíz es 0.

Captura de pantalla del comando raíz.

Importante

Ahora que se ha elevado al rol de "superusuario" en la sesión, tiene acceso completo al sistema. Ten en cuenta que se trata de una situación potencialmente peligrosa y debes tener cuidado mientras continúas.

Ahora, ejecute el mismo comando una vez más:

echo hello world > /etc/helloworld.txt

Esta vez, no recibirá ningún mensaje de error. Pero, ¿se crea el archivo? Para comprobarlo, ejecute el siguiente comando:

ll /etc/hello*

El ll comando enumera los archivos y subcarpetas que se encuentran en una carpeta especificada. En este ejemplo, el valor del parámetro limita el resultado del comando a los archivos o carpetas /etc/hello* cuyo nombre comienza en hello .

Captura de pantalla del comando hello.

El resultado muestra que el archivo se creó. ¿Qué ocurre si queremos examinar el contenido del archivo? El cat comando ayuda aquí. Para ver el contenido, ejecute cat /etc/helloworld.txt .

Captura de pantalla del comando cat.

El cat comando lee los archivos secuencialmente y escribe su contenido en el resultado estándar. Por lo tanto, escribe "hello world" en la consola.

Para evitar errores que puedan dañar el sistema mientras estás elevado al estado raíz, es una buena práctica salir de la sesión raíz y volver a la sesión de usuario estándar para evitar algunas operaciones peligrosas. Para ello, ejecute exit . Puede ver que el signo de libra vuelve a un signo de dólar y el nombre de usuario se muestra como usuario estándar.

Captura de pantalla del comando exit.

Para prácticas adicionales, ejecute los mismos ll comandos y en el contexto de usuario cat estándar. Verá que no puede crear el archivo en la carpeta /etc/, pero puede enumerar el archivo y leer el contenido.

Ejecutar comandos mediante el prefijo "sudo"

En lugar de convertirse en el usuario de la cuenta raíz de la sesión, puede ejecutar comandos como raíz mediante el sudo <command> formato. Este enfoque es más seguro porque solo ejecutará el comando determinado como superusuario.

Por ejemplo, si se ejecuta mientras no se eleva al estado restart de superusuario, el resultado es el siguiente.

Captura de pantalla del comando reiniciar.

Para ejecutar este comando como superusuario en su lugar, puede cambiar el contexto de sesión a raíz (ejecutando ) o agregar el prefijo sudo su "sudo", como se muestra a continuación:

sudo reboot

Ahora, la operación de reinicio se ejecuta según lo esperado por la máquina virtual.

Captura de pantalla del comando reboot.

Administradores de paquetes

Los administradores de paquetes se usan para instalar, actualizar y quitar aplicaciones en Linux. Hay varios administradores de paquetes diferentes, como DPKG (Sistema de administración de paquetes de Debian), RPM (Red Hat Administrador de paquetes) y Zypper para los propios administradores de paquetes de SUSE son de bajo nivel. Por lo tanto, puede ser difícil administrar el software directamente mediante el administrador de paquetes. Afortunadamente, hay contenedores para estas herramientas que facilitan la instalación y desinstalación de software. Por ejemplo, yum es un contenedor alrededor de RPM (Red Hat Administrador de paquetes) y APT es un contenedor alrededor de DPKG (Sistema de administración de paquetes de Debian).

En este tutorial se supone que está ejecutando el sistema de administración de paquetes de Ubuntu. Este sistema se deriva del mismo sistema que usa la distribución de Linux/LINUX de Debian. Por lo tanto, podemos usar APT para instalar el software.

Según la elección de Linux, es posible que tenga que usar otras herramientas. Por ejemplo, puede usar yum para instalar o desinstalar software si está ejecutando Red Hat.

Actualizar la base de datos del administrador de paquetes

APT funciona en una base de datos de paquetes disponibles. Se recomienda actualizar los administradores de paquetes y, a continuación, actualizar los paquetes después de una instalación nueva.

Para actualizar la base de datos de paquetes en Ubuntu, ejecute sudo apt update . Observe que el sudo prefijo se introduce antes del apt comando. Al hacerlo, se ejecuta el comando como usuario raíz sin cambiar realmente el contexto de sesión apt por el del usuario raíz.

Captura de pantalla del comando sudo apt update.

En realidad, el comando update no actualiza ninguno de los paquetes de software instalados. En su lugar, actualiza la base de datos de paquetes. El comando realiza la actualización sudo apt upgrade real.

Captura de pantalla del comando de actualización de sudo apt.

Después de escribir Y y, a continuación, presionar Entrar, los paquetes se actualizan.

Captura de pantalla del progreso actualizado de los paquetes.

Buscar paquetes mediante administradores de paquetes

El siguiente ejemplo de cómo usar administradores de paquetes para buscar paquetes muestra la instalación y desinstalación del servidor web apache 2.

Comience buscando en "servidor web apache" mediante el apt search comando. APT realiza una búsqueda de texto completo y muestra los resultados. Instalará Apache HTTP Server con el nombre del paquete de apache2 .

Captura de pantalla del comando de búsqueda apto.

Nota

Uso del comando. El prefijo no se agrega porque no tiene que ser un usuario raíz para sudo buscar en paquetes.

En lugar de realizar una búsqueda, puede buscar en un explorador web "cómo instalar Apache en Ubuntu" para encontrar el nombre del paquete APT search y el comando APT. Para este ejemplo, debe encontrar este documento oficial de Ubuntu que explica claramente cómo instalar Apache 2 en Ubuntu.

Mostrar los detalles del paquete

Para comprobar que tiene el paquete correcto, ejecute para ver los detalles del apt show paquete, como se muestra en la siguiente captura de pantalla. De nuevo, observe que el sudo prefijo no es necesario aquí.

Captura de pantalla del comando apt show.

Enumerar paquetes instalados y usar grep para filtrar la lista

Después de determinar que el paquete que encontró es el que desea, debe asegurarse de que aún no está instalado en el servidor de destino.

Para ello, use el apt list --installed comando para enumerar las aplicaciones instaladas en la máquina virtual. También puede agregar el comando grep para filtrar los resultados y mostrar solo las aplicaciones que contienen apache2 .

Nota

El grep comando busca un término determinado en un archivo. Es una herramienta muy eficaz porque proporciona varias opciones, como buscar mediante regex o una cadena, invertir los resultados de búsqueda, ignorar la confidencialidad de mayúsculas y minúsculas, buscar mediante varios términos de búsqueda y compatibilidad de búsqueda recursiva.

Al ejecutar apt list --installed | grep apache2 , debería ver que el paquete no está instalado en la máquina virtual.

Captura de pantalla del comando apt list.

Instalar el paquete

Ahora que ha determinado que ha encontrado el paquete deseado y que aún no está instalado, puede continuar con la instalación. Ejecute el siguiente comando:

sudo apt install apache2

Nota

En esta ocasión, el prefijo del comando se usa porque sudo este comando cambia el sistema. Por lo tanto, debe ser la cuenta raíz para ejecutarse correctamente. El administrador de paquetes es lo suficientemente amable para preguntarte si realmente quieres instalar realmente la aplicación.

Captura de pantalla del comando sudo.

Escriba Y (sí) y presione Entrar para instalar Apache2 . El administrador de paquetes mostrará una barra de progreso para indicar el estado de la instalación.

Captura de pantalla del estado de la instalación.

Si vuelve a ejecutar el mismo comando, verá que el paquete de Apache 2 se instaló junto con otros paquetes relacionados con apache2 que se apt list --installed | grep apache2 instalan automáticamente.

Captura de pantalla del comando apt list grep.

Aunque ha instalado Apache 2, en realidad debe usar Nginx. Por lo tanto, ya no necesita Apache y puede quitar ese paquete de la máquina virtual.

Quitar paquetes

La instalación de un paquete (en este caso, Apache 2) es reversible. Puede quitar el paquete si determina que no lo necesita. Tiene dos opciones de comando para quitar paquetes:

  • apt remove: este comando quita los archivos binarios, pero no el archivo de configuración. Esto es útil si desea reinstalar el paquete y desea conservar la misma configuración.

  • apt purge: este comando quita los archivos binarios y el archivo de configuración.

Quite el paquete mediante apt remove el uso como usuario raíz para ver el resultado. Para ello, ejecute sudo apt remove apache2 . Cuando se le pida que confirme la eliminación, escriba Y y, a continuación, presione Entrar.

Captura de pantalla del comando sudo apt remove apache2.

El resultado del comando indica lo siguiente:

  • APT detectó que hay paquetes que se instalaron automáticamente y ya no serán necesarios.
  • APT quitó solo el paquete y se apache2 recomienda ejecutar para quitar los sudo apt autoremove paquetes asociados.

Vuelva a enumerar los paquetes instalados. Verá que el paquete se ha quitado, pero que los paquetes instalados automáticamente que se le proporcionaron apache2 permanecen instalados.

Captura de pantalla de paquetes instalados.

Siga la recomendación de volver a sudo apt autoremove ejecutar para quitar los paquetes sobrados.

Captura de pantalla del comando sudo apt autoremove.

Enumerar los paquetes instalados una vez más. Ahora, no debería ver ningún paquete relacionado con apache2 instalado.

Captura de pantalla de ningún paquete relacionado con apache2.

Este procedimiento no ha finalizado. Recuerde que la diferencia entre apt remove y es si se quita el archivo de apt purge configuración. En este ejercicio, no lo quitaste. ¿Dónde está?

La búsqueda del archivo no implica administradores de paquetes. En su lugar, ejecutará una búsqueda estándar de archivos en Linux. Hay varias maneras de hacerlo. Uno de los comandos de búsqueda más comunes es find . Sin embargo, este comando también es confuso de usar, por lo que no lo trataremos aquí. En su lugar, usaremos whereis .

Nota

Linux está muy bien documentado. Casi todos los comandos tienen disponible una página de ayuda útil. Usa los comandos man e info para mostrar las páginas de ayuda en Linux. Por ejemplo, para obtener más información por su cuenta sobre el find comando, ejecute man find o info find .

Según la página de ayuda whereis de , la definición es la siguiente:

whereis localiza los archivos binarios, de origen y manuales de los nombres de comandos especificados.

Si ejecuta whereis apache2 , debe encontrar la instalación /etc/apache2.

Captura de pantalla del comando whereis apache2.

Recuerde que el directorio /etc/ es donde se encuentran los archivos de configuración del sistema. Para saber si "apache2" es un archivo o carpeta, ejecute ll /etc/apache2 . Como puede ver, se trata de una carpeta y contiene los archivos de configuración de apache2.

Captura de pantalla del comando ll etc apache2.

Espera contener apache2 estos archivos y carpetas porque usó el apt remove comando que no elimina los archivos de configuración.

Como paso final, ejecute apt purge el comando para ver su efecto. Puede ejecutar una purga para limpiar la carpeta de instalación incluso después de quitar el paquete. La siguiente captura de pantalla muestra whereis que no encontró nada. Esto se debe a purge que el comando quitó los archivos de configuración junto con los archivos binarios.

Captura de pantalla del comando apt purge.

Pasos siguientes

Parte 1.3: Instalar .NET Core en Linux

Aviso de declinación de responsabilidades sobre la información de terceros

Los productos de otros fabricantes que se mencionan en este artículo han sido creados por compañías independientes de Microsoft. Microsoft no ofrece ninguna garantía, ya sea implícita o de otro tipo, sobre la confiabilidad o el rendimiento de dichos productos.