
Scripting Bash Shell: Crie um link de um aplicativo portátil.
O termo Shell aplicado a sistemas operacionais se refere ao interpretador de comandos do sistema operacional. Em geral, é uma interface de texto de alto desempenho que se manifesta na forma de um Terminal (Console) e que atende essencialmente a 3 importantes áreas de trabalho: Administrar o Sistema Operacional, Executar aplicativos e interagir com eles e servir como um programação básica de ambiente. E Scripting se refere à técnica de projetar e criar Scripts usando um Shell.
Scripts de shell são extremamente úteis. É uma boa ideia escrever todas as necessidades que temos e, em seguida, editar os scripts que fazem esse trabalho para nós. E, neste caso específico, vamos usá-lo para criar links de aplicativos (atalhos) no menu iniciar e na área de trabalho de aplicativos portáteis, autoexecutáveis e independentes.
Introdução
Muitas vezes baixamos e instalamos aplicativos que, estando ou não nos repositórios de nossa Distribuição GNU / Linux, ao instalá-la ou executá-la não cria os respectivos arquivos .desktop do mesmo ou na melhor das hipóteses não o coloque no caminho correto para que após a atualização do Menu Iniciar seja lido e mostrado na lista de pacotes instalados do Sistema Operacional.
Portanto, temos que apelar ao uso de aplicativos como o "Alacarte" ou "Menulibre" para criar manualmente o respectivo link no Menu Iniciar.
E embora esses aplicativos gráficos sejam muito simples de usar para esse fim, nunca é demais saber criar nosso próprio script para realizar esta operação e assim saber de dentro como esta operação é realizada dentro do sistema operacional.
Se você não está familiarizado com a criação e / ou uso de arquivos Shell Scripting, você pode Leia isso postagem anterior (Shell, Bash e Scripts) para começar e então, se necessário, explorar todas as publicações sobre o assunto.
Criando o programa usando Shell Scripting
Assumiremos por questões de espaço que já sabemos criar um script do zero, ou seja, já sabemos criar o cabeçalho ou partes iniciais de nosso script e iremos diretamente ao seu conteúdo.
No entanto, se você tiver dúvidas sobre isso, verifique este post anterior (Construa seu programa passo a passo usando Shell Scripting - Parte 1) para esclarecer dúvidas.
Conteúdo
#!/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
###############################################################################
Conteúdo do roteiro no Mousepad
comentários
Como você pode analisar a partir do código e omitir o cabeçalho, o script a seguir executa as seguintes operações de maneira automatizada:
- Valide se você está sendo usado como superusuário root ou permissão de superusuário root.
- Exclua links anteriores no aplicativo que foram criados por uma versão anterior.
- Crie o novo arquivo .desktop (link) do aplicativo em sua própria pasta dentro da casa do usuário.
- Atribua ao usuário permissão de proprietário para o arquivo criado.
- Dê ao arquivo criado as permissões apropriadas de leitura / gravação / execução.
- Crie os novos links simbólicos para as rotas necessárias.
- Atualize o menu iniciar para exibir o arquivo .desktop criado.
- Execute um URL específico no aplicativo criado.
Recomendação
Recomenda-se que este arquivo seja criado dentro da pasta que contém o aplicativo / executável em questão com seu respectivo ícone (imagem / logotipo) especificado dentro dele e que a referida pasta esteja localizada no caminho /opt
em vez da rota `echo $HOME`/mi_app/
quer dizer, /home/mi_usuario/mi_app
.
Espero que este pequeno roteiro permita que você resolva suas necessidades nesse sentido! Até o próximo artigo.
Enquanto eu te deixo isso link no site oficial do Gnome sobre o assunto e este vídeo:
Muito obrigado por este e todos os seus artigos.
Uma pergunta: como, se você não for root, pode pedir a senha com asteriscos para continuar a execução com as permissões apropriadas?
Você pode criar uma interface com diálogo e aplicar à caixa de solicitação de senha a propriedade de criptografar a chave! Lembro bem que esta propriedade existe em diálogo.
Nesse post anterior, alguém fez algo semelhante, mas graficamente, mas os arquivos anexados, ou seja, o código utilizado não está mais disponível: https://blog.desdelinux.net/script-avanzado-en-bash-bashmd5-para-proteger-algo-explicacion-detallada/
Obrigado, seria bom não ter que sair do ambiente bash caso ele rode sem uma interface gráfica, nesse caso não importa mesmo que não haja asteriscos nem nada, que ele peça a chave e nenhum texto apareça. Ummm, eu encontro em http://www.tormentadebits.com/2012/08/scripts-bash-introducir-password-sin-mostrarlo-en-pantalla.html