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.
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.
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
###############################################################################
opmerkingen
Zoals u kunt analyseren vanuit de code en de koptekst weglaat, voert het volgende script de volgende bewerkingen op een geautomatiseerde manier uit:
- Valideer dat u wordt gebruikt als root-machtiging voor supergebruikers of als root-rechten voor supergebruikers.
- Verwijder eerdere links in de applicatie die zijn gemaakt door een vorige versie.
- Maak het nieuwe .desktop-bestand (link) van de applicatie in zijn eigen map in het huis van de gebruiker.
- Wijs de toestemming van de eigenaar van de gebruiker toe aan het gemaakte bestand.
- Geef het gemaakte bestand de juiste machtigingen voor lezen / schrijven / uitvoeren.
- Creëer de nieuwe symbolische koppelingen naar de nodige routes.
- Werk het startmenu bij om het gemaakte .desktop-bestand weer te geven.
- 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:
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?
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/
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