Nombre del autor:admin

Versionamiento de scripts

Si no queres lidear con GIT ni servidores por proteccion de datos del script ejemplo: “script.sh”
Lo vas modificando y vas probando, cada vez que lo ejecutas se hace backup

#!/bin/bash

echo "Haciendo backup del script $0"
cp $0 $0.$(date +'%Y%m%d-%H%M')
chown $SUDO_USER: $0.*

#Inicio Script##


echo Hola Mundo!!!


#Fin Script####

Luego para ver las diferencias que tuviste en el dia creas un “script.sh.changes” por ejemplo

#!/bin/bash
BLUE='\033[0;34m' 
NC='\033[0m'
ANTERIOR='' 
for i in $(ls script.sh.$(date +'%Y%m%d')*) 
 do if [ ! -z "$ANTERIOR" ]
    then 
      echo -e "${BLUE}----------- diff $ANTERIOR $i ------------${NC}" 
      diff --color $ANTERIOR $i 
    fi 
    ANTERIOR=$i
 done

Si queres cambiar colores

# Reset
Color_Off='\033[0m'       # Text Reset

# Regular Colors
Black='\033[0;30m'        # Black
Red='\033[0;31m'          # Red
Green='\033[0;32m'        # Green
Yellow='\033[0;33m'       # Yellow
Blue='\033[0;34m'         # Blue
Purple='\033[0;35m'       # Purple
Cyan='\033[0;36m'         # Cyan
White='\033[0;37m'        # White

# Bold
BBlack='\033[1;30m'       # Black
BRed='\033[1;31m'         # Red
BGreen='\033[1;32m'       # Green
BYellow='\033[1;33m'      # Yellow
BBlue='\033[1;34m'        # Blue
BPurple='\033[1;35m'      # Purple
BCyan='\033[1;36m'        # Cyan
BWhite='\033[1;37m'       # White

# Underline
UBlack='\033[4;30m'       # Black
URed='\033[4;31m'         # Red
UGreen='\033[4;32m'       # Green
UYellow='\033[4;33m'      # Yellow
UBlue='\033[4;34m'        # Blue
UPurple='\033[4;35m'      # Purple
UCyan='\033[4;36m'        # Cyan
UWhite='\033[4;37m'       # White

# Background
On_Black='\033[40m'       # Black
On_Red='\033[41m'         # Red
On_Green='\033[42m'       # Green
On_Yellow='\033[43m'      # Yellow
On_Blue='\033[44m'        # Blue
On_Purple='\033[45m'      # Purple
On_Cyan='\033[46m'        # Cyan
On_White='\033[47m'       # White

# High Intensity
IBlack='\033[0;90m'       # Black
IRed='\033[0;91m'         # Red
IGreen='\033[0;92m'       # Green
IYellow='\033[0;93m'      # Yellow
IBlue='\033[0;94m'        # Blue
IPurple='\033[0;95m'      # Purple
ICyan='\033[0;96m'        # Cyan
IWhite='\033[0;97m'       # White

# Bold High Intensity
BIBlack='\033[1;90m'      # Black
BIRed='\033[1;91m'        # Red
BIGreen='\033[1;92m'      # Green
BIYellow='\033[1;93m'     # Yellow
BIBlue='\033[1;94m'       # Blue
BIPurple='\033[1;95m'     # Purple
BICyan='\033[1;96m'       # Cyan
BIWhite='\033[1;97m'      # White

# High Intensity backgrounds
On_IBlack='\033[0;100m'   # Black
On_IRed='\033[0;101m'     # Red
On_IGreen='\033[0;102m'   # Green
On_IYellow='\033[0;103m'  # Yellow
On_IBlue='\033[0;104m'    # Blue
On_IPurple='\033[0;105m'  # Purple
On_ICyan='\033[0;106m'    # Cyan
On_IWhite='\033[0;107m'   # White

Versionamiento de scripts Read More »

Listar dependencias de todos los paquetes instalados

#!/bin/bash
RED='\033[0;31m'
BLUE='\033[0;34m' 
NC='\033[0m'


dpkg -l | grep -E "^i|^rc" | sed 's/:amd64//g' | awk '{print $2}'  | while read line 
 do echo -e ${BLUE} 
      apt-cache depends --no-pre-depends --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances -qqqq $line \
     | sed -z 's/\n  Depends: /,/g;s/\n |Depends: /,/g;s/\n    /,/g;s/>//g;s/<//g'
    echo -e ${RED}-------- ${NC}
done

Version copada con sugerencias prompeadas y elaborado por chatgpt

#!/bin/bash

# Definir los colores
GREEN='\033[0;32m'
RED='\033[0;31m'
BLUE='\033[0;34m'
YELLOW='\033[0;33m'
WHITE='\033[0;37m'
CYAN='\033[0;36m'
PURPLE='\033[0;35m'
NC='\033[0m'  # Sin color

# Definir una lista de colores para cada nivel de dependencias
COLORS=($GREEN $RED $BLUE $YELLOW $WHITE $CYAN $PURPLE)

