http://www.zago.eti.br/modelos/funcoeszz.txt Use CTRL+F para refinar a pesquisa. Linha de: **************** separa mensagens ou tópicos. ******************************************************** Zago http://www.zago.eti.br/menu.html FAQ e artigos sobre Linux ******************************************************** FUNÇÕES ZZ Funções zz do Aurelio é uma ferramenta indispensavel em qualquer instalação. CL 10 vem com as funções zz do Aurelio, pra instalar, procure no synaptic por funcoeszz ou na linha de comando como root: apt-get install funcoeszz funcoeszz zzzz --bashrc bash #pra testar execute zzcalcula 25*3 e veja se retorna 75. zzcalcula 25*3 # ou pra listar todas as funções: zz mais a tecla TAB duas vezes pra listar todas as funções. Em outras distros ou versões do Conectiva voce precisa fazer o download, procure por funcoeszz em: http://www.aurelio.net Pra executar uma função, torne o script executavel execute: chmod +x funcoeszz Depois é só executar neste formato: funcoeszz por exemplo, pra usar a função de calculadora 25*3, execute: funcoeszz zzcalcula 25*3 Pra quem não instalou e pra executar no proprio diretório precisa incluir sh ou ./ antes no nome da função. O mais prático é colocar em /usr/bin: cp funcoeszz /usr/bin Pra instalar as funções zz e simplificar os comandos, inclua as funções no seu .basrc, basta executar: funcoeszz zzzz --bashrc Pra valer estas alterações precisa recarregar o bash, basta executar na linha de comando: bash ou fechar o terminal e abrir novamente pra carregar as alterações no .bashrc, depois é só executar o nome da função com os parametros, não vai precisar mais digitar funcoeszz, agora basta o nome da função mais os parametros, ex. zzcalcula 25*3 Pra ver o help da função execute o nome da função mais --help, exemplo: zzcalcula --help Pra ver todas as funções execute: zz Para listar todas as funções disponíveis, digite zz mais a tecla TAB duas vezes: zz Veja explicação mais detalhada no página do Aurelio em: http://www.aurelio.net ******************************************************** Dicas pra alterar ou incluir mais funções em funcoeszz Edite o script /usr/bin/funcoeszz e inclua a função que voce criou, pode copiar uma das funções existentes e fazer alterações a seu modo, siga estas dicas: 1 - faça copia de uma função. 2 - faça as alterações da copia, inicie alterando as linhas comentadas pra colocar seu help, mantenha todas as linhas comentadas, altere somente o texto. 3 - altere a linha que inicia com o nome da função para o novo nome da tua função, ex.: a primeira linha da função zzsenha original é esta: zzsenha(){ zzzz -z $1 zzsenha && return pra criar a função zzsamba alterei o nome pra ficar assim: zzsamba(){ zzzz -z $1 zzsamba && return depois é só apagar o conteúdo da função e colocar seus comandos, é obrigatório manter a ultima linha com este simbolo "}", pra fechar a função. 4 a nova função deve ter esta estrutura: # ---------------------------------------------------------------------------- # linhas pra comentarios e help - opcional. # ---------------------------------------------------------------------------- zzsamba(){ zzzz -z $1 zzsamba && return coloque aqui seus comandos $2 e tal ...... } 5 a nova função pode ser acrescentanda em qualque parte do script, cuidado pra não quebrar função já existente, tem que entre duas funções já existentes, não importa a ordem, quando colocada no final o help não funciona, qualquer dia procuro ajuda do Aurelio pra entender e resolver o problema. Sempre que fizer alteração em alguma função ou acrescenar nova função, precisa recarregar o bash, basta digitar na linha de comando: bash Ou fechar o terminal e abrir novamente. Prontinho ... já pode usar a nova função. Neste documento tem algumas funções que acrescentei pra uso no meu dia a dia, voce pode adapta-las pra sua necessidade. Algumas tem duas opções, o texto pra copiar e colar diretamente nas funcoeszz e outros já estão no formato pra copiar e colar, neste formato não precisa editar as funções zz, basta copiar as linhas indicadas entre #inicio e #fim, em um terminal como root pressione as teclas SHIFT+INSERT ou botão auxilar ou do meio do mouse pra colar, depois precisa fechar o terminal e abrir novamente pra incluir no path. ATENÇÃO: Tenha muito cuidado em aplicar as funções disponiveis neste documento, funcionam nas minhas instalações, como algumas requerem poderes de root, elas podem causar danos irreversiveis em suas instalações, foram feitas pra meu uso e aplicações, não tem aval nem acompanhamento do Aurelio, portanto não temos responsabilidade alguma por qualquer dano que estas funções venha causar, elas não tem rotina de teste, não emitem aviso, não tem garantia de funcionamento correto, podem danificar a instalação. Portanto aplique em ambientes de testes, procure entender a função, seus resultados e consequencias... Use por sua conta e risco. ******************************************************** [ Samba 2.2 ...] Função pra usar em servidores Samba pra adicionar usuários. Função pra samba da versão 2.2 ... Samba com versão 3 ou superior use o script [ Samba 3], a única alteração é no formato de criação e senhas do usuário, veja no proximo tópico modelo pra samba da versão 3. Deve ser executado somente em servidores Samba e requer o arquivo modelo.bat (modelo padrão de logon-script) em /home/netlogon Incluir nas funções zz a função zzsamba pra criar usuário tanto por Linux como pro samba e também cadastrar a senha, utilizo este script pra criar usuários tanto por Linux como pro Samba, na linha de comando, como root, ditando zzsamba zago minhasenha, sem precisar de confirmação ou redigitar a senha, esta função cadastra o usuário zago pro Linux e pro Samba e também define a senha minhasenha. OBS. funciona no CL10 ou distro com Samba versão 3 em diante, pra versões anteriores precisa ajustar esta função porque o comando do samba é diferente. Pra incluir esta função nas funções zz voce tem duas opçãos, editar o arquivo de funções pra incluir as linhas abaixo ou copiar diretamente no navegador e colar diretamente no prompt de um terminal, voce escolhe: Editar /usr/bin/funcoeszz, incluir entre as funções, estas linhas: #linha de comando pra importar este texto pro "vi" (veja cp.txt) # :r !lynx -dump http://www.zago.eti.br/modelos/zzsamba # ---------------------------------------------------------------------------- # Cria usuário pro Linux e Samba versão 2.2 # Obs.: no nome use somente letras e numeros, não utilize o ponto. # Uso: zzsamba nome-de-login senha # Ex.: zzsamba zago minhasenha # ---------------------------------------------------------------------------- zzsamba(){ zzzz -z $1 zzsamba && return # Modifique ou acrescente aqui as instruções pra validar login, senha # e outras consistencias de seu interesse. grep "^$1:" /etc/passwd > /dev/null id $1 if [ $? -eq 0 ]; then echo "Usuario $1 já existe, nada a ser feito, saindo da função" sleep 3 exit fi if test $UID = 0; then adduser $1 echo $2 | passwd --stdin $1 smbpasswd -a $1 -s $2 echo "Cadastro efetuado, usuário $1 com a senha $2" else echo Pra criar usuários requer poderes de root.. exit fi if [ -e /home/netlogon/modelo.bat ]; then sed "s/usermodelo/$1/g" /home/netlogon/modelo.bat > /home/netlogon/$1.bat else echo Não criou login-script, falta login-script modelo.bat pra fazer a copia... fi } Ou da maneira mais simples e rápida, em uma tacada só, com dois clique!, como voce já esta lendo este texto, faça a copia de todas as linhas abaixo (entre #inicio e #fim, abra um terminal, torne root e cole, pressione as teclas SHIFT+INSERT, ou botão auxiliar ou botão do meio do maouse, uma destas opções fará a inclusão no script de funções em /usr/bin/funcoeszz. Cuidado com a quebra de linha de onde fizer a copia, (navegador ou editor). #inicio echo "# ---------------------------------------------------------------------------- " >> /usr/bin/funcoeszz echo "# Cria usuário pro Linux e Samba versão 2.2 " >> /usr/bin/funcoeszz echo "# Obs.: no nome use somente letras e numeros, não utilize o ponto." >> /usr/bin/funcoeszz echo "# Uso: zzsamba nome-de-login senha" >> /usr/bin/funcoeszz echo "# Ex.: zzsamba zago minhasenha" >> /usr/bin/funcoeszz echo "# ----------------------------------------------------------------------------" >> /usr/bin/funcoeszz echo "zzsamba(){ zzzz -z \$1 zzsamba && return" >> /usr/bin/funcoeszz echo "grep \"^\$1:\" /etc/passwd > /dev/null" >> /usr/bin/funcoeszz echo "id \$1" >> /usr/bin/funcoeszz echo "if [ \$? -eq 0 ]; then" >> /usr/bin/funcoeszz echo " echo "Usuario \$1 já existe, nada a ser feito, saindo da função"" >> /usr/bin/funcoeszz echo " sleep 5" >> /usr/bin/funcoeszz echo " # sleep 5 dá um tempo antes de sair, exit sai do terminal root" >> /usr/bin/funcoeszz echo " # qualquer dia arrumo, até lá fica como castigo por fazer coisa errada." >> /usr/bin/funcoeszz echo " exit" >> /usr/bin/funcoeszz echo "fi" >> /usr/bin/funcoeszz echo "if test \$UID = 0; then" >> /usr/bin/funcoeszz echo " adduser \$1" >> /usr/bin/funcoeszz echo " echo \$2 | passwd --stdin \$1" >> /usr/bin/funcoeszz echo " smbpasswd -a \$1 -s \$2" >> /usr/bin/funcoeszz echo " echo "Cadastro efetuado, usuário \$1 com a senha \$2"" >> /usr/bin/funcoeszz echo "else" >> /usr/bin/funcoeszz echo " echo Pra criar usuários requer poderes de root.." >> /usr/bin/funcoeszz echo " exit" >> /usr/bin/funcoeszz echo "fi" >> /usr/bin/funcoeszz echo "if [ -e /home/netlogon/modelo.bat ]; then" >> /usr/bin/funcoeszz echo "sed "s/usermodelo/\$1/g" /home/netlogon/modelo.bat > /home/netlogon/\$1.bat" >> /usr/bin/funcoeszz echo "else" >> /usr/bin/funcoeszz echo " echo Não criou login-script, falta login-script modelo.bat pra fazer a copia..." >> /usr/bin/funcoeszz echo "fi" >> /usr/bin/funcoeszz echo "}" >> /usr/bin/funcoeszz echo "" >> /usr/bin/funcoeszz bash #fim ******************************************************** [ Samba 3] As dicas e procedimentos são os mesmo usados no topico anterior, neste tópico somente copia do script anterior modificado pra adapatar à versão do samba 3 ou superior, as únicas alterações são nas linhas de criação e definição da senha do usuário samba: alterado: smbpasswd -a $1 -s $2 Para: ( echo $2 ; echo $2 ) | smbpasswd -s -a $1 #linha de comando pra importar este texto pro "vi" (veja cp.txt) # :r !lynx -dump http://www.zago.eti.br/modelos/zzsamba3 # ---------------------------------------------------------------------------- # Cria usuário pro Linux e Samba versão 3 ou superior # Obs.: no nome use somente letras e numeros, não utilize o ponto. # Uso: zzsamba nome-de-login senha # Ex.: zzsamba zago minhasenha # ---------------------------------------------------------------------------- zzsamba(){ zzzz -z $1 zzsamba && return # Modifique ou acrescente aqui as instruções pra validar login, senha # e outras consistencias de seu interesse. grep "^$1:" /etc/passwd > /dev/null id $1 if [ $? -eq 0 ]; then echo "Usuario $1 já existe, nada a ser feito, saindo da função" sleep 3 exit fi if test $UID = 0; then adduser $1 echo $2 | passwd --stdin $1 ( echo $2 ; echo $2 ) | smbpasswd -s -a $1 echo "Cadastro efetuado, usuário $1 com a senha $2" else echo Pra criar usuários requer poderes de root.. exit fi if [ -e /home/netlogon/modelo.bat ]; then sed "s/usermodelo/$1/g" /home/netlogon/modelo.bat > /home/netlogon/$1.bat else echo Não criou login-script, falta login-script modelo.bat pra fazer a copia... fi } Ou da maneira mais simples e rápida, em uma tacada só, com dois clique!, como voce já esta lendo este texto, faça a copia de todas as linhas abaixo (entre #inicio e #fim, abra um terminal, torne root e cole, pressione as teclas SHIFT+INSERT, ou botão auxiliar ou botão do meio do maouse, uma destas opções fará a inclusão no script de funções em /usr/bin/funcoeszz. Cuidado com a quebra de linha de onde fizer a copia, (navegador ou editor). #inicio echo "# ---------------------------------------------------------------------------- " >> /usr/bin/funcoeszz echo "# Cria usuário pro Linux e Samba versão 3 ou superior" >> /usr/bin/funcoeszz echo "# Obs.: no nome use somente letras e numeros, não utilize o ponto." >> /usr/bin/funcoeszz echo "# Uso: zzsamba nome-de-login senha" >> /usr/bin/funcoeszz echo "# Ex.: zzsamba zago minhasenha" >> /usr/bin/funcoeszz echo "# ----------------------------------------------------------------------------" >> /usr/bin/funcoeszz echo "zzsamba(){ zzzz -z \$1 zzsamba && return" >> /usr/bin/funcoeszz echo "grep \"^\$1:\" /etc/passwd > /dev/null" >> /usr/bin/funcoeszz echo "id \$1" >> /usr/bin/funcoeszz echo "if [ \$? -eq 0 ]; then" >> /usr/bin/funcoeszz echo " echo "Usuario \$1 já existe, nada a ser feito, saindo da função"" >> /usr/bin/funcoeszz echo " sleep 5" >> /usr/bin/funcoeszz echo " # sleep 5 dá um tempo antes de sair, exit sai do terminal root" >> /usr/bin/funcoeszz echo " # qualquer dia arrumo, até lá fica como castigo por fazer coisa errada." >> /usr/bin/funcoeszz echo " exit" >> /usr/bin/funcoeszz echo "fi" >> /usr/bin/funcoeszz echo "if test \$UID = 0; then" >> /usr/bin/funcoeszz echo " adduser \$1" >> /usr/bin/funcoeszz echo " echo \$2 | passwd --stdin \$1" >> /usr/bin/funcoeszz echo " ( echo \$2 ; echo \$2 ) | smbpasswd -s -a \$1" >> /usr/bin/funcoeszz echo " echo "Cadastro efetuado, usuário \$1 com a senha \$2"" >> /usr/bin/funcoeszz echo "else" >> /usr/bin/funcoeszz echo " echo Pra criar usuários requer poderes de root.." >> /usr/bin/funcoeszz echo " exit" >> /usr/bin/funcoeszz echo "fi" >> /usr/bin/funcoeszz echo "if [ -e /home/netlogon/modelo.bat ]; then" >> /usr/bin/funcoeszz echo "sed "s/usermodelo/\$1/g" /home/netlogon/modelo.bat > /home/netlogon/\$1.bat" >> /usr/bin/funcoeszz echo "else" >> /usr/bin/funcoeszz echo " echo Não criou login-script, falta login-script modelo.bat pra fazer a copia..." >> /usr/bin/funcoeszz echo "fi" >> /usr/bin/funcoeszz echo "}" >> /usr/bin/funcoeszz echo "" >> /usr/bin/funcoeszz bash #fim ******************************************************** Fazer backup da MBR da HD em /dev/hda #inicio echo "# ---------------------------------------------------------------------------- " >> /usr/bin/funcoeszz echo "# Fazer backup da MBR de /dev/hda" >> /usr/bin/funcoeszz echo "# Obs.: salva a MBR no diretório corrente com o nome hda.mbr" >> /usr/bin/funcoeszz echo "# Uso: zzmbrhda" >> /usr/bin/funcoeszz echo "# Ex.: zzmbrhda" >> /usr/bin/funcoeszz echo "# ----------------------------------------------------------------------------" >> /usr/bin/funcoeszz echo "zzmbrhda(){ zzzz -z zzmbrhda && return" >> /usr/bin/funcoeszz echo "dd if=/dev/hda of=hda.mbr bs=512 count=1" >> /usr/bin/funcoeszz echo "}" >> /usr/bin/funcoeszz echo "" >> /usr/bin/funcoeszz #fim ******************************************************** Função pra gravar CD com o conteúdo do diretório indicado. Exemplo pra gravar em CD o conteúdo de /home/zago/guiaz Função pra usar em instalação do CL10 instalado com perfil "Desktop corporativo) com gravador de CD funcionando na linha de comando, em outros perfis ou distros, verifique antes se tem os pacotes necessários instalados, altere a opção /dev/hdd pra usar o da tua instalação. (em elaboração quando pronto retiro este aviso) execute: zzgravacd /home/zago/guiaz #!/bin/bash mkdir /tmp/gravacd cd /tmp/gravacd # testar se existe o diretório if [ -d dir ] then mkisofs -r -o arqtemp.iso $1 echo "imagem ISO criada com sucesso!" else echo "$1 diretório inexistente, processo interrompido... exit fi !/bin/bash if [ -d /tmp/gravacd ] then rm -rf /tmp/gravacd/arqtemp.iso else mkdir /tmp/gravacd fi cd /tmp/gravacd # testar se existe o diretório if test -d `$1` then mkisofs -r -o arqtemp.iso `$1` echo "imagem ISO criada com sucesso!" else echo "$1 diretório inexistente, processo interrompido..." exit fi #verificar se ultrapassa capacidade do CD 650MB capacidadecd="650"; #salva o resultado de du em arqtam #tamanho=`du -m /tmp/arqtemp.iso > arqtam`; du -m /tmp/gravacd/arqtemp.iso > arqtam; #pega somente o tamanho do arquivo arqtamanho="`cut -c 1-3 arqtam`"; cat arqtam read echo $arqtam read echo $arqtamanho read #compara tamanho pra saber se cabe no CD if [ $capacidadecd -ge $arqtamanho ]; then #comandos pra gravar a ISO no CD echo "Gravamdo CD, aguarde...."; #cdrecord -v speed=8 dev=/dev/hdd -data arqtemp.iso # rm -f /tmp/gravacd/arqtemp.iso else echo "Dados maior que a capacidade do CD, processo interrompido..."; # rm -f /tmp/gravacd/arqtemp.iso fi echo " processo finalizado! OK!." cd /home/zago [root@faqcl10 root]# cat testecd #!/bin/bash if [ -d /tmp/gravacd ] then # rm -rf /tmp/gravacd/arqtemp.iso ls -la else mkdir /tmp/gravacd fi cd /tmp/gravacd # testar se existe o diretório if test -d `$1` then mkisofs -r -o arqtemp.iso `$1` echo "imagem ISO criada com sucesso!" else echo "$1 diretório inexistente, processo interrompido..." exit fi #verificar se ultrapassa capacidade do CD 650MB capacidadecd="650"; #salva o resultado de du em arqtam #tamanho=`du -m /tmp/arqtemp.iso > arqtam`; du -m /tmp/gravacd/arqtemp.iso > arqtam; #pega somente o tamanho do arquivo arqtamanho="`cut -c 1-3 arqtam`"; echo $capacidadecd read cat arqtam read echo $arqtam read cat arqtam echo $arqtamanho read #compara tamanho pra saber se cabe no CD if [ $capacidadecd -ge $arqtamanho ]; then #comandos pra gravar a ISO no CD echo "Gravamdo CD, aguarde...."; #cdrecord -v speed=8 dev=/dev/hdd -data arqtemp.iso # rm -f /tmp/gravacd/arqtemp.iso echo `date +%d%m%y` >> /home/zago/backup ls -la /tmp/gravacd/arqtemp.iso >> /home/zago/backup else echo "Dados maior que a capacidade do CD, processo interrompido..."; echo `date +%d%m%y` >> /home/zago/backup echo "backup não efetuado em CD, imagem muito grande" >> /home/zago/backup # rm -f /tmp/gravacd/arqtemp.iso fi echo " processo finalizado! OK!." cd /home/zago ******************************************************** A seguir contribuições que recebi diretamente do autor, mande também a sua função pra este FAQ, vale dica, passo a passo como solucionou um problema, tutorial, artigo e etc.. envie pra zagolinux@uol.com.br mencionando no e-mail "pro FAQ". ******************************************************** Estou esperando ... ******************************************************** ******************************************************** ********************************************************