L'acabo Shell aplicat als Sistemes Operatius es refereix a l'intèrpret de comandaments de el Sistema Operatiu. En general, és una interfície de text d'altes prestacions que es manifesta en forma de Terminal (Consola) i que serveix essencialment per a 3 importants àrees de treball: Administrar el Sistema Operatiu, Executar aplicacions i interactuar amb elles, i servir d'entorn bàsic de programació. I Scripting es refereix a la tècnica de dissenyar i crear Scripts mitjançant un Shell.
Els Scripts de Shell són extremadament útils. És bona idea escriure aquelles necessitats que tinguem i després editar scripts que realitzen aquest treball per nosaltres. I en aquest cas en particular el farem servir per crear enllaços (accessos directes) d'aplicacions al menú d'inici i l'escriptori d'apps portables, acte-executables i auto-contingudes.
Introducció
Moltes vegades hem descarregat i instal·lat aplicacions que estant o no en els repositoris de la nostra Distribució GNU / Linux a l'instal·lar-la o executar-la mateixa no crea els respectius fitxers .desktop de la mateixa o en el millor dels casos no col·loca el mateix en el camí correcte perquè després d'actualitzar-la Menú d'Inici sigui llegit i mostrat en la llista de paquets instal·lats de el Sistema Operatiu.
Per tant, ens toca apel·lar a l'ús d'aplicacions com «Alacarte» o «Menulibre» per manualment crear el respectiu enllaç al Menú d'Inici.
I encara que aquestes aplicacions gràfiques són molt senzilles d'utilitzar per a aquest fi, mai aquesta altres saber crear el nostre propi script perquè realitzi aquesta operació i així conèixer des de dins com es realitza aquesta operació dins de el Sistema Operatiu.
Si vostè no està familiaritzat amb la creació i / o ús d'arxius Shell Scripting pot llegir aquesta publicació anterior (Shell, Bash i Scripts) per començar i després en cas de ser necessari explorar totes les publicacions a l'respecte sobre el tema.
Creant el programa usant Shell Scripting
Assumirem per qüestions d'espai que ja sabem crear un script des de zero, és a dir, ja sabem crear la capçalera o parts inicials del nostre script i anirem directe a el contingut de la mateixa.
No obstant això si tenen dubtes a l'respecte revisin aquesta publicació anterior (Construeix pas a pas el teu programa utilitzant Shell Scripting - Part 1) per aclarir dubtes.
Contingut
#!/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
###############################################################################
Comentaris
Com podran analitzar a partir d'el codi i ometent la capçalera el següent script realitza les següents operacions de forma automatitzada:
- Validar que aquest sent usat com super-usuari root o permís de super-usuari root.
- Esborrar anteriors enllaços de l'aplicació que hagin estat creats per una versió anterior.
- Crear el nou arxiu .desktop (enllaç) de l'aplicació en la seva pròpia carpeta dins de l'home de l'usuari.
- Assignar-li a l'usuari permís de propietari sobre l'arxiu creat.
- Assignar-li a l'arxiu creat els permisos de lectura / escriptura / execució adequats.
- Crear els nous enllaços simbòlics a les rutes necessàries.
- Actualitzar el menú d'inici perquè visualitzi el fitxer .desktop creat.
- Executar un URL específica sobre l'aplicació creada.
Recomanació
Es recomana que aquest arxiu sigui creat dins de la carpeta que conté a l'aplicació / executable en qüestió amb el seu respectiu icona (imatge / logo) especificat dins de la mateixa i que aquesta carpeta es trobi en la ruta /opt
en comptes de la ruta `echo $HOME`/mi_app/
És a dir, /home/mi_usuario/mi_app
.
Espero que aquest petit script els permeti solucionar les seves necessitats a l'respecte sobre aquest tema! Fins al proper article.
Mentre els deixo aquest enllaç a la web oficial de Gnome sobre el Tema i aquest vídeo:
Moltes gràcies per aquest i tots els teus articles.
Un dubte: Com, en cas de no ser root, es podria demanar la clau ensenyant asteriscs per prosseguir l'execució amb els permisos adequats?
Podries crear una interfície amb dialog i aplicar-li a la caixa de sol·licitud de contrasenya la propietat de xifrar la clau! Recordo bé que existeix aquesta propietat en dialog.
En aquesta entrada anterior, algú va fer una cosa semblant però gràficament però els arxius adjunts, és a dir, el codi usat ja no està disponible: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/
Gràcies, seria bo no haver de sortir de l'entorn bash per si s'executa sense interfície gràfica, en aquest cas no importa fins i tot si no hi ha asteriscs ni res, que demani la clau i no aparegui cap text. Ummm, el trobo a http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html