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

<channel>
	<title>Vic Web</title>
	<atom:link href="https://vicweb.es/feed/" rel="self" type="application/rss+xml" />
	<link>https://vicweb.es</link>
	<description>Bienvenido a mi web</description>
	<lastBuildDate>Wed, 09 Sep 2026 23:51:28 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1.2</generator>

<image>
	<url>https://vicweb.es/wp-content/uploads/2023/01/cropped-vicfavicom-1-32x32.png</url>
	<title>Vic Web</title>
	<link>https://vicweb.es</link>
	<width>32</width>
	<height>32</height>
</image> 
<site xmlns="com-wordpress:feed-additions:1">185965795</site>	<item>
		<title>Los comandos básicos de Linux</title>
		<link>https://vicweb.es/linux/</link>
					<comments>https://vicweb.es/linux/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sat, 25 Apr 2020 22:42:25 +0000</pubDate>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">http://vicweb.es/?p=450</guid>

					<description><![CDATA[Linux es uno de los sistemas operativos más robustos, seguros y flexibles a nivel global. Aunque dispone de entornos gráficos avanzados, su verdadero potencial se manifiesta en la interfaz de línea de comandos (CLI).

El intérprete de comandos Bash (Bourne Again SHell) espera recibir una cadena de instrucciones para ejecutar la operación solicitada.]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="450" class="elementor elementor-450">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-b2fca28 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b2fca28" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b943f33" data-id="b943f33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ccb7a82 eael-flipbox-content-align-center eael-flipbox-img-default elementor-widget elementor-widget-eael-flip-box" data-id="ccb7a82" data-element_type="widget" data-e-type="widget" data-widget_type="eael-flip-box.default">
				<div class="elementor-widget-container">
					        <div class="eael-elements-flip-box-container eael-animate-flip eael-animate-left eael-content eael-flip-box-hover eael-flipbox-fixed-height eael-flipbox-dynamic">

            <div class="eael-elements-flip-box-flip-card">
                <div class="eael-elements-flip-box-front-container">
                    
                    
                        <div class="eael-elements-slider-display-table">
                            <div class="eael-elements-flip-box-vertical-align">
                                <div class="eael-elements-flip-box-padding">
                                    <div class="eael-elements-flip-box-icon-image">
                                                                                    <img decoding="async" class="eael-flipbox-image-as-icon" src="https://vicweb.es/wp-content/uploads/2020/04/logo-de-linux-1.png" alt="">
                                                                            </div>
                                    <h2 class="eael-elements-flip-box-heading">Comandos Linux</h2>                                    <div class="eael-elements-flip-box-content">
	                                    <p>Los comandos básicos de Linux que todo usuario debe conocer</p>                                    </div>
                                </div>
                            </div>
                        </div>
                                    </div>

                <div class="eael-elements-flip-box-rear-container">
                                                                <div class="eael-elements-slider-display-table">
                            <div class="eael-elements-flip-box-vertical-align">
                                <div class="eael-elements-flip-box-padding">
                                                                            <div class="eael-elements-flip-box-icon-image">
                                                                                            <img decoding="async" class="eael-flipbox-image-as-icon" src="https://vicweb.es/wp-content/uploads/2020/04/logo-de-linux-1.png" alt="">
                                                                                    </div>
                                                                                                            <h2 class="eael-elements-flip-box-heading">Comandos Linux</h2>
                                                                        <div class="eael-elements-flip-box-content">
                                        <p>Usamos BASH como intérprete de los comandos linux.</p>                                    </div>

                                                                    </div>
                            </div>
                        </div>
                                    </div>
            </div>
        </div>
        				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2b1ef33 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2b1ef33" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7384a0a" data-id="7384a0a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7e23f23 elementor-widget elementor-widget-text-editor" data-id="7e23f23" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="379" data-end="394">Introducción</h2><p data-start="126" data-end="554">Linux es uno de los sistemas operativos más robustos, seguros y flexibles a nivel global. Aunque dispone de entornos gráficos avanzados, su verdadero potencial se manifiesta en la interfaz de línea de comandos (CLI). Desde ella es posible interactuar directamente con el sistema, administrar recursos, gestionar usuarios y permisos, instalar o actualizar paquetes, automatizar procesos y acceder a funcionalidades de bajo nivel.</p><p data-start="556" data-end="771">El intérprete de comandos <strong data-start="582" data-end="590">Bash</strong> (Bourne Again SHell) espera recibir una cadena de instrucciones para ejecutar la operación solicitada. La estructura general de una orden es: <strong data-start="733" data-end="768">COMANDO [OPCIONES] [ARGUMENTOS]</strong>.</p><ul data-start="772" data-end="1004"><li data-start="772" data-end="817"><p data-start="774" data-end="817">El <em data-start="777" data-end="786">comando</em> indica la acción a realizar.</p></li><li data-start="818" data-end="918"><p data-start="820" data-end="918">Las <em data-start="824" data-end="834">opciones</em> (generalmente precedidas por <code data-start="864" data-end="867">-</code> o <code data-start="870" data-end="874">--</code>) modifican el comportamiento del comando.</p></li><li data-start="919" data-end="1004"><p data-start="921" data-end="1004">Los <em data-start="925" data-end="937">argumentos</em> especifican los objetos o recursos sobre los que actuará la orden.</p></li></ul><p data-start="1544" data-end="1735">En esta guía se presentan los comandos fundamentales del entorno Linux, detallando su funcionalidad, contexto de uso y ejemplos prácticos para facilitar la experimentación en un entorno real.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-168d591 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="168d591" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-8fc91ca" data-id="8fc91ca" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7d41f7c elementor-widget elementor-widget-text-editor" data-id="7d41f7c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3466" data-end="3514">1. <code data-start="3473" data-end="3478">man</code> – Consultar el manual de un comando</h2><p>La mayoría de los comandos proporcionan documentación integrada accesible mediante la utilidad <strong data-start="1357" data-end="1364">man.</strong></p><p data-start="3516" data-end="3528"><strong data-start="3516" data-end="3528">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-f7b9e60 elementor-widget elementor-widget-eael-code-snippet" data-id="f7b9e60" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-f7b9e60" id="eael-code-snippet-f7b9e60" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Consulta del manual.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-f7b9e60 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>man ls 
# Muestra la documentación completa del comando ls.
# Para salir del manual, presiona q.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-0126f61 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="0126f61" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-76f22e9" data-id="76f22e9" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-133be0c elementor-widget elementor-widget-text-editor" data-id="133be0c" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="1556" data-end="1598">2. <code data-start="1562" data-end="1567">pwd</code> – Mostrar el directorio actual</h2><p data-start="1600" data-end="1664">Muestra la ruta completa del directorio en el que estás ubicado.</p><p data-start="1666" data-end="1678"><strong data-start="1666" data-end="1678">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2c732a9 elementor-widget elementor-widget-eael-code-snippet" data-id="2c732a9" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-2c732a9" id="eael-code-snippet-2c732a9" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Muestra el directorio de trabajo actual.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-2c732a9 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>pwd 
# Este comando mostrará la ruta en la que estamos,
# por ejemplo /home/usuario/Documentos</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2632cd2 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2632cd2" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-077930f" data-id="077930f" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-541628e elementor-widget elementor-widget-text-editor" data-id="541628e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="1295" data-end="1329">3. <code data-start="1301" data-end="1305">cd</code> – Cambiar de directorio</h2><p data-start="1331" data-end="1381">Change directory, nos perminte navegar entre los diferentes directorios de nuestro sistema.</p><p data-start="1383" data-end="1396"><strong data-start="1383" data-end="1396">Ejemplos:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-8420bfa elementor-widget elementor-widget-eael-code-snippet" data-id="8420bfa" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-8420bfa" id="eael-code-snippet-8420bfa" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Se usa para cambiar el directorio actual.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-8420bfa .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>cd Documentos # Cambia al directorio &quot;Documentos&quot;.
cd .. # Retrocede un nivel de directorio.
cd / # Va al directorio raíz del sistema.
cd ~ # Hace referencia al directorio personal del que ejecuta la orden.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-6f470b0 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="6f470b0" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-ac25735" data-id="ac25735" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-db3537e elementor-widget elementor-widget-text-editor" data-id="db3537e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="890" data-end="932">4. <code data-start="896" data-end="900">ls</code> – Listar archivos y directorios</h2><p data-start="934" data-end="1023">El comando <code data-start="945" data-end="949">ls</code> muestra el contenido de un directorio. Es uno de los comandos más usados.</p><p data-start="1025" data-end="1038"><strong data-start="1025" data-end="1038">Ejemplos:</strong></p><p data-start="1025" data-end="1038"></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b9c9f6f elementor-widget elementor-widget-eael-code-snippet" data-id="b9c9f6f" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-b9c9f6f" id="eael-code-snippet-b9c9f6f" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Lista los archivos de un directorio, algunos de sus argumentos son:                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-b9c9f6f .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                    <div class="eael-code-snippet-tooltip">Copiar al portapapeles</div>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>ls -l # (Lista los directorios en formato largo, con permisos, propietario, tamaño y fecha).
ls -lh # (La &quot;h&quot; simboliza que nos lo muestre en formato humano, más legible).
ls -lS  # (La &quot;S&quot; nos lista los archivos ordenados de mayor a menor tamaño, si queremos que sea de menor a mayor, usamos el argumento &quot;r&quot; que sería como reverse, tal que así: ls -lSr).
ls -lt # (La &quot;t&quot; nos lista los archivos ordenados de más recientes a más antiguos, si queremos que sea de más antiguos a más nuevos usamos el argumento &quot;r&quot; tal que así: ls -ltr).
ls -ltrh  # (Este comando lo uso mucho y con él listo de forma que muestro los archivos ordenados de más antiguos a más recientes en formato humano).
ls -a # (La &quot;a&quot; corresponde a &quot;all&quot;, con ésto se listan todos los archivos , incluso los que están ocultos).</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-c076533 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="c076533" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d812da5" data-id="d812da5" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-dff2958 elementor-widget elementor-widget-text-editor" data-id="dff2958" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="1750" data-end="1785">5. <code data-start="1756" data-end="1763">mkdir</code> – Crear un directorio</h2><p data-start="1787" data-end="1820">Este comando nos ayudará a la hora de crear carpetas nuevas.</p><p data-start="1822" data-end="1834"><strong data-start="1822" data-end="1834">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-2a4c7c5 elementor-widget elementor-widget-eael-code-snippet" data-id="2a4c7c5" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-2a4c7c5" id="eael-code-snippet-2a4c7c5" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Si queremos crear un nuevo directorio usamos:                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-2a4c7c5 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>mkdir Proyectos # Nos crea una nuevo directorio llamando Proyectos.
mkdir -p proyectos/python/app # Crea varias carpetas anidadas a la vez. </code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-1bea459 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1bea459" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-adc7271" data-id="adc7271" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-cff560f elementor-widget elementor-widget-text-editor" data-id="cff560f" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="1990" data-end="2031">6. <code data-start="1996" data-end="2000">rm</code> – Eliminar archivos o carpetas</h2><p data-start="2033" data-end="2083">Borra archivos o directorios. <img src="https://s.w.org/images/core/emoji/17.0.2/72x72/26a0.png" alt="⚠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> ¡Usa con cuidado!</p><p data-start="2085" data-end="2098"><strong data-start="2085" data-end="2098">Ejemplos:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-b19acfa elementor-widget elementor-widget-eael-code-snippet" data-id="b19acfa" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-b19acfa" id="eael-code-snippet-b19acfa" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Elimina archivos y carpetas.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-b19acfa .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>rm archivo.txt # Eliminamos el archivo llamado archivo.txt.
rm -r carpeta/ # Elimina una carpeta y todo su contenido de forma recursiva.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-8385fe4 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="8385fe4" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cc157f6" data-id="cc157f6" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-8a172b8 elementor-widget elementor-widget-text-editor" data-id="8a172b8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="2240" data-end="2279">7. <code data-start="2246" data-end="2250">cp</code> – Copiar archivos o carpetas</h2><p data-start="2281" data-end="2294"><strong data-start="2281" data-end="2294">Ejemplos:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-5ffcbc3 elementor-widget elementor-widget-eael-code-snippet" data-id="5ffcbc3" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-5ffcbc3" id="eael-code-snippet-5ffcbc3" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Copia de archivos o carpetas.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-5ffcbc3 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>cp archivo.txt copia.txt # Estamos copiando archivo.txt dentro de copia.txt
cp -r carpeta1/ carpeta2/ # Copiamos la carpeta1 con todos sus archivos dentro en carpeta2.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-1c6c7eb elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="1c6c7eb" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-206a387" data-id="206a387" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-f981578 elementor-widget elementor-widget-text-editor" data-id="f981578" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="2444" data-end="2483">8. <code data-start="2450" data-end="2454">mv</code> – Mover o renombrar archivos</h2><p data-start="2485" data-end="2498"><strong data-start="2485" data-end="2498">Ejemplos:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-71093b5 elementor-widget elementor-widget-eael-code-snippet" data-id="71093b5" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-71093b5" id="eael-code-snippet-71093b5" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Mover o renombrar archivos                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-71093b5 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>mv archivo.txt /home/usuario/Documentos/ # Mueve el archivo a otra carpeta.
mv viejo_nombre.txt nuevo_nombre.txt # Renombra un archivo.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-62bd560 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="62bd560" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-bf06278" data-id="bf06278" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-b819cec elementor-widget elementor-widget-text-editor" data-id="b819cec" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="2662" data-end="2706">9. <code data-start="2668" data-end="2673">cat</code> – Ver el contenido de un archivo</h2><p data-start="2708" data-end="2720"><strong data-start="2708" data-end="2720">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-697654d elementor-widget elementor-widget-eael-code-snippet" data-id="697654d" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-697654d" id="eael-code-snippet-697654d" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Muestra el contenido del archivo en pantalla.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-697654d .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>cat notas.txt
# También puedes combinarlo con | (pipe)
cat notas.txt | head -n 5
# Muestra solo las primeras 5 líneas.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-fc62ad9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fc62ad9" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-d39a3ea" data-id="d39a3ea" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3b92862 elementor-widget elementor-widget-text-editor" data-id="3b92862" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="2936" data-end="2982">10. <code data-start="2942" data-end="2948">grep</code> – Buscar texto dentro de archivos</h2><p data-start="2984" data-end="2996"><strong data-start="2984" data-end="2996">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-5ed9cb6 elementor-widget elementor-widget-eael-code-snippet" data-id="5ed9cb6" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-5ed9cb6" id="eael-code-snippet-5ed9cb6" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Buscamos palabras.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-5ed9cb6 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>grep &quot;error&quot; log.txt
# Buscamos la palabra error dentro del archivo log.txt
grep -r &quot;TODO&quot; .
# Con la opción -r Busca de forma recursiva la palabra &quot;TODO&quot; 
# en todos los archivos del directorio actual.
</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-cf2e7a5 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="cf2e7a5" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-70b4ef5" data-id="70b4ef5" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-26b4ab3 elementor-widget elementor-widget-text-editor" data-id="26b4ab3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3191" data-end="3242">11. <code data-start="3198" data-end="3204">sudo</code> – Ejecutar comandos como superusuario</h2><p data-start="3244" data-end="3349">Algunos comandos requieren permisos administrativos. <code data-start="3297" data-end="3303">sudo</code> permite ejecutarlos con privilegios elevados.</p><p data-start="3351" data-end="3363"><strong data-start="3351" data-end="3363">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-57ca820 elementor-widget elementor-widget-eael-code-snippet" data-id="57ca820" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-57ca820" id="eael-code-snippet-57ca820" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Comando superusuario.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-57ca820 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>sudo apt update 
# Actualiza la lista de paquetes en distribuciones
# basadas en Debian.
</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-292f9dd elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="292f9dd" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-da3195c" data-id="da3195c" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-80c856e elementor-widget elementor-widget-text-editor" data-id="80c856e" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3644" data-end="3684">12. <code data-start="3651" data-end="3656">top</code> – Ver procesos en ejecución</h2><p data-start="3686" data-end="3698"><strong data-start="3686" data-end="3698">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-fd614f4 elementor-widget elementor-widget-eael-code-snippet" data-id="fd614f4" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-fd614f4" id="eael-code-snippet-fd614f4" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Procesos en ejecución.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-fd614f4 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>top  
# Muestra los procesos activos en tiempo real, 
# similar al “Administrador de tareas”.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-7bba0f2 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="7bba0f2" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-cc0cf05" data-id="cc0cf05" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ad347c3 elementor-widget elementor-widget-text-editor" data-id="ad347c3" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3644" data-end="3684">13. <code data-start="3651" data-end="3656">history</code> – Muestra el historial de últimos comandos ejecutados</h2><p data-start="3686" data-end="3698"><strong data-start="3686" data-end="3698">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-f19d192 elementor-widget elementor-widget-eael-code-snippet" data-id="f19d192" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-f19d192" id="eael-code-snippet-f19d192" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        El historial de comandos.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-f19d192 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>history  
# Muestra una lista clave valor con las últimas
# instrucciones realizadas, si quiero que se ejecute una de ellas
# pongo su clave tal que así: !133 y se ejecutará.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-78c0f4a elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="78c0f4a" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-e32024d" data-id="e32024d" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-5b5e9f8 elementor-widget elementor-widget-text-editor" data-id="5b5e9f8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3644" data-end="3684">14. Crear archivos de texto. </h2><p data-start="3686" data-end="3698"><strong data-start="3686" data-end="3698">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-5ffa41c elementor-widget elementor-widget-eael-code-snippet" data-id="5ffa41c" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-5ffa41c" id="eael-code-snippet-5ffa41c" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Formas de crear un archivo de texto.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-5ffa41c .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>touch nombre_del_archivo.txt
# Crea un archivo vacío usando el comando touch.
cat &gt;&gt; nombre_del_archivo.txt
# Crea archivos usando el comando cat.
echo &quot;Esto es un ejemplo&quot; &gt; nombre_del_archivo.txt
echo &gt; archivo.txt
# Crea un nuevo archivo utilizando el comando echo.
vim nombre_del_archivo.txt
nano nombre_del_archivo.txt
# Crea un nuevo archivo usando un editor de texto como Nano o Vim.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-6a2cf25 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="6a2cf25" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-3bc7244" data-id="3bc7244" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-97776b8 elementor-widget elementor-widget-text-editor" data-id="97776b8" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3644" data-end="3684">15. Comandos sobre el uso de disco.</h2><p data-start="3686" data-end="3698"><strong data-start="3686" data-end="3698">Ejemplo:</strong></p>								</div>
				</div>
				<div class="elementor-element elementor-element-131a6b7 elementor-widget elementor-widget-eael-code-snippet" data-id="131a6b7" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-131a6b7" id="eael-code-snippet-131a6b7" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Consultar información del disco.                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-131a6b7 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code>df -h
# (Disk free), nos da información sobre las particiones del 
# sistema: tamaño total, usado y libre. Con la opción -h 
# nos muestra en formato humanos. Ejemplo: df -h /home/.
du -h
# (Disk usage), muestra el espacio del disco ocupado por un 
# fichero o directorio, el argumento -h nos muestra la info en formato humano.
du -sh /*
# Lista la info de uso de disco de la raiz.
du -sh * | sort -h
# Ejemplo muy bueno para que nos liste y veamos el directorio 
# con más tamaño</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-b6219ef elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b6219ef" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-14156e6" data-id="14156e6" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-31a71b2 elementor-widget elementor-widget-text-editor" data-id="31a71b2" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3815" data-end="3828"></h2><h2 data-start="3815" data-end="3828"><strong>Tipos de permisos en Linux</strong></h2><p data-start="3830" data-end="4036">Cada archivo o directorio tiene tres tipos de permisos que se aplican a diferentes niveles. </p><div><strong>1. Tipos de permisos</strong></div><ul><li><strong>r</strong> (read / leer):<ul><li><strong>Archivos</strong>: permite leer el contenido del archivo.</li><li><strong>Directorios</strong>: permite listar el contenido (<strong>ls</strong>).</li></ul></li><li><strong>w</strong> (write / escribir):<ul><li><strong>Archivos</strong>: permite modificar el contenido.</li><li><strong>Directorios</strong>: permite crear, borrar o renombrar archivos dentro del directorio.</li></ul></li><li><strong>x</strong> (execute / ejecutar):<ul><li><strong>Archivos</strong>: permite ejecutar el archivo como un programa o script.</li><li><strong>Directorios</strong>: permite entrar al directorio (<strong>cd</strong>) y acceder a archivos dentro.</li></ul></li></ul><p><strong>2. Niveles de permisos</strong></p><p>Cada archivo/directorio tiene permisos para tres categorías de usuarios:</p><ul><li><strong>u</strong> (user) → el propietario del archivo.</li><li><strong>g</strong> (group) → los usuarios del mismo grupo que el propietario.</li><li><strong>o</strong> (others) → todos los demás usuarios.</li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-fc00fb5 elementor-widget elementor-widget-eael-code-snippet" data-id="fc00fb5" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-fc00fb5" id="eael-code-snippet-fc00fb5" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Comandos de usuarios y grupos                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-fc00fb5 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code># Comandos para conocer al usuario, al grupo al que pertenece
whoami
# Muestra el nombre del usuario que ha iniciado sesión actualmente en el sistema.
groups
# Muestra los grupos a los que pertenece un usuario específico.
id 
# Muestra información detallada de identificación del usuario actual o especificado.</code></pre>
                     </div>
      </div>
      				</div>
				</div>
				<div class="elementor-element elementor-element-2dc13e5 elementor-widget elementor-widget-eael-code-snippet" data-id="2dc13e5" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-2dc13e5" id="eael-code-snippet-2dc13e5" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Comando chown                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-2dc13e5 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code># El comando chown (Change Owner) cambiar el propietario y/o el grupo de un archivo o directorio.
chown [usuario]:[grupo] archivo # Sintaxis básica
sudo chown victor mi_archivo.txt
# Cambia el propietario de mi_archivo a victor.
sudo chown victor:desarrolladores mi_archivo.txt
# Cambia el propietario de mi_archivo a victor y el grupo a desarrolladores.
</code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-d92f06e elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="d92f06e" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-806e282" data-id="806e282" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-b8893bc elementor-widget elementor-widget-text-editor" data-id="b8893bc" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3815" data-end="3828">Formas de cambiar los permisos con chmod:</h2><p>(<strong>u</strong> de usuarios, <strong>g</strong> de grupo, <strong>o</strong> de otros y <strong>a</strong> de all que es todos)</p><ul><li data-start="4038" data-end="4149">con <strong>+</strong> y <strong>&#8211;</strong> (el más concreto porque solo afecta al permiso que indicamos).<ul><li data-start="4038" data-end="4149">Ejemplo: <strong>chmod</strong> u<strong>+</strong>w<strong>&#8211;</strong>x, g<strong>&#8211;</strong>r, o<strong>+</strong>w nombre_fichero.txt<span style="white-space: pre;"> </span></li></ul></li><li>con <strong>=</strong> (cambia un grupo entero de permisos).<ul><li>Ejemplo: <strong>chmod</strong> u<strong>=</strong>rw, g<strong>=</strong>r, o<strong>=</strong>x nombre_fichero.txt</li></ul></li><li>Usando números <span>(<strong>4=r, 2=w, 1=x</strong>) para el propietario, grupo y otros</span><ul><li jscontroller="vsuOFb" jsuid="Lj3EYb_2a" data-hveid="CAUQAg"><span class="T286Pc" data-sfc-cp="" jscontroller="fly6D" jsuid="Lj3EYb_2b"><code dir="ltr" class="o8j0Mc" jscontroller="PR9Qj" jsuid="Lj3EYb_2c">7</code><span> </span>(4+2+1) = rwx</span></li><li jscontroller="vsuOFb" jsuid="Lj3EYb_2d" data-hveid="CAUQAw"><span class="T286Pc" data-sfc-cp="" jscontroller="fly6D" jsuid="Lj3EYb_2e"><code dir="ltr" class="o8j0Mc" jscontroller="PR9Qj" jsuid="Lj3EYb_2f">6</code><span> </span>(4+2) = rw-</span></li><li jscontroller="vsuOFb" jsuid="Lj3EYb_2g" data-hveid="CAUQBA"><span class="T286Pc" data-sfc-cp="" jscontroller="fly6D" jsuid="Lj3EYb_2h"><code dir="ltr" class="o8j0Mc" jscontroller="PR9Qj" jsuid="Lj3EYb_2i">5</code><span> </span>(4+1) = r-x</span></li></ul></li></ul>								</div>
				</div>
				<div class="elementor-element elementor-element-dfbdfc1 elementor-widget elementor-widget-eael-code-snippet" data-id="dfbdfc1" data-element_type="widget" data-e-type="widget" data-widget_type="eael-code-snippet.default">
				<div class="elementor-widget-container">
					      <div class="eael-code-snippet-wrapper theme-dark view-mode-default" data-language="" data-copy-button="1" data-snippet-id="eael-code-snippet-dfbdfc1" id="eael-code-snippet-dfbdfc1" >
               <div class="eael-code-snippet-header eael-file-preview-header">
            <div class="eael-file-preview-left">
                           <div class="eael-file-info">
                                    <div class="eael-file-name">
                     <span class="file-name-text">
                        Comando chomod                     </span>
                  </div>
                                 </div>
            </div>

                        <div class="eael-file-preview-right">
               <div class="eael-code-snippet-copy-container">
                  <button data-clipboard-target="#eael-code-snippet-dfbdfc1 .eael-code-snippet-code code" class="eael-code-snippet-copy-button" type="button" aria-label="Copiar código al portapapeles Copiar código al portapapeles">
                        <svg width="16" height="16" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
                           <path d="M16 1H4C2.9 1 2 1.9 2 3V17H4V3H16V1ZM19 5H8C6.9 5 6 5.9 6 7V21C6 22.1 6.9 23 8 23H19C20.1 23 21 22.1 21 21V7C21 5.9 20.1 5 19 5ZM19 21H8V7H19V21Z" fill="currentColor"/>
                        </svg>
                  </button>
                                 </div>
            </div>
                     </div>
      
         <div class="eael-code-snippet-content">
                        <pre class="eael-code-snippet-code language-"><code># El comando chmod (Change Mode) modifica los permisos de acceso (lectura r, escritura w, ejecución x).
chmod 755 mi_archivo.sh # Propietario (rwx), Grupo (r-x), Otros (r-x).
chmod 644 mi_archivo.txt # Propietario (rw-), Grupo (r--), Otros (r--).
chmod +x mi_archivo.sh #  Añade permiso de ejecución para todos
chmod -R 777 /ruta/ # Da todos los permisos (lectura, escritura, ejecución) recursivamente (¡usar con precaución!). </code></pre>
                     </div>
      </div>
      				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-a3044a3 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="a3044a3" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-4b96cf2" data-id="4b96cf2" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-cecbb64 elementor-widget elementor-widget-text-editor" data-id="cecbb64" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="3815" data-end="3828">Conclusión</h2><p data-start="3830" data-end="4036">Dominar estos comandos básicos te abrirá la puerta al mundo de Linux. Con el tiempo, podrás combinarlos y automatizar tareas complejas mediante <strong data-start="3974" data-end="3985">scripts</strong>, optimizando tu flujo de trabajo como nunca antes.</p><p data-start="4038" data-end="4149">Recuerda: la terminal no es un enemigo, es una herramienta poderosa. <strong>¡Experimenta sin miedo y aprende haciendo!</strong></p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		]]></content:encoded>
					
					<wfw:commentRss>https://vicweb.es/linux/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">450</post-id>	</item>
		<item>
		<title>Primeros pasos con GIT</title>
		<link>https://vicweb.es/primeros-pasos-con-git/</link>
					<comments>https://vicweb.es/primeros-pasos-con-git/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Fri, 10 Apr 2020 16:01:00 +0000</pubDate>
				<category><![CDATA[Informática]]></category>
		<category><![CDATA[informatica]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://vicweb.es/?p=5231</guid>

					<description><![CDATA[Git es uno de los sistemas de control de versiones más utilizados en el desarrollo de software. Permite guardar el historial de cambios de un proyecto, trabajar con diferentes versiones del código y colaborar con otros desarrolladores.

Fue creado por el ingeniero de software finlandés Linus Torvalds en el año 2005, sí, el mismo que creó Linux.]]></description>
										<content:encoded><![CDATA[		<div data-elementor-type="wp-post" data-elementor-id="5231" class="elementor elementor-5231">
						<section class="elementor-section elementor-top-section elementor-element elementor-element-b2fca28 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="b2fca28" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b943f33" data-id="b943f33" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-ccb7a82 eael-flipbox-content-align-center eael-flipbox-img-default elementor-widget elementor-widget-eael-flip-box" data-id="ccb7a82" data-element_type="widget" data-e-type="widget" data-widget_type="eael-flip-box.default">
				<div class="elementor-widget-container">
					        <div class="eael-elements-flip-box-container eael-animate-flip eael-animate-left eael-content eael-flip-box-click eael-flipbox-fixed-height eael-flipbox-dynamic">

            <div class="eael-elements-flip-box-flip-card">
                <div class="eael-elements-flip-box-front-container">
                    
                    
                        <div class="eael-elements-slider-display-table">
                            <div class="eael-elements-flip-box-vertical-align">
                                <div class="eael-elements-flip-box-padding">
                                    <div class="eael-elements-flip-box-icon-image">
                                                                                    <img decoding="async" class="eael-flipbox-image-as-icon" src="https://vicweb.es/wp-content/uploads/2025/10/git.png" alt="">
                                                                            </div>
                                    <h2 class="eael-elements-flip-box-heading">¿Qué es GIT?</h2>                                    <div class="eael-elements-flip-box-content">
	                                    <p>Aprende a usar el software de control de versiones más famoso. </p>                                    </div>
                                </div>
                            </div>
                        </div>
                                    </div>

                <div class="eael-elements-flip-box-rear-container">
                                                                <div class="eael-elements-slider-display-table">
                            <div class="eael-elements-flip-box-vertical-align">
                                <div class="eael-elements-flip-box-padding">
                                                                            <div class="eael-elements-flip-box-icon-image">
                                                                                            <img decoding="async" class="eael-flipbox-image-as-icon" src="https://vicweb.es/wp-content/uploads/2025/10/git.png" alt="">
                                                                                    </div>
                                                                                                            <h2 class="eael-elements-flip-box-heading">¿Quién lo creó?</h2>
                                                                        <div class="eael-elements-flip-box-content">
                                        <p>Fue creado por <span>Linus Torvalds, el mismo que creó Linux.</span></p>                                    </div>

                                                                    </div>
                            </div>
                        </div>
                                    </div>
            </div>
        </div>
        				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2d211b9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2d211b9" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-b9f2a17" data-id="b9f2a17" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-1ce7116 elementor-widget-divider--view-line_icon elementor-view-stacked elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="1ce7116" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					<i aria-hidden="true" class="fab fa-git"></i></div>
						</span>
		</div>
						</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-2b1ef33 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="2b1ef33" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-7384a0a" data-id="7384a0a" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-7e23f23 elementor-widget elementor-widget-text-editor" data-id="7e23f23" data-element_type="widget" data-e-type="widget" data-widget_type="text-editor.default">
				<div class="elementor-widget-container">
									<h2 data-start="379" data-end="394">Git: guía completa de comandos con ejemplos</h2><p>Git es uno de los sistemas de control de versiones más utilizados en el desarrollo de software. Permite guardar el historial de cambios de un proyecto, trabajar con diferentes versiones del código y colaborar con otros desarrolladores.</p><p>Fue creado por el ingeniero de software finlandés Linus Torvalds en el año 2005, sí, el mismo que creó <strong>Linux</strong>.</p><p><span style="font-size: inherit;">En esta guía vamos a recorrer los principales comandos de Git, desde los más básicos hasta algunos comandos avanzados, utilizando ejemplos prácticos.</span></p><hr /><h2>1. ¿Qué es Git?</h2><p>Git es un sistema de control de versiones distribuido. Esto significa que cada desarrollador tiene una copia completa del historial del proyecto en su ordenador.</p><p>Con Git podemos:</p><ul><li><p>Guardar versiones de nuestro código.</p></li><li><p>Saber quién realizó cada cambio.</p></li><li><p>Crear ramas para desarrollar nuevas funcionalidades.</p></li><li><p>Fusionar cambios de diferentes desarrolladores.</p></li><li><p>Recuperar versiones anteriores.</p></li><li><p>Trabajar con repositorios remotos como GitHub, GitLab o Bitbucket.</p></li></ul><p>Un flujo de trabajo habitual sería:</p><pre><code class="language-text">Modificar archivos
       ↓
   git add
       ↓
  git commit
       ↓
   git push
       ↓
Repositorio remoto
</code></pre><hr /><h1>2. Configuración inicial de Git</h1><p>Antes de empezar a trabajar con Git, normalmente configuraremos nuestro nombre y correo electrónico.</p><h3><code inline="">git config</code></h3><p>Permite configurar diferentes opciones de Git.</p><p>Configurar nuestro nombre:</p><pre><code class="language-bash">git config --global user.name "Juan Pérez"
</code></pre><p>Configurar nuestro correo:</p><pre><code class="language-bash">git config --global user.email "juan@example.com"
</code></pre><p>Podemos comprobar la configuración:</p><pre><code class="language-bash">git config --list
</code></pre><p>También podemos consultar una configuración concreta:</p><pre><code class="language-bash">git config user.name
</code></pre><p>La opción <code inline="">--global</code> hace que la configuración se aplique a todos los repositorios del usuario.</p><hr /><h1>3. Crear un repositorio</h1><h2><code inline="">git init</code></h2><p>Convierte una carpeta existente en un repositorio Git.</p><p>Por ejemplo:</p><pre><code class="language-bash">mkdir mi-proyecto
cd mi-proyecto
git init
</code></pre><p>Git creará una carpeta oculta llamada <code inline="">.git</code> donde almacenará toda la información necesaria para controlar las versiones.</p><p>Podemos comprobar el estado del repositorio con:</p><pre><code class="language-bash">git status
</code></pre><hr /><h1>4. Clonar un repositorio</h1><h2><code inline="">git clone</code></h2><p>Permite descargar un repositorio existente.</p><p>Por ejemplo:</p><pre><code class="language-bash">git clone https://github.com/usuario/mi-proyecto.git
</code></pre><p>Git creará una carpeta con el proyecto y descargará su historial.</p><p>También podemos especificar el nombre de la carpeta:</p><pre><code class="language-bash">git clone https://github.com/usuario/mi-proyecto.git proyecto-local
</code></pre><hr /><h1>5. Comprobar el estado del proyecto</h1><h2><code inline="">git status</code></h2><p>Es probablemente uno de los comandos que más utilizaremos.</p><p>Muestra información sobre:</p><ul><li><p>Archivos modificados.</p></li><li><p>Archivos preparados para commit.</p></li><li><p>Archivos nuevos.</p></li><li><p>La rama actual.</p></li><li><p>Cambios que todavía no hemos añadido al staging.</p></li></ul><p>Ejemplo:</p><pre><code class="language-bash">git status
</code></pre><p>Podríamos obtener algo parecido a:</p><pre><code class="language-text">On branch main

Changes not staged for commit:
  modified:   README.md
</code></pre><p>Esto significa que <code inline="">README.md</code> ha cambiado, pero todavía no hemos preparado el cambio para realizar un commit.</p><hr /><h1>6. Añadir cambios al staging</h1><h2><code inline="">git add</code></h2><p><code inline="">git add</code> añade cambios al área de preparación (<em>staging area</em>).</p><p>Por ejemplo:</p><pre><code class="language-bash">git add README.md
</code></pre><p>Podemos añadir varios archivos:</p><pre><code class="language-bash">git add README.md index.html styles.css
</code></pre><p>O todos los cambios:</p><pre><code class="language-bash">git add .
</code></pre><p>Después podemos comprobar el estado:</p><pre><code class="language-bash">git status
</code></pre><p>Ahora el archivo aparecerá como preparado para realizar un commit.</p><hr /><h1>7. Crear un commit</h1><h2><code inline="">git commit</code></h2><p>Un commit representa un conjunto de cambios guardados en el historial del repositorio.</p><p>Por ejemplo:</p><pre><code class="language-bash">git commit -m "Añadir página de inicio"
</code></pre><p>Es recomendable utilizar mensajes descriptivos.</p><p>Un buen mensaje:</p><pre><code class="language-bash">git commit -m "Corregir validación del formulario de registro"
</code></pre><p>Un mensaje poco útil:</p><pre><code class="language-bash">git commit -m "Cambios"
</code></pre><p>Podemos crear un commit y añadir automáticamente determinados cambios con:</p><pre><code class="language-bash">git commit -am "Corregir formulario"
</code></pre><p><strong>Importante:</strong> <code inline="">-a</code> no incluye archivos nuevos que todavía no estén siendo seguidos por Git. Para esos archivos tendremos que utilizar <code inline="">git add</code>.</p><hr /><h1>8. Consultar diferencias</h1><h2><code inline="">git diff</code></h2><p>Muestra los cambios que todavía no hemos añadido al staging.</p><pre><code class="language-bash">git diff
</code></pre><p>Por ejemplo, si hemos cambiado:</p><pre><code class="language-text">Hola mundo
</code></pre><p>por:</p><pre><code class="language-text">Hola mundo!
</code></pre><p>Git mostrará la diferencia.</p><p>Para consultar los cambios que ya están preparados para el próximo commit:</p><pre><code class="language-bash">git diff --staged
</code></pre><p>También podemos comparar dos commits:</p><pre><code class="language-bash">git diff abc123 def456
</code></pre><hr /><h1>9. Consultar el historial</h1><h2><code inline="">git log</code></h2><p>Muestra el historial de commits.</p><pre><code class="language-bash">git log
</code></pre><p>Una versión más compacta:</p><pre><code class="language-bash">git log --oneline
</code></pre><p>Por ejemplo:</p><pre><code class="language-text">a82f31a Corregir formulario
7c21d91 Añadir página de contacto
51ab832 Crear proyecto
</code></pre><p>Podemos visualizar el historial de forma gráfica:</p><pre><code class="language-bash">git log --oneline --graph --all
</code></pre><p>Una combinación muy útil:</p><pre><code class="language-bash">git log --oneline --graph --decorate --all
</code></pre><hr /><h1>10. Consultar un commit</h1><h2><code inline="">git show</code></h2><p>Permite consultar los detalles de un commit.</p><pre><code class="language-bash">git show a82f31a
</code></pre><p>Si queremos consultar el último commit:</p><pre><code class="language-bash">git show HEAD
</code></pre><p><code inline="">HEAD</code> representa normalmente el commit en el que estamos situados actualmente.</p><hr /><h1>11. Trabajar con ramas</h1><p>Las ramas permiten desarrollar funcionalidades de forma independiente sin modificar directamente la rama principal.</p><p>Por ejemplo:</p><pre><code class="language-text">main
  |
  A---B---C
       \
        D---E   feature-login
</code></pre><p>Podemos crear una rama para implementar un nuevo sistema de login.</p><h2><code inline="">git branch</code></h2><p>Para listar las ramas:</p><pre><code class="language-bash">git branch
</code></pre><p>Crear una rama:</p><pre><code class="language-bash">git branch feature-login
</code></pre><p>Cambiar a ella:</p><pre><code class="language-bash">git switch feature-login
</code></pre><p>También podemos crear y cambiar a la rama en un solo comando:</p><pre><code class="language-bash">git switch -c feature-login
</code></pre><hr /><h1>12. <code inline="">git checkout</code></h1><p><code inline="">git checkout</code> es un comando tradicional que puede utilizarse para cambiar de rama.</p><p>Por ejemplo:</p><pre><code class="language-bash">git checkout feature-login
</code></pre><p>También permite crear una rama:</p><pre><code class="language-bash">git checkout -b feature-login
</code></pre><p>En versiones modernas de Git se recomienda utilizar <code inline="">git switch</code> para trabajar con ramas y <code inline="">git restore</code> para restaurar archivos, ya que separan responsabilidades que históricamente estaban agrupadas en <code inline="">git checkout</code>.</p><hr /><h1>13. Fusionar ramas</h1><h2><code inline="">git merge</code></h2><p>Supongamos que hemos terminado nuestra funcionalidad:</p><pre><code class="language-text">main
 |
 A---B
      \
       C---D feature-login
</code></pre><p>Primero volvemos a <code inline="">main</code>:</p><pre><code class="language-bash">git switch main
</code></pre><p>Después fusionamos la rama:</p><pre><code class="language-bash">git merge feature-login
</code></pre><p>El resultado será algo parecido a:</p><pre><code class="language-text">A---B-------E main
     \     /
      C---D
</code></pre><p>Dependiendo del historial, Git puede realizar un <em>fast-forward</em> o crear un commit de merge.</p><hr /><h1>14. Resolver conflictos</h1><p>Los conflictos aparecen cuando Git no puede decidir automáticamente cómo combinar dos cambios.</p><p>Por ejemplo, dos ramas pueden haber modificado las mismas líneas de un archivo.</p><p>Git puede mostrar:</p><pre><code class="language-text">&lt;&lt;&lt;&lt;&lt;&lt;&lt; HEAD
Hola desde main
=======
Hola desde feature
&gt;&gt;&gt;&gt;&gt;&gt;&gt; feature
</code></pre><p>Debemos editar manualmente el archivo y decidir qué contenido queremos conservar.</p><p>Después:</p><pre><code class="language-bash">git add archivo.txt
</code></pre><p>Y finalmente:</p><pre><code class="language-bash">git commit
</code></pre><p>En un conflicto producido durante un merge también podemos cancelar la operación:</p><pre><code class="language-bash">git merge --abort
</code></pre><hr /><h1>15. <code inline="">git rebase</code></h1><p><code inline="">git rebase</code> permite colocar nuestros commits encima de otra rama.</p><p>Por ejemplo:</p><pre><code class="language-text">A---B---C main
     \
      D---E feature
</code></pre><p>Podemos hacer:</p><pre><code class="language-bash">git switch feature
git rebase main
</code></pre><p>El historial quedaría conceptualmente:</p><pre><code class="language-text">A---B---C---D'---E' feature
</code></pre><p>Los commits <code inline="">D</code> y <code inline="">E</code> han sido recreados encima de <code inline="">C</code>.</p><p>El rebase puede producir un historial más lineal, pero hay que tener cuidado al utilizarlo con ramas que otras personas ya están utilizando.</p><p>Una regla práctica:</p><blockquote><p>Evita hacer rebase de commits que ya hayas publicado y que otros desarrolladores estén utilizando, salvo que sepas exactamente cómo manejar las consecuencias.</p></blockquote><hr /><h1>16. Repositorios remotos</h1><h2><code inline="">git remote</code></h2><p>Permite gestionar repositorios remotos.</p><p>Para consultar los remotos:</p><pre><code class="language-bash">git remote -v
</code></pre><p>Normalmente veremos algo parecido a:</p><pre><code class="language-text">origin  https://github.com/usuario/proyecto.git (fetch)
origin  https://github.com/usuario/proyecto.git (push)
</code></pre><p>Añadir un remoto:</p><pre><code class="language-bash">git remote add origin https://github.com/usuario/proyecto.git
</code></pre><p>Eliminarlo:</p><pre><code class="language-bash">git remote remove origin
</code></pre><p>Cambiar su URL:</p><pre><code class="language-bash">git remote set-url origin https://github.com/usuario/nuevo-proyecto.git
</code></pre><hr /><h1>17. Descargar cambios del repositorio remoto</h1><h2><code inline="">git fetch</code></h2><p>Descarga información y cambios del repositorio remoto, pero no modifica nuestra rama de trabajo.</p><pre><code class="language-bash">git fetch
</code></pre><p>También podemos indicar el remoto:</p><pre><code class="language-bash">git fetch origin
</code></pre><p>Una ventaja importante de <code inline="">fetch</code> es que nos permite revisar los cambios antes de integrarlos.</p><hr /><h1>18. Descargar e integrar cambios</h1><h2><code inline="">git pull</code></h2><p><code inline="">git pull</code> descarga cambios y los integra en nuestra rama actual.</p><pre><code class="language-bash">git pull
</code></pre><p>Conceptualmente, suele equivaler a una combinación de:</p><pre><code class="language-bash">git fetch
git merge
</code></pre><p>También podemos utilizar:</p><pre><code class="language-bash">git pull --rebase
</code></pre><p>que descarga los cambios y realiza un rebase en lugar de un merge.</p><hr /><h1>19. Subir cambios</h1><h2><code inline="">git push</code></h2><p>Envía nuestros commits al repositorio remoto.</p><pre><code class="language-bash">git push
</code></pre><p>La primera vez que subimos una rama podemos establecer su rama remota:</p><pre><code class="language-bash">git push -u origin feature-login
</code></pre><p>Después normalmente bastará con:</p><pre><code class="language-bash">git push
</code></pre><p>Para subir la rama <code inline="">main</code>:</p><pre><code class="language-bash">git push origin main
</code></pre><hr /><h1>20. Restaurar cambios</h1><h2><code inline="">git restore</code></h2><p>Permite descartar cambios en archivos.</p><p>Por ejemplo:</p><pre><code class="language-bash">git restore archivo.txt
</code></pre><p>Esto restaura el archivo al estado del último commit.</p><p>Para sacar un archivo del staging:</p><pre><code class="language-bash">git restore --staged archivo.txt
</code></pre><p>Esto <strong>no elimina los cambios del archivo</strong>; simplemente lo devuelve fuera del staging.</p><hr /><h1>21. <code inline="">git reset</code></h1><p><code inline="">git reset</code> permite mover <code inline="">HEAD</code> y modificar el estado del staging y/o del directorio de trabajo dependiendo de la opción utilizada.</p><h3><code inline="">--soft</code></h3><pre><code class="language-bash">git reset --soft HEAD~1
</code></pre><p>Elimina el último commit del historial, pero mantiene sus cambios preparados en staging.</p><h3><code inline="">--mixed</code></h3><pre><code class="language-bash">git reset HEAD~1
</code></pre><p>Elimina el commit y mantiene los cambios en los archivos, pero fuera del staging.</p><h3><code inline="">--hard</code></h3><pre><code class="language-bash">git reset --hard HEAD~1
</code></pre><p>Elimina el commit y también los cambios asociados del directorio de trabajo.</p><p><strong>Cuidado con <code inline="">--hard</code>: los cambios que no estén guardados en otro sitio pueden perderse.</strong></p><hr /><h1>22. Deshacer un commit publicado</h1><h2><code inline="">git revert</code></h2><p>Si un commit ya ha sido compartido con otras personas, normalmente es preferible utilizar <code inline="">git revert</code>.</p><p>Por ejemplo:</p><pre><code class="language-bash">git revert a82f31a
</code></pre><p>Git creará un nuevo commit que revierte los cambios del commit indicado.</p><p>Esto es diferente de <code inline="">git reset</code>.</p><p>Una forma sencilla de recordarlo:</p><pre><code class="language-text">reset  → modifica el historial
revert → crea un nuevo commit que deshace otro
</code></pre><hr /><h1>23. Guardar cambios temporalmente</h1><h2><code inline="">git stash</code></h2><p>Imaginemos que estamos trabajando en una funcionalidad, pero necesitamos cambiar rápidamente de rama.</p><p>Tenemos cambios sin terminar y no queremos hacer un commit todavía.</p><p>Podemos utilizar:</p><pre><code class="language-bash">git stash
</code></pre><p>Git guardará temporalmente nuestros cambios.</p><p>Después podemos cambiar de rama:</p><pre><code class="language-bash">git switch main
</code></pre><p>Cuando queramos recuperar los cambios:</p><pre><code class="language-bash">git stash pop
</code></pre><p>Podemos consultar los cambios guardados:</p><pre><code class="language-bash">git stash list
</code></pre><p>Guardar un stash con un mensaje:</p><pre><code class="language-bash">git stash push -m "Trabajo en login"
</code></pre><hr /><h1>24. Eliminar archivos</h1><h2><code inline="">git rm</code></h2><p>Elimina un archivo y registra su eliminación para el próximo commit.</p><pre><code class="language-bash">git rm archivo.txt
</code></pre><p>Después:</p><pre><code class="language-bash">git commit -m "Eliminar archivo innecesario"
</code></pre><p>Si queremos eliminar un archivo del control de versiones pero conservarlo físicamente:</p><pre><code class="language-bash">git rm --cached archivo.txt
</code></pre><p>Esto resulta especialmente útil cuando hemos añadido por error un archivo que posteriormente queremos ignorar.</p><hr /><h1>25. <code inline="">.gitignore</code></h1><p>El archivo <code inline="">.gitignore</code> permite indicar a Git qué archivos o carpetas no queremos incluir en el repositorio.</p><p>Por ejemplo:</p><pre><code class="language-gitignore">node_modules/
.env
dist/
*.log
.DS_Store
</code></pre><p>Después podemos comprobar el estado:</p><pre><code class="language-bash">git status
</code></pre><p>Los archivos ignorados no aparecerán como archivos sin seguimiento.</p><p>Es especialmente importante no subir archivos que contengan contraseñas, tokens o claves privadas.</p><hr /><h1>26. Etiquetas con <code inline="">git tag</code></h1><p>Las etiquetas (<em>tags</em>) permiten marcar puntos concretos del historial.</p><p>Son muy utilizadas para identificar versiones:</p><pre><code class="language-text">v1.0.0
v1.1.0
v2.0.0
</code></pre><p>Crear una etiqueta:</p><pre><code class="language-bash">git tag v1.0.0
</code></pre><p>Listar etiquetas:</p><pre><code class="language-bash">git tag
</code></pre><p>Crear una etiqueta anotada:</p><pre><code class="language-bash">git tag -a v1.0.0 -m "Primera versión estable"
</code></pre><p>Enviar una etiqueta al repositorio remoto:</p><pre><code class="language-bash">git push origin v1.0.0
</code></pre><p>Enviar todas las etiquetas:</p><pre><code class="language-bash">git push origin --tags
</code></pre><hr /><h1>27. <code inline="">git cherry-pick</code></h1><p>Permite aplicar los cambios de un commit concreto sobre nuestra rama actual.</p><p>Por ejemplo:</p><pre><code class="language-bash">git cherry-pick a82f31a
</code></pre><p>Es útil cuando necesitamos un cambio específico sin fusionar toda una rama.</p><p>Un caso típico sería tener una corrección en una rama de desarrollo y necesitar llevar únicamente esa corrección a otra rama.</p><hr /><h1>28. <code inline="">git reflog</code></h1><p><code inline="">git reflog</code> guarda un registro de movimientos de <code inline="">HEAD</code>.</p><pre><code class="language-bash">git reflog
</code></pre><p>Puede resultar extremadamente útil cuando hemos realizado un <code inline="">reset</code>, un rebase u otra operación y queremos localizar un commit que aparentemente hemos perdido.</p><p>Por ejemplo:</p><pre><code class="language-text">a82f31a HEAD@{0}: reset: moving to HEAD~1
7c21d91 HEAD@{1}: commit: Añadir login
</code></pre><p>Podríamos recuperar el estado anterior utilizando el identificador correspondiente.</p><hr /><h1>29. <code inline="">git blame</code></h1><p>Permite saber quién modificó cada línea de un archivo y en qué commit.</p><pre><code class="language-bash">git blame archivo.txt
</code></pre><p>Por ejemplo:</p><pre><code class="language-text">a82f31a (Juan Pérez 2026-08-20) const port = 3000;
7c21d91 (Ana García 2026-08-21) app.listen(port);
</code></pre><p>Es muy útil para investigar cuándo y por qué se introdujo un cambio.</p><hr /><h1>30. <code inline="">git bisect</code></h1><p><code inline="">git bisect</code> ayuda a encontrar qué commit introdujo un error.</p><p>Git utiliza una búsqueda binaria para localizar el commit problemático.</p><p>Comenzamos:</p><pre><code class="language-bash">git bisect start
</code></pre><p>Indicamos que el estado actual es incorrecto:</p><pre><code class="language-bash">git bisect bad
</code></pre><p>Después indicamos un commit que sabemos que funcionaba:</p><pre><code class="language-bash">git bisect good v1.0.0
</code></pre><p>Git irá seleccionando commits intermedios.</p><p>Después de probar cada uno:</p><pre><code class="language-bash">git bisect good
</code></pre><p>o:</p><pre><code class="language-bash">git bisect bad
</code></pre><p>Cuando encuentre el commit culpable, terminamos:</p><pre><code class="language-bash">git bisect reset
</code></pre><hr /><h1>31. Limpiar archivos no controlados</h1><h2><code inline="">git clean</code></h2><p>Permite eliminar archivos que Git no está siguiendo.</p><p>Primero es recomendable comprobar qué eliminaría:</p><pre><code class="language-bash">git clean -n
</code></pre><p>Después podemos realizar la limpieza:</p><pre><code class="language-bash">git clean -f
</code></pre><p>Para incluir directorios:</p><pre><code class="language-bash">git clean -fd
</code></pre><p><strong>Cuidado:</strong> estos archivos pueden eliminarse de forma permanente.</p><hr /><h1>32. Crear alias</h1><p>Git permite crear alias para comandos que utilizamos frecuentemente.</p><p>Por ejemplo:</p><pre><code class="language-bash">git config --global alias.co checkout
</code></pre><p>Ahora podemos utilizar:</p><pre><code class="language-bash">git co main
</code></pre><p>Otro ejemplo:</p><pre><code class="language-bash">git config --global alias.lg "log --oneline --graph --decorate --all"
</code></pre><p>Y después:</p><pre><code class="language-bash">git lg
</code></pre><hr /><h1>33. Un flujo de trabajo completo</h1><p>Veamos ahora un ejemplo que combine varios de los comandos anteriores.</p><p>Creamos un proyecto:</p><pre><code class="language-bash">mkdir tienda
cd tienda
git init
</code></pre><p>Creamos un archivo:</p><pre><code class="language-bash">echo "# Tienda" &gt; README.md
</code></pre><p>Comprobamos el estado:</p><pre><code class="language-bash">git status
</code></pre><p>Añadimos el archivo:</p><pre><code class="language-bash">git add README.md
</code></pre><p>Creamos el primer commit:</p><pre><code class="language-bash">git commit -m "Crear proyecto"
</code></pre><p>Creamos una rama para una nueva funcionalidad:</p><pre><code class="language-bash">git switch -c feature-productos
</code></pre><p>Modificamos el proyecto y comprobamos los cambios:</p><pre><code class="language-bash">git status
git diff
</code></pre><p>Añadimos los cambios:</p><pre><code class="language-bash">git add .
</code></pre><p>Creamos el commit:</p><pre><code class="language-bash">git commit -m "Añadir gestión de productos"
</code></pre><p>Volvemos a <code inline="">main</code>:</p><pre><code class="language-bash">git switch main
</code></pre><p>Fusionamos la funcionalidad:</p><pre><code class="language-bash">git merge feature-productos
</code></pre><p>Finalmente podemos subir los cambios:</p><pre><code class="language-bash">git push origin main
</code></pre><hr /><h1>34. Los comandos Git que más utilizarás</h1><p>Aunque Git tiene muchísimos comandos y opciones, en el día a día probablemente utilizarás una parte relativamente pequeña.</p><table><thead><tr><th>Comando</th><th>Utilidad</th></tr></thead><tbody><tr><td><code inline="">git init</code></td><td>Crear un repositorio</td></tr><tr><td><code inline="">git clone</code></td><td>Clonar un repositorio</td></tr><tr><td><code inline="">git status</code></td><td>Consultar el estado</td></tr><tr><td><code inline="">git add</code></td><td>Añadir cambios al staging</td></tr><tr><td><code inline="">git commit</code></td><td>Crear un commit</td></tr><tr><td><code inline="">git log</code></td><td>Consultar el historial</td></tr><tr><td><code inline="">git diff</code></td><td>Ver diferencias</td></tr><tr><td><code inline="">git branch</code></td><td>Gestionar ramas</td></tr><tr><td><code inline="">git switch</code></td><td>Cambiar de rama</td></tr><tr><td><code inline="">git merge</code></td><td>Fusionar ramas</td></tr><tr><td><code inline="">git rebase</code></td><td>Reorganizar commits</td></tr><tr><td><code inline="">git fetch</code></td><td>Descargar información remota</td></tr><tr><td><code inline="">git pull</code></td><td>Descargar e integrar cambios</td></tr><tr><td><code inline="">git push</code></td><td>Subir cambios</td></tr><tr><td><code inline="">git restore</code></td><td>Restaurar cambios</td></tr><tr><td><code inline="">git reset</code></td><td>Mover/reorganizar el historial</td></tr><tr><td><code inline="">git revert</code></td><td>Revertir un commit</td></tr><tr><td><code inline="">git stash</code></td><td>Guardar cambios temporalmente</td></tr><tr><td><code inline="">git tag</code></td><td>Crear etiquetas</td></tr><tr><td><code inline="">git cherry-pick</code></td><td>Aplicar un commit concreto</td></tr><tr><td><code inline="">git reflog</code></td><td>Consultar movimientos de <code inline="">HEAD</code></td></tr><tr><td><code inline="">git blame</code></td><td>Consultar quién modificó cada línea</td></tr><tr><td><code inline="">git bisect</code></td><td>Encontrar el commit que introdujo un error</td></tr><tr><td><code inline="">git clean</code></td><td>Eliminar archivos no controlados</td></tr></tbody></table><hr /><h1>35. <code inline="">reset</code>, <code inline="">restore</code> y <code inline="">revert</code>: ¿cuál utilizar?</h1><p>Estos tres comandos suelen generar bastante confusión.</p><p>Una forma sencilla de diferenciarlos es:</p><h3>Quiero quitar un archivo del staging</h3><pre><code class="language-bash">git restore --staged archivo.txt
</code></pre><h3>Quiero descartar cambios de un archivo</h3><pre><code class="language-bash">git restore archivo.txt
</code></pre><h3>Quiero modificar el historial local</h3><pre><code class="language-bash">git reset HEAD~1
</code></pre><h3>Quiero deshacer un commit que ya he compartido</h3><pre><code class="language-bash">git revert &lt;commit&gt;
</code></pre><p>En equipos de trabajo, <code inline="">git revert</code> suele ser la opción más segura para deshacer cambios que ya han sido publicados.</p><hr /><h1>36. Buenas prácticas con Git</h1><p>Git es una herramienta muy potente, pero algunos hábitos hacen que el historial sea mucho más fácil de mantener.</p><h3>Haz commits pequeños</h3><p>Es mejor:</p><pre><code class="language-text">Añadir formulario de login
Corregir validación del email
Añadir mensaje de error
</code></pre><p>que un único commit:</p><pre><code class="language-text">Cambios del proyecto
</code></pre><h3>Utiliza mensajes descriptivos</h3><p>Mejor:</p><pre><code class="language-bash">git commit -m "Corregir validación del formulario"
</code></pre><p>que:</p><pre><code class="language-bash">git commit -m "fix"
</code></pre><h3>Actualiza tu rama antes de trabajar</h3><p>En un proyecto colaborativo puede ser útil comenzar sincronizando los cambios:</p><pre><code class="language-bash">git pull
</code></pre><h3>No subas secretos</h3><p>Nunca deberíamos incluir directamente en Git:</p><pre><code class="language-text">.env
passwords.txt
private-key.pem
</code></pre><p>Utiliza <code inline="">.gitignore</code> y mecanismos adecuados de gestión de secretos.</p><h3>Revisa antes de hacer commit</h3><p>Antes de confirmar cambios:</p><pre><code class="language-bash">git status
git diff
git diff --staged
</code></pre><p>Así evitaremos subir accidentalmente archivos o modificaciones que no queríamos incluir.</p><hr /><h1>37. Chuleta rápida de Git</h1><p>Para terminar, aquí tienes una pequeña referencia que puedes guardar:</p><pre><code class="language-bash"># Configuración
git config --global user.name "Nombre"
git config --global user.email "email@example.com"

# Crear / clonar
git init
git clone &lt;url&gt;

# Estado y cambios
git status
git diff
git add .
git commit -m "Mensaje"

# Historial
git log
git log --oneline
git show &lt;commit&gt;

# Ramas
git branch
git switch &lt;rama&gt;
git switch -c &lt;rama&gt;
git merge &lt;rama&gt;
git rebase &lt;rama&gt;

# Remotos
git remote -v
git fetch
git pull
git push

# Deshacer cambios
git restore &lt;archivo&gt;
git restore --staged &lt;archivo&gt;
git reset HEAD~1
git revert &lt;commit&gt;

# Trabajo temporal
git stash
git stash list
git stash pop

# Versiones
git tag
git tag v1.0.0
git push origin --tags

# Comandos avanzados
git cherry-pick &lt;commit&gt;
git reflog
git blame &lt;archivo&gt;
git bisect
git clean -n
</code></pre><hr /><h1>Conclusión</h1><p>Git puede parecer complicado al principio porque tiene una gran cantidad de comandos y conceptos, pero el flujo básico es bastante sencillo:</p><pre><code class="language-text">          ┌─────────────┐
          │   Modificar │
          │   archivos  │
          └──────┬──────┘
                 ↓
          ┌─────────────┐
          │  git add    │
          │   Staging   │
          └──────┬──────┘
                 ↓
          ┌─────────────┐
          │  git commit │
          │   Historial │
          └──────┬──────┘
                 ↓
          ┌─────────────┐
          │  git push   │
          │   Remoto    │
          └─────────────┘
</code></pre><p>Si estás empezando, céntrate primero en dominar:</p><pre><code class="language-bash">git status
git add
git commit
git log
git branch
git switch
git merge
git pull
git push
</code></pre><p>Una vez tengas claro este flujo, comandos como <code inline="">rebase</code>, <code inline="">cherry-pick</code>, <code inline="">reflog</code> o <code inline="">bisect</code> serán mucho más fáciles de entender.</p><p>Git no consiste en memorizar cientos de comandos, sino en entender <strong>cómo se mueve un cambio desde tu directorio de trabajo hasta el historial y, finalmente, hasta el repositorio remoto</strong>.</p>								</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-70180db elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="70180db" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-c7b407d" data-id="c7b407d" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3c0beed elementor-widget-divider--view-line_icon elementor-view-stacked elementor-widget-divider--element-align-center elementor-widget elementor-widget-divider" data-id="3c0beed" data-element_type="widget" data-e-type="widget" data-widget_type="divider.default">
				<div class="elementor-widget-container">
							<div class="elementor-divider">
			<span class="elementor-divider-separator">
							<div class="elementor-icon elementor-divider__element">
					<i aria-hidden="true" class="fab fa-git"></i></div>
						</span>
		</div>
						</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				<section class="elementor-section elementor-top-section elementor-element elementor-element-fa8e0f9 elementor-section-boxed elementor-section-height-default elementor-section-height-default" data-id="fa8e0f9" data-element_type="section" data-e-type="section">
						<div class="elementor-container elementor-column-gap-default">
					<div class="elementor-column elementor-col-100 elementor-top-column elementor-element elementor-element-40245d0" data-id="40245d0" data-element_type="column" data-e-type="column">
			<div class="elementor-widget-wrap elementor-element-populated">
						<div class="elementor-element elementor-element-3a89940 elementor-widget elementor-widget-html" data-id="3a89940" data-element_type="widget" data-e-type="widget" data-widget_type="html.default">
				<div class="elementor-widget-container">
					<style>
.git-post{max-width:900px;margin:auto;font-family:system-ui,-apple-system,"Segoe UI",sans-serif;color:#1f2937;line-height:1.65}.git-post h1,.git-post h2{color:#111827;line-height:1.2}.git-post h1{font-size:2.2rem}.git-post h2{margin-top:2.4rem}.git-post .lead{font-size:1.15rem;color:#4b5563}.git-post .note{background:#eff6ff;border-left:4px solid #2563eb;padding:1rem 1.2rem;border-radius:4px}.git-post .tip{background:#f0fdf4;border-left:4px solid #16a34a;padding:1rem 1.2rem;border-radius:4px}.git-post .command{background:#111827;color:#f9fafb;border-radius:8px;padding:1rem 1.2rem;overflow:auto}.git-post code{font-family:ui-monospace,SFMono-Regular,Consolas,monospace}.git-post :not(pre)>code{background:#f3f4f6;color:#be123c;padding:.12rem .35rem;border-radius:4px}.git-post table{width:100%;border-collapse:collapse;margin:1rem 0}.git-post th,.git-post td{padding:.75rem;text-align:left;border-bottom:1px solid #e5e7eb}.git-post th{background:#f9fafb}.git-post .diagram{margin:1.5rem 0;padding:1rem;background:#f8fafc;border-radius:10px}.git-post .caption{font-size:.9rem;color:#4b5563;margin-top:.25rem}
</style>
<article class="git-post">
<h1>Repasemos los comandos esenciales con ejemplos y gráficos que nos ayudarán a entender su lógica.</h1>
<div class="note"><strong>Antes de empezar:</strong> Git registra el historial de cambios. GitHub, GitLab o Bitbucket son servicios remotos donde puedes alojar ese historial y colaborar.</div>
<h2>El mapa mental de Git</h2>
<p>La mayor parte del trabajo consiste en mover cambios desde tu carpeta, al área de preparación, al historial local y finalmente al remoto.</p>
<figure class="diagram"><svg viewBox="0 0 840 230" role="img" aria-labelledby="flow-title flow-desc" style="width:100%;height:auto"><title id="flow-title">Flujo básico de cambios en Git</title><desc id="flow-desc">Los cambios pasan de la carpeta de trabajo al área de preparación con git add, al historial local con git commit y al repositorio remoto con git push.</desc><defs><marker id="arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#2563eb"/></marker></defs><g font-family="system-ui,sans-serif" text-anchor="middle"><rect x="20" y="72" width="170" height="76" rx="10" fill="#dbeafe"/><text x="105" y="104" font-size="17">Carpeta de trabajo</text><text x="105" y="128" font-size="13">modificas archivos</text><rect x="230" y="72" width="170" height="76" rx="10" fill="#fef3c7"/><text x="315" y="104" font-size="17">Staging area</text><text x="315" y="128" font-size="13">seleccionas cambios</text><rect x="440" y="72" width="170" height="76" rx="10" fill="#dcfce7"/><text x="525" y="104" font-size="17">Repositorio local</text><text x="525" y="128" font-size="13">guardas un hito</text><rect x="650" y="72" width="170" height="76" rx="10" fill="#f3e8ff"/><text x="735" y="104" font-size="17">Repositorio remoto</text><text x="735" y="128" font-size="13">compartes cambios</text><path d="M190 110H227 M400 110H437 M610 110H647" stroke="#2563eb" stroke-width="3" marker-end="url(#arrow)"/><text x="210" y="58" font-size="15" fill="#1d4ed8">git add</text><text x="420" y="58" font-size="15" fill="#1d4ed8">git commit</text><text x="630" y="58" font-size="15" fill="#1d4ed8">git push</text><path d="M735 165 C735 210,525 210,525 165" fill="none" stroke="#7c3aed" stroke-width="2.5" marker-end="url(#arrow)"/><text x="630" y="210" font-size="15" fill="#6d28d9">git pull / git fetch</text></g></svg><figcaption class="caption">Cada comando desplaza los cambios de una zona a otra.</figcaption></figure>
<h2>Configuración inicial: <code>git config</code></h2>
<p>Identifica los cambios con tu nombre y correo. La opción <code>--global</code> guarda la preferencia para todos los repositorios.</p>
<pre class="command"><code>git config --global user.name "Tu Nombre"
git config --global user.email "tu@email.com"
git config --list</code></pre>
<h2>1. Crear, descargar y revisar</h2>
<pre class="command"><code># Crear un repositorio en la carpeta actual
git init

# Descargar un repositorio remoto
git clone https://github.com/usuario/mi-proyecto.git
cd mi-proyecto

# Consultar el estado y las líneas modificadas
git status
git diff
git diff --staged</code></pre>
<h2>2. Preparar y guardar cambios</h2>
<p><code>git add</code> selecciona cambios para el siguiente hito. <code>git commit</code> crea ese hito en tu historial local.</p>
<pre class="command"><code># Añadir un archivo concreto o todos los cambios
git add articulo-git.html
git add .

# Crear el commit
git commit -m "Añade guía básica de comandos Git"

# Historial compacto y visual
git log --oneline --graph --all</code></pre>
<div class="tip"><strong>Consejo:</strong> cada commit debería contener una única idea: “corrige enlace roto” es mucho más útil que “varios cambios”.</div>
<h2>3. Trabajar con ramas y fusionarlas</h2>
<p>Una rama es una línea de trabajo independiente: permite construir una mejora sin alterar <code>main</code> hasta que esté lista.</p>
<pre class="command"><code># Crear y cambiar a una rama nueva
git switch -c mejora-menu

# Ver ramas y volver a la principal
git branch
git switch main

# Integrar la mejora y borrar la rama terminada
git merge mejora-menu
git branch -d mejora-menu</code></pre>
<figure class="diagram"><svg viewBox="0 0 840 250" role="img" aria-labelledby="branch-title branch-desc" style="width:100%;height:auto"><title id="branch-title">Ejemplo de una rama y su integración</title><desc id="branch-desc">La rama main continúa con commits azules. La rama mejora-menu se separa, recibe dos commits verdes y luego se integra mediante merge.</desc><g font-family="system-ui,sans-serif" font-size="15"><text x="20" y="86">main</text><text x="20" y="176">mejora-menu</text><path d="M85 80H755" stroke="#2563eb" stroke-width="4"/><path d="M280 80 C335 80,330 170,405 170 H535 C600 170,600 80,670 80" fill="none" stroke="#16a34a" stroke-width="4"/><g fill="#2563eb"><circle cx="130" cy="80" r="11"/><circle cx="280" cy="80" r="11"/><circle cx="670" cy="80" r="11"/><circle cx="755" cy="80" r="11"/></g><g fill="#16a34a"><circle cx="405" cy="170" r="11"/><circle cx="535" cy="170" r="11"/></g><text x="130" y="52" text-anchor="middle">inicio</text><text x="280" y="52" text-anchor="middle">crear rama</text><text x="470" y="205" text-anchor="middle">trabajo aislado</text><text x="670" y="52" text-anchor="middle">merge</text><text x="755" y="52" text-anchor="middle">publicar</text></g></svg><figcaption class="caption">Las ramas aíslan el trabajo hasta que decides integrarlo.</figcaption></figure>
<h2>4. Colaborar: <code>git push</code>, <code>git pull</code> y <code>git fetch</code></h2>
<table><thead><tr><th>Comando</th><th>Qué hace</th><th>Cuándo usarlo</th></tr></thead><tbody><tr><td><code>git push</code></td><td>Envía tus commits al remoto.</td><td>Al terminar un bloque listo para compartir.</td></tr><tr><td><code>git pull</code></td><td>Descarga e integra cambios remotos.</td><td>Antes de empezar y antes de subir cambios.</td></tr><tr><td><code>git fetch</code></td><td>Descarga referencias sin cambiar tus archivos.</td><td>Para revisar novedades con seguridad.</td></tr></tbody></table>
<pre class="command"><code>git push -u origin mejora-menu
git pull
git fetch origin

# Ver y modificar la dirección del remoto
git remote -v
git remote set-url origin https://github.com/usuario/nuevo-proyecto.git</code></pre>
<h2>5. Guardar trabajo a medias: <code>git stash</code></h2>
<p>Cuando debes cambiar de rama sin hacer un commit incompleto, el stash aparta los cambios no confirmados y deja la carpeta limpia.</p>
<pre class="command"><code>git stash push -m "Borrador de contacto"
git stash list
git stash pop       # Recupera y elimina el último stash
git stash apply     # Recupera, pero lo conserva en la lista</code></pre>
<figure class="diagram"><svg viewBox="0 0 840 230" role="img" aria-labelledby="stash-title stash-desc" style="width:100%;height:auto"><title id="stash-title">Flujo de git stash</title><desc id="stash-desc">Git stash mueve cambios sin confirmar a un almacenamiento temporal y los recupera con git stash pop.</desc><defs><marker id="stash-arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#7c3aed"/></marker></defs><g font-family="system-ui,sans-serif" text-anchor="middle"><rect x="35" y="76" width="200" height="70" rx="10" fill="#dbeafe"/><text x="135" y="105" font-size="17">Cambios sin commit</text><text x="135" y="129" font-size="13">en tu rama actual</text><rect x="320" y="76" width="200" height="70" rx="10" fill="#f3e8ff"/><text x="420" y="105" font-size="17">Stash temporal</text><text x="420" y="129" font-size="13">cambios guardados</text><rect x="605" y="76" width="200" height="70" rx="10" fill="#dcfce7"/><text x="705" y="105" font-size="17">Cambios recuperados</text><text x="705" y="129" font-size="13">en la rama que elijas</text><path d="M235 111H317 M520 111H602" stroke="#7c3aed" stroke-width="3" marker-end="url(#stash-arrow)"/><text x="277" y="61" font-size="15" fill="#6d28d9">git stash</text><text x="560" y="61" font-size="15" fill="#6d28d9">git stash pop</text></g></svg><figcaption class="caption">El stash es un cajón temporal: no sustituye a un commit.</figcaption></figure>
<h2>6. Comparar, buscar y atribuir cambios</h2>
<pre class="command"><code># Comparar dos ramas
git diff main...mejora-menu

# Commits de la rama actual que no están en main
git log main..HEAD --oneline

# Quién modificó cada línea de un archivo
git blame articulo-git.html

# Buscar texto en los archivos versionados
git grep "git push"</code></pre>
<h2>7. Etiquetar versiones: <code>git tag</code></h2>
<p>Una etiqueta marca un commit importante, como una versión publicada, y normalmente no se mueve con nuevos commits.</p>
<pre class="command"><code>git tag -a v1.0.0 -m "Primera versión pública"
git tag
git push origin v1.0.0
git push origin --tags</code></pre>
<h2>8. Deshacer y recuperar con cuidado</h2>
<pre class="command"><code># Quitar un archivo del staging area sin perder sus cambios
git restore --staged articulo-git.html

# Descartar cambios sin commit: acción irreversible
git restore articulo-git.html

# Crear un commit que revierte otro ya publicado
git revert &lt;hash-del-commit&gt;

# Localizar movimientos recientes y recuperar un commit
git reflog
git switch -c recuperar-trabajo &lt;hash&gt;</code></pre>
<figure class="diagram"><svg viewBox="0 0 840 260" role="img" aria-labelledby="reflog-title reflog-desc" style="width:100%;height:auto"><title id="reflog-title">Recuperación de un commit mediante git reflog</title><desc id="reflog-desc">Un commit que dejó de estar referenciado por una rama puede localizarse en el reflog y recuperarse creando una nueva rama en ese hash.</desc><defs><marker id="recover-arrow" markerWidth="10" markerHeight="10" refX="9" refY="3" orient="auto"><path d="M0,0 L0,6 L9,3 z" fill="#dc2626"/></marker></defs><g font-family="system-ui,sans-serif" text-anchor="middle"><path d="M110 85H700" stroke="#94a3b8" stroke-width="4"/><circle cx="180" cy="85" r="12" fill="#2563eb"/><circle cx="380" cy="85" r="12" fill="#2563eb"/><circle cx="580" cy="85" r="12" fill="#dc2626"/><text x="180" y="55" font-size="15">commit A</text><text x="380" y="55" font-size="15">commit B</text><text x="580" y="55" font-size="15">commit perdido</text><path d="M580 105V178H700" fill="none" stroke="#dc2626" stroke-width="3" marker-end="url(#recover-arrow)"/><rect x="695" y="146" width="120" height="65" rx="10" fill="#dcfce7"/><text x="755" y="173" font-size="15">rama nueva</text><text x="755" y="194" font-size="13">recuperar-trabajo</text><text x="440" y="175" font-size="15" fill="#b91c1c">git reflog → git switch -c</text></g></svg><figcaption class="caption">El reflog es local: actúa pronto, pues Git limpia objetos sin referencias con el tiempo.</figcaption></figure>
<div class="note"><strong>Regla de oro:</strong> evita <code>git reset --hard</code> si no entiendes exactamente qué perderás. En trabajo compartido, <code>git revert</code> suele ser más seguro porque conserva el historial.</div>
<h2>Chuleta de comandos esenciales</h2>
<table><thead><tr><th>Objetivo</th><th>Comando</th></tr></thead><tbody><tr><td>Ver estado</td><td><code>git status</code></td></tr><tr><td>Revisar cambios</td><td><code>git diff</code></td></tr><tr><td>Preparar cambios</td><td><code>git add .</code></td></tr><tr><td>Crear un hito</td><td><code>git commit -m "mensaje"</code></td></tr><tr><td>Guardar trabajo temporal</td><td><code>git stash</code></td></tr><tr><td>Ver historial</td><td><code>git log --oneline</code></td></tr><tr><td>Recuperar referencias locales</td><td><code>git reflog</code></td></tr><tr><td>Crear rama</td><td><code>git switch -c nombre-rama</code></td></tr><tr><td>Fusionar rama</td><td><code>git merge nombre-rama</code></td></tr><tr><td>Etiquetar una versión</td><td><code>git tag -a v1.0.0 -m "mensaje"</code></td></tr><tr><td>Compartir cambios</td><td><code>git push</code></td></tr><tr><td>Actualizarte</td><td><code>git pull</code></td></tr></tbody></table>
<h2>Un flujo diario recomendado</h2>
<pre class="command"><code>git pull                 # Ponte al día
git status               # Revisa el estado
# ... edita archivos ...
git diff                 # Comprueba tus cambios
git add .                # Prepara los cambios deseados
git commit -m "Describe el cambio"
git push                 # Compártelos</code></pre>
<p>Con esta secuencia, Git deja de ser una colección de comandos y pasa a ser una red de seguridad: cada cambio queda documentado, recuperable y listo para colaborar.</p>
</article>
				</div>
				</div>
					</div>
		</div>
					</div>
		</section>
				</div>
		]]></content:encoded>
					
					<wfw:commentRss>https://vicweb.es/primeros-pasos-con-git/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">5231</post-id>	</item>
	</channel>
</rss>
