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.
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.
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.
Para convertirse en el usuario de la cuenta raíz, ejecute el sudo su comando.
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.
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 .
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 .
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.
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.
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.
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.
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.
Después de escribir Y y, a continuación, presionar Entrar, los paquetes se actualizan.
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 .
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í.
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.
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.
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.
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.
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.
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
apache2recomienda ejecutar para quitar lossudo apt autoremovepaquetes 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.
Siga la recomendación de volver a sudo apt autoremove ejecutar para quitar los paquetes sobrados.
Enumerar los paquetes instalados una vez más. Ahora, no debería ver ningún paquete relacionado con apache2 instalado.
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.
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.
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.
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.