<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://miguelangel.torresegea.es/wiki/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://miguelangel.torresegea.es/wiki/feed.php">
        <title>miguel angel torres egea</title>
        <description></description>
        <link>https://miguelangel.torresegea.es/wiki/</link>
        <image rdf:resource="https://miguelangel.torresegea.es/wiki/_media/wiki:dokuwiki-128.png" />
       <dc:date>2026-05-23T17:23:41+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:1st-last?rev=1321351182&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:ficherosinicio?rev=1675155487&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:shellvariables?rev=1727780019&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:docker:start?rev=1581629161&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:cron:cron?rev=1770632632&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:kdeneon:start?rev=1613073641&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:mount:start?rev=1767805329&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:screen?rev=1685079106&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:getopts?rev=1547928366&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:systemd:start?rev=1637991770&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:iptables?rev=1587317855&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:vim:comandos?rev=1604787919&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:vim:start?rev=1479165291&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:aptget:start?rev=1759250047&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:find?rev=1725268231&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:locales?rev=1594132941&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:blockdevices?rev=1613766184&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:historyexpansion?rev=1579511775&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:sed?rev=1554881427&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:fsh:sys?rev=1613057041&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:librerias:start?rev=1613257473&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:openvpn?rev=1588187731&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:sysstat?rev=1321351182&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:agente?rev=1777967047&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:keys?rev=1777967067&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:start?rev=1698246004&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:aptget:apt?rev=1741600997&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:aptget:repos?rev=1566804756&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:arrays?rev=1539085719&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:locale?rev=1763374899&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:ps1?rev=1536065962&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:docker:masterclass?rev=1543332294&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:fsh:start?rev=1731409382&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:hard:start?rev=1606847267&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:install:start?rev=1684584542&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:tareasserver?rev=1347554934&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ubuntu:start?rev=1715085125&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:globbing?rev=1585000649&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:background:start?rev=1579346279&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:awk?rev=1582615767&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:dd?rev=1752601467&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:grep?rev=1576251056&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:mlocate?rev=1708086824&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:xev?rev=1631270509&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:install-corp?rev=1580459180&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:filesystem:ddrescue?rev=1755680310&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:filesystem:mbr2gpt?rev=1731489132&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:filesystem:udisks?rev=1649070557&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:log:logstash?rev=1479172002&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:log:start?rev=1681813259&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:backupgpg?rev=1584903148&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:protocolobackup?rev=1330366804&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:sudo:start?rev=1715072349&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tomcat:install?rev=1538038548&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ufw:start?rev=1756889908&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:utils:bat?rev=1764580784&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:utils:find-fd?rev=1763539345&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:log:rsyslogd:paso2?rev=1479168652&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:java:start?rev=1585937017&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:aptget:dpkg?rev=1741601006&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:alias?rev=1536305720&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:debug?rev=1516612329&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:indirectreferences?rev=1543427202&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:less?rev=1533202124&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:bash:librerias-dinamicas?rev=1674210840&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:certificados:pki?rev=1558438235&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:cron:anacron?rev=1605886810&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:install-9?rev=1582703814&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:filesystem:inodes?rev=1614938829&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:mount:smb?rev=1668423100&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:findimagedupes?rev=1535013969&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:pivpn?rev=1727889383&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:pureftpd?rev=1540372183&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:paquetes:vsftpd?rev=1527955134&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:rsync:backup?rev=1585390650&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:home?rev=1654849975&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:scripts:start?rev=1613914961&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:seguridad:hackchecklist?rev=1597225140&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:seguridad:secureboot?rev=1695801714&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:seguridad:start?rev=1715770310&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:chroot?rev=1777967080&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:clientconfig?rev=1777967022&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:ssh:varios?rev=1777967135&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:systemd:journalctl?rev=1640200694&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:dig?rev=1556648584&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:nmap?rev=1689772815&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:tcpip:ss?rev=1601650463&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:users:start?rev=1772529314&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:utils:ls?rev=1749128028&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:xwindows:start?rev=1641073285&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:modifiers?rev=1584881444&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:start?rev=1758555368&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:zsh:zmv?rev=1585000143&amp;do=diff"/>
                <rdf:li rdf:resource="https://miguelangel.torresegea.es/wiki/linux:debian:seedbos:rutorrent?rev=1580595855&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://miguelangel.torresegea.es/wiki/_media/wiki:dokuwiki-128.png">
        <title>miguel angel torres egea</title>
        <link>https://miguelangel.torresegea.es/wiki/</link>
        <url>https://miguelangel.torresegea.es/wiki/_media/wiki:dokuwiki-128.png</url>
    </image>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:1st-last?rev=1321351182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-15T09:59:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ejecutar el primer o último día del mes</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:1st-last?rev=1321351182&amp;do=diff</link>
        <description>ejecutar el primer o último día del mes


#! /usr/bin/ksh
alias datecalc=/usr/local/bin/datecalc

#  weekselector ---  script to assist in scheduling cron jobs
#  Perderabo  Oct 11, 2003
#
#  example:
#  You want to run command1 on the first monday of each month and
#  you want to run command2 on the last monday of each month.
#  Just use this syntax:
#
#    0 0 * * 1 /usr/local/bin/weekselector 1st &amp;&amp; command1
#    0 0 * * 1 /usr/local/bin/weekselector last &amp;&amp; command2
#
#  Version 2.0  March 2…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:ficherosinicio?rev=1675155487&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-31T08:58:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Los ficheros de inicio de Bash</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:ficherosinicio?rev=1675155487&amp;do=diff</link>
        <description>Los ficheros de inicio de Bash

tipos de shell

	*  Interactivo: permite interactuar, ejecutando comandos introducidos desde el teclado.
	*  No Interactivo: ejecuta los comandos desde un script
	*  De Inicio: los shells que se ejecutan justo después de haberse identificado. Son los que solicitan usuario y contraseña (versus los interactivos que no la solicitan, que no serían de inicio)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:shellvariables?rev=1727780019&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-01T10:53:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Special Shell Variables &amp; Parameter Substitution and Expansion</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:shellvariables?rev=1727780019&amp;do=diff</link>
        <description>Special Shell Variables &amp; Parameter Substitution and Expansion

linux

bash

$ es utilizado para expansión de parámetros y sustitución de comandos

File descriptors

Special Shell Variables
 variable  Significado  $0        Nombre del script que se está ejecutando</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:docker:start?rev=1581629161&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-13T21:26:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>docker (first contact)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:docker:start?rev=1581629161&amp;do=diff</link>
        <description>docker (first contact)

docker

un poco de historia

	*  docker monta un sistema de containerización que permite lanzar nuevas instancias de S.O. aprovechando los recursos (hard) de la máquina Y el kernel del SO ya corriendo, lo que hace más óptimo el aprovechamiendo de recursos que las máquinas virtuales (que recrean un ordenador al completo, con sus propios kernels y sistemas de ficheros)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:cron:cron?rev=1770632632&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-02-09T10:23:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>cron / crontab</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:cron:cron?rev=1770632632&amp;do=diff</link>
        <description>cron / crontab

Conceptos básicos

Cron se ejecuta en el background, revisa cada minuto la tabla de tareas crontab /etc/crontab o en /var/spool/cron

comprobar si está en ejecución:

$ ps -ef | grep crond

Añadir el servicio si no lo estuviera:

$ chkconfig --level 35 crond on</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:kdeneon:start?rev=1613073641&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-11T20:00:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>KDE Neon</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:kdeneon:start?rev=1613073641&amp;do=diff</link>
        <description>KDE Neon

restart

	*  kinfocenter --version
	*  reiniciar KDE Plasma &gt; 5.10: kquitapp5 plasmashell || killall plasmashell &amp;&amp; kstart5 plasmashell

info

problemas

	*  al habilitar ¿AHCI + HotSwap?, acceso a discos deficiente, lento
	*  ACPI: &lt;https://www.quijotelibre.com/2017/10/12/acpi-error-una-tonteria-de-gnulinux-que-me-ha-vuelto-loco/&gt;

acceso GRUB</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:mount:start?rev=1767805329&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-01-07T17:02:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mount</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:mount:start?rev=1767805329&amp;do=diff</link>
        <description>mount

linux

SMB mount

comandos

	*  
findmnt

		*  solo bind: 
findmnt | grep  &quot;\[&quot;


	*  
lsblk

		*  -f: etiquetas particiones
		*  -m: size,owner,group
		*  -o NAME,UUID,PARTUUID

	*  
blkid

	*  /dev/disk -&gt; /dev/disk/by-uuid

check disco

	*  &lt;https://ignoresysprereqs.blogspot.com/2011/11/forzar-chequeo-de-disco-al-reiniciar.html&gt;
	*  usar tune2fs</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:screen?rev=1685079106&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-26T05:31:46+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>configuración/uso screen</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:seedbox:screen?rev=1685079106&amp;do=diff</link>
        <description>configuración/uso screen

install &amp; help

	*  
sudo apt install screen

	*  &lt;https://linuxize.com/post/how-to-use-linux-screen/&gt;
	*  &lt;https://www.gnu.org/software/screen/manual/screen.html&gt;
	*  versión moderna TMUX: &lt;https://www.howtogeek.com/671422/how-to-use-tmux-on-linux-and-why-its-better-than-screen/&gt;

comando

	*  screeen -ls: lista sesiones
	*  screen -r [&lt;sesion&gt;] : retornar a última sesión o a sesión específica
	*  screen -S &lt;nombre&gt;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:getopts?rev=1547928366&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-01-19T20:06:06+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>getopts</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:getopts?rev=1547928366&amp;do=diff</link>
        <description>getopts

buen tutorial: &lt;https://wiki.bash-hackers.org/howto/getopts_tutorial&gt;

uso

	*  la cadena que acompaña a la instrucción getopts indica las opciones disponibles
	*  getopts OPTSTRING VARNAME [ARGS...]
		*  OPTSTRING:
			*  h: comprueba la opción -h sin parámetros. Da error en opciones no soportadas</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:systemd:start?rev=1637991770&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-11-27T05:42:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>systemd</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:systemd:start?rev=1637991770&amp;do=diff</link>
        <description>systemd

sistema de gestión de servicios que sustituye a systemV


-&gt; via: &lt;https://linoxide.com/linux-command/systemd-vs-sysvinit-cheatsheet/&gt;

en lugar de multitud de pequeños scripts de incialización de consola, el método systemd utiliza un único programa que usa archivos de configuración individuales para cada servicio</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:iptables?rev=1587317855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-19T17:37:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>iptables</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:iptables?rev=1587317855&amp;do=diff</link>
        <description>iptables

uso

mantener las conexiones ya establecidas, incluso conmigo mismo:

# iptables -A INPUT -m commtrack --ctstate RELATED,ESTABLISHED -j ACCEPT

# iptables -A INPUT -s 127.0.0.1 -j ACCEPT

descartar todos los paquetes entrantes:

# iptables -P INPUT DROP</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:vim:comandos?rev=1604787919&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-07T22:25:19+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vim</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:vim:comandos?rev=1604787919&amp;do=diff</link>
        <description>vim



linux

/vía: &lt;https://www.catswhocode.com/blog/vim-cheat-sheet-for-2016&gt;

/vía:&lt;http://www.catswhocode.com/blog/130-essential-vim-commands&gt;

info

	*  .vimrc
	*  1 al día por mlechon

Plugins/extensiones/personalización
&lt;https://kadekillary.work/post/statusline/&gt;&lt;https://gist.github.com/millermedeiros/1262085&gt;
	*  gestión/instalación plugins en sus propios directorios (runtimepath): &lt;https://github.com/tpope/vim-pathogen&gt;
		*  crear dos directorios: ~/.vim/autoload (ubicación vim-pathogen…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:vim:start?rev=1479165291&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-14T23:14:51+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vi(m)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:vim:start?rev=1479165291&amp;do=diff</link>
        <description>vi(m)

instalación

apt-get install vim vim-rt -&gt; instala el ejecutable y el resaltado de sintaxis


:syntax on
:colorscheme elflord
:set cursorline                 &quot; set cul
:set number                     &quot; set nu
:set showmatch                  &quot; set sm
&quot;:set autoindent                &quot; set au
:set ignorecase                 &quot; set ic
:set incsearch                  &quot; set is
:set hlsearch                   &quot; set hls
:set ruler                      &quot; set ru
&quot;:set backupcopy</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:aptget:start?rev=1759250047&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-30T16:34:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Gestión paquetes</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:aptget:start?rev=1759250047&amp;do=diff</link>
        <description>Gestión paquetes

linux

	*  apt-get
		*  apt unattended-upgrades
		*  apt (sin internet)

	*  repos
	*  dpkg
	*  aptitude
	*  yum
	*  ppa
	*  apk (alpine)

verificar/actualizar paquete

	*  mirar si está en el sistema:
dpkg --get-selections | grep &lt;paquete&gt;

	*  mirar el detalle del paquete: 
dpkg -l &lt;paquete&gt;

	*  actualizar paquete (no instala si no está):</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:find?rev=1725268231&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-09-02T09:10:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>find</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:find?rev=1725268231&amp;do=diff</link>
        <description>find

opciones

	*  -name : busca ficheros por nombre
	*  -iname : busca ficheros por nombre sin tener en cuenta mayúsculas o minúsculas
	*  -path : busca en el path completo (directorio+nombre)
	*  -ipath : busca en el path completo (directorio+nombre) no Case Sensitive</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:locales?rev=1594132941&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-07-07T14:42:21+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Locales</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:locales?rev=1594132941&amp;do=diff</link>
        <description>Locales

linux bash

variables

	*  LANG : establece el valor del lenguaje (y de LC_*) usado en el sistema
	*  LC_ALL : establece el valor de todas las categorias y tiene prefereencia
	*  definidos por POSIX
		*  LC_COLLATE : funciones de cadena
		*  LC_CTYPE : establece el comportamiento de funciones que tengan que ver con la convención de mayúsculas/minúsculas</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:blockdevices?rev=1613766184&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-19T20:23:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux comandos dispositivos de bloque</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:blockdevices?rev=1613766184&amp;do=diff</link>
        <description>linux comandos dispositivos de bloque

	*  lsblk: todos los discos, pero no tipo
		*  lsblk -S: SCSI

	*  ls -lF /dev/disk/by-id/
	*  blkid: solo montados
	*  hdparm -I &lt;dispositivo&gt;
	*  lshw
		*  lshw --class disk --class storage
		*  lshw -short --</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:historyexpansion?rev=1579511775&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-20T09:16:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>history expansion</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:historyexpansion?rev=1579511775&amp;do=diff</link>
        <description>history expansion

linux bash
 shortcut   descripción  eventos    !                  Indica que empieza la sustitución  !!                 Último comando -&gt; !-1 !n                 enésimo comando  !-n                último comando menos n  !string</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:sed?rev=1554881427&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-10T07:30:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sed</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:sed?rev=1554881427&amp;do=diff</link>
        <description>sed

Stream EDitor

sintaxis


sed [-ns] &#039;[direccion] instruccion argumentos&#039;


donde:

	*  -n : no mostrar por STDOUT las líneas procesadas
	*  -s : tratar los ficheros entrantes como flujos separados
	*  dirección: número de línea, rango de números de línea o búsqueda por regexp. Si no se especifica, afecta a todas las líneas del fichero</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:fsh:sys?rev=1613057041&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-11T15:24:01+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sysfs</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:fsh:sys?rev=1613057041&amp;do=diff</link>
        <description>sysfs

Ya que procfs se encuentra saturado con una gran cantidad de información no relacionada con los procesos, se diseñó sysfs con el fin de exportar desde el espacio del kernel (Anillo 0) al espacio del usuario (Anillo 3) información sobre los dispositivos y sus controladores.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:librerias:start?rev=1613257473&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-13T23:04:33+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux dynamic libraries, librerias compartidas</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:librerias:start?rev=1613257473&amp;do=diff</link>
        <description>Linux dynamic libraries, librerias compartidas

	*  Shared Objects .so: ficheros de objetos sin bloque main
	*  todos los programas compilados son vinculados a libc
		*  eliminar esta librería supone la caída del sistema

	*  ld.so: aka ld-linux-so</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:openvpn?rev=1588187731&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-29T19:15:31+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>openvpn</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:openvpn?rev=1588187731&amp;do=diff</link>
        <description>openvpn

	*  PKI
	*  private internet access (PIA)

instalación

aptitude install openvpn

aptitude install easy-rsa

configuración servidor

copiar ficheros para facilitar la generación de claves y certificados:

cp -rd /usr/share/doc/openvpn/examples/easy-rsa/ /etc/openvpn/

creación keys</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:sysstat?rev=1321351182&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2011-11-15T09:59:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Configuración sysstat</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:sysstat?rev=1321351182&amp;do=diff</link>
        <description>Configuración sysstat

Este paquete se instala desde el apt-get install ssysstat y lo descubrí a partir de esta página. (la información contenida en esta sección es practicamente un resumen de esa página)
Es un paquete de utilidades para monitorizar diferentes aspectos de nuestro servidor y poder detectar sobrecargas. Permite información en tiempo real y permite  guardar la información en logs para ir consultando.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:agente?rev=1777967047&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T07:44:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>agente SSH (ssh-agent)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:agente?rev=1777967047&amp;do=diff</link>
        <description>agente SSH (ssh-agent)

linux ssh

opciones

	*  
ssh-add &lt;clave&gt;

 : añade la clave indicada para su uso (si tiene contraseña, nos la pedirá al usar)

		*  -t &lt;&gt; : duración de la identidad en el agente (por defecto, segundos)
		*  
s | S   seconds, m | M   minutes, h | H   hours, d | D   days, w | W   weeks</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:keys?rev=1777967067&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T07:44:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>authorized_keys</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:keys?rev=1777967067&amp;do=diff</link>
        <description>authorized_keys

linux ssh

contiene las claves públicas de los sistemas que permiten la conexión al sistema actualse le pueden añadir restricciones del tipo:

	*  from=«xxx.xxx.xxx.xxx» ssh-dss.... -&gt; restricción por IP
	*  no-pty ssh-dss... -&gt; evita obtener una shell</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:start?rev=1698246004&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-10-25T15:00:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:start?rev=1698246004&amp;do=diff</link>
        <description>linux

	*  linux shell
	*  Linux distros
	*  Linux remote desktops
	*  linux filesystem
	*  linux communications
	*  linux utils
	*  linux install
	*  linux seguridad
	*  Linux X-Windows
	*  kernel linux
	*  *CTL

que escritorios disponibles?

	*  
ps -a | egrep -i &quot;gnome|kde|mate|cinnamon|lxde|xfce|jwm&quot;

	*  
systemctl status display-manager

	*  
ls /usr/bin/*session

	*  screenfetch: 
git clone git://github.com/KittyKatt/screenFetch.git screenfetch
./screenfetch-dev</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:aptget:apt?rev=1741600997&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-10T10:03:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>apt-get</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:aptget:apt?rev=1741600997&amp;do=diff</link>
        <description>apt-get

apt VS apt-get

	*  &lt;https://itsfoss.com/apt-vs-apt-get-difference/&gt;
	*  &lt;https://itsfoss.com/apt-get-linux-guide/&gt;
	*  &lt;https://itsfoss.com/apt-command-guide/&gt;

sources.list

	*  copia: /usr/share/doc/apt/examples/sources.list
	*  añadir universe y multiverse:
sudo add-apt-repository universe
sudo add-apt-repository multiverse


ignore certificate

Cuando estamos en una versión vieja de algún linux (debian 9 strech en este caso), podemos intentar encontrar la manera de actualizar los c…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:aptget:repos?rev=1566804756&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-08-26T07:32:36+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>repos</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:aptget:repos?rev=1566804756&amp;do=diff</link>
        <description>repos

&lt;https://wiki.debian.org/SourcesList#Component&gt;

ubicación/configuración

para cambiar los repositorios que hemos de utilizar, modificar el fichero /etc/apt/sources.list

o mejor crear fichero nuevo en /etc/apt/sources.list.d/*.list

https

para usar https en las peticiones a repositorios, instalar el paquete</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:arrays?rev=1539085719&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-09T11:48:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>arrays bash</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:arrays?rev=1539085719&amp;do=diff</link>
        <description>arrays bash



linux bash pendiente wiki

/via: &lt;http://www.thegeekstuff.com/2010/06/bash-array-tutorial/&gt;
&lt;http://wiki.bash&gt;-hackers.org/syntax/arrays?rev=1534920675&lt;https://www.artificialworlds.net/blog/2012/10/17/bash-associative-array-examples/&gt;
declaración e inicialización


declare -a array=(valor0 &#039;valor uno&#039; &#039;valor dos&#039;)



declare -A array=( [indice1]=valor0 [indice2]=&#039;valor uno&#039; [indice3]=&#039;valor dos&#039;)
# es necesario una versión 4+ de BASH para disponer de Arrays asociativos</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:locale?rev=1763374899&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-17T10:21:39+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>locale</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:locale?rev=1763374899&amp;do=diff</link>
        <description>locale

	*  lista de los códigos locale
	*  para lanzar una aplicación en un idioma determinado (y si la aplicación lo soporta): $ export LANG=&lt;codigo&gt;; &lt;aplicacion&gt;

el comando

	*  locale -&gt; permite ver todos los valores en el sistema
	*  locale -a -&gt; permite ver los locales del sistema</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:ps1?rev=1536065962&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-04T12:59:22+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PS1</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:ps1?rev=1536065962&amp;do=diff</link>
        <description>PS1

simples




export PS1=&quot;\[\e]0;\u@\h \w\a\]\[\e[00;33m\]\u\[\e[0m\]\[\e[00;37m\]@\[\e[0m\]\[\e[00;33m\]\h\[\e[0m\]\[\e[00;37m\]:\[\e[0m\]\[\e[00;34m\]\w\[\e[0m\]\[\e[00;37m\]\n\$ \[\e[0m\]&quot;





export PS1=&quot;\[$(tput sgr0)\]\033[38;5;15m\033[38;5;11m\u\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m@\[$(tput sgr0)\]\033[38;5;15m\033[38;5;11m\h\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m:\[$(tput sgr0)\]\033[38;5;15m\033[38;5;2m\w\[$(tput sgr0)\]\033[38;5;15m\033[38;5;15m\n\[$(tput sgr0)\]\\$\[$(tput…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:docker:masterclass?rev=1543332294&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-27T15:24:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MasterClass Docker</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:docker:masterclass?rev=1543332294&amp;do=diff</link>
        <description>MasterClass Docker

docker

info masterclass

ponente: Dani Sanchez  --&gt; docker user 

pass:2...s

docker

info general

3 componentes:

	*  docker daemon
	*  rest api (escuchando en file system) --&gt; nos permite hablar con otros demonios docker (en otras máquinas)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:fsh:start?rev=1731409382&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-12T11:03:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Filesystem Hierarchy Standard</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:fsh:start?rev=1731409382&amp;do=diff</link>
        <description>Filesystem Hierarchy Standard

linux bash

(basado en debian)

/proc

	*  /proc/cpuinfo
	*  /proc/version
	*  /proc/1/comm
	*  /proc/sys/kernel/random/uuid
	*  echo n &gt;/proc/sys/vm/drop_caches
		*  n = 1 -&gt; Clears only the page cache.
		*  n = 2 -&gt; Clears dentries and inodes.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:hard:start?rev=1606847267&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-12-01T18:27:47+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>info hard</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:hard:start?rev=1606847267&amp;do=diff</link>
        <description>info hard

linux bash

pre-mount

localizar discos no montados en sistema:

	*  lsblk
	*  fdisk
		*  sfdisk: versión con scripting de fdisk más agradable
			*  echo &#039;type=83&#039; | sudo sfdisk /dev/sdb: crea partición ext4 de todo el disco


	*  blkid
	*  ls -l /dev/disk/by-uuid</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:install:start?rev=1684584542&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-05-20T12:09:02+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux install</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:install:start?rev=1684584542&amp;do=diff</link>
        <description>linux install

acpi: monitor de temperatura del ordenador

	*  Instal·lació Linux Server Ubuntu 20.04.3
	*  Ubuntu 22.04
		*  KDE Plasma: &lt;https://www.how2shout.com/linux/how-to-install-kde-plasma-on-ubuntu-22-04-jammy-jellyfish/&gt;: 

sudo apt update &amp;&amp; sudo apt upgrade
sudo apt install kde-plasma-desktop # mínimal
sudo apt install kde-standard # standard
sudo apt install kde-full # full
# Select SSDM display Manager
sudo reboot
# si aparece teclado:
# CTRL+ALT+F5
sudo nano /etc/sddm.conf # ver c…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:tareasserver?rev=1347554934&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-09-13T16:48:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Tareas Server</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:tareasserver?rev=1347554934&amp;do=diff</link>
        <description>Tareas Server

en /root/add_user_ERE.sh


#!/bin/bash

# funciones del script
genpasswd() {
        local l=$1
        [ &quot;$l&quot; == &quot;&quot; ] &amp;&amp; l=16
        echo `tr -dc A-Za-z0-9_ &lt; /dev/urandom | head -c ${l} | xargs`
}


# comprobar que pasa el parametro del nombre
if [ $# -ne 1 ]; then
    echo &quot;Usage Error!&quot;
    echo &quot;ftp_add_user.sh usuario&quot;
    echo &quot; &gt; introduce el nombre de usuario!&quot;
    exit -1
fi

# crea el usuario
#   -m (opcion que existia y he quitado)
#   -M para que no intente crear el …</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ubuntu:start?rev=1715085125&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-07T12:32:05+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Ubuntu</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ubuntu:start?rev=1715085125&amp;do=diff</link>
        <description>Ubuntu

22.04

.desktop

	*  &lt;https://atareao.es/software/utilidades/como-crear-lanzadores-en-ubuntu/&gt;

curiosidades

	*  comando para lanzar el salvapantallas: $ gnome-screensaver-command --lock
	*  comando para lanzar un terminal: $ gnome-terminal
	*  abrir un archivo basado en su MIME-TYPE: $ gnome-open &lt;archivo o URL&gt;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:globbing?rev=1585000649&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-23T21:57:29+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ZSH Globbing (extended)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:globbing?rev=1585000649&amp;do=diff</link>
        <description>ZSH Globbing (extended)

glob expression

	*  ls &lt;path&gt;/*/* : lista todos los ficheros a 2 niveles del actual
	*  ls &lt;path&gt;/**/* : lista todos los ficheros en cualquier directorio
	*  ls &lt;path&gt;/**/*.txt : lista todos los ficheros .txt en cualquier directorio por debajo</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:background:start?rev=1579346279&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-18T11:17:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>comandos &quot;background&quot;</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:background:start?rev=1579346279&amp;do=diff</link>
        <description>comandos &quot;background&quot;



Trabajos en segundo plano

	*  &lt;comando&gt;&lt;param&gt; &amp;
	*  &lt;comando&gt;&lt;param&gt; y a posterior, ^Z y entonces $ bg
	*  bg
	*  jobs -&gt; lista de trabajos en segundo plano
		*  jobs -l -&gt; lista de trabajos con PID
		*  jobs -p -&gt; lista de trabajos con ID solo</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:awk?rev=1582615767&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-25T07:29:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>awk</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:awk?rev=1582615767&amp;do=diff</link>
        <description>awk

/via: &lt;https://www.howtogeek.com/562941/how-to-use-the-awk-command-on-linux/&gt;

	*  rule = pattern + action
	*  todo el comando entre comillas simples
	*  print
		*  $1,$3,$7: campo 1, 3 y 7 respectivamente (separados por espacio por defecto)
		*  $NF: último campo
		*  $0 : la línea entera

	*  cambiar carácter separador:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:dd?rev=1752601467&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-07-15T17:44:27+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dd</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:dd?rev=1752601467&amp;do=diff</link>
        <description>dd

	*  dd -&gt; comando para flujos de datos
		*  if: archivo de origen
		*  of: archivo de destino
		*  ibs: número bytes leídos cada vez
		*  obs: número bytes leídos cada vez
		*  bs: número de bytes leídos y escritos cada vez
		*  cbs: número de bytes a convertir cada vez</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:grep?rev=1576251056&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-12-13T15:30:56+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>grep</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:grep?rev=1576251056&amp;do=diff</link>
        <description>grep

uso

es una utilidad de línea de comando para buscar expresiones regulares dentro de cadenas.

	*  $ grep
		*  -n : muestra número de línea
		*  -v : inverso, muestra las líneas que NO tienen la cadena
		*  -w : palabras completas
		*  -x : lineas completas, no fragmentos</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:mlocate?rev=1708086824&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-02-16T12:33:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>locate &amp; updatedb</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:mlocate?rev=1708086824&amp;do=diff</link>
        <description>locate &amp; updatedb

	*  alternativa plocate (en repos): &lt;https://plocate.sesse.net/&gt;
		*  compatible a nivel de configuración
		*  más rápido


install &amp; setup

	*  instalación:
sudo apt install mlocate

	*  excluir directorios:
sudo updatedb -e /usr -e /proc -e /boot -e /cdrom -e /dev -e /lib -e /lib64 -e /lost+found -e /media -e /mnt -e /run -e /snap -e /sys -e /tmp</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:xev?rev=1631270509&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-09-10T10:41:49+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>xev</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:xev?rev=1631270509&amp;do=diff</link>
        <description>xev

utilidad para GUI/CLI que muestra los códigos de las teclas pulsadas o la posición del ratón en pantalla para hacer «debug»</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:install-corp?rev=1580459180&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-01-31T08:26:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Instalación DEBIAN corporativo</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:install-corp?rev=1580459180&amp;do=diff</link>
        <description>Instalación DEBIAN corporativo

pre-basico

	*  si está instalado el paquete apt-get install sudo
	*  comprobar /etc/sudoers para ver si tenemos permisos o que clase de permisos

basico

	*  sudo apt-get update &amp;&amp; sudo apt-get upgrade
		*  verificar que en</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:filesystem:ddrescue?rev=1755680310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-08-20T08:58:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Recuperación disco, clonación en imagen</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:filesystem:ddrescue?rev=1755680310&amp;do=diff</link>
        <description>Recuperación disco, clonación en imagen

crear imagen con dd

dd if=/dev/sdX of=file.img

crear imagem con ddrescue

	*  en caso de problemas de lectura con dd
	*  instalación: 
sudo apt install gddrescue

	*  uso: 
ddrescue /dev/sdX imagen.img log-file</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:filesystem:mbr2gpt?rev=1731489132&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-11-13T09:12:12+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>MBR / GPT</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:filesystem:mbr2gpt?rev=1731489132&amp;do=diff</link>
        <description>MBR / GPT

/via: &lt;https://www.muycomputer.com/2024/09/20/como-cambiar-una-particion-de-windows-de-mbr-a-gpt-sin-perder-datos/&gt;
revisar: /via: &lt;https://www.muycomputer.com/2020/02/05/gpt-mejor-que-mbr-linux-windows/&gt;

MBR

	*  Master Boot Record
	*  BIOS
	*  el más antiguo
	*  compatible con gama más amplia de OS
	*  desarrollado con los primeros IBM
	*  contiene el cargador de arranque del OS
	*  máximo particiones de 2TB
	*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:filesystem:udisks?rev=1649070557&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-04-04T11:09:17+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux udisks</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:filesystem:udisks?rev=1649070557&amp;do=diff</link>
        <description>linux udisks

	*  lsblk: dispositivos conectados
		*  -a: más información (incluido major:minor)
		*  -d: no muestra información de los «esclavos» o holder devices (particiones)
		*  -i: usa caracteres ASCII para las representaciones de árbol (mejor copy&amp;paste)</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:log:logstash?rev=1479172002&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-15T01:06:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>logstatsh</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:log:logstash?rev=1479172002&amp;do=diff</link>
        <description>logstatsh

	*  &lt;https://benjaminknofe.com/blog/2016/05/29/installing-logstash-on-a-raspberry-pi/&gt;
	*  &lt;https://www.elastic.co/downloads/logstash&gt;

requisitos y ficheros

	*  &lt;https://www.elastic.co/guide/en/logstash/2.4/installing-logstash.html&gt;
	*  comprobar versión JAVA (&gt;1.7) -&gt; java -version
	*  añadir paquetes repositorios
	*  descargar e instalar

configuración local

configuración remota</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:log:start?rev=1681813259&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-04-18T10:20:59+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>logs</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:log:start?rev=1681813259&amp;do=diff</link>
        <description>logs

visualización

	*  LNAV : paquete para consultar logs con herramientas avanzadas

gestión de logs

	*  rsyslogd
	*  loganalyzer
	*  logstatsh
	*  logrotate
	*  log parsing cheat sheet

usuario

para ver el contenido de estos ficheros (binarios) se puede usar utmpdump

	*  /var/log/wtmp -&gt; últimos accesos al sistema</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:backupgpg?rev=1584903148&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-22T18:52:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>backup, encriptado y copia a remoto</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:backupgpg?rev=1584903148&amp;do=diff</link>
        <description>backup, encriptado y copia a remoto

2.2

	*  disociar parámetros de script en 2 ficheros
		*  usar source para incluir las variables necesarias
		*  o volver a mirar opciones de usar otro tipo de fichero (INI,JSON)


v2.1

	*  sustitución GPG por</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:protocolobackup?rev=1330366804&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2012-02-27T18:20:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Protocolo de Backup</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:protocolobackup?rev=1330366804&amp;do=diff</link>
        <description>Protocolo de Backup

	*  master -&gt; servidor que hace las copias de seguridad
	*  esclavo(s) -&gt; servidor que se deja hacer las copias de seguridad

esclavo

	*  (1) crear cuenta específica para backups: $ useradd -c «Usuario de backup» -m -d /home/bck bck</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:sudo:start?rev=1715072349&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-07T08:59:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>sudo</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:sudo:start?rev=1715072349&amp;do=diff</link>
        <description>sudo

config

	*  edición /etc/sudoers: sudo visudo
		*  --check
		*  --strict
		*  --file=/etc/sudoers.d/alternate


sudoers

/via: &lt;https://www.digitalocean.com/community/tutorials/how-to-edit-the-sudoers-file-es&gt;

directorio /etc/sudoers.d

	*  sudo visudo -f /etc/sudoers.d/nopass
	*  interpreta todos los archivos que no acaben en</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tomcat:install?rev=1538038548&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-27T08:55:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Instalación Tomcat 8 en máquina vagrant</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tomcat:install?rev=1538038548&amp;do=diff</link>
        <description>Instalación Tomcat 8 en máquina vagrant

vagrant


Vagrant.configure(&quot;2&quot;) do |config|
  config.vm.box = &quot;debian/stretch64&quot;
  config.vm.synced_folder &quot;./data&quot;,&quot;/vagrant&quot;
  config.vm.network &quot;forwarded_port&quot;, guest: 8080, host: 8080

  config.vm.provider &quot;virtualbox&quot; do |vb|
    vb.name = &quot;tomcat8&quot;
    vb.memory = 1024
    vb.cpus = 1
    vb.linked_clone = true
  end
end</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ufw:start?rev=1756889908&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-03T08:58:28+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Uncomplicated Firewall</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ufw:start?rev=1756889908&amp;do=diff</link>
        <description>Uncomplicated Firewall

manera alternativa de montar reglas de acceso con una sintáxis más sencilla, monta tablas y cadenas a su antojo

sintaxis y argumentos

ufw [--dry-run] [options] [rule syntax]

	*  options:
		*  allow
		*  deny
		*  reject
		*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:utils:bat?rev=1764580784&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-12-01T09:19:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>bat, not cat</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:utils:bat?rev=1764580784&amp;do=diff</link>
        <description>bat, not cat

	*  &lt;https://atareao.es/software/utilidades/bat-un-cat-con-alas/&gt;
	*  integración GIT

install

apt install bat
/usr/bin/batcat


zsh


git clone https://github.com/fdellwing/zsh-bat.git $ZSH_CUSTOM/plugins/zsh-bat


plugins=(zsh-bat ...)

uso

	*  -p: sin decoración, alias de --style:plain
	*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:utils:find-fd?rev=1763539345&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-11-19T08:02:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>find - fd</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:utils:find-fd?rev=1763539345&amp;do=diff</link>
        <description>find - fd

&lt;https://github.com/sharkdp/fd&gt;

install


sudo apt install fd-find
sudo ln -s /usr/lib/cargo/bin/fd /usr/local/bin/fd


regexp

&lt;https://docs.rs/regex/latest/regex/#syntax&gt;

	*  por defecto
	*  ^: empieza
	*  $: acaba
	*  buscar -:
fd -- &#039;-pattern&#039;
fd &#039;[-]pattern&#039;


parámetros

	*  --ignore-case
		*  por defecto: todo minúsculas, no distingue. Si alguna mayúscula, distingue.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:log:rsyslogd:paso2?rev=1479168652&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2016-11-15T00:10:52+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>rsyslogd (paso 2)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:log:rsyslogd:paso2?rev=1479168652&amp;do=diff</link>
        <description>rsyslogd (paso 2)

creación reglas

añadir nuevas reglas (en la sección correspondiente - RULES)


$template TmplAuth, &quot;/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log&quot; 
$template TmplMsg, &quot;/var/log/rsyslog/%HOSTNAME%/%PROGRAMNAME%.log&quot; 
authpriv.*   ?TmplAuth
*.info,mail.none,authpriv.none,cron.none   ?TmplMsg</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:java:start?rev=1585937017&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-04-03T18:03:37+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>java</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:java:start?rev=1585937017&amp;do=diff</link>
        <description>java

debian 8, jre 8

	*  &lt;http://openjdk.java.net/install/&gt;
	*  &lt;https://wiki.debian.org/JavaPackage&gt; 

instalación

	*  $ sudo apt-get install default-jre
	*  $ sudo apt-get install default-jdk
	*  $ sudo apt-get install openjdk-7-jre
	*  sudo apt-get install python-software-propertiessudo add-apt-repository ppa:webupd8team/java</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:aptget:dpkg?rev=1741601006&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-03-10T10:03:26+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dpkg</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:aptget:dpkg?rev=1741601006&amp;do=diff</link>
        <description>dpkg

opciones

	*  Muestra los ficheros y su ubicación de un paquete:
dpkg -L packagename

	*  Instalar desde archivos .deb descargados:
dpkg -iEGB packagename

		*  i : instala desde fichero
		*  E, –skip-same-version: Don’t install the package if the same version of the package is already installed.</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:alias?rev=1536305720&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-09-07T07:35:20+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>alias</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:alias?rev=1536305720&amp;do=diff</link>
        <description>alias

linux bash
&lt;https://www.cyberciti.biz/tips/bash-aliases-mac-centos-linux-unix.html&gt;
creación


alias name=value
alias name=&#039;command&#039;
alias name=&#039;command arg1 arg2&#039;
alias name=&#039;/path/to/script&#039;
alias name=&#039;/path/to/script.pl arg1&#039;


desactivación (temporal)


## path/to/full/command
/usr/bin/clear
## call alias with a backslash ##
\c
## use /bin/ls command and avoid ls alias ##
command ls</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:debug?rev=1516612329&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-01-22T09:12:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>debug en bash</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:debug?rev=1516612329&amp;do=diff</link>
        <description>debug en bash

&lt;https://www.cyberciti.biz/tips/debugging-shell-script.html&gt;

variables de entorno

	*  en el script, modificando el SheBang:
#!/bin/bash -x

	*  desde linea de comando: $ bash -x &lt;script&gt;
	*  activar modos:
		*  set (+/-)x : muestra comandos y argumentos a medida que son ejecutados
		*  set (+/-)v</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:indirectreferences?rev=1543427202&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-11-28T17:46:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Referencias indirectas</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:indirectreferences?rev=1543427202&amp;do=diff</link>
        <description>Referencias indirectas

indirection, indirect references

usar el valor de una variable para acceder al contenido de otra


# declaramos 2 variables
export xyzzy=plugh ; export plugh=cave

echo ${xyzzy}  # normal, xyzzy to plugh -&gt; plugh

echo ${!xyzzy} # indirection, xyzzy to plugh to cave -&gt; cave</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:less?rev=1533202124&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-02T09:28:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>less</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:less?rev=1533202124&amp;do=diff</link>
        <description>less

línea comando

	*  -N : números de línea
	*  -M : long prompt -&gt; + información
	*  +F : seguimiento en vivo (como tail -f &lt;fichero&gt;)
	*  -S : no rompe las líneas al llegar a final de pantalla

enlaces

	*  &lt;https://en.wikipedia.org/wiki/Less_(Unix)&gt;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:bash:librerias-dinamicas?rev=1674210840&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-01-20T10:34:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux: librerías dinámicas</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:bash:librerias-dinamicas?rev=1674210840&amp;do=diff</link>
        <description>Linux: librerías dinámicas

	*  Bibliotecas estáticas:
find / -name &#039;*.a&#039;

	*  Bibilotecas dinámicas:
find / -name &#039;*.so&#039;


gestión

	*  fichero de configuración global: /etc/ld.so.conf
		*  los cambios en las rutas se tienen que actualizar con el comando</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:certificados:pki?rev=1558438235&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-05-21T11:30:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>PKI</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:certificados:pki?rev=1558438235&amp;do=diff</link>
        <description>PKI

&lt;https://linuxize.com/post/how-to-set-up-an-openvpn-server-on-centos-7/&gt;
Public Key Infraestrucure


previa

orientado a la instalación de un openvpn

creación de los siguientes elementos:

	*  CA
	*  SERVER certificate + key
	*  CLIENT certificate + key

usando la herramienta easy-rsa

CA

se recomienda crear todos estos ficheros en un servidor standalone / offline de la insfraestructura que se monte</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:cron:anacron?rev=1605886810&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-11-20T15:40:10+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>anacron</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:cron:anacron?rev=1605886810&amp;do=diff</link>
        <description>anacron

este programa sirve para ejecutar tareas de CRON en sistemas que no están encendidos 24h horas al díase ejecuta al arrancar el sistema y comprueba /etc/anacrontab, donde están las tareas especificadas a realizar como «importantes»

un ejemplo:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:install-9?rev=1582703814&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-26T07:56:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>debian 9 stretch</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:install-9?rev=1582703814&amp;do=diff</link>
        <description>debian 9 stretch

gnome

control de ventanas desde CLI

	*  devilspie2 : programa para recolocar las ventanas escritorio
		*  &lt;http://git.savannah.gnu.org/cgit/devilspie2.git/plain/README&gt;
		*  LUA: &lt;http://lua-users.org/wiki/StringLibraryTutorial&gt;
		*  LUA: &lt;https://stackoverflow.com/questions/37121875/lua-return-value-if-string-match-with-wildcard&gt;
-- the debug_print command does only print anything to stdout
    * comandos: [[https://github.com/gusnan/devilspie2/blob/master/README]]
-- if dev…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:filesystem:inodes?rev=1614938829&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-03-05T10:07:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux inodes</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:filesystem:inodes?rev=1614938829&amp;do=diff</link>
        <description>Linux inodes

ls -li

find /home/david/ -inum 5414

df -i
du -sh --inodes *
du -csh --inodes * | tee inodes.txt

find . -printf &quot;%h\n&quot; | cut -d/ -f-2 | sort | uniq -c | sort -rn

/via: &lt;https://www.ochobitshacenunbyte.com/2019/04/08/como-saber-el-uso-de-inodos-en-linux/#:~:text=Una%20de%20las%20formas%20habituales,el%20primer%20campo%20de%20salida.&gt;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:mount:smb?rev=1668423100&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-11-14T10:51:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>SMB mount</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:mount:smb?rev=1668423100&amp;do=diff</link>
        <description>SMB mount

paquetería básica:

sudo apt-get install cifs-utils

Acceso a Windows shares:

mount -t cifs //server/share -o username=username,password=password,sec=ntlm /punto/montaje

mount -t cifs //server/share -o credentials=/path/to/crendeciales.txt,sec=ntlm /punto/montaje</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:findimagedupes?rev=1535013969&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-08-23T08:46:09+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>findimagedupes</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:findimagedupes?rev=1535013969&amp;do=diff</link>
        <description>findimagedupes

funcionamiento

	*  &lt;http://www.jhnc.org/findimagedupes/manpage.html&gt;

ejemplos

	*  muestra los fingerprints de las imágenes, ordenados para que los idénticos se muestren uno al lado de otro:
$ findimagedupes -R --verbosity=fingerprint --no-compare . | sort

	*  ejemplo utilización funciones y parámetro -i:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:pivpn?rev=1727889383&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-10-02T17:16:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pi-vpn</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:pivpn?rev=1727889383&amp;do=diff</link>
        <description>pi-vpn

basic

	*  &lt;http://www.pivpn.io/&gt;
		*  OpenVPN
			*  puerto: 1194
			*  protocolo: tcp/udp

		*  Wireguard
			*  puerto: 51820
			*  protocolo udp



ubicaciones

	*  generación certificados: /etc/openvpn/easy-rsa/pki/private/
	*  /etc/pivpn -&gt; información

comandos</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:pureftpd?rev=1540372183&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-10-24T09:09:43+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>pure-ftpd</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:pureftpd?rev=1540372183&amp;do=diff</link>
        <description>pure-ftpd

enlaces de interés

	*  &lt;http://linuxdev.dk/articles/pureftpd-over-tls&gt;
	*  &lt;http://wiki.openwrt.org/doc/uci/pure-ftpd&gt;
	*  comandos/opciones: &lt;http://edoceo.com/howto/pure-ftpd&gt;
	*  instalación + webui: &lt;http://www.debianhelp.co.uk/pureftp.htm&gt;
	*  otro webui: &lt;https://pure-ftpd-webui.org/&gt;
	*  &lt;https://help.ubuntu.com/community/PureFTP&gt;

instalación

	*  apt-get install pure-ftpd pure-ftp-common
	*  crear usuario/grupo:
		*  groupadd ftpgroup
		*  useradd -g ftpgroup -d /dev/null -s…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:paquetes:vsftpd?rev=1527955134&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2018-06-02T15:58:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>vsftpd (ftp server)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:paquetes:vsftpd?rev=1527955134&amp;do=diff</link>
        <description>vsftpd (ftp server)

instalación

sudo apt-get install vsftpd

configuración

	*  /etc/vsftpd.conf -&gt; &lt;https://wiki.debian.org/vsftpd&gt;
	*  &lt;http://www.alcancelibre.org/staticpages/index.php/09-como-vsftpd&gt;
	*  &lt;http://www.linuxhispano.net/2010/09/14/configurar-servidor-ftp-en-linux-con-vsftpd/&gt;

solución de problemas

no deja hacer un CHROOT de un usuario local

	*  el usuario no ha de tener permisos de escritura en su /home/usuario</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:rsync:backup?rev=1585390650&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-28T10:17:30+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Copias de seguridad usando RSYNC y SSH</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:rsync:backup?rev=1585390650&amp;do=diff</link>
        <description>Copias de seguridad usando RSYNC y SSH

Hemos de tener instalados los 2 paquetes, el RSYNC y el SSH, cosa que consideraremos trivial.

Los pasos concretos:

Generar las claves pública/privada:

ssh-keygen

Esto genera en ~/.ssh/ 2 archivos, con el nombre que hayamos especificado, en ese directorio. Uno es la clave privada (NO COMPARTIR) y otra la clave pública (con extesión</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:home?rev=1654849975&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-06-10T08:32:55+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>mis ficheros $HOME</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:home?rev=1654849975&amp;do=diff</link>
        <description>mis ficheros $HOME

.bash_profile


# ~/.bash_profile: executed by bash(1) for login shells.

# quita el permiso de excritura al others
umask 002

#prompt por defecto
PS1=&#039;[\h]$ &#039;

# prompt de color en 2 lineas
if [ -f &quot;.prompt&quot; ]; then
  export PS1=`cat .prompt`
fi

if [ -f &quot;.bashrc&quot; ]; then
  source ~/.bashrc
fi

# variables de entorno
export EDITOR=&quot;vim&quot;
export LANG=en_US.ISO-8859-15

# echo &quot;&gt; .bash_profile&quot;</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:scripts:start?rev=1613914961&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-02-21T13:42:41+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>scripts</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:scripts:start?rev=1613914961&amp;do=diff</link>
        <description>scripts

linux bash

parámetro

	*  getopts

generales

	*  /home/user/.xxxx
	*  script sencillo de hack de Kenneth Peiruza
	*  recopilación del sistema
	*  scripts alta usuarios en vsFTP
	*  control de flujo / testing
	*  ejecutar el primer o último día del mes
	*  Ejecución script PHP con CRON sin problemas

interacción

	*  select
	*  array loop
	*  linux for-folders

el mundo del backup

	*  backup del sistema (correo, BDD MySQL, home, etc)
	*  backup de file system
	*  mysqldump, backups de…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:seguridad:hackchecklist?rev=1597225140&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-08-12T09:39:00+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>checklist server hacked</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:seguridad:hackchecklist?rev=1597225140&amp;do=diff</link>
        <description>checklist server hacked

	*  w
	*  last
	*  history
	*  top
	*  strace -d -p &lt;PID&gt;
		*  apt install strace

	*  ps auxf
		*  kill -9 &lt;PID&gt;

	*  iftop
		*  apt install iftop

	*  netstat -plunt
	*  lsof -l
	*  chrootkit
		*  apt install chrootkit


/via:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:seguridad:secureboot?rev=1695801714&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-09-27T08:01:54+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>secure boot</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:seguridad:secureboot?rev=1695801714&amp;do=diff</link>
        <description>secure boot

ubuntu install

	*  desactivar secure boot para instalación en un mismo ordenador de Linux y Windows
	*  se supone que debería funcionar, pero no lo he conseguido:
		*  Instalar ubuntu, definir la contraseña temporal, al finalizar, rearrancar con el USB para hacer el</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:seguridad:start?rev=1715770310&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2024-05-15T10:51:50+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>linux seguridad</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:seguridad:start?rev=1715770310&amp;do=diff</link>
        <description>linux seguridad

	*  Linux sadservers

setup

	*  PAM
		*  su: crear un grupo tipo permitsu y añadir a los usuarios que pueden usar su
		*  passwd: crear reglas fuertes de contraseña

	*  sudo:
		*  restringido per grups usuaris
		*  noexec

	*  sudoreplay
	*  sshd</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:chroot?rev=1777967080&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T07:44:40+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>chroot (enjaulado)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:chroot?rev=1777967080&amp;do=diff</link>
        <description>chroot (enjaulado)

linux ssh

los usuarios se quedan encerrados en un directorio y no pueden salir de ahí (excepciones con mount --bind)


# override default of no subsystems
##Subsystem     sftp    /usr/libexec/openssh/sftp-server
Subsystem       sftp    internal-sftp

# Example of overriding settings on a per-user basis
#Match User anoncvs
#       X11Forwarding no
#       AllowTcpForwarding no
#       ForceCommand cvs server

AllowGroups ConexionSFTP

Match group ConexionSFTP
ChrootDirectory …</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:clientconfig?rev=1777967022&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T07:43:42+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>fichero .ssh/config</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:clientconfig?rev=1777967022&amp;do=diff</link>
        <description>fichero .ssh/config

linux ssh

man page

fichero configuración conexión

para simplificar la conexión vía SSH con diferentes servidores, y en alternativa a crear alias de conexiones:

alias ssh-local-dns=&#039;ssh -v -i /home/mate/.ssh/pi@raspberry pi@192.168.1.60&#039;

se puede optar por crear el fichero de configuración de conexión (</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:ssh:varios?rev=1777967135&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-05-05T07:45:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ssh varios</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:ssh:varios?rev=1777967135&amp;do=diff</link>
        <description>ssh varios

linux ssh

ssh forzando password

no sé pq razón, ssh ha empezado a probar todas las claves de mi directorio .ssh para intentar logarse en un sistema remoto. (habrá que averiguar pq lo ha hecho)

para evitar que haga esto, hay que hacer:

ssh -v -o PubkeyAuthentication=no user@machine</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:systemd:journalctl?rev=1640200694&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2021-12-22T19:18:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>journalctl</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:systemd:journalctl?rev=1640200694&amp;do=diff</link>
        <description>journalctl

gestión centralizada de logs

	*  archivo principal de configuración: /etc/systemd/journald.conf
	*  importancia de tener bien establecida la zona horaria con timedatectl
	*  journalctl-remote
	*  &lt;https://www.digitalocean.com/community/tutorials/how-to-use-journalctl-to-view-and-manipulate-systemd-logs-es&gt;

comandos

	*  listar todos los registros: journalctl
	*  mostrar mensajes del kernel:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:dig?rev=1556648584&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2019-04-30T18:23:04+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>dig</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:dig?rev=1556648584&amp;do=diff</link>
        <description>dig

linux tcpip

related

secciones

	*  cabecera : opciones generales e informativas
	*  question section : petición lanzada al DNS
	*  answer section : respuesta del servidor a la petición
	*  authority section: que servidor DNS tiene autoridad para responder a la petición</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:nmap?rev=1689772815&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2023-07-19T13:20:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>nmap</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:nmap?rev=1689772815&amp;do=diff</link>
        <description>nmap

parámetros

	*  -sS : escanea los puertos más normales o los difinidos en services
	*  -p  : escanea un puerto determinado (50), un rango (50-60) o todos, poniendo un guión (-p-)
	*  -Tx : establece el periodo de tiempo que deja pasar para escanear un dispositovo para evitar ser detectado y que el firewall nos mande información falsa. De más espaciado a menos:</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:tcpip:ss?rev=1601650463&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-10-02T14:54:23+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ss</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:tcpip:ss?rev=1601650463&amp;do=diff</link>
        <description>ss

	*  reemplazo de netstat
		*  TCP
		*  UDP
		*  sockets
		*  ICMP


comandos

	*  ss: todas las conexiones
	*  ss -l listening sockets
	*  ss -a all sockets
	*  ss -a -t all TCP sockets
	*  ss -a -u all UDP sockets
	*  ss -a -x all Unix sockets
	*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:users:start?rev=1772529314&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-03-03T09:15:14+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>usuarios y grupos</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:users:start?rev=1772529314&amp;do=diff</link>
        <description>usuarios y grupos



información usuario

	*  id &lt;user&gt; -&gt; para saber datos y grupos del usuario
	*  whoami -&gt; nombre del usuario

usuarios en línea

	*  who -&gt; usuarios conectados - terminal
	*  ps -U &lt;USER&gt; -&gt; procesos asociados a un usuario
	*</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:utils:ls?rev=1749128028&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-06-05T12:53:48+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux ls</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:utils:ls?rev=1749128028&amp;do=diff</link>
        <description>Linux ls

último acceso

Cuando estás copiando y el fichero guarda la fecha original de creación, pero quieres ver la fecha de último acceso

ls -lu --time=ctime

	*  --time=atime : updated when the file is read
	*  --time=birth : updated when the file contents change. This is the</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:xwindows:start?rev=1641073285&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2022-01-01T21:41:25+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>Linux X-Windows</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:xwindows:start?rev=1641073285&amp;do=diff</link>
        <description>Linux X-Windows

help

	*  &lt;https://blog.desdelinux.net/xrandr-poderosa-herramienta-para-configurar-tu-monitor/&gt;



desktop environment

	*  Entorno de escritorio (Desktop Environment):
		*  iconos
		*  ventanas
		*  barras herramientas
		*  carpetas
		*  fondos pantalla
		*  widgets

*  Gestor de ventanas (Window Manager)
		*  controla ubicación y apariencia</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:modifiers?rev=1584881444&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-22T12:50:44+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ZSH expansion modifiers</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:modifiers?rev=1584881444&amp;do=diff</link>
        <description>ZSH expansion modifiers

	*  Variable transformations
	*  permite modificar una variable usando : en el formato ${VAR}
		*  u: uppercase
		*  l: lowercase
		*  q: quote
		*  Q: quita un nivel de comillas
		*  P: absolute path of file
		*  h: basename</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:start?rev=1758555368&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-22T15:36:08+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ZSH</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:start?rev=1758555368&amp;do=diff</link>
        <description>ZSH

	*  ZSH install
	*  &lt;http://zsh.sourceforge.net/&gt;
	*  introducción:
		*  &lt;https://linuxconfig.org/learn-the-basics-of-the-zsh-shell&gt;
		*  &lt;http://reasoniamhere.com/2014/01/11/outrageously-useful-tips-to-master-your-z-shell/&gt;


+ características

	*  ZSH features
	*  oh-my-zsh
	*  ZSH TAB Expansion
	*  ZSH Globbing (extended)
	*  ZSH expansion modifiers
	*  ZSH Parameter Expansion Flags
	*  ZSH zmv
	*  ZSH modules
	*  ZSH prompt

curiosidades

	*  src: recarga entorno (plugin)
	*  take : fun…</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:zsh:zmv?rev=1585000143&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-03-23T21:49:03+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>ZSH zmv</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:zsh:zmv?rev=1585000143&amp;do=diff</link>
        <description>ZSH zmv

mv/rename mejorado

uso

	*  si no lo hacemos en el .zshrc, cargar con autoload zmv
	*  parámetros:
		*  -n: test, o hace los cambios
		*  C: copy
		*  L: ln
		*  M: move
		*  -w: añade paréntesis en los *
		*  -i: interactivo


ejemplo

usage</description>
    </item>
    <item rdf:about="https://miguelangel.torresegea.es/wiki/linux:debian:seedbos:rutorrent?rev=1580595855&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2020-02-01T22:24:15+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>instalación / configuración rutorrent (on premise)</title>
        <link>https://miguelangel.torresegea.es/wiki/linux:debian:seedbos:rutorrent?rev=1580595855&amp;do=diff</link>
        <description>instalación / configuración rutorrent (on premise)

	*  descargar en directorio temporal:
		*  svn checkout &lt;http://rutorrent.googlecode.com/svn/trunk/rutorrent&gt;
		*  svn checkout &lt;http://rutorrent.googlecode.com/svn/trunk/plugins&gt;
		*  sustituimos la carpeta plugins dentro del rutorrent por la descargada
		*  copiamos/movemos la carpeta a la raiz del webserver, cambiando permisos y propietario</description>
    </item>
</rdf:RDF>
