30
Tema 1 Introdução a Linux Pablo Gamallo Otero http://gramatica.usc.es/~gamallo/

Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Embed Size (px)

Citation preview

Page 1: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Tema 1Introdução a Linux

Pablo Gamallo Oterohttp://gramatica.usc.es/~gamallo/

Page 2: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

PLANO

Software livre

Alguns comandos do shell de GNU/LINUX

Page 3: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Bibliografia

Jordi Mas i Hernández (2007), Software Libre, Biblos, A Coruña.

http://aurelio.net/shell/

Page 4: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Software livre

código fonte = receita de cozinha

- Sem acesso ao código fonte, só podemos usar o software, não podemos ver como está feito ou introduzir melhoras.

- O software livre permite o acesso ao código fonte (receita)

- A filosofia do software livre provém da ética hacker: partilhar os resultados com o resto da comunidade

Page 5: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Software livre

- Aparece a microinformática (princípios dos 80)

- Aparecem as primeiras companhias de software

- Aparece o código fechado ou privativo(o software se vende sem o código fonte)

Page 6: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Software livre

- Em 1985, Richard Stallman funda a Free Software Foundation, com o objectivo de construir um sistema operativo Unix livre: GNU.

- Stallman promulga a liberdade de melhorar o software e fazer públicas as melhoras aos demais de modo que toda a comunidade se poda beneficiar.

- Stallman utiliza os termos “privativo” e “proprietário” para refererir-se aos programas que não são livres (Adobe Acrobat, Windows, ...)

Page 7: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Software livre

software livre NÃO É software gratuitoGratuito Comercial

Código aberto Sofware livre Ex. navegador Firefox

Sofware comercialEx. Linux Mandriva

Código privativo Software privativoEx. Internet Explorer

Software privativo comercialEx. Microsoft Office

- free software / open source (código aberto)

- “free” significa livre e gratuito (as empresas não gostam)

- Open Software Iniciative: uso do termo “código aberto”

Page 8: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Software livre

- Em 1991, o estudante finlandês Linus Torvalds construi o núcleo do sistema operativo inspirado em Unix: Linux

- Aparecem as primeiras distribuições GNU/Linux que inserem no núcleo Linux as ferramenta do projecto GNU

- Stallman utiliza os termos “privativo” e “proprietário” para refererir-se aos programas que não são livres (Adobe Acrobat, Windows, ...)

Page 9: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Software livre

- Escritórios gráficos do sistema Linux: - KDE (liberou o código no 2000)- GNOME (sempre usou código aberto)

- Netscape / Mozilla / Firefoxem 1998, Netscape libera o seu navegador.

- OpenOffice.orgem 1999, Star Office é liberado e começa o projecto OpenOffice.

Outro software livre conhecido

- Apacheo 70% dos servidores web em 2005 usavam este software

Page 10: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Software livre

Tipos de licenças:

- GPL (General Public License): regula software com código aberto, de uso e distribuição gratuitos, mas impede que se redistribua numa versão comercial e/ou com código proprietário

- freeware: uso e distribuição gratuitos, mas o código não se pode modificar (não é código aberto)

- shareware: permite-se que o usuário use e avalie o software durante um período de tempo determinado antes de pedir ao usuário que se registre e pague.

Page 11: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

Sistema operativo GNU/LINUX

3 componentes:

- kernel: o núcleo do sistema operativo (o Linux de Linus Tovald)

- shell: interface entre o usuário e o kernel

- aplicações: As diferentes distribuições de GNU/Linux diferenciam-se polo tipo de aplicações que incorporam ao sistema.

Page 12: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXCaracterísticas

- multitarefa

- multiusuário: vários usuários podem utilizar o sistema ao mesmo tempo

- multiplataforma

- maior estabilidade em relação a Windows

- não precisa ser reiniciado devido à instalação de programas ou configuração de periféricos

- não existem vírus

- permite o acesso a discos formatados por outros sistemas operativos

Page 13: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXAlguns comandos do shell

- ls (lista os ficheiros e subdirectórios do directório actual)

- pwd (rota actual)

- mkdir (criar um subdirectório)

- cd (câmbio de directório)

- echo “olá” > prova.txt (criar um ficheiro de texto)

- cp, mv (copiar, mover e renomear ficheiros)

- rm (borrar ficheiros)

- cat (ler o conteúdo de um ou vários ficheiros de entrada)

- wc (conta linhas, palavras e caracteres dos ficheiros de entrada)

Page 14: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXPrimeira práctica

- cria o subdirectório “provas”

- coloca-te no subdirectório provas

- cria nesse directório um ficheiro “prova.txt” que contenha o texto “isto é uma prova”

- copia o ficheiro “prova.txt” criando outro chamado “prova2.txt”

- renomea o ficheiro “prova.txt” como “prova1.txt”

- lê o conteúdo do ficheiro “prova1.txt”

- conta as linhas, palavras e caracteres de “prova1.txt”

- borra o ficheiro “prova2.txt”

Page 15: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXPrimeira práctica

Fai o mesmo utilizando ferramentas do sistema gráfico e editores de texto como

Kate e OpenOffice

- Para listar, mover-te na hierarquia de directórios e criar novos

subdirectórios, utiliza KONKEROR

- Para criar novos ficheiros, utiliza o editor Kate

- Para contar palavras e caracteres, utiliza OpenOffice

Page 16: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXSegunda práctica

Objectivo:Procurade “El Quijote” por Internet,

guardade o ficheiro no directório “Corpus”

visualizade o ficheiro na consola

e contade as palavras e caracteres do texto

- busca com Firefox no site http://www.gutenberg.org/

- borra o metatexto que não pertence ao livro de Cervantes

- fai a contagem com OpenOffice e com o comando wc

- fazede o mesmo com cat usando a técnica dos pipes “|”

