<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom"><channel><title>Zsh | Luis Cacho</title><link>https://luiscachog.io/tag/zsh/</link><atom:link href="https://luiscachog.io/tag/zsh/index.xml" rel="self" type="application/rss+xml"/><description>Zsh</description><generator>Wowchemy (https://wowchemy.com)</generator><language>en-us</language><lastBuildDate>Tue, 03 Dec 2019 00:00:00 +0000</lastBuildDate><image><url>https://luiscachog.io/media/icon_hu4fa4dbbaafd6f1b45a88958b9b4a0dd0_11007_512x512_fill_lanczos_center_3.png</url><title>Zsh</title><link>https://luiscachog.io/tag/zsh/</link></image><item><title>Gestion de History</title><link>https://luiscachog.io/gestion-de-history/</link><pubDate>Tue, 03 Dec 2019 00:00:00 +0000</pubDate><guid>https://luiscachog.io/gestion-de-history/</guid><description>&lt;details class="toc-inpage d-print-none " open>
&lt;summary class="font-weight-bold">Table of Contents&lt;/summary>
&lt;nav id="TableOfContents">
&lt;ul>
&lt;li>&lt;a href="#mostrar-la-fecha-y-hora-de-cuando-escribimos-comandos">Mostrar la fecha y hora de cuando escribimos comandos&lt;/a>&lt;/li>
&lt;li>&lt;a href="#control-del-tamaño-del-archivo-de-logs-histórico">Control del tamaño del archivo de logs histórico&lt;/a>
&lt;ul>
&lt;li>&lt;a href="#control-de-duplicados-en-el-histórico">Control de duplicados en el histórico&lt;/a>&lt;/li>
&lt;li>&lt;a href="#path-para-guardar-el-archivo-de-logs-histórico">Path para guardar el archivo de logs histórico&lt;/a>&lt;/li>
&lt;/ul>
&lt;/li>
&lt;/ul>
&lt;/nav>
&lt;/details>
&lt;p>El archivo de logs histórico (history) tiene varias opciones que podemos cambiar para tener un mejor control del mismo.
Aquí vamos a ver algunas opciones para el control y gestión del fichero del log histórico (history).&lt;/p>
&lt;h2 id="mostrar-la-fecha-y-hora-de-cuando-escribimos-comandos">Mostrar la fecha y hora de cuando escribimos comandos&lt;/h2>
&lt;p>Para mostrar la fecha y hora en el formato que requieras puedes agregas las lineas siguientes:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">HISTTIMEFORMAT&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="s1">&amp;#39;- %F %T - &amp;#39;&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h2 id="control-del-tamaño-del-archivo-de-logs-histórico">Control del tamaño del archivo de logs histórico&lt;/h2>
&lt;p>Tenemos dos variables de entorno para ello, &lt;em>HISTSIZE&lt;/em> y &lt;em>HISTFILESIZE&lt;/em>, que indican el tamaño del fichero, por ejemplo:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTSIZE&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTFILESIZE&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">1000&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con esto hacemos que el tamaño máximo del fichero de logs histórico sea de 1000 comandos o líneas.&lt;/p>
&lt;div class="alert alert-note">
&lt;div>
&lt;p>Si ponemos el tamaño de la variable &lt;em>HISTSIZE&lt;/em> a &lt;strong>cero&lt;/strong> hacemos que no se guarde nada en el archivo de logs histórico&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nb">export&lt;/span> &lt;span class="nv">HISTSIZE&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">0&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>
&lt;/div>
&lt;/div>
&lt;h3 id="control-de-duplicados-en-el-histórico">Control de duplicados en el histórico&lt;/h3>
&lt;p>En el log histórico se van guardando &lt;strong>TODOS&lt;/strong> los comandos que se van introduciendo aunque repitamos 20 veces el mismo comando, se guardará 20 veces, lo cual es en ocasiones una perdida de espacio.
Por lo que podemos usar la variable &lt;em>HISTCONTROL&lt;/em> para hacer 2 cosas:&lt;/p>
&lt;ul>
&lt;li>Eliminar los duplicados consecutivos con &lt;em>ignoredups&lt;/em>.&lt;/li>
&lt;li>Eliminar los duplicados sean o no consecutivos con &lt;em>erasedups&lt;/em>.&lt;/li>
&lt;/ul>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTCONTROL&lt;/span>&lt;span class="o">=&lt;/span>ignoredups
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTCONTROL&lt;/span>&lt;span class="o">=&lt;/span>erasedups
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;h3 id="path-para-guardar-el-archivo-de-logs-histórico">Path para guardar el archivo de logs histórico&lt;/h3>
&lt;p>Por defecto el histórico se guarda en &lt;code>~/.bash_history&lt;/code> pero podemos indicar donde guardarlo con la variable &lt;em>HISTFILE&lt;/em>.&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTFILE&lt;/span>&lt;span class="o">=&lt;/span>~/.bitacora.
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Un truco muy bueno cuando en un mismo servidor entran varios administradores que se pasan a root y poder controlar y guardar que hace cada uno es:
Guardar un archivo de logs histórico por cada uno de ellos.
Lo puedes hacer de la siguiente forma:&lt;/p>
&lt;div class="highlight">&lt;pre tabindex="0" class="chroma">&lt;code class="language-shell" data-lang="shell">&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTSIZE&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">5000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTFILESIZE&lt;/span>&lt;span class="o">=&lt;/span>&lt;span class="m">5000&lt;/span>
&lt;/span>&lt;/span>&lt;span class="line">&lt;span class="cl">&lt;span class="nv">HISTFILE&lt;/span>&lt;span class="o">=&lt;/span>/root/.bash_hist-&lt;span class="k">$(&lt;/span>who am i &lt;span class="p">|&lt;/span> awk &lt;span class="s1">&amp;#39;{print $1}&amp;#39;&lt;/span>&lt;span class="p">;&lt;/span>&lt;span class="nb">exit&lt;/span>&lt;span class="k">)&lt;/span>
&lt;/span>&lt;/span>&lt;/code>&lt;/pre>&lt;/div>&lt;p>Con esto se guardará en el home de del usuario root un archivo de logs histórico por cada uno de los usuarios que se hayan pasado a root.
El tamaño se puede ampliar o reducir a gusto. También podemos poner que ignore duplicados.&lt;/p>
&lt;p>Todas estas variables debemos ponerlas en un archivo donde se activen al arranque que puede ser &lt;code>~/.bashrc&lt;/code>.&lt;/p>
&lt;p>Espero les sea útilidad.&lt;/p>
&lt;p>&amp;#x1f604;&lt;/p></description></item></channel></rss>