Shell Scripting om een ​​.desktop-bestand te maken voor een draagbare applicatie

Bash Shell Scripting: maak een link van een draagbare app.

Bash Shell Scripting: maak een link van een draagbare app.

De term Shell die wordt toegepast op besturingssystemen verwijst naar de opdrachtinterpreter van het besturingssysteem. Over het algemeen is het een krachtige tekstinterface die zich manifesteert in de vorm van een terminal (console) en die in wezen 3 belangrijke werkgebieden bedient: het besturingssysteem beheren, applicaties uitvoeren en ermee communiceren, en dienen als basis omgeving programmeren. En scripting verwijst naar de techniek van het ontwerpen en maken van scripts met behulp van een shell.

Shell-scripts zijn buitengewoon handig. Het is een goed idee om die behoeften die we hebben te schrijven en vervolgens scripts te bewerken die dit werk voor ons doen. En in dit specifieke geval zullen we het gebruiken om koppelingen (snelkoppelingen) van applicaties te maken in het startmenu en de desktop van draagbare, zelfuitvoerende en zelfstandige apps.

Alacarte Linux-applicatie

Introducción

Vaak hebben we applicaties gedownload en geïnstalleerd die, al dan niet in de repositories van onze GNU / Linux-distributie, bij het installeren of uitvoeren niet de respectievelijke .desktop-bestanden aanmaakt. van hetzelfde of in het beste geval plaatst het het niet in het juiste pad, zodat het na het bijwerken van het Startmenu wordt gelezen en weergegeven in de lijst met geïnstalleerde pakketten van het besturingssysteem.

Daarom moeten we een beroep doen op het gebruik van applicaties zoals "Alacarte" of "Menulibre" om handmatig de betreffende link in het Startmenu te creëren.

En hoewel deze grafische applicaties hiervoor heel eenvoudig te gebruiken zijn, is het nooit te veel om te weten maak ons ​​eigen script om deze bewerking uit te voeren en weet dus van binnenuit hoe deze bewerking wordt uitgevoerd binnen het besturingssysteem.

Als u niet bekend bent met het maken en / of gebruiken van Shell Scripting-bestanden, dan kan dat Lees dit Vorig bericht (Shell, Bash en Scripts) om te beginnen en dan indien nodig om te verkennen alle publicaties over het onderwerp.

Linux gratis menu-applicatie

Het programma maken met behulp van Shell Scripting

We gaan er om redenen van ruimte van uit dat we al weten hoe we een script vanaf het begin moeten maken, dat wil zeggen dat we al weten hoe we de koptekst of de eerste delen van ons script moeten maken en dat we direct naar de inhoud ervan gaan.

Als u er echter twijfels over heeft, controleer dit dan Vorig bericht (Bouw je programma stap voor stap met Shell Scripting - Deel 1) om twijfels weg te nemen.

inhoud


#!/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
###############################################################################
Scriptinhoud op Mousepad

Scriptinhoud op Mousepad

opmerkingen

Zoals u kunt analyseren vanuit de code en de koptekst weglaat, voert het volgende script de volgende bewerkingen op een geautomatiseerde manier uit:

  1. Valideer dat u wordt gebruikt als root-machtiging voor supergebruikers of als root-rechten voor supergebruikers.
  2. Verwijder eerdere links in de applicatie die zijn gemaakt door een vorige versie.
  3. Maak het nieuwe .desktop-bestand (link) van de applicatie in zijn eigen map in het huis van de gebruiker.
  4. Wijs de toestemming van de eigenaar van de gebruiker toe aan het gemaakte bestand.
  5. Geef het gemaakte bestand de juiste machtigingen voor lezen / schrijven / uitvoeren.
  6. Creëer de nieuwe symbolische koppelingen naar de nodige routes.
  7. Werk het startmenu bij om het gemaakte .desktop-bestand weer te geven.
  8. Voer een specifieke URL uit op de gemaakte applicatie.

aanbeveling

Het wordt aanbevolen om dit bestand te maken in de map die de applicatie / het uitvoerbare bestand in kwestie bevat met het respectieve pictogram (afbeelding / logo) erin gespecificeerd en dat die map zich in het pad bevindt /opt in plaats van de route `echo $HOME`/mi_app/ dat is, /home/mi_usuario/mi_app.

Ik hoop dat u met dit kleine script uw ​​behoeften op dit gebied op dit gebied kunt oplossen! Tot het volgende artikel.

Terwijl ik je dit achterlaat link op de officiële Gnome-website over het onderwerp en deze video:


Laat je reactie achter

Uw e-mailadres wordt niet gepubliceerd. Verplichte velden zijn gemarkeerd met *

*

*

  1. Verantwoordelijk voor de gegevens: Miguel Ángel Gatón
  2. Doel van de gegevens: Controle SPAM, commentaarbeheer.
  3. Legitimatie: uw toestemming
  4. Mededeling van de gegevens: De gegevens worden niet aan derden meegedeeld, behalve op grond van wettelijke verplichting.
  5. Gegevensopslag: database gehost door Occentus Networks (EU)
  6. Rechten: u kunt uw gegevens op elk moment beperken, herstellen en verwijderen.

  1.   Guillermo zei

    Heel erg bedankt voor dit en al je artikelen.
    Eén vraag: hoe kun je, als je geen root bent, om het wachtwoord met sterretjes vragen om de uitvoering met de juiste machtigingen voort te zetten?

    1.    José Albert zei

      U kunt een interface met dialoog maken en de eigenschap van versleuteling van de sleutel toepassen op het wachtwoordverzoekvak! Ik herinner me nog goed dat deze eigenschap bestaat in dialoog.

      In dit vorige bericht deed iemand iets soortgelijks, maar dan grafisch, maar de bijgevoegde bestanden, dat wil zeggen, de gebruikte code is niet langer beschikbaar: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/

  2.   Guillermo zei

    Bedankt, het zou leuk zijn om de bash-omgeving niet te hoeven verlaten voor het geval het draait zonder een grafische interface, in dat geval maakt het niet uit, zelfs als er geen sterretjes of zoiets zijn, dat het om de sleutel vraagt ​​en er geen tekst verschijnt . Ummm, ik vind het in http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html