Este artigo nos introduz ao mundo da programação shell script, nos apresentando de forma na prática todo o seu poder, com exemplos de integração de shell script, PHP e MySQL.
Shell script é uma linguagem de programação de scripts do Linux. É
bastante útil para nós que somos administradores de redes. O básico do
shell script começa com #!/bin/bash dentro de um arquivo que pode
ter a extensão que desejar, desde que no início do arquivo contenha o
caminho para o interpretador.
Os shells mais populares
SH (Bourne Shell) - shell original do Unix, porém com recursos
muito limitados.
CSH (C Shell) - shell desenvolvido para permitir um conjunto de
comandos e ambientes de script derivado da linguagem C.
KSH (korn Shell) - o primeiro shell a introduzir recursos
avançados, sendo considerado o mais popular em sistemas Unix.
BASH (Bourne Again Shell) - shell padrão em distribuições Linux,
uma implementação do SH, com recursos avançados, tais como:
edição de linha de comando, histórico de comandos e término de
nomes de arquivos e/ou diretórios.
Verificando o Shell atual
Digite:
# echo $SHELL
/bin/bash
No Meu caso uso Bash e mostrarei como usar com ele.
Editando o shell
$ mcedit shell.sh
ou $ mcedit shell
A extensão não importa desde que comece pela linha (#!/bin/bash)
#!/bin/bash
echo "Digite seu nome"
read nome
echo $nome
Salve o arquivo e temos que dar permissão para executar:
$ chmod +x shell.sh (ou shell, dependendo do nome que você deu ao arquivo)
depois:
# ./shell.sh
Digite seu nome
eduardo
eduardo
No caso digitei eduardo e ele me mostrou a saída: eduardo
Mais um exemplo:
#!/bin/bash
clear
echo "Bem vindo ao meu Script"
echo "Escolha uma das opções abaixo"
echo
echo "[1] Listar as portas do seu computador"
echo "[2] Listar os arquivos do diretório atual"
echo "[3] Sair"
echo -n "Digite a opção: "
read opcao
case $opcao in
1) nmap -sS localhost
sleep 3
;;
2) ls -l
sleep 3
;;
3) exit
clear
;;
Esse também já está interagindo com o usuário e dependendo do número
que ele digitar o script vai tomar uma decisão.
Acho que pra quem nunca mexeu com shell script já deu pra ter uma
noção, basta saber que o shell script roda os comandos do Linux.
Para saber mais procure comprar o Livro:
"Programação Shell Linux", de Julio Cezar Neves / Editora Brasport
Que poderá ajudar mais ainda ... pois eu tenho ele e me ensinou várias
coisas.
#1Comentário enviado por dinho_rock em 27/08/2003 - 03:05h
Muito legal seu artigo, mas vale lembrar que você pode fazer o script usando só o PHP, sem programar nada como shell script.
Um abraço
Thiago
#2Comentário enviado por tucs em 27/08/2003 - 12:23h
Claro que sim ... quis dizer como interagir com o Shell Script ...
Programo em PHP e em Shell Scripts ...
Quando tenho que fazer algo no Servidor Linux e naum da para fazer em PHP passando parametros para o Linux uso Shell Script e tenho certeza que quem usa Shell Script nunca vai usar PHP...
Pois eh o meu caso
Esse artigo fiz no intuito de aprendizagem para alguem ...
e espero que ajude ...
#3Comentário enviado por dinho_rock em 29/08/2003 - 15:36h
Só para constar, para passar paramentros pelo php via shell, basta usar a variavel $argv;
Por exemplo, php -q arquivo.php variavel1 variavel2 variavel3
#4Comentário enviado por gustavo_marcon em 05/09/2003 - 16:30h
muito bom este artigo....
estava c/ problemas no desenvolvimento de um projeto em php pelo user do apache não ter permissão de criar users.
agora posso mesclar os dois e ver no que vai dar....
#5Comentário enviado por tucs em 05/09/2003 - 17:38h
gustavo_marcon
Eu tenho uma solucao para issu ...
Tinha mandado para o Fabio publicar ... mas naum sei o que aconteceu que ele ainda naum publico ... mas era assim ...
site em PHP que cadastrava usuarios na Banco de Dados e depois no Linux e Samba ... fiz para uma escola de Informatica e esta rodando muito bem ...
#6Comentário enviado por tucs em 05/09/2003 - 17:43h
gustavo_marcon
Eu tenho uma solucao para issu ...
Tinha mandado para o Fabio publicar ... mas naum sei o que aconteceu que ele ainda naum publico ... mas era assim ...
site em PHP que cadastrava usuarios na Banco de Dados e depois no Linux e Samba ... fiz para uma escola de Informatica e esta rodando muito bem ...
#7Comentário enviado por tucs em 05/09/2003 - 17:43h
gustavo_marcon
Eu tenho uma solucao para issu ...
Tinha mandado para o Fabio publicar ... mas naum sei o que aconteceu que ele ainda naum publico ... mas era assim ...
site em PHP que cadastrava usuarios na Banco de Dados e depois no Linux e Samba ... fiz para uma escola de Informatica e esta rodando muito bem ...
#8Comentário enviado por gustavo_marcon em 08/09/2003 - 14:41h
Eu consegui passar as variáveis do shell pro php colocando \ na frente da variavel, mas ñ sei como fazer p/ fassar variáveis do php pro shell, pois tentei com e sem a \ e não seu certo
#9Comentário enviado por gustavo_marcon em 08/09/2003 - 18:52h
ñ dá certo passar as variáveis do php pro shell pelo seguinte:
quando terminamos de usar o compilador php usamos o comando PHP p/ mostrar que deve ser encerrado o compilador shell.
Dai as variáveis são perdidas..
Preciso muito fazer funcionar, alguém sabe como faço???
#10Comentário enviado por gustavo_marcon em 13/09/2003 - 10:45h
olá tucs, notei que o fábio ainda ñ publicou aquele seu artigo sobre o sudo, eu estou precisando disto, será que vc poderia me enviar por email??
#11Comentário enviado por cesarfontenele em 25/11/2003 - 08:57h
Tucs muito bom seu artigo... Gostaria de receber o outro artigo q vc interage com um site cadastrando seus usuarios no linux e samba. Vc pode me mandar por email??
Falow
#12Comentário enviado por cesarfontenele em 25/11/2003 - 08:58h
Tucs muito bom seu artigo... Gostaria de receber o outro artigo q vc interage com um site cadastrando seus usuarios no linux e samba. Vc pode me mandar por email??
Falow
#13Comentário enviado por leogenilhu em 16/12/2003 - 23:00h
muito bom seu artigo so tenho uma duvida
para usar esta interacao shell/php
meu php pode estar compilado com modulo do apache ?
#14Comentário enviado por gustavo_marcon em 12/02/2004 - 18:16h
Olá tucs tudo bem? Lembro q uma vez vc me mandou um script seu q criava usuários no linux usando o sudo. Foi bastante útil p/ mim, mas eu perdi ele e estou precisando do esquema novamente pois tenho q desenvolver um sistema c/ permissão de desligar o servidor atrávez de uma página web hospedada no apache do mesmo servidor. Será q vc poderia fazer o favor de me enviar esse script novamente p/ mim tirar as idéias principais? É muito importante.
Obrigado!
#15Comentário enviado por gustavo_marcon em 12/02/2004 - 18:17h
Olá tucs tudo bem? Lembro q uma vez vc me mandou um script seu q criava usuários no linux usando o sudo. Foi bastante útil p/ mim, mas eu perdi ele e estou precisando do esquema novamente pois tenho q desenvolver um sistema c/ permissão de desligar o servidor atrávez de uma página web hospedada no apache do mesmo servidor. Será q vc poderia fazer o favor de me enviar esse script novamente p/ mim tirar as idéias principais? É muito importante.
Obrigado!
#16Comentário enviado por claudiano em 24/07/2004 - 11:07h
gostaria tambem desse script (sudo) meu email: claudianolopes@hotmail.com, caso vcs tenham um script para mostrar o ip da maquina (não da conexao - pq utiliza um servidor nat) eu agradeceria.
claudiano lopes
#17Comentário enviado por lordpeark em 14/06/2005 - 17:28h
Fino o script, mas faltou um esac no final para finalizar o case..mas valeu..gostei do script..
#18Comentário enviado por raphael.sx em 02/08/2006 - 09:22h
Esse artigo, pra quem gosta de programar em PHP, é muito interessante. E mostra também como o shell script e é claro o Linux são poderosos. Valeu!
#19Comentário enviado por yetlinux em 09/10/2006 - 06:02h
Graças à esse recurso chamado de she-bang podemos fazer coisas loucas nos unices da vida.
Experimentem digitar um texto qualquer como:
--BEGIN--
Falta alguma coisa no Brasil
depois da noite de sexta-feira.
Falta aquele homem no escritório
a tirar da máquina elétrica
o destino dos seres,
a explicação antiga da terra.
Falta uma tristeza de menino bom
caminhando entre adultos
na esperança da justiça
que tarda - como tarda!
a clarear o mundo.
Falta um boné, aquele jeito manso,
aquela ternura contida, óleo
a derramar-se lentamente.
Falta o casal passeando no trigal.
Falta um solo de clarineta.
--END--
Vamos chamar de poema.
coloquem na primeira linha exatamente como está abaixo:
#!/usr/bin/cat
mudem a permissão de escrita
$ chmod +x poema
e a seguir executem o arquivo.
#20Comentário enviado por coffani em 09/06/2008 - 23:29h
Ja esta no meu favoritos.........
#21Comentário enviado por gestordesistemas em 18/05/2010 - 09:29h
Para funcionar este PHP como shell tive que instalar o php-cli
apt-get install php-cli
#22Comentário enviado por leandrosoaresluz em 22/03/2011 - 21:03h
brother, da um força? tenho o seguinte script em shell
#!/bin/bash
echo ""
echo -n "informe o nome do usuario:"
read nome
echo
echo "novo usuario $nome criado com sucesso"
echo
pronto!
esse cara cria o usuario no meu arquivo de usuarios do squid...funciona que eh uma beleza via linha
de comando, meu problema é: uso o squidadmin para gerenciamento do squid e preciso chamar esse .sh dentro da minha pagina php...eis ai o problema, ja tentei de varias formas e nao consegui fazer funcionar...tem ideia de como seria? abraços
#23Comentário enviado por aldisseia em 27/02/2015 - 12:39h
Ta dando esse erro
Exception: Zend Extension ./quem.php does not exist
Dentro do arquivo tá assim
#!/usr/bin/php -q
<?php
echo "Ok";
?>
Preferências de cookies
Usamos cookies essenciais para manter o site funcionando. Cookies de estatísticas e anúncios só serão carregados se você permitir.
Um abraço
Thiago