Vous êtes sur la page 1sur 18

Ativando a conta root no Ubuntu

1a. forma Para habilitar d o comando abaixo um terminal: $ sudo passwd root Digite e confirme a senha. Pronto, agora para utilizar o usurio root basta se logar em um terminal e: $ su root e digitar a senha escolhida. Para desabilitar a conta do root basta: $ sudo passwd -l root A a conta ser desabilitada. 2a. forma Outra forma de habilitar a conta : $ sudo su $ passwd Digite e confirme a senha.

Steps
1. 1

Terminal Launch the Terminal by clicking on Applications --> Accessories --> Terminal 2. 2 Next in the Terminal launch the vi/vim editor. My fav is vim. 3. 3 In the terminal window, type vim ListDir.sh and hit enter. Once inside the Editor, type "I" or "i". This will allow you to insert / start typing your shell script. 4. 4 At the top type the following code #!/bin/bash. This is known as a Shebang line 5. 5

master script 1

Now type the code as shown in the figure 6. 6 Now to come out of the vim editor, type the following key combinations, Esc, : , wq! This will write the changes to the file and bring you back to the terminal. 7. 7

executable Now we need to make this Shell Script, executable. To do this, enter the following command 8. 8 chmod +x ListDir.sh and hit enter. You can see the results below 9. 9

script output To run this Shell Script, simply type ./ListDir.sh . You should get the list of directories and the message as shown below 10.10 Congratulations on writing your 1st Shell Script using Bash in Ubuntu Linux!

Ads by Google

Download SolarWinds Orion


Free Trial/Vendas do Orion NCM No Brasil - Ligue (11) 3522 3234 www.figotechnologies.com

#1 China Wholesale Store


Wholesale 1000's of Items from 120,000 Verified Sellers.2004-2012 DHgate.com

DX Online Shop
Over 80,000 Gadgets Available. Low Price. Free Shipping. Buy Now! DX.com/Latest-Gadgets

Edit Tips

By default, vim is not installed. To install vim in your Ubuntu System, just issue the command --> sudo apt-get install vim enter your password and let Ubuntu do the magic Next after the install is completed, issue the command vim <yourfile.sh> to edit your shell scripts.

Programando em shellscript

Programando em shellscript

Table of Contents
Programando em shellscript............................................................................................................................1 1. Primeira parte, uma introduo............................................................................................................1 2. Segunda parte, se aprofundando mais!................................................................................................5

