O que é o shell (bash)?
É através do shell que nos comunicamos com o
núcleo do sistema (kernel)
shell significa concha ou algo que envolve
http://linuxdicas.wikispaces.com/comandos-linux
 
Esta apresentação também foi postada no blog do Sérgio 
neste link:
 
http://vivaotux.blogspot.com/2009/08/material-para-uma-aula-que-vou.html
O que é o shell (bash)?
imagem do terminal do linux
As camadas do sistema
O prompt de comandos
usuario@maquina:~$
O prompt de comandos
O prompt de comandos
O prompt de comandos
O prompt de comandos
Entrada e saída de comandos
Por padrão a entrada de dados no shell é o teclado, é o 
que se denomina em inglês de stdin (standard input)
 
A saída padrão é o monitor stdout (standard output)
Por exemplo podemos redirecionar a saída padrão de 
qualquer comando para um arquivo:
 
cal 2007 > cal2007.txt
Redirecionamento não destrutivo:
Para redirecionar a saida de um comando para um arquivo 
sem destruir o que já existe previamente no mesmo, use 
o redirecionamento duplo >>
 
cal 2008 >> cal2007.txt
assim teremos dois calendários, já se 
Redirecionando o terminal
cada sessão do shell tem uma identidade acessível através 
do comando 'tty'
 
Exercício:
1 - abra um terminal e digite 'tty' sem aspas e anote esta 
identiciação, por exemp '/dev/pts/0'
2 - abra outro terminal e digite:
    cal > /dev/pts/0
O que aconteceu?
A saída do comando 'cal' que deveria ser a saída padrão 
'monitor' foi redirecionada para o outro terminal.
Obs: o comando cal sem argumentos retorna o calendário do 
mês atual
A extrutura de pastas
Pasta pessoal
fica em /home/usuario
~/ ..... atalho para /home/usuario
./ ../
./ ...... pasta atual
../ ...... pasta acima
O linux é case sensitive
Isto significa que você pode 
criar uma pasta Casa outra 
CASA e outra casa no mesmo 
diretório
Comandos internos do shell
São chamados built-in e são mais rápidos
pois já estão na memória
cd ......... mudar de diretório
mkdir ...... criar diretórios
> .......... cria arquivos 
pwd ........ exibe pasta atual
ls ......... listar conteúdo
Listando o conteúdo da
pasta
ls ............... listagem simples
ls –l ............ listagem com permissões
ls –a ............ lista inclusive ocultos
ls -1 ............ listagem simples 1 por linha
ls -Ssh1 ......... exibição detalhando o tamahno 
Como exercício acesse o manual do ls "man ls" e 
busque com o uso da barra "/" as opções do último 
comando desta lista. 
Para sair do man pressione 'q'
O comando cal
Exibe o calendário
cal ........ exibe o calendário do mês
cal 2 2007   exibe fevereiro de 2007
veja o manual do 'cal' man cal
O comando cd
mudar de diretório
cd /usr/bin ... local específico
cd –  ......... último local
cd   .......... pasta pessoal (cd sem nada)
Table completion
Ao começar a digitar um comando você
pode usar o <tab> para solicitar a
complementação do nome.
cd /etc/init.<tab>
ls ~/De<tab>
Limpando a tela
^l 
O comando Ctrl-l limpa a tela,
equivale ao comando “clear”
O comando mkdir
mkdir pasta 
mkdir ../teste
mkdir $(date +%d-%m-%Y)
mkdir -p docs/{img/{fotos,icons,wallpapers,svg},textos/
{artigos,man},tmp}
 
O comando acima mostra todo o poder da linha de comandos, não poderia-
mos criar uma extrutura de pastas como esta usando o mouse de forma tão 
rápida e precisa.
O comando mkdir
mkdir -p docs/{img/{fotos,icons,wallpapers,svg},textos/{artigos,man},tmp}
 
o comando acima cria a extrutura abaixo 
 
Mover ou renomear
  mv origem destino   
Obs: Se o nome de destino não existir ele renomeia
Deletando uma pasta e seu
conteudo
 
 
 
