<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>linux archivos - Frexus</title>
	<atom:link href="https://www.frexus.dev/tag/linux/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.frexus.dev/tag/linux/</link>
	<description>Generando Valor Agreado</description>
	<lastBuildDate>Tue, 06 May 2025 14:00:33 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>

<image>
	<url>https://www.frexus.dev/wp-content/uploads/2024/03/cropped-Captura-de-Pantalla-2022-12-26-a-las-15.52.42-32x32.png</url>
	<title>linux archivos - Frexus</title>
	<link>https://www.frexus.dev/tag/linux/</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">215529362</site>	<item>
		<title>locale</title>
		<link>https://www.frexus.dev/post/locale/</link>
					<comments>https://www.frexus.dev/post/locale/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Tue, 13 Aug 2024 01:38:28 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[servidor]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2968</guid>

					<description><![CDATA[<p>El comando locale el cual permite definir las configuraciones regionales y lingüísticas del sistema. Estos parámetros afectan cómo se muestran y manejan ciertos tipos de datos, como fechas, números, monedas, y texto. es decir, que el locale adapta la forma en que el sistema y las aplicaciones muestran información según las convenciones de un idioma o región específica. Aspectos El comando locale se divide en varias categorías que cubren diferentes aspectos de la localización entre los que se encuentra: Configuración Regularmente se hace mediante una terminal con los comandos que se describe a continuación Errores Los errores que suelen aparecer o indicar que no se tiene configurado o instalado el locale suelen ser los siguiente: Aprendizaje Regularmente cuando te brindan los servidores de desarrollo o producción no suele preocuparse uno por las configuraciones lingüísticas debido a que ya va pre-configurado. Pese a que a que se utilicen diversas técnicas que te permite mostrar la acentuación en español de manera adecuada. Como hacer uso de etiquetas meta en el html o de funciones que te permite tener ese tipo de cuidado del lado del lenguaje de programación.</p>
<p>La entrada <a href="https://www.frexus.dev/post/locale/">locale</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>El comando locale el cual permite definir las configuraciones regionales y lingüísticas del sistema. Estos parámetros afectan cómo se muestran y manejan ciertos tipos de datos, como fechas, números, monedas, y texto. es decir, que  el <code>locale</code> adapta la forma en que el sistema y las aplicaciones muestran información según las convenciones de un idioma o región específica.</p>



<h2 class="wp-block-heading">Aspectos</h2>



<p>El comando<code> locale</code> se divide en varias categorías que cubren diferentes aspectos de la localización entre los que se encuentra:</p>



<ul class="wp-block-list">
<li><strong><code>LANG</code></strong>: Define el <code>locale</code> general del sistema. Es el valor principal que afecta a todas las demás configuraciones si no se especifican individualmente.</li>



<li><strong><code>LC_CTYPE</code></strong>: Define el comportamiento de la clasificación de caracteres y cómo se manejan los caracteres especiales. Es crucial para determinar cómo se interpretan las letras mayúsculas/minúsculas, y la codificación de caracteres como UTF-8.</li>



<li><strong><code>LC_NUMERIC</code></strong>: Controla el formato de los números, como la forma en que se muestran los separadores decimales y de miles.</li>



<li><strong><code>LC_TIME</code></strong>: Afecta cómo se muestran las fechas y las horas, incluyendo el formato de la hora (24 horas vs. 12 horas), la presentación de los días de la semana, meses y demás.</li>



<li><strong><code>LC_COLLATE</code></strong>: Define las reglas de ordenación y comparación de cadenas de texto, es decir, cómo se ordenan los datos en listas alfabéticas.</li>



<li><strong><code>LC_MONETARY</code></strong>: Define el formato en el que se muestra el dinero, incluyendo el símbolo de la moneda, el separador decimal, y la ubicación del símbolo de moneda respecto al valor numérico.</li>



<li><strong><code>LC_MESSAGES</code></strong>: Afecta el idioma en el que se muestran los mensajes del sistema y de las aplicaciones, como los mensajes de error.</li>



<li><strong><code>LC_PAPER</code>, <code>LC_NAME</code>, <code>LC_ADDRESS</code>, <code>LC_TELEPHONE</code>, <code>LC_MEASUREMENT</code>, <code>LC_IDENTIFICATION</code></strong>: Estas categorías se encargan de detalles más específicos, como el tamaño de papel predeterminado, la representación de nombres y direcciones, los formatos de números de teléfono, las unidades de medida (métrico o imperial), y otros datos de identificación.</li>



<li><strong><code>LC_ALL</code></strong>: Es un valor especial que anula todas las configuraciones anteriores. Si se establece <code>LC_ALL</code>, este tiene prioridad sobre las demás variables <code>LC_*</code> y <code>LANG</code>.</li>
</ul>



<h2 class="wp-block-heading">Configuración</h2>



<p>Regularmente se hace mediante una terminal con los comandos que se describe a continuación</p>



<ol class="wp-block-list">
<li>Hay que instalar el paquete, para ello se realiza con la siguiente instrucción: <code>sudo dnf install glibc-langpack-es</code>. Con esto se brinda el soporte para UTF-8.</li>



<li>Ahora hay que crear el locale, eso se hace con la ayuda del comando <code>sudo nano /etc/locale.conf</code>. Dentro de este archivo debe de llevar la siguientes lineas: 
<ul class="wp-block-list">
<li>LANG=es_ES.UTF-8</li>



<li>LC_ALL=es_ES.UTF-8</li>
</ul>
</li>



<li>Luego de guardar los cambios en el fichero locale.conf, es momento de establecer el tipo de configuración, para ello se ejecuta el comando: <code>sudo localectl set-locale LANG=es_ES.UTF-8</code>.</li>



<li>No olvidar verificar la configuración, para ello se ejecuta el siguiente comando: <code>localectl list-locales | grep es_ES.UTF-8</code>. </li>



<li>Reinicie el sistema operativo con el comando <code>sudo reboot</code></li>



<li>Compruebe la configuración con el comando <code>locale</code>.  </li>
</ol>



<h2 class="wp-block-heading">Errores</h2>



<p>Los errores que suelen aparecer o indicar que no se tiene configurado o instalado el <code>locale</code> suelen ser los siguiente:</p>



<ul class="wp-block-list">
<li>Failed to issue method call: Locale es_ES.UTF-8 not installed, refusing.</li>



<li>locale: Cannot set LC_CTYPE to default locale: No such file or directory</li>



<li>locale: Cannot set LC_MESSAGES to default locale: No such file or directory</li>



<li>locale: Cannot set LC_ALL to default locale: No such file or directory</li>
</ul>



<h2 class="wp-block-heading">Aprendizaje</h2>



<p>Regularmente cuando te brindan los servidores de desarrollo o producción no suele preocuparse uno por las configuraciones lingüísticas debido a que ya va pre-configurado. Pese a que a que se utilicen diversas técnicas que te permite mostrar la acentuación en español de manera adecuada. Como hacer uso de etiquetas meta en el html o de funciones que te permite tener ese tipo de cuidado del lado del lenguaje de programación.</p>
<p>La entrada <a href="https://www.frexus.dev/post/locale/">locale</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/locale/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2968</post-id>	</item>
		<item>
		<title>Alma Linux</title>
		<link>https://www.frexus.dev/post/alma-linux/</link>
					<comments>https://www.frexus.dev/post/alma-linux/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Tue, 07 Nov 2023 20:02:09 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[alma]]></category>
		<category><![CDATA[almalinux9]]></category>
		<category><![CDATA[apache]]></category>
		<category><![CDATA[ftp]]></category>
		<category><![CDATA[lamp]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[vsftp]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2214</guid>

					<description><![CDATA[<p>Un día toca interactuar con alma linux para hacer las configuraciones adecuadas y montar un servidor en producción para ello se hace uso de los siguientes comandos: Instalación LAMP en Alma Linux A continuación se muestra los pasos necesarios para realizar una instalación del Servidor apache, el gestor de base de datos Maria db y el lenguaje de programación php. Instalación de phpmyadmin Para instalar phpmyadmin en alma linux 9 se puede hacer uso de los siguientes pasos: Servicio de FTP Ahora hay que instalar un servidor ftp en alma linux 9 para que permita subir los ficheros y demás cosas que el servidor debe de tener para hacer esto hay que hacer los siguientes pasos: Y con estos pasos se tendrá un servidor ftp, web y gestor de base de datos listo para trabajar en Alma Linux con php y a subir ficheros con filezilla.</p>
<p>La entrada <a href="https://www.frexus.dev/post/alma-linux/">Alma Linux</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-large"><img fetchpriority="high" decoding="async" width="683" height="1024" src="https://www.frexus.dev/wp-content/uploads/2024/05/pexels-photo-5496463-683x1024.jpeg" alt="person using macbook air sistema operativo Alma Linux" class="wp-image-2723" style="aspect-ratio:1.5046296296296295" srcset="https://www.frexus.dev/wp-content/uploads/2024/05/pexels-photo-5496463-683x1024.jpeg 683w, https://www.frexus.dev/wp-content/uploads/2024/05/pexels-photo-5496463-200x300.jpeg 200w, https://www.frexus.dev/wp-content/uploads/2024/05/pexels-photo-5496463-768x1152.jpeg 768w, https://www.frexus.dev/wp-content/uploads/2024/05/pexels-photo-5496463.jpeg 867w" sizes="(max-width: 683px) 100vw, 683px" /><figcaption class="wp-element-caption">Photo by Pavel Danilyuk on <a href="https://www.pexels.com/photo/person-using-macbook-air-5496463/">Pexels.com</a></figcaption></figure>
</div>


<p>Un día toca interactuar con alma linux para hacer las configuraciones adecuadas y montar un servidor en producción para ello se hace uso de los siguientes comandos:</p>



<h2 class="wp-block-heading">Instalación LAMP en Alma Linux</h2>



<p>A continuación se muestra los pasos necesarios para realizar una instalación del Servidor apache, el gestor de base de datos Maria db y el lenguaje de programación php.</p>



<ol class="wp-block-list">
<li>Actualizar el repositorio, se realiza con el siguiente comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf update</code></li>



<li>Instalar el servidor web apache, para ello se usa el siguiente comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf install httpd</code></li>



<li>Inicializar el servidor, para ello el comando:  <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo systemctl start httpd</code></li>



<li>Añadirlo para que inicie durante el arranque: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo systemctl enable httpd.service</code></li>



<li>Instalar el gestor de base de datos, se realiza usando el comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf intall mariadb-server mariadb</code></li>



<li>Iniciar el servicio, se hace con el comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo systemctl start mariadb</code></li>



<li>Añadirlo para que inicie durante el arranque: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo systemctl enable mariadb</code></li>



<li>Configurar mariadb, con el comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo mysql_secure_installation</code></li>



<li>Instalar php, con el comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf module install php:8.1.</code>  :8.1 indica la versión de php que se instalara.</li>



<li>Reiniciar el servicio httpd para la integración de php: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo systemctl restart httpd.service</code></li>



<li>Instalar modulos particulares de php: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf install module php-curl php-zip php-opcache php-mysqlnd</code>   en este caso se instala el modulo curl, zip, cache y conector con mysql de php</li>
</ol>



<h2 class="wp-block-heading">Instalación de phpmyadmin</h2>



<p>Para instalar phpmyadmin en alma linux 9 se puede hacer uso de los siguientes pasos:</p>



<ol class="wp-block-list">
<li>Descargar el paquete phpmyadmin desde la pagina oficial, esto brindará tener la última versión y habrá que estar actualizandola cuando se requieera, para esto se debe hacer uso del comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo wget https://files.phpmyadmin.net/phpMyAdmin/5.2.1/phpMyAdmin-5.2.1-all-languages.zip</code></li>



<li>Ahora hacer el unzip, para ello hay que instalar el zip con el comando:  <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf install zip</code>  luego aplicar el <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo unzip al archivo que se descargo: sudo unzip phpMyAdmin-5.2.1-all-languages.zip</code></li>



<li>Se cambia el nombre de la carpeta, con el comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo mv phpMyAdmin-5.2.1-all-languages phpmyadmin</code></li>
</ol>



<h2 class="wp-block-heading">Servicio de FTP</h2>



<p>Ahora hay que instalar un servidor ftp en alma linux 9 para que permita subir los ficheros y demás cosas que el servidor debe de tener para hacer esto hay que hacer los siguientes pasos:</p>



<ol class="wp-block-list">
<li>Primero hay que instalar el servidor ftp para ello se hace uso del comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf install vsftpd</code>.</li>



<li>Luego de habilitar el servicio cuando arranque el servidor, con el comando <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo systemctl enabe vsftpd</code>.</li>



<li>Posteriormente hay que iniciar el servicio: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo systemctl start vsftpd.service</code>.</li>



<li>Y por último modificar el archivo de configuración de vsftpd que se encuentra en la siguiente ruta: <code data-enlighter-language="bash" class="EnlighterJSRAW">/etc/vsftpd/vsftpd.conf</code> las lineas que se deben de cambiar son: <code data-enlighter-language="bash" class="EnlighterJSRAW">anonymous_enable=NO</code>, cambiarlo a <strong>YES</strong>, debe de quedar <code data-enlighter-language="bash" class="EnlighterJSRAW">anonymous_enable=YES</code>. <code data-enlighter-language="bash" class="EnlighterJSRAW">local_enable=YES</code>, <code data-enlighter-language="bash" class="EnlighterJSRAW">write_enable=YES</code>, y descomentar la linea <code data-enlighter-language="generic" class="EnlighterJSRAW">anon_upload_enable=YES</code>. Estas modificaciones permitirá que cualquier usuario registrado en el sistema alma linux 9 pueda acceder a escribir, y subir fichero en el servidor. Para acceder a estas modificaciones se puede hacer con el editor nano se instala con el siguiente comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo dnf install nano</code> y para acceder a modificar el fichero se hace con el comando: <code data-enlighter-language="bash" class="EnlighterJSRAW">sudo nano /etc/vsftpd/vsftpd.conf</code>
<ul class="wp-block-list">
<li>Para subir los archivos ya con filezilla se conecta con la dirección ip, con el usuario y contraseña con el que se autentica en el sistema alma linux 9.</li>
</ul>
</li>
</ol>



<p>Y con estos pasos se tendrá un servidor ftp, web y gestor de base de datos listo para trabajar en Alma Linux con php y a subir ficheros con filezilla.</p>
<p>La entrada <a href="https://www.frexus.dev/post/alma-linux/">Alma Linux</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/alma-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2214</post-id>	</item>
		<item>
		<title>Archivos</title>
		<link>https://www.frexus.dev/post/archivo/</link>
					<comments>https://www.frexus.dev/post/archivo/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Thu, 24 Aug 2023 04:52:29 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[archivo]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programación en el shell]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2314</guid>

					<description><![CDATA[<p>El manejo de archivo son esenciales para manipular datos almacenados en dispositivos de almacenamiento. Se encuentra las siguientes características: Operaciones Básicas con Archivos Creación de Archivos: El comando touch se utiliza para crear archivos vacíos. Por ejemplo: Visualización de Contenido: Para ver el contenido de un archivo, puedes usar comandos como cat, more, o less. Por ejemplo: Edición de Archivos: Puedes editar archivos directamente desde el shell utilizando editores de texto como nano, vim, o emacs. Por ejemplo: Eliminación de Archivos: El comando rm se utiliza para eliminar archivos. Por ejemplo: Entrada y Salida Estándar Redirección de la Entrada y Salida: Los operadores &#60; y > permiten redirigir la entrada y salida estándar hacia o desde archivos, respectivamente. Por ejemplo: Concatenación de Archivos: Puedes concatenar el contenido de varios archivos usando el operador >>. Por ejemplo: Tuberías (Pipes): El símbolo &#124; se utiliza para enviar la salida de un comando como entrada a otro. Por ejemplo: Permisos y Propietarios En sistemas basados en Unix/Linux, cada archivo y directorio tiene asociados permisos y un propietario. Estos atributos determinan quién puede acceder, modificar o ejecutar el archivo. Aquí tienes información detallada sobre permisos y propietarios Permisos: Tipos de Permisos: Los permisos se dividen en tres categorías: lectura (r), escritura (w), y ejecución (x). Cada categoría se aplica a tres entidades diferentes: el propietario del archivo, el grupo al que pertenece el archivo, y otros usuarios. Asignación de Permisos: Puedes asignar permisos usando el comando chmod. Por ejemplo, para otorgar permisos de lectura y escritura al propietario de un archivo, puedes usar: Notación Numérica: Los permisos también pueden expresarse en notación numérica. Por ejemplo, el permiso de lectura es 4, el de escritura es 2, y el de ejecución es 1. Puedes sumar estos valores para asignar permisos. Por ejemplo, para dar permisos de lectura y escritura al propietario, puedes usar: Cambio de Permisos: El comando chmod te permite cambiar los permisos de un archivo. Por ejemplo: Propietarios Propietario del Archivo: Cada archivo tiene un propietario principal que tiene control total sobre el archivo. Puedes cambiar el propietario utilizando el comando chown. Por ejemplo: Grupo Asociado: Además del propietario, cada archivo está asociado a un grupo. Puedes cambiar el grupo utilizando chown. Por ejemplo: Herencia de Permisos: El grupo hereda algunos de los permisos del propietario. Esto significa que si el propietario tiene permisos de escritura, el grupo también los tendrá. Cambio de Propietario: El comando chown te permite cambiar el propietario de un archivo. Por ejemplo: Combinación de Permisos y Propietarios: Uso de Grupos: Puedes asignar archivos a grupos específicos para que varios usuarios tengan acceso. Esto es útil para proyectos colaborativos. Estos son solo algunos ejemplos y conceptos básicos relacionados con archivos en el contexto de la programación en el shell y la manipulación de la entrada y salida estándar. La habilidad para trabajar eficientemente con archivos es esencial para cualquier tarea de programación y administración de sistemas en un entorno de shell.</p>
<p>La entrada <a href="https://www.frexus.dev/post/archivo/">Archivos</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="1880" height="1255" src="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-1370294.jpeg" alt="archivo gray steel file cabinet" class="wp-image-2315" style="width:303px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-1370294.jpeg 1880w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-1370294-300x200.jpeg 300w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-1370294-1024x684.jpeg 1024w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-1370294-768x513.jpeg 768w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-1370294-1536x1025.jpeg 1536w" sizes="(max-width: 1880px) 100vw, 1880px" /><figcaption class="wp-element-caption">Photo by Element5 Digital on <a href="https://www.pexels.com/photo/gray-steel-file-cabinet-1370294/">Pexels.com</a></figcaption></figure>
</div>


<p>El manejo de archivo son esenciales para manipular datos almacenados en dispositivos de almacenamiento. Se encuentra las siguientes características:</p>



<ul class="wp-block-list">
<li><strong>Tipos de Archivos:</strong> En el shell, los archivos pueden ser de diferentes tipos, como archivos de texto, archivos binarios, directorios, enlaces simbólicos, entre otros. Cada tipo de archivo tiene su propósito y puede manipularse mediante comandos específicos del shell.</li>



<li><strong>Extensiones y Nombres:</strong> Aunque en sistemas basados en Unix/Linux no es obligatorio, es común utilizar extensiones de archivo para indicar el tipo de contenido. Por ejemplo, <code>.txt</code> para archivos de texto.</li>



<li><strong>Ubicación y Rutas:</strong> Los archivos pueden estar ubicados en diferentes directorios. La especificación de rutas (absolutas o relativas) es esencial para trabajar con archivos en el shell.</li>
</ul>



<p><strong>Operaciones Básicas con Archivos</strong></p>



<p><strong>Creación de Archivos:</strong> El comando <code>touch</code> se utiliza para crear archivos vacíos. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">touch mi_archivo.txt</pre>



<p><strong>Visualización de Contenido:</strong> Para ver el contenido de un archivo, puedes usar comandos como <code>cat</code>, <code>more</code>, o <code>less</code>. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">cat mi_archivo.txt</pre>



<p><strong>Edición de Archivos:</strong> Puedes editar archivos directamente desde el shell utilizando editores de texto como <code>nano</code>, <code>vim</code>, o <code>emacs</code>. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">nano mi_archivo.txt</pre>



<p><strong>Eliminación de Archivos:</strong> El comando <code>rm</code> se utiliza para eliminar archivos. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">rm mi_archivo.txt</pre>



<p><strong>Entrada y Salida Estándar</strong></p>



<p><strong>Redirección de la Entrada y Salida:</strong> Los operadores <code>&lt;</code> y <code>></code> permiten redirigir la entrada y salida estándar hacia o desde archivos, respectivamente. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">comando &lt; entrada.txt > salida.txt</pre>



<p><strong>Concatenación de Archivos:</strong> Puedes concatenar el contenido de varios archivos usando el operador <code>>></code>. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">cat archivo1.txt archivo2.txt >> resultado.txt</pre>



<p><strong>Tuberías (Pipes):</strong> El símbolo <code>|</code> se utiliza para enviar la salida de un comando como entrada a otro. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">comando1 | comando2</pre>



<p><strong>Permisos y Propietarios</strong></p>



<p>En sistemas basados en Unix/Linux, cada archivo y directorio tiene asociados permisos y un propietario. Estos atributos determinan quién puede acceder, modificar o ejecutar el archivo. Aquí tienes información detallada sobre permisos y propietarios</p>



<p><strong>Permisos:</strong></p>



<p><strong>Tipos de Permisos:</strong> Los permisos se dividen en tres categorías: lectura (r), escritura (w), y ejecución (x). Cada categoría se aplica a tres entidades diferentes: el propietario del archivo, el grupo al que pertenece el archivo, y otros usuarios.</p>



<p><strong>Asignación de Permisos:</strong> Puedes asignar permisos usando el comando <code>chmod</code>. Por ejemplo, para otorgar permisos de lectura y escritura al propietario de un archivo, puedes usar:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">chmod u+rw archivo.txt</pre>



<p><strong>Notación Numérica:</strong> Los permisos también pueden expresarse en notación numérica. Por ejemplo, el permiso de lectura es 4, el de escritura es 2, y el de ejecución es 1. Puedes sumar estos valores para asignar permisos. Por ejemplo, para dar permisos de lectura y escritura al propietario, puedes usar:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">chmod 600 archivo.txt</pre>



<p><strong>Cambio de Permisos:</strong> El comando <code>chmod</code> te permite cambiar los permisos de un archivo. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">chmod +x script.sh</pre>



<p><strong>Propietarios</strong></p>



<p><strong>Propietario del Archivo:</strong> Cada archivo tiene un propietario principal que tiene control total sobre el archivo. Puedes cambiar el propietario utilizando el comando <code>chown</code>. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">chown nuevo_propietario archivo.txt</pre>



<p><strong>Grupo Asociado:</strong> Además del propietario, cada archivo está asociado a un grupo. Puedes cambiar el grupo utilizando <code>chown</code>. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">chown :nuevo_grupo archivo.txt</pre>



<p><strong>Herencia de Permisos:</strong> El grupo hereda algunos de los permisos del propietario. Esto significa que si el propietario tiene permisos de escritura, el grupo también los tendrá.</p>



<p><strong>Cambio de Propietario:</strong> El comando <code>chown</code> te permite cambiar el propietario de un archivo. Por ejemplo:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">chown nuevo_propietario archivo.txt</pre>



<p><strong>Combinación de Permisos y Propietarios:</strong></p>



<ul class="wp-block-list">
<li><strong>Combinación de Permisos y Propietarios:</strong> La combinación efectiva de permisos y propietarios determina quién puede hacer qué con un archivo. Por ejemplo, un archivo con permisos 644 (rw-r&#8211;r&#8211;) significa que el propietario tiene lectura y escritura, mientras que el grupo y otros solo tienen permisos de lectura.</li>



<li><strong>Ejemplo Práctico:</strong> Para dar permisos de lectura y escritura al propietario, y solo permisos de lectura a otros, puedes usar:</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">chmod 644 archivo.txt</pre>



<p><strong>Uso de Grupos:</strong> Puedes asignar archivos a grupos específicos para que varios usuarios tengan acceso. Esto es útil para proyectos colaborativos.</p>



<p>Estos son solo algunos ejemplos y conceptos básicos relacionados con archivos en el contexto de la programación en el shell y la manipulación de la entrada y salida estándar. La habilidad para trabajar eficientemente con archivos es esencial para cualquier tarea de programación y administración de sistemas en un entorno de shell.</p>
<p>La entrada <a href="https://www.frexus.dev/post/archivo/">Archivos</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/archivo/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2314</post-id>	</item>
		<item>
		<title>Argumentos en la programación</title>
		<link>https://www.frexus.dev/post/argumento/</link>
					<comments>https://www.frexus.dev/post/argumento/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Wed, 23 Aug 2023 03:04:48 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[argumentos]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Programación]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2310</guid>

					<description><![CDATA[<p>En la programación de shell, los argumentos son valores que se proporcionan a un script o programa cuando se ejecuta. Estos valores permiten que el script o programa actúe de manera dinámica y adaptable a diferentes situaciones. Cómo se pasan los argumentos: Variables especiales: Número total de argumentos: Todos los argumentos como una cadena: Ejemplo práctico: Al ejecutar ./mi_script.sh arg1 arg2, obtendrías la salida correspondiente. Estos conceptos te permiten escribir scripts de shell más versátiles y adaptables al aceptar diferentes entradas durante la ejecución.</p>
<p>La entrada <a href="https://www.frexus.dev/post/argumento/">Argumentos en la programación</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img decoding="async" width="1880" height="1253" src="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-4240589.jpeg" alt="argumento woman having video call on smartphone" class="wp-image-2311" style="width:269px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-4240589.jpeg 1880w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-4240589-300x200.jpeg 300w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-4240589-1024x682.jpeg 1024w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-4240589-768x512.jpeg 768w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-4240589-1536x1024.jpeg 1536w" sizes="(max-width: 1880px) 100vw, 1880px" /><figcaption class="wp-element-caption">Photo by Ivan Samkov on <a href="https://www.pexels.com/photo/woman-having-video-call-on-smartphone-4240589/">Pexels.com</a></figcaption></figure>
</div>


<p>En la programación de shell, los argumentos son valores que se proporcionan a un script o programa cuando se ejecuta. Estos valores permiten que el script o programa actúe de manera dinámica y adaptable a diferentes situaciones.</p>



<p><strong>Cómo se pasan los argumentos:</strong></p>



<ul class="wp-block-list">
<li>Se pasan después del nombre del script o comando cuando se ejecuta en la línea de comandos.</li>



<li>Por ejemplo: <code>./mi_script.sh arg1 arg2 arg3</code></li>
</ul>



<p><strong>Variables especiales:</strong></p>



<ul class="wp-block-list">
<li>En la mayoría de las shells, puedes acceder a los argumentos dentro del script mediante variables especiales:
<ul class="wp-block-list">
<li><code>$0</code>: Nombre del script o comando.</li>



<li><code>$1</code>, <code>$2</code>, <code>$3</code>, &#8230;: Representan el primer, segundo, tercer argumento, y así sucesivamente.</li>
</ul>
</li>
</ul>



<p><strong>Número total de argumentos:</strong></p>



<ul class="wp-block-list">
<li>Puedes obtener el número total de argumentos usando <code>$#</code>. Por ejemplo, <code>echo "Número total de argumentos: $#"</code>.</li>
</ul>



<p><strong>Todos los argumentos como una cadena:</strong></p>



<ul class="wp-block-list">
<li><code>$*</code> o <code>$@</code> representan todos los argumentos como una única cadena. La diferencia principal es cómo manejan los espacios en blanco.
<ul class="wp-block-list">
<li><code>$*</code>: Trata todos los argumentos como una sola palabra.</li>



<li><code>$@</code>: Trata cada argumento como una palabra separada.</li>
</ul>
</li>
</ul>



<p><strong>Ejemplo práctico:</strong></p>



<ul class="wp-block-list">
<li>Supongamos que tienes un script llamado <code>mi_script.sh</code>:</li>
</ul>



<pre class="EnlighterJSRAW" data-enlighter-language="bash" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">#!/bin/bash

echo "Nombre del script: $0"
echo "Primer argumento: $1"
echo "Segundo argumento: $2"
echo "Todos los argumentos: $*"
echo "Número total de argumentos: $#"</pre>



<p>Al ejecutar <code>./mi_script.sh arg1 arg2</code>, obtendrías la salida correspondiente.</p>



<p>Estos conceptos te permiten escribir scripts de shell más versátiles y adaptables al aceptar diferentes entradas durante la ejecución.</p>
<p>La entrada <a href="https://www.frexus.dev/post/argumento/">Argumentos en la programación</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/argumento/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2310</post-id>	</item>
		<item>
		<title>i/o estándar en el shell</title>
		<link>https://www.frexus.dev/post/estandar-en-la-shell/</link>
					<comments>https://www.frexus.dev/post/estandar-en-la-shell/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Tue, 22 Aug 2023 17:27:54 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[entrada estándar]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programación en el shell]]></category>
		<category><![CDATA[salida estándar]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2306</guid>

					<description><![CDATA[<p>La programación de entrada y salida estándar en el shell se refiere a la manipulación de los flujos de entrada y salida de datos en un programa de shell. En la mayoría de los sistemas operativos tipo Unix/Linux, los comandos en la shell interactúan con el usuario y con otros programas a través de tres flujos de datos estándar: En la programación de shell, se puede redirigir estos flujos de datos para realizar tareas específicas. Algunos conceptos clave incluyen: Finalmente se puede decir que la programación de entrada y salida estándar en el shell implica el manejo efectivo de cómo los programas interactúan con los datos de entrada, producen resultados y manejan mensajes de error.</p>
<p>La entrada <a href="https://www.frexus.dev/post/estandar-en-la-shell/">i/o estándar en el shell</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1880" height="1253" src="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-16018144-1.jpeg" alt="estándar en el shell pessoa programando hacker" class="wp-image-2307" style="width:473px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-16018144-1.jpeg 1880w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-16018144-1-300x200.jpeg 300w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-16018144-1-1024x682.jpeg 1024w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-16018144-1-768x512.jpeg 768w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-16018144-1-1536x1024.jpeg 1536w" sizes="auto, (max-width: 1880px) 100vw, 1880px" /><figcaption class="wp-element-caption">Photo by Alberlan  Barros on <a href="https://www.pexels.com/photo/pessoa-programando-hacker-16018144/">Pexels.com</a></figcaption></figure>
</div>


<p>La programación de entrada y salida estándar en el shell se refiere a la manipulación de los flujos de entrada y salida de datos en un programa de shell. En la mayoría de los sistemas operativos tipo Unix/Linux, los comandos en la shell interactúan con el usuario y con otros programas a través de tres flujos de datos estándar:</p>



<ol class="wp-block-list">
<li><strong>Entrada estándar (STDIN):</strong> Este es el flujo de datos que lleva la entrada al programa. Normalmente, en la shell, la entrada estándar es el teclado. Los programas leen datos desde la entrada estándar para procesarlos.</li>



<li><strong>Salida estándar (STDOUT):</strong> Este es el flujo de datos que lleva la salida normal del programa. Por lo general, en la shell, la salida estándar es la pantalla. Los programas imprimen resultados y mensajes en la salida estándar.</li>



<li><strong>Error estándar (STDERR):</strong> Este es el flujo de datos que lleva mensajes de error. Así como la salida estándar, en la shell, la salida de error suele ir a la pantalla. Los programas imprimen mensajes de error en el error estándar para separarlos de la salida normal y permitir un manejo más efectivo.</li>
</ol>



<p>En la programación de shell, se puede redirigir estos flujos de datos para realizar tareas específicas. Algunos conceptos clave incluyen:</p>



<ul class="wp-block-list">
<li><strong>Redirección:</strong> Cambiar el destino de un flujo de datos. Se puede redirigir la salida de un comando a un archivo, por ejemplo.</li>



<li><strong>Pipes (Tuberías):</strong> Conectar la salida de un comando a la entrada de otro. Esto permite que los comandos trabajen en conjunto, y es fundamental para la filosofía de &#8220;hacer una cosa y hacerla bien&#8221; en Unix.</li>



<li><strong>Entrada/Salida en Modo Binario:</strong> Aunque los flujos estándar se tratan comúnmente como texto, también se pueden manejar en modo binario para datos no textuales.</li>
</ul>



<p>Finalmente se puede decir que la programación de entrada y salida estándar en el shell implica el manejo efectivo de cómo los programas interactúan con los datos de entrada, producen resultados y manejan mensajes de error.</p>
<p>La entrada <a href="https://www.frexus.dev/post/estandar-en-la-shell/">i/o estándar en el shell</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/estandar-en-la-shell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2306</post-id>	</item>
		<item>
		<title>Usando el shell</title>
		<link>https://www.frexus.dev/post/usando-el-shell/</link>
					<comments>https://www.frexus.dev/post/usando-el-shell/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Sat, 19 Aug 2023 02:34:30 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[programación shell]]></category>
		<category><![CDATA[shell]]></category>
		<category><![CDATA[unix]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2293</guid>

					<description><![CDATA[<p>El shell es un programa informático que proporciona una interfaz de usuario para acceder a los servicios del sistema operativo. Actúa como una interfaz entre el usuario y el núcleo del sistema operativo, permitiendo la ejecución de comandos y la manipulación de archivos. En un sistema operativo basado en Unix o Linux, el shell es una parte esencial. Aquí hay algunas características clave: En sistemas Unix y Linux, hay varios shells disponibles, como Bash (Bourne Again SHell), Zsh (Z Shell), y Fish (Friendly Interactive SHell), entre otros. Cada uno tiene sus características y comandos específicos, pero todos comparten el propósito fundamental de proporcionar una interfaz para interactuar con el sistema operativo a través de comandos. Actividad.</p>
<p>La entrada <a href="https://www.frexus.dev/post/usando-el-shell/">Usando el shell</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1880" height="1253" src="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-2061168.jpeg" alt="usando el shell text" class="wp-image-2294" style="width:302px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-2061168.jpeg 1880w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-2061168-300x200.jpeg 300w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-2061168-1024x682.jpeg 1024w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-2061168-768x512.jpeg 768w, https://www.frexus.dev/wp-content/uploads/2023/12/pexels-photo-2061168-1536x1024.jpeg 1536w" sizes="auto, (max-width: 1880px) 100vw, 1880px" /><figcaption class="wp-element-caption">Photo by Markus Spiske on <a href="https://www.pexels.com/photo/text-2061168/">Pexels.com</a></figcaption></figure>
</div>


<p>El <strong>shell</strong> es un programa informático que proporciona una interfaz de usuario para acceder a los servicios del sistema operativo. Actúa como una interfaz entre el usuario y el núcleo del sistema operativo, permitiendo la ejecución de comandos y la manipulación de archivos.</p>



<p>En un sistema operativo basado en Unix o Linux, el shell es una parte esencial. Aquí hay algunas características clave:</p>



<ol class="wp-block-list">
<li><strong>Interfaz de línea de comandos (CLI):</strong> El shell proporciona una interfaz de texto donde el usuario puede ingresar comandos y recibir resultados.</li>



<li><strong>Interpretación de Comandos:</strong> El shell interpreta los comandos escritos por el usuario y los traduce en acciones que el sistema operativo puede llevar a cabo. Puede ejecutar programas, manipular archivos y realizar otras tareas del sistema.</li>



<li><strong>Redirección y Piping:</strong> Permite la redirección de la entrada y salida estándar, lo que significa que puedes redirigir la salida de un comando a un archivo o usarla como entrada para otro comando (piping).</li>



<li><strong>Automatización:</strong> Los scripts del shell permiten la automatización de tareas al escribir una secuencia de comandos para ejecutarse en secuencia.</li>



<li><strong>Variables y Entorno:</strong> Puedes definir variables y entorno que afectan el comportamiento de los comandos y programas.</li>
</ol>



<p>En sistemas Unix y Linux, hay varios shells disponibles, como Bash (Bourne Again SHell), Zsh (Z Shell), y Fish (Friendly Interactive SHell), entre otros. Cada uno tiene sus características y comandos específicos, pero todos comparten el propósito fundamental de proporcionar una interfaz para interactuar con el sistema operativo a través de comandos.</p>



<p>Actividad.</p>



<ol class="wp-block-list">
<li>Crea un directorio con el nombre de Programacion_Unix</li>



<li>Dentro de el crea un directorio con tu nombre.</li>



<li>Dentro del directorio con tu nombre, crea un archivo con el nombre iudy.txt (usa nano para crearlo)</li>



<li>Mueve el archivo iudy.txt al directorio Programación_Unix</li>



<li>Crea una copia del archivo iudy.txt y asignale el nombre de Usa_shell,txt.</li>



<li>Edita el documento Usa_shell.txt y coloca los comando que has usado hasta el momento.</li>
</ol>



<p></p>
<p>La entrada <a href="https://www.frexus.dev/post/usando-el-shell/">Usando el shell</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/usando-el-shell/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2293</post-id>	</item>
		<item>
		<title>Linux en un Entorno Empresarial</title>
		<link>https://www.frexus.dev/post/linux/</link>
					<comments>https://www.frexus.dev/post/linux/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Tue, 15 Aug 2023 11:57:26 +0000</pubDate>
				<category><![CDATA[post]]></category>
		<category><![CDATA[caso de estudio]]></category>
		<category><![CDATA[linux]]></category>
		<guid isPermaLink="false">https://www.frexus.dev/?p=2278</guid>

					<description><![CDATA[<p>Una empresa de tamaño mediano decide migrar su infraestructura informática a un entorno basado en el sistema operativo Linux. La empresa busca mejorar la seguridad, reducir costos y aumentar la eficiencia operativa. Desafío: La empresa opera actualmente en un entorno heterogéneo con sistemas operativos propietarios y enfrenta desafíos relacionados con la seguridad, el rendimiento y los costos de licencia. Solución: Implementación de Linux en Toda la Infraestructura 1: Evaluación de Necesidades: 2: Diseño de la Arquitectura: 3: Migración Gradual: 4: Personalización y Desarrollo de Herramientas: 5: Monitorización y Optimización Continuas: Resultados: Lecciones Aprendidas:</p>
<p>La entrada <a href="https://www.frexus.dev/post/linux/">Linux en un Entorno Empresarial</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-full is-resized"><img loading="lazy" decoding="async" width="1300" height="867" src="https://www.frexus.dev/wp-content/uploads/2023/12/cHJpdmF0ZS9sci9pbWFnZXMvd2Vic2l0ZS8yMDIyLTA1L3B4MTE2OTgwMC1pbWFnZS1rd3Z3Nnl3ai5qcGc.jpg" alt="Business plan wall linux" class="wp-image-2280" style="width:442px;height:auto" srcset="https://www.frexus.dev/wp-content/uploads/2023/12/cHJpdmF0ZS9sci9pbWFnZXMvd2Vic2l0ZS8yMDIyLTA1L3B4MTE2OTgwMC1pbWFnZS1rd3Z3Nnl3ai5qcGc.jpg 1300w, https://www.frexus.dev/wp-content/uploads/2023/12/cHJpdmF0ZS9sci9pbWFnZXMvd2Vic2l0ZS8yMDIyLTA1L3B4MTE2OTgwMC1pbWFnZS1rd3Z3Nnl3ai5qcGc-300x200.jpg 300w, https://www.frexus.dev/wp-content/uploads/2023/12/cHJpdmF0ZS9sci9pbWFnZXMvd2Vic2l0ZS8yMDIyLTA1L3B4MTE2OTgwMC1pbWFnZS1rd3Z3Nnl3ai5qcGc-1024x683.jpg 1024w, https://www.frexus.dev/wp-content/uploads/2023/12/cHJpdmF0ZS9sci9pbWFnZXMvd2Vic2l0ZS8yMDIyLTA1L3B4MTE2OTgwMC1pbWFnZS1rd3Z3Nnl3ai5qcGc-768x512.jpg 768w" sizes="auto, (max-width: 1300px) 100vw, 1300px" /></figure>
</div>


<p>Una empresa de tamaño mediano decide migrar su infraestructura informática a un entorno basado en el sistema operativo Linux. La empresa busca mejorar la seguridad, reducir costos y aumentar la eficiencia operativa.</p>



<p><strong>Desafío:</strong> La empresa opera actualmente en un entorno heterogéneo con sistemas operativos propietarios y enfrenta desafíos relacionados con la seguridad, el rendimiento y los costos de licencia.</p>



<p><strong>Solución: Implementación de Linux en Toda la Infraestructura</strong></p>



<p><strong>1: Evaluación de Necesidades:</strong></p>



<ul class="wp-block-list">
<li>Se realiza una evaluación exhaustiva de los requisitos y las necesidades de la empresa.</li>



<li>Se identifican las áreas clave donde Linux puede ofrecer mejoras significativas.</li>
</ul>



<p><strong>2: Diseño de la Arquitectura:</strong></p>



<ul class="wp-block-list">
<li>Se diseña una arquitectura de sistemas que incluye servidores, estaciones de trabajo y dispositivos de red basados en Linux.</li>



<li>Se seleccionan distribuciones de Linux adecuadas para cada caso de uso.</li>
</ul>



<p><strong>3: Migración Gradual:</strong></p>



<ul class="wp-block-list">
<li>Se implementa un plan de migración gradual para minimizar la interrupción de las operaciones comerciales.</li>



<li>Se proporciona formación a los empleados para facilitar la transición.</li>
</ul>



<p><strong>4: Personalización y Desarrollo de Herramientas:</strong></p>



<ul class="wp-block-list">
<li>Se desarrollan herramientas personalizadas para satisfacer las necesidades específicas de la empresa.</li>



<li>Se integran soluciones de código abierto para maximizar la eficiencia.</li>
</ul>



<p><strong>5: Monitorización y Optimización Continuas:</strong></p>



<ul class="wp-block-list">
<li>Se implementa un sistema de monitorización constante para garantizar el rendimiento y la seguridad.</li>



<li>Se optimizan y ajustan continuamente los sistemas según las necesidades cambiantes de la empresa.</li>
</ul>



<p><strong>Resultados:</strong></p>



<ul class="wp-block-list">
<li>Se logra una mejora significativa en la seguridad de la infraestructura.</li>



<li>La empresa experimenta ahorros sustanciales en costos de licencias y hardware.</li>



<li>La eficiencia operativa aumenta con la estandarización en entornos Linux.</li>
</ul>



<p><strong>Lecciones Aprendidas:</strong></p>



<ul class="wp-block-list">
<li>La planificación cuidadosa y la migración gradual son clave para el éxito.</li>



<li>La personalización y el desarrollo de herramientas pueden adaptar Linux a las necesidades específicas de la empresa.</li>



<li>La monitorización constante y la optimización garantizan un rendimiento óptimo a largo plazo.</li>
</ul>
<p>La entrada <a href="https://www.frexus.dev/post/linux/">Linux en un Entorno Empresarial</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/post/linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">2278</post-id>	</item>
		<item>
		<title>C# y MS SQL Server en el contenedor</title>
		<link>https://www.frexus.dev/articulo/c-mssql-fedora/</link>
					<comments>https://www.frexus.dev/articulo/c-mssql-fedora/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Sat, 30 Jul 2022 10:29:00 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[csharp]]></category>
		<category><![CDATA[Docker]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[mssql]]></category>
		<category><![CDATA[sql server]]></category>
		<guid isPermaLink="false">https://ajgutierrez.com.mx/?p=1317</guid>

					<description><![CDATA[<p>C# como lenguaje de programación, mssqlserver como gestor de base de datos y fedora como sistema operativo donde permita crear una aplicación sencilla. No era algo rentable hasta ahora. Claro que con una versión de mssqlserver en docker es posible. Una vez que ya se tiene instalado el contenedor con mssqlserver, ya si instalo .netcore. No queda otra cosa que probar la conexión desde c# un clásico, insertar, actualizar, eliminar y mostrar el contenido de la tabla afectada. Para el ejercicio se creo una tabla con el nombre TestDB, el cual contiene una tabla llamada inventario, donde tendrá tres campos, un identificador (ID) de tipo entero, un nombre de tipo nvarchar con una longitud de 50 y para terminar un campo cantidad de tipo entero. El código usado para crear la base de datos y la tabla fue el siguiente: Todos los archivos los encuentras en el github Librerías Las librerías que se usaron para la creación de este ejercicio fueron Funciones Se crearon cuatro funciones la primera que se creo fue la de mostrar los datos de la tabla, una de insertar un registro, otra para actualizar un registro y finalmente una para eliminar el registro de la tabla. Es con fines didácticos y probar el comportamiento de .net core y mssql server en una distribución linux. Función Mostrar datos Esta función permitió mostrar el contenido de la tabla inventario después de cada acción que se realizo (inserción, actualización y eliminación). Y le pide al usuario que pulse una tecla para que continue con el proceso. Función Registrar datos Esta función permitió agregar un registro a la tabla inventario y manda a llamar a la función MostrarDatos(), para visualizar el registro que se agrego. Vea imagen 1 Función Actualizar datos Esta función permitió agregar un registro a la tabla inventario y manda a llamar a la función MostrarDatos(), para visualizar la afectación a la fila realizada. Vea imagen 2 Función Eliminar datos Finalmente esta función, vacía el registro de la tabla inventario y manda a llamar a la función MostrarDatos(), para que se visualice la eliminación. Vea imagen 3 Código completo usado Tenía mas de un par de décadas que no tocaba c# y mssql. Parte del código se consolido con la documentación que ofrece Microsoft para la comprobación de conexión con mssql en el docker. Creando la Aplicación Me genero cierta sorpresa que se tenga que usar el commando dotnet (después de instalarlo el .netcore) muy al estilo de java, rust, python, go e incluso ruby. En el sentido que para crear la aplicación se tiene que ejecutar el comando: Lo que genera una carpeta donde viene el xml, y main del programa ya solo se tiene que editar el fichero Program.cs y después de eso ejecutar el comando: Claro que se tiene que estar dentro de la carpeta que se creo con el comando anterior para que se ejecute, cada modificación que se realice al fichero Program.cs, se debe de ejecutar el comando dotnet.cs Finales Es satisfactorio poder ahora crear aplicaciones en csharp con conexión en mssql, sobre todo que ya hay soporte para distribuciones linux, se espera que pronto salga las versiones arm para que puedan ser ejecutadas y creadas en las nuevas Mac. La aplicación de consola es muy sencilla, pero permitió ver la facilidad de conexión, quizá en otra entrada se dedique una con interfaz gráfica. Recuerdo que antes solo se usaba una versión de mono para poder crear aplicaciones en csharp, pero al quererlas ejecutar en windows era un rollo. Solo faltaría ver si eso se ha quitado o no. No se debe de olvidar que el servicio de docker debe de estar en ejecución para que la conexión pueda generarse.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/c-mssql-fedora/">C# y MS SQL Server en el contenedor</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[<div class="wp-block-image">
<figure class="aligncenter size-large is-resized"><img decoding="async" src="https://koenig-media.raywenderlich.com/uploads/2016/12/CStyle-feature-2.png" alt="c# mssql y fedora" style="aspect-ratio:1;width:270px;height:auto"/></figure>
</div>


<p>C# como lenguaje de programación, mssqlserver como gestor de base de datos y fedora como sistema operativo donde permita crear una aplicación sencilla. No era algo rentable hasta ahora. Claro que con una versión de mssqlserver en docker es posible.</p>



<p>Una vez que ya se tiene instalado el contenedor con mssqlserver, ya si instalo .netcore. No queda otra cosa que probar la conexión desde c# un clásico, insertar, actualizar, eliminar y mostrar el contenido de la tabla afectada.</p>



<p>Para el ejercicio se creo una tabla con el nombre TestDB, el cual contiene una tabla llamada inventario, donde tendrá tres campos, un identificador (ID) de tipo entero, un nombre de tipo nvarchar con una longitud de 50 y para terminar un campo cantidad de tipo entero. El código usado para crear la base de datos y la tabla fue el siguiente:</p>



<p>Todos los archivos los encuentras en el <a href="https://github.com/ajgutierr3z/csharp-mssql-linux.git" target="_blank" rel="noreferrer noopener">github</a></p>



<pre class="EnlighterJSRAW" data-enlighter-language="sql" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="1" data-enlighter-title="" data-enlighter-group="">Create datababase TestDB;
go
Use TestDB;
go
Create table inventario (id int, nombre nvarchar(50), cantidad int);
go</pre>



<h2 class="wp-block-heading">Librerías</h2>



<p>Las librerías que se usaron para la creación de este ejercicio fueron</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;</pre>



<h2 class="wp-block-heading">Funciones</h2>



<p>Se crearon cuatro funciones la primera que se creo fue la de mostrar los datos de la tabla, una de insertar un registro, otra para actualizar un registro y finalmente una para eliminar el registro de la tabla. Es con fines didácticos y probar el comportamiento de .net core y mssql server en una distribución linux.</p>



<h2 class="wp-block-heading">Función Mostrar datos</h2>



<p>Esta función permitió mostrar el contenido de la tabla inventario después de cada acción que se realizo (inserción, actualización y eliminación). Y le pide al usuario que pulse una tecla para que continue con el proceso.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">void MuestraDatos()
                            {
                                SqlDataAdapter adaptador = new SqlDataAdapter("Select * from inventario",connection);
                                DataTable dt = new DataTable();
                                adaptador.Fill(dt);
                                Console.WriteLine(">>> Mostrando contenido de la tabla inventario &lt;&lt;&lt;");
                                Console.WriteLine("ID    -|- Nombre          -|- Cantidad");
                                Console.WriteLine("--------------------------------------");
                                foreach (DataRow item in dt.Rows)
                                {
                                    Console.WriteLine(item["id"].ToString() + "     -|- "+item["nombre"].ToString() + "        -|- " + item["cantidad"]);
                                }
                                Console.WriteLine(">>> Fin del contenido de la tabla inventario &lt;&lt;&lt; ");
                                Console.WriteLine("Pulse una tecla para continuar");
                                Console.ReadKey(true);
                            }</pre>



<h2 class="wp-block-heading">Función Registrar datos</h2>



<p>Esta función permitió agregar un registro a la tabla inventario y manda a llamar a la función <strong>MostrarDatos()</strong>, para visualizar el registro que se agrego. Vea imagen 1</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">void RegistraDatos()
                            {
                                String sql = "";
                                Console.WriteLine("Preparando insercición de registros en inventario");
                                sql="Use TestDB; Insert Into inventario values (1,'Manzanas',300);";
                                SqlCommand command = new SqlCommand(sql,connection);
                                command.ExecuteNonQuery();
                                Console.WriteLine("Registro insertado con éxito");
                                MuestraDatos();
                            }</pre>



<h2 class="wp-block-heading">Función Actualizar datos</h2>



<p>Esta función permitió agregar un registro a la tabla inventario y manda a llamar a la función <strong>MostrarDatos()</strong>, para visualizar la afectación a la fila realizada. Vea imagen 2</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">void ActualizaDatos()
                            {
                                String sql = "";
                                Console.WriteLine("Cambiar el nombre Manzanas por Sandias");
                                sql="Use TestDB; Update inventario set nombre = 'Sandias' where id=1";
                                SqlCommand commandA = new SqlCommand(sql,connection);
                                commandA.ExecuteNonQuery();
                                Console.WriteLine("Registro Actualizado con éxito");
                                MuestraDatos();
                            }</pre>



<h2 class="wp-block-heading">Función Eliminar datos</h2>



<p>Finalmente esta función, vacía el registro de la tabla inventario y manda a llamar a la función <strong>MostrarDatos()</strong>, para que se visualice la eliminación. Vea imagen 3</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">void EliminaDatos()
                            {
                                String sql = "";
                                Console.WriteLine("Vaciar la tabla inventario");
                                sql="Use TestDB; Delete inventario";
                                SqlCommand commandE = new SqlCommand(sql,connection);
                                commandE.ExecuteNonQuery();
                                Console.WriteLine("Tabla inventario vaciada con éxito");
                                MuestraDatos();
                            }</pre>



<h2 class="wp-block-heading">Código completo usado</h2>



<p>Tenía mas de un par de décadas que no tocaba c# y mssql. Parte del código se consolido con la documentación que ofrece Microsoft para la comprobación de conexión con mssql en el docker.</p>



<pre class="EnlighterJSRAW" data-enlighter-language="csharp" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace SqlServerColumnstoreSample
{
    class Program 
    {
        static void Main(string[] args)
        {
            Console.WriteLine(" Conectando con sqlserver desde c# ");
            SqlConnectionStringBuilder builder = new SqlConnectionStringBuilder();
            builder.DataSource = "localhost";
            builder.UserID = "sa";
            builder.Password = "Nemesis28;";
            builder.InitialCatalog = "master";
            Console.WriteLine("Conectando con sqlserver");
            using (SqlConnection connection = new SqlConnection(builder.ConnectionString))
            {
                            void MuestraDatos()
                            {
                                SqlDataAdapter adaptador = new SqlDataAdapter("Select * from inventario",connection);
                                DataTable dt = new DataTable();
                                adaptador.Fill(dt);
                                Console.WriteLine(">>> Mostrando contenido de la tabla inventario &lt;&lt;&lt;");
                                Console.WriteLine("ID    -|- Nombre          -|- Cantidad");
                                Console.WriteLine("--------------------------------------");
                                foreach (DataRow item in dt.Rows)
                                {
                                    Console.WriteLine(item["id"].ToString() + "     -|- "+item["nombre"].ToString() + "        -|- " + item["cantidad"]);
                                }
                                Console.WriteLine(">>> Fin del contenido de la tabla inventario &lt;&lt;&lt; ");
                                Console.WriteLine("Pulse una tecla para continuar");
                                Console.ReadKey(true);
                            }
                            void RegistraDatos()
                            {
                                String sql = "";
                                Console.WriteLine("Preparando insercición de registros en inventario");
                                sql="Use TestDB; Insert Into inventario values (1,'Manzanas',300);";
                                SqlCommand command = new SqlCommand(sql,connection);
                                command.ExecuteNonQuery();
                                Console.WriteLine("Registro insertado con éxito");
                                MuestraDatos();
                            }
                            void ActualizaDatos()
                            {
                                String sql = "";
                                Console.WriteLine("Cambiar el nombre Manzanas por Sandias");
                                sql="Use TestDB; Update inventario set nombre = 'Sandias' where id=1";
                                SqlCommand commandA = new SqlCommand(sql,connection);
                                commandA.ExecuteNonQuery();
                                Console.WriteLine("Registro Actualizado con éxito");
                                MuestraDatos();
                            }
                            void EliminaDatos()
                            {
                                String sql = "";
                                Console.WriteLine("Vaciar la tabla inventario");
                                sql="Use TestDB; Delete inventario";
                                SqlCommand commandE = new SqlCommand(sql,connection);
                                commandE.ExecuteNonQuery();
                                Console.WriteLine("Tabla inventario vaciada con éxito");
                                MuestraDatos();
                            }
                connection.Open();
                Console.WriteLine("Conexión establecida con exito");
                RegistraDatos();
                ActualizaDatos();
                EliminaDatos();                
            }
        }
    }
}</pre>



<h2 class="wp-block-heading">Creando la Aplicación</h2>



<p>Me genero cierta sorpresa que se tenga que usar el commando dotnet  (después de instalarlo el .netcore) muy al estilo de java, rust, python, go e incluso ruby. En el sentido que para crear la aplicación se tiene que ejecutar el comando:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dotnet new console -o NombreAplicacion</pre>



<p> Lo que genera una carpeta donde viene el xml, y main del programa ya solo se tiene que editar el fichero <strong>Program.cs</strong> y después de eso ejecutar el comando:</p>



<pre class="EnlighterJSRAW" data-enlighter-language="generic" data-enlighter-theme="" data-enlighter-highlight="" data-enlighter-linenumbers="" data-enlighter-lineoffset="" data-enlighter-title="" data-enlighter-group="">dotnet run</pre>



<p>Claro que se tiene que estar dentro de la carpeta que se creo con el comando anterior para que se ejecute, cada modificación que se realice al fichero Program.cs, se debe de ejecutar el comando <strong>dotnet.cs</strong></p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/690984472830689280/v2" data-did="5ed65bda1a6316b2ee4ae86f06720a2f2ebb3305"  ><a href="https://www.tumblr.com/ajgutierr3z/690984472830689280/registro-de-datos-desde-c-a-una-base-de-datos-en">https://www.tumblr.com/ajgutierr3z/690984472830689280/registro-de-datos-desde-c-a-una-base-de-datos-en</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 1. Insertando registro en la tabla inventario. Fuente: tumblr.com</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/690984598081060864/v2" data-did="090865458c897df8b87f5393078f9a1e4b8084df"  ><a href="https://www.tumblr.com/ajgutierr3z/690984598081060864/actualizando-un-registro-desde-csharp-al">https://www.tumblr.com/ajgutierr3z/690984598081060864/actualizando-un-registro-desde-csharp-al</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 2. Actualizando registros en la tabla inventario. Fuente: Tomado de tumblr.com</figcaption></figure>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/690984825897762816/v2" data-did="d7aad645ae48225602d7a4a03ee650f2e958599a"  ><a href="https://www.tumblr.com/ajgutierr3z/690984825897762816/eliminando-registro-desde-la-aplicaci%C3%B3n-en-csharp">https://www.tumblr.com/ajgutierr3z/690984825897762816/eliminando-registro-desde-la-aplicaci%C3%B3n-en-csharp</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 3. Eliminando registros en la tabla inventario. Fuente: tumblr.com</figcaption></figure>



<h2 class="wp-block-heading">Finales</h2>



<p>Es satisfactorio poder ahora crear aplicaciones en csharp con conexión en mssql, sobre todo que ya hay soporte para distribuciones linux, se espera que pronto salga las versiones arm para que puedan ser ejecutadas y creadas en las nuevas Mac.</p>



<p>La aplicación de consola es muy sencilla, pero permitió ver la facilidad de conexión, quizá en otra entrada se dedique una con interfaz gráfica. Recuerdo que antes solo se usaba una versión de mono para poder crear aplicaciones en csharp, pero al quererlas ejecutar en windows era un rollo. Solo faltaría ver si eso se ha quitado o no. </p>



<p>No se debe de olvidar que el servicio de docker debe de estar en ejecución para que la conexión pueda generarse.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/c-mssql-fedora/">C# y MS SQL Server en el contenedor</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/c-mssql-fedora/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1317</post-id>	</item>
		<item>
		<title>Net core en una distribución linux (fedora 35)</title>
		<link>https://www.frexus.dev/articulo/net-core-en-una-distribucion-linux-fedora-35/</link>
					<comments>https://www.frexus.dev/articulo/net-core-en-una-distribucion-linux-fedora-35/#respond</comments>
		
		<dc:creator><![CDATA[Alfredo de Jesús Gutiérrez]]></dc:creator>
		<pubDate>Fri, 29 Jul 2022 11:41:00 +0000</pubDate>
				<category><![CDATA[articulo]]></category>
		<category><![CDATA[.netcore]]></category>
		<category><![CDATA[C#]]></category>
		<category><![CDATA[Fedora 35]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[Microsoft]]></category>
		<guid isPermaLink="false">https://ajgutierrez.com.mx/?p=1307</guid>

					<description><![CDATA[<p>Hoy se instalara el .net core, ya se instalo el gestor de base de datos (vea aquí) ahora falta instalar el lenguaje de programación, no se debe de olvidar que a finales de la década de los 90&#8217;s Microsoft tenía un entorno llamado Visual Estudio y que permitía programar en lenguajes como C#, F, c/c++, asp y otros. Se debe de recordar que por aquellos tiempos crear una aplicación de escritorio se tenía que llevar la versión del .net en el que se creo la aplicación, y si por alguna circunstancia extraordinaria se actualizaba la aplicación dejaba de funcionar. Es un sentido muy extraño que después de tantos tiempo Microsoft permita que sus tecnologías puedan ser instaladas en sistemas operativos libres, por lo que si se quiere instalar el sdk para crear aplicaciones solo hay que ejecutar el siguiente comando, al menos en un entorno de la familia red hat. si se estuviera en las familias de debian solo se tendría que cambar el dnf por apt.</p>
<p>La entrada <a href="https://www.frexus.dev/articulo/net-core-en-una-distribucion-linux-fedora-35/">Net core en una distribución linux (fedora 35)</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Hoy se instalara el <strong>.net core</strong>, ya se instalo el gestor de base de datos (vea <a href="https://ajgutierrez.com.mx/2022/07/26/docker-sql-server-y-una-base-de-datos/">aquí</a>) ahora falta instalar el lenguaje de programación, no se debe de olvidar que a finales de la década de los 90&#8217;s Microsoft tenía un entorno llamado Visual Estudio y que permitía programar en lenguajes como C#, F, c/c++, asp y otros. </p>



<p>Se debe de recordar que por aquellos tiempos crear una aplicación de escritorio se tenía que llevar la versión del .net en el que se creo la aplicación, y si por alguna circunstancia extraordinaria se actualizaba la aplicación dejaba de funcionar.</p>



<p>Es un sentido muy extraño que después de tantos tiempo Microsoft permita que sus tecnologías puedan ser instaladas en sistemas operativos libres, por lo que si se quiere instalar el sdk para crear aplicaciones solo hay que ejecutar el siguiente comando, al menos en un entorno de la familia red hat.</p>


<div class="wp-block-syntaxhighlighter-code "><pre class="brush: plain; title: ; notranslate">
dnf install dotnet-sdk-6.
</pre></div>


<p>si se estuviera en las familias de debian solo se tendría que cambar el <strong>dnf</strong> por <strong>apt</strong>.</p>



<figure class="wp-block-embed is-type-rich is-provider-tumblr wp-block-embed-tumblr"><div class="wp-block-embed__wrapper">
<div class="tumblr-post" data-href="https://embed.tumblr.com/embed/post/t:d0KmrxJkElKB8EsGh2qW4w/690893090315272192/v2" data-did="58996a1b842ba4bf75595d45b8083d03a9ca3bdd"  ><a href="https://www.tumblr.com/ajgutierr3z/690893090315272192/instalaci%C3%B3n-netcore-en-distro-fedora-35">https://www.tumblr.com/ajgutierr3z/690893090315272192/instalaci%C3%B3n-netcore-en-distro-fedora-35</a></div><script async src="https://assets.tumblr.com/post.js?_v=38df9a6ca7436e6ca1b851b0543b9f51"></script>
</div><figcaption class="wp-element-caption">Imagen 1. Instalación de .net core en fedora 35. Fuente: tomada de tumblr.com</figcaption></figure>



<p></p>
<p>La entrada <a href="https://www.frexus.dev/articulo/net-core-en-una-distribucion-linux-fedora-35/">Net core en una distribución linux (fedora 35)</a> se publicó primero en <a href="https://www.frexus.dev">Frexus</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://www.frexus.dev/articulo/net-core-en-una-distribucion-linux-fedora-35/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1307</post-id>	</item>
	</channel>
</rss>
