1 - Quando o usuário root logar, deverá aparecer uma vaquinha
(programa cowsay) dando as boas vindas junto com a hora e data.
Resposta:
Primeiro vamos instalar a simpatica vaquinha
# apt-get instsall cowsay
ou
# yum install cowsay
Faça um teste:
# cowsay "Eu sei falar!"
Caso não funcione, tente assim:
# /usg/games/cowsay "Eu sei
falar!"
Para o root receber as boas vidas toda vez que logar, coloque a
mensagem no /root.bashrc
# vi /root/.bashrc
Ao final do arquivo, insira:
# A variável HORAS irá armazenar a hora a Variável Minuto o minuto
atual
HORAS=`date +%H`
MINUTOS=`date +%M`
DIA=`date +%d`
MES=`date +%B`
ANO=`date +%Y`
/usr/games/cowsay "Olá $LOGNAME. $DIA,
de $MES de $ANO. São $HORAS horas e $MINUTOS Minutos"
Salve o arquivo e teste com o comando:
# source /root/.bashrc
2 - Para fazer o registro do logon
# vi /root/.bashrc
echo "O Usuário $LOGNAME fez logon: `date`" >>
/etc/cartaodeponto.log
Salve o arquivo e teste com o comando:
# source /root/.bashrc
Depois confira com cat /etc/cartaodeponto.log se a data e hora foi
gerado.
Para fazer o registro do logout
# vi /root/bash_logout
Salve o arquivo e teste com o comando:
# source /root/.bashrc
echo "O Usuário $LOGNAME fez logoff:
`date`" >> /etc/cartaodeponto.log
Salve o arquivo e teste com o comando:
# source /root/.bashrc
Depois confira com cat /etc/cartaodeponto.log se a data e hora foi
gerado.
3 - Para fazer o registro de que o servidor foi ligado, vamos
editar o arquivo /etc/rc.local ou /etc/bash.bashrc (No Debian) ou ainda
/etc/bashrc (No Redhat, Fedora)
# vi /etc/bash.bashrc
Insira esta linha:
echo "O Servidor foi ligado as `date
+%T` hs do dia `date +%D`" >> /etc/servidor.log
Salve o arquivo e teste com o comando:
# source /etc/bash.bashrc
Depois confira com cat /etc/servidor.log se a data e hora foi
gerado.
Ao final de tudo, reinicie a máquina e faça todos os testes sempre
checando com os comandos
Dica para este exercício:
Exemplos de Personalização:
echo "São `date +%H` horas e `date +%M` minutos"
echo "Recife, `date +%d`, de `date +%B` de `date +%Y`"
1 - Quando o usuário root logar, deverá aparecer uma vaquinha (programa cowsay) dando as boas vindas junto com a hora e data.
2 - Crie um log de registros de entradas e saídas do usuário root da seguinte forma:
O usuário root fez logon às 10:00hs do dia 22/03/2012
O usuário root fez logoff às 10:00hs do dia 22/03/2012
Este log deve ser gravado no arquivo /etc/cartaodeponto.log
3 - Faça um log no arquivo /etc/servidor.log registrando todas as vezes que o servidor é ligado, usando o seguinte modelo:
O Servidor foi ligado as 10:00hs do dia 22/03/2012
Obs: Testar tudo sem ter que reiniciar a máquina e nem logar
Segue o resumo de comandos e conceitos vistos em Sala de Aula. Este é um material de apoio aos meus alunos que tem todo embasamento durante as aulas presenciais.
Existem diversos arquivos no Linux que fazem o controle de algumas
funções pertinentes ao Shell e a interatividade com o usuário.
Citaremos alguns
deles, a função e a localização deles.
Para visualizar
estes arquivos, use editores como o vi, mcedit ou nano.
1 - Arquivos de
Mensagens:
Mensagem da tela
de login
/etc/issue
Mensagem quando o
usuário loga pela rede como por exemplo via SSH
/etc/issue.net
Exibe uma mensagem
quando o usuário loga:
/etc/motd
Obs: motd quer
dizer - Message of Today (Mensagem do dia)
2 - Arquivos do
Diretório do Usuário
Quando o usuário
faz logon, os seguintes arquivos são executados:
.profile ou
.bash_profile -->
Perfil do usuário (variáveis...)
.bashrc -->
bash RC - run commands
Quando o usuário
faz logout o seguinte arquivo é executado:
.bash_logout
Guarda o histórico
de comandos executados pelo usuário
.bash_history
3 - Na
inicialização da Máquina.
Quando a máquina é
ligada, os seguintes arquivos são executados:
/etc/profile -> Usado para carregar perfil, Path
entre outros
/etc/bash.bashrc -> Usado para executar comandos,
preparar alias, autocompletar
/etc/rc.local -> Usado para iniciar comandos.
/etc/environment --> Usado para carregar o PATH e
também o idioma do shell
Ex:
LANG=pt_BR
LC_ALL=pt_BR
LC_MESSAGES=pt_BR
4º Outros Arquivos
/etc/bash_completion - Ativar o autocompletar comandos.
/etc/nologin --> Se criado, impede que qualquer
usuário logue no sistema.
NO Debian:
/etc/init.d/bootmisc.sh --> Script de inicialização. Neste
arquivo você pode colocar serviços para ser iniciados.
Resumindo...
~/.bashrc - Executa comandos, alias, autocompletar
... Mas só é executado quando o usuário loga. A Vantagem de usar o .bashrc ao
invés do .bash_bashrc é porque o .bashrc é executado mesmo na interface gráfica
ao abrir um terminal.
~/.profile - Carrega ítens relativo ao perfil. Mas
só é executado quando o usuário loga.
/etc/profile -
Carrega ítens relativo ao perfil. É executado quando a máquina é ligada.
/etc/bash.bashrc - Executa comandos, alias, autocompletar
... É executado quando a máquina é ligada.
/etc/rc.local -. Executa comandos. É executado quando a
máquina é ligada.
Obs: Os caracteres ~/. indicam que é o arquivo no diretório do usuário.
Vejam nas duas
principais distribuições do mercado, como os arquivos são executados:
No Debian e
Derivados:
1º
/etc/init.d/bootmisc.sh
2º /etc/rc.local
3º
/etc/bash.bashrc
4º /etc/profile
5º ~/.bashrc
6º ~/.profile
No Redhat e
derivados:
1º /etc/rc.local
2º /etc/profile
3º
~/.bash_profile
4º ~/.bashrc
5º /etc/bashrc
Note as difereça
dos nomes dos arquivos entre as duas distribuições:
Debian
Redhat
/etc/profile
/etc/profile
/etc/bash.bashrc
/etc/bashrc
/etc/rc.local
/etc/rc.local
~/.bashrc
~/.bashrc
/ .profile
~/.bash_profile
Os arquivos
.bash_profile pode ter o seu conteúdo modificado conforme as necessidades
(preferências) de cada usuário. As alterações não ocorrem até que o arquivo
seja lido novamente pelo shell. Para isto, devemos deslogar e logar novamente
ou executar o seguinte comando:
Quer saber como fazer uma distribuição linux do Zero?? Quer aprender de fato com grandes distribuições como Redhat, Ubuntu e Debian fazem seus Linux?
O projeto Linux From Scratch (LFS) publicou a versão 7.1 de seu manual para construção de uma instalação Linux personalizada. O novo guia tem 345 páginas e usa mais componentes atualizados do que versões anteriores, por exemplo, o Linux kernel 3.2.6 e GNU Compiler Collection 4.6.2 (GCC).
Fazer o Internet Banking do BB funcionar agora é simples, basta instalar o browser plugin do icedtea. Numa instalação padrão do ubuntu, executar:
# sudo apt-get install icedtea6-plugin
e correr pro abraço.
Icedtead é uma implementação da VM Java 100% Open Source. Como o OpenJDK virou a implementação de referência do Java, faz sentido tudo começar a funcionar perfeitamente no icedtea, que é baseado no OpenJDK.
Use da seguinte forma: more nome_do_arquivo (com pausa)
ou
Use da seguinte forma: less nome_do_arquivo (com pausa) - Para sair = q
Exemplo:
# cat /etc/services
ou
# more /etc/services
ou
# less /etc/services
Para Filtrar Comandos - Use o caracter pipe |
Use da seguinte forma: Comando1 | Comando2 | Comando3 | Comando_n
# cat nome_do_arquivo | more
# cat nome_do_arquivo | less
Exemplo:
# cat /etc/services | more (para sair: q)
# cat /etc/services | less (para sair: q)
Para exibir as estatísticas de um arquivo como:
Quantidade de Letras, linhas e palavras de um arquivo.
Use da seguinte forma:
wc nome_do_arquivo (exibe quantidade de letras, palavras e linhas)
wc -c nome_do_arquivo (letras)
wc -l nome_do_arquivos (linhas)
wc -w nome_do_arquivo (palavras)
Exemplo:
# wc nome_do_arquivo
# wc -c /etc/services (exibe a quantidade de letras)
# wc -l /etc/services (exibe a quantidade de linhas)
# wc -w /etc/services (exibe a quantidade de palavras)
Para Ordenar um Arquivo na tela
Use da seguinte forma: sort nome_do_arquivo
Exemplo:
# sort /etc/services
# sort -r services (ao contrario)
Para Exibir o inicio de um arquivo (10 primeiras linhas)
Use da seguinte forma: head nome_do_arquivo
Exemplo:
# head /etc/services
Para exibir o fim de um arquivo (10 ultimas linhas)
Use da seguinte forma: tail nome_do_arquivo
tail -f nome_do_arquivo (lê o fim do arquivo em tempo real - Ideal para ler Logs em tempo real)
Exemplo:
# tail /etc/services
Para ler um log em tempo real
# tail -f /var/log/messages (Em distribuições baseadas em Redhat)
ou
# tail -f /var/log/syslog (Em distribuições baseadas em Debian)
Para Filtrar/Pesquisar expressões em arquivo
Use da seguinte forma: grep "expressão" nome_do_arquivo
Exemplo:
# grep "FTP" /etc/services
# grep -v "FTP" /etc/services (inverso)
# grep -n "FTP" /etc/services (numero da linha)
# grep -i "FTP" /etc/services (maiúscula ou minúscula)
Para Filtrar saida de comando
Use da seguinte forma: cut opções nome_do_aquivo
Principais Opções:
-c = qtd de caracter
-f = campo
-d = delimitador
Exemplo:
# cut -c1 /etc/passwd
# cut -f1 -d: /etc/passwd (Exibir apenas o nome dos usuários do sistema)
Para exibir Mensagens na tela:
Use da seguinte forma: echo "Mensagem"
Exemplo:
# echo "Exibe uma msg na tela"
Para usar Redirecionadores de Saída de comandos
> Sobrescreve o arquivo destino
>> Adiciona ao arquivo destino
< ou << Input
Exemplo:
# date (Exibe a data na tela)
# date > data.txt (Grava o resultado do comando date no arquivo data.txt)
# tr 'a-z' 'A-Z' < /etc/services
# tr 'a-z' 'A-Z' < /etc/services > resultado.txt
# echo "Meu nome é João" > nome.txt
Utilizando Expressão Regular:
* --> Quer dizer todos
? --> Substitui um caracter
*.* --> Arquivos com extensão
Exemplo:
cp /etc/* /tmp (Copia todos os arquivos de /etc para /tmp)
cp /etc/*.* /tmp (Copia todos os arquivos de /etc que tenham extensão para /tmp)
cp /etc/??? /tmp (Copia todos os arquivos que tenham 3 letras no nome para /tmp)
Para criar variáveis
Use da seguinte forma: export NOME_VARIAVEL=CONTEUDO
Exemplo:
# export ALUNO=José
export NOME_COMPLETO="José da Silva"
Para exibir conteúdo de Variáveis:
# echo $ALUNO
# echo $NOME_COMPLETO
Para exibir conteúdo de Variáveis junto com alguma mensagem:
# echo "O Primeiro nome do Aluno é $ALUNO"
# echo "O Nome completo do Aluno é $NOME_COMPLETO"
Para exibir variáveis do SHELL Atual:
# env
ou
# export
Para exibir resultados de comandos junto com possíveis mensagens:
Exemplo:
# echo A Data e Hora atual é: `date`
# echo "A Data e Hora atual é: $(date)"
# echo "A Data e Hora atual é: $(date)" > data.txt (Grava o conteúdo deste comando no arquivo data.txt