O documento fornece uma introdução ao sistema operacional GNU/Linux, incluindo:
1) Uma lista de personalidades importantes do software livre e suas contribuições;
2) Uma visão geral dos principais comandos do GNU/Linux para manipular diretórios e arquivos.
3) Informações sobre onde encontrar ajuda sobre comandos e programas no GNU/Linux.
2. Curso para o Colméia
O objetivo desta apresentação e tratar sobre
software livre e a comunidade, seguido de uma
listagem de comandos básicas do
GNU/Linux. Durante o curso serão aplicadas
listas de exercícios ( vai ter nota =] )
Final do curso serão emitidos os certificados o/
de colméia, você já vai poder dizer para a sua
mãe que você é uma abelhinha honorária =]
Qualquer reclamação pode enviar e-mail para
dev_null@colmeia.udesc.br
3. Nomes Importantes● Ken Thompson e Dennis Richie
● Andrew S. Tanembaum
● Eric Raymond
● Bill Gates
● Richard Stallman
● Steve Jobs
● Jon Maddog Hall
● Kevin Mitnick
● Theo de Raadt
● Linus Torvalds
● Marcelo Tosatti
● Carlos E.Morimoto
● Sergio Amadeu
● Aurélio Marinho Jargas
● Julio Neves
● Piter Punk
● Alfredo Kengi Kojima
5. Ken Thompson e Denis Ritchie
● Criadores da Linguagem
C
● Principais criadores do
UNIX
● Ganharam o prêmio
Turing pela teoria de
sistema operacional
génerico e a sua
implementação o UNIX
6. Andrew S. Tanembaum
● Criador do Minix
● Autor de muitos livros de
renome tendo com os
mais conhecidos:
● - Computer Networks
● - Modern Operating
Systems
● - Structured Computer
Organization
7. Eric Raymond
● Autor de Catedral e
Bazar
● Autor do “How to
become a hacker”
● Autor e mantenedor do
The Hacker's Dictionary
● Desenvolvedor nrtools,
ncurses, fecthmail, gnu
emacs
● Um dos fundadores do
movimento Open-Source
8. Bill Gates
● Criador da empresa
Microsoft e o sistemas
operacionais DOS e
Windows
● Início pesado do
movimento de software
proprietário
● Tornou o computador um
produto viável para
pessoas normais
9. Richard Stallman
● Criador do movimento
do software livre e
fudador da FSF ( Free
Software Foundation )
● Fundador da GNU e da
licença GNU GPL.
● Criador do emacs, gnu c,
gnu debuggers entre
outros projetos ...
● Não presiça de
apresentação para as
pessoas do mundo de
software livre
10. Steve Jobs
● Fundador da Apple
● Criador das fontes
cifradas
● Criador da Next
● Criador da Pixel
● Inovador na parte
computação gráfica
● Criador do sistema Mac
OS X baseado no kernel
open source do BSD e
do math kernel
11. Jon Hall
● Fundador do Open
Source
● Diretor da Linux
International
● Reconhecido por sua
grande participação em
eventos pelo mundo
● Também conhecido
como papai Noel
● Cadê o Maddog ?
12. Kevin Mitnick
● Considerado maior
cracker do mundo
● Revolucionou a
segurança do mundo
colocando ela à teste
● Tem muitos livros e
artigos publicados
● A arte de enganar
● A arte de invadir
● Hoje atua como
consultor de segurança
13. Theo de Raadt
● Criador do Openbsd
● Especialista em
segurança
● Exímio programador
● Entidade importante do
mundo BSD e do
movimento Open Source
● Desenvolvedor de
ferramentas como,
openssh, openvpn ....
14. Linus Tovarld
● Criador do kernel do
Linux
● Início o movimento de
desenvolvimento de
software ao modelo
bazar
● Criador do git
● Exímio programador de
C
15. Marcelo Tosatti
● Antigo mantenedor do
kernel 2.4
● Trabalha na RedHat no
projeto do laptop de 100
dólares
16. Carlos E. Morimoto
● Criador da distribuição
brasileira Kurumin
● Programa desde os 7
anos
● Aos 17 anos publicou o
seu primeiro livro sobre
hardware
● Mantenedor do site
guiadohardware
17. Sergio Amadeu
● Um dos precursores na
criação de telecentros no
brasil
● Escreveu os livros,
Exclusão Digital,
Software Livre, Software
Livre e Inclusão Digital
● Grandes influências no
uso de software livre no
governo brasileiro
18. Aurélio Marinho Jargas
● Autor do livro guia de
expressões regulares,
Shell Script
● Escreveu muitos cursos
para GNU/Linux
● Mantenedor das funções
ZZ
● Trabalhou por muitos
anos na conectiva
● Hoje é um nerd
despojado
19. Julio Neves
● Autor do livro Shell
Script Linux
● Considera o primeiro
hacker brasileiro
● Ministra vários cursos de
shellscript e palestras
20. Piter Punk
● Roberto Freires Batista
● Desenvolvedor do
Slackware
● Mantenedor da revista
técnica slackwarezine
● Possui diversos textos e
palestras sobre
administração de
servidores seguros
21. Alfredo Kengi Kojima
● Criador do
Windowmaker
● Criador do Synaptic
● Trabalha no MySQL
● Exímio programador
23. A cultura Hacker
“Eu fiz um descoberta hoje. Eu encontrei um
computador. Espere um segundo, isto está legal. Faz o
que eu quero. Se comete um engano, é porque eu
estraguei isto. Não porque não gosta de mim, ou sente
atração por mim, ou pensa que sou inteligente, ou não
gosta de ensinar e não deveria estar aqui. Criança
maldita. Tudo que ele faz é jogar jogos.” - Manifesto
Hacker o ultimo texto do Mentor
24. O termo Hacker
● Hacker != cracker
● Contribui para a comunidade
● Escreva programas código-aberto
● Eles não são pagos para te ajudar
então um mínimo de esforço se faz
necessário para lhe pedir ajuda
● Ajude a testar e depurar software
código-aberto
● Publique informação útil
● Sirva à cultura hacker
● Dedicação ao extremo
● The Hacker Crackdown
25. Termos Hackers
● Black Hat
● White Hat
● Script Kid
● Lammer
● Newbie
● Cracker
● Geek
● Phreakers
26. Glider o símbolo hacker
● Simboliza o jogo da vida
● É o símbolo hacker
cunhado por Eric
Raymond
● Apesar de ser um
símbolo que
possivelmente poderia
ser deturpado o seu
nicho de uso ainda se
faz bem seleto
27. Propriedade Inteletual
● Começa com a invenção
de gunterbag
● Lei brasileira 9610/98
● Movimento de berna
● OMPI ( Organização
mundial de propriedade
intelecutal ) ou WIPO
● INPI
● ABES
28. A história do Software Livre
● Sempre houve trabalho
em conjunto e com
cooperação
● 1976 – Open Letter to
Hobbyst
● 1978 – Unix Pago
● 1983 – GNU
● 1985 – FSF
● 1991 – LINUX
● 1993 – Freebsd
29. Software Livre
● As 4 Liberdades do software livre:
● * A liberdade para executar o programa, para
qualquer propósito (liberdade nº 0);
● * A liberdade de estudar como o programa funciona,
e adaptá-lo para as suas necessidades (liberdade nº
1). Acesso ao código-fonte é um pré-requisito para esta
liberdade;
● * A liberdade de redistribuir cópias de modo que
você possa ajudar ao seu próximo (liberdade nº 2);
● * A liberdade de aperfeiçoar o programa, e liberar os
seus aperfeiçoamentos, de modo que toda a
comunidade se beneficie (liberdade nº 3). Acesso ao
código-fonte é um pré-requisito para esta liberdade;
30. Movimento do Free Software
● Criado a definição pela
GNU e FSF
● Tem uma visão social
● Usa da licenças GPL
● Tem como objetivo criar
uma opção gratuita aos
programas já existentes
31. Código Fechado
● Fortemente iniciado pelo
documento “open-letter-
to-hobbyists”
● EULA - End User
License Agreement
● Direito do autor
● DLL e Binários
32. Open Source – Código Aberto
● Goodbye, "free
software"; hello, "open
source" – Eric Raymond
● Criado em 98
● Motivações ténicas
● FreeBSD, OpenBSD,
Linux, Mozilla ....
● Fundador OSI
● Licença Creative
Commons
33. Software Livre x Open Source
● Ambos tem o mesmo
princípio de base
● Um tem a visão social
● Outro tem a visão
técnica
35. Exercícios == Café =]
Outch Leis filosofia blahhh !!! 0.o pq eu
tenho que estudar isso.... ????
36. Do Unix ao GNU/Linux
● Seria o GNU/Linux tudo?
● Dá onde veio isso de liberar o código fonte
● Então na década de 50 não tinha sistema operacional
● Unix
● GNU
● Minix
● Linux
● FreeBSD
● OpenBSD
● OSI
37. Hardware com sistema especifico
● O hardware possuía um
sistema que tinha por
finalidade resolver
somente um problema
específico
● Exemplos de hardwares
deste tipo são celulares,
microondas, rádios...
38. UNIX
● Criado por AT&T
● Portabilidade, multi-
tarefa, multi-usuário
● Tudo é arquivo de texto
● POSIX padrão utilizado
nos UNIX-Likes
● Desenvolvido em
linguagem de alto nível
● Mantenedor atual do seu
padrão é o The Open
Group
39.
40. GNU
● Conjunto de programas
criados com a licença
GPL para ser uma
alternativa gratuita para
os software UNIX
● Composta por vários
desenvolvedores
hackers como o RMS e
outros...
41. Minix
● BSD License
● Micro Kernel
● Sistema de arquivos
próprio
● Livro System
Operational
● Voltado para cientistas
da computação
42. LINUX
● Ubuntu != Linux >.<
● Criado por Linus Towarld
● Kernel módular
● Blahh blahh =]
● Versão atual 2.6.26
● 0.o o que mais posso
falar sobre o.0? Que
vocês não saibam
43. FreeBSD
● Freebsd criado 1993
● Voltado para servidor
● Grande exemplo de
projeto Opensource
● Mascote daemon
conhecido como beastie
● Extremamente escalável
seguro
● Sistema de arquivos
próprio
● Sistema de pacotes
ports
44. OpenBSD
● Criado por Theo de
Raadt
● Fork do netbsd
● Extremamente voltado
para a segurança
● Licença BSD
● Ferramenta de pacotes
ports
● Ótima firewall chamada
pf
45. OSI
● Criado por Eric
Raymond
● Tem como o intuito
classificar o novo
movimento de software
livre
● Grande bum o Goodbye,
"free software"; hello,
"open source"
● Mozzila projeto da
Netscap é derivado
46. Exercício =]
É preciso muito exercício para se
conseguir alcançar bons níveis de
apredizado.... ( daaar Marco )
47. Palavras Chaves
● Saída padrão = stdout
● Entrada padrão = teclado
● arquivo comum = legível por humanos
● arquivo binário = arquivo em código de máquina
possivelmente sendo um executável ou uma biblioteca
● bibliotecas = para linux, arquivos .so
● arquivos de dispositivo = links símbolicos para
endereços de memória que apontam para algum
dispositivo
48. Onde encontrar ajuda
● Whatis
● Apropos
● Man
● Info
● /usr/doc/nome_programa/
● www.tldp.org
● /usr/doc/Linux-FAQs
● /usr/doc/Linux-HOWTOs
50. Sessão dos comandos
Manipulação de diretórios: cd,ls,pwd,mkdir,rmdir,tree,dirname
Manipulação de arquivos: cat,tac,rm,mv,cp,touch,stat,file,ldd,basename
Manipulaçào de texto: cut,head,tail,sort,tr,nl,diff,wc,grep,sed
Pagers: more,less, ( especial screen )
Compactação: tar,gzip,bzip
Comandos de procura: which, whereis,find,locate/updatedb
51. Manipulando diretórios
Comando
cd – change directory, altera o diretório
Forma
cd [directory]
Argumentos
- volta um diretório
~ vai para o diretório pessoal
.. sobe um diretorio
.. vai para o diretório anterior
./ vai para o diretório atual
Exemplos
cd
cd /usr/share/
cd ../
cd /
cd -
52. Manipulando diretórios
Comando
ls - lista os arquivos de um determinado diretório
Forma
ls [OPTION]... [FILE]...
Parâmetros
-a lista tudo inclusive arquivos ocultos
-d lista os dados de um diretório não seu conteúdo
--color=false desabilita a cor
-r lista em ordem reversa
-S lista em ordem de tamanho
-t lista através do último acesso do arquivo
-1 lista em somente uma coluna
-X lista por extensão
-R listagem recursiva
-l listagem longa
-h mostra o tamanho dos arquivos de forma humana =]
Exemplos
ls
ls -X
ls -Salhr
53. Metacaracters ( extra )
Metacaracteres
São símbolos especiais do bash que são subsituídos por uma sequencia ou valor
Metacaracteres Shell-Script
? compara por uma letra qualquer
* compara por qualquer sequencia de caracter
[] compara pelos símbolos contidos
[a-z] compara por qualquer sequência de caracteres entre a faixa
Exemplos
ls imagem*.jpg
ls imagem[1].png
ls image[1-9].jpg
ls imagem?.png
ls imagen??.png
ls [fi]*.png
ls [fi]*[1]?.png
55. Manipulando diretórios
Comando
mkdir – cria um diretório
Forma
mkdir [OPTION] DIRECTORY...
Parâmetros
-p cria os diretórios pais se necessário
-v modo verbose
Exemplos
mkdir teste
mkdir ~/images/linux
mkdir ../lixo
mkdir /tmp/minhas/imagens/legais
57. Manipulando diretórios
Comando
tree – lista os arquivos em forma de árvore
Forma
tree [OPTION] DIRECTORY...
Parâmetros
-a lista todos os arquivos ( inclusive os ocultos )
-f imprime o campo inteiro do arquivo
-d lista somente os diretórios
-L NIVEL lista o diretório até o nível de profundidade passado
-P PATTERNlista de acordo o padrão especificado ( similiar ao do ls )
-I PATTERN não de acordo o padrão especificado ( similiar ao do ls )
Exemplos
tree -L 3 /home
tree -ad -L 3 /home
tree -P jpg -L 10
tree -I png -L 10
58. Manipulando diretórios
Comando
dirname – mostra o nome do diretório do arquivo
Forma
dirname [FILE]...
Parâmetros
Exemplos
dirname /usr/lib/firefox
dirname `which gimp`
59. Manipulando arquivos
Comando
cat – imprime o conteúdo de um arquivo
Forma
cat [OPTION] [FILE]...
Parâmetros
-A Exibe todos os caracteres especiais
-n Númera as linhas
-b Númera apenas as linhas não vazias
Exemplos
cat -A meu_cat.txt
cat -n meu_cat.txt
cat -b meu_cat.txt
60. Manipulando arquivos
Comando
tac – imprime o conteúdo de um arquivo de forma reversa
Forma
tac [OPTION] [FILE]...
Parâmetros
Exemplos
tac -A meu_cat.txt
tac -n meu_cat.txt
tac -b meu_cat.txt
61. Manipulando arquivos
Comando
rm – remove um arquivo
Forma
rm [OPTION] [FILE]...
Parâmetros
-i pergunta antes de remove
-v modo verbose
-r apaga de forma recursiva
-f força a remoção
Exemplos
rm /tmp/lixo
rm -rfv /home/pasta_com_conteudo_dentro/
62. Manipulando arquivos
Comando
mv – move um arquivo de um diretório para outro ou renomeia ele
Forma
mv [OPTION]... [-T] SOURCE DEST
Parâmetros
-v modo verbose
Exemplos
mv /tmp/lixo /tmp/meu_novo_lixo
mv /tmp/lixo /tmp/outro_lugar/
mv -v /tmp/arquivo_qualquer /home/usuario/
63. Manipulando arquivos
Comando
cp – copia um arquivo de um diretório para outro
Forma
cp [OPTION]... [-T] SOURCE DEST
Parâmetros
-r cópia recursiva
-a mantém os atributos dos arquivos
-v modo verbose
Exemplos
cp /tmp/lixo /tmp/meu_novo_lixo
cp /tmp/lixo /tmp/outro_lugar/
cp -v /tmp/arquivo_qualquer /home/usuario/
cp -r /tmp/minha_pasta /tmp/outro_lugar
cp -ra /tmp/minha_pasta /tmp/outro_lugar
64. Manipulando arquivos
Comando
touch – atualiza a ultimo acesso do arquivo ou cria um arquivo caso ele não exista
Forma
touch [OPTION]... [FILE]...
Parâmetros
-a altera o última acesso ao arquivo
-m altera o última modificação do arquivo
-d coloca de forma literal
Exemplos
touch -d '1 May 2005 10:22' /tmp/teste
touch -d '14 May' file9 /tmp/teste
65. Manipulando arquivos
Comando
stat – informa status sobre o arquivo, como ultimo acesso, quando foi modificado ou
alterado
Forma
stat [OPTION]... [FILE]...
Parâmetros
-f informa somente o status do sistema do arquivo
Exemplos
stat /etc/fstab
stat -f /etc/fstab
66. Manipulando arquivos
Comando
file – informa o tipo do arquivo
Forma
file [OPTION]... [FILE]...
Parâmetros
-b forma abreviado do tipo de arquivo
Exemplos
file /etc/fstab
file `which vim`
file /bin/egrep
file -b /bin/zcat
67. Manipulando arquivos
Comando
ldd – imprime as dependências das bibliotecas
Forma
ldd [OPTION]... [FILE]...
Parâmetros
-v modo verbose listando todos os dados das dependências
-u imprime as bibliotecas linkadas não necessárias para o uso do programa
Exemplos
ldd /bin/ls
ldd -v `which ls`
ldd /etc/fstab
ldd `which gimp`
ldd -u `which gimp`
68. Manipulando arquivos
Comando
basename – imprime o nome do arquivo sem lista o diretório
Forma
basename [FILE]...
Parâmetros
Exemplos
basename /usr/lib/firefox
69. Manipulando arquivos
Comando
fuser – mostra os processos que possuem determinados arquivos abertos ou portas
Forma
fuser [OPTIONS]... NAME...
Parâmetros
-u lista o usuário dono do arquivo
-v lista de forma verbose
-m lista todos os processos que usam do sistema de arquivos slecionado
-k kila todos os processos listados
Exemplos
fuser -v 22/tcp
fuser -u /
fuser -vm /mnt/cdrom
fuser -km /mnt/cdrom
70. Processamento de texto
Comando
cut – recorta parte de um texto de um arquivo
Forma
cut [OPTION]... [FILE]...
Parâmetros
-f NUMBER informa o numero do campo a ser caçado
-d DELIMITER informa o caracter delimitador
-c NUMBER informa de quantos até quantos caracteres devem ser caçados
Exemplos
cut -f 3 -d : tesoura.txt
cut -f 2 -d : tesoura.txt
cut -c 1-7 quadrados.txt
cut -c 1-7,9-15 quadrados.txt
71. Processamento de texto
Comando
head – imprime uma quantidade de linhas a partir do começo do arquivo
Forma
head [OPTION]... [FILE]...
Parâmetros
-n NUMBER lista a partir do começo do arquivo até a linha especificada
Exemplos
head /var/log/messages
head -n 10 /var/log/messages
72. Processamento de texto
Comando
tail – imprime uma quantidade de linhas a partir do final do arquivo
Forma
tail [OPTION]... [FILE]...
Parâmetros
-n NUMBER lista a partir do começo do arquivo até a linha especificada
-f fica mostrando o arquivo em tempo de execução
Exemplos
tail -n 5 /var/log/messages
tail -f /var/log/messages
73. Processamento de texto
Comando
sort – organiza o arquivo por uma ordem definida
Forma
sort [OPTION]... [FILE]...
Parâmetros
-f ignora o case sensitive
-b ignora linhas em branco
-r mostra de forma reversa
Exemplos
sort /etc/passwd
sort -r /etc/passwd
sort -fb /tmp/sequencia_nomes
74. Processamento de texto
Comando
tr – substitui um caracter por outro em um arquivo
Forma
tr [OPTION]... [String1]...
Parâmetros
-c efetua a troca de todos caracteres que não estejam contidos em string1
-d deleta caracteres de string1 da saída
-s remove caracteres repetidos
Exemplos
cat /etc/passwd | tr a-z A-Z | sort
cat /etc/fstab | tr -s " " | cut -f 1,3 -d " " | sort
tr “n” “t” /etc/fstab
75. Processamento de texto
Comando
nl – númera as linhas
Forma
nl [OPTION]... [FILE]...
Parâmetros
-b númera corpo por padrão
-h númera cabeçalho por padrão
Tipos de padrão
a númera todas as linhas ( -b )
t númera todas as linhas, com exceção das vazias ( -b )
n não númera as linhas
Exemplos
nl -b a /etc/passwd
nl -b /proc/cpuinfo
76. Processamento de texto
Comando
diff – Exibi a diferença entre dois arquivos
Forma
diff [OPTION]... [FILE1]... [FILE2]
Parâmetros
-a considera todos os arquivos como sendo do tipo texto
-b ignora espacos e tabs
-f saida com interpretação mais fácil
-i não verifica o case sensitive
-w ignora espaços e tabs na comparação
Exemplos
diff original.txt revisado.txt
diff -f original.txt revisado.txt
diff arquivo arquivo~
77. Processamento de texto
Comando
wc – conta linhas, palavras e bytes de um arquivo
Forma
wc [OPTION]... [FILE]...
Parâmetros
-c conta os bytes
-m conta os caracteres
-l conta linhas
-w conta palavras
Exemplos
wc /etc/fstab
wc -w /etc/fstab
wc -c /etc/fstab
wc -m /etc/fstab
wc -l /etc/fstab
78. Comandos de paginação
Comando
more – Exibi o arquivo de texto de forma paginada
Forma
more [OPTION]... [FILE]...
Parâmetros
-+ Number exibe o arquivo começando na linha especificada
-s reduz múltiplas linhas em branco a uma única
Exemplos
more /usr/doc/glib-1.2.10/README
more /usr/doc/glib-1.2.10/INSTALL
79. Comandos de paginação
Comando
less – Exibi o arquivo de texto de forma paginada
Forma
less [OPTION]... [FILE]...
Parâmetros
-? exibe a lista de comandos
-p string exibi a pagina onde está a primeira ocorrência da string
-s reduz múltiplas linhas em branco a uma única
Teclas de atalho
/ procura por expressão regular
n avança na procura
N volta na procura
Exemplos
less /usr/doc/glib-1.2.10/README
less /usr/doc/glib-1.2.10/INSTALL
80. Comandos de compactação
Comando
tar – Arquiva vários arquivos em um ou extrai
Forma
tar [OPTION]... [FILE]...
Parâmetros
-c cria um arquivo do tipo tar
-x extrai um arquivo do tipo tar
-t lista um arquivo do tipo tar
-f especifica que o próximo parametro é o nome o do arquivo
-z compacta ou extrai um arquivo do tipo GunZip
-j compacta ou extrai um arquivo do tipo Bzip
-v exibi informações sobre os arquivos extraidos ou compactados
-C PATH extrai o arquivo em no caminho especificado
Exemplos
tar -zcvf exemplo.tar.gz exemplo/
tar -ztvf exemplo.tar.gz exemplo/
tar -zxvf exemplo.tar.gz
tar -zxvf exemplo.tar.gz -C other_folder/
81. Comandos de compactação
Comando
gzip – Arquiva vários arquivos em um ou extrai
Forma
gzip [OPTION]... [FILE]...
Parâmetros
-c grava o arquvo compactado na saída-padrão e retém o arquivo original
-d descompacta o arquivo
-f sobrescreve arquivos existentes
-l lista o conteúdo de arquivo compactado
-t testa a integridade do arquivo compactado
-r compacta de forma recursiva
-v verbose modo
Exemplos
gzip arquivo.odt
gzip -9 arquivo.odt
gzip -d arquivo.gz
gzip -l arquivo.gz
gzip arquivo.gz -c ~/bkp.gz
gzip -v arquivo.gz -c ~/bkp.gz
gzip -r ~/* -c -v ./bkp.gz
82. Comandos de compactação
Comando
bzip – Arquiva vários arquivos em um ou extrai
Forma
gzip [OPTION]... [FILE]...
Parâmetros
-c grava o arquvo compactado na saída-padrão e retém o arquivo original
-d descompacta o arquivo
-f sobrescreve arquivos existentes
-l lista o conteúdo de arquivo compactado
-t testa a integridade do arquivo compactado
-r compacta de forma recursiva
-v verbose modo
Exemplos
tar -zcvf exemplo.tar.gz exemplo/
tar -ztvf exemplo.tar.gz exemplo/
tar -zxvf exemplo.tar.gz
tar -zxvf exemplo.tar.gz -C other_folder/
83. Comandos de procura
Comando
which – Mostra onde está o arquivo executável
Forma
which [options] [--] programname [...]
Exemplos
which ls
which gimp
Comando
whereis – Mostra todos os diretórios que contem no path o termo procurado
Forma
whereis [ -sbmu ] [ -SBM dir ... -f ] name...
Exemplos
whereis ls
whereis cat
84. Comandos de procura
Comando
find – procura arquivos no disco rígido
Forma
find [path...] [expression]
Parâmetros
-name procura por arquivos que tenham o nome
-max-depth <n> procura no máximo n diretório de profundidade
-user <user> procura arquivos possuídos pelo usuário
-group <group> procura arquivos possuídos pelo grupo
-type <x> procura por arquivos do tipo x
Tipos de arquivo
f arquivos
d diretórios
l links
Exemplos
find -type f -user demoncyber
find /home/zago/guiaz/ -name "*.pdf" -exec echo {} ; | grep samba
find / -perm +111 -type f
find /home/zago -name sa*
find /home/zago/guiaz/ -name "*.txt~" -exec rm {} ;
85. Comandos de procura
Comando
locate/updatedb – locate procura na base de dados gerada pelo updatedb
Forma
locate [OPTION]... [String]...
updatedb [OPTION]...
Parâmetros Locate
-U PATH procura à partir do caminho especificado
-r regex procura usando expressão regular
Parâmetros Updatedb
-u cria uma base de dados para o usuário local
Exemplos
locate arquivo.pdf
locate teste
locate lixo
88. Grep
Comando
grep – imprime as linhas comparando um padrão
Forma
grep [OPTION]... PATTERN [File]
Parâmetros Locate
-m N número maximo de entradas onde N é este número
-i Ignora case senstive
-v inverte a comparação
-n exibi o número da linha comparada
-c exibi o número de vezes que apareceu
Exemplos
grep 192.168.0.254 /var/log/messages
grep 192.168.0.1 -m 10 messages
grep -v 192.168.0.254 /var/log/messages
grep 192.168.0.1 -nm 10 messages
grep -c 192.168.0.254 /var/log/messages
89. Metacaracteres - EXPR
Representantes
. ponto um caracter qualquer
[...] lista lista de caracteres permitidos
[^...] lista ñ lista de caracteres proibidos
Quantificadores
? opcional zero ou um
* asterisco zero, um ou mais
+ mais um ou mais
{n,m} chaves de n até m
Âncoras
^ circunflêxo início da linha
$ cifrão fim da linha
b borda início ou fim de palavra
Outros
c escape total literal o caractere c
| ou ou um ou outro
(...) grupo delimita um grupo
1...9 retrovisor texto casa nos grupos 1..9
90. Exemplos - EXPR
Exemplos representantes
----
n.o não
.eclado teclado,Teclado
e.tendido estendido, estendido, entendido
12.30 12:30, 12 30, 12.30 , 12,30
<.> <B>, <i>, <p>
----
n[ãa]o não,nao
[Tt]eclado Teclado,teclado
e[ns]tendido estendido, entendido
12[:.,]30 12:30, 12.30 , 12,30
<[BIP]> <B> , <I> , <P>
<[BbIiPp]> <B> , <I> , <P>
12:[1-4][0-9] 12:10, 12:15, 12:43
[A-Z]bacate Abacate, Cbacate, Dbacate
[:upper:] caixa alta
[:lower:] caixa baixa
[:alpha:] caixa alta e caixa baixa
[:alnum:] caixa alta e caixa baixa ou de 0 à 9
[:blank:] espaço ou tab
[^] negação
[^[0-9]] nega de 0 a 9
91. Exemplos - EXPR
Exemplos Quantificadores
fala[r!]? falar, fala!, fala
</?[BPbp> </B>, </b>, </P>, </p>, <B>, <b>, <P>, <p>
6*0 0, 60, 606060, .....0, 6 é um numero maior que 0
bi*p bp, bip, bppp, b123p, p
[bi]*p bip, bbp, biiiiip,
^abacate todas as linhas que começa com abacate
abacate$ tudas as linhas que terminam em abacate
^$ linha vazia
92. Sed
Comando
sed – editor de fluxo de texto
Forma
sed [OPTION]... [Script]... [FILE]
Parâmetros
-n saída quieta
-e script seguido entre aspas
Script Pattern
/expression/ expressão regular
s/x/y/ substitui
/expression/p imprime
/expression/d deleta a linha da expressao
1d deleta a linha 1
1,10p imprime da primeira a décima linha
93. Exemplos - Sed
sed 's/.//' apaga o 1o caracter da frase
sed 's/.//4' apaga o 4o caractere da frase
sed 's/.{4}//' apaga os 4 primeiros caracteres
sed 's/.{4,}//' apaga no mínimo 4 caracteres
sed 's/.{2,4}//' apaga de 2 a 4 caracteres (o máx. que tiver)
sed '/padrão/d' apaga as linhas que contém o padrão
sed '/padrão1/,/padrão2/d" apaga um bloco de linhas
sed -n 5p arquivo mostra a linha 5 do arquivo arquivo
5 maneiras de emular o head
sed -n 1,10p
sed 1,10!d
sed 10q
sed 11,$d
sed -n 11,$!p
# imprime somente as linhas que se encaixam na expressão regular
sed -n '/regexp/p'
sed '/regexp/!d'
# imprime uma parte do arquivo que vai da expressão regular até o final do mesmo
sed -n '/regexp/,$p'
94. Treino - Sed
sed -n '8,12p'
sed '8,12!d'
sed -n '52p'
sed '52!d'
sed -n '/Iowa/,/Montana/p'
sed '/^$/d'
sed -n '45,50p'
96. Editor de texto Vim
● É um vi tunado
● É um editor de texto
modal
● Suporte a expressão
regular
● Suporta mais de 500
linguagens
● Possui auto completar
● Criador Bram Moolenar
-->
97. Comando vim
Comando
vim – comando para chamar o editor de texto vim
Forma
vim [arguments]... [FILE]....
Parâmetros
-u parâmetro para carregar um arquivo de configuração especifico do vim
+ abre na linha especificada caso não possua abre no final do arquivo
Exemplos
vim
vim vim.txt
vim +10 vim.txt
vim +/alinhamento vim.txt
98. Vim - Teclas
i Inserção de texto
<ESC> Comandos de manipulação de texto
: Comandos de manipulação arquivo
v Seleção visual de texto
/ Busca de padrões no texto
R Inserção sobrescrevendo
u undo
y cópia no modo visual
x recorta no modo visual
p cola
99. Vim – Comandos de sobrevivência
:w Salva
:q Sai
:wq Salva e sai
:w! Salva forçado
:q! Sai forçado
:wq! Salva e sai forçado
:help Acessa a ajuda
100. Vim – Manipulação de Janelas
^Wn Nova Janela
^Wn Dividir a Janela
^Wn^^ Dividir para #
^Wv Dividir verticalmente
^Wc Fechar
^Wo Fechar outra(s)
^WR Girar para cima
^Wr Girar para baixo
^W= Mesmo Tamanho
^W_ Altura Máxima
^W1_ Altura Minima
^W| Largura Máxima
^W1| Largura Minima
^WK Mover para cima
^WJ Mover para Baixo
^WH Mover para esquerda
^WL Mover para Direita
^W+ Aumenta o tamanho da janela selecionada
^W- Diminui o tamanho da janela selecionada
101. Vim – Comandos avançados
:e Abrir um arquivo
:sp file Abrir em outra janela
:enew Novo documento
:sav file Salvar como
:. Serve para repetir
:ggVG Seleciona tudo
;wqa Serve para salvar e sair
:qa Serve para sair somente
:! Comando do bash
:%! Substitui jogando no arquivo atual
:r! Substitui jogando no final deste arquivo
:left Alinhamento à direita
:right Alinhamento à esquerda
:center Alinhamento centralizado
:ls Lista os buffers
:buffer n Seguido do número do buffer que será aberto
:b nome Seguido do nome ou abreviação
:so Executa um script vim
102. Vim – Comandos avançados
:syntax on habilita o highlight de sintaxe, praticamente a única coisa
que eu utilizava para programar em outras IDEs mais completas
:set tabstop=4 configura a largura visível de tabulações com t
:set expandtab utiliza espaços ao invés de t para tabulação
:set shiftwidth=4 configura o número de espaços na tabulação
:set smarttab habilita facilidades na tabulação, útil para mim ao dar
backspace para remover tabulações com espaço
:set hls! Serve para Ativar / Desativar Realce de padrões
:set ic! Serve para Ativar / Desativar ignorar as letras maiúsculas
:set nu! Ativar a numeração de linhas
:set wrap! Serve para Ativar / Desativar quebra de linhas
:set ai! Ativa a auto-indenização
:set number mostra o número das linhas
104. Vim – Criando um script vim
cd ~
vim demoncyber.vim
~/demoncyber.vim :
set number
set autoindent
set tabstop=2
vim ~.vimrc
so ~./demoncyber.vim
cp demoncyber.vim ~/.vim/plugins/
vim
Agora o próximo passo e personalizar o seu arquivo de vim quando tiver
algum tempo ( hehe enquanto vcs brincam com isso vou tomar café =] )
105. Vim – Instalando Plugin
- Onde procurar o seus plugins
http://www.vim.org/scripts/
- Depois de encontrado o script a instalação em geral se procede colocando o
arquivo de scrpt.vim dentro da pasta $HOME/.vim/plugin ou
/usr/share/vim/vim71/plugins/
Exemplo instalando o tabbar
wget http://www.vim.org/scripts/download_script.php?src_id=4976
mv download_script.php?src_id=4976 tabbar.vim
mkdir -p .vim/plugins
mv tabbar.vim .vim/plugins/
plugin instalado =]
( agora brinquem de ficar instalando plugins outro café =] )
108. Histórico de man
● - Criado em novembro de 1971, por Ken Thompson e
Denis Ritchie
● - Utiliza as macros e o padrão troff
● - São arquivos do tipo ASCII
● - E para todos eu digo RTFM
● - Existem duas vertentes do man
● - O man 1.6f que o mantenedor é o Federico Lucifredi
( BSD man )
● - O man-db-version que é mantido pela gnu
● - Arquivos ficam localizados em /usr/man/
● - Nomes dos arquivos.sessão.gz ou não
● - MANPATH
109. Sessões do man
● 1 comandos de usuário
● 2 chamadas do sistema
● 3 chamadas de bibliotecas
● 4 dispositivos
● 5 formatos de arquivo
● 6 jogos
● 7 diversos
● 8 comandos de administração do sistema
110. Estrutura do man
● NAME Nome do programa - seguido de uma linha de
descrição
● SYNOPSIS Estrutura do comando listado no man
● DESCRIPTION Texto de descrição do comando
● EXAMPLES Sessão de exemplo
● SEE ALSO Lista de comandos relacionados
● Outras opções
● OPTIONS, EXIT STATUS, ENVIRONMENT, KNOWN
BUGS, FILES, AUTHOR, REPORTING BUGS,
HISTORY and COPYRIGHT.
111. Chaves do man
● Chaves utilizadsa
● ." linha com comentário
● .TH - linha inicial do manual
● .SH - começa sessão
● .B - ?
● .I - sublinhado
● .IP - uma tabulação
● .IP Negrito
● .RS - descrição do arquivo de configuração
112. Mais chaves do man
● .B negrito
● .BI Negrito com italico
● .BR negrito com fonte alternativa
● .I Itálico
● .IB Itálico com negrito
● .IR Romano alternativo com itálico
● .RB Romano alternativo com negrito
● .RI Romano alternativo com itálico
● .SM Fonte pequena
● .SB Fonte pequena com negrito
113. Ferramentas para trabalhar com
man
● c2man
● help2man
● pod2man
● txt2man
● whichman
● txt2tags
● rman
● man2html
● db2man
● docbook
114. Exemplo criado com o pod2man
vim blog.8
blog.8:
=head1 NAME
blog - Teste pod2man
=head1 SYNOPSIS
blog [te] ...
blog -h
=head1 DESCRIPTION
Como criar um man, usando Perl::Man através do pod2man.
115. Exemplo criado com o pod2man
blog.8:
=head1 OPTIONS
B<-t> tenha calma
B<-e> está acabando
=head1 EXAMPLES
Agora ... realmente esta no fim:
=head1 AUTHOR
Marco Carvalho de Oliviera demoncyber@gmail.com
=head1 SEE ALSO
pod2man(<F4>)
116. Exemplo criado com o pod2man
pod2man --section=8 --release="27 Setembro 2006" --center="FreeBSD
System Manager's Manual" --date="27 Setembro 2006" blog.pod > blog.8
less blog.8