Programando em shellscript
1. Primeira parte, uma introduo
Quem usa Linux conhece bem o prompt de comando sh, ou variaes como o bash. O ue muita gente no sabe que o sh ou o bash tm uma "poderosa" linguagem de script embutido nelas mesmas. Diversas pessoas utilizamse desta linguagem para facilitar a realizao de inmeras tarefas administrativas no Linux, ou at mesmo criar seus prprios programinhas. Patrick Volkerding, criador da distribuio Slackware, utiliza esta linguagem para toda a instalao e configurao de sua distribuio. Voc poder criar scripts para automar as tarefas dirias de um servidor, para efetuar backup automtico regularmente, procurar textos, criar formataes, e muito mais. Para voc ver como esta linguagem pode ser til, vamos ver alguns passos introdutrios sobre ela. Interpretadores de comandos so programas feitos para intermediar o usurio e seu sistema. Atravs destes interpretadores, o usurio manda um comando, e o interpretador o executa no sistema. Eles so a "Shell" do sistema Linux. Usaremos o interpretador de comandos bash, por ser mais "extenso" que o sh, e para que haja uma melhor compreenso das informaes obtidas aqui, bom ter uma base sobre o conceito de lgica de programao. Uma das vantagens destes shell scripts que eles no precisam ser compilados, ou seja, basta apenas criar um arquivo texto qualquer, e inserir comandos ele. Para dar este arquivo a definio de "shell script", teremos que incluir uma linha no comeo do arquivo (#!/bin/bash) e tornlo "executvel", utilizando o comando chmod. Vamos seguir com um pequeno exemplo de um shell script que mostre na tela: "Nossa! Estou vivo!":
#!/bin/bash echo 'Nossa! Estou vivo!'

Programando em shellscript

Programando em shellscript Fcil, hein? A primeira linha indica que todas as outras linhas abaixo devero ser executadas pelo bash (que se localiza em /bin/bash), e a segunda linha imprimir na tela a frase "Nossa! Estou vivo!", utilizando o comando echo, que serve justamente para isto. Como voc pde ver, todos os comandos que voc digita diretamente na linha de comando, voc poder incluir no seu shell script, criando uma srie de comandos, e essa combinao de comandos que forma o chamado shell script. Tente tambm dar o comando 'file arquivo' e veja que a definio dele de BourneAgain Shell Script (Bash Script). Contudo, para o arquivo poder se executvel, voc tem de atribuir o comando de executvel para ele. E como citamos anteriormente, o comando chmod se encarrega disto:
$ chmod +x arquivo

Pronto, o arquivo poder ser executado com um simples "./arquivo". Conceito de Variveis em shell script Variveis so caracteres que armazenam dados, uma espcie de atalho. O bash reconhece uma varivel quando ela comea com $, ou seja, a diferena entre 'palavra' e '$palavra' que a primeira uma palavra qualquer, e a outra uma varivel. Para definir uma varivel, utilizamos a seguinte sintaxe:
variavel="valor"

O 'valor' ser atribudo a 'varivel '. Valor pode ser uma frase, nmeros, e at outras variveis e comandos. O valor pode ser expressado entre as aspas (""), apstrofos ('') ou crases (``). As aspas vo interpretar as variveis que estiverem dentro do valor, os apstrofos lero o valor literalmente, sem interpretar nada, e as crases vo interpretar um comando e retornar a sua sada para a varivel. Vejamos exemplos:
$ variavel="Eu estou logado como usurio $user" $ echo $variavel Eu estou logado como usurio cla

Programando em shellscript

Programando em shellscript
$ variavel='Eu estou logado como usurio $user' $ echo $variavel Eu estou logado como usurio $user $ variavel="Meu diretrio atual o `pwd`" $ echo $variavel Meu diretrio atual o /home/cla

Se voc quiser criar um script em que o usurio deve interagir com ele, possvel que voc queira que o prprio usurio defina uma varivel, e para isso usamos o comando read, que dar uma pausa no script e ficarar esperando o usurio digitar algum valor e teclar enter. Exemplo:
echo "Entre com o valor para a varivel: " ; read variavel (O usurio digita e tecla enter, vamos supor que ele digitou 'eu sou um frutinha') echo $variavel eu sou um frutinha

Controle de fluxo com o if Controle de fluxo so comandos que vo testando algumas alternativas, e de acordo com essas alternativas, vo executando comandos. Um dos comandos de controle de fluxo mais usados certamente o if, que baseado na lgica "se acontecer isso, irei fazer isso, se no, irei fazer aquilo". Vamos dar um exemplo:
if [ e $linux ] then echo 'A varivel $linux existe.' else echo 'A varivel $linux no existe.' fi

O que este pedao de cdigo faz? O if testa a seguinte expresso: Se a varivel $linux existir, ento (then) ele diz que que existe com o echo, se no (else), ele diz que no existe. O operador e que usei prdefinido, e voc pode encontrar a listagem dos operadores na tabela:

Programando em shellscript

Programando em shellscript eq != gt lt o d e z f o r w x Igual Diferente Maior Menor Ou Se for um diretrio Se existir Se estiver vazio Se contiver texto Se o usurio for o dono Se o arquivo pode ser lido Se o arquivo pode ser alterado Se o arquivo pode ser executado

Outras alternativas Existem inmeros comandos no Linux, e para explicar todos, teramos de publicar um verdadeiro livro. Mas existem outras possibilidades de aprendizado desta lngua, que tambm usado em todas as programaes. Primeiro de tudo voc pode dar uma olhada na manpage do bash (comando man bash), que disponibilizar os comandos embutidos no interpretador de comandos. Uma das coisas essencias para o aprendizado sair coletando exemplos de outros scripts e ir estudandoos minuciosamente. Procure sempre comandos e expresses novas em outros scripts e em manpages dos comandos. E por ltimo, mas no o menos importante, praticar bastante! Na tabela a seguir, voc pode encontrar uma listagem de comandos para usar em sua shell script: echo Imprime texto na tela

Programando em shellscript

Programando em shellscript read exit sleep clear stty tput if case for while Captura dados do usurio e coloca numa varivel Finaliza o script D uma pause de segundos no script Limpa a tela Configura o terminal temporariamente Altera o modo de exibio Controle de fluxo que testa uma ou mais expresses Controle de fluxo que testa vrias expresses ao mesmo tempo Controle de fluxo que testa uma ou mais expresses Controle de fluxo que testa uma ou mais expresses

E assim seja, crie seus prprios scripts e facilite de uma vez s parte de sua vida no Linux!

2. Segunda parte, se aprofundando mais!


Falamos sobre o conceito da programao em Shell Script, e demos o primeiro passo para construir nossos prprios scripts. Agora vamos nos aprofundar nos comandos mais complicados, aprendendo a fazer programas ainda mais teis. Nestes comandos esto inclusos o case e os laos for, while e until. Alm disso, vamos falar de funes e, por ltimo, teremos um programa em shell script. Case O case para controle de fluxo, tal como o if. Mas enquanto o if testa expresses no exatas, o case vai agir de acordo com os resultados exatos. Vejamos um exemplo:
case $1 in parametro1) comando1 ; comando2 ;; parametro2) comando3 ; comando4 ;;

