Editando arquivos
No primeito exemplo, iremos analisar como editar o arquivo /etc/resolv.conf, modificando o parâmetro nameserver, primeiramente, vamos listar o arquivo em seu formato original:
host:~# cat /etc/resolv.conf domain minimedia.com.br search minimedia.com.br nameserver 192.168.0.1
Em seguida executaremos a seguinte linha de comandos:
host:~# sed 's/192.168.0.1/192.168.0.200/' /etc/resolv.conf domain minimedia.com.br search minimedia.com.br nameserver 192.168.0.1
host:~# sed 's/192.168.0.1/192.168.0.200/' /etc/resolv.conf >> /tmp/resolv.conf.tmp
Após a execução da linha de comandos acima, o próximo passo será copiar o arquivo temporário, para o arquivo original:
host:~# cp /tmp/resolv.conf/tmp /etc/resolv.conf
Com o comando acima, foi substituído o arquivo temporário pelo original, a seguir listamos o arquivo alterado:
host:~# cat /etc/resolv.conf
domain minimedia.com.br
search minimedia.com.br
nameserver 192.168.0.200
Como podemos ver, o arquivo /etc/resolv.conf foi alterado, nosso próximo passo, é desenvolver um script para tal função, para tanto vamos iniciar a criação do script:
host:~# touch alter-resolv.sh host:~# chmod +x alter-resolv.sh
Acima com o comando touch, foi criado o script alter-resolv.sh e em seguida adicionada permissão de execução ao mesmo, o conteúdo do arquivo deve ser o seguinte:
#!/bin/bash ATUAL=`grep nameserver /etc/resolv.conf |cut -d " " -f2` sed s/$ATUAL/\/ /etc/resolv.conf > /tmp/resolv.conf.tmp cp /tmp/resolv.conf.tmp /etc/resolv.conf rm -rf /tmp/resolv.conf.tmp
Após criado e com permissão de execução, o script deve ser executado da seguinte forma:
host:~# ./alter-resolv.sh
Exemplo:
host:~# ./alter-resolv.sh 192.168.0.200
O comando sed possui diversas utilidades, para aqueles que desejam se aprofundar mais em programação em shell script, é fortemente recomendada uma visita ao site do sed ( http://sed.sourceforge.net ), e também de sua página de manual.