Upload
marco-oliveira
View
186
Download
7
Embed Size (px)
DESCRIPTION
Curso básico ministrado em julho de 2008 no grupo de pesquisa em software livre Colméia, na instituição UDESC de joinville. XP o hardware que o pessoal estava acessando via XDMCP era o meu legado notebook um toshiba satellita A20, pentium 4 2.6 GHZ com 512 de RAM rodando Slackware.... momentos nostálgicos .. foram mais de 20 horas de curso.
Citation preview
GNU/LINUX Básico/Intermediário
“Software livre não quer dizer cerveja de graça” – Richard Stallman
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 [email protected]
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
Personalidades do Software Livre
“Stay Hungry, Stay Foolish” - Steve Jobs
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
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
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
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
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
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
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 ?
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
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 ....
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
Marcelo Tosatti
● Antigo mantenedor do kernel 2.4
● Trabalha na RedHat no projeto do laptop de 100 dólares
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
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
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
Julio Neves
● Autor do livro Shell Script Linux
● Considera o primeiro hacker brasileiro
● Ministra vários cursos de shellscript e palestras
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
Alfredo Kengi Kojima
● Criador do Windowmaker
● Criador do Synaptic● Trabalha no MySQL● Exímio programador
Exercício sobre Personalidades
É hora da prova =O !!! 10 minutos e um café =]
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
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
Termos Hackers
● Black Hat● White Hat● Script Kid● Lammer● Newbie● Cracker● Geek● Phreakers
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
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
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
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;
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
Código Fechado
● Fortemente iniciado pelo documento “open-letter-to-hobbyists”
● EULA - End User License Agreement
● Direito do autor● DLL e Binários
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
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
Licenças
● BSD● Apache● X● GPL● LGPL● Creative Commons● GFDL
Exercícios == Café =]
Outch Leis filosofia blahhh !!! 0.o pq eu tenho que estudar isso.... ????
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
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...
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
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...
Minix
● BSD License● Micro Kernel● Sistema de arquivos
próprio● Livro System
Operational● Voltado para cientistas
da computação
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
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
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
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
Exercício =]
É preciso muito exercício para se conseguir alcançar bons níveis de
apredizado.... ( daaar Marco )
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
Onde encontrar ajuda
● Whatis● Apropos● Man● Info● /usr/doc/nome_programa/● www.tldp.org● /usr/doc/Linux-FAQs● /usr/doc/Linux-HOWTOs
Comandos do bin
Sessão dos comandosManipulação de diretórios: cd,ls,pwd,mkdir,rmdir,tree,dirnameManipulação de arquivos: cat,tac,rm,mv,cp,touch,stat,file,ldd,basenameManipulaçào de texto: cut,head,tail,sort,tr,nl,diff,wc,grep,sedPagers: more,less, ( especial screen )Compactação: tar,gzip,bzipComandos de procura: which, whereis,find,locate/updatedb
Manipulando diretóriosComando
cd – change directory, altera o diretório
Formacd [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
Exemploscdcd /usr/share/cd ../cd /cd -
Manipulando diretóriosComando
ls - lista os arquivos de um determinado diretório
Formals [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 =]
Exemplosls ls -Xls -Salhr
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
Exemplosls imagem*.jpgls imagem[1].pngls image[1-9].jpgls imagem?.pngls imagen??.pngls [fi]*.pngls [fi]*[1]?.png
Manipulando diretóriosComando
pwd – mostra o diretório corrente
Formapwd [OPTION]
Exemplospwd
Manipulando diretóriosComando
mkdir – cria um diretório
Formamkdir [OPTION] DIRECTORY...
Parâmetros-p cria os diretórios pais se necessário-v modo verbose
Exemplosmkdir testemkdir ~/images/linuxmkdir ../lixomkdir /tmp/minhas/imagens/legais
Manipulando diretóriosComando
rmdir – apaga um diretório vazio
Formarmdir [PATH]
Exemplosrmdir /tmp/lixo/
Manipulando diretóriosComando
tree – lista os arquivos em forma de árvore
Formatree [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 )
Exemplostree -L 3 /hometree -ad -L 3 /hometree -P jpg -L 10tree -I png -L 10
Manipulando diretóriosComando
dirname – mostra o nome do diretório do arquivo
Formadirname [FILE]...
Parâmetros
Exemplosdirname /usr/lib/firefoxdirname `which gimp`
Manipulando arquivosComando
cat – imprime o conteúdo de um arquivo
Formacat [OPTION] [FILE]...
Parâmetros-A Exibe todos os caracteres especiais-n Númera as linhas-b Númera apenas as linhas não vazias
Exemploscat -A meu_cat.txtcat -n meu_cat.txtcat -b meu_cat.txt
Manipulando arquivosComando
tac – imprime o conteúdo de um arquivo de forma reversa
Formatac [OPTION] [FILE]...
Parâmetros
Exemplostac -A meu_cat.txttac -n meu_cat.txttac -b meu_cat.txt
Manipulando arquivosComando
rm – remove um arquivo
Formarm [OPTION] [FILE]...
Parâmetros-i pergunta antes de remove-v modo verbose-r apaga de forma recursiva-f força a remoção
Exemplosrm /tmp/lixorm -rfv /home/pasta_com_conteudo_dentro/
Manipulando arquivosComando
mv – move um arquivo de um diretório para outro ou renomeia ele
Formamv [OPTION]... [-T] SOURCE DEST
Parâmetros-v modo verbose
Exemplosmv /tmp/lixo /tmp/meu_novo_lixomv /tmp/lixo /tmp/outro_lugar/mv -v /tmp/arquivo_qualquer /home/usuario/
Manipulando arquivosComando
cp – copia um arquivo de um diretório para outro
Formacp [OPTION]... [-T] SOURCE DEST
Parâmetros-r cópia recursiva-a mantém os atributos dos arquivos-v modo verbose
Exemploscp /tmp/lixo /tmp/meu_novo_lixocp /tmp/lixo /tmp/outro_lugar/cp -v /tmp/arquivo_qualquer /home/usuario/cp -r /tmp/minha_pasta /tmp/outro_lugarcp -ra /tmp/minha_pasta /tmp/outro_lugar
Manipulando arquivosComando
touch – atualiza a ultimo acesso do arquivo ou cria um arquivo caso ele não exista
Formatouch [OPTION]... [FILE]...
Parâmetros-a altera o última acesso ao arquivo-m altera o última modificação do arquivo-d coloca de forma literal
Exemplostouch -d '1 May 2005 10:22' /tmp/testetouch -d '14 May' file9 /tmp/teste
Manipulando arquivosComando
stat – informa status sobre o arquivo, como ultimo acesso, quando foi modificado ou alterado
Formastat [OPTION]... [FILE]...
Parâmetros-f informa somente o status do sistema do arquivo
Exemplosstat /etc/fstabstat -f /etc/fstab
Manipulando arquivosComando
file – informa o tipo do arquivo
Formafile [OPTION]... [FILE]...
Parâmetros-b forma abreviado do tipo de arquivo
Exemplosfile /etc/fstabfile `which vim`file /bin/egrepfile -b /bin/zcat
Manipulando arquivosComando
ldd – imprime as dependências das bibliotecas
Formaldd [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
Exemplosldd /bin/lsldd -v `which ls`ldd /etc/fstabldd `which gimp`ldd -u `which gimp`
Manipulando arquivosComando
basename – imprime o nome do arquivo sem lista o diretório
Formabasename [FILE]...
Parâmetros
Exemplosbasename /usr/lib/firefox
Manipulando arquivosComando
fuser – mostra os processos que possuem determinados arquivos abertos ou portas
Formafuser [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
Exemplosfuser -v 22/tcpfuser -u /fuser -vm /mnt/cdromfuser -km /mnt/cdrom
Processamento de textoComando
cut – recorta parte de um texto de um arquivo
Formacut [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.txtcut -f 2 -d : tesoura.txtcut -c 1-7 quadrados.txtcut -c 1-7,9-15 quadrados.txt
Processamento de textoComando
head – imprime uma quantidade de linhas a partir do começo do arquivo
Formahead [OPTION]... [FILE]...
Parâmetros-n NUMBER lista a partir do começo do arquivo até a linha especificada
Exemplos
head /var/log/messageshead -n 10 /var/log/messages
Processamento de textoComando
tail – imprime uma quantidade de linhas a partir do final do arquivo
Formatail [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/messagestail -f /var/log/messages
Processamento de textoComando
sort – organiza o arquivo por uma ordem definida
Formasort [OPTION]... [FILE]...
Parâmetros-f ignora o case sensitive-b ignora linhas em branco-r mostra de forma reversa
Exemplos
sort /etc/passwdsort -r /etc/passwdsort -fb /tmp/sequencia_nomes
Processamento de textoComando
tr – substitui um caracter por outro em um arquivo
Formatr [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 | sortcat /etc/fstab | tr -s " " | cut -f 1,3 -d " " | sort tr “\n” “\t” /etc/fstab
Processamento de textoComando
nl – númera as linhas
Formanl [OPTION]... [FILE]...
Parâmetros-b númera corpo por padrão-h númera cabeçalho por padrão
Tipos de padrãoa 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
Exemplosnl -b a /etc/passwdnl -b /proc/cpuinfo
Processamento de textoComando
diff – Exibi a diferença entre dois arquivos
Formadiff [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
Exemplosdiff original.txt revisado.txtdiff -f original.txt revisado.txtdiff arquivo arquivo~
Processamento de textoComando
wc – conta linhas, palavras e bytes de um arquivo
Formawc [OPTION]... [FILE]...
Parâmetros-c conta os bytes-m conta os caracteres-l conta linhas-w conta palavras
Exemploswc /etc/fstabwc -w /etc/fstabwc -c /etc/fstabwc -m /etc/fstabwc -l /etc/fstab
Comandos de paginaçãoComando
more – Exibi o arquivo de texto de forma paginada
Formamore [OPTION]... [FILE]...
Parâmetros-+ Number exibe o arquivo começando na linha especificada-s reduz múltiplas linhas em branco a uma única
Exemplosmore /usr/doc/glib-1.2.10/READMEmore /usr/doc/glib-1.2.10/INSTALL
Comandos de paginaçãoComando
less – Exibi o arquivo de texto de forma paginada
Formaless [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 regularn avança na procuraN volta na procura
Exemplosless /usr/doc/glib-1.2.10/READMEless /usr/doc/glib-1.2.10/INSTALL
Comandos de compactaçãoComando
tar – Arquiva vários arquivos em um ou extrai
Formatar [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
Exemplostar -zcvf exemplo.tar.gz exemplo/tar -ztvf exemplo.tar.gz exemplo/tar -zxvf exemplo.tar.gz tar -zxvf exemplo.tar.gz -C other_folder/
Comandos de compactaçãoComando
gzip – Arquiva vários arquivos em um ou extrai
Formagzip [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
Exemplosgzip arquivo.odtgzip -9 arquivo.odtgzip -d arquivo.gzgzip -l arquivo.gzgzip arquivo.gz -c ~/bkp.gzgzip -v arquivo.gz -c ~/bkp.gzgzip -r ~/* -c -v ./bkp.gz
Comandos de compactaçãoComando
bzip – Arquiva vários arquivos em um ou extrai
Formagzip [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
Exemplostar -zcvf exemplo.tar.gz exemplo/tar -ztvf exemplo.tar.gz exemplo/tar -zxvf exemplo.tar.gz tar -zxvf exemplo.tar.gz -C other_folder/
Comandos de procuraComando
which – Mostra onde está o arquivo executável
Forma which [options] [--] programname [...]
Exemploswhich lswhich gimp
Comandowhereis – Mostra todos os diretórios que contem no path o termo procurado
Formawhereis [ -sbmu ] [ -SBM dir ... -f ] name...
Exemploswhereis lswhereis cat
Comandos de procuraComando
find – procura arquivos no disco rígido
Formafind [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 arquivof arquivosd diretóriosl links
Exemplosfind -type f -user demoncyberfind /home/zago/guiaz/ -name "*.pdf" -exec echo {} \; | grep sambafind / -perm +111 -type ffind /home/zago -name sa*find /home/zago/guiaz/ -name "*.txt~" -exec rm {} \;
Comandos de procuraComando
locate/updatedb – locate procura na base de dados gerada pelo updatedb
Formalocate [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
Exemploslocate arquivo.pdflocate testelocate lixo
Expressão Regular
^:{1,4}.\(*$
Expressão Regular
● método formal de especificar um padrão
● 1943 neurologia ● g/RE/p● regex● curingas != expr
GrepComando
grep – imprime as linhas comparando um padrão
Formagrep [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
Exemplosgrep 192.168.0.254 /var/log/messages grep 192.168.0.1 -m 10 messagesgrep -v 192.168.0.254 /var/log/messages grep 192.168.0.1 -nm 10 messagesgrep -c 192.168.0.254 /var/log/messages
Metacaracteres - EXPRRepresentantes. 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
Exemplos - EXPRExemplos representantes----n.o não.eclado teclado,Tecladoe.tendido estendido, estendido, entendido12.30 12:30, 12 30, 12.30 , 12,30<.> <B>, <i>, <p>----n[ãa]o não,nao[Tt]eclado Teclado,tecladoe[ns]tendido estendido, entendido12[:.,]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
Exemplos - EXPRExemplos Quantificadoresfala[r!]? falar, fala!, fala</?[BPbp> </B>, </b>, </P>, </p>, <B>, <b>, <P>, <p>6*0 0, 60, 606060, .....0, 6 é um numero maior que 0bi*p bp, bip, bppp, b123p, p[bi]*p bip, bbp, biiiiip, ^abacate todas as linhas que começa com abacateabacate$ tudas as linhas que terminam em abacate^$ linha vazia
SedComando
sed – editor de fluxo de texto
Formased [OPTION]... [Script]... [FILE]
Parâmetros-n saída quieta-e script seguido entre aspas
Script Pattern/expression/ expressão regulars/x/y/ substitui /expression/p imprime/expression/d deleta a linha da expressao1d deleta a linha 11,10p imprime da primeira a décima linha
Exemplos - Sedsed 's/.//' apaga o 1o caracter da frasesed 's/.//4' apaga o 4o caractere da frasesed 's/.\{4\}//' apaga os 4 primeiros caracteressed 's/.\{4,\}//' apaga no mínimo 4 caracteressed '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ãosed '/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 headsed -n 1,10psed 1,10!dsed 10qsed 11,$dsed -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'
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'
Editor de texto VIM
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
-->
Comando vimComando
vim – comando para chamar o editor de texto vim
Formavim [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
Exemplosvim vim vim.txtvim +10 vim.txtvim +/alinhamento vim.txt
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 textoR Inserção sobrescrevendou undoy cópia no modo visualx recorta no modo visualp cola
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
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
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
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
Vim
● Arquivos de configuração ~/.vim/vimrc /usr/share/vim/vim71/plugins/
● http:/www.vim.org/scripts● Os arquivos de script
vim tem extensão .vim
Vim – Criando um script vimcd ~vim demoncyber.vim
~/demoncyber.vim :set numberset autoindentset 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é =] )
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=4976mv download_script.php\?src_id\=4976 tabbar.vimmkdir -p .vim/pluginsmv tabbar.vim .vim/plugins/
plugin instalado =]
( agora brinquem de ficar instalando plugins outro café =] )
Vim
Exercício sobre vim, nada de colar >.<
Man
RFM please!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
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
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
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.
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
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
Ferramentas para trabalhar com man
● c2man● help2man● pod2man● txt2man● whichman● txt2tags● rman● man2html● db2man● docbook
Exemplo criado com o pod2manvim 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.
Exemplo criado com o pod2manblog.8:
=head1 OPTIONS
B<-t> tenha calmaB<-e> está acabando
=head1 EXAMPLES
Agora ... realmente esta no fim:
=head1 AUTHOR
Marco Carvalho de Oliviera [email protected]
=head1 SEE ALSO
pod2man(<F4>)
Exemplo criado com o pod2manpod2man --section=8 --release="27 Setembro 2006" --center="FreeBSD System Manager's Manual" --date="27 Setembro 2006" blog.pod > blog.8
less blog.8