Programando em shellscript

*) echo "Voc tem de entrar com um parmetro vlido" ;; esac

Aqui aconteceu o seguinte: o case leu a varivel $1 (que o primeiro parmetro passado para o programa), e comparou com valores exatos. Se a varivel $1 for igual "parametro1", ento o programa executar o comando1 e o comando2; se for igual "parametro2", executar o comando3 e o comando4, e assim em diante. A ltima opo (*), uma opo padro do case, ou seja, se o parmetro passado no for igual a nenhuma das outras opes anteriores, esse comando ser executado automaticamente. Voc pode ver que, com o case fica muito mais fcil criar uma espcie de "menu" para o shell script do que com o if. Vamos demonstrar a mesma funo anterior, mas agora usando o if:
if [ z $1 ]; then echo "Voc tem de entrar exit elif [ $1 = "parametro1" ]; comando1 comando2 elif [ $1 = "parametro2" ]; comando3 comando4 else echo "Voc tem de entrar fi com um parmetro vlido" then

then

com um parmetro vlido"

Veja a diferena. muito mais prtico usar o case! A vantagem do if que ele pode testar vrias expresses que o case no pode. O case mais prtico, mas o if pode substitulo e ainda abrange mais funes. Note que, no exemplo com o if, citamos um "comando" no visto antes: o elif que uma combinao de else e if. Ao invs de fechar o if para criar outro, usamos o elif para testar uma expresso no mesmo comando if. For

Programando em shellscript

O lao for vai substituindo uma varivel por um valor, e vai executando os comandos pedidos. Veja o exemplo:
for i in * do cp $i $i.backup mv $i.backup /usr/backup done

Primeiramente o lao for atribuiu o valor de retorno do comando "*" (que equivalente a um ls sem nenhum parmetro) para a varivel $i, depois executou o bloco de comandos. Em seguida ele atribui outro valor do comando "*" para a varivel $1 e reexecutou os comandos. Isso se repete at que no sobrem valores de retorno do comando "*". Outro exemplo:
for original in *; do resultado=`echo $original | tr '[:upper:]' '[:lower:]'` if [ ! e $resultado ]; then mv $original $resultado fi done

Aqui, o que ocorre a transformao de letras maisculas para minsculas. Para cada arquivo que o lao l, uma varivel chamada $resultado ir conter o arquivo em letras minsculas. Para transformar em letras minsculas, usei o comando tr. Caso no exista um arquivo igual e com letras minsculas, o arquivo renomeado para o valor da varivel $resultado, de mesmo nome, mas com letras minsculas. Como os exemplos ilustram, o lao for pode ser bem til no tratamento de mltiplos arquivos. Voc pode deixlos todos com letras minsculas ou maisculas sem precisar renomear cada um manualmente, pode organizar dados, fazer backup, entre outras coisas. While

Programando em shellscript

O while testa continuamente uma expresso, at que ela se torne falsa. Exemplo:
variavel="valor" while [ $variavel = "valor" ]; do comando1 comando2 done

O que acontece aqui o seguinte: enquanto a "$variavel" for igual a "valor", o while ficar executando os comandos 1 e 2, at que a "$variavel" no seja mais igual a "valor". Se no bloco dos comandos a "$variavel" mudasse, o while iria parar de executar os comandos quando chegasse em done, pois agora a expresso $variavel = "valor" no seria mais verdadeira. Until Tem as mesmas caractersticas do while, a nica diferena que ele faz o contrrio. Veja o exemplo abaixo:
variavel="naovalor" until [ $variavel = "valor" ]; do comando1 comando2 done

Ao invs de executar o bloco de comandos (comando1 e comando2) at que a expresso se torne falsa, o until testa a expresso e executa o bloco de comandos at que a expresso se torne verdadeira. No exemplo, o bloco de comandos ser executado desde que a expresso $variavel = "valor" no seja verdadeira. Se no bloco de comandos a varivel for definida como "valor", o until pra de executar os comandos quando chega ao done. Vejamos um exemplo para o until que, sintaticamente invertido, serve para o while tambm:
var=1 count=0

