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

<channel>
	<title>geekland</title>
	<atom:link href="https://geekland.eu/feed/?max-results=5" rel="self" type="application/rss+xml"/>
	<link>https://geekland.eu/</link>
	<description>Blog de Tecnología</description>
	<lastBuildDate>Mon, 25 Aug 2025 13:39:43 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://geekland.eu/wp-content/uploads/2019/03/cropped-geekland_favicon-1-32x32.png</url>
	<title>geekland</title>
	<link>https://geekland.eu/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<itunes:explicit>no</itunes:explicit><itunes:subtitle>Blog de Tecnología</itunes:subtitle><itunes:category text="Technology"><itunes:category text="Software How-To"/></itunes:category><item>
		<title>Cómo SURFSHARK te ayuda a navegar sin límites en China</title>
		<link>https://geekland.eu/como-surfshark-te-ayuda-a-navegar-sin-limites-en-china/</link>
					<comments>https://geekland.eu/como-surfshark-te-ayuda-a-navegar-sin-limites-en-china/#respond</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Mon, 25 Aug 2025 13:39:43 +0000</pubDate>
				<category><![CDATA[Redes]]></category>
		<category><![CDATA[Seguridad Informática]]></category>
		<category><![CDATA[surfshark]]></category>
		<category><![CDATA[Vpn]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=14044</guid>

					<description><![CDATA[<p>Cuando se trata de viajar o vivir en China, tienes que prepararte para enfrentarte al Gran Cortafuegos Chino. Este sofisticado sistema de censura restringe el acceso a plataformas tan cotidianas como Google, WhatsApp o Instagram, convirtiendo tareas simples en una misión casi imposible. Por suerte, existen herramientas VPN que funcionan como un auténtico salvavidas digital. &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/como-surfshark-te-ayuda-a-navegar-sin-limites-en-china/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Cómo SURFSHARK te ayuda a navegar sin límites en China»</span></a></p>
<p>La entrada <a href="https://geekland.eu/como-surfshark-te-ayuda-a-navegar-sin-limites-en-china/">Cómo SURFSHARK te ayuda a navegar sin límites en China</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Cuando se trata de viajar o vivir en China, tienes que prepararte para enfrentarte al <strong>Gran Cortafuegos Chino</strong>. Este sofisticado sistema de censura restringe el acceso a plataformas tan cotidianas como Google, WhatsApp o Instagram, convirtiendo tareas simples en una misión casi imposible.</p>
<p style="text-align: justify;">Por suerte, existen herramientas VPN que funcionan como un auténtico salvavidas digital. Pero ojo, no todas las VPN son iguales. En este artículo, vamos a ver cómo Surfshark no solo funciona en China, sino que ha sido específicamente diseñado para sortear estos bloqueos y devolverte el control de tu conexión a Internet.<span id="more-14044"></span></p>
<h3>EL GRAN CORTAFUEGOS CHINO</h3>
<p style="text-align: justify;">Antes de entrar en materia con la solución, es importante entender a qué nos enfrentamos. El Gran Cortafuegos no es un simple filtro, sino una compleja infraestructura tecnológica diseñada para controlar la información que entra y sale del país. Comprender su funcionamiento te ayudará a valorar por qué una VPN especializada es tu mejor aliado.</p>
<h4>¿Qué es el gran cortafuegos de China?</h4>
<p style="text-align: justify;">En pocas palabras, el Gran Cortafuegos de China (o <em>Great Firewall</em>, en inglés) es un sistema masivo de censura y vigilancia de Internet implementado por el gobierno chino. Su funcionamiento se basa en dos principios:</p>
<ol style="text-align: justify;">
<li>El gobierno establece una lista negra de páginas web, servicios y aplicaciones a los que no se puede acceder desde el país.</li>
<li>Cuando una persona intenta acceder a uno de estos recursos bloqueados, el cortafuegos intercepta la petición y la bloquea, impidiendo la conexión.</li>
</ol>
<p style="text-align: justify;">La lista de servicios y páginas web inaccesibles es enorme y afecta a nuestro día a día digital. Algunos de los más importantes son:</p>
<ul>
<li style="text-align: justify;"><strong>Redes sociales:</strong> Facebook, Twitter, Instagram, LinkedIn, Mastodon, TikTok, etc.</li>
<li style="text-align: justify;"><strong>Mensajería:</strong> WhatsApp, Telegram, Signal, etc.</li>
<li style="text-align: justify;"><strong>Buscadores:</strong> Google, DuckDuckGo, Yahoo, etc.</li>
<li style="text-align: justify;"><strong>Email:</strong> Gmail, ProtonMail, Yahoo, etc.</li>
<li style="text-align: justify;"><strong>Plataformas de vídeo:</strong> YouTube, Vimeo, Twitch, DailyMotion, etc.</li>
<li style="text-align: justify;"><strong>Nubes de almacenamiento:</strong> Google Drive, Dropbox, Mega, Box, etc.</li>
<li style="text-align: justify;"><strong>Herramientas de IA:</strong> ChatGPT, Perplexity, Claude, Gemini, Copilot, etc.</li>
<li style="text-align: justify;"><strong>Podcast:</strong> Spotify, Apple Podcasts, iVoox, etc.</li>
<li style="text-align: justify;"><strong>Prensa internacional:</strong> The New York Times, BBC, etc.</li>
</ul>
<h3>LA SOLUCIÓN AL GRAN CORTAFUEGOS DE CHINA</h3>
<p style="text-align: justify;">Para evitar los bloqueos del Gran Cortafuegos, la solución más efectiva es usar un servicio de <strong>VPN</strong> (Red Privada Virtual). Si no tienes claro <a title="Qué es una VPN y para qué sirve" href="https://surfshark.com/es/learn/que-es-vpn" target="_blank" rel="noopener"><strong>qué es una VPN y para qué sirve</strong></a>, primero te recomiendo leer esta guía. Al conectarte a una VPN, todo tu tráfico de Internet se redirige a través de un servidor ubicado en otro país, permitiéndote evitar las restricciones locales.</p>
<p style="text-align: justify;">Sin embargo, hay que tener en cuenta que no todas las VPN funcionan en China.</p>
<h4>¿Por qué las VPN tradicionales no son suficientes?</h4>
<p style="text-align: justify;">El Gran Cortafuegos es lo suficientemente inteligente como para detectar y bloquear el tráfico generado por la mayoría de los servicios VPN. En el momento en que detecta que estás usando una, bloquea la conexión.</p>
<p style="text-align: justify;">Para que una VPN funcione en territorio chino, el proveedor debe trabajar activamente para pasar desapercibido. Algunas de las técnicas que deben aplicar son:</p>
<ul>
<li style="text-align: justify;"><strong>Técnicas de ofuscación:</strong> Sirven para enmascarar el tráfico de la VPN y hacerlo pasar por tráfico de navegación normal (HTTPS). Así, el cortafuegos no puede identificarlo como una conexión VPN.</li>
<li style="text-align: justify;"><strong>Protocolos especializados:</strong> Utilizar protocolos de seguridad menos comunes o modificados que no sean fácilmente detectables por los sistemas de inspección del cortafuegos. Algunos de estos protocolos especializados pueden ser IKEV2, OpenVPN, ShadowSocks, etc.</li>
<li style="text-align: justify;"><strong>Rotación constante de IPs y servidores:</strong> Es vital que el proveedor de VPN añade continuamente nuevos servidores con nuevas direcciones IP. Si no lo hiciera, los servidores existentes serían rápidamente identificados y bloqueados, o los servicios a los que accedes podrían detectar tu IP como sospechosa.</li>
</ul>
<h3>¿POR QUÉ RECOMIENDO EL USO DE SURFSHARK?</h3>
<p style="text-align: justify;">Después de haber probado varias opciones, mi recomendación para China es clara: <strong>Surfshark</strong>. No solo cumple con todos los requisitos técnicos para funcionar, sino que lo hace de una manera sencilla y fiable, algo que es crucial cuando estás en el terreno.</p>
<p style="text-align: justify;">Aquí te detallo las razones por las que considero que es la mejor opción:</p>
<ol>
<li style="text-align: justify;"><strong>Porque realmente funciona en China.</strong> Esto es lo más importante. De poco sirve una VPN muy segura si no se puede conectar. Al abrir la aplicación, su <strong>modo NoBorders</strong> detecta automáticamente que estás en China y te ofrece una lista de servidores optimizados para eludir el Gran Cortafuegos. Por experiencia personal, puedo decir que mientras otras VPN de pago como NordVPN no funcionan, y otras como ExpressVPN fallan cuando más las necesitas, Surfshark se ha mantenido estable.</li>
<li style="text-align: justify;"><strong>Dispositivos ilimitados.</strong> Puedes instalar y usar tu cuenta de Surfshark en todos tus dispositivos sin límite: Windows, Android, iOS, macOS, Linux, Fire TV Stick, etc. Si viajas con un portátil, un móvil y una tablet, podrás protegerlos todos con una única suscripción.</li>
<li style="text-align: justify;"><strong>Tecnología Bypasser (Split Tunneling).</strong> Esta función te permite elegir qué aplicaciones usan la VPN y cuáles no. Esto es fundamental en China, ya que es recomendable que las aplicaciones de pago locales como <strong>AliPay</strong> o <strong>WeChat Pay</strong>, o las de transporte como <strong>Didi</strong>, usen tu conexión local para funcionar correctamente. Además, usar la VPN solo donde la necesitas ayuda a optimizar el consumo de batería de tus dispositivos.</li>
<li style="text-align: justify;"><strong>Alta rotación de IPs.</strong> Surfshark está constantemente añadiendo nuevos servidores y direcciones IP. Esto evita que los servicios que usas (como tu banco o Gmail) detecten tu conexión como sospechosa y te bloqueen el acceso.</li>
<li style="text-align: justify;"><strong>Relación calidad/precio.</strong> Es una de las VPN más baratas. Además, si consideras que ofrece conexiones ilimitadas para todos tus dispositivos y un tráfico sin restricciones, su precio es más que justo.</li>
</ol>
<h3>CONSEJOS PARA USAR SURFSHARK EN CHINA</h3>
<p style="text-align: justify;">Para sacarle el máximo partido a Surfshark en China, ten en cuenta estos consejos prácticos:</p>
<ul>
<li style="text-align: justify;"><strong>Instala la aplicación ANTES de viajar.</strong> Una vez en China, no tendrás acceso a Google Play Store para descargarla. Asegúrate de tenerla instalada y configurada en todos tus dispositivos antes de aterrizar.</li>
<li style="text-align: justify;"><strong>Configuración recomendada.</strong> En iOS, macOS, Windows y Android, la aplicación funciona a la perfección. Mi recomendación es entrar en los ajustes, seleccionar el protocolo <strong>WireGuard</strong> y activar la función <strong>Bypasser</strong> para seleccionar solo las aplicaciones que quieres que pasen por la VPN.</li>
<li style="text-align: justify;"><strong>Uso en Linux.</strong> La aplicación de escritorio para Linux está menos desarrollada y no suele funcionar en China. Sin embargo, puedes configurar una conexión manual a través de Network Manager usando los archivos de configuración que proporciona Surfshark para conectarte a sus servidores.</li>
<li style="text-align: justify;"><strong>Conexión simple.</strong> No busques configuraciones complicadas en la aplicación oficial de Surfshark. Simplemente usa la configuración estándar y pulsa el botón <strong>Conectar</strong>. La app ya sabe que estás en China y aplicará los ajustes necesarios. Si una conexión falla, vuelve a intentarlo hasta que se establezca.</li>
</ul>
<h3>CONCLUSIONES FINALES</h3>
<p style="text-align: justify;">Si buscas una VPN que te garantice navegar por Internet sin restricciones en China, Surfshark es, sin duda, una de las mejores opciones que existen actualmente en el mercado.</p>
<p style="text-align: justify;">Su funcionamiento es satisfactorio, estable y rápido. No solo te permite acceder a todos los servicios bloqueados, sino que lo hace de forma sencilla y transparente para el usuario. Además, en las pocas ocasiones en que he necesitado contactar con su equipo de soporte, me han ofrecido soluciones de forma rápida y eficiente. En definitiva, es una herramienta imprescindible para cualquier viajero o residente en China.</p>
<p>La entrada <a href="https://geekland.eu/como-surfshark-te-ayuda-a-navegar-sin-limites-en-china/">Cómo SURFSHARK te ayuda a navegar sin límites en China</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/como-surfshark-te-ayuda-a-navegar-sin-limites-en-china/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo Traducir Textos Automáticamente con Google Sheets</title>
		<link>https://geekland.eu/como-traducir-textos-automaticamente-con-google-sheets/</link>
					<comments>https://geekland.eu/como-traducir-textos-automaticamente-con-google-sheets/#respond</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sat, 13 Jul 2024 06:35:26 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Windows]]></category>
		<category><![CDATA[Google]]></category>
		<category><![CDATA[Ofimática]]></category>
		<category><![CDATA[traducción]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=14027</guid>

					<description><![CDATA[<p>En este artículo, exploraremos cómo usar la hoja de cálculo Google Sheets para traducir textos de un idioma a otro de manera automática y eficiente. Esta herramienta puede ser especialmente útil y eficiente para proyectos multilingües, informes, y en el momento de traducir grandes volúmenes de texto automáticamente. Aquí te mostramos cómo hacerlo paso a &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/como-traducir-textos-automaticamente-con-google-sheets/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Cómo Traducir Textos Automáticamente con Google Sheets»</span></a></p>
<p>La entrada <a href="https://geekland.eu/como-traducir-textos-automaticamente-con-google-sheets/">Cómo Traducir Textos Automáticamente con Google Sheets</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">En este artículo, exploraremos cómo usar la hoja de cálculo Google Sheets para traducir textos de un idioma a otro de manera automática y eficiente. Esta herramienta puede ser especialmente útil y eficiente para proyectos multilingües, informes, y en el momento de traducir grandes volúmenes de texto automáticamente. Aquí te mostramos cómo hacerlo paso a paso.<span id="more-14027"></span></p>
<h2>¿ POR QUÉ USAR GOOGLE SHEETS PARA TRADUCIR?</h2>
<p style="text-align: justify;">Existen muchas formas de traducir textos, pero si necesitas traducir contenido ya presente en una hoja de cálculo, Google Sheets es una excelente opción. A continuación, te explico por qué:</p>
<ol>
<li style="text-align: justify;"><strong>Eficiencia</strong>: Con una sola fórmula, puedes traducir cientos de miles de líneas de manera extremadamente rápida, ahorrando tiempo y esfuerzo.</li>
<li style="text-align: justify;"><strong>Calidad</strong>: Las habilidades de traducción de Google son bastante buenas y mejoran constantemente. En poco tiempo, podrían ofrecer traducciones similares a las de un humano.</li>
<li style="text-align: justify;"><strong>Actualización automática:</strong> Las traducciones se actualizan automáticamente si modificas el texto original, facilitando la gestión de documentos multilingües.</li>
</ol>
<h2>COMO TRADUCIR TEXTOS EN LA HOJA DE CÁLCULO GOOGLE SHEETS</h2>
<p style="text-align: justify;">Primero, abre una nueva hoja en Google Sheets y organiza tus textos originales en una columna, por ejemplo, en la columna A tenemos el texto en un idioma extranjero que en mi caso es el inglés:</p>
<p><img fetchpriority="high" decoding="async" class="alignnone wp-image-14030" title="Obtener los textos que queremos traducir en la hoja de cálculo" src="https://geekland.eu/wp-content/uploads/2024/07/obtener-los-textos-a-traducir.png" alt="Obtener los textos que queremos traducir en la hoja de cálculo" width="600" height="417" srcset="https://geekland.eu/wp-content/uploads/2024/07/obtener-los-textos-a-traducir.png 691w, https://geekland.eu/wp-content/uploads/2024/07/obtener-los-textos-a-traducir-300x208.png 300w" sizes="(max-width: 600px) 100vw, 600px" /></p>
<p style="text-align: justify;">A continuación utilizaremos la función o fórmula a <code><span style="color: #0090d3;">GOOGLETRANSLATE</span></code> para realizar las traducciones de cada una de las casillas. La sintaxis de la fórmula google translate es la siguiente:</p>
<blockquote>
<pre><code><span style="color: #0090d3;"><strong>=GOOGLETRANSLATE(<span style="color: #ff0000;">texto</span>;"<span style="color: #0000ff;">idioma_origen</span>";"<span style="color: #008000;">idioma_destino</span>")</strong> 
</span></code></pre>
</blockquote>
<ul>
<li style="text-align: justify;"><strong><span style="color: #ff0000;">texto</span>:</strong> El texto a traducir. Aquí tendremos que indicar la casilla que queremos traducir.</li>
<li style="text-align: justify;"><strong><span style="color: #0000ff;">idioma_origen</span>:</strong> Código del idioma original (por ejemplo, «en» para inglés). El texto a usar para definir el idioma de origen lo encontrarán en apartado <code><span style="color: #0090d3;">Código para definir cara uno de idiomas a traducir</span></code>.</li>
<li style="text-align: justify;"><strong><span style="color: #008000;">idioma_destino</span>:</strong> Código del idioma de destino (por ejemplo, «es» para español). El texto a usar para definir el idioma de destino lo encontrarán en apartado <code><span style="color: #0090d3;">Código para definir cara uno de idiomas a traducir</span></code>.</li>
</ul>
<p style="text-align: justify;">Por lo tanto En la celda donde quieres que aparezca la traducción, escribe la fórmula. Por ejemplo, para traducir el texto presente en la celda A2 del inglés al español:</p>
<blockquote>
<pre><code><strong><span style="color: #0090d3;">=GOOGLETRANSLATE(<span style="color: #ff0000;">A2</span>;"<span style="color: #0000ff;">en</span>";<span style="color: #008000;">es</span>")</span> 
</strong></code></pre>
</blockquote>
<p><img decoding="async" class="alignnone wp-image-14031" title="Escribir la fórmula para traducir los textos" src="https://geekland.eu/wp-content/uploads/2024/07/introducir-la-formula-para-traducir-los-texto.png" alt="Escribir la fórmula para traducir los textos" width="720" height="457" srcset="https://geekland.eu/wp-content/uploads/2024/07/introducir-la-formula-para-traducir-los-texto.png 827w, https://geekland.eu/wp-content/uploads/2024/07/introducir-la-formula-para-traducir-los-texto-300x190.png 300w, https://geekland.eu/wp-content/uploads/2024/07/introducir-la-formula-para-traducir-los-texto-768x488.png 768w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<p style="text-align: justify;">Su ahorra arrastramos la fórmula conseguiremos la totalidad de traducciones de forma extremadamente rápida y sencilla.</p>
<p><img decoding="async" class="alignnone wp-image-14032" src="https://geekland.eu/wp-content/uploads/2024/07/texto-traducido-en-la-hoja-de-calculo.png" alt="Traducción finalizada en la hoja de cálculo" width="720" height="407" srcset="https://geekland.eu/wp-content/uploads/2024/07/texto-traducido-en-la-hoja-de-calculo.png 934w, https://geekland.eu/wp-content/uploads/2024/07/texto-traducido-en-la-hoja-de-calculo-300x170.png 300w, https://geekland.eu/wp-content/uploads/2024/07/texto-traducido-en-la-hoja-de-calculo-768x434.png 768w" sizes="(max-width: 720px) 100vw, 720px" /></p>
<h2>CÓDIGO PARA DEFINIR CADA UNO DE LOS IDIOMAS A TRADUCIR</h2>
<p style="text-align: justify;">Pare definir los idiomas de origen y destino tienen que usar las siguientes nomenclaturas:</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Código</th>
<th>Idioma</th>
</tr>
</thead>
<tbody>
<tr>
<td>af</td>
<td>Afrikaans</td>
</tr>
<tr>
<td>sq</td>
<td>Albanés</td>
</tr>
<tr>
<td>am</td>
<td>Amárico</td>
</tr>
<tr>
<td>ar</td>
<td>Árabe</td>
</tr>
<tr>
<td>hy</td>
<td>Armenio</td>
</tr>
<tr>
<td>az</td>
<td>Azerí</td>
</tr>
<tr>
<td>eu</td>
<td>Vasco</td>
</tr>
<tr>
<td>be</td>
<td>Bielorruso</td>
</tr>
<tr>
<td>bn</td>
<td>Bengalí</td>
</tr>
<tr>
<td>bs</td>
<td>Bosnio</td>
</tr>
<tr>
<td>bg</td>
<td>Búlgaro</td>
</tr>
<tr>
<td>ca</td>
<td>Catalán</td>
</tr>
<tr>
<td>ceb</td>
<td>Cebuano</td>
</tr>
<tr>
<td>ny</td>
<td>Chichewa</td>
</tr>
<tr>
<td>zh-CN</td>
<td>Chino (Simplificado)</td>
</tr>
<tr>
<td>zh-TW</td>
<td>Chino (Tradicional)</td>
</tr>
<tr>
<td>co</td>
<td>Corso</td>
</tr>
<tr>
<td>hr</td>
<td>Croata</td>
</tr>
<tr>
<td>cs</td>
<td>Checo</td>
</tr>
<tr>
<td>da</td>
<td>Danés</td>
</tr>
<tr>
<td>nl</td>
<td>Holandés</td>
</tr>
<tr>
<td>en</td>
<td>Inglés</td>
</tr>
<tr>
<td>eo</td>
<td>Esperanto</td>
</tr>
<tr>
<td>et</td>
<td>Estonio</td>
</tr>
<tr>
<td>tl</td>
<td>Filipino</td>
</tr>
<tr>
<td>fi</td>
<td>Finés</td>
</tr>
<tr>
<td>fr</td>
<td>Francés</td>
</tr>
<tr>
<td>fy</td>
<td>Frisón</td>
</tr>
<tr>
<td>gl</td>
<td>Gallego</td>
</tr>
<tr>
<td>ka</td>
<td>Georgiano</td>
</tr>
<tr>
<td>de</td>
<td>Alemán</td>
</tr>
<tr>
<td>el</td>
<td>Griego</td>
</tr>
<tr>
<td>gu</td>
<td>Guyaratí</td>
</tr>
<tr>
<td>ht</td>
<td>Criollo Haitiano</td>
</tr>
<tr>
<td>ha</td>
<td>Hausa</td>
</tr>
<tr>
<td>haw</td>
<td>Hawaiano</td>
</tr>
<tr>
<td>he</td>
<td>Hebreo</td>
</tr>
<tr>
<td>hi</td>
<td>Hindi</td>
</tr>
<tr>
<td>hmn</td>
<td>Hmong</td>
</tr>
<tr>
<td>hu</td>
<td>Húngaro</td>
</tr>
<tr>
<td>is</td>
<td>Islandés</td>
</tr>
<tr>
<td>ig</td>
<td>Igbo</td>
</tr>
<tr>
<td>id</td>
<td>Indonesio</td>
</tr>
<tr>
<td>ga</td>
<td>Irlandés</td>
</tr>
<tr>
<td>it</td>
<td>Italiano</td>
</tr>
<tr>
<td>ja</td>
<td>Japonés</td>
</tr>
<tr>
<td>jw</td>
<td>Javanés</td>
</tr>
<tr>
<td>kn</td>
<td>Canarés</td>
</tr>
<tr>
<td>kk</td>
<td>Kazajo</td>
</tr>
<tr>
<td>km</td>
<td>Jemer</td>
</tr>
<tr>
<td>rw</td>
<td>Kinyarwanda</td>
</tr>
<tr>
<td>ko</td>
<td>Coreano</td>
</tr>
<tr>
<td>ku</td>
<td>Kurdo</td>
</tr>
<tr>
<td>ky</td>
<td>Kirguís</td>
</tr>
<tr>
<td>lo</td>
<td>Lao</td>
</tr>
<tr>
<td>la</td>
<td>Latín</td>
</tr>
<tr>
<td>lv</td>
<td>Letón</td>
</tr>
<tr>
<td>lt</td>
<td>Lituano</td>
</tr>
<tr>
<td>lb</td>
<td>Luxemburgués</td>
</tr>
<tr>
<td>mk</td>
<td>Macedonio</td>
</tr>
<tr>
<td>mg</td>
<td>Malgache</td>
</tr>
<tr>
<td>ms</td>
<td>Malayo</td>
</tr>
<tr>
<td>ml</td>
<td>Malabar</td>
</tr>
<tr>
<td>mt</td>
<td>Maltés</td>
</tr>
<tr>
<td>mi</td>
<td>Maori</td>
</tr>
<tr>
<td>mr</td>
<td>Maratí</td>
</tr>
<tr>
<td>mn</td>
<td>Mongol</td>
</tr>
<tr>
<td>my</td>
<td>Birmano</td>
</tr>
<tr>
<td>ne</td>
<td>Nepalí</td>
</tr>
<tr>
<td>no</td>
<td>Noruego</td>
</tr>
<tr>
<td>or</td>
<td>Oriya</td>
</tr>
<tr>
<td>ps</td>
<td>Pastún</td>
</tr>
<tr>
<td>fa</td>
<td>Persa</td>
</tr>
<tr>
<td>pl</td>
<td>Polaco</td>
</tr>
<tr>
<td>pt</td>
<td>Portugués</td>
</tr>
<tr>
<td>pa</td>
<td>Punjabi</td>
</tr>
<tr>
<td>ro</td>
<td>Rumano</td>
</tr>
<tr>
<td>ru</td>
<td>Ruso</td>
</tr>
<tr>
<td>sm</td>
<td>Samoano</td>
</tr>
<tr>
<td>gd</td>
<td>Gaélico Escocés</td>
</tr>
<tr>
<td>sr</td>
<td>Serbio</td>
</tr>
<tr>
<td>st</td>
<td>Sesotho</td>
</tr>
<tr>
<td>sn</td>
<td>Shona</td>
</tr>
<tr>
<td>sd</td>
<td>Sindhi</td>
</tr>
<tr>
<td>si</td>
<td>Cingalés</td>
</tr>
<tr>
<td>sk</td>
<td>Eslovaco</td>
</tr>
<tr>
<td>sl</td>
<td>Esloveno</td>
</tr>
<tr>
<td>so</td>
<td>Somalí</td>
</tr>
<tr>
<td>es</td>
<td>Español</td>
</tr>
<tr>
<td>su</td>
<td>Sundanés</td>
</tr>
<tr>
<td>sw</td>
<td>Suajili</td>
</tr>
<tr>
<td>sv</td>
<td>Sueco</td>
</tr>
<tr>
<td>tg</td>
<td>Tayiko</td>
</tr>
<tr>
<td>ta</td>
<td>Tamil</td>
</tr>
<tr>
<td>tt</td>
<td>Tártaro</td>
</tr>
<tr>
<td>te</td>
<td>Telugu</td>
</tr>
<tr>
<td>th</td>
<td>Tailandés</td>
</tr>
<tr>
<td>tr</td>
<td>Turco</td>
</tr>
<tr>
<td>tk</td>
<td>Turcomano</td>
</tr>
<tr>
<td>uk</td>
<td>Ucraniano</td>
</tr>
<tr>
<td>ur</td>
<td>Urdu</td>
</tr>
<tr>
<td>ug</td>
<td>Uigur</td>
</tr>
<tr>
<td>uz</td>
<td>Uzbeko</td>
</tr>
<tr>
<td>vi</td>
<td>Vietnamita</td>
</tr>
<tr>
<td>cy</td>
<td>Galés</td>
</tr>
<tr>
<td>xh</td>
<td>Xhosa</td>
</tr>
<tr>
<td>yi</td>
<td>Yidis</td>
</tr>
<tr>
<td>yo</td>
<td>Yoruba</td>
</tr>
<tr>
<td>zu</td>
<td>Zulú</td>
</tr>
</tbody>
</table>
</figure>
<p style="text-align: justify;">Estos códigos permitirán definir los idiomas para traducir textos automáticamente entre diferentes idiomas utilizando Google Sheets.</p>
<h2>LIMITES DE USO</h2>
<p style="text-align: justify;">Aunque Google Sheets es una herramienta poderosa, existen limitaciones en la cantidad de traducciones que puedes realizar en un periodo de tiempo corto. No obstante puedo garantizar que en mi caso he realizado traducciones de 300.000 líneas y no he rebasado los límites. Por lo tanto el límite establecido es válido para el 99.99% de los mortales.</p>
<h2>CONCLUSIONES</h2>
<p style="text-align: justify;">Usar Google Sheets y su función GOOGLETRANSLATE es una manera eficiente y accesible de traducir grandes volúmenes de texto. Esta herramienta es ideal para proyectos que requieren manejo multilingüe, permitiendo ahorrar tiempo y esfuerzo. Experimenta con esta función y descubre cómo puede facilitar tu trabajo diario en un entorno globalizado.</p>
<p>La entrada <a href="https://geekland.eu/como-traducir-textos-automaticamente-con-google-sheets/">Cómo Traducir Textos Automáticamente con Google Sheets</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/como-traducir-textos-automaticamente-con-google-sheets/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Gestor de paquetes para Windows para instalar software</title>
		<link>https://geekland.eu/gestor-de-paquetes-para-windows-para-instalar-software/</link>
					<comments>https://geekland.eu/gestor-de-paquetes-para-windows-para-instalar-software/#respond</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sat, 29 Jun 2024 08:11:38 +0000</pubDate>
				<category><![CDATA[Windows]]></category>
		<category><![CDATA[chocolatey]]></category>
		<category><![CDATA[gestor de paquetes]]></category>
		<category><![CDATA[Software]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=14015</guid>

					<description><![CDATA[<p>En el mundo de los sistemas operativos, la gestión eficiente de software es crucial para mantener nuestro entorno de trabajo optimizado y seguro. Para los usuarios de Windows, Chocolatey se ha establecido como el gestor de paquetes por excelencia. Si alguna vez has soñado con una manera más sencilla y automatizada de instalar, actualizar y &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/gestor-de-paquetes-para-windows-para-instalar-software/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Gestor de paquetes para Windows para instalar software»</span></a></p>
<p>La entrada <a href="https://geekland.eu/gestor-de-paquetes-para-windows-para-instalar-software/">Gestor de paquetes para Windows para instalar software</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">En el mundo de los sistemas operativos, la gestión eficiente de software es crucial para mantener nuestro entorno de trabajo optimizado y seguro. Para los usuarios de Windows, Chocolatey se ha establecido como el gestor de paquetes por excelencia. Si alguna vez has soñado con una manera más sencilla y automatizada de instalar, actualizar y gestionar tus aplicaciones, este es tú artículo.<br />
<span id="more-14015"></span></p>
<h2>QUE ES CHOCOLATEY</h2>
<p style="text-align: justify;">Chocolatey es un gestor de paquetes para Windows, similar a los gestores de paquetes <a href="https://geekland.eu/tabla-equivalencias-apt-get-y-apt/" target="_blank" rel="noopener">apt</a>, dnf, pacman, rpm, etc que se encuentran instalados en sistemas operativos basados en Unix. Por lo tanto el gestor de paquetes Chocolatey facilita la instalación, actualización y administración de software en el sistema operativo Windows mediante la línea de comandos.</p>
<h2>DE DONDE PROVIENE EL SOFTWARE INSTALADO MEDIANTE CHOCOLATEY</h2>
<p style="text-align: justify;">El software instalado a través de Chocolatey proviene de un repositorio central de paquetes mantenido por la comunidad y los mantenedores de Chocolatey.</p>
<p style="text-align: justify;">Los repositorios de Chocolatey no únicamente contienen archivos ejecutables. En muchas ocasiones contienen scripts que lo hacen que es descargar e instalar el software desde sus páginas oficiales.</p>
<h2>¿SON SEGUROS LOS PAQUETES DESCARGADOS CON CHOCOLATEY?</h2>
<p style="text-align: justify;">El software descargado es seguro. La comunidad de Chocolatey implementa las siguientes medidas de seguridad para asegurar la seguridad e integridad de los paquetes descargados:</p>
<ul style="text-align: justify;">
<li>La totalidad de paquetes de Chocolatey pasan por un proceso de <strong>revisión manual</strong>. Se revisan la totalidad de scripts para asegurar que no contienen código malicioso y siguen la directrices de calidad de Chocolatey.</li>
<li>Se utilizan <strong>herramientas automatizadas</strong> para garantizar que no existan problemas de seguridad ni malas prácticas.</li>
<li>Algunos de los <strong>paquetes están firmados mediante un certificado digital</strong>. Por lo tanto antes de instalar un paquetes intenten visitar su página web y ver si el paquete está firmado digitalmente y marcado como aprovado.</li>
<li>Los scripts de instalación están disponibles para ser <strong>revisados por los usuarios</strong>. Cualquier persona puede inspeccionar el contenido de cualquier paquete antes de instalarlo utilizando comandos como <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco install &lt;nombre_del_paquete&gt; -dv</span></code></li>
</ul>
<p style="text-align: justify;">A pesar de la totalidad de mecanismos de seguridad recomiendo realizar auditorías regulares de los paquetes instalados para asegurarse que estén actualizados, libres de vulnerabilidades conocidas y aprobados por parte de la comunidad de Chocolatey.</p>
<p style="text-align: justify;">Para finalizar este apartado comentar que cuando buscamos paquetes mediante el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco search</span></code> obtendremos información sobre si el programa a instalar está verificado o no. Por ejemplo si ejecuto el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco search adobe</span></code> obtendré el siguiente resultado</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">Chocolatey v2.3.0
AdobeAIR 51.0.1.3 <span style="color: #0090d3;" data-darkreader-inline-color="">[Approved]</span> Downloads cached for licensed users
adobe-connect 2024.4.729 <span style="color: #0090d3;" data-darkreader-inline-color="">[Approved]</span> - Possibly broken
adobedigitaleditions 4.5.12 <span style="color: #0090d3;" data-darkreader-inline-color="">[Approved]</span> Downloads cached for licensed users
adobe-dnc 16.3.0 <span style="color: #0090d3;" data-darkreader-inline-color="">[Approved]</span>
adobereader 2024.2.20759
</span></span></code></pre>
</blockquote>
<p style="text-align: justify;">Como se puede ver en la gran mayoría de paquetes figura la palabra <span style="color: #0090d3;" data-darkreader-inline-color="">[Approved]</span>. Por lo tanto estos paquetes están verificados.</p>
<h2>COMO INSTALAR CHOCOLATEY EN WINDOWS</h2>
<p style="text-align: justify;">Chocolatey es una herramienta de administración de paquetes que debe instalarse manualmente. Para su instalación se tiene que proceder del siguiente modo:</p>
<ol>
<li style="text-align: justify;">Abrir PowerShell con privilegios de administrador: Para ello presionar <code><span style="color: #0090d3;" data-darkreader-inline-color="">Win+x</span></code> y seleccionar la opción <code><span style="color: #0090d3;" data-darkreader-inline-color="">Windows PowerShell (Administrador)</span></code></li>
<li style="text-align: justify;">Cuando se abra Powershell ejecutar el siguiente comando para configurar la ejecución de scripts:</li>
</ol>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">Set-ExecutionPolicy Bypass -Scope Process -Force
</span></strong></code></pre>
</blockquote>
<ol start="3">
<li style="text-align: justify;">Seguidamente ejecutar el siguiente comando para instalar Chocolatey:</li>
</ol>
<blockquote>
<pre><code class="language-powe" lang="powe"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">[System.Net.ServicePointManager]::SecurityProtocol = [System.Net.ServicePointManager]::SecurityProtocol -bor 3072; Set-ExecutionPolicy Bypass -Scope Process -Force; [System.Net.WebClient]::new().DownloadString('https://chocolatey.org/install.ps1') | Invoke-Expression
</span></strong></code></pre>
</blockquote>
<ol start="4">
<li style="text-align: justify;">Una vez instalado el gestor de paquetes ejecutar e comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco --version</span></code> para asegurar que la instalación se ha realizado correctamente.</li>
</ol>
<blockquote>
<pre><code class="language-powe" lang="powe"><span style="color: #808080;" data-darkreader-inline-color=""><span style="color: #0090d3;" data-darkreader-inline-color="">choco --version</span>
2.3.0
</span></code></pre>
</blockquote>
<h2>PROGRAMAS QUE PODEMOS INSTALAR CON EL GESTOR DE PAQUETES CHOCOLATEY</h2>
<p style="text-align: justify;">Existen más de 10.000 paquetes / programas mantenidos por la comunidad. Estos paquetes se pueden encontrar y consultar en la siguiente ubicación:</p>
<p><a class="url" href="https://community.chocolatey.org/packages/" target="_blank" rel="noopener">https://community.chocolatey.org/packages/</a></p>
<p style="text-align: justify;">Si quieren comprobar si existe un programa en concreto desde la consola de Windows, como por ejemplo el reproductor de vídeo <code><span style="color: #0090d3;" data-darkreader-inline-color="">mpv</span></code>, pueden ejecutar un comando del siguiente tipo:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">choco search mpv
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">El resultado en mi caso ha sido el siguiente:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><span style="color: #808080;" data-darkreader-inline-color="">jellyfin-media-player 1.11.1 [Approved] Downloads cached for licensed users
lively 2.1.0.8 [Approved] Downloads cached for licensed users
memento 1.2.2 [Approved]
memento.install 1.2.2 [Approved]
memento.portable 1.2.2 [Approved]
mpc-qt 23.12.0 [Approved]
mpv 2023.12.10 [Approved]
mpv.install 2023.12.10 [Approved]
mpv.net 7.1.1 [Approved]
mpv.portable 2023.12.10 [Approved]
mpvio 0.38.0 [Approved]
mpvio.install 0.38.0 [Approved]
mpvio.portable 0.38.0 [Approved]
mpvnet.install 5.4.9.20220427 [Approved] Downloads cached for licensed users
mpvnet.portable 7.1.1 [Approved] Downloads cached for licensed users
...
</span></code></pre>
</blockquote>
<p style="text-align: justify;">Por lo tanto el programa mpv existe y lo puedo instalar de la forma que verán en el siguiente apartado. Para ver más opciones para buscar paquetes pueden consultar el siguiente enlace:</p>
<p><a class="url" href="https://docs.chocolatey.org/en-us/choco/commands/search/" target="_blank" rel="noopener">https://docs.chocolatey.org/en-us/choco/commands/search/</a></p>
<h2>INSTALAR PROGRAMAS CON CHOCOLATEY</h2>
<p style="text-align: justify;">Después de consultar el listado de paquetes he decido que instalar el reproductor de vídeo <code><span style="color: #0090d3;" data-darkreader-inline-color="">mpv</span></code> mediante chocolatey. Para ello tan solo hay que ejecutar el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco install</span></code> seguido del paquete que quiero instalar, que en mi caso es <code><span style="color: #0090d3;" data-darkreader-inline-color="">mpv</span></code>.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">choco install mpv -y
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;"><strong>Nota:</strong> El parámetro <code><span style="color: #0090d3;" data-darkreader-inline-color="">-y</span></code> es para confirmar por avanzado la instalación del paquete mpv. Es imprescindible ponerlo en el caso que se genere algún script para automatizar la instalación de software.</p>
<p style="text-align: justify;">La salida de la instalación ha sido la siguiente:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #0000ff;" data-darkreader-inline-color="">C:\WINDOWS\system32&gt;</span>choco install mpv
<span style="color: #808080;" data-darkreader-inline-color="">Chocolatey v2.3.0
Installing the following packages:
mpv
By installing, you accept licenses for the packages.
Downloading package from source 'https://chocolatey.org/api/v2/'
Progress: Downloading mpv.install 2023.12.10... 100%

mpv.install v2023.12.10 [Approved]
mpv.install package files install completed. Performing other installation steps.
The package mpv.install wants to run 'chocolateyinstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): y

Extracting 64-bit C:\ProgramData\chocolatey\lib\mpv.install\tools\mpv-0.37.0-x86_64_x64.7z to C:\ProgramData\chocolatey\lib\mpv.install\tools...
C:\ProgramData\chocolatey\lib\mpv.install\tools
Extracting C:\ProgramData\chocolatey\lib\mpv.install\tools\rossy.zip to C:\ProgramData\chocolatey\lib\mpv.install\tools...
C:\ProgramData\chocolatey\lib\mpv.install\tools
0
PATH environment variable does not have C:\ProgramData\chocolatey\lib\mpv.install\tools in it. Adding...
Environment Vars (like PATH) have changed. Close/reopen your shell to
 see the changes (or in powershell/cmd.exe just type `refreshenv`).
 The install of mpv.install was successful.
  Deployed to 'C:\ProgramData\chocolatey\lib\mpv.install\tools'
Downloading package from source 'https://chocolatey.org/api/v2/'
Progress: Downloading mpv 2023.12.10... 100%

mpv v2023.12.10 [Approved]
mpv package files install completed. Performing other installation steps.
The package mpv wants to run 'chocolateyinstall.ps1'.
Note: If you don't run this script, the installation will fail.
Note: To confirm automatically next time, use '-y' or consider:
choco feature enable -n allowGlobalConfirmation
Do you want to run the script?([Y]es/[A]ll - yes to all/[N]o/[P]rint): y

 The install of mpv was successful.
  Software install location not explicitly set, it could be in package or
  default install location of installer.

Chocolatey installed 2/2 packages.
 See the log for details (C:\ProgramData\chocolatey\logs\chocolatey.log).
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Una vez instalado el programa estará disponible y completamente integrado en nuestro sistema operativo Windows. Para ver más ejemplos pueden consultar el siguiente enlace <a class="url" href="https://docs.chocolatey.org/en-us/choco/commands/install/" target="_blank" rel="noopener">https://docs.chocolatey.org/en-us/choco/commands/install/</a></p>
<h2>LISTAR LA TOTALIDAD DE PROGRAMAS INSTALADOS</h2>
<p style="text-align: justify;">Si queremos listar la totalidad de paquetes instalados en nuestro equipo mediante chocolatey tan solo tenemos que ejecutar el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco list</span></code>. En mi caso los programas que tengo instalados son:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #0000ff;" data-darkreader-inline-color="">C:\WINDOWS\system32&gt;</span>choco list

<span style="color: #808080;" data-darkreader-inline-color="">chocolatey 2.3.0
croc 10.0.7
mpv 2023.12.10
mpv.install 2023.12.10
yt-dlp 2024.5.27
</span></span></strong></code></pre>
</blockquote>
<h2>LISTAR LA TOTALIDAD DE PAQUETES OBSOLETOS</h2>
<p style="text-align: justify;">Para listar la totalidad de paquetes instalados que están desactualizados tan solo tienen que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">choco outdated
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">En mi caso pueden ver que la totalidad de paquetes están actualizados a la última versión.</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #0000ff;" data-darkreader-inline-color="">C:\WINDOWS\system32&gt;</span>choco outdated
<span style="color: #808080;" data-darkreader-inline-color="">Chocolatey v2.3.0
Outdated Packages
 Output is package name | current version | available version | pinned?


Chocolatey has determined 0 package(s) are outdated.
</span></span></strong></code></pre>
</blockquote>
<h2>ACTUALIZAR PROGRAMAS CON EL GESTOR DE PAQUETES CHOCOLATEY</h2>
<p style="text-align: justify;">Si queremos actualizar la totalidad de programas instalados mediante chocolatey tan solo tenemos que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">choco upgrade all -y
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">En el caso que únicamente quisiéramos actualizar un paquete en particular ejecutaríamos el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco upgrade</span></code> seguido del nombre del paquete que queremos actualizar. Si en mi caso quiero actualizar <code><span style="color: #0090d3;" data-darkreader-inline-color="">mpv</span></code> ejecutaré el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">choco upgrade mpv
</span></strong></code></pre>
</blockquote>
<h2>DESINSTALAR PROGRAMAS CON EL GESTOR DE PAQUETES CHOCOLATEY</h2>
<p style="text-align: justify;">Para desinstalar un paquete tan solo tenemos que ejecutar el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">choco uninstall</span></code> seguido del nombre del paquete que queremos desinstalar. Por lo tanto para desinstalar el paquete <code><span style="color: #0090d3;" data-darkreader-inline-color="">mpv</span></code> tan solo tenemos que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">choco uninstall mpv
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Para desinstalar un paquete y asegurar que se desinstalan la totalidad de dependencias deberán usar el siguiente comando:</p>
<blockquote>
<pre><code class="language-powershell" lang="powershell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">choco uninstall mpv -y --remove-dependencies
</span></strong></code></pre>
</blockquote>
<h2>VENTAJAS QUE OFRECE INSTALAR PROGRAMAS CON CHOCOLATEY</h2>
<p style="text-align: justify;">Las ventajas de usar un gestor de paquetes como chocolatey son diversas. Algunas de ellas son las que cito a continuación:</p>
<ul>
<li style="text-align: justify;">Las <strong>actualizaciones son más fáciles</strong> ya que mediante la ejecución de simples comandos puedo mantener mi software actualizado.</li>
<li style="text-align: justify;">Permite <strong>automatizar la gestión de los programas</strong> instalados en nuestro equipo. Por ejemplo nos permite automatizar la actualización de software en el equipo. Permite generar scripts para automatizar la instalación del software necesario en nuevos equipos. Además se integra con herramientas de automatización como Ansible, Puppet y Chef.</li>
<li style="text-align: justify;">Puedo gestionar la <strong>actualización y desinstalación de programas de forma centralizada</strong>.</li>
<li style="text-align: justify;"><strong>Dispone de más de 10.000 programas listos</strong> para su instalación. Por lo tanto podremos instalar software de forma muy sencilla que de otra manera no podríamos.</li>
<li style="text-align: justify;">Los repositorios de Chocolatey disponen de programas que de otra forma serian difíciles de localizar e instalar.</li>
</ul>
<h2>ALTERNATIVAS AL GESTOR DE PAQUETES CHOCOLATEY</h2>
<p style="text-align: justify;">En Windows existen diversas alternativas a Chocolatey. Algunas de ellas son las siguientes:</p>
<ol style="text-align: justify;">
<li><strong>Winget:</strong> Gestor de paquetes desarrollados por Microsoft y por lo tanto se integra bien con el sistema operativo Windows. Es una opción muy a tener en cuenta para la gran mayoría de usuarios domésticos. El catálogo de aplicaciones disponibles para su instalación es grande.</li>
<li><strong>Scoop:</strong> Enfocado e ideal para los desarrolladores de software y usuarios que les guste instalar aplicaciones de línea de comandos. Este repositorio también puede ser del agrado para los desarrolladores de código abierto.</li>
<li><strong>Ninite:</strong> Encontraremos utilidades y software relacionados con la productividad. La cantidad de programas que podemos instalar con este gestor de paquetes es bastante reducida.</li>
<li><strong>NuGet:</strong> Enfocado a desarrolladores de proyectos .NET. Allí podrán encontrar un extenso repositorio de bibliotecas y herramientas para el desarrollo con .NET</li>
</ol>
<p style="text-align: justify;">En mi caso uso Chocolatey porque tiene una comunidad amplia, un desarrollo activo y además es el gestor de paquetes que dispone de un catálogo más amplio. Otras opciones que usuarios normales pueden considerar es Winget. Winget está desarrollado por microsoft y también tiene un catálogo amplio de aplicaciones que va creciendo día a día.</p>
<h2>CONCLUSIONES</h2>
<p style="text-align: justify;">Chocolatey es una herramienta esencial para cualquier usuario de Windows que busque simplificar y automatizar la gestión de software. Con su amplio catálogo de paquetes, fácil integración con herramientas de automatización y una comunidad activa, es la opción ideal para usuarios avanzados y administradores de sistemas.</p>
<p style="text-align: justify;">Si quieren profundizar más sobre el uso de Chocolatey pueden consultar:</p>
<p style="text-align: justify;"><a class="url" href="https://docs.chocolatey.org/en-us/choco/commands/" target="_blank" rel="noopener">https://docs.chocolatey.org/en-us/choco/commands/</a></p>
<p style="text-align: justify;">Por otra parte si quieren usar Chocolatey mediante una interfaz gráfica pueden seguir las instrucciones del siguiente enlace:</p>
<p style="text-align: justify;"><a class="url" href="https://docs.chocolatey.org/en-us/chocolatey-gui/setup/installation/" target="_blank" rel="noopener">https://docs.chocolatey.org/en-us/chocolatey-gui/setup/installation/</a></p>
<p>&nbsp;</p>
<p>La entrada <a href="https://geekland.eu/gestor-de-paquetes-para-windows-para-instalar-software/">Gestor de paquetes para Windows para instalar software</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/gestor-de-paquetes-para-windows-para-instalar-software/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Habilitar Syslog en la Raspberry Pi para funcionar junto journalctl</title>
		<link>https://geekland.eu/habilitar-syslog-en-la-raspberry-pi-para-funcionar-junto-journalctl/</link>
					<comments>https://geekland.eu/habilitar-syslog-en-la-raspberry-pi-para-funcionar-junto-journalctl/#respond</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sun, 26 May 2024 07:04:18 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[logs]]></category>
		<category><![CDATA[syslog]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=14006</guid>

					<description><![CDATA[<p>Después de realizar una instalación mínima de Raspbian OS en mi Raspberry Pi, observé que el sistema de logs syslog estaba desactivado. Desde la versión Raspbian Buster, solo viene activado journalctl, ya que se considera un sistema más moderno y eficiente que ayuda a evitar el consumo de recursos. Si estás buscando habilitar syslog en &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/habilitar-syslog-en-la-raspberry-pi-para-funcionar-junto-journalctl/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Habilitar Syslog en la Raspberry Pi para funcionar junto journalctl»</span></a></p>
<p>La entrada <a href="https://geekland.eu/habilitar-syslog-en-la-raspberry-pi-para-funcionar-junto-journalctl/">Habilitar Syslog en la Raspberry Pi para funcionar junto journalctl</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Después de realizar una instalación mínima de Raspbian OS en mi Raspberry Pi, observé que el <a href="https://geekland.eu/logs-en-linux/" target="_blank" rel="noopener">sistema de logs</a> <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> estaba desactivado. Desde la versión Raspbian Buster, solo viene activado <code><span style="color: #0090d3;" data-darkreader-inline-color="">journalctl</span></code>, ya que se considera un sistema más moderno y eficiente que ayuda a evitar el consumo de recursos. Si estás buscando habilitar syslog en la Raspberry Pi, este artículo te mostrará cómo hacerlo paso a paso.</p>
<p><span id="more-14006"></span></p>
<h2>¿Por qué habilitar Syslog en Raspberry Pi?</h2>
<p style="text-align: justify;">A pesar de las ventajas de <code><span style="color: #0090d3;" data-darkreader-inline-color="">journalctl</span></code>, muchas aplicaciones aún requieren <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> para funcionar correctamente. Un ejemplo es la herramienta <code><span style="color: #0090d3;" data-darkreader-inline-color="">fail2ban</span></code>, que de forma predeterminada no puede operar sin <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code>. Esto puede generar varios inconvenientes si no está habilitado.</p>
<h2>Pasos para habilitar Syslog en Raspbian OS</h2>
<p style="text-align: justify;">Si te has encontrado en una situación similar y necesitas habilitar <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code>, solo tienes que instalar el paquete <code><span style="color: #0090d3;" data-darkreader-inline-color="">inetutils-syslogd</span></code>. Sigue estos sencillos pasos:</p>
<ol>
<li style="text-align: justify;">Abre la terminal en tu Raspberry Pi.</li>
<li style="text-align: justify;">Ejecuta el siguiente comando para instalar el paquete <code><span style="color: #0090d3;" data-darkreader-inline-color="">inetutils-syslogd</span></code>:</li>
</ol>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo apt install inetutils-syslogd
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Después de instalar el paquete, el registro de logs volverá a funcionar del mismo modo que en versiones anteriores de Raspbian.</p>
<p style="text-align: justify;">Con esta instalación, tendrás <code><span style="color: #0090d3;" data-darkreader-inline-color="">journalctl</span></code> y <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> funcionando de forma simultánea, lo que te permitirá aprovechar las ventajas de ambos sistemas de registro.</p>
<h2>Beneficios de habilitar Syslog</h2>
<p style="text-align: justify;">Habilitar <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> en tu Raspberry Pi no solo garantiza la compatibilidad con aplicaciones más antiguas, sino que también te permite:</p>
<ul>
<li style="text-align: justify;"><strong>Mejorar la seguridad</strong>: Herramientas como <code><span style="color: #0090d3;" data-darkreader-inline-color="">fail2ban</span></code> dependen de <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> para bloquear IPs maliciosas basándose en los registros de intento de acceso.</li>
<li style="text-align: justify;"><strong>Compatibilidad</strong>: Muchas aplicaciones y scripts están diseñados para trabajar con <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code>, por lo que habilitarlo asegura su correcto funcionamiento.</li>
<li style="text-align: justify;"><strong>Monitoreo</strong>: Con <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> habilitado, puedes enviar registros a servidores externos para un monitoreo centralizado.</li>
</ul>
<h2>Conclusión</h2>
<p style="text-align: justify;">Aunque <code><span style="color: #0090d3;" data-darkreader-inline-color="">journalctl</span></code> es una herramienta moderna y eficiente, habilitar <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> en tu Raspberry Pi puede ser útil para asegurar la compatibilidad y el correcto funcionamiento de diversas aplicaciones. La instalación del paquete <code><span style="color: #0090d3;" data-darkreader-inline-color="">inetutils-syslogd</span></code> es sencilla y rápida, y te permitirá disfrutar de lo mejor de ambos mundos en términos de registro y monitoreo de logs.</p>
<p style="text-align: justify;">Si tienes alguna duda o quieres compartir tu experiencia habilitando <code><span style="color: #0090d3;" data-darkreader-inline-color="">syslog</span></code> en tu Raspberry Pi, deja un comentario a continuación.</p>
<p>La entrada <a href="https://geekland.eu/habilitar-syslog-en-la-raspberry-pi-para-funcionar-junto-journalctl/">Habilitar Syslog en la Raspberry Pi para funcionar junto journalctl</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/habilitar-syslog-en-la-raspberry-pi-para-funcionar-junto-journalctl/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo configurar una IP estática en Raspberry Pi con nmcli</title>
		<link>https://geekland.eu/como-configurar-una-ip-estatica-en-raspberry-pi-con-nmcli/</link>
					<comments>https://geekland.eu/como-configurar-una-ip-estatica-en-raspberry-pi-con-nmcli/#respond</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sat, 24 Feb 2024 05:39:00 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Raspberry Pi]]></category>
		<category><![CDATA[Redes]]></category>
		<category><![CDATA[NetworkManager]]></category>
		<category><![CDATA[nmcli]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=13993</guid>

					<description><![CDATA[<p>En este artículo, aprenderás a configurar una dirección IP estática en tu Raspberry Pi OS Bookworm usando Network Manager. A partir de la versión Raspberry Pi OS 12 (bookworm) se reemplazo dhcpcd y wpa_supplicant por Network Manager. Esto implica que el proceso de para que nuestra Raspberry Pi tenga una IP interna fija es totalmente &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/como-configurar-una-ip-estatica-en-raspberry-pi-con-nmcli/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Cómo configurar una IP estática en Raspberry Pi con nmcli»</span></a></p>
<p>La entrada <a href="https://geekland.eu/como-configurar-una-ip-estatica-en-raspberry-pi-con-nmcli/">Cómo configurar una IP estática en Raspberry Pi con nmcli</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">En este artículo, aprenderás a configurar una dirección IP estática en tu Raspberry Pi OS Bookworm usando Network Manager. A partir de la versión Raspberry Pi OS 12 (bookworm) se reemplazo dhcpcd y wpa_supplicant por Network Manager. Esto implica que el proceso de para que nuestra Raspberry Pi tenga una IP interna fija es totalmente <a href="https://geekland.eu/configurar-ip-fija_o_estatica_ipv4/" target="_blank" rel="noopener">diferente a como lo hacíamos con anterioridad</a>. El proceso a seguir es el siguiente.<span id="more-13993"></span></p>
<h2>CONFIGURAR UNA IP ESTÁTICA EN RASPBERRY PI OS BOOKWORM Y NETWORK MANAGER</h2>
<p style="text-align: justify;">Los pasos a seguir para conseguir una IP estática en el sistema operativo Raspberry Pi OS 12 mediante Network Manager y nmcli es el que citaremos a continuación</p>
<h3>DEFINIR LOS PARÁMETROS DE CONFIGURACIÓN DE NUESTRA CONEXIÓN DE RED CON IP ESTÁTICA</h3>
<p style="text-align: justify;">En mi caso defino que los parámetros de configuración de red tienen que ser los siguientes:</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Parámetros</th>
<th>Valores</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dirección IP</td>
<td><span style="color: #3366ff; --darkreader-inline-color: #3d96ff;" data-darkreader-inline-color="">192.168.1.100</span></td>
</tr>
<tr>
<td>Puerta de enlace</td>
<td><span style="color: #ff00ff; --darkreader-inline-color: #ff1aff;" data-darkreader-inline-color="">192.168.1.1</span></td>
</tr>
<tr>
<td>Máscara de subred</td>
<td><span style="color: #ff0000; --darkreader-inline-color: #ff1a1a;" data-darkreader-inline-color="">/24</span></td>
</tr>
<tr>
<td>Servidores DNS</td>
<td><span style="color: #008000; --darkreader-inline-color: #72ff72;" data-darkreader-inline-color="">8.8.8.8</span> y <span style="color: #008000; --darkreader-inline-color: #72ff72;" data-darkreader-inline-color="">8.8.4.4</span></td>
</tr>
<tr>
<td>Tipo de conexión</td>
<td><span style="color: #ff6600;" data-darkreader-inline-color="">Vía Ethernet</span></td>
</tr>
</tbody>
</table>
</figure>
<h3>IDENTIFICAR LOS NOMBRES DE LAS INTERFACES DE RED</h3>
<p style="text-align: justify;">Para identificar el nombre de nuestras interfaces de red ejecutaremos el siguiente comando en la terminal:</p>
<blockquote>
<pre><strong><code class="language-shell" lang="shell"><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color=""><span style="color: #808080; --darkreader-inline-color: #988f81;" data-darkreader-inline-color="">pi@raspberrypi:~ $</span> sudo nmcli -p connection show
</span></code></strong></pre>
</blockquote>
<p style="text-align: justify;">El resultado debería ser similar al siguiente:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color=""><span style="color: #808080; --darkreader-inline-color: #988f81;" data-darkreader-inline-color="">pi@raspberrypi:~ $</span> sudo nmcli -p connection show</span><span style="color: #808080; --darkreader-inline-color: #988f81;" data-darkreader-inline-color="">
============================================
  Perfiles de conexiones de NetworkManager
============================================
NAME                 UUID                                  TYPE      DEVICE          
----------------------------------------------------------------------------------------------------------------------------------
<span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span>  79297c53-82ae-393c-ba8b-739c146a8a4e  <span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">ethernet</span>  end0
lo                   a7ba3035-f697-40a6-9502-be312b7732cd  loopback  lo
<span style="color: #cc99ff; --darkreader-inline-color: #c285ff;" data-darkreader-inline-color="">preconfigured</span>        80004d04-a3c2-4910-8a3f-6797e4f96a67  <span style="color: #cc99ff; --darkreader-inline-color: #c285ff;" data-darkreader-inline-color="">wif</span><span style="color: #cc99ff;" data-darkreader-inline-color="">i</span>      wlan0
docker0              73c85449-57b4-4337-aba0-50decfbda887  bridge    docker0
</span></code></pre>
</blockquote>
<p style="text-align: justify;">Si observamos los resultados de la salida, la interfaz de red Ethernet se llama:</p>
<ul>
<li><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color=""><code><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span></code></span></li>
</ul>
<p style="text-align: justify;"><strong>Nota:</strong> En el hipotético caso que también quisiéramos configurar la IP de nuestra conexión de wifi vemos que su nombre es <code><span style="color: #cc99ff; --darkreader-inline-color: #c285ff;" data-darkreader-inline-color="">preconfigured</span></code></p>
<h3>EJECUTAR LOS COMANDOS PARA CONFIGURAR NUESTRA CONEXIÓN CON IP ESTÁTICA</h3>
<p style="text-align: justify;">Hasta el momento que hemos identificado la totalidad de parámetros necesarios:</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Parámetros</th>
<th>Valores</th>
</tr>
</thead>
<tbody>
<tr>
<td>Dirección IP</td>
<td><span style="color: #3366ff; --darkreader-inline-color: #3d96ff;" data-darkreader-inline-color="">192.168.1.100</span></td>
</tr>
<tr>
<td>Puerta de enlace</td>
<td><span style="color: #ff00ff; --darkreader-inline-color: #ff1aff;" data-darkreader-inline-color="">192.168.1.1</span></td>
</tr>
<tr>
<td>Mascara de subred</td>
<td><span style="color: #ff0000; --darkreader-inline-color: #ff1a1a;" data-darkreader-inline-color="">/24</span></td>
</tr>
<tr>
<td>Servidores DNS</td>
<td><span style="color: #008000; --darkreader-inline-color: #72ff72;" data-darkreader-inline-color="">8.8.8.8</span> y <span style="color: #008000; --darkreader-inline-color: #72ff72;" data-darkreader-inline-color="">8.8.4.4</span></td>
</tr>
<tr>
<td>Nombre de la interfaz de red</td>
<td><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span></td>
</tr>
</tbody>
</table>
</figure>
<p style="text-align: justify;">Ahora ejecutaremos los siguientes comandos para configurar nuestra conexión a Internet:</p>
<h4>Configurar la IP Fija IPv4 o IPv6</h4>
<p style="text-align: justify;">Si estamos usando IPv4:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con mod "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv4.addresses</span> <span style="color: #3366ff; --darkreader-inline-color: #3d96ff;" data-darkreader-inline-color=""><span style="color: #0000ff; --darkreader-inline-color: #337dff;" data-darkreader-inline-color="">192</span>.168.1.100</span><span style="color: #ff0000; --darkreader-inline-color: #ff1a1a;" data-darkreader-inline-color="">/24</span> <span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">ipv4.method manual
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si en vez de una dirección IPv4 quisiéramos establecer una dirección IPv6 deberíamos ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con mod "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv6.addresses</span> <span style="color: #0000ff; --darkreader-inline-color: #337dff;" data-darkreader-inline-color="">tu_dirección_ipv6</span> <span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">ipv6.method manual
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">En el caso hipotético que quisiéramos crear una VLAN (Virtual Local Area Network) con las IP, <span style="color: #0000ff; --darkreader-inline-color: #337dff;" data-darkreader-inline-color="">192.168.1.101</span> y <span style="color: #0000ff; --darkreader-inline-color: #337dff;" data-darkreader-inline-color="">192.168.1.102</span><span style="color: #ff0000; --darkreader-inline-color: #ff1a1a;" data-darkreader-inline-color="">/24</span> deberíamos ejecutar el comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con mod "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv4.addresses</span> "<span style="color: #3366ff; --darkreader-inline-color: #3d96ff;" data-darkreader-inline-color="">192.168.1.100</span><span style="color: #ff0000; --darkreader-inline-color: #ff1a1a;" data-darkreader-inline-color="">/24</span>, <span style="color: #3366ff; --darkreader-inline-color: #3d96ff;" data-darkreader-inline-color="">192.168.1.101</span><span style="color: #ff0000; --darkreader-inline-color: #ff1a1a;" data-darkreader-inline-color="">/24</span>, <span style="color: #3366ff; --darkreader-inline-color: #3d96ff;" data-darkreader-inline-color="">192.168.1.102</span><span style="color: #ff0000; --darkreader-inline-color: #ff1a1a;" data-darkreader-inline-color="">/24</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv4.method manual
</span></strong></code></pre>
</blockquote>
<h4>Configurar la puerta de enlace en IPv4 o IPv6</h4>
<p>Si estamos usando IPv4:</p>
<blockquote>
<pre><strong><code class="language-shell" lang="shell"><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con mod "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv4.gateway</span> <span style="color: #ff00ff; --darkreader-inline-color: #ff1aff;" data-darkreader-inline-color="">192.168.1.1
</span></code></strong></pre>
</blockquote>
<p style="text-align: justify;">Para configurar la puerta de entrada en el caso que estemos usando una IPv6 ejecutaríamos el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con mod "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv6.gateway</span> <span style="color: #ff00ff; --darkreader-inline-color: #ff1aff;" data-darkreader-inline-color="">tu_puerta_de_entrada_ipv6
</span></strong></code></pre>
</blockquote>
<h4>Configurar los servidores DNS en IPv4 o IPv6</h4>
<p style="text-align: justify;">Si estamos usando IPv4:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con mod "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv4.dns "</span><span style="color: #008000; --darkreader-inline-color: #72ff72;" data-darkreader-inline-color="">8.8.8.8</span>,<span style="color: #008000; --darkreader-inline-color: #72ff72;" data-darkreader-inline-color="">8.8.4.4</span>"
</strong></code></pre>
</blockquote>
<p style="text-align: justify;">En el caso que usemos IPv6 entonces el comando se deberá modificar de la siguiente forma:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con mod "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv6.dns "</span><span style="color: #008000; --darkreader-inline-color: #72ff72;" data-darkreader-inline-color="">tu_servidor_dns_ipv6</span>"
</strong></code></pre>
</blockquote>
<h3>REINICIAR EL GESTOR DE RED NETWORK MANAGER</h3>
<p style="text-align: justify;">Para que los cambios surtan efecto, reiniciaremos Network Manager ejecutando el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con down "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" &amp;&amp; sudo nmcli con up "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">"
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;"><strong>Nota:</strong> Otra opción disponible es reiniciar la Raspberry Pi.</p>
<h3>VERIFICAR LA CONFIGURACIÓN DE LA CONEXIÓN CON IP ESTÁTICA</h3>
<p style="text-align: justify;">Una vez finalizado el proceso podemos consultar la configuración de nuestra conexión Ethernet ejecutando el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">nmcli -p connection show "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">"
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">y el resultado obtenido será parecido al siguiente:</p>
<blockquote>
<pre><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color=""><code class="language-shell" lang="shell"><strong><span style="color: #808080; --darkreader-inline-color: #988f81;" data-darkreader-inline-color="">pi@raspberrypi:~ $ <span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">nmcli -p connection show "<span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span>"</span>
===============================================================================
            Detalles del perfil de conexiones (<span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span>)
===============================================================================
connection.id:                          <span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span>
connection.uuid:                        79297c53-82ae-393c-ba8b-739c146a8a4e
connection.stable-id:                   --
connection.type:                        802-3-ethernet
connection.interface-name:              end0
connection.autoconnect:                 sí
connection.autoconnect-priority:        -999</span></strong><span style="color: #808080; --darkreader-inline-color: #988f81;" data-darkreader-inline-color="">
....
</span></code></span></pre>
</blockquote>
<h2>OTROS TAREAS QUE SE PUEDE REALIZAR CON NMCLI</h2>
<p style="text-align: justify;">A parte de lo mencionado a lo largo del artículo existen otras operaciones que podemos realizar con nmcli. Por ejemplo:</p>
<h3>ASIGNACIÓN DE IP DINÁMICA EN VEZ DE IP ESTÁTICA</h3>
<p style="text-align: justify;">Si en vez de una ip estática queremos una IPv4 dinámica ejecutaremos el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con modify "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" ipv4.method auto
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Y si queremos una dirección IPv6 dinámica:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con modify "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada 1</span><span style="color: #0090d3;" data-darkreader-inline-color="">" ipv6.method auto
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Una vez realizados los cambios reiniciaremos NetworkManager para que los cambios surjan efecto mediante el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con down "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada</span> <span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">1</span><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">" &amp;&amp; sudo nmcli con up "</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color="">Conexión cableada</span><span style="color: #ff6600; --darkreader-inline-color: #ff751a;" data-darkreader-inline-color=""> 1</span><span style="color: #0090d3;" data-darkreader-inline-color="">"
</span></strong></code></pre>
</blockquote>
<h3>EVITAR LA CONEXIÓN AUTOMÁTICA DE ALGUNA DE LAS INTERFACES DE RED</h3>
<p style="text-align: justify;">En mi caso cada vez que arranco la Raspberry Pi se me conecta tanto la red Ethernet como a la Wifi. Para evitar que se conecte a la red wifi procederemos del siguiente modo.</p>
<p style="text-align: justify;">En apartados anteriores vemos que la red Wifi se reconoce como <code><span style="color: #cc99ff;" data-darkreader-inline-color="">preconfigured</span></code>. Por lo tanto para evitar que la Raspberry Pi se conecte a la red Wifi de forma automática cada vez que la arranquemos ejecutaremos el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3; --darkreader-inline-color: #38c0ff;" data-darkreader-inline-color="">sudo nmcli con modify "</span><span style="color: #cc99ff; --darkreader-inline-color: #c285ff;" data-darkreader-inline-color="">preconfigured</span><span style="color: #0090d3;" data-darkreader-inline-color="">" connection.autoconnect no
</span></strong></code></pre>
</blockquote>
<h3>Fuentes</h3>
<p><a class="url" href="https://access.redhat.com/documentation/es-es/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/configuring-a-static-ethernet-connection-using-nmcli_configuring-and-managing-network-access" target="_blank" rel="noopener">https://access.redhat.com/documentation/es-es/red_hat_enterprise_linux/8/html/configuring_basic_system_settings/configuring-a-static-ethernet-connection-using-nmcli_configuring-and-managing-network-access</a></p>
<p>La entrada <a href="https://geekland.eu/como-configurar-una-ip-estatica-en-raspberry-pi-con-nmcli/">Cómo configurar una IP estática en Raspberry Pi con nmcli</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/como-configurar-una-ip-estatica-en-raspberry-pi-con-nmcli/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo generar y verificar el Hash de archivos en linux</title>
		<link>https://geekland.eu/como-generar-y-verificar-el-hash-de-archivos-en-linux/</link>
					<comments>https://geekland.eu/como-generar-y-verificar-el-hash-de-archivos-en-linux/#respond</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sun, 22 Oct 2023 11:39:27 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Seguridad Informática]]></category>
		<category><![CDATA[hash]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=13975</guid>

					<description><![CDATA[<p>La integridad de los archivos es de suma importancia. A menudo, descargamos archivos desde Internet, ya sean programas, imágenes ISO, documentos, o cualquier otro tipo de datos. Pero, ¿Cómo podemos estar seguros de que los archivos que descargamos no se han corrompido durante su descarga?, ¿Cómo podemos estar seguros que los ficheros descargados no han &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/como-generar-y-verificar-el-hash-de-archivos-en-linux/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Cómo generar y verificar el Hash de archivos en linux»</span></a></p>
<p>La entrada <a href="https://geekland.eu/como-generar-y-verificar-el-hash-de-archivos-en-linux/">Cómo generar y verificar el Hash de archivos en linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">La integridad de los archivos es de suma importancia. A menudo, descargamos archivos desde Internet, ya sean programas, imágenes ISO, documentos, o cualquier otro tipo de datos. Pero, ¿Cómo podemos estar seguros de que los archivos que descargamos no se han corrompido durante su descarga?, ¿Cómo podemos estar seguros que los ficheros descargados no han sido comprometidos por un atacante? Aquí es donde entran en juego los hash. En este artículo, exploraremos qué son los hash, por qué son útiles y finalmente veremos como podemos crear y verificar un hash.<span id="more-13975"></span></p>
<h2>QUÉ ES UN HASH</h2>
<p style="text-align: justify;">Un hash es una cadena de caracteres generada por un algoritmo a partir de un conjunto de datos como por ejemplo un fichero o un mensaje. Esta cadena es única para cada conjunto de datos y tiene una longitud fija.</p>
<p style="text-align: justify;">Por lo tanto:</p>
<ol style="text-align: justify;">
<li>Si generamos el hash de un fichero nos dará una cadena de caracteres como por ejemplo la siguiente: <span style="color: #008000;"><code><span style="color: #000080;">a435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e908</span></code></span></li>
<li>Si intentamos crear otro hash y el fichero no ha sido modificado obtendremos exactamente el mismo valor que antes porque el fichero es exactamente el mismo que antes.</li>
<li>Si ahora modificamos el fichero y volvemos a generar el hash veremos que ahora es diferente. Cualquier cambio en los datos de entrada generará un hash completamente diferente.</li>
</ol>
<p style="text-align: justify;">Por lo tanto un hash es como una «huella digital» única para un conjunto de datos. Si dos archivos tienen el mismo hash, quiere decir que son son idénticos. Sin embargo, si sus hashes son diferentes, entonces los archivos son diferentes.</p>
<h2>UTILIDADES QUE TIENE VERIFICAR EL HASH DE UN FICHERO</h2>
<p style="text-align: justify;">Los hashes tienen diversas utilidades en el ámbito de la informática, especialmente en la seguridad y la integridad de los datos. A continuación, se presentan algunos ejemplos de cómo se utilizan los hash en diferentes contextos:</p>
<ol style="text-align: justify;">
<li><strong>Verificación de integridad de archivos</strong>: Cuando descargas un archivo de Internet, es posible que desees asegurarte de que no ha sido modificado o dañado durante la transferencia. Al comparar el hash del archivo descargado con el hash proporcionado por la fuente, puedes verificar si el archivo es idéntico al original.</li>
<li><strong>Almacenamiento seguro de contraseñas</strong>: En lugar de almacenar contraseñas en texto plano, que sería vulnerable a ataques, los sistemas de autenticación suelen almacenar hashes de contraseñas. Cuando un usuario ingresa su contraseña, el sistema calcula el hash y lo compara con el hash almacenado. Si coinciden, se concede acceso. Esto protege las contraseñas en caso de que la base de datos sea comprometida, ya que los hashes son difíciles de revertir a su forma original.</li>
<li><strong>Detección de malware</strong>: Los programas antivirus y de seguridad informática utilizan hashes para identificar y detectar malware. Al comparar el hash de un archivo sospechoso con una base de datos de hashes de malware conocido, el software de seguridad puede determinar si el archivo es malicioso o no.</li>
<li><strong>Firmas digitales y autenticación de mensajes</strong>: Los hashes se utilizan en combinación con la criptografía de clave pública para crear firmas digitales. Estas firmas permiten verificar la autenticidad e integridad de un mensaje o documento, asegurando que proviene de la fuente esperada y que no ha sido modificado.</li>
<li><strong>Tecnología blockchain y criptomonedas</strong>: Las funciones hash son fundamentales en el funcionamiento de la tecnología blockchain y las criptomonedas como Bitcoin. Se utilizan para crear direcciones de billetera, en el proceso de minería y en la gestión de contratos inteligentes.</li>
</ol>
<p style="text-align: justify;">En resumen, los hashes son útiles en diversos contextos dentro de la informática, especialmente en la seguridad y la integridad de los datos. Algunas de sus aplicaciones incluyen la verificación de integridad de archivos, el almacenamiento seguro de contraseñas, la detección de malware, la autenticación de mensajes y la tecnología blockchain.</p>
<h2>ALGORITMOS DISPONIBLES PARA GENERAR UN HASH VENTAJAS E INCONVENIETES</h2>
<p style="text-align: justify;">Existen diversos algoritmos para generar hash. Los más comunes y sus características son las siguientes.</p>
<ol style="text-align: justify;">
<li><a href="https://es.wikipedia.org/wiki/MD5" target="_blank" rel="noopener"><strong>MD5</strong></a>: Desarrollado en 1991, MD5 es un algoritmo de hash que produce un valor de hash de 128 bits. Aunque fue ampliamente utilizado en el pasado, actualmente se considera inseguro debido a vulnerabilidades.</li>
<li><strong>SHA-1</strong>: Diseñado por la Agencia de Seguridad Nacional de EE. UU. (NSA), SHA-1 es un algoritmo de hash que genera un valor de hash de 160 bits. Al igual que MD5, SHA-1 ha sido considerado inseguro debido a debilidades criptográficas y ya no se recomienda para la mayoría de los usos criptográficos desde 2010.</li>
<li><a href="https://es.wikipedia.org/wiki/SHA-2" target="_blank" rel="noopener"><strong>SHA-2</strong></a>: La familia SHA-2 incluye varias funciones de hash, como SHA-224, SHA-256, SHA-384, SHA-512, SHA-512/224 y SHA-512/256. Estos algoritmos, también diseñados por la NSA, son más seguros que SHA-1 y MD5. SHA-256 y SHA-512 son los más utilizados en la familia SHA-2 y emplean tamaños de palabra de 32 y 64 bits, respectivamente.</li>
<li><a href="https://es.wikipedia.org/wiki/SHA-3" target="_blank" rel="noopener"><strong>SHA-3</strong></a>: Anteriormente conocido como Keccak, SHA-3 fue seleccionado en 2012 después de un concurso público entre diseñadores no pertenecientes a la NSA. Aunque es parte de la familia SHA, su estructura interna difiere significativamente de SHA-1 y SHA-2. SHA-3 admite las mismas longitudes de hash que SHA-2.</li>
<li><a href="https://en.wikipedia.org/wiki/BLAKE_(hash_function)" target="_blank" rel="noopener"><strong>BLAKE2</strong></a>: BLAKE2 es un algoritmo de hash criptográfico diseñado como una alternativa más rápida y segura a SHA-2 y SHA-3. BLAKE2 tiene dos variantes principales: BLAKE2b, que es optimizada para sistemas de 64 bits, y BLAKE2s, que es optimizada para sistemas de 8 a 32 bits.</li>
</ol>
<p style="text-align: justify;">Los algoritmos de hash más utilizados actualmente son SHA-2 y SHA-3, debido a su mayor seguridad en comparación con MD5 y SHA-1. La elección de un algoritmo de hash específico depende de las necesidades de seguridad y rendimiento de la aplicación en la que se utilizará. En general, se recomienda utilizar algoritmos de hash más seguros y modernos, como SHA-2 o SHA-3, para garantizar la integridad y autenticidad de los datos.</p>
<h2>PAQUETES NECESARIOS PARA LA GENERAR Y VERIFICAR EL HASH DE UN FICHERO EN LINUX</h2>
<p style="text-align: justify;">Para verificar y generar un hash tendremos que tener los siguientes paquetes instalados en nuestro sistema operativo.</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Algoritmo hash</th>
<th>Paquete</th>
<th>Comando de instalación en Debian y derivadas</th>
</tr>
</thead>
<tbody>
<tr>
<td>SHA-2, MD5, SHA-1, BLAKE2</td>
<td>coreutils</td>
<td><code><span style="color: #0090d3;">sudo apt install coreutils</span></code></td>
</tr>
<tr>
<td>SHA-3</td>
<td>libdigest-sha3-perl</td>
<td><code><span style="color: #0090d3;">sudo apt install libdigest-sha3-perl</span></code></td>
</tr>
</tbody>
</table>
</figure>
<h2>COMO PODEMOS GENERAR Y VERIFICAR EL HASH PARA UN FICHERO O ARCHIVO EN LINUX</h2>
<p style="text-align: justify;">Imaginemos que tenemos el fichero <code><span style="color: #ff0000;">geekland.txt</span></code>. Para generar y comprobar un hash con los algoritmos más habituales procederemos del siguiente modo.</p>
<h3>CREACIÓN Y VERIFICACIÓN DE UN HASH USANDO EL ALGORITMO MD5</h3>
<p style="text-align: justify;">El comando para generar un hash con el algoritmo MD5 del fichero <span style="color: #ff0000;">geekland.txt</span> es el siguiente:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">md5sum</span> <span style="color: #ff0000;">geekland.txt</span>
<span style="color: #000080;">d41d8cd98f00b204e9800998ecf8427e</span>  <span style="color: #ff0000;">geekland.txt
</span></code></pre>
<p style="text-align: justify;">Por lo tanto el hash del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">d41d8cd98f00b204e9800998ecf8427e</span></code></p>
<p style="text-align: justify;">Si ahora enviamos el archivo <code><span style="color: #ff0000;">geeklant.txt</span></code> a una tercera persona y le decimos que el hash del fichero es <code><span style="color: #000080;">d41d8cd98f00b204e9800998ecf8427e</span></code> podrá comprobar la integridad del fichero mediante el siguiente comando:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">echo "</span><span style="color: #000080;">d41d8cd98f00b204e9800998ecf8427e</span>  <span style="color: #ff0000;">geekland.txt</span><span style="color: #0090d3;">" | md5sum --check</span>
<span style="color: #ff0000;">geekland.txt</span>: La suma coincide
</code></pre>
<p style="text-align: justify;">Si el resultado obtenido es <code>La suma coincide</code> significa que el hash del archivo <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">d41d8cd98f00b204e9800998ecf8427e</span></code>. Por lo tanto el fichero <code><span style="color: #ff0000;">geekland.txt</span></code> no está corrompido ni ha sido modificado por un atacante o tercero.</p>
<p style="text-align: justify;"><strong>Nota:</strong> A día de hoy el algoritmo de Hash MD5 es considerado obsoleto y vulnerable.</p>
<h3 style="text-align: justify;">CREACIÓN Y VERIFICACIÓN DE UN HASH CON EL ALGORITMO SHA-1</h3>
<p style="text-align: justify;">El comando para generar un hash SHA-1 del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es el siguiente:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">shasum -a 1</span> <span style="color: #ff0000;">geekland.txt</span>
<span style="color: #000080;">da39a3ee5e6b4b0d3255bfef95601890afd80709</span>  <span style="color: #ff0000;">geekland.txt
</span></code></pre>
<p style="text-align: justify;">Por lo tanto el hash del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">da39a3ee5e6b4b0d3255bfef95601890afd80709</span></code></p>
<p style="text-align: justify;">Si ahora enviamos el archivo <code><span style="color: #ff0000;">geeklant.txt</span></code> a una tercera persona y le decimos que el hash del fichero es <code><span style="color: #000080;">da39a3ee5e6b4b0d3255bfef95601890afd80709</span></code> podrá comprobar la integridad del fichero mediante el siguiente comando:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">echo "</span><span style="color: #000080;">da39a3ee5e6b4b0d3255bfef95601890afd80709</span>  <span style="color: #ff0000;">geekland.txt</span><span style="color: #0090d3;">" | shasum -a 1 --check</span>
<span style="color: #ff0000;">geekland.txt</span>: OK
</code></pre>
<p style="text-align: justify;">Si el resultado obtenido es <code>OK</code> significa que el hash del archivo <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">da39a3ee5e6b4b0d3255bfef95601890afd80709</span></code>. Por lo tanto el fichero <code><span style="color: #ff0000;">geekland.txt</span></code> no está corrompido ni ha sido modificado por un atacante.</p>
<p style="text-align: justify;"><strong>Nota:</strong> A día de hoy el algoritmo de Hash SHA-1 es considerado obsoleto y vulnerable.</p>
<h3>CREACIÓN Y COMPROBACIÓN DE UN HASH CON EL ALGORITMO SHA-256</h3>
<p style="text-align: justify;">El comando para generar un hash SHA-256 del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es el siguiente:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">shasum -a 256</span> <span style="color: #ff0000;">geekland.txt</span>
<span style="color: #000080;">e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</span>  <span style="color: #ff0000;">geekland.txt
</span></code></pre>
<p style="text-align: justify;">Por lo tanto el hash del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</span></code></p>
<p style="text-align: justify;">Si ahora enviamos el archivo <code><span style="color: #ff0000;">geeklant.txt</span></code> a una tercera persona y le decimos que el hash del fichero es <code><span style="color: #000080;">e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</span></code> podrá comprobar la integridad del fichero mediante el siguiente comando:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">echo "</span><span style="color: #000080;">e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</span>  <span style="color: #ff0000;">geekland.txt</span><span style="color: #0090d3;">" | shasum -a 256 --check</span>
<span style="color: #ff0000;">geekland.txt</span>: OK
</code></pre>
<p style="text-align: justify;">Si el resultado obtenido es <code>OK</code> significa que el hash del archivo <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855</span></code>. Por lo tanto el fichero <code><span style="color: #ff0000;">geekland.txt</span></code> no está corrompido ni ha sido modificado por un atacante.</p>
<p style="text-align: justify;"><strong>Nota:</strong> SHA-256 fue creado por la NSA. Por lo tanto existen personas que desconfiarán a la hora de usar un HASH del tipo SHA-2.</p>
<h3>CREACIÓN Y COMPROBACIÓN DE UN HASH CON EL ALGORITMO SHA-512224</h3>
<p style="text-align: justify;">El comando para generar un hash SHA-512224 del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es el siguiente:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">shasum -a 512224</span> <span style="color: #ff0000;">geekland.txt</span>
<span style="color: #000080;">6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4</span>  <span style="color: #ff0000;">geekland.txt
</span></code></pre>
<p style="text-align: justify;">Por lo tanto el hash del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4</span></code></p>
<p style="text-align: justify;">Si ahora enviamos el archivo <code><span style="color: #ff0000;">geeklant.txt</span></code> a una tercera persona y le decimos que el hash del fichero es <code><span style="color: #000080;">6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4</span></code> podrá comprobar la integridad del fichero mediante el siguiente comando:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">echo "</span><span style="color: #000080;">6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4</span>  <span style="color: #ff0000;">geekland.txt</span><span style="color: #0090d3;">" | shasum -a 512224 --check</span>
<span style="color: #ff0000;">geekland.txt</span>: OK
</code></pre>
<p style="text-align: justify;">Si el resultado obtenido es <code>OK</code> significa que el hash del archivo <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">6ed0dd02806fa89e25de060c19d3ac86cabb87d6a0ddd05c333b84f4</span></code>. Por lo tanto el fichero <code><span style="color: #ff0000;">geekland.txt</span></code> no está corrompido ni ha sido modificado por un atacante.</p>
<p style="text-align: justify;"><strong>Nota:</strong> SHA-51224 fue creado por la NSA. Por lo tanto existen personas que seguramente desconfiarán a la hora de usar un HASH del tipo SHA-2.</p>
<h3>CREAR Y VERIFICAR UN HASH CON EL ALGORITMO SHA-3 Y LA FUNCIÓN SHA-512</h3>
<p style="text-align: justify;">El comando para generar un hash con el algoritmo SHA-3 y la función SHA-512 del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es el siguiente:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">sha3sum -a 512</span> <span style="color: #ff0000;">geekland.txt</span>
<span style="color: #000080;">a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26</span>  <span style="color: #ff0000;">geekland.txt
</span></code></pre>
<p style="text-align: justify;">Por lo tanto el hash del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es <span style="color: #000080;"><code><span style="color: #000080;">a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26</span></code></span></p>
<p style="text-align: justify;">Si ahora enviamos el archivo <code><span style="color: #ff0000;">geeklant.txt</span></code> a una tercera persona y le decimos que el hash del fichero es <code><span style="color: #000080;">a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26</span></code> podrá comprobar la integridad del fichero mediante el siguiente comando:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">echo "</span><span style="color: #000080;">a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26</span>  <span style="color: #ff0000;">geekland.txt</span><span style="color: #0090d3;">" | sha3sum -a 512 --check</span>
<span style="color: #ff0000;">geekland.txt</span>: OK
</code></pre>
<p style="text-align: justify;">Si el resultado obtenido es <code>OK</code> significa que el hash del archivo <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">a69f73cca23a9ac5c8b567dc185a756e97c982164fe25859e0d1dcc1475c80a615b2123af1f5f94c11e3e9402c3ac558f500199d95b6d3e301758586281dcd26</span></code>. Por lo tanto el fichero <code><span style="color: #ff0000;">geekland.txt</span></code> no está corrompido ni ha sido modificado por un atacante.</p>
<h3>CREAR Y VERIFICAR UN HASH CON EL ALGORITMO BLAKE2</h3>
<p style="text-align: justify;">El comando para generar un hash con el algoritmo BLAKE2 del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es el siguiente:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">b2sum</span> <span style="color: #ff0000;">geekland.txt</span>
<span style="color: #000080;">786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce</span>  <span style="color: #ff0000;">geekland.txt
</span></code></pre>
<p style="text-align: justify;">Por lo tanto el hash del fichero <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce</span></code></p>
<p style="text-align: justify;">Si ahora enviamos el archivo <code><span style="color: #ff0000;">geeklant.txt</span></code> a una tercera persona y le decimos que el hash del fichero es <code><span style="color: #000080;">786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce</span></code> podrá comprobar la integridad del fichero mediante el siguiente comando:</p>
<pre><code class="language-shell" lang="shell">❯ <span style="color: #0090d3;">echo "</span><span style="color: #000080;">786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce</span>  <span style="color: #ff0000;">geekland.txt</span><span style="color: #0090d3;">" | b2sum --check</span>
<span style="color: #ff0000;">geekland.txt</span>: La suma coincide
</code></pre>
<p style="text-align: justify;">Si el resultado obtenido es <code>La suma coincide</code> significa que el hash del archivo <code><span style="color: #ff0000;">geekland.txt</span></code> es <code><span style="color: #000080;">786a02f742015903c6c6fd852552d272912f4740e15847618a86e217f71f5419d25e1031afee585313896444934eb04b903a685b1448b755d56f701afe9be2ce</span></code>. Por lo tanto el fichero <code><span style="color: #ff0000;">geekland.txt</span></code> no está corrompido ni ha sido modificado por un atacante.</p>
<h2>COMO VERIFICAR EL HASH DE UN FICHERO DESCARGADO EN LINUX</h2>
<p style="text-align: justify;">Imaginemos que queremos descargar una ISO De ubuntu. Esta ISO:</p>
<ul style="text-align: justify;">
<li>Tiene el hash: <code><span style="color: #000080;">a435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e909</span></code></li>
<li>El Nombre de la ISO es <code><span style="color: #ff0000;">ubuntu-22.04.3-desktop-amd64.iso</span></code></li>
<li>El algoritmo usado para crear el hash <code><span style="color: #000080;">a435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e909</span></code> es SHA256</li>
</ul>
<p style="text-align: justify;">Por lo tanto para comprobar la integridad de este fichero .iso ejecutaremos el siguiente comando en la terminal:</p>
<pre><code><span style="color: #0090d3;">echo</span> "<span style="color: #000080;">a435f6f393dda581172490eda9f683c32e495158a780b5a1de422ee77d98e909</span> <span style="color: #ff0000;">ubuntu-22.04.3-desktop-amd64.iso</span><span style="color: #0090d3;">" | shasum -a 256 --check</span>`
`<span style="color: #ff0000;">ubuntu-22.04.3-desktop-amd64.iso</span>: <span style="color: #333399;">OK
</span></code></pre>
<p style="text-align: justify;">Como el resultado es <code><span style="color: #333399;">OK</span></code> podemos estar tranquilos que el archivo descargado no está corrompido.</p>
<h2>HERRAMIENTAS CON INTERFAZ GRÁFICA PARA VERIFICAR EL HASH DE UN FICHERO</h2>
<p style="text-align: justify;">En mi caso recomiendo usar la terminal para comprobar y generar los hash. No obstante también existen algunas herramientas de interfaz gráfica para Linux que son interesantes para comprobar y generar hash de un archivo. Algunas de ellas son las siguientes:</p>
<ol style="text-align: justify;">
<li><strong>QuickHash GUI</strong>: QuickHash GUI es una herramienta de código abierto para Linux, Windows y Apple Mac OSX con interfaz gráfica de usuario (GUI). Los algoritmos hash disponibles actualmente incluyen MD5, SHA1, SHA-3 (256 bits), SHA256, SHA512, xxHash, Blake2B (256 bits) y Blake3MultiHasher.</li>
<li><strong>GTKHash:</strong> Es una herramienta de escritorio para calcular resúmenes de mensajes o checksums en sistemas Linux. Está diseñada para ser una alternativa fácil de usar y gráfica a programas de línea de comandos como md5sum. Entre las funciones de hash compatibles se incluyen MD5, SHA1, SHA2 (SHA256/SHA512), SHA3 y BLAKE2. Adicionalmente podemos instalar los paquetes <code><span style="color: #0090d3;">caja-gtkhash</span></code>, <code><span style="color: #0090d3;">nemo-gtkhash</span></code> y <code><span style="color: #0090d3;">thunar-gtkhash</span></code> que harán que la utilidad GTKHash se integre en los gestores de archivos Caja, Nemo o Thunar.</li>
</ol>
<p style="text-align: justify;">En el caso que quieran recomendar otra aplicación lo pueden hacer en los comentarios de este artículo.</p>
<h2>CONCLUSIONES</h2>
<p style="text-align: justify;">El hash de un archivo es una herramienta importante para verificar la integridad de un archivo descargado. Si bien puede llevar un poco más de tiempo verificar el hash de un archivo, es un esfuerzo que vale la pena para asegurarse de que el archivo no se haya corrompido durante la descarga o que no haya sido manipulado por un actor malintencionado. En conclusión, verificar el hash de un archivo es una práctica importante para garantizar la seguridad y la integridad de los archivos descargados. Si la línea de comandos resulta incómoda para verificar el hash de un archivo, existen herramientas con interfaz gráfica que pueden ser utilizadas en su lugar.</p>
<p>La entrada <a href="https://geekland.eu/como-generar-y-verificar-el-hash-de-archivos-en-linux/">Cómo generar y verificar el Hash de archivos en linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/como-generar-y-verificar-el-hash-de-archivos-en-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Toot, un cliente de mastodon para la terminal Linux</title>
		<link>https://geekland.eu/toot-un-cliente-de-mastodon-para-la-terminal-linux/</link>
					<comments>https://geekland.eu/toot-un-cliente-de-mastodon-para-la-terminal-linux/#respond</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sat, 26 Aug 2023 09:07:23 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[mastodon]]></category>
		<category><![CDATA[redes sociales]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[toot]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=13965</guid>

					<description><![CDATA[<p>Toot es un cliente de Mastodon que permite interactuar con instancias de Mastodon desde la línea de comandos y la terminal. Algunas de las características que ofrece Toot son: Publicar, responder y eliminar estados. Soporte para subir archivos multimedia, texto de advertencia y contenido sensible. Búsqueda por cuenta o hashtag. Seguir, silenciar y bloquear cuentas. &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/toot-un-cliente-de-mastodon-para-la-terminal-linux/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Toot, un cliente de mastodon para la terminal Linux»</span></a></p>
<p>La entrada <a href="https://geekland.eu/toot-un-cliente-de-mastodon-para-la-terminal-linux/">Toot, un cliente de mastodon para la terminal Linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">Toot es un cliente de Mastodon que permite interactuar con instancias de Mastodon desde la línea de comandos y la terminal. Algunas de las características que ofrece Toot son:<span id="more-13965"></span></p>
<ul>
<li style="text-align: justify;">Publicar, responder y eliminar estados.</li>
<li style="text-align: justify;">Soporte para subir archivos multimedia, texto de advertencia y contenido sensible.</li>
<li style="text-align: justify;">Búsqueda por cuenta o hashtag.</li>
<li style="text-align: justify;">Seguir, silenciar y bloquear cuentas.</li>
<li style="text-align: justify;">Cambiar fácilmente entre cuentas autenticadas en Mastodon.</li>
<li style="text-align: justify;">Automatizaciones para publicaciones automáticas mediante scripts.</li>
<li style="text-align: justify;">etc.</li>
</ul>
<h2>VENTAJAS DE TOOT Y TOOT TUI FRENTE A LA INTERFAZ WEB DE MASTODON</h2>
<p style="text-align: justify;">Toot TUI ofrece algunas ventajas en comparación con la interfaz web de Mastodon:</p>
<ul>
<li style="text-align: justify;"><strong>Acceso rápido y eficiente</strong> a través de la terminal, lo que permite a los usuarios experimentados realizar acciones rápidamente sin depender de un navegador web.</li>
<li style="text-align: justify;"><strong>Menor consumo de recursos</strong> del sistema en comparación con la interfaz web, lo que puede ser beneficioso para dispositivos con recursos limitados.</li>
<li style="text-align: justify;"><strong>Mayor enfoque en la funcionalidad y el contenido</strong>, ya que la interfaz de usuario de texto elimina distracciones visuales y elementos innecesarios.</li>
<li style="text-align: justify;"><strong>Automatización:</strong> Los comandos de Toot se pueden utilizar para generar scripts y automatizar publicaciones.</li>
</ul>
<h2>COMO INSTALAR EL CLIENTE PARA TERMINAL DE MASTODON TOOT TUI</h2>
<p style="text-align: justify;">Existen diversas formas para instalar el cliente de mastodon para terminal toot. Una de ellas es mediante la paqueteria de la distribución que estéis usando. En el caso que estéis usando Debian testing tan solo hay que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">sudo apt install toot
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Otra forma alternativa de instalar toot es mediante el gestor de paquetes pip. El comando a usar para instalarlo es:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">pip3 install toot
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Una vez finalizada la instalación nos tendremos que loguear a mastodon del siguiente modo.</p>
<h2>LOGUEARSE AL CLIENTE DE MASTODON TOOT</h2>
<p style="text-align: justify;">Para loguearse a toot tendremos que ejecutar el comando <code><strong><span style="color: #0090d3;">toot login</span></strong></code> en la terminal. Una vez ejecutado el comando tendréis que introducir:</p>
<ol>
<li style="text-align: justify;">La URL de nuestra instancia de mastodon y presionar Enter.</li>
<li style="text-align: justify;">Acto seguido, se nos preguntará si queremos ver abrir el enlace para autorizar al cliente toot a acceder a nuestra cuenta de mastodon con nuestro navegador predeterminado. Escribiremos <code><strong><span style="color: #0090d3;">Y</span></strong></code> y presionaremos enter.</li>
</ol>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #333333;">❯ <span style="color: #0090d3;">toot login</span>
Enter instance URL [https://mastodon.social]: <span style="color: #0090d3;">https://mastodon.social</span>
Looking up instance info...
Found instance Mastodon running Mastodon version 4.2.0+pr-26409-f82b3c9
Registering application...
Application tokens saved.

This authentication method requires you to log into your Mastodon instance
in your browser, where you will be asked to authorize toot to access
your account. When you do, you will be given an authorization code
which you need to paste here.

This is the login URL:
https://mastodon.social/oauth/authorize/?response_type=code&redirect_uri=urn%3Airt%3Bwg%2Aoauth%32.0%3Aoob&scope=read+write+follow&client_id=MYGvm0cTknaUNCgQ0uRf3fnf_MSgYPpBLLYtNAN2FvR

Open link in default browser? [Y/n]<strong><span style="color: #0090d3;">Y</span></strong>
Authorization code: Se está abriendo en una sesión de navegador existente.
</span></code></pre>
</blockquote>
<p style="text-align: justify;">Acto seguido presionaremos sobre el botón Autorizar.</p>
<p><img decoding="async" class="alignnone wp-image-13967" title="Autorizar el ciente toot en mastodon" src="https://geekland.eu/wp-content/uploads/2023/08/autorizar-el-cliente-de-terminal-toot.webp" alt="Autorizar el ciente toot en mastodon" width="760" height="441" srcset="https://geekland.eu/wp-content/uploads/2023/08/autorizar-el-cliente-de-terminal-toot.webp 1171w, https://geekland.eu/wp-content/uploads/2023/08/autorizar-el-cliente-de-terminal-toot-300x174.webp 300w, https://geekland.eu/wp-content/uploads/2023/08/autorizar-el-cliente-de-terminal-toot-1024x594.webp 1024w, https://geekland.eu/wp-content/uploads/2023/08/autorizar-el-cliente-de-terminal-toot-768x445.webp 768w" sizes="(max-width: 760px) 100vw, 760px" /></p>
<p style="text-align: justify;">A continuación nos aparecerá el código de autenticación que tendremos que usar para autorizar la cuenta. Lo copiamos.</p>
<p><img decoding="async" class="alignnone wp-image-13968" title="Código para autorizar el cliente de terminal de mastodon toot" src="https://geekland.eu/wp-content/uploads/2023/08/codigo-autorizacion-toot.webp" alt="Código para autorizar el cliente de terminal de mastodon toot" width="675" height="257" srcset="https://geekland.eu/wp-content/uploads/2023/08/codigo-autorizacion-toot.webp 1008w, https://geekland.eu/wp-content/uploads/2023/08/codigo-autorizacion-toot-300x114.webp 300w, https://geekland.eu/wp-content/uploads/2023/08/codigo-autorizacion-toot-768x293.webp 768w" sizes="(max-width: 675px) 100vw, 675px" /></p>
<p style="text-align: justify;">Finalmente pegamos el código de autorización a la terminal y presionamos Enter. Una vez realizadas estos pasos Toot estará logueada a mastodon.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #333333;">Authorization code: Se está abriendo en una sesión de navegador existente.
<span style="color: #0090d3;">aAeUoyYWQlXxTB9lYOV-yhocIrZ3-bGKlpBL-LYtNAN2FvR</span>

Requesting access token...
Access token saved to config at: /home/joan/.config/toot/config.json

✓ Successfully logged in.
</span></code></pre>
</blockquote>
<p style="text-align: justify;"><strong>Nota:</strong> Los tokens de acceso se guardarán en el archivo de configuración ubicado en <code><strong><span style="color: #0090d3;">~/.config/toot/config.json</span></strong></code></p>
<p style="text-align: justify;">Si alguna vez necesitan desloguearse tan solo tendran que ejecutar el comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">toot logout
</span></strong></code></pre>
</blockquote>
<h2>USAR MASTODON MEDIANTE UNA INTERFAZ GRÁFICA DE TERMINAL</h2>
<p style="text-align: justify;">Una vez finalizada la instalación, podemos comenzar a utilizar el cliente de terminal para Mastodon. Para iniciar el cliente, simplemente debemos ejecutar el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">toot tui
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Acto seguido, se abrirá la interfaz gráfica de terminal de Toot. Desde esta interfaz, se puede navegar por los Toots publicados en la línea de tiempo utilizando las teclas del cursor. En la parte inferior derecha, aparecerán opciones disponibles como hacer «boost» de un Toot, marcarlo como favorito, verlo y más.</p>
<p><img decoding="async" class="alignnone wp-image-13969 size-full" src="https://geekland.eu/wp-content/uploads/2023/08/intergaz-grafica-terminal-toot.webp" alt="Interfaz gráfica para terminal del cliente de mastodon toot" width="960" height="530" srcset="https://geekland.eu/wp-content/uploads/2023/08/intergaz-grafica-terminal-toot.webp 960w, https://geekland.eu/wp-content/uploads/2023/08/intergaz-grafica-terminal-toot-300x166.webp 300w, https://geekland.eu/wp-content/uploads/2023/08/intergaz-grafica-terminal-toot-768x424.webp 768w" sizes="(max-width: 960px) 100vw, 960px" /></p>
<p style="text-align: justify;">A continuación les dejaré una serie de atajos de teclado que les ayudarán a sacar partido a toot.</p>
<h3>Atajos de teclado para usar la interfaz de terminal del cliente de Mastodon toot</h3>
<p style="text-align: justify;">Los atajos de teclado principales para usar la interfaz gráfica de terminal son los siguientes:</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Atajos de teclado</th>
<th>Función de los atajos de teclado</th>
</tr>
</thead>
<tbody>
<tr>
<td><span style="color: #0090d3;">A</span></td>
<td>Ver los datos principales de la cuenta de un usuario que ha realizado un toot.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">B</span></td>
<td>Hacer un retoot. «Equivalente a retuit».</td>
</tr>
<tr>
<td><span style="color: #0090d3;">C</span></td>
<td>Escribir un toot.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">D</span></td>
<td>Borrar un toot que has publicado.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">O</span></td>
<td>Añadir una publicación a los marcadores.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">F</span></td>
<td>Añadir una publicación a favoritos para indicar que te gusta.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">V</span></td>
<td>V de View para ver y que se abra el toot en el navegador predeterminado.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">T</span></td>
<td>Ver el historial de respuestas del toot seleccionado.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">I</span></td>
<td>Mostrar únicamente los link que contiene el toot seleccionado. Útil para abrir los links de las publicaciones en el navegador.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">R</span></td>
<td>Responder a un toot.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">S</span></td>
<td>Mostrar el texto que está categorizado como sensible.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">U</span></td>
<td>Ver el contenido de una publicación en formato json.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">M</span></td>
<td>Visualizar las imágenes de los toot.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">N</span></td>
<td>Traducir una publicación a tu idioma.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">Y</span></td>
<td>Copiar la totalidad de texto de la publicación o de un toot en el portapapeles.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">Z</span></td>
<td>Ver el toot seleccionado en una pantalla emergente en la que puedes hacer scroll.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">,</span></td>
<td>Refrescar el timeline.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">G</span></td>
<td>Aparece un menu para seleccionar los distintos timeline que queremos ver. También para ver las Notificaciones, marcadores, hashtags, etc.</td>
</tr>
</tbody>
</table>
</figure>
<p style="text-align: justify;">Otros atajos de teclado interesantes son los siguientes:</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Atajos de teclado</th>
<th>Función de los atajos de teclado</th>
</tr>
</thead>
<tbody>
<tr>
<td><span style="color: #0090d3;">cursores o H/J/K/L</span></td>
<td>Para moverse y hacer scroll en la interfaz de la terminal</td>
</tr>
<tr>
<td><span style="color: #0090d3;">Page up y PageDown</span></td>
<td>Para hacer scroll del contenido</td>
</tr>
<tr>
<td><span style="color: #0090d3;">Enter / Espacio</span></td>
<td>Para acceder dentro de las opciones del programa</td>
</tr>
<tr>
<td><span style="color: #0090d3;">Esc</span></td>
<td>Para ir hacia atrás o salir</td>
</tr>
<tr>
<td><span style="color: #0090d3;">q</span></td>
<td>Para ir hacia atrás o para Cerrar el cliente</td>
</tr>
</tbody>
</table>
</figure>
<h2>COMANDOS DE TOOT PARA REALIZAR SCRIPTS Y AUTOMATIZAR LAS PUBLICACIONES</h2>
<p style="text-align: justify;">Hasta estos momentos hemos visto como usar toot a través de una interfaz gráfica de terminal, pero también es posible realizar diversas operaciones mediante comandos que podemos ejecutar en la terminal.</p>
<h3>Utilidad de los comando que toot ofrece vía terminal</h3>
<p style="text-align: justify;">La principal ventaja en el momento de usar los comandos es la automatización de tareas. Los comandos de Toot se pueden utilizar en scripts para automatizar nuestras publicaciones en Mastodon.</p>
<h3>Comandos disponibles para poder usar Toot desde la terminal</h3>
<p style="text-align: justify;">A continuación y mediante una serie de ejemplos veréis como podéis usar toot mediante la ejecución de comandos en la terminal.</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Acción a realizar</th>
<th>Comando a usar</th>
</tr>
</thead>
<tbody>
<tr>
<td>Enviar el toot <code><span style="color: #ff00ff;">Hola mundo</span></code></td>
<td><code><span style="color: #0090d3;">toot post "<span style="color: #ff00ff;">Hola mundo</span>"</span></code></td>
</tr>
<tr>
<td>Enviar un toot con un salto de línea</td>
<td><code><span style="color: #0090d3;">toot post "$(echo -e "<span style="color: #ff00ff;">Hola</span>\n<span style="color: #ff00ff;">Mundo</span>")"</span></code></td>
</tr>
<tr>
<td>Escribir un toot usando el editor de textos <span style="color: #ff6600;">vim</span></td>
<td><code><span style="color: #0090d3;">toot post --editor</span> <span style="color: #ff6600;">vim</span></code></td>
</tr>
<tr>
<td>Subir la imagen <code><span style="color: #0000ff;">/media/DATOS/geekland.jpg</span></code> con el texto <code><span style="color: #ff00ff;">Hola</span> <span style="color: #ff00ff;">Mundo</span></code></td>
<td><code><span style="color: #0090d3;">toot post -m <span style="color: #0000ff;">/media/DATOS/geekland.jpg</span> "<span style="color: #ff00ff;">Hola Mundo</span>"</span></code></td>
</tr>
<tr>
<td>buscar el usuario y el hashtag <code><span style="color: #ff0000;">geekland</span></code></td>
<td><code><span style="color: #0090d3;">toot search <span style="color: #ff0000;">geekland</span></span></code></td>
</tr>
<tr>
<td>Ver las notificaciones del usuario logueado</td>
<td><code><span style="color: #0090d3;">toot notifications</span></code></td>
</tr>
<tr>
<td>Ver la información del perfil del usuario <code><span style="color: #ff0000;">geekland</span></code></td>
<td><code><span style="color: #0090d3;">toot whois <span style="color: #ff0000;">@geekland</span></span></code></td>
</tr>
<tr>
<td>Mostrar el timeline en pantalla</td>
<td><code><span style="color: #0090d3;">toot timeline</span></code></td>
</tr>
<tr>
<td>Ver los 5 últimos toot del timeline</td>
<td><code><span style="color: #0090d3;">toot timeline --count 5</span></code></td>
</tr>
<tr>
<td>Ver el timeline solo de tu estancia de Mastodon</td>
<td><code><span style="color: #0090d3;">toot timeline --public --local</span></code></td>
</tr>
<tr>
<td>Retootear una publicación con ID <code><span style="color: #008000;">110953708024057889</span></code></td>
<td><code><span style="color: #0090d3;">toot reblog <span style="color: #008000;">110953708024057889</span></span></code></td>
</tr>
<tr>
<td>&#8230;</td>
<td>&#8230;</td>
</tr>
</tbody>
</table>
</figure>
<p style="text-align: justify;">Existen multitud de comandos adicionales a los que acabo de citar. Para conocerlos tan solo tenéis que ejecutar el siguiente comando en la terminal.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">toot --help
</span></strong></code></pre>
</blockquote>
<h2>CONCLUSIONES</h2>
<p style="text-align: justify;">Toot es una herramienta útil para interactuar con Mastodon desde la terminal, ofreciendo una experiencia de usuario eficiente y centrada en el contenido. Puede reemplazar el cliente web de mastodon sin mayores inconvenientes.</p>
<h3>Fuentes</h3>
<p><a class="url" href="https://toot.bezdomni.net/" target="_blank" rel="noopener">https://toot.bezdomni.net/</a></p>
<p><a class="url" href="https://github.com/ihabunek/toot" target="_blank" rel="noopener">https://github.com/ihabunek/toot</a></p>
<p>La entrada <a href="https://geekland.eu/toot-un-cliente-de-mastodon-para-la-terminal-linux/">Toot, un cliente de mastodon para la terminal Linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/toot-un-cliente-de-mastodon-para-la-terminal-linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Cómo desactivar servicios no deseados en Linux con Systemd</title>
		<link>https://geekland.eu/como-desactivar-servicios-no-deseados-en-linux-con-systemd/</link>
					<comments>https://geekland.eu/como-desactivar-servicios-no-deseados-en-linux-con-systemd/#comments</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sun, 13 Aug 2023 06:33:46 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Configuración]]></category>
		<category><![CDATA[sysadmin]]></category>
		<category><![CDATA[systemd]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=13955</guid>

					<description><![CDATA[<p>Las distribuciones Linux incluyen varios servicios o demonios habilitados por defecto, algunos de los cuales podrían no ser utilizados por los usuarios. Estos servicios innecesarios se ejecutan en segundo plano y consumen recursos del sistema. En este artículo, aprenderás cómo listar todos los servicios en ejecución y cómo desactivar aquellos que no se están utilizando &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/como-desactivar-servicios-no-deseados-en-linux-con-systemd/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Cómo desactivar servicios no deseados en Linux con Systemd»</span></a></p>
<p>La entrada <a href="https://geekland.eu/como-desactivar-servicios-no-deseados-en-linux-con-systemd/">Cómo desactivar servicios no deseados en Linux con Systemd</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>Las distribuciones Linux incluyen varios servicios o demonios habilitados por defecto, algunos de los cuales podrían no ser utilizados por los usuarios. Estos servicios innecesarios se ejecutan en segundo plano y consumen recursos del sistema. En este artículo, aprenderás cómo listar todos los servicios en ejecución y cómo desactivar aquellos que no se están utilizando mediante <a href="https://geekland.eu/systemctl-administrar-servicios-linux/" target="_blank" rel="noopener">systemd</a>.<span id="more-13955"></span></p>
<p><strong>Nota:</strong> En GNU/Linux, los servicios o «demonios» se refieren a procesos que se ejecutan en segundo plano para realizar diversas tareas del sistema. Estos demonios o servicios son administrados por el sistema de inicio, que en las distribuciones más modernas suele ser systemd. Para listar los demonios en ejecución y activarlos o desactivarlos, sigue los pasos que se describen a continuación.</p>
<h3>LISTAR LA TOTALIDAD DE SERVICIOS O DEMONIOS EN EJECUCIÓN</h3>
<p>Lo primero que tenemos que realizar es listar la totalidad de servicios o demonios gestionados por systemd. Para ello ejecutaremos el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">systemctl list-unit-files --type service --all
</span></strong></code></pre>
</blockquote>
<p>El resultado obtenido será algo parecido a lo que verán a continuación:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> systemctl list-unit-files --type service --all
<span style="color: #333333;">UNIT FILE                                  STATE           PRESET  
acpid.service                              disabled        enabled 
alsa-restore.service                       static          -       
alsa-state.service                         static          -       
alsa-utils.service                         masked          enabled 
anacron.service                            disabled        enabled 
apparmor.service                           enabled         enabled 
apt-daily-upgrade.service                  static          -       
apt-daily.service                          static          -       
autovt@.service                            alias           -       
avahi-daemon.service                       enabled         enabled 
blueman-mechanism.service                  enabled         enabled 
bluetooth.service                          enabled         enabled 
bolt.service                               static          -       
colord.service                             static          -       
configure-printer@.service                 static          -       
console-getty.service                      disabled        disabled
console-setup.service                      enabled         enabled 
...
</span></span></strong></code></pre>
</blockquote>
<p>La columna «STATE» en la salida del comando <code><span style="color: #0090d3;">systemctl list-units --type=service</span></code> indica el estado actual del servicio. Los posibles estados y sus significados son los siguientes:</p>
<ul>
<li><strong>enabled:</strong> El servicio está habilitado y se inicia automáticamente durante el arranque.</li>
<li><strong>disabled:</strong> El servicio está deshabilitado y no se inicia de forma automática durante el arranque.</li>
<li><strong>masked:</strong> El servicio está completamente deshabilitado y no se puede iniciar de ningún modo sin previamente desenmascararlo. Este estado se utiliza para evitar que un servicio se inicie accidentalmente o para indicar que el servicio está deshabilitado de forma intencional.</li>
<li><strong>static:</strong> Servicios que están configurados para iniciarse automáticamente al iniciar el sistema. Estos servicios pueden estar activos o inactivos, pero siempre están disponibles para cuando se necesite usarlos. Estos servicios no se pueden activar ni desactivar, pero se pueden enmascarar. Normalmente estos servicios son esenciales para el correcto funcionamiento del sistema.</li>
<li><strong>alias:</strong> Indica que el servicio es un alias o un enlace simbólico a otro servicio. Esto significa que el servicio en sí mismo no existe, pero se utiliza para referirse a otro servicio con un nombre diferente.</li>
<li><strong>generated:</strong> Se refiere a los servicios generados automáticamente por el sistema o por otras herramientas. Estos servicios pueden ser generados dinámicamente según las necesidades del sistema o como parte de la configuración de otros servicios.</li>
<li><strong>Indirect:</strong> El servicio en sí no está habilitado directamente, pero su activación depende de otro servicio o unidad. En otras palabras, un servicio con estado «indirect» no se inicia por sí mismo, sino que se activa como resultado de la activación de otro servicio relacionado.</li>
</ul>
<p>La columna «PRESET» en la salida del comando <code><span style="color: #0090d3;">systemctl list-units --type=service</span></code> indica la configuración de inicio predeterminada de un servicio en particular. Los posibles estados y sus significados son los siguientes:</p>
<ul>
<li><strong>enabled</strong>: El servicio está habilitado según la política de inicio predeterminada.</li>
<li><strong>disabled</strong>: El servicio está deshabilitado según la política de inicio predeterminada.</li>
<li><strong>&#8211;</strong>: No se proporciona información sobre la configuración de inicio predeterminada para esta unidad.</li>
</ul>
<h3>IDENTIFICAR QUE HACE CADA UNOS DE LOS DEMONIOS O SERVICIOS Y DECIDIR SI LOS QUEREMOS DESACTIVAR O PARAR</h3>
<p>Una vez que conocemos la totalidad de servicios presentes en nuestro sistema Linux, es importante saber lo que hacen para decidir si son necesarios para nosotros. Para descubrir lo que hace cada uno de los servicios, existen varias herramientas disponibles como por ejemplo Bing Chat, Bard, Perplexity, etc.</p>
<p>Algunos servicios que en mi caso están activos y no necesito son los siguientes:</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>Demonio</th>
<th>Función</th>
</tr>
</thead>
<tbody>
<tr>
<td><span style="color: #0090d3;">cups-browsed.service</span></td>
<td>Su función principal es descubrir y conectar automáticamente impresoras compartidas en una red local y hacerlas disponibles para los usuarios locales del sistema</td>
</tr>
<tr>
<td><span style="color: #0090d3;">cups.service</span></td>
<td>Su función es proporcionar la infraestructura necesaria para administrar y manejar las impresoras y trabajos de impresión en el sistema operativo</td>
</tr>
<tr>
<td><span style="color: #0090d3;">ModemManager.service</span></td>
<td>Administrar y controlar los módems conectados al sistema, como los módems USB 3G/4G/LTE, módems internos de portátiles, módems GSM, entre otros dispositivos de comunicación móvil.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">openvpn.service</span></td>
<td>Demonio del cliente de OpenVPN.</td>
</tr>
<tr>
<td><span style="color: #0090d3;">redsocks.service</span></td>
<td>Demonio del proxy transparente redsocks.</td>
</tr>
</tbody>
</table>
</figure>
<p>A continuación procederé a desactivar los servicios del siguiente modo.</p>
<p><strong>Nota:</strong> Hay que ser extremadamente cauteloso a la hora de deshabilitar servicios. Hay servicios que son esenciales y si los deshabilitamos podemos dejar inservible nuestro sistema operativo.</p>
<h3>DESACTIVAR LOS SERVICIOS O DEMONIOS QUE NO USAMOS PARA AHORRAR RECURSOS</h3>
<p>En el apartado anterior he listado una serie de servicios que tengo levantados y no estoy usando. Así que para parar el servicio <code><span style="color: #0090d3;">cups-browsed.service</span></code> ejecutaremos el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> sudo systemctl stop cups-browsed.service
</span></strong></code></pre>
</blockquote>
<p>Y para hacer que no se vuelva a levantar al iniciar el sistema ejecutaremos el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> sudo systemctl disable cups-browsed.service
<span style="color: #333333;">Synchronizing state of cups-browsed.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable cups-browsed
Removed "/etc/systemd/system/multi-user.target.wants/cups-browsed.service".
</span></span></strong></code></pre>
</blockquote>
<p>Del mismo modo que deshabilitamos el demonio <code>cups-browsed.service</code> haremos lo mismo con el resto de servicios.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #333333;"><strong>❯ <span style="color: #0090d3;">sudo systemctl stop cups.service</span>
❯ <span style="color: #0090d3;">sudo systemctl disable cups.service</span>
Synchronizing state of cups.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable cups
Removed "/etc/systemd/system/sockets.target.wants/cups.socket".
Removed "/etc/systemd/system/printer.target.wants/cups.service".
Removed "/etc/systemd/system/multi-user.target.wants/cups.service".
Removed "/etc/systemd/system/multi-user.target.wants/cups.path".

❯ <span style="color: #0090d3;">sudo systemctl stop ModemManager.service</span>
❯ <span style="color: #0090d3;">sudo systemctl disable ModemManager.service</span>
Removed "/etc/systemd/system/dbus-org.freedesktop.ModemManager1.service".
Removed "/etc/systemd/system/multi-user.target.wants/ModemManager.service".

❯ <span style="color: #0090d3;">sudo systemctl stop redsocks.service</span>
❯ <span style="color: #0090d3;">sudo systemctl disable redsocks.service</span>
Synchronizing state of redsocks.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable redsocks
Removed "/etc/systemd/system/multi-user.target.wants/redsocks.service".

❯ <span style="color: #0090d3;">sudo systemctl stop openvpn.service</span>
❯ <span style="color: #0090d3;">sudo systemctl disable openvpn.service</span>
Synchronizing state of openvpn.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install disable openvpn
Removed "/etc/systemd/system/multi-user.target.wants/openvpn.service".
</strong></span></code></pre>
</blockquote>
<p><strong>Nota:</strong> A la hora de desactivar servicios del sistema hay que ser extremadamente cautelosos. Si se desactiva un servicio esencial puede darse el caso que nuestro sistema operativo deje de funcionar.</p>
<p>Si algún día precisarán usar algunos de los demonios deshabilitados, como por ejemplo <code>cups.service</code> y <code>cups-browsed.service</code> se podrían volver a levantar y habilitar del siguiente modo:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #333333;">❯ <span style="color: #0090d3;">sudo systemctl enable cups.service</span>
[sudo] contraseña para joan: 
Synchronizing state of cups.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cups
Created symlink /etc/systemd/system/printer.target.wants/cups.service → /lib/systemd/system/cups.service.
Created symlink /etc/systemd/system/multi-user.target.wants/cups.service → /lib/systemd/system/cups.service.
Created symlink /etc/systemd/system/sockets.target.wants/cups.socket → /lib/systemd/system/cups.socket.
Created symlink /etc/systemd/system/multi-user.target.wants/cups.path → /lib/systemd/system/cups.path.

❯ <span style="color: #0090d3;">sudo systemctl start cups.service
</span></span></strong></code></pre>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #333333;">❯ <span style="color: #0090d3;">sudo systemctl enable cups-browsed.service</span>
Synchronizing state of cups-browsed.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable cups-browsed
Created symlink /etc/systemd/system/multi-user.target.wants/cups-browsed.service → /lib/systemd/system/cups-browsed.service.</span></strong>

<strong><span style="color: #333333;">❯</span> <span style="color: #0090d3;">sudo systemctl start cups-browsed.service
</span></strong></code></pre>
</blockquote>
<p>Paralelamente he visto que el servicio de <code><span style="color: #0090d3;">anacron.service</span></code> está desactivado, y en mi caso lo quiero activar. Para ello ejecutaré el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #333333;">❯ <span style="color: #0090d3;">sudo systemctl enable anacron.service</span>
Synchronizing state of anacron.service with SysV service script with /lib/systemd/systemd-sysv-install.
Executing: /lib/systemd/systemd-sysv-install enable anacron
Created symlink /etc/systemd/system/multi-user.target.wants/anacron.service → /lib/systemd/system/anacron.service.

❯ <span style="color: #0090d3;">sudo systemctl start anacron.service
</span></span></strong></code></pre>
</blockquote>
<h3>COMPROBAR QUE LOS SERVICIOS SE HAN DESACTIVADO</h3>
<p>Una vez desactivados los servicios volveremos a ejecutar el comando <code><span style="color: #0090d3;">systemctl list-unit-files --type service --all</span></code> para verificar que sea así</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #333333;">UNIT FILE                                  STATE           PRESET  
avahi-daemon.service                       enabled         enabled 
blueman-mechanism.service                  enabled         enabled 
bluetooth.service                          enabled         enabled   
colord.service                             static          -       
configure-printer@.service                 static          -       
cups-browsed.service                       disabled        enabled 
cups.service                               disabled        enabled 
nordfileshared.service                     disabled        enabled 
nordvpn.service                            generated       -       
nordvpnd.service                           enabled         enabled 
openvpn-client@.service                    disabled        enabled 
openvpn-server@.service                    disabled        enabled 
openvpn.service                            disabled        enabled 
openvpn@.service                           disabled        enabled 
redsocks.service                           disabled        enabled 
rescue.service                             static          -       
....
</span></strong></code></pre>
</blockquote>
<p>Y efectivamente vemos que se han desactivado y activado los servicios según los comandos ejecutados anteriormente. De esta forma podremos optimizar el rendimiento de nuestra distribución Linux. Aparte de desactivar los servicios necesarios también es importante controlar a la perfección las aplicaciones que se levanta al iniciar el sistema operativo. Este último tema lo abordaremos en futuros artículos.</p>
<p>La entrada <a href="https://geekland.eu/como-desactivar-servicios-no-deseados-en-linux-con-systemd/">Cómo desactivar servicios no deseados en Linux con Systemd</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/como-desactivar-servicios-no-deseados-en-linux-con-systemd/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Establecer aplicaciones predeterminadas desde la terminal Linux</title>
		<link>https://geekland.eu/establecer-aplicaciones-predeterminadas-desde-la-terminal-linux/</link>
					<comments>https://geekland.eu/establecer-aplicaciones-predeterminadas-desde-la-terminal-linux/#comments</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sat, 05 Aug 2023 05:11:34 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Aplicaciones]]></category>
		<category><![CDATA[Configuración]]></category>
		<category><![CDATA[terminal]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=13941</guid>

					<description><![CDATA[<p>En mi caso he usado Firefox durante una larga temporada, no obstante por temas de rendimiento he decidido migrar a Brave Browser con el pequeño inconveniente que al usar el escritorio i3 no sabia como fijar Brave como navegador predeterminado. Al final he terminado haciendo uso de la terminal del siguiente modo que verán a &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/establecer-aplicaciones-predeterminadas-desde-la-terminal-linux/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Establecer aplicaciones predeterminadas desde la terminal Linux»</span></a></p>
<p>La entrada <a href="https://geekland.eu/establecer-aplicaciones-predeterminadas-desde-la-terminal-linux/">Establecer aplicaciones predeterminadas desde la terminal Linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">En mi caso he usado Firefox durante una larga temporada, no obstante por temas de rendimiento he decidido migrar a Brave Browser con el pequeño inconveniente que al usar el escritorio i3 no sabia como fijar Brave como navegador predeterminado. Al final he terminado haciendo uso de la terminal del siguiente modo que verán a continuación. Además también he aprovechado para configurar el resto de aplicaciones predeterminadas del sistema desde la terminal del modo que verán a continuación.<span id="more-13941"></span></p>
<p style="text-align: justify;"><strong>Nota:</strong> Los comandos que verán en es artículo han sido testeados en una distribución Debian. Es posible que en otras distribuciones algunos de los comandos no funcione.</p>
<h2>VER APLICACIONES PREDETERMINADAS DEL SISTEMA OPERATIVO</h2>
<p style="text-align: justify;">En el caso que quieran ver las aplicaciones predeterminadas de su sistema operativo pueden consultar el fichero <code><span style="color: #0090d3;">~/.config/mimeapps.list</span></code>. Para ello pueden ejecutar el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">cat ~/.config/mimeapps.list
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Una vez se abra el archivo encontrarán dos secciones:</p>
<ol style="text-align: justify;">
<li><strong>[Default Applications]:</strong> Se establecen las asociaciones predeterminadas de tipos MIME con las aplicaciones que se utilizarán para abrirlos.</li>
<li><strong>[Added Associations]:</strong> Se definen asociaciones adicionales para tipos MIME específicos, lo que permite personalizar o agregar asociaciones que no están predeterminadas.</li>
</ol>
<p style="text-align: justify;">Así por lo tanto, si quiero saber la aplicación predeterminada para abrir ficheros imágenes jpeg puedo consultar la sección <code><span style="color: #008000;">[Default Applications]</span></code> y veré lo siguiente:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;"><span style="color: #008000;">[Default Applications]</span>
x-scheme-handler/http=brave-browser.desktop
x-scheme-handler/https=brave-browser.desktop
text/plain=typora.desktop
image/jpeg=viewnior.desktop
image/png=viewnior.desktop
video/x-matroska=vlc.desktop
....
</span></code></pre>
</blockquote>
<p style="text-align: justify;">Por lo tanto puedo concluir que la totalidad de imágenes png y jpeg se abrirán con el visor de imágenes viewnior. Si os fijáis en el contenido de este fichero veremos que para establecer una aplicación por defecto hay que:</p>
<ol style="text-align: justify;">
<li>indicar el tipo de tipo de MIME/extensión.</li>
<li>Conocer el nombre del fichero.desktop del programa que queremos configurar como predeterminado.</li>
</ol>
<p style="text-align: justify;">Por lo tanto, a continuación verán como averiguar el nombre de los ficheros.desktop y como referirse a los distintas extensiones de archivo (MIME).</p>
<h2>AVERIGUAR EL NOMBRE DEL FICHERO.DESKTOP DE LOS PROGRAMAS</h2>
<p style="text-align: justify;">La totalidad de ficheros .desktop se almacenan en las ubicaciones:</p>
<ul>
<li><span style="color: #008000;">~/.local/share/applications/</span></li>
<li><span style="color: #ff0000;">/usr/share/applications/</span></li>
</ul>
<p style="text-align: justify;">Por lo tanto, para averiguar el nombre de los ficheros.desktop tan solo tendremos que ejecutar los comandos <code><span style="color: #0090d3;">ls <span style="color: #ff0000;">/usr/share/applications/</span></span></code> y <code><span style="color: #0090d3;">ls <span style="color: #008000;">~/.local/share/applications/</span></span></code> del siguiente modo:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;"><span style="color: #333333;">❯</span> ls <span style="color: #ff0000;">/usr/share/applications/</span></span>
<span style="color: #333333;">Permissions Size User Date Modified Name
.rw-r--r--   14k root 13 ene 14:52  atril.desktop
.rw-r--r--  4,1k root 30 abr 04:10  audacious.desktop
.rw-r--r--  7,3k root 17 mar  2022  bleachbit-root.desktop
.rw-r--r--  9,3k root 17 mar  2023 brave-browser.desktop
.rw-r--r--  3,4k root 23 jun  2021  redshift.desktop
.rw-r--r--  9,1k root 11 feb 16:56  synaptic.desktop
.rw-r--r--   308 root  5 abr  2022  syncthing-start.desktop
.rw-r--r--   324 root  5 abr  2022  syncthing-ui.desktop
.rw-r--r--  6,1k root  8 jul 12:02  thunderbird.desktop
.rw-r--r--   17k root 18 mar 03:26  transmission-gtk.desktop
.rw-rw-r--   288 root 19 may 12:11  typora.desktop
.rw-r--r--   15k root 15 jul 15:05  thunar.desktop
.rw-r--r--  2,5k root 16 ago  2021  viewnior.desktop
.rw-r--r--  5,6k root  4 jul 21:02  vim.desktop
.rw-r--r--   15k root 15 jul 15:05  vlc.desktop
.rw-r--r--   259 joan  2 ago  2022  wechat.desktop
...
</span></code></pre>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;"><span style="color: #333333;">❯</span> ls <span style="color: #008000;">~/.local/share/applications/</span></span>
<span style="color: #333333;">Permissions Size User Date Modified Name
.rw-r--r--   192 joan  2 ago  2022  Freezer.desktop
.rw-r--r--     0 joan 31 mar 00:08  mimeapps.list
.rw-r--r--    13 joan 29 ene 20:48  mimeinfo.cache
.rw-------   168 joan 17 sep  2022  userapp-Firefox-5OEZS1.desktop
.rw-------   151 joan 17 sep  2022  userapp-Firefox-78R9W0.desktop
.rw-------   154 joan 29 ene 20:48  userapp-viewnior-MXAVZ1.desktop
.rwx--x--x   225 joan 31 jul  2022  wechat.desktop
...
</span></code></pre>
</blockquote>
<p style="text-align: justify;">Una vez conocemos el nombre del fichero.desktop del programa queremos como predeterminado tendremos que averiguar como referirnos a una determinada extensión de archivo.</p>
<h2>AVERIGUAR COMO REFERIRSE A LAS DISTINTAS EXTENSIONES DE ARCHIVO</h2>
<p style="text-align: justify;">En el mundo de la tecnología y Linux, encontramos una gran diversidad de tipos de archivos (MIME), los cuales pueden variar según la distribución que estemos utilizando. Además, con el tiempo pueden surgir nuevos formatos de archivo que debemos conocer. Si utilizan Debian o cualquier otra distribución Linux, podrán acceder a una lista de los tipos MIME registrados en el directorio <code><span style="color: #008000;">/usr/share/mime/packages/</span></code>. Para ello tendrán que ejecutar el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">cat <span style="color: #008000;">/usr/share/mime/packages/</span>*.xml | grep "type=\"[^ ]*\"" | sed 's/.*type="\(.*\)".*/\1/' | sort | uniq
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Algunos de los MIME o tipos de archivo que encontrarán serán los siguientes:</p>
<figure class="table-figure">
<table>
<thead>
<tr>
<th>MIME</th>
<th>EXPLICACIÓN</th>
</tr>
</thead>
<tbody>
<tr>
<td><code><span style="color: #0090d3;">text/plain</span></code></td>
<td>Para referirse a ficheros de texto plano</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">text/html</span></code></td>
<td>Ficheros con extensión html</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">text/markdown</span></code></td>
<td>Ficheros con extensión markdown</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">image/jpeg</span></code></td>
<td>Imágenes jpeg</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">image/png</span></code></td>
<td>Archivo de imagen con la extensión png</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">image/webp</span></code></td>
<td>Archivo de imagen con la extensión webp</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">audio/mp3</span></code></td>
<td>Sonido con la extensión .mp3</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">audio/ogg</span></code></td>
<td>Sonido con la extensión .ogg</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">audio/wav</span></code></td>
<td>Audio con la extensión .wav</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">audio/flac</span></code></td>
<td>Sonido con la extensión .flac</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">video/mp4</span></code></td>
<td>Archivo de vídeo con la extensión .mp4</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">video/webm</span></code></td>
<td>Vídeos con extensión .webm</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">video/x-matroska</span></code></td>
<td>Vídeos con extensión .mkv</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">application/json</span></code></td>
<td>Ficheros .json</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">application/epub+zip</span></code></td>
<td>Archivos con extensión .epub</td>
</tr>
<tr>
<td><code><span style="color: #0090d3;">application/pdf</span></code></td>
<td>Se refiere a ficheros con extensión .pdf</td>
</tr>
</tbody>
</table>
</figure>
<p style="text-align: justify;">Otra forma alternativa de averiguar como referirse a un determinado tipo de archivo es mediante un fichero que de muestra. Imaginemos que tenemos el fichero pdf <code><span style="color: #008000;">Factura 202209_Joan Carles.pdf</span></code>. Si a partir de este fichero queremos saber como referirnos a un archivo con extensión .pdf tendremos que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;"><strong><span style="color: #333333;">❯</span> mimetype '<span style="color: #008000;">/home/joan/Descargas/Factura 202209_Joan Carles.pdf</span>'
<span style="color: #333333;">/home/joan/Descargas/Factura 202209_Joan Carles.pdf: <span style="color: #0000ff;">application/pdf
</span></span></strong></span></code></pre>
</blockquote>
<p style="text-align: justify;">Si miran la salida verán es que que el resultado es <code><span style="color: #0000ff;">application/pdf</span></code></p>
<p style="text-align: justify;"><strong>Nota:</strong> Un comando alternativo al último que acabamos de ver seria <code><span style="color: #0090d3;">xdg-mime query filetype '<span style="color: #008000;">Factura 202209_Joan Carles.pdf</span>'</span></code></p>
<h2>VER LA APLICACIÓN PREDETERMINADA PARA ABRIR UN DETERMINADO TIPOS DE FICHERO</h2>
<p style="text-align: justify;">Ahora que conocemos como referirse a un tipo de fichero podemos averiguar fácilmente la aplicación que tenemos predeterminada para abrir un determinado fichero. En el apartado anterior hemos visto que para referirse a un archivo .pdf tenemos que usar:</p>
<pre><code class="language-shell" lang="shell"><span style="color: #0000ff;">application/pdf
</span></code></pre>
<p style="text-align: justify;">Por lo tanto para averiguar la aplicación asociada a la extensión .pdf ejecutaremos el siguiente comando en la terminal:</p>
<blockquote>
<pre><code><span style="color: #0090d3;"><strong><span style="color: #333333;">❯</span> xdg-mime query default <span style="color: #0000ff;">application/pdf</span>
<span style="color: #ff00ff;">atril.desktop
</span></strong></span></code></pre>
</blockquote>
<p style="text-align: justify;">Y veremos que en mi caso la totalidad de archivos .pdf se abrirán con la aplicación Atril.</p>
<h2>ESTABLECER APLICACIONES PREDETERMINADAS DESDE LA TERMINAL EN LINUX</h2>
<p style="text-align: justify;">A continuación, mostraré cómo establecer programas predeterminados en GNU/Linux a través de una serie de ejemplos prácticos.</p>
<h3>Definir el navegador predeterminado desde la terminal</h3>
<p style="text-align: justify;">En estos momentos tengo Firefox como navegador predeterminado:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-settings get default-web-browser
<span style="color: #ff00ff;">firefox.desktop
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si quiero reemplazar Brave por Firefox tan solo tendré que ejecutar en comando del siguiente tipo:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #ff00ff;"><strong><span style="color: #0090d3;">xdg-settings set default-web-browser</span> &lt;fichero.desktop&gt;
</strong></span></code></pre>
</blockquote>
<p style="text-align: justify;">Según lo visto en apartados anteriores el fichero.desktop de Brave es <code><span style="color: #ff00ff;">brave-browser.desktop</span></code>. Por lo tanto el comando a ejecutar para establecer Brave como el navegador predeterminado es:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">xdg-settings set default-web-browser <span style="color: #ff00ff;">brave-browser.desktop
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si ahora vuelvo a ejecutar el comando para ver el navegador por defecto vemos que es Brave.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #ff00ff;"><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-settings get default-web-browser</span>
brave-browser.desktop
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Otra forma alternativa de realizar lo que hemos visto en este apartado seria ejecutar los siguientes comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">xdg-mime default <span style="color: #ff00ff;">brave-browser.desktop</span> x-scheme-handler/http
xdg-mime default <span style="color: #ff00ff;">brave-browser.desktop</span> x-scheme-handler/http</span><span style="color: #0090d3;">s
</span></strong></code></pre>
</blockquote>
<h3>Definir el lector de PDF predeterminado desde la terminal</h3>
<p style="text-align: justify;">En apartados anteriores vimos que para referirse a un fichero .pdf tenemos que usar:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0000ff;">application/pdf
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si queremos abrir los pdf con el software Atril tendremos que mirar el nombre de su fichero.desktop. Si seguimos las instrucciones de apartados anteriores veremos que el nombre es:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #ff00ff;"><strong>atril.desktop
</strong></span></code></pre>
</blockquote>
<p style="text-align: justify;">Por lo tanto, para que todos los ficheros .pdf se abran con Atril ejecutaré el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime default <span style="color: #ff00ff;">atril.desktop</span> <span style="color: #0000ff;">application/pdf
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si ahora ejecutamos el siguiente comando comprobaremos que el lector predeterminado de ficheros pdf es Atril.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime query default <span style="color: #0000ff;">application/pdf</span>
<span style="color: #ff00ff;">atril.desktop
</span></span></strong></code></pre>
</blockquote>
<h3>Configurar el gestor de ficheros predeterminado desde la terminal</h3>
<p style="text-align: justify;">A forma de curiosidad miraremos el gestor de ficheros predeterminado de mi sistema operativo ejecutando el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime query default <span style="color: #0000ff;">inode/directory</span>
<span style="color: #ff00ff;">org.xfce.Catfish.desktop
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Según la salida obtenida, el gestor de ficheros es Catfish. Obviamente esto es incorrecto y hay que corregirlo. En mi caso quiero que el gestor de ficheros predeterminado de mi sistema operativo sea Thunar. En apartados anteriores vimos que el fichero.desktop de Thunar es <code><span style="color: #ff00ff;">thunar.desktop</span></code>. Por lo tanto el comando que usaré para que Thunar sea mi gestor de ficheros predeterminados es el siguiente:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime default <span style="color: #ff00ff;">thunar.desktop</span> <span style="color: #0000ff;">inode/directory
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si ahora volvemos a ejecutar el mismo comando que ejecutamos al inicio de este apartado veremos que el gestor de ficheros predeterminado es Thunar.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime query default <span style="color: #0000ff;">inode/directory</span>
<span style="color: #ff00ff;">thunar.desktop
</span></span></strong></code></pre>
</blockquote>
<h3>Definir el cliente de email predeterminado desde la terminal</h3>
<p style="text-align: justify;">En mi caso quiero que el cliente de email predeterminado sea Thunderbird. Lo primero que tenemos que realizar es averiguar el fichero.desktop de Thunderbird que en mi caso es <code><span style="color: #ff00ff;">thunderbird.desktop</span></code>. Una vez conocemos esto ejecutaremos el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-settings set default-url-scheme-handler mailto <span style="color: #ff00ff;">thunderbird.desktop
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Para comprobar que el cliente predeterminado sea Thunderbird lo haremos del siguiente modo:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime query default x-scheme-handler/mailto
<span style="color: #ff00ff;">thunderbird.desktop
</span></span></strong></code></pre>
</blockquote>
<h3>Configurar el cliente predeterminado para reproducir vídeo desde la terminal</h3>
<p style="text-align: justify;">Para configurar que las extensiones más populares de archivos de vídeo se reproduzcan mediante MPV procederemos del siguiente modo:</p>
<ul style="text-align: justify;">
<li>El fichero.desktop de MPV es <code><span style="color: #ff00ff;">mpv.desktop</span></code></li>
<li>El modo de referirnos a las extensiones de vídeo más populares es <code><span style="color: #0000ff;">video/x-matroska video/x-flv video/ogg video/webm video/mpeg video/mp4 video/flv video/avi</span></code></li>
</ul>
<p style="text-align: justify;">Por lo tanto el comando que tendremos que ejecutar para conseguir nuestro propósito es:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime default <span style="color: #ff00ff;">mpv.desktop</span> <span style="color: #0000ff;">video/x-matroska video/x-flv video/ogg video/webm video/mpeg video/mp4 video/flv video/avi
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">El comando que acabamos de ejecutar asocia una serie de formatos de archivo al reproductor MPV. En vuestro caso podéis añadir más extensiones de archivo.</p>
<h3>Configurar el visor de imágenes predeterminado desde la terminal</h3>
<p style="text-align: justify;">Al igual que hicimos anteriormente tenemos que conocer el nombre del fichero.desktop del programa que queremos usar como predeterminado y saber como definir los diferentes formatos de fichero. En mi caso:</p>
<ul style="text-align: justify;">
<li>El nombre del fichero.desktop es <strong><span style="color: #ff00ff;">viewnior.desktop</span></strong></li>
<li>Los formatos de archivo que quiero que se abran el con visor viewnior son <strong><span style="color: #0000ff;">image/jpeg, image/png y image/webp</span></strong></li>
</ul>
<p style="text-align: justify;">Por lo tanto el comando a ejecutar es el siguiente:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> xdg-mime default <span style="color: #ff00ff;">viewnior.desktop</span> <span style="color: #0000ff;">image/jpeg image/png image/webp
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">De este modo cualquier fichero de imagen que tenga la extensión jpeg, png o webp se abrirá con viewnior.</p>
<h3>Hacer que LibreOffice sea nuestra suite ofimática predeterminada desde la terminal</h3>
<p style="text-align: justify;">En el caso que tengáis varias aplicaciones ofimáticas es posible que os interese establecer Libreoffice para abrir los ficheros con extensión odt, ods, odp, odg y odf de forma predeterminada. Para ello tan solo tendrán que ejecutar los siguientes comandos en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;">xdg-mime default <span style="color: #ff00ff;">libreoffice-writer.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.text</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-writer.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.text-template</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-calc.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.spreadsheet</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-calc.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.spreadsheet-template</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-impress.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.presentation</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-impress.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.presentation-template</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-draw.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.graphics</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-draw.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.graphics-template</span>
xdg-mime default <span style="color: #ff00ff;">libreoffice-math.desktop</span> <span style="color: #0000ff;">application/vnd.oasis.opendocument.formula
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">A partir de esto momentos todos los ficheros que tengan una extensión de archivo OpenDocument se abrirán con LibreOffice.</p>
<h3>Establecer el emulador de terminal predeterminado</h3>
<p style="text-align: justify;">En el caso que tengamos varios emuladores de terminal disponibles es interesante establecer un emulador de terminal predeterminado. Para ello tendremos que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> sudo update-alternatives --config x-terminal-emulator
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Una vez ejecutado el comando saldrán todos los emuladores de terminal disponibles. En mi caso quiero que el emulador de terminal predeterminado sea Kitty, por lo tanto, tal y como se muestra a continuación escribiré <code><span style="color: #0090d3;">1</span></code> y presionaré la tecla Enter.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> sudo update-alternatives --config x-terminal-emulator
</span></strong><span style="color: #333333;">[sudo] contraseña para joan: 
Existen 9 opciones para la alternativa x-terminal-emulator (que provee /usr/bin/x-terminal-emulator).

  Selección   Ruta                             Prioridad  Estado
------------------------------------------------------------
<span style="color: #0090d3;">*</span> 0            /usr/bin/xfce4-terminal.wrapper   40        modo automático
  1            /usr/bin/kitty                    20        modo manual
  2            /usr/bin/koi8rxterm               20        modo manual
  3            /usr/bin/lxterm                   30        modo manual
  4            /usr/bin/mlterm                   20        modo manual
  5            /usr/bin/txiterm                  20        modo manual
  6            /usr/bin/uxterm                   20        modo manual
  7            /usr/bin/xfce4-terminal.wrapper   40        modo manual
  8            /usr/bin/xiterm+thai              20        modo manual
  9            /usr/bin/xterm                    20        modo manual

Pulse &lt;Intro&gt; para mantener el valor por omisión [*] o pulse un número de selección: <span style="color: #0090d3;">1
</span></span></code></pre>
</blockquote>
<p style="text-align: justify;">A partir de estos momento el emulador de terminal predeterminado es Kitty.</p>
<h3>Configurar el editor de texto predeterminado desde la terminal</h3>
<p style="text-align: justify;">Del mismo modo que configuramos el emulador de terminal podemos configurar el editor de texto predeterminado. Para ello ejecutaremos el siguiente comando en al terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> sudo update-alternatives --config editor
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Una vez ejecutado el comando saldrán todos los editores de texto disponibles. En mi caso quiero que el editor texto predeterminado sea Vim, por lo tanto, tal y como se muestra a continuación escribiré 0 y presionaré la tecla Enter.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;"><span style="color: #333333;">❯</span> sudo update-alternatives --config editor
</span></strong><span style="color: #333333;">Existen 5 opciones para la alternativa editor (que provee /usr/bin/editor).

  Selección   Ruta                Prioridad  Estado
------------------------------------------------------------
<span style="color: #0090d3;">*</span> 0            /usr/bin/vim.gtk3    50        modo automático
  1            /bin/nano            40        modo manual
  2            /usr/bin/vim.basic   30        modo manual
  3            /usr/bin/vim.gtk3    50        modo manual
  4            /usr/bin/vim.nox     40        modo manual
  5            /usr/bin/vim.tiny    15        modo manual

Pulse &lt;Intro&gt; para mantener el valor por omisión [*] o pulse un número de selección: <span style="color: #0090d3;">0</span></span></code></pre>
</blockquote>
<p style="text-align: justify;">A partir de este momento el editor de texto predeterminado es Vim.</p>
<h2>MÉTODO ALTERNATIVO PARA CONFIGURAR LAS APLICACIONES PREDETERMINADAS DESDE LA TERMINAL</h2>
<p style="text-align: justify;">Un método alternativo a los vistos en este artículo es editar directamente el fichero <code><span style="color: #0090d3;">~/.config/mimeapps.list</span></code>. Si abren y editan este ficheros también podrá configurar gran parte de las aplicaciones determinadas de sus sistema operativo</p>
<h2>CONCLUSIONES</h2>
<p style="text-align: justify;">A lo largo de este artículo, hemos visto cómo podemos configurar las aplicaciones predeterminadas de nuestro sistema operativo desde la terminal mediante tres útiles comandos:</p>
<ol style="text-align: justify;">
<li><strong>xdg-settings:</strong> Este comando nos permite establecer las aplicaciones predeterminadas para actividades como abrir enlaces, correos electrónicos, y más, de una manera sencilla y eficiente.</li>
<li><strong>xdg-mime:</strong> Con esta herramienta, podemos gestionar las asociaciones de tipos MIME, permitiéndonos asignar qué aplicaciones deben abrir diferentes tipos de archivos de forma predeterminada.</li>
<li><strong>update-alternatives:</strong> A través de este comando, podemos seleccionar y cambiar entre distintas versiones de un programa o comando, definiendo cuál será el que se utilizará por defecto en el sistema.</li>
</ol>
<p style="text-align: justify;">Configurar las aplicaciones predeterminadas desde la terminal puede ser una opción poderosa y versátil para usuarios avanzados y administradores de sistemas, brindando un mayor control sobre la experiencia del usuario y la eficiencia del sistema en general. ¡Esperamos que estas herramientas te sean de utilidad en tu día a día con GNU/Linux!</p>
<h3>Fuentes</h3>
<p><a class="url" href="https://wiki.archlinux.org/title/XDG_MIME_Applications#mimeapps.list" target="_blank" rel="noopener">https://wiki.archlinux.org/title/XDG_MIME_Applications#mimeapps.list</a></p>
<p>La entrada <a href="https://geekland.eu/establecer-aplicaciones-predeterminadas-desde-la-terminal-linux/">Establecer aplicaciones predeterminadas desde la terminal Linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/establecer-aplicaciones-predeterminadas-desde-la-terminal-linux/feed/</wfw:commentRss>
			<slash:comments>1</slash:comments>
		
		
			</item>
		<item>
		<title>Configurar la pantalla del ordenador con xrandr en Linux</title>
		<link>https://geekland.eu/configurar-la-pantalla-del-ordenador-con-xrandr-en-linux/</link>
					<comments>https://geekland.eu/configurar-la-pantalla-del-ordenador-con-xrandr-en-linux/#comments</comments>
		
		<dc:creator><![CDATA[Joan Carles]]></dc:creator>
		<pubDate>Sun, 16 Jul 2023 05:13:15 +0000</pubDate>
				<category><![CDATA[Linux]]></category>
		<category><![CDATA[Configuración]]></category>
		<category><![CDATA[pantalla]]></category>
		<category><![CDATA[xrandr]]></category>
		<guid isPermaLink="false">https://geekland.eu/?p=13930</guid>

					<description><![CDATA[<p>En el mundo actual, tener una pantalla correctamente configurada es esencial para una experiencia informática óptima. Ya sea que esté utilizando un solo monitor o una configuración de múltiples monitores, la utilidad xrandr es una herramienta poderosa que puede ayudarlo a configurar la pantalla en un sistema Linux que ejecuta el servidor gráfico X.Org. En &#8230; </p>
<p class="link-more"><a href="https://geekland.eu/configurar-la-pantalla-del-ordenador-con-xrandr-en-linux/" class="more-link">Seguir leyendo<span class="screen-reader-text"> «Configurar la pantalla del ordenador con xrandr en Linux»</span></a></p>
<p>La entrada <a href="https://geekland.eu/configurar-la-pantalla-del-ordenador-con-xrandr-en-linux/">Configurar la pantalla del ordenador con xrandr en Linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p style="text-align: justify;">En el mundo actual, tener una pantalla correctamente configurada es esencial para una experiencia informática óptima. Ya sea que esté utilizando un solo monitor o una configuración de múltiples monitores, la utilidad xrandr es una herramienta poderosa que puede ayudarlo a configurar la pantalla en un sistema Linux que ejecuta el servidor gráfico X.Org. En este artículo de blog, detallaremos como podemos usar la utilidad xrandr para configurar la pantalla o pantallas de su ordenador.<span id="more-13930"></span></p>
<h2>¿QUÉ ES XRANDR?</h2>
<p style="text-align: justify;">Xrandr es una utilidad de línea de comandos <strong>para el sistema X org</strong> que permite administrar la configuración de su pantalla. Algunos de los parámetros de nuestro monitor que permite configurar son:</p>
<ol style="text-align: justify;">
<li>La resolución.</li>
<li>La orientación.</li>
<li>La frecuencia.</li>
<li>El escalado.</li>
<li>El brillo.</li>
<li>El parámetro gamma.</li>
<li>etc.</li>
</ol>
<p style="text-align: justify;">Es particularmente útil para configurar múltiples monitores y configuraciones de pantalla personalizadas en administradores de ventanas como i3 o en entornos de escritorio que usen el servidor gráfico Xorg.</p>
<h2>¿CUANDO PODEMOS USAR LA UTILIDAD XRANDR PARA CONFIGURAR LA PANTALLA?</h2>
<p style="text-align: justify;">Siempre y cuando uséis el servidor gráfico X org podréis usar Xrandr. En el caso que uséis un escritorio con el servidor gráfico Wayland tendréis que usar la utilidad wlr-randr.</p>
<h2>OBTENER INFORMACIÓN DEL MONITOR O PANTALLA</h2>
<p style="text-align: justify;">Antes de configurar nuestro monitor tenemos que tener claras sus características y especificaciones. De esta forma podremos extraer el máximo rendimiento. En mi caso después de investigar en las especificaciones de mi monitor y en Internet he llegado a las siguientes conclusiones:</p>
<ol style="text-align: justify;">
<li>Resolución máxima de mi monitor es de <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span></li>
<li>La Frecuencia máxima de mi monitor es <span style="color: #0000ff;" data-darkreader-inline-color="">144Hz</span></li>
<li>Los DPI ideales de mi monitor son <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span>.</li>
</ol>
<p style="text-align: justify;"><strong>Nota:</strong> Los DPI ideales vienen determinados por el tamaño y la resolución del monitor. En mi caso el monitor que tengo es de 27&#8243; y la resolución máxima es de <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span>. Por lo tanto si visitan la siguiente <a href="https://dpi.lv/" target="_blank" rel="noopener">página Web</a> verán que el número ideal es de <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span>.</p>
<h2>OBTENER INFORMACIÓN DE COMO EL SISTEMA OPERATIVO RECONOCE NUESTRO MONITOR</h2>
<p style="text-align: justify;">Mediante el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr</span></code> obtendremos información la siguiente información:</p>
<ol style="text-align: justify;">
<li>Nombre con que se reconocen los monitores conectados a nuestro ordenador.</li>
<li>Nombre del puerto en el que está conectado nuestro monitor.</li>
<li>Resoluciones y frecuencias disponibles en cada uno de nuestros monitores.</li>
<li>La resolución y frecuencia actual de nuestro monitor.</li>
</ol>
<p style="text-align: justify;">Para obtener la información que acabamos de citar tan solo tenemos que ejecutar el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">xrand</span></code> del siguiente modo.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr
<span style="color: #808080;" data-darkreader-inline-color="">Screen 0: minimum 320 x 200, current <span style="color: #ff0000;" data-darkreader-inline-color="">1920 x 1080</span>, maximum 16384 x 16384
<span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span>     <span style="color: #0000ff;" data-darkreader-inline-color="">60.00*+</span> 144.00   120.00   119.88   119.98    74.97    50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1280x1024     75.02    60.02  
   1280x720      60.00    50.00    59.94  
   1024x768     119.99    99.97    75.03    70.07    60.00  
   832x624       74.55  
   800x600      119.97    99.99    72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480      119.99   100.00    75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
HDMI-2 disconnected (normal left inverted right x axis y axis)
</span></span></code></pre>
</blockquote>
<p style="text-align: justify;">Después de ver la salida del comando llegamos a las siguientes conclusiones:</p>
<ol style="text-align: justify;">
<li>El monitor se reconoce con el nombre <code><span style="color: #0090d3;" data-darkreader-inline-color="">Screen 0</span></code>. Únicamente tengo un monitor.</li>
<li>El monitor se comunica con nuestro ordenador mediante el puerto <code><span style="color: #0090d3;" data-darkreader-inline-color="">HDMI-1</span></code></li>
<li>La resolución máxima que puedo utilizar es <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span>. Además ya tengo configurado el sistema operativo para que pueda usar al resolución máxima</li>
<li>La frecuencia de actualización que estoy usando es 60Hz. Pero veo que la frecuencia máxima que puede usar mi monitor de es de <span style="color: #0000ff;" data-darkreader-inline-color="">144Hz</span>.</li>
</ol>
<p style="text-align: justify;">A continuación ejecutaremos el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">xdpyinfo | grep -B2 resolution</span></code> para ver los los puntos por pulgada (DPI) de nuestro monitor.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xdpyinfo | grep -B2 resolution
<span style="color: #808080;" data-darkreader-inline-color="">screen #0:
  dimensions:    1920x1080 pixels (508x285 millimeters)
  resolution:    <span style="color: #ff00ff;" data-darkreader-inline-color="">96</span>x<span style="color: #ff00ff;" data-darkreader-inline-color="">96</span> dots per inch
</span></span></code></pre>
</blockquote>
<p style="text-align: justify;">Tal y como pueden en la salida del comando estoy usando <span style="color: #ff00ff;" data-darkreader-inline-color="">96</span> DPI.</p>
<h2>CONFIGURAR LA RESOLUCIÓN DE LA PANTALLA</h2>
<p style="text-align: justify;">Acabamos de ver que mi monitor tiene y está usando una resolución de <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span>. Por lo tanto estoy usando la resolución máxima y no sería necesario configurar este parámetro. No obstante si lo quieren hacer tan solo tiene que ejecutar un comando del siguiente tipo:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">SALIDA_DEL_MONITOR</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">ANCHOxALTO
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Por lo tanto para configurar la resolución a <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span> tendré que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;" data-darkreader-inline-color=""><strong><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span>
</strong></span></code></pre>
</blockquote>
<h2>CONFIGURAR LA FRECUENCIA DEL MONITOR</h2>
<p style="text-align: justify;">Anteriormente hemos visto que la frecuencia con la que está trabajando nuestro monitor es 60Hz. En mi caso quiere que trabaje a la frecuencia máxima de <span style="color: #0000ff;" data-darkreader-inline-color="">144Hz</span> y a una resolución de <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span>. Para ello ejecutaré un comando del siguiente tipo</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">SALIDA_DEL_MONITOR</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">ANCHOxALTO</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">FRECUENCIA_DESEADA
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Por lo tanto en mi caso tendré que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si ahora volvemos a ejecutar el comando xrandr podremos ver que efectivamente estamos usando una frecuencia de <span style="color: #0000ff;" data-darkreader-inline-color="">144Hz</span>.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr -q
<span style="color: #808080;" data-darkreader-inline-color="">Screen 0: minimum 320 x 200, current <span style="color: #ff0000;" data-darkreader-inline-color="">1920 x 1080</span>, maximum 16384 x 16384
<span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> connected primary 1920x1080+0+0 (normal left inverted right x axis y axis) 597mm x 336mm
   <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span>     60.00 <span style="color: #0000ff;" data-darkreader-inline-color="">+ 144.00*</span>  120.00   119.88   119.98    74.97    50.00    59.94  
   1920x1080i    60.00    50.00    59.94  
   1280x1024     75.02    60.02  
   1280x720      60.00    50.00    59.94  
   1024x768     119.99    99.97    75.03    70.07    60.00  
   832x624       74.55  
   800x600      119.97    99.99    72.19    75.00    60.32    56.25  
   720x576       50.00  
   720x480       60.00    59.94  
   640x480      119.99   100.00    75.00    72.81    66.67    60.00    59.94  
   720x400       70.08  
HDMI-2 disconnected (normal left inverted right x axis y axis)
</span></span></code></pre>
</blockquote>
<p style="text-align: justify;">Una frecuencia de <span style="color: #0000ff;" data-darkreader-inline-color="">144 Hz</span> no ofrece ventajas significativas en el caso que se realicen tareas ofimáticas y el consumo de energía del monitor será mayor. No obstante prefiero usar <span style="color: #0000ff;" data-darkreader-inline-color="">144 Hz</span> porque el parpadeo de la pantalla que percibirá nuestro ojo será menor y por lo tanto ayudará a disminuir la fatiga visual.</p>
<h2>MODIFICAR LOS DPI DE NUESTRO MONITOR</h2>
<p style="text-align: justify;">Vimos que los DPI de nuestro monitor son <span style="color: #ff00ff;" data-darkreader-inline-color="">96</span>. El número ideal es de <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span>. Para cambiar este parámetro y además asegurar que tenemos una resolución de <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span> y una frecuencia de <span style="color: #0000ff;" data-darkreader-inline-color="">144 Hz</span> tendremos que ejecutar un comando del siguiente tipo:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">SALIDA_DEL_MONITOR</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">ANCHOxALTO</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">FRECUENCIA_DESEADA</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">NUMERO_DE_DPI
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Por lo tanto tendré que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">82
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si ahora ejecuto el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">xdpyinfo | grep -B2 resolution</span></code> veré que efectivamente los DPI son <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span>.</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xdpyinfo | grep -B2 resolution
<span style="color: #808080;" data-darkreader-inline-color="">screen #0:
  dimensions:    1920x1080 pixels (594x334 millimeters)
  resolution:    <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span>x<span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> dots per inch
</span></span></strong></code></pre>
</blockquote>
<h2>MODIFICAR EL ESCALADO O FACTOR DE ESCALA DE NUESTRO MONITOR</h2>
<p style="text-align: justify;">Si la imagen mostrada por el monitor es demasiado grande o demasiado pequeña puede ser recomendable realizar un escalado. El escalado se puede realizar tanto en el eje de las X como en el eje de las Y.</p>
<p style="text-align: justify;">Para mantener la configuración anterior y realizar un escalado podemos aplicar un comando del siguiente tipo:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">SALIDA_DEL_MONITOR</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">ANCHOxALTO</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">FRECUENCIA_DESEADA</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">NUMERO_DE_DPI</span> --scale <span style="color: #cc99ff;" data-darkreader-inline-color="">ESCALADO_X</span>x<span style="color: #cc99ff;" data-darkreader-inline-color="">ESCALADO_Y
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Como en mi caso no quiero ejecutar ningún tipo de escalado uso el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> --scale <span style="color: #cc99ff;" data-darkreader-inline-color="">1</span>x<span style="color: #cc99ff;" data-darkreader-inline-color="">1
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;"><strong>Nota:</strong> En el caso que quisieran disminuir el tamaño de los objetos mostrados en pantalla podrían ejecutar el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> --scale <span style="color: #cc99ff;" data-darkreader-inline-color="">1.1</span>x<span style="color: #cc99ff;" data-darkreader-inline-color="">1.1</span></span></code>. En el caso que los quisieran incrementar <code><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> --scale <span style="color: #cc99ff;" data-darkreader-inline-color="">0.9</span>x<span style="color: #cc99ff;" data-darkreader-inline-color="">0.9</span></span></code></p>
<h2>¿CÓMO ROTAR LA PANTALLA CON XRANDR?</h2>
<p style="text-align: justify;">Puede darse el caso que alguien tenga que rotar el monitor 90, 180 o 270º. Para ello tan solo tendrán que usar el parámetro <code><span style="color: #0090d3;" data-darkreader-inline-color="">rotate</span></code> del siguiente modo:</p>
<p style="text-align: justify;">Para girar el monitor 90 grados hacia la derecha tan solo tendrán que ejecutar el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --rotate <span style="color: #800080;" data-darkreader-inline-color="">right
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Si quieren volver a la ortientación estándard tendrán que ejecutar el comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --rotate <span style="color: #800080;" data-darkreader-inline-color="">normal
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Otros valores que puede tomar el parámetro <code><span style="color: #0090d3;" data-darkreader-inline-color="">rotate</span></code> son <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #800080;" data-darkreader-inline-color="">left</span></span></code> e <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #800080;" data-darkreader-inline-color="">inverted</span></span></code></p>
<h2>CAMBIAR EL BRILLO Y EL PARÁMETRO GAMMA DE LA PANTALLA</h2>
<p style="text-align: justify;">En principio el brillo de monitor me gusta y por lo tanto lo dejaré tal cual con el valor 1. No obstante en mi caso me gustaría tener un pelín más de contraste y un tono más oscuro. Por lo tanto fijaré el valor de gamma en <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #ff6600;" data-darkreader-inline-color="">0.9</span></span></code>. Para hacer lo que acabo de citar tendré que ejecutar el siguiente comando en la terminal:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;" data-darkreader-inline-color=""><strong><span style="color: #808080;" data-darkreader-inline-color="">❯</span> xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --brightness <span style="color: #ff6600;" data-darkreader-inline-color="">1</span> --gamma <span style="color: #ff6600;" data-darkreader-inline-color="">0.9
</span></strong></span></code></pre>
</blockquote>
<p style="text-align: justify;">Si no les gusta el resultado obtenido pueden experimentar con otros valores de brillo y gamma.</p>
<h2>CONFIGURAR LA PANTALLA EN CASO DE TENER MÚLTIPLES MONITORES</h2>
<p style="text-align: justify;">También podemos usar xrandr en el caso que tengamos más de un monitor. Supongamos que tenemos los siguientes monitores:</p>
<ol>
<li style="text-align: justify;">Monitor conectado al puerto DP-1: <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span>, <span style="color: #0000ff;" data-darkreader-inline-color="">144 Hz</span>, <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> dpi</li>
<li style="text-align: justify;">Monitor conectado al puerto HDMI-1: <span style="color: #ff0000;" data-darkreader-inline-color="">1920&#215;1080</span>, <span style="color: #0000ff;" data-darkreader-inline-color="">144 Hz</span>, <span style="color: #ff00ff;" data-darkreader-inline-color="">96</span> dpi</li>
</ol>
<h3>Configurar la pantalla principal o primaria</h3>
<p style="text-align: justify;">En el caso que tengan 2 monitores lo primero que tendrán que realizar es configurar el monitor principal o primario. En mi caso quiero que le monitor conectado el Display port 1 (DP-1) sea el principal. Por lo tanto ejecutaré el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">❯ xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">DP-1</span> --primary
</span></strong></code></pre>
</blockquote>
<p style="text-align: justify;">Acto seguido configuraremos su resolución, frecuencia y DPI ejecutando el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">❯ xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">DP-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> --scale <span style="color: #cc99ff;" data-darkreader-inline-color="">1</span>x<span style="color: #cc99ff;" data-darkreader-inline-color="">1
</span></span></strong></code></pre>
</blockquote>
<h3>Configurar el monitor o pantalla secundaria</h3>
<p style="text-align: justify;">Acto seguido configuraremos el monitor secundario que es el que está conectado al puerto <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span></span></code>. El monitor secundario tendrá una resolución de 1920&#215;1080, una frecuencia de <span style="color: #0000ff;" data-darkreader-inline-color="">144Hz</span> y <span style="color: #ff00ff;" data-darkreader-inline-color="">96</span> dpi. Como el monitor secundario <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span></span></code> está a la derecha del monitor principal <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #008000;" data-darkreader-inline-color="">DP-1</span></span></code> ejecutaré el siguiente comando:</p>
<blockquote>
<pre><code class="language-shell" lang="shell"><strong><span style="color: #0090d3;" data-darkreader-inline-color="">❯ xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">96</span> --scale <span style="color: #cc99ff;" data-darkreader-inline-color="">1</span>x<span style="color: #cc99ff;" data-darkreader-inline-color="">1</span> <span style="color: #000000;" data-darkreader-inline-color="">--right-of</span> <span style="color: #008000;" data-darkreader-inline-color="">DP-1
</span></span></strong></code></pre>
</blockquote>
<p style="text-align: justify;"><strong>Nota:</strong> El parámetro <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #000000;" data-darkreader-inline-color="">--right-of</span></span></code> indica la posición del monitor secundario respecto al principal. Otros parámetros alternativos a <code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #000000;" data-darkreader-inline-color="">--right-of</span></span></code> son:</p>
<ul>
<li><code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #000000;" data-darkreader-inline-color="">--left-of</span></span></code></li>
<li><code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #000000;" data-darkreader-inline-color="">--above</span></span></code></li>
<li><code><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #000000;" data-darkreader-inline-color="">--below</span></span></code></li>
</ul>
<h2>COMO HACER QUE LA CONFIGURACIÓN DE XRANDR SEA PERSISTENTE</h2>
<p style="text-align: justify;">La configuración que acabamos de establecer no se mantendrá si reiniciamos el ordenador. Si queremos que la configuración se aplique cada arrancamos el ordenador tenemos varias soluciones. Como en mi caso uso el escritorio i3 tan solo tendré que añadir las siguientes líneas en el fichero de configuración ubicado en <code><span style="color: #0090d3;" data-darkreader-inline-color="">~/.config/i3</span></code>.</p>
<pre><code class="language-shell" lang="shell"><span style="color: #0090d3;" data-darkreader-inline-color=""><span style="color: #808080;" data-darkreader-inline-color=""># Configuración de la pantalla</span>
exec --no-startup-id xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --mode <span style="color: #ff0000;" data-darkreader-inline-color="">1920x1080</span> --rate <span style="color: #0000ff;" data-darkreader-inline-color="">144.00</span> --dpi <span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> --scale <span style="color: #cc99ff;" data-darkreader-inline-color="">1</span>x<span style="color: #cc99ff;" data-darkreader-inline-color="">1</span>
exec --no-startup-id xrandr --output <span style="color: #008000;" data-darkreader-inline-color="">HDMI-1</span> --brightness <span style="color: #ff6600;" data-darkreader-inline-color="">1</span> --gamma <span style="color: #ff6600;" data-darkreader-inline-color="">0.9
</span></span></code></pre>
<p style="text-align: justify;">De este modo, cada vez que iniciemos el ordenador el monitor que esté conectado al puerto HDMI-1 tendrá:</p>
<ol style="text-align: justify;">
<li>Una resolución de<span style="color: #ff0000;" data-darkreader-inline-color=""> 1920&#215;1080</span>.</li>
<li>Una frecuencia de <span style="color: #0000ff;" data-darkreader-inline-color="">144 Hz</span></li>
<li><span style="color: #ff00ff;" data-darkreader-inline-color="">82</span> dpi</li>
<li>El parámetro gamma se modificará de <span style="color: #ff6600;" data-darkreader-inline-color="">1</span> a <span style="color: #ff6600;" data-darkreader-inline-color="">0.9</span></li>
</ol>
<p style="text-align: justify;"><strong>Nota: </strong>En el caso que no usen el escritorio i3 pueden crear un script que se ejecute en el momento de iniciar le ordenador.</p>
<h2>CONCLUSIONES</h2>
<p style="text-align: justify;">En este artículo, discutimos cómo usar la utilidad xrandr para configurar su pantalla en el entorno de escritorio i3 en Linux. Siguiendo estos pasos, puede configurar fácilmente su configuración de pantalla, administrar múltiples monitores y crear un espacio de trabajo personalizado adaptado a sus necesidades. Si quieren profundizar más sobre el uso de xrandr les recomiendo que abran una terminal y ejecuten el comando <code><span style="color: #0090d3;" data-darkreader-inline-color="">xrandr --help</span></code></p>
<h3>Fuentes</h3>
<p><a class="url" href="https://linuxconfig.org/how-to-configure-your-monitors-with-xrandr-in-linux" target="_blank" rel="noopener">https://linuxconfig.org/how-to-configure-your-monitors-with-xrandr-in-linux</a></p>
<p><a class="url" href="https://wiki.archlinux.org/title/Xrandr" target="_blank" rel="noopener">https://wiki.archlinux.org/title/Xrandr</a></p>
<p>La entrada <a href="https://geekland.eu/configurar-la-pantalla-del-ordenador-con-xrandr-en-linux/">Configurar la pantalla del ordenador con xrandr en Linux</a> se publicó primero en <a href="https://geekland.eu">geekland</a>.</p>
]]></content:encoded>
					
					<wfw:commentRss>https://geekland.eu/configurar-la-pantalla-del-ordenador-con-xrandr-en-linux/feed/</wfw:commentRss>
			<slash:comments>2</slash:comments>
		
		
			</item>
	</channel>
</rss>