# Función recursiva para obtener las dependencias sin repetir, mostrando con colores e indentación
get_dependencies() {
    local package=$1
    local level=$2
    local indent=$(printf "%${level}s")  # Generar la indentación
    local deps

    # Si ya hemos listado este paquete, no lo repetimos
    if [[ " ${visited[@]} " =~ " ${package} " ]]; then
        return
    fi

    # Marcar el paquete como visitado
    visited+=("$package")

    # Obtener las dependencias del paquete
    deps=$(apt-cache depends --no-pre-depends --no-recommends --no-suggests --no-conflicts --no-breaks --no-replaces --no-enhances -qqqq "$package" \
           | sed -z 's/\n  Depends: /,/g;s/\n |Depends: /,/g;s/\n    /,/g;s/>//g;s/<//g' | tr ',' '\n' | sort -u)

    # Obtener el color correspondiente al nivel actual
    color=${COLORS[$((level % ${#COLORS[@]}))]}

    # Imprimir el paquete con el color correspondiente al nivel y con la indentación
    echo -e "${indent}${color}${package}${NC}"

    # Llamar a la función recursiva para cada dependencia
    for dep in $deps; do
        if [[ -n "$dep" ]]; then
            get_dependencies "$dep" $((level + 2))  # Incrementar la indentación
        fi
    done
}

# Función para manejar múltiples paquetes
process_packages() {
    for package in "$@"; do
        echo -e "${CYAN}Procesando paquete: ${package}${NC}"
        get_dependencies "$package" 0
    done
}

# Si no se proporciona ningún paquete
if [ -z "$1" ]; then
    echo -e "${RED}No se proporcionó ningún paquete como argumento.${NC}"
else
    # Inicializar una lista de paquetes visitados
    visited=()

    # Guardar la salida en una variable y pasarla a less -R para mantener los colores
    output=$(process_packages "$@")
    echo "$output" | less -R
fi

Listar dependencias de todos los paquetes instalados Read More »

OBS-Studio en Ubuntu

clear
echo ---OBS-Studio por PPA---------------
echo -------Quitando el anterior---------
sudo apt remove obs-studio --auto-remove -y >/dev/null 2>&1
echo -------Agregando repo ppa-----------
sudo add-apt-repository ppa:obsproject/obs-studio -y >/dev/null
echo -------Actualizando lista-----------
sudo apt update >/dev/null 2>&1
echo -------Instalando ultima version----
sudo apt install obs-studio -y  >/dev/null 2>&1

echo ---OBS Background removal-----------
PAQUETE=$(wget -qO- https://github.com/occ-ai/obs-backgroundremoval/releases/latest | grep linux-gnu.deb | cut -d \: -f1 | uniq)
VERSION=$(wget -qO- https://github.com/occ-ai/obs-backgroundremoval/releases/latest | grep linux-gnu.deb | cut -d \- -f3 | uniq)
wget -q -O /tmp/$PAQUETE --show-progress https://github.com/occ-ai/obs-backgroundremoval/releases/download/$VERSION/$PAQUETE
echo -------Instalando ultima version----
sudo apt install -y /tmp/$PAQUETE  >/dev/null 2>&1

#sudo add-apt-repository ppa:obsproject/obs-studio -r -y

OBS-Studio en Ubuntu Read More »

Filtro de luz azul f.lux

#!/bin/bash
which redshift >/dev/null
if [ $? -ne 0 ] ; then sudo apt install redshift -y >/dev/null 2>&1 ; fi
#Brilo de 0.1 a 1.0
BrilloDia=0.8
BrilloNoche=0.8

#Latitud se puede obtener desde https://justgetflux.com/map.html
Latitud=-34.60
Longitud=-58.38

#Temperatura de color
# 5000K (Luz solar), 4200K (Luz florecente), 3400K (Luz alógena), 
# 2700K (Tungsteno), 2300K (Regulador de incandescencia), 2000K (Un mínimo aprox)
TemperaturaColorDia=4200K
TemperaturaColorNoche=3400K

echo Reseteando configuracion
ps -fea | grep redshift | grep -v grep | awk '{print $2}' | while read line ; do kill -9 $line ; done
pkill redshift 
redshift -x -m randr >/dev/null 2>&1

echo Seteando configuracion
echo "Brillo $BrilloDia $BrilloNoche
Ubicacion $Latitud:$Longitud 
Temperatura $TemperaturaColorDia:$TemperaturaColorNoche"

redshift -b $BrilloDia:$BrilloNoche -l $Latitud:$Longitud -t $TemperaturaColorDia:$TemperaturaColorNoche -m randr >/dev/null 2>&1 &
exit
sudo apt install git redshift python3 python3-distutils -y
cd /tmp
git clone https://github.com/xflux-gui/fluxgui.git
cd fluxgui
sudo python3 download-xflux.py
sudo python3 setup.py install

Filtro de luz azul f.lux Read More »

Upgrade lubuntu 20.04 a 22.04

#!/bin/bash
if [ "$1" == "1" ] ; then
	echo ---------- Quitando repo chrome
	if [ -f /etc/apt/sources.list.d/google-chrome.list ] ; then
		rm /etc/apt/sources.list.d/google-chrome.list
	fi
	echo ---------- Quitando tonterias ubuntu-pro
	if [ -f /etc/apt/apt.conf.d/20apt-esm-hook.conf ] ; then
		rm /etc/apt/apt.conf.d/20apt-esm-hook.conf
	fi
	echo ---------- Actualizando
	apt update
	apt --fix-broken install -y
	apt upgrade -y
	echo ---------------------hay que reiniciar!!!
	exit
fi
if [ "$1" == "2" ] ; then 
	echo ---------- Chequeando si estamos en 20.04
	grep 20.04 /etc/os-release > /dev/null
	if [ "$?" == "0" ] ; then
		echo --------- upgrade to 22.04
		apt autoremove -y
		apt clean
		apt dist-upgrade -y
		do-release-upgrade
	else
		echo no hace falta actualizar
	fi
fi
if [ "$1" == "3" ] ; then
	KERNEL=6.5.0-35
	echo --------- Instalando ultimo kernel $KERNEL
	apt install linux-headers-$KERNEL-generic \
	    linux-hwe-6.5-headers-$KERNEL \
	    linux-image-$KERNEL-generic \
	    linux-modules-$KERNEL-generic \
	    linux-modules-extra-$KERNEL-generic -y
	echo -------------finalizando en la version------------
		grep 04 /etc/os-release
	echo ---------hay que reiniciar-------------
	exit
fi
if [ "$1" == "4" ] ; then 
	echo ----------- Volando snap!!
	which snap > /dev/null
	if [ "$?" == "0" ] ; then 
		for i in $(snap list| grep -vE "Name|snapd|core|bare" | awk '{print $1}'); do sudo snap remove $i ; done
		for i in $(snap list| grep -vE "Name|snapd" | awk '{print $1}'); do sudo snap remove $i ; done
		for i in $(snap list| grep -vE "Name" | awk '{print $1}'); do sudo snap remove $i ; done
		apt remove snapd -y
	fi

	echo ---------- Limpiando basura 
	apt remove --purge ubuntu-advantage-tools distro-info ubuntu-pro-client firefox snapd plasma-discover-backend-snap -y
	apt -f install
        apt remove --purge $(dpkg -l | grep "^rc" | awk '{print $2}') -y
	apt autoremove -y
	apt clean

	if [ -f /etc/systemd/system/var-snap-firefox-common-host\\x2dhunspell.mount ] ; then
		systemctl stop var-snap-firefox-common-host\\x2dhunspell.mount
		systemctl disable var-snap-firefox-common-host\\x2dhunspell.mount
		mv /etc/systemd/system/var-snap-firefox-common-host\\x2dhunspell.mount \
		  /etc/systemd/system/var-snap-firefox-common-host\\x2dhunspell.mount.fuckoff
	fi
	exit
fi

if [ "$1" == "5" ] ; then 
	#https://linuxconfig.org/switching-to-firefoxs-deb-installation-on-ubuntu-22-04-a-guide-to-avoiding-snap-packages
	#https://support.mozilla.org/en-US/kb/install-firefox-linux#w_install-firefox-deb-package-for-debian-based-distributions
	echo --------- Instalando firefox como la gente
	apt update
	apt remove firefox -y
	apt autoremove -y
	apt clean -y
        apt --fix-broken install -y

	echo ------firefox deb
	install -d -m 0755 /etc/apt/keyrings
	wget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc > /dev/null
	gpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk '/pub/{getline; gsub(/^ +| +$/,""); print "\n"$0"\n"}'
	echo "deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main" | sudo tee /etc/apt/sources.list.d/mozilla.list > /dev/null
# quito la tabulacion sino la preferencia no sirve
echo '
Package: *
Pin: origin packages.mozilla.org
Pin-Priority: 1000
' | sudo tee /etc/apt/preferences.d/mozilla 
	sudo apt-get update && sudo apt-get install firefox firefox-l10n-es-es -y

	echo -----firefox-esr
	BASE=http://ppa.launchpadcontent.net/mozillateam/ppa/ubuntu/pool/main/f/firefox-esr/ 
	curl -s $BASE | cut -d \" -f 8 | grep -E "firefox-esr_|firefox-esr-locale-es" | grep amd64 | grep "22.04" \
		| while read line 
		   do echo $line 
		      wget -qO $line $BASE/$line 
		   done
	echo -------- Instalando
	sudo dpkg -i $(ls firefox*.deb)
	
	find /home -type f -name '*mimeapps.list' -exec sed 's/firefox.desktop/firefox-esr.desktop/g' -i {} \;
fi
     

Upgrade lubuntu 20.04 a 22.04 Read More »

Scroll al inicio