Programando em shellscript

until [ $var = "0" ]; do comando1 comando2 if [ $count = 9 ]; then var=0 fi count=`expr $count + 1` done

Primeiro, atribumos varivel "$var" o valor "1". A varivel "$count" ser uma contagem para quantas vezes quisermos executar o bloco de comandos. O until executa os comandos 1 e 2, enquanto a varivel "$var" for igual a "0". Ento usamos um if para atribuir o valor 0 para a varivel "$var", se a varivel "$count" for igual a 9. Se a varivel "$count" no for igual a 0, somase 1 a ela. Isso cria um lao que executa o comando 10 vezes, porque cada vez que o comando do bloco de comandos executado, somase 1 varivel "$count", e quando chega em 9, a varivel "$var" igualada a zero, quebrando assim o lao until. Usando vrios scripts em um s Podese precisar criar vrios scripts shell que fazem funes diferentes, mas, e se voc precisar executar em um script shell um outro script externo para que este faa alguma funo e no precisar reescrever todo o cdigo? simples, voc s precisa incluir o seguinte comando no seu script shell:
. bashscript2

Isso executar o script shell "bashscript2" durante a execuo do seu script shell. Neste caso ele ser executado na mesma script shell em que est sendo usado o comando. Para utilizar outra shell, voc simplesmente substitui o "." pelo executvel da shell, assim:
sh script2 tcsh script3

Nessas linhas o script2 ser executado com a shell sh, e o script3 com a shell tcsh.

Programando em shellscript

Variveis especiais $0 $1$9 $# $? $$ Nome do script que est sendo executado Parmetros passados linha de comando Nmero de parmetros passados Valor de retorno do ltimo comando ou de todo o shell script. (o comando "exit 1" retorna o valor 1) Nmero do PID (Process ID)

Voc tambm encontra muitas variveis, j predefinidas, na pgina de manual do bash (comando "man bash", seo Shell Variables). Funes Funes so blocos de comandos que podem ser definidos para uso posterior em qualquer parte do cdigo. Praticamente todas as linguagens usam funes que ajudam a organizar o cdigo. Vejamos a sintaxe de uma funo:
funcao() { comand o1 comando2 ... }

Fcil de entender, no? A funo funcionar como um simples comando prprio. Voc executa a funo em qualquer lugar do script shell, e os comandos 1, 2 e outros sero executados. A flexibilidade das funes permite facilitar a vida do programador, como no exemplo final. Exemplo Final Agora vamos dar um exemplo de um programa que utilize o que aprendemos com os artigos.

10

Programando em shellscript

#!/bin/bash # Exemplo Final de Script Shell Principal() { echo "Exemplo Final sobre o uso de scripts shell" echo "" echo "Opes:" echo echo "1. Trasformar nomes de arquivos" echo "2. Adicionar um usurio no sistema" echo "3. Deletar um usurio no sistema" echo "4. Fazer backup dos arquivos do /etc" echo "5. Sair do exemplo" echo echo n "Qual a opo desejada? " read opcao case $opcao in 1) Transformar ;; 2) Adicionar ;; 3) Deletar ;; 4) Backup ;; 5) exit ;; *) "Opo desconhecida." ; echo ; Principal ;; esac } Transformar() { echo n "Para Maisculo ou minsculo? [M/m] " read var if [ $var = "M" ]; then echo n "Que diretrio? " read dir for x in `/bin/ls` $dir; do y=`echo $x | tr '[:lower:]' '[:upper:]'` if [ ! e $y ]; then mv $x $y fi done elif [ $var = "m" ]; then

11

Programando em shellscript

echo n "Que diretrio? " read dir for x in `/bin/ls` $dir; do y=`echo $x | tr '[:upper:]' '[:lower:]'` if [ ! e $y ]; then mv $x $y fi done fi } Adicionar() { clear echo n "Qual o nome do usurio a se adicionar? " read nome adduser nome Principal } Deletar() { clear echo n "Qual o nome do usurio a deletar? " read nome userdel nome Principal } Backup() { for x in `/bin/ls` /etc; do cp R /etc/$x /etc/$x.bck mv /etc/$x.bck /usr/backup done } Principal

Hugo Cisneiros, hugo_arroba_devin_ponto_com_ponto_br

12

Vous aimerez peut-être aussi