Em entradas anteriores desta série de publicações, lembramos como implementar um:
- MÓDULO DE VALIDAÇÃO ROOT SUPERUSER
- MÓDULO DE VARIÁVEIS DE AMBIENTE
- MÓDULO DE DETECÇÃO DE EXECUÇÃO DUPLA ou FALHA DE EXECUÇÃO
E nos anteriores, como implementar um Shebang e um BSM (Modo Bash Strict / Modo Bash Estrito).
Melhores práticas para criar um Shell Script no GNU / Linux - Parte 1
Melhores práticas para criar um Shell Script no GNU / Linux - Parte 2
Aqui está um exemplo de Módulo de otimização, tomando como exemplo um dos meus programas (aplicativos) fatos em um Script shell chamado Linux Post Install - Bicentennial Script 8.0:
Este deve ser o módulo (seção) instalar os pacotes básicos necessários ao bom funcionamento dos mesmos, ou executar as ações mínimas necessárias para atualizar, manter ou executar o Ambiente de Trabalho ou Sistema Operacional para que tudo funcione de forma satisfatória. Eu pessoalmente adiciono as seguintes linhas para criar este módulo:
###############################################################################
# INICIO DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO
###############################################################################
# Sección que instala los paquetes bases del LPI-SB
echo -e '\a'
apt update && apt install dialog gxmessage zenity espeak gksu -y && apt install -f && dpkg --configure -a
if [ $? = 0 ]; then
echo ""
echo ""
echo "#--------------------------------------------------------#"
echo "#LA INSTALACIÓN DE LOS PAQUETES HA CULMINADO EXITOSAMENTE#"
echo "#--------------------------------------------------------#"
echo ""
echo ""
play /usr/share/sounds/info.wav 2> /dev/null
sleep 3
clear
else
echo ''
echo ''
echo '#--------------------------------------------------------#'
echo '# LA INSTALACIÓN DE LOS PAQUETES NO CULMINO EXITOSAMENTE #'
echo '#--------------------------------------------------------#'
echo ''
echo ''
play /usr/share/sounds/warning.wav 2> /dev/null
sleep 3
clear
echo ''
echo ''
echo '#--------------------------------------------------------#'
echo '# EJECUTE MANUALMENTE #'
echo '# UN MANTENIMIENTO PREVENTIVO Y CORRECTIVO EN SU SISTEMA #'
echo '# EJECUTANDO LA SIGUIENTES ORDEN DE COMANDO, 1 HA 1: #'
echo '# #'
echo '# apt update #'
echo '# apt install -f #'
echo '# dpkg --configure -a #'
echo '# apt upgrade #'
echo '# #'
echo '# LUEGO INSTALE MANUALMENTE LOS PAQUETES NECESARIOS #'
echo '# CON LA ORDEN DE COMANDO SIGUIENTE: #'
echo '# #'
echo '# apt install dialog gxmessage zenity espeak -y #'
echo '# #'
echo '# AHORA, VUELVA HA INTENTAR EJECUTAR EL SCRIPT LPI-SB #'
echo '#--------------------------------------------------------#'
echo ''
echo ''
sleep 3
clear
play /usr/share/sounds/info.wav 2> /dev/null
exit 0
fi
wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=BIENVENIDO%20AL%20LINUX%20POST%20INSTALL%20-%20SCRIPT%20BICENTENARIO&tl=es&total=1&idx=0&textlen=54&tk=511133.124198&client=t&prev=input&ttsspeed=0.24" ; play -q /tmp/audio.mp3
wget -o /dev/null --user-agent="Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.2 Safari/537.36" -O "/tmp/audio.mp3" "https://translate.google.co.ve/translate_tts?ie=UTF-8&q=ESTIMADO%20USUARIO%2C%20ESPERE%20UNOS%20SEGUNDOS%20MIENTRAS%20EL%20PROGRAMA%20SE%20CARGA%20E%20INICIA&tl=es&total=1&idx=0&textlen=77&tk=337132.200023&client=t&prev=input" ; play -q /tmp/audio.mp3
###############################################################################
# FINAL DEL MODULO DE OPTIMIZACIÓN AL LINUX POST INSTALL - SCRIPT BICENTENARIO
###############################################################################
===============
Como você pode ver, este módulo executa um atualização de aptitude, seguido pela instalação dos pacotes diálogo gxmessage zenity espeak gksu, continuando com as ordens de comando aptitude instalar -f y dpkg --configure -a. E no caso de se e somente se tudo tiver sido executado de forma satisfatória, um mensagem visual por terminal de conclusão bem-sucedida com um alerta sônico e continuei com a próxima etapa (módulo / seção) do Script Shell. Caso contrário, um mensagem visual por terminal de realização malsucedida com um alerta sônico, com outro mensagem visual pelo terminal recomendando ações manuais a serem executadas para evitar o erro alcançado novamente, e então terminar a execução do Script Shell.
Em relação às 2 últimas linhas do módulo, aqueles que começam com comando wget, por enquanto, não são essenciais, pois fazem parte de um Procedimento experimental adaptado por mim para alcançar o suporte de voz de um Script shell com conexão de internet usando o Sintetizador de voz online do Google Translate e sua voz feminina sensual, e assim substituir o sintetizador com voz robótica (masculino / feminino) fornecido localmente pelos sistemas operacionais GNU / Linux com os pacotes (programas) espeak, festival, festvox, mbrola, speech and stardict.
Recomendação:
LEIA O DOCUMENTO: «A CATEDRAL E O BAZAR»
A Catedral e o Bazar é uma espécie de manifesto criado por Eric S Raymond no ano 1.998 tentar explicar do seu ponto de vista e experiência pessoal (Criação do programa Buscar correio) o que ele percebeu sobre a criação e evolução bem-sucedidas do Linux e seus programas relacionados, especialmente da perspectiva da diferença entre os Modelos de Desenvolvimento de Software, que ele chamou pessoalmente: Maquete de Catedral e Maquete de Bazar.
Minha análise resumida desse documento é a seguinte:
Esta leitura sugere ou apresenta a visão que dentro do mundo de Engenharia de software existem “dois estilos de desenvolvimento completamente diferentes, modelo de catedral, aplicável à maioria dos desenvolvimentos realizados no mundo de software comercial, frente a modelo de bazar, mais típico do mundo Linux ". Enfatizando que esses 2 modelos são derivados de pontos de partida opostos sobre a natureza do processo de depuração de software e de sua teoria particular sobre o que ele chamou Lei de Linus que declarou o seguinte: "Dado um número suficiente de olhos, todos os erros são irrelevantes" ou em outras palavras: "Com um número suficiente de olhos, todos os erros são ninharias."
Também nesta leitura o autor enfatiza a palavra cabouqueiro, que na minha opinião o autor expressou como uma espécie de Usuário de alto nível capaz de compreender e explorar de forma eficiente um programa e de detectar, sugerir ou implementar correções ou modificações de forma e substância eficientes para toda a comunidade de usuários. Gostei muito desse conceito auto-sugerido por considerá-lo correto, porém, deixarei um que também gostei muito por ser muito mais global e / ou genérico.
"Linux é subversivo." Por quê? A primeira coisa que esta leitura nos diz é que:
Até então, havia uma grande diversidade de métodos ou modelos de Desenvolvimento de Software padronizados que eram baseados em um "Abordagem mais centralizada e planejada desde o início" como resultado do ato de projetar o Software sendo considerado algo relacionado a um fator X isso leva a “Alguma complexidade crítica”. E isso apesar de já existir no mundo UnixEm outras palavras, o trabalho consistindo em pequenas ferramentas, desenvolvimento rápido de protótipos e programação evolutiva, o surgimento da filosofia de desenvolvimento de Software Livre no Linux levou o assunto a outro nível de sofisticação.
Como resultado disso, embora Desenvolvimento de Software Privado foi feito de "Caminho silencioso e reverente", conforme você constrói um Catedral, o Desenvolvimento de Software Livre (Linux) foi feito de "forma movimentada e com múltiplas agendas (caminhos) e abordagens (propostas) ", assim como você estava em um ótimo Bazar.
Finalmente, expõe uma série de premissas que vale a pena quebrar e digerir em seu devido contexto para entender aqueles que desenvolvem para usuários da Comunidade de Software Livre. Essas premissas são:
- TODOS OS BONS TRABALHOS NO SOFTWARE COMEÇAM A TENTAR RESOLVER UM PROBLEMA PESSOAL A PARTIR DE QUE VOCÊ OS AGENDE.
- BONS PROGRAMADORES SABEM O QUE ESCREVER. O MAIOR SABE O QUE REESCRITAR (E REUTILIZAR).
- PENSE EM ELIMINAR PELO MENOS UM: VOCÊ ACABARÁ DE FAZER DE QUALQUER MANEIRA. "
- SE VOCÊ TEM A ATITUDE CERTA, PROBLEMAS INTERESSANTES O ENCONTRARÃO.
- QUANDO UM PROGRAMA NÃO ESTÁ MAIS INTERESSANDO VOCÊ, SEU ÚLTIMO DEVER É PASSÁ-LO PARA UM SUCESSOR COMPETENTE.
- TRATAR SEUS USUÁRIOS COMO COLABORADORES É A MANEIRA MENOS COMPLICADA DE MELHORAR RAPIDAMENTE E DEBUGURAR EFETIVAMENTE UM PROGRAMA.
- LIBERE-O EM BREVE. LANÇA COM frequência. E OUÇA SEUS USUÁRIOS.
- DADA UMA BASE BASTANTE DE TESTADORES E CONTRIBUIDORES, QUASE TODOS OS PROBLEMAS SERÃO IDENTIFICADOS RAPIDAMENTE E SUA SOLUÇÃO SERÁ ÓBVIO PARA ALGUÉM.
Mais outras 11 premissas restantes que são mais do tipo moderador (moral), que não vem com a história, mas com o que é interpretado por cada leitor (desenvolvedor), que no meu caso muito particular, me levou às seguintes conclusões:
Espero que tenha gostado desta informação e seja útil, pois A Leitura da Catedral e do Bazar é uma referência obrigatória para quem programa qualquer Desenvolvimento de Software Livre, seja ele grande ou pequeno.
Mais tarde, em postagens futuras, continuaremos a ver um exemplo de módulos (seções) que desempenham funções como:
- MÓDULO DE AUTORIZAÇÃO DO USUÁRIO COM SENHA
- MÓDULO DE DETECÇÃO DA ARQUITETURA DO SISTEMA OPERACIONAL
- MÓDULO DE CONFIGURAÇÃO DE IDIOMA DE CODIFICAÇÃO
- MÓDULO DE CONFIGURAÇÃO PROXY PARA O AMBIENTE DE EXECUÇÃO
Entre muitos outros!
E como sempre, recomendo vá aprendendo de forma autodidata sobre os comandos: gksu, diálogo, gxmessage, zenity, espeak, play, entre muitos outros para criar interfaces gráficas por Terminal ou para a Área de Trabalho do Usuário, com alertas sonoros ou multimídia, e conhecimento avançado que usarão mais tarde.
Lembre-se de que estas e quaisquer outras recomendações sobre alguns módulo, função, variável, comando ou ação em geral pode ser realizado várias maneiras, e o que é mostrado aqui é apenas um maneira simples, Do muitas maneiras possíveis e prováveis em que disse a ação pode ou poderia ser realizada!
Só para terminar deixo-vos, um Screencast feito por mim, para mostrar o que você seria capaz de fazer, após completar este Curso on-line de Shell Scripting em DesdeLinux:
(LINUX POST INSTALL - SCRIPT BICENTENNIAL 8.0.0) - Parte 2