rm -rf pasta
A letra "r" indica recursividade, ou seja, a
pasta e tudo que estiver nela, para
arquivos não é necessário o "r".
O comando echo
Exibe uma mensagem na tela
echo "teste"
echo "agora são $(date +%H:%M) horas"
echo "você está em $(pwd)"
Dica: o bash substitui o conteúdo do $
(pwd) por sua saida que corresponde à
pasta atual
Quem sou ?
whoami
se notar-mos este
comando é abreviação
do ingles "who am i?"
echo "olá `whoami`"
Onde estou?
pwd
O comando pwd exibe em que pasta
você está
echo "você está em $(pwd)"
Atalhos do bash - shell
Considere o circunflexo como Ctrl
^u ...... Apaga até o começo da linha
^y ...... Cola o que foi apagado
^e ...... Vai para o fim da linha
^a ...... Vai para o começo da linha
^p ...... comando anterior
^n ...... próximo comando
^k ...... Apaga até o final da linha
^d ...... Fecha a seção
^c ...... interrompe um comando
alt. ... insere argumento ultimo comando
O comando man
Acessa o manual de um comando qualquer
/ ...... Ativa a busca
n ...... Repete a busca (next)
N ...... Repete a busca em sentido inverso
gg ..... Vai para a linha 1
G ...... Vai para o final
q ...... Sai do comando man
Histórico de comandos
Seta acima exibe o históico de comandos
O comando history exibe uma lista de todos os
comandos executados para paginar usamos:
history | less
Na verdade o comando less é um paginador e esta
barra vertical é um modo de repassar um comando para
dentro de outro (redirecionamento), seu nome é pipe.
Para sair do less pressione q
Sobre o comando tail
Para exibir as últimas 5 linhas de um
arquivo - por padrão o comando tail
exibe as últimas 10 linhas
history | tail –n 5
Mas sobre o comando tail
Para acompanhar interativamente a saída
de um log
tail -f /var/log/squid /access.log 
| awk '{print $3" "$7}'
Obs: usando a barra invertida podemos
digitar comandos longos em várias
linhas
Mais sobre o histórico de
comandos
Cada comando do histórico tem um
número, vamoz exibir os últimos 10
comandos?
history 10
O comando acima é um exemplo de que a
pesquisa nunca para
history | tail
Repetindo o comando “n”
do histórico
history | less
Uma vez que você saiba o numero de um comando
que lhe interessa faça
!1234
Este comando repete o comando 1234
Repetindo o último
comando do "history"
Há duas formas legais de repetir um comando
no shell
seta acima - enter
!! enter
Para paginar os comandos do histórico sem tirar as mãos
do teclado use Ctrl-n Ctrl-p
Repetindo o último comando
Na verdade há outra forma legal de
acessar o histórico de comandos...
se testarmos se o google está
acessível assim:
ping -c 2 www.google.com
Podemos em seguida fazer assim:
!ping
Listando os ultimos 16
comandos
O comando
fc -l
Lista os ultimos 16 comandos, para mais
detalhes "man fc"
Interrompendo um comando
Ctrl-c
Quando um comando longo está em execução
e você quizer cancela-lo use a combinação de
teclas acima, lembre-se que nos manuais
Ctrl-c equivale a ^c
É uma forma facilitada de anotações :)
O usuário root
É o usuário administrador do
sistema, para se tornar root use um
dos seguintes comandos
sudo su –
su
Obs:
• somente o root pode usar o comando adduser (criar usuários)
• No primeiro comando o sistema pede nossa própria senha
• No segundo comando o sistema pede a senha do root diretamente
Alterando sua senha
passwd
Digitando o comando passwd sem argumentos o sistema assume que se
deseja mudar a senha para o usuário corrente, mas caso necessite mudar a
senha de outro usuário você terá duas opções
• tornar-se root usando o comando "sudo su -" e
digitar passwd usuario
• fazer login na conta do usuário em questão e digitar
passwd sem nada
Permissões...
Ao usar o comando
ls -l
Obtemos algo como:
drwx------ 2 sergio sergio 4096 2009-08-21 01:15 bin
drwxr-xr-x 5 sergio sergio 4096 2009-08-24 15:17 Desktop
drwxr-xr-x 11 sergio sergio 4096 2009-08-11 11:49 docs
drwxr-xr-x 2 sergio sergio 4096 2009-08-24 16:07 dwhelper
-rw-r--r-- 1 sergio sergio 56 2009-08-18 14:27 limpafirefox.sh
-rwxr-xr-x 1 sergio sergio 5028 2009-08-18 14:27 ramprofile.sh
A primeira letra indica se é arquivo "-" ou diretório "d"
rwx indica que pode ler "read" escrever "write" e executar "execute" para o
dono (os três primeiros flags) os outros grupos são flags para grupo e outros.
Permissões...
Permissões...
baixe o svg aqui --> http://www.mediafire.com/?4ymnduntlm1
Permissões...
chmod 750 file
mkdir -m 755 /shared
man umask
Mudando a propriedade
chown -R sergio.sergio /home/sergio
/etc/group
/etc/passwd
Arquivos de usuários e
grupos
Ejetando o cd
eject
eject -t
O editor nano
É um editor básico
sudo nano /etc/network/interfaces
O comando acima edita o arquivo
/etc/network/interfaces como root
Para salvar Ctrl-o
Para sair Ctrl-x
Gerenciamento de pacotes
como instalar e remover pacotes
como funciona o apt
como procurar pacotes
sudo apt-cache search nome
como editar o /etc/apt/sources.list
sudo nano /etc/apt/sources.list
Como editar o sources.list
sudo nano /etc/apt/sources.list
Adicionando repositórios
Atualizando o apt
sudo apt-get update
Script para automatizar
instalação
#!/bin/bash
# Criado em:Qua 02/Set/2009 hs 17:18
# Last Change: Qua 02/Set/2009 hs 17:18
# vim:ft=sh:fdm=syntax:nu:
# Instituicao: <+nome+>
# Proposito do script: <+descreva+>
# Autor: <+seuNome+>
# site: <+seuSite+>
# testa se está logado como root
if [ "$(id -u)" != "0" ]; then
echo " Need be root"
sleep 2
exit 1
fi
apt-get install quanta
Como configurar a rede
sudo /etc/init.d/networking stop ... stop na rede
sudo /etc/init.d/networking start .. inicia a rede
sudo nano /etc/network/interfaces .. edite o arquivo
auto eth0 ............... qual a interface
iface eth0 inet static .... ip estático
address 10.3.0.12 ......... endereço de rede
netmask 255.255.255.0 ..... máscara
gateway 10.3.0.1 .......... computador que fornece sinal
sudo nano /etc/resolv.conf .. indica o DNS
search domain.velox ......... dns do velox
nameserver 200.165.132.155 .. primário
Nameserver 200.165.132.148... secundário
Como configurar a rede
Em alguns casos é necessário também parar o
serviço NetworkManager pois ele reescreve o
arquivo /etc/resolv.conf e você não consegue
navegar se configurar a rede na mão.
sudo find / -iname networkmanager
No linux educacional ele não fica em
/etc/init.d/ por isso é bom saber o nome e
como busca-lo
No linux educacional /usr/bin/NetworkManager
Qual o endereço de rede
atual?
ifconfig
ifc<tab>
"Seja esperto o bash
completa com TAB"
Qual o gatway da rede?
O gateway é o local por onde sua rede chega, ou
seja, se na configuração de rede não colocar-mos
o mesmo você não navega!
route -n
na segunda coluna da
última linha ou:
route -n | awk '/UG/ {print $2}'
Dica sobre o ping
O comando ping é um comando para testar se um
computador (host) está ativo.
O comando ping no linux por padrão fica mandando um
ping indefinidamente isto é útil quando você está
testando cabos de rede, você pinga para uma máquina
local e vai testando os cabos.
Usamos a opção -c do ping apenas para limitar o
número de pings
ping -c 2 www.google.com
Dica sobre o ping (2)
O comando nmap (por padrão não instalado) é
capaz de dar um ping numa faixa inteira de ip's
sudo apt-get install nmap
nmap -sP 192.168.0.1-254 | awk '/^Host/ {print $2 " ativo"}'
 
