Clave wifi con Bash (LIN/MAC)
#!/bin/bash
# Detectar sistema operativoOS=$(uname)
if [[ "$OS" == "Darwin" ]]; then echo "Sistema operativo: macOS" SSIDS=$(networksetup -listpreferredwirelessnetworks en0 | awk -F': ' 'NR>1 {print $1}' | sed 's/^[[:space:]]*//')
for ssid in $SSIDS; do echo -e "\nSSID: $ssid" security find-generic-password -D "AirPort network password" -a "$ssid" -w 2>/dev/null done
elif [[ "$OS" == "Linux" ]]; then echo "Sistema operativo: Linux" CONN_PATH="/etc/NetworkManager/system-connections"
if [ ! -d "$CONN_PATH" ]; then echo "No se encontró el directorio de conexiones guardadas. ¿Usas NetworkManager?" exit 1 fi
sudo grep -r -E '(^psk=|^ssid=)' "$CONN_PATH" | while read -r line; do if [[ "$line" == *"ssid="* ]]; then ssid=$(echo "$line" | cut -d'=' -f2) echo -e "\nSSID: $ssid" elif [[ "$line" == *"psk="* ]]; then psk=$(echo "$line" | cut -d'=' -f2) echo "Clave: $psk" fi doneelse echo "Sistema operativo no compatible." exit 1fiPara ejecutarlo, crear el archivo wifipass.sh y, una vez creado, darle los permisos necesarios
sudo chmod +x ./wifipass.shLuego, para ejecutarlo, basta con teclar:
sudo ./wifipass.sh