- provade também o comando more

Page 17: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXSegunda práctica

O shell permite a construção de comandos complexos através da combinação de vários comandos simples. O operador "|", conhecido como pipe, ou tubo, permite conectar a saída de um comando à entrada de outro.

- visualizade o ficheiro: cat ElQuijote.txt

- visualizade o ficheiro pantalha a pantalha:more ElQuijote.txt

- Contade as linhas, palavras e bytes dum ficheiro:wc ElQuijote.txt

Page 18: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXSegunda práctica

O shell permite a construção de comandos complexos através da combinação de vários comandos simples. O operador "|", conhecido como pipe, ou tubo, permite conectar a saída de um comando à entrada de outro.

cat ElQuijote.txt | more

cat ElQuijote.txt | wc

Page 19: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXSegunda práctica

Como está codificado o ficheiro ElQuijote.txt ?

- lê o ficheiro com o comando cat - comproba a codificação: “file --mime”- a codificação é Latin 1 (ISO-8859-1).

- como o comando cat da shell lê o texto como se estivesse

codificado em Unicode, devemos convertir o texto do ficheiro

ao código Unicode (UTF-8)

cat ElQuijote.txt | iconv -f ISO-8859-1 -t UTF-8 -c

Na seguinte prática, simplificaremos o procedimento

Page 20: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXTerceira práctica

Objectivo:Cria 2 ficheiros executáveis:

- de Latin 1 a Unicode

- de Unicode a Latin 1

1. Cria um ficheiro LatinToUnicode.x contendo o seguinte comando:

iconv -f ISO-8859-1 -t UTF-8 -c2. Cria um ficheiro UnicodeToLatin.x contendo o seguinte comando:

iconv -f UTF-8 -t ISO-8859-1 -c

Page 21: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXTerceira práctica

Podemos dar três tipos de permissões aos ficheiros:- Podem ser lidos,- Podem ser escritos- Podem ter código executável

chmod +r ficheiro (permite a leitura)

chmod +w ficheiro (permite a escrita)

chmod +x ficheiro (permite a execução)

Page 22: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXTerceira práctica

Já podemos convertir o ficheiro codificado em Latin 1 a Unicode:

cat ElQuijote.txt | ./LatinToUnicode.x > ElQuijote_Unicode.txt

Page 23: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXQuarta práctica

Objectivo: Conta o número de ocorrências das expressões:“Quijote”, “Don Quijote”, “Sancho”, “Sancho Panza”, “Dulcinea”, “Dulcinea del Toboso”, ...

cat ElQuijote_Unicode.txt | grep “Quijote” | wc

Comando “grep”: selecciona as linhas do texto que contenham uma sequência de caracteres (ou string) específica

Page 24: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUXOutros comandos de interesse

head -N (escreve as primeiras N linhas do texto)

tail -N (escreve as últimas N linhas do texto)

head -N | tail -1 (escreve a N linha)

head -5 (escreve as primeiras 5 linhas do texto)

tail -11 (escreve as últimas 11 linhas do texto)

head -12 | tail -1 (escreve a linha 12)

Page 25: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUX Quinta práctica

Objectivo: Criar um ficheiro executável, chamado “linha.x”, que escreva a linha do texto que lhe digamos.

cat ElQuijote_Unicode.txt | ./linha.x 5 (escreve a linha 5 do texto)

Solução:

head -$1 | tail -1

Page 26: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUX Sexta práctica

Objectivo: Criar um ficheiro executável, chamado “linhas.x”, que escreva as linhas do texto que lhe digamos.

cat ElQuijote_Unicode.txt | ./linhas.x 10 3 escreve as 3 últimas linhas até chegar à linha 10 (de 8 a 10)cat ElQuijote_Unicode.txt | ./linhas.x 33 10 escreve as 10 últimas linhas até chegar à linha 33 (de 24 a 33)

Solução:

head -$1 | tail -$2

Page 27: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUX Séptima práctica

Objectivo: melhorar o “linhas.x” para criar linhas2.x

cat ElQuijote_Unicode.txt | ./linhas2.x 3 10 escreve da linha 3 à linha 10cat ElQuijote_Unicode.txt | ./linhas2.x 10 33 escreve da linha 10 à linha 33

Solução:

((N = $2 - $1 + 1))head -$2 | tail -$N

Page 28: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUX Séptima práctica

Outra maneira de fazer linhas2.x

((N = $2 - $1 + 1))linhas.x $2 $N

Colocade “linhas.x” num directório /bin

Page 29: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUX Mais práticas

Podedes praticar mais em:

http://aurelio.net/shell/apostilha-introducao-shell.pdf

http://es.tldp.org/Manuales-LuCAS/AA_Linux_colegio-1.1/

AA_Linux_colegio-1.1-html/x3772.htm

http://www.ppgia.pucpr.br/~maziero/ensino/sei/shell-bash-basico.html

http://www.openslack.org/~piterpk/artigos/aposhell.ps

Page 30: Tema 1 Introdução a Linux Pablo Gamallo Otero gamallo

GNU/LINUX Comandos mais interessantes para processamento de texto

cat : concatena diversos arquivos.

tac : idem, mas inverte a ordem das linhas.

more : permite a paginação.

tr : troca de caracteres entre dois conjuntos.

head : seleciona as "n" linhas iniciais.

tail : seleciona as "n" linhas finais.

wc : conta o número de linhas, palavras e bytes.

sort : ordena as linhas segundo critérios ajustáveis.

uniq : elimina linhas repetidas, deixando uma soa linha.

sed : para operações complexas de strings (trocas, etc).

grep : selecciona linhas contendo uma determinada expressão.

cut : selecciona colunas do fluxo de entrada.

rev : reverte a ordem dos caracteres de cada linha.