O comando acima testa uma faixa inteira de ips retornando o ip e a 
palavra "ativo" para cada host que responder ao ping. Caso queira gerar 
um relatório redirecione a saida para um arquivo>> relatorio.txt
Copia simples via rede
scp ./pastalocal usuario@ip:/caminho/para/pasta
scp usuario@ip:/home/usuario/imagens ./
Ele vai pedir a senha do usuário e colocará a pasta “imagens” inteira
no diretório corrente --> ./
Obs: na primeira vez que este comando for executado ele vai perguntar
sobre a criação da chave (digite yes)
Gerenciando serviços
Como parar e iniciar a interfaçe de rede
sudo /etc/init.d/networking stop ... stop na rede
sudo /etc/init.d/networking start .. inicia a rede
Serviço de impressão
sudo /etc/init.d/cups stop ... stop cups
sudo /etc/init.d/cups start .. inicia cups
Gerenciando serviços II
Serviço de impressão
Pelo navegador acesse: http://localhost:631/
para configurar o servidor de impressão
Obs: defina uma senha para o root com o comando
sudo passwd (o cups necessita deste passo)
sudo /etc/init.d/cups stop ... stop cups
sudo /etc/init.d/cups start .. inicia cups
Administração remota via
ssh
Nas máquinas que irão ser
administradas remotamente faça:
sudo apt-get install ssh
Para acessar --> ssh usuario@ip
o servidor irá perguntar sobre a
criação de uma chave de acesso "Yes"
em seguida pedirá a senha do usuário
indicado acima
backup com rsync
rsync origem destino
Se você precisar do pendrive para transportar um
arquivo muito grande e o espaço estiver pouco
você pode fazer isto
rsync –avz /media/<tab> ~/backup-pendrive
rm -rf /media/<tab> indique o pendrive
agora pode copiar o arquivo para o pendrive
Duas outras opções interessantes do rsync:
--update --delete (veja man rsync)
backup com rsyncrsync origem usuario@destino:/home/usuario/backup
Backup via rede: A extrutura usuario@ip:/dir pode
estar na origem ou no destino, assim se eu desejar
trazer para a máquina atual faço:
[ -d ~/img ] || mkdir ~/img && cd ~/img
O comando acima diz "se a pasta existir [ -d ~/img ] ou tiver
que cria-la || mkdir ~/img e entre na mesma && cd ~/img.
rsync –avz sergio@10.3.0.154:/home/sergio/img/wallpapers ./
Obs: o rsync vai perguntar sobre a criação de uma
chave de acesso digite yes em seguida a senha do
usuário
veja também: https://help.ubuntu.com/community/RsyncCdImage
Acessando
compartilhamento samba
Compartilhamento via nfs
sudo apt-get install 
nfs-common nfs-kernel-server
sudo nano /etc/exports
Referências:
https://help.ubuntu.com/community/NFSv4Howto
http://www.vivaolinux.com.br/artigo/NFS-sem-segredos/
O que é o UDEV volid
Identificação de discos à partir de
indentificadores únicos permitindo o
encaixe de hds em locais distintos sem
perder a referência.
vol_id --uuid /dev/sda5
Referência: http://jfmitre.com/2006/11/descobrindo-o-cdigo-uuid-de-uma-partio.html
Qual o espaço ocupado?
du –sh ./
./ ..... pasta atual
Qual o espaço livre?
df –h /media/disk
Pendrives cds e hds são montados
em /media
Qual a memória livre?
free -m
Liberando o cd ou pendrive
para desmontar
Quando você tenta remover um
pendrive e o sistema diz que o mesmo
está ocupado faça:
fuser -mkv /media/<tab>
Referências: http://linuxdicas.wikispaces.com/fuser
Acessando linux e windows
via live-cd
Usar a mini distro goblinx para
acessar dados locais e enviar
peloa rede usando rsync
Recuperando a senha de root
• Iniciar com um livecd  
• montar a partição / do hd
• mount /dev/sda? /mnt/lin
• chroot /mnt/lin
• passwd (nova senha)
Compactando com tar.bz2
tar cjvf nome.tar.bz2 ./pasta
-c .......... Create
-j .......... Gera tar.bz2
-v .......... Gera saida visual
-f .......... Nome a ser usado
./pasta ...... Será compactada
Obs: para visualizar o conteúdo de um
pacote tar jtvf (para tar.bz2), para mais
detalhes 'man tar'
Descompactando com tar.bz2
tar jxvf arquivo.tar.bz2
Podemos indicar o destino
assim:
tar jxvf file.tar.bz2 –C 
destino
O comando grep
Usado para filtrar conteúdo
ps aux | grep firefox  
“ps aux” exibe todos os processos em execução, já o
grep filtra somente os processos que contiverem a
palavra firefox
Mais sobre o comando grep
 grep “^admin” /etc/passwd 
Se filtrassemos apenas a palavra "admin" o grep
filtraria esta palavra em qualquer posição, contudo
usamos expressões regulares para buscar no
começo da linha.
Para aprender sobre expressões regulares acesse:
http://guia-er.sourceforge.net/
Mais sobre o comando grep
grep -v “^#” /etc/apt/apt.conf   
Usando a opção –v do grep estamos
dizendo: mostre as linhas que não contém
“#” no começo, ou seja, linhas comentadas.
A mesma saida do comando anterior
poderia ser paginada com o less
grep -v “^#” /etc/apt/apt.conf  | less
Mais sobre o comando grep
vim $(grep –irl “sergio” ~/)  
O comando $(grep –irl “sergio” ~/) retornará
uma lista de arquivos que contenham a palavra “sergio” e
entregará para o editor vim.
Um livro sobre o vim pode ser baixado aqui:
http://vivaotux.blogspot.com/2009/01/nosso-livro-sobre-o-vim.html
Matando um programa
com o comando pkill
Cada processo (daí a letra ‘p’ no nome) tem uma identidade
chamada pid (process id). O pkill é um comando que mistura
o kill com o grep (busca por padrões) na prática podemos
forçar o fechamento de um programa de forma trivial.
pkill firefox
Modo arcaico para matar
programas
listar todos os processos, filtrar o
processo desejado com o grep e em
seguida dar um kill -9
ps aux | grep firefox
digamso que o numero do processo do firefox
seja 1342
kill -9 1342
O comando find
find [local] opções
find ~/ -iname “*.txt”
Contando a quantidade
find ~/ -iname “*.txt” | wc -l
Obs: se o local da busca for omitido
o find considera a pasta atual como
lugar da busca
Mais sobre o comando find
find –size +10M | less
 
No próximo comando vamos usar o continuador de
linha “”
find ~/ -iregex "(.*.doc|.*.odt)"
 
O comando acima usa expressões regulares para buscar
arquivos do word ou openoffice (ignorando maiúsculas ou
minúsculas)
Gerando relatórios com o
comando find
find –size +10M | less
Ao invés de paginar na tela usamos um
redirecionamento
find –size +10M > ~/Desktop/bigfiles.txt
Para adicionar algo ao final use >>
Ou fazer uma contagem com o wc
find –size +10M | wc -l
backup com find
Vamos criar um backup de arquivos odt criados
nos últimos 10 minutos
mkdir ~/backup
find . -name '*.odt' -cmin -10 -print0 | xargs
-0 cp -ft ~/backup
find . -iname "*.odt" -cmin -120 | 
xargs cp -t ~/backup
Obs: digitar os comandos é melhor pois ao copiar
e colar os caracteres podem não ser os mesmos.
Sobre comandos longos
Quando digitamos uma barra invertida em um
comando estamos protegendo o Enter, isto significa
que o shell não reconhecerá o enter como tal, veja:
tail -f /var/log/squid /access.log 
| awk '{print $3" "$7}'
É como se a linha fosse uma só, apenas
estamos jogando a saida do tail para o comando awk,
veja mais sobre ele aqui. Obs: o comando acima depende
da existência do squid.
Mais sobre o comando less
Ele é muito útil para ler a saida de comandos muito longos
O comando find por exemplo tem um man
muito extenso
man find | less
/ .......... o less também tem busca
n .......... repete a busca
gg ......... vai para linha 1
G .......... vai para o final
q .......... sai do less
O comando date
http://linuxdicas.wikispaces.com/date
date +%d .... dia
date +%H .... hora
man date
data no padrão americano ano-mes-dia:
date -I
Dica do comando mkdir
Caso necessite criar uma pasta e entrar na
mesma pode fazer
 
[ -d pasta ] || mkdir pasta && cd pasta
O comando acima diz "se a pasta existir [ -d pasta ] ou
tiver que cria-la || mkdir pasta e entre na mesma && cd
pasta.
Na prática isto fará com que você termine na pasta de qualquer
modo, tanto faz, se houver ou não o sistema entra na mesma, se
não houver ele cria e entra na mesma.
Usando o comando cat para
ler conteúdo
cat arquivo.txt
Exibe na tela o conteúdo do arquivo.
Quando o conteúdo tiver que ser
pipeado use-o ao invés do less.
Baixando arquivos com o
wget
wget -c http://www.rau-tu.unicamp.br/nou-
rau/softwarelivre/document/?down=143
 
wget –c –i urls.txt
-c .......... continuar dowload
-i .......... Lista de links a baixar
--limit-rate taxa de download
wget –c –-limit-rate=15k –i links.txt
Desligamento programado
O comando shutdown pode ser usado
das seguintes formas
sudo shutdown -r +10
sudo shutdown -h 0
No primeiro caso reinicia
em 10 minutos (restart) no
segundo caso desliga agora
(halt)
Desligamento programado
Uma outra forma de agendar o desligamento
sudo echo 'shutdown -h 0'| at 3:40
Referências
 É impressindível dominar técnicas de busca no google para solucionar problemas
cotidianos:
http://sergioaraujo.pbworks.com/Como-usar-melhor-o-google
 
http://www.hackmyidea.com/wordpress/2007/12/09/google-sre-question-on-mass-
changing-file-extensions/
 
Buscar livros:
-inurl:htm -inurl:html intitle:"index of" +("/ebooks""/book") +(chm | pdf | zip)
nome livro

O Que é Shell (bash)

  • 1.
    O que éo shell (bash)? É através do shell que nos comunicamos com o núcleo do sistema (kernel) shell significa concha ou algo que envolve http://linuxdicas.wikispaces.com/comandos-linux   Esta apresentação também foi postada no blog do Sérgio  neste link:   http://vivaotux.blogspot.com/2009/08/material-para-uma-aula-que-vou.html
  • 2.
    O que éo shell (bash)? imagem do terminal do linux
  • 3.
  • 4.
    O prompt decomandos usuario@maquina:~$
  • 5.
    O prompt decomandos
  • 6.
    O prompt decomandos
  • 7.
    O prompt decomandos
  • 8.
    O prompt decomandos
  • 9.
    Entrada e saídade comandos Por padrão a entrada de dados no shell é o teclado, é o  que se denomina em inglês de stdin (standard input)   A saída padrão é o monitor stdout (standard output) Por exemplo podemos redirecionar a saída padrão de  qualquer comando para um arquivo:   cal 2007 > cal2007.txt Redirecionamento não destrutivo: Para redirecionar a saida de um comando para um arquivo  sem destruir o que já existe previamente no mesmo, use  o redirecionamento duplo >>   cal 2008 >> cal2007.txt assim teremos dois calendários, já se 
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
    O linux écase sensitive Isto significa que você pode  criar uma pasta Casa outra  CASA e outra casa no mesmo  diretório
  • 15.
    Comandos internos doshell São chamados built-in e são mais rápidos pois já estão na memória cd ......... mudar de diretório mkdir ...... criar diretórios > .......... cria arquivos  pwd ........ exibe pasta atual ls ......... listar conteúdo
  • 16.
    Listando o conteúdoda pasta ls ............... listagem simples ls –l ............ listagem com permissões ls –a ............ lista inclusive ocultos ls -1 ............ listagem simples 1 por linha ls -Ssh1 ......... exibição detalhando o tamahno  Como exercício acesse o manual do ls "man ls" e  busque com o uso da barra "/" as opções do último  comando desta lista.  Para sair do man pressione 'q'
  • 17.
    O comando cal Exibeo calendário cal ........ exibe o calendário do mês cal 2 2007   exibe fevereiro de 2007 veja o manual do 'cal' man cal
  • 18.
    O comando cd mudarde diretório cd /usr/bin ... local específico cd –  ......... último local cd   .......... pasta pessoal (cd sem nada)
  • 19.
    Table completion Ao começara digitar um comando você pode usar o <tab> para solicitar a complementação do nome. cd /etc/init.<tab> ls ~/De<tab>
  • 20.
    Limpando a tela ^l  Ocomando Ctrl-l limpa a tela, equivale ao comando “clear”
  • 21.
  • 22.
  • 23.
    Mover ou renomear   mv origem destino    Obs:Se o nome de destino não existir ele renomeia
  • 24.
    Deletando uma pastae seu conteudo       rm -rf pasta A letra "r" indica recursividade, ou seja, a pasta e tudo que estiver nela, para arquivos não é necessário o "r".
  • 25.
    O comando echo Exibeuma mensagem na tela echo "teste" echo "agora são $(date +%H:%M) horas" echo "você está em $(pwd)" Dica: o bash substitui o conteúdo do $ (pwd) por sua saida que corresponde à pasta atual
  • 26.
    Quem sou ? whoami senotar-mos este comando é abreviação do ingles "who am i?" echo "olá `whoami`"
  • 27.
    Onde estou? pwd O comandopwd exibe em que pasta você está echo "você está em $(pwd)"
  • 28.
    Atalhos do bash- shell Considere o circunflexo como Ctrl ^u ...... Apaga até o começo da linha ^y ...... Cola o que foi apagado ^e ...... Vai para o fim da linha ^a ...... Vai para o começo da linha ^p ...... comando anterior ^n ...... próximo comando ^k ...... Apaga até o final da linha ^d ...... Fecha a seção ^c ...... interrompe um comando alt. ... insere argumento ultimo comando
  • 29.
    O comando man Acessao manual de um comando qualquer / ...... Ativa a busca n ...... Repete a busca (next) N ...... Repete a busca em sentido inverso gg ..... Vai para a linha 1 G ...... Vai para o final q ...... Sai do comando man
  • 30.
    Histórico de comandos Setaacima exibe o históico de comandos O comando history exibe uma lista de todos os comandos executados para paginar usamos: history | less Na verdade o comando less é um paginador e esta barra vertical é um modo de repassar um comando para dentro de outro (redirecionamento), seu nome é pipe. Para sair do less pressione q
  • 31.
    Sobre o comandotail Para exibir as últimas 5 linhas de um arquivo - por padrão o comando tail exibe as últimas 10 linhas history | tail –n 5
  • 32.
    Mas sobre ocomando tail Para acompanhar interativamente a saída de um log tail -f /var/log/squid /access.log | awk '{print $3" "$7}' Obs: usando a barra invertida podemos digitar comandos longos em várias linhas
  • 33.
    Mais sobre ohistórico de comandos Cada comando do histórico tem um número, vamoz exibir os últimos 10 comandos? history 10 O comando acima é um exemplo de que a pesquisa nunca para history | tail
  • 34.
    Repetindo o comando“n” do histórico history | less Uma vez que você saiba o numero de um comando que lhe interessa faça !1234 Este comando repete o comando 1234
  • 35.
    Repetindo o último comandodo "history" Há duas formas legais de repetir um comando no shell seta acima - enter !! enter Para paginar os comandos do histórico sem tirar as mãos do teclado use Ctrl-n Ctrl-p
  • 36.
    Repetindo o últimocomando Na verdade há outra forma legal de acessar o histórico de comandos... se testarmos se o google está acessível assim: ping -c 2 www.google.com Podemos em seguida fazer assim: !ping
  • 37.
    Listando os ultimos16 comandos O comando fc -l Lista os ultimos 16 comandos, para mais detalhes "man fc"
  • 38.
    Interrompendo um comando Ctrl-c Quandoum comando longo está em execução e você quizer cancela-lo use a combinação de teclas acima, lembre-se que nos manuais Ctrl-c equivale a ^c É uma forma facilitada de anotações :)
  • 39.
    O usuário root Éo usuário administrador do sistema, para se tornar root use um dos seguintes comandos sudo su – su Obs: • somente o root pode usar o comando adduser (criar usuários) • No primeiro comando o sistema pede nossa própria senha • No segundo comando o sistema pede a senha do root diretamente
  • 40.
    Alterando sua senha passwd Digitandoo comando passwd sem argumentos o sistema assume que se deseja mudar a senha para o usuário corrente, mas caso necessite mudar a senha de outro usuário você terá duas opções • tornar-se root usando o comando "sudo su -" e digitar passwd usuario • fazer login na conta do usuário em questão e digitar passwd sem nada
  • 41.
    Permissões... Ao usar ocomando ls -l Obtemos algo como: drwx------ 2 sergio sergio 4096 2009-08-21 01:15 bin drwxr-xr-x 5 sergio sergio 4096 2009-08-24 15:17 Desktop drwxr-xr-x 11 sergio sergio 4096 2009-08-11 11:49 docs drwxr-xr-x 2 sergio sergio 4096 2009-08-24 16:07 dwhelper -rw-r--r-- 1 sergio sergio 56 2009-08-18 14:27 limpafirefox.sh -rwxr-xr-x 1 sergio sergio 5028 2009-08-18 14:27 ramprofile.sh A primeira letra indica se é arquivo "-" ou diretório "d" rwx indica que pode ler "read" escrever "write" e executar "execute" para o dono (os três primeiros flags) os outros grupos são flags para grupo e outros.
  • 42.
  • 43.
    Permissões... baixe o svgaqui --> http://www.mediafire.com/?4ymnduntlm1
  • 44.
    Permissões... chmod 750 file mkdir-m 755 /shared man umask Mudando a propriedade chown -R sergio.sergio /home/sergio
  • 45.
  • 46.
  • 47.
    O editor nano Éum editor básico sudo nano /etc/network/interfaces O comando acima edita o arquivo /etc/network/interfaces como root Para salvar Ctrl-o Para sair Ctrl-x
  • 48.
    Gerenciamento de pacotes comoinstalar e remover pacotes como funciona o apt como procurar pacotes sudo apt-cache search nome como editar o /etc/apt/sources.list sudo nano /etc/apt/sources.list
  • 49.
    Como editar osources.list sudo nano /etc/apt/sources.list Adicionando repositórios Atualizando o apt sudo apt-get update
  • 50.
    Script para automatizar instalação #!/bin/bash #Criado em:Qua 02/Set/2009 hs 17:18 # Last Change: Qua 02/Set/2009 hs 17:18 # vim:ft=sh:fdm=syntax:nu: # Instituicao: <+nome+> # Proposito do script: <+descreva+> # Autor: <+seuNome+> # site: <+seuSite+> # testa se está logado como root if [ "$(id -u)" != "0" ]; then echo " Need be root" sleep 2 exit 1 fi apt-get install quanta
  • 51.
    Como configurar arede sudo /etc/init.d/networking stop ... stop na rede sudo /etc/init.d/networking start .. inicia a rede sudo nano /etc/network/interfaces .. edite o arquivo auto eth0 ............... qual a interface iface eth0 inet static .... ip estático address 10.3.0.12 ......... endereço de rede netmask 255.255.255.0 ..... máscara gateway 10.3.0.1 .......... computador que fornece sinal sudo nano /etc/resolv.conf .. indica o DNS search domain.velox ......... dns do velox nameserver 200.165.132.155 .. primário Nameserver 200.165.132.148... secundário
  • 52.
    Como configurar arede Em alguns casos é necessário também parar o serviço NetworkManager pois ele reescreve o arquivo /etc/resolv.conf e você não consegue navegar se configurar a rede na mão. sudo find / -iname networkmanager No linux educacional ele não fica em /etc/init.d/ por isso é bom saber o nome e como busca-lo No linux educacional /usr/bin/NetworkManager
  • 53.
    Qual o endereçode rede atual? ifconfig ifc<tab> "Seja esperto o bash completa com TAB"
  • 54.
    Qual o gatwayda rede? O gateway é o local por onde sua rede chega, ou seja, se na configuração de rede não colocar-mos o mesmo você não navega! route -n na segunda coluna da última linha ou: route -n | awk '/UG/ {print $2}'
  • 55.
    Dica sobre oping O comando ping é um comando para testar se um computador (host) está ativo. O comando ping no linux por padrão fica mandando um ping indefinidamente isto é útil quando você está testando cabos de rede, você pinga para uma máquina local e vai testando os cabos. Usamos a opção -c do ping apenas para limitar o número de pings ping -c 2 www.google.com
  • 56.
    Dica sobre oping (2) O comando nmap (por padrão não instalado) é capaz de dar um ping numa faixa inteira de ip's sudo apt-get install nmap nmap -sP 192.168.0.1-254 | awk '/^Host/ {print $2 " ativo"}'   O comando acima testa uma faixa inteira de ips retornando o ip e a  palavra "ativo" para cada host que responder ao ping. Caso queira gerar  um relatório redirecione a saida para um arquivo>> relatorio.txt
  • 57.
    Copia simples viarede scp ./pastalocal usuario@ip:/caminho/para/pasta scp usuario@ip:/home/usuario/imagens ./ Ele vai pedir a senha do usuário e colocará a pasta “imagens” inteira no diretório corrente --> ./ Obs: na primeira vez que este comando for executado ele vai perguntar sobre a criação da chave (digite yes)
  • 58.
    Gerenciando serviços Como parare iniciar a interfaçe de rede sudo /etc/init.d/networking stop ... stop na rede sudo /etc/init.d/networking start .. inicia a rede Serviço de impressão sudo /etc/init.d/cups stop ... stop cups sudo /etc/init.d/cups start .. inicia cups
  • 59.
    Gerenciando serviços II Serviçode impressão Pelo navegador acesse: http://localhost:631/ para configurar o servidor de impressão Obs: defina uma senha para o root com o comando sudo passwd (o cups necessita deste passo) sudo /etc/init.d/cups stop ... stop cups sudo /etc/init.d/cups start .. inicia cups
  • 60.
    Administração remota via ssh Nasmáquinas que irão ser administradas remotamente faça: sudo apt-get install ssh Para acessar --> ssh usuario@ip o servidor irá perguntar sobre a criação de uma chave de acesso "Yes" em seguida pedirá a senha do usuário indicado acima
  • 61.
    backup com rsync rsyncorigem destino Se você precisar do pendrive para transportar um arquivo muito grande e o espaço estiver pouco você pode fazer isto rsync –avz /media/<tab> ~/backup-pendrive rm -rf /media/<tab> indique o pendrive agora pode copiar o arquivo para o pendrive Duas outras opções interessantes do rsync: --update --delete (veja man rsync)
  • 62.
    backup com rsyncrsyncorigem usuario@destino:/home/usuario/backup Backup via rede: A extrutura usuario@ip:/dir pode estar na origem ou no destino, assim se eu desejar trazer para a máquina atual faço: [ -d ~/img ] || mkdir ~/img && cd ~/img O comando acima diz "se a pasta existir [ -d ~/img ] ou tiver que cria-la || mkdir ~/img e entre na mesma && cd ~/img. rsync –avz sergio@10.3.0.154:/home/sergio/img/wallpapers ./ Obs: o rsync vai perguntar sobre a criação de uma chave de acesso digite yes em seguida a senha do usuário veja também: https://help.ubuntu.com/community/RsyncCdImage
  • 63.
  • 64.
    Compartilhamento via nfs sudoapt-get install nfs-common nfs-kernel-server sudo nano /etc/exports Referências: https://help.ubuntu.com/community/NFSv4Howto http://www.vivaolinux.com.br/artigo/NFS-sem-segredos/
  • 65.
    O que éo UDEV volid Identificação de discos à partir de indentificadores únicos permitindo o encaixe de hds em locais distintos sem perder a referência. vol_id --uuid /dev/sda5 Referência: http://jfmitre.com/2006/11/descobrindo-o-cdigo-uuid-de-uma-partio.html
  • 66.
    Qual o espaçoocupado? du –sh ./ ./ ..... pasta atual
  • 67.
    Qual o espaçolivre? df –h /media/disk Pendrives cds e hds são montados em /media
  • 68.
    Qual a memórialivre? free -m
  • 69.
    Liberando o cdou pendrive para desmontar Quando você tenta remover um pendrive e o sistema diz que o mesmo está ocupado faça: fuser -mkv /media/<tab> Referências: http://linuxdicas.wikispaces.com/fuser
  • 70.
    Acessando linux ewindows via live-cd Usar a mini distro goblinx para acessar dados locais e enviar peloa rede usando rsync
  • 71.
    Recuperando a senhade root • Iniciar com um livecd   • montar a partição / do hd • mount /dev/sda? /mnt/lin • chroot /mnt/lin • passwd (nova senha)
  • 72.
    Compactando com tar.bz2 tarcjvf nome.tar.bz2 ./pasta -c .......... Create -j .......... Gera tar.bz2 -v .......... Gera saida visual -f .......... Nome a ser usado ./pasta ...... Será compactada Obs: para visualizar o conteúdo de um pacote tar jtvf (para tar.bz2), para mais detalhes 'man tar'
  • 73.
    Descompactando com tar.bz2 tarjxvf arquivo.tar.bz2 Podemos indicar o destino assim: tar jxvf file.tar.bz2 –C destino
  • 74.
    O comando grep Usadopara filtrar conteúdo ps aux | grep firefox   “ps aux” exibe todos os processos em execução, já o grep filtra somente os processos que contiverem a palavra firefox
  • 75.
    Mais sobre ocomando grep  grep “^admin” /etc/passwd  Se filtrassemos apenas a palavra "admin" o grep filtraria esta palavra em qualquer posição, contudo usamos expressões regulares para buscar no começo da linha. Para aprender sobre expressões regulares acesse: http://guia-er.sourceforge.net/
  • 76.
    Mais sobre ocomando grep grep -v “^#” /etc/apt/apt.conf    Usando a opção –v do grep estamos dizendo: mostre as linhas que não contém “#” no começo, ou seja, linhas comentadas. A mesma saida do comando anterior poderia ser paginada com o less grep -v “^#” /etc/apt/apt.conf  | less
  • 77.
    Mais sobre ocomando grep vim $(grep –irl “sergio” ~/)   O comando $(grep –irl “sergio” ~/) retornará uma lista de arquivos que contenham a palavra “sergio” e entregará para o editor vim. Um livro sobre o vim pode ser baixado aqui: http://vivaotux.blogspot.com/2009/01/nosso-livro-sobre-o-vim.html
  • 78.
    Matando um programa como comando pkill Cada processo (daí a letra ‘p’ no nome) tem uma identidade chamada pid (process id). O pkill é um comando que mistura o kill com o grep (busca por padrões) na prática podemos forçar o fechamento de um programa de forma trivial. pkill firefox
  • 79.
    Modo arcaico paramatar programas listar todos os processos, filtrar o processo desejado com o grep e em seguida dar um kill -9 ps aux | grep firefox digamso que o numero do processo do firefox seja 1342 kill -9 1342
  • 80.
    O comando find find[local] opções find ~/ -iname “*.txt” Contando a quantidade find ~/ -iname “*.txt” | wc -l Obs: se o local da busca for omitido o find considera a pasta atual como lugar da busca
  • 81.
    Mais sobre ocomando find find –size +10M | less   No próximo comando vamos usar o continuador de linha “” find ~/ -iregex "(.*.doc|.*.odt)"   O comando acima usa expressões regulares para buscar arquivos do word ou openoffice (ignorando maiúsculas ou minúsculas)
  • 82.
    Gerando relatórios como comando find find –size +10M | less Ao invés de paginar na tela usamos um redirecionamento find –size +10M > ~/Desktop/bigfiles.txt Para adicionar algo ao final use >> Ou fazer uma contagem com o wc find –size +10M | wc -l
  • 83.
    backup com find Vamoscriar um backup de arquivos odt criados nos últimos 10 minutos mkdir ~/backup find . -name '*.odt' -cmin -10 -print0 | xargs -0 cp -ft ~/backup find . -iname "*.odt" -cmin -120 | xargs cp -t ~/backup Obs: digitar os comandos é melhor pois ao copiar e colar os caracteres podem não ser os mesmos.
  • 84.
    Sobre comandos longos Quandodigitamos uma barra invertida em um comando estamos protegendo o Enter, isto significa que o shell não reconhecerá o enter como tal, veja: tail -f /var/log/squid /access.log | awk '{print $3" "$7}' É como se a linha fosse uma só, apenas estamos jogando a saida do tail para o comando awk, veja mais sobre ele aqui. Obs: o comando acima depende da existência do squid.
  • 85.
    Mais sobre ocomando less Ele é muito útil para ler a saida de comandos muito longos O comando find por exemplo tem um man muito extenso man find | less / .......... o less também tem busca n .......... repete a busca gg ......... vai para linha 1 G .......... vai para o final q .......... sai do less
  • 86.
    O comando date http://linuxdicas.wikispaces.com/date date+%d .... dia date +%H .... hora man date data no padrão americano ano-mes-dia: date -I
  • 87.
    Dica do comandomkdir Caso necessite criar uma pasta e entrar na mesma pode fazer   [ -d pasta ] || mkdir pasta && cd pasta O comando acima diz "se a pasta existir [ -d pasta ] ou tiver que cria-la || mkdir pasta e entre na mesma && cd pasta. Na prática isto fará com que você termine na pasta de qualquer modo, tanto faz, se houver ou não o sistema entra na mesma, se não houver ele cria e entra na mesma.
  • 88.
    Usando o comandocat para ler conteúdo cat arquivo.txt Exibe na tela o conteúdo do arquivo. Quando o conteúdo tiver que ser pipeado use-o ao invés do less.
  • 89.
    Baixando arquivos como wget wget -c http://www.rau-tu.unicamp.br/nou- rau/softwarelivre/document/?down=143   wget –c –i urls.txt -c .......... continuar dowload -i .......... Lista de links a baixar --limit-rate taxa de download wget –c –-limit-rate=15k –i links.txt
  • 90.
    Desligamento programado O comandoshutdown pode ser usado das seguintes formas sudo shutdown -r +10 sudo shutdown -h 0 No primeiro caso reinicia em 10 minutos (restart) no segundo caso desliga agora (halt)
  • 91.
    Desligamento programado Uma outraforma de agendar o desligamento sudo echo 'shutdown -h 0'| at 3:40
  • 92.
    Referências  É impressindível dominartécnicas de busca no google para solucionar problemas cotidianos: http://sergioaraujo.pbworks.com/Como-usar-melhor-o-google   http://www.hackmyidea.com/wordpress/2007/12/09/google-sre-question-on-mass- changing-file-extensions/   Buscar livros: -inurl:htm -inurl:html intitle:"index of" +("/ebooks""/book") +(chm | pdf | zip) nome livro