Le terme Shell appliqué aux systèmes d'exploitation fait référence à l'interpréteur de commandes du système d'exploitation. En général, il s'agit d'une interface texte haute performance qui se manifeste sous la forme d'un terminal (console) et qui sert essentiellement 3 domaines de travail importants: administrer le système d'exploitation, exécuter les applications et interagir avec elles, et servir de base programmation d'environnement. Et le script fait référence à la technique de conception et de création de scripts à l'aide d'un shell.
Les scripts Shell sont extrêmement utiles. C'est une bonne idée d'écrire les besoins que nous avons, puis de modifier les scripts qui font ce travail pour nous. Et dans ce cas particulier, nous l'utiliserons pour créer des liens (raccourcis) d'applications dans le menu Démarrer et le bureau d'applications portables, auto-exécutables et autonomes.
Introduction
Plusieurs fois, nous avons téléchargé et installé des applications qui, étant ou non dans les référentiels de notre distribution GNU / Linux, lors de son installation ou de son exécution, il ne crée pas les fichiers .desktop respectifs du même ou dans le meilleur des cas, il ne le place pas dans le chemin correct de sorte qu'après la mise à jour du menu Démarrer, il soit lu et affiché dans la liste des packages installés du système d'exploitation.
Par conséquent, nous devons faire appel à l'utilisation d'applications telles que "Alacarte" ou "Menulibre" pour créer manuellement le lien correspondant dans le menu Démarrer.
Et bien que ces applications graphiques soient très simples à utiliser à cet effet, ce n'est jamais trop à savoir créer notre propre script pour effectuer cette opération et ainsi savoir de l'intérieur comment cette opération est effectuée dans le système d'exploitation.
Si vous n'êtes pas familiarisé avec la création et / ou l'utilisation de fichiers de script Shell, vous pouvez lis ça publication précédente (Shell, Bash et Scripts) pour commencer puis si nécessaire d'explorer toutes les publications sur le sujet.
Création du programme à l'aide de Shell Scripting
Nous supposerons pour des raisons d'espace que nous savons déjà créer un script à partir de zéro, c'est-à-dire que nous savons déjà créer l'en-tête ou les parties initiales de notre script et nous irons directement à son contenu.
Cependant, si vous avez des doutes à ce sujet, vérifiez ceci publication précédente (Construisez votre programme étape par étape en utilisant Shell Scripting - Partie 1) pour clarifier les doutes.
teneur
#!/usr/bin/env bash
set -eou pipefail
IFS=$'\n\t'
setterm --reset
# NOMBRE: MI-APP LINUX POST INSTALL - SCRIPT BICENTENARIO (MIAPP-LPI-SB)
# VERSIÓN: 1.0+0
# TIPO DE PROGRAMA: SISTEMA EXPERTO
# FUNCIÓN: ASISTENTE TECNICO PARA S.O. GNU/LINUX BASADOS EN DEBIAN
# NOMBRE CODIGO: MIAPP (MIAPP-LPI-SB 1.0+0)
# PAIS ORIGEN: Mi país
# CREADO POR: Mi Nombre
# LICENCIA: Licencia Pública General de GNU 3.
###############################################################################
# INICIO DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################
# ESTE MODULO VALIDA QUE SOLO EL SUPERUSUARIO (USUARIO ROOT) PUEDA EJECUTAR
# EL LINUX POST INSTALL - SCRIPT BICENTENARIO.
clear
setterm -background red
if [[ "$(id -u)" != "0" ]]; then
echo "ESTE SCRIPT DEBE SER EJECUTADO COMO ROOT"
sleep 3
clear
else
echo "ESTE SCRIPT SERA EJECUTADO COMO SUPERUSUARIO (ROOT)"
sleep 3
clear
fi
###############################################################################
# FINAL DEL MODULO DE VALIDACION PERMISO DE SUPERUSUARIO (ROOT) SOBRE EL MIAPP-LPI-SB
###############################################################################
###############################################################################
# INICIO DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
rm -f $HOME/mi_app/mi_app.desktop
rm -f $HOME/.local/share/applications/mi_app.desktop
rm -f $HOME/Desktop/mi_app.desktop
rm -f $HOME/Escritorio/mi_app.desktop
rm -f /usr/share/applications/mi_app.desktop
###############################################################################
echo "
[Desktop Entry]
Name=My Applicattions
GenericName=My Applicattions
GenericName[es]=Mi Aplicación
Comment=Mi Aplicación
Exec=/opt/mi_app/mi_app
Icon=`echo $HOME`/mi_app/icono_app.png
Terminal=false
Type=Application
Encoding=UTF-8
Categories=Network;Application;
MimeType=x-scheme-handler/mozilla;
X-KDE-Protocols=mozilla
" > `echo $HOME`/mi_app/mi_app.desktop
chown $USER:$USER -R `echo $HOME`/mi_app/mi_app.desktop
chmod 755 `echo $HOME`/mi_app/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/.local/share/applications/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Desktop/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop $HOME/Escritorio/mi_app.desktop
ln -s `echo $HOME`/mi_app/mi_app.desktop /usr/share/applications/mi_app.desktop
update-menus
###############################################################################
clear
su - $USER -c "xdg-open 'https://www.mi-app.com/'"
clear
echo ''
echo ''
echo '#------------------------------------------------------------------#'
echo '# GRACIAS POR USAR MI-APP LINUX POST INSTALL #'
echo '#------------------------------------------------------------------#'
echo ''
echo ''
sleep 3
###############################################################################
# FINAL DEL MODULO DE ORDENES DE COMANDO DE POST INSTALACIÓN
###############################################################################
Commentaires
Comme vous pouvez analyser à partir du code et en omettant l'en-tête, le script suivant effectue les opérations suivantes de manière automatisée:
- Vérifiez que vous êtes utilisé en tant que superutilisateur root ou superutilisateur root.
- Supprimez les liens précédents de l'application qui ont été créés par une version précédente.
- Créez le nouveau fichier .desktop (lien) de l'application dans son propre dossier dans la maison de l'utilisateur.
- Attribuez l'autorisation de propriétaire de l'utilisateur au fichier créé.
- Donnez au fichier créé les autorisations de lecture / écriture / exécution appropriées.
- Créez les nouveaux liens symboliques vers les itinéraires nécessaires.
- Mettez à jour le menu Démarrer pour afficher le fichier .desktop créé.
- Exécutez une URL spécifique sur l'application créée.
Recommandation
Il est recommandé que ce fichier soit créé dans le dossier contenant l'application / l'exécutable en question avec son icône respective (image / logo) qui y est spécifiée et que ledit dossier se trouve dans le chemin /opt
au lieu de l'itinéraire `echo $HOME`/mi_app/
es decir, /home/mi_usuario/mi_app
.
J'espère que ce petit script vous permettra de résoudre vos besoins à cet égard à ce sujet! Jusqu'à l'article suivant.
Pendant que je te laisse ça lien sur le site officiel de Gnome sur le sujet et cette vidéo:
Merci beaucoup pour cela et tous vos articles.
Une question: comment, si vous n'êtes pas root, pourriez-vous demander le mot de passe avec des astérisques pour continuer l'exécution avec les autorisations appropriées?
Vous pouvez créer une interface avec boîte de dialogue et appliquer à la boîte de demande de mot de passe la propriété de crypter la clé! Je me souviens bien que cette propriété existe en dialogue.
Dans cet article précédent, quelqu'un a fait quelque chose de similaire mais graphiquement mais les fichiers joints, c'est-à-dire que le code utilisé n'est plus disponible: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/
Merci, ce serait bien de ne pas avoir à quitter l'environnement bash au cas où il fonctionnerait sans interface graphique, dans ce cas, peu importe même s'il n'y a pas d'astérisques ou quoi que ce soit, qu'il demande la clé et qu'aucun texte n'apparaisse. Ummm, je le trouve dans http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html