Acción Comando
Acceso directo cd /usr/share/applications
vi algo.desktop
[Desktop Entry]
Name=Pycharm-Community
Comment=Pycharm-Community Editing. Redefined.
GenericName=Text Editor
Exec=/usr/local/bin/pycharm
Icon=/media/work/python/pycharm-community-2023.3.3/bin/pycharm.svg
Type=Application
StartupNotify=false
StartupWMClass=pycharm
Terminal=false
Categories=TextEditor;Development;IDE;
MimeType=text/plain;inode/directory;application/x-pycharm-workspace;
Actions=new-empty-window;
Keywords=pycharm;

[Desktop Action new-empty-window]
Name=New Empty Window
Exec=/usr/local/bin/pycharm
Icon=/media/work/python/pycharm-community-2023.3.3/bin/pycharm.svg

Apache: chequear /etc/apache2/sites-enable/* apachectl configtest
Apache: evitar probleams de permisos chown -R www-data: /var/www/fede.com
Arranque sudo gedit /etc/lightdm/lightdm.conf
autologin-user= (autoarranque)
autologin-user=root (como root)
ASCII man ascii
ctr+shift+u+hexagesimal
ctr+shift+u+60
`
Archivos anadir al principio y retorno sed -i '1s/^/your text\n/' Documentos/rockyou.txt
Archivos compartir servidor ftp -> apt install vsftpd
ftp mget -> copia archivos en formato original
Archivos copiar incluyendo enlaces y permisos> cp -ap archivo
Archivos ocultos , se ejecutan de manera automatica ls -a ~
Archivos, descargar scp archivo.extension usuario@dominio.com:/home/usuario
Archivos, mover varios mv -t carpeta file1 file2 ...
Archivos, encontrar archivos apt-file search archivo
find -name elementobu*
find -type f -name tureceta*
find -type d -name tureceta*
find -type d -perm 777
find -type f -empty
find -type f -mtime 2 (en las últimas 48h = 2*24) //no han sido modificados en 2 dias
Archivos, encontrar, muestra y elimina find ./* -mtime 15 -type f -print -delete
Archivos, eliminar carpetas y subcarpetas rm -rf carpeta
Archivos, limitar abiertos sudo nano /etc/security/limits.conf
Añadimos:
* hard nofile 2000000
Arquitectura, quitar i386, para errores de apps que no haceptan doble architectura dpkg remove--architecture i386
Atajos sudo su
echo 'ls -la $@'>/usr/bin/la
chmod +x /usr/bin/la
Bateria: ahorro automatico por el uso
			
sudo yum install tuned
sudo service tuned start && chkconfig tuned on
                        
				
Bind9 hostnamectl set-hostname nuevonombre
https://bind9.readthedocs.io/en/latest/chapter3.html
Host cliente echo '192... servidorname'>> /etc/hosts
Borrado a bajo nivel sudo shred /dev/sdb
Cabeceras apt install dkms linux-headers-$(uname -r)
Comprimir tar cvf autodiagnostico.tar autodiagnostico
Consola: cambiar tamanio de la letra cd /usr/share/consolefonts/
setfont Uni2-Terminus10 (Le da el valor 10)
Date: configuracion automatica hwclock --set --date "2022-06-11 23:59:15"
hwclock --hctosys
sudo timedatectl set-timezone Atlantic/Canary
Descomprimir tar -xf file.tar.gz
tar Jxvf archivo.tar.xz
Desinstalar xfce kali apt remove kali-desktop-xfce xfce4* lightdm*
apt autoremove
Debian version cat /etc/os-release
Directorio actual pwd
Discos: Muestra discos LSBLK
Discos: particion virtual para instalaciones de sistemas como odoo, django,... apt update
apt upgrade
sudo apt -y install python3-venv
sudo python3 -m venv /opt/my_python
cd /opt/
source my_python/bin/activate
deactivate
Discos: solucionar problemas con la particion fsck /dev/sdax
Discos: velocidad disco duro: crea un disco de un giga da el tiempo y velocidad dd if=/dev/zero of=test bs=64k count=16k conv=fdatasync
Distribución linux lsb_release -d
Docker instalacion: https://www.digitalocean.com/community/tutorials/como-instalar-y-usar-docker-en-debian-9-es
desinstalacion: pkg -l | grep -i docker
sudo apt-get purge -y docker-engine docker docker.io docker-Lamp
Entorno: Crear un entorno virtual Python en Ubuntu 20.04 https://www.sololinux.es/crear-entorno-virtual-python-en-ubuntu-20-04/
apt update
apt upgrade
python3 -V
apt -y install python3-venv
sudo python3 -m venv /opt/my_python
ls /opt/my_python
sudo su
cd /opt/
source my_python/bin/activate
pip install idna(ejemplo de paquete)deactivate
Formateo sudo gparted
vFAT: sudo mkfs.vfat /dev/sdb
NTFS: sudo mkfs.ntfs /dev/sdb
EXT4: sudo mkfs.ext4 /dev/sdb
sudo dd status=progress if=/dev/zero of=/dev/sdb
ftp: servidor vsftpd, vsftpd.conf
#
# Allow anonymous FTP? (Beware - allowed by default if you comment this out).
anonymous_enable=NO
#
# Uncomment this to allow local users to log in.
local_enable=YES
#
# Uncomment this to enable any form of FTP write command.
write_enable=YES
#
# Default umask for local users is 077. You may wish to change this to 022,
# if your users expect that (022 is used by most other ftpd's)
local_umask=022
#
# Activate directory messages - messages given to remote users when they
# go into a certain directory.
dirmessage_enable=YES
#
# Activate logging of uploads/downloads.
xferlog_enable=YES
#
# Make sure PORT transfer connections originate from port 20 (ftp-data).
connect_from_port_20=YES
#
# When "listen" directive is enabled, vsftpd runs in standalone mode and
# listens on IPv4 sockets. This directive cannot be used in conjunction
# with the listen_ipv6 directive.
listen=YES
#
# Set own PAM service name to detect authentication settings specified
# for vsftpd by the system package.
pam_service_name=vsftpd
# seccomp_sandbox add an aditional security layer limiting the number of a
# syscalls can be performed via vsftpd. However it might happen that a
# whitelist don't allow a legitimate call (usually indirectly triggered by
# third-party library like pam, or openssl) and the process is being killed by kernel
seccomp_sandbox=NO

Desde consola abrimos ftp://user:pass@host
Descargar carpeta recursivamente,
wget -r ftp://user:pass@server.com/
Git: elimina la cache de commit git rm -rf --cached .
Git: todo menos un archivo git add --all -- ':!archivo'
Git: borrar rama:git branch -D rama
add: git reset --hard origin/main
Git: permanente autentificacion
git config --global credential.helper store
git push https://github.com/owner/repo.git
----------------------------------------------------------
(2 hour):
git config --global credential.helper 'cache --timeout 7200'
Forever:
sudo apt-get install libsecret-1-0 libsecret-1-dev
cd /usr/share/doc/git/contrib/credential/libsecret
sudo make
git config --global credential.helper /usr/share/doc/git/contrib/credential/libsecret/git-credential-libsecret
sudo apt install dbus-x11
    
Git: token usuario/settings/Developing settings/Personal acces tokens
Git: updategit
                        rm -rf /var/lib/psa/dumps/clients/fed/domains/fedelleos.es/*
                        git add . 
                        git commit -m 'update'
                        git push
                        df -h
                        
grep sudo grep -R "Document Root" /etc/apache2/sites-enabled (Nos da la ubicacion de documentos adicionales)
/etc/apache2/sites-enabled/000-default.conf: DocumentRoot /var/www/html
Grub: recuperar grub
grub rescue>	Hacemos ls hasta que nos muestre particion ext2 o ext4
grub rescue> 	set root=(hd0,msdos2)   #por ejemplo
grub rescue>	set prefix=(hd0,msdos2)/boot/grub
grub rescue> 	insmod normal
grub rescue> 	normal
AL arrancar debemos instalar el grub
sudo grub-install /dev/sdc	#Si nuestra particion se encuentra en /dev/sdc2, por ejemplo
Fedora: dnf install grub2-efi-modules  efibootmgr
Inicio, ejecutar un programa crontab -e
https://enekodelatorre.com/ejecutar-un-script-o-programa-al-inicio-de-sesion-en-linux/
Iluminación pantalla echo 500 > /sys/class/backlight/intel_backlight/brightness
Instalar paquetes .tar.gz Algunos programas como jdk de java se instala simplemente tar zxvf .tar.gz; y ya; luego llevar el jdk descomprimido a /usr/java/ Otros con make: Dentro del archivo: tar -zxvf file.tar.gz
./configure; si da error hacer autoreconf -i antes
make
make install
apt, snapd, alien: alien -d paquete.rpm && dpkg -i paquete.deb
alien archivo.tar.gz && alien -r archivo.deb
Creando un lanzador en aplicaciones:
thunderbird.desktop en el directorio /usr/share/applications
[Desktop Entry]
#Nombre de la aplicación
Name=Thunderbird
#Comentario que aparece al seleccionar el lanzador
Comment=Cliente de correo
#Comando a ejecutar, generalmente el nombre de la aplicación
Exec=/opt/thunderbird/thunderbird
#Icono del lanzador, puede ser generico o especificar la ruta del mismo
Icon=/opt/thunderbird/chrome/icons/default/default32.png
#Para no abrir una terminal
Terminal=false
#Tipo de archivo
Type=Application
#Categoria de la aplicación
Categories=Network;EmailClient;
StartupNotify=true                             
                            

Error de dependencias: apt install -f
Instalar gnome kali apt install kali-desktop-gnome
Seleccionar gdm3
Instalar paquetes AUR sudo pacman -S base-devel git
makepkg -si
Interfaces de red y sus ips route -n
Ip, Escanea logs como /var/log/auth.log y banea las IP con demasiados errores de conexión. fail2ban
Ip pública propia curl wgetip.com
curl https://ipinfo.io/ip
Ip sitio dig sitio
Ip : solo ip4 postconf -e "inet_protocols = ipv4"
Ionos Archivos backup: /var/lib/psa/dumps/clients/fed/domains/fedelleos.es#
java instalar: sudo pacman -S jre11-openjdk-headless jre11-openjdk jdk11-openjdk openjdk11-doc openjdk11-src
versiones: archlinux-java status
elegir: archlinux-java set java-11-openjdk v-entorno:.bashrc -> export JAVA_HOME=/usr/lib/jvm/java-8-openjdk -> source .bashrc
JetBrains: Error while opening find ~/ -type f -name '.lock'|rm -rf
Localizacion curl ipinfo.io/'ip publica'
Maquina, cambiar nombre hostnamectl set-hostname nuevonombre
Memoria archivos, tamanio du -hs /ruta
Memoria ram y swap free -h
Memoria discos: espacio df -h
Meson
$ meson setup _build .
$ meson compile -C _build
$ meson install -C _build
                  
mkcert sudo apt install wget curl libnss3-tools
curl -s https://api.github.com/repos/FiloSottile/mkcert/releases/latest| grep browser_download_url | grep linux-amd64
mv mkcert-v*-linux-amd64 mkcert
chmod a+x mkcert
sudo mv mkcert /usr/local/bin/
Modulos kernel lsmod
NTFS Reiniciar Windows, desbloqueara las unidades
Desbloquearla de otra forma para escritura, podria dañar el disco
Parametros $@ todos los parametros
Paquetes Recogemos los paquetes que queremos que se mantengan actualizados, en: sudo nano /etc/apt/sources.list
phpmyadmin apt install phpmyadmin
/etc/phpmyadmin/config.inc.php
$cfg['SendErrorReports'] = 'never';
Paquetes: localizar dpkg -l | grep -i paquete
Procesos: ps -d 100 (Tiempo que se congele)
kill proceso (lo mata)
psaux
pstree
lsof -wni tcp:3000
lsof -wni | grep rails
Process View pv (process view) en los comandos nos muestra el progreso en comandos que no dispongan de un -v --verbose
Puertos: Saber qué puertos tiene abiertos nuestro sistema netstat -napt
Puertos (Debian): abrir iptables -A INPUT -p tcp --dport 80 -j ACCEPT
Redes: ips, macs conectadas sudo nmap -sP 192.168.1.1-254
Redes: CAMBIAR IP EN UBUNTU20 nano /etc/netplan/00-...
network:
 version: 2
 renderer: networkd
 ethernets:
  enp0s3:
   dhcp4: no
   addresses:
   - 192.168.1.10/24
   gateway4: 192.168.1.0
   nameservers:
    addresses:
    - 8.8.8.8
  enp0s8:
  enp0s9:
  enp0s10:
netplan apply
ip a
Redes: configuración Ip (Debian) apt install net-tools sudo ifconfig eth0 192.168.72.165 netmask 255.255.255.0 up
ifconfig eth0 down ———> Cierra eth0.
sudo route add default gw 192.168.72.2 eth0
echo “nameserver 8.8.8.8” > /etc/resolv.conf
eliminarla -> ip address del dev iwconfig ——————————————–> Similar a ifconfig pero sólo para interfaces wireless
ifup interface: ——————-> Habilita la interface especificada,ejemplos: ifup eth0 ;ifup ppp0
ifdown interface: —————–> Deshabilita la interface especificada,ejemplos: ifdown eth0 ;ifdown ppp0
Redes: configuración en Ubuntu16.04 sudo nano /etc/network/interfaces
auto enp0s3
iface enp0s3 inet static
address 192.168.0.15
netmask 255.255.255.0
network 192.168.0.0
broadcast 192.168.0.255
gateway 192.168.0.1
dns-nameservers 192.168.0.1
Redes: comprobacion de servidor nano /etc/resolv.conf
sudo /etc/init.d/networking restart
Ratón, configuración xinput set-button-map 16 3 2 1 4 5 6 7 8 9
https://www.ubuntuleon.com/2016/01/cambiar-la-asignacion-de-los-botones.html
Repositorios

cd /etc/apt/sources.list.d
vi <<xxx.list>> -> borramos repo no interesa
Repositorio: anadir. Error:
 
«http://ppa.launchpad.net/certbot/certbot/ubuntu impish Release» no tiene
                        un fichero de Publicación
sudo apt-add-repository -r ppa:certbot/certbot
Resolucion pantalla xrandr -s 1680x1050
Servicios: resetear, desbloquear sudo systemctl daemon-reload
Servicio, para que se ejecute cuando se inicia la maquina sudo systemctl enable servicio
Servicio, crear
[Unit]
Description=Flet Server
After=network.target

[Service]
User=fed                
Group=fed
WorkingDirectory=/home/fed/www/python/flet/prueba
Environment="PATH=/home/fed/www/python/flet/prueba/.venv/bin"
ExecStart=/home/fed/www/python/flet/prueba/.venv/bin/python /home/fed/www/python/flet/prueba/main.py

[Install]
WantedBy=multi-user.target

cd /etc/systemd/system
sudo ln -s /home/fed/www/python/flet/prueba/flet.service
sudo systemctl start flet
sudo systemctl enable flet
sudo systemctl status flet
Sistema: actualizar, fichero actualizacion echo 'sudo apt update && sudo apt dist-upgrade -y && sudo apt autoremove -y'>/bin/update && chmod +x /bin/update
Sistema, Actualiza la base de datos del locate, de la ruta de los ficheros updatedb & locate archivo.php
Sistema, apagar shutdown now
Sistema, desbloquear ctr alt f2
sudo killall -1 gnome-shell , cuando se bloquea gnome
htop, identifica el pid bloqueado
sudo kill -l numeropid
Sistema, distribucines ejecutables en tu sistema sudo os-prober
Sistema, hardware, operatividad, controladores, seguridad sudo snap install hw-probe
sudo snap connect hw-probe:block-devices :block-devices
sudo -E hw-probe -all -upload
Sistema, información lscpu, lspci
Sistema operativo cat /etc/os-release
Sistema version kernel uname -r
Sistema x86x64 uname -m
Ssh instalar:apt install ssh
encender:sudo system ssh start
encender:sudo /etc/init.d/ssh start
Ssh: entrar sin pass, mediante clave privada
ssh-keygen -t rsa -b 2048
ssh-copy-id user@server
				
SSL: Instalar certificado ssl para nuestro dominio en apache o ngnix, solo para dominios reales.
    Software: ssl en dominio
  1. sudo snap install core;sudo snap refresh core
  2. sudo snap install --classic certbot
  3. sudo ln -s /snap/bin/certbot /usr/bin/certbot
  4. Certificado:
  5. sudo certbot --apache -d fedelleos.es -d www.fedelleos.es
  6. Renovar :
  7. sudo systemctl stop apache2
  8. sudo certbot certonly --force-renew -d fedelleos.es
  9. sudo systemctl start apache2
ssl, activa sudo a2enmod ssl
Subdominios:
Incluir regla dns:
subdominio.domino IN  A   123.123.123.123
cp /etc/apache2/sites-availabe/000-default.conf subdominio.conf 
<VirtualHost *:80>
            ServerName fedelleos.es
            ServerAlias www.fedelleos.es
            ServerAdmin webmaster@localhost
            DocumentRoot /var/www/gci
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
cp /etc/apache2/sites-available/000-default-le-ssl.conf /etc/apache2/sites-available/gci-ssl.conf
<IfModule mod_ssl.c>
    <VirtualHost *:443>
            ServerName fedelleos.es
            ServerAlias www.fedelleos.es
            ServerAdmin webmaster@localhost
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    Include /etc/letsencrypt/options-ssl-apache.conf
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/gci.fedelleos.es/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/gci.fedelleos.es/privkey.pem
<VirtualHost>
</IfModule>
a2ensite gci.conf gci-ssl.conf
Crear los certificados ssl, con certbot
Si tenemos el directorio fuera de /var/www, debemos decircelo a Apache:
En apache2.conf o httpd.conf.
<Directory /home/username/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
chmod 755 para cada uno de los directorios
systemctl reload apache2 
                        
Subdominios: Proxy otros puertos
Incluir regla dns:
subdominio.domino IN  A   123.123.123.123
vi /etc/apache2/sites-available/sitio.conf
cp /etc/apache2/sites-available/000-default-le-ssl.conf /etc/apache2/sites-available/sitio.ssl.conf
<IfModule mod_ssl.c>
    <VirtualHost *:443>
            ServerName fedelleos.es
            ServerAlias www.fedelleos.es
            ServerAdmin webmaster@localhost
            ErrorLog ${APACHE_LOG_DIR}/error.log
            CustomLog ${APACHE_LOG_DIR}/access.log combined
    Include /etc/letsencrypt/options-ssl-apache.conf
    Include /etc/letsencrypt/options-ssl-apache.conf
    SSLCertificateFile /etc/letsencrypt/live/gci.fedelleos.es/fullchain.pem
    SSLCertificateKeyFile /etc/letsencrypt/live/gci.fedelleos.es/privkey.pem
<VirtualHost>
</IfModule>
a2ensite gci.conf gci-ssl.conf
Crear los certificados ssl, con certbot
Si tenemos el directorio fuera de /var/www, debemos decircelo a Apache:
En apache2.conf o httpd.conf.
<Directory /home/username/www/>
        Options Indexes FollowSymLinks
        AllowOverride None
        Require all granted
</Directory>
chmod 755 para cada uno de los directorios
systemctl reload apache2 
                        
SSL: ngnix Crear certificados arriba, y ya te configura los archivos autom!
Swap file sudo dd if=/dev/zero of=/swapfile bs=1M count=4096 status=progress
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
Desabilitarla: sudo swapoff /swapfile
Teclado: configuracion espaniol Settings -> languages
sudo setxkbmap -layout 'es,es' -model pc105
loadkeys es
Tee: mover un archico a varios tee < 512.png > apple-touch-icn-512.png icon-512.png icon-maskable-512.png
Timezone sudo dpkg-reconfigure tzdata
Trafico: Monitoriza tráfico de redes(ncurses) iptraf
Trafico: Muestra la ruta que los paquetes de datos han seguida hasta la máquina de destino. traceroute dominio
Trafico: Combina ping y traceroute. mtr dominio
Trafico: versión para consola de ethereal,un analizador del tráfico de red (sniffer). tethereal
Trafico: Determina la ip, dns, proveedor de un nombre o el nombre de una ip.(host -v -a 194.224.55.221) host -v -a dominio
Trafico: Informacion sobre un dominio whois dominio
Tor-browser https://www.torproject.org/
sudo ln -s /opt/tor-browser/Browser/start-tor-browser /bin/torb
Usuarios ver less /etc/passwd
Usuarios contraseñas less /etc/shadow
Usuario whoami
Usuario useradd encorto
adduser largo
usermod
password Te cambia la contraseña
password juan idem de juan
sudo adduser pepe grupopeep anade grupo al usuario
sudo usermod -a -G secreto filemon hacer un grupo por defecto para el usuario
sudo chown fede.fede 'Recovery Linux' CAMBIA PROPIETARIO Y GRUPO
sudo  apt-get  install  gnome-system-tools administracion usuarios
Usuario, hacer sudo nano /etc/sudoers (lo anadimos, como está root)
Usuario: root, cambiar contrasenia sudo passwd
Usuario, servidor finger usuario —> Informa sobre un usuario conectado al sistema.
finger @servidor —> Informa sobre todos los usuarios conectados a un servidor (nombre o IP)
finger usuario@servidor —> Informa sobre un usuario conectado a un servidor
Usuario, añadirlo a un grupo sudo usermod -a -G grupo user
Variables de entorno nano ~/.bashrc , al final del archivo
export PATH="$PATH:/opt/netbeans/bin/"
. ~/.bashrc para cargar el archivo
Version Linux cat /etc/issue.net
Vim Linea: numG
Busqueda: / N n
Principio: GG
Final: shift+g
Principio renglon: 0
Final renglon: $4
Seleccionar: v
Copiar: y
Cortar: x
Pegar: p
Sustituir: r
Borrar palabra: db
Desacer: u
Directorio: :o
Virtualbox Instalar:
sudo apt install virtualbox
ExtensionPack:
VBOXVERSION=$(VBoxManage --version | sed -r 's/([0-9])\.([0-9])\.([0-9]{1,2}).*/\1.\2.\3/')
wget -q -N "http://download.virtualbox.org/virtualbox/$VBOXVERSION/Oracle_VM_VirtualBox_Extension_Pack-$VBOXVERSION.vbox-extpack"
VBoxManage extpack install --replace Oracle*.vbox-extpack
Desinstalar:
sudo apt-get remove virtualbox-\*
sudo apt-get purge virtualbox-\*
ln ejecutable /etc/bin/
vmware Desinstalar
sudo vmware-installer -u vmware-workstation
vscode: install extensions cd $HOME/.vscode/extensions git clone https://github.com/ziyasal/vscode-open-in-github.git cd vscode-open-in-github npm install
Zurdo sudo xmodmap -e "pointer = 3 2 1"