Tema 1 Introdução a Linux
description
Transcript of Tema 1 Introdução a Linux
![Page 1: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/1.jpg)
Tema 1Introdução a Linux
Pablo Gamallo Oterohttp://gramatica.usc.es/~gamallo/
![Page 2: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/2.jpg)
PLANO
Software livre
Alguns comandos do shell de GNU/LINUX
![Page 3: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/3.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/4.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/5.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/6.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/7.jpg)
Software livre
software livre NÃO É software gratuito
- 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”
Gratuito 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
![Page 8: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/8.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/9.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/10.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/11.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/12.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/13.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/14.jpg)
GNU/LINUXPrimeira práctica
- cria o directório “meu_nome”
- coloca-te no directório meu_nome
- cria nesse directório dous subdirectorios: “scripts” e “corpus”
- cria dentro de corpus o ficheiro “prova.txt” com o texto “isto é uma prova”
- lê o conteúdo do ficheiro prova.txt
- conta as linhas, palavras e caracteres de “prova.txt”
- borra o ficheiro “prova.txt”
![Page 15: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/15.jpg)
GNU/LINUXPrimeira práctica
Fai o mesmo utilizando ferramentas do sistema gráfico e editores de texto como
gedit 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 gedit
- Para contar palavras e caracteres, utiliza OpenOffice
![Page 16: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/16.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/17.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/18.jpg)
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](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/19.jpg)
GNU/LINUXSegunda práctica
Como está codificado o ficheiro ElQuijote.txt ?
- Comprova a codificação com o camando file :
file ElQuijote.txt
Que devolve esta informação:“UTF-8 Unicode English text with CRLF line terminators”
- Isto significa que a codificação é Unicode UTF-8, mas tem saltos de linha CR e LF
![Page 20: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/20.jpg)
GNU/LINUXSegunda práctica
Eliminar saltos de linha CR:
Dos2Unix.x ElQuijote.txt
Tira fora os saltos de linha CR, próprios de sistemas alheos a linux, e fica com LF
![Page 21: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/21.jpg)
GNU/LINUXSegunda práctica
Unicode -> Latin
- lê o ficheiro com o comando cat - a codificação do ficheiro é Unicode (UTF-8).
- como vamos usar ferramentas que precissam ter texto codificado em
Latin (ISO-8859-1), então, devemos aprender a mudar a codificação:
cat ElQuijote.txt | iconv -f UTF-8 -t ISO-8859-1
Na seguinte práctica, simplificaremos o procedimento
![Page 22: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/22.jpg)
GNU/LINUXTerceira práctica
Objectivo:Cria 2 ficheiros executáveis:
- de Unicode a Latin 1
- de Latin 1 a Unicode
1. Cria um ficheiro UnicodeToLatin.x contendo o seguinte comando:
iconv -f UTF-8 -t ISO-8859-1
2. Cria um ficheiro LatinToUnicode.x contendo o seguinte comando:
iconv -f ISO-8859-1 -t UTF-8
![Page 23: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/23.jpg)
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 24: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/24.jpg)
GNU/LINUXTerceira práctica
Já podemos convertir o ficheiro codificado em Unicode a Latin:
cat ElQuijote.txt | ./UnicodeToLatin.x > ElQuijote_latin.txt
![Page 25: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/25.jpg)
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.txt | grep “Quijote” | wc
Comando “grep”: selecciona as linhas do texto que contenham uma sequência de caracteres (ou string) específica
![Page 26: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/26.jpg)
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 27: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/27.jpg)
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.txt | ./linha.x 5 (escreve a linha 5 do texto)
Solução:
head -$1 | tail -1
![Page 28: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/28.jpg)
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.txt | ./linhas.x 10 3 escreve as 3 últimas linhas até chegar à linha 10 (de 8 a 10)cat ElQuijote.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 29: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/29.jpg)
GNU/LINUX Séptima práctica
Objectivo: melhorar o “linhas.x” para criar linhas2.x
cat ElQuijote.txt | ./linhas2.x 3 10 escreve da linha 3 à linha 10cat ElQuijote.txt | ./linhas2.x 10 33 escreve da linha 10 à linha 33
Solução:
((N = $2 - $1 + 1))head -$2 | tail -$N
![Page 30: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/30.jpg)
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 31: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/31.jpg)
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 32: Tema 1 Introdução a Linux](https://reader036.fdocument.pub/reader036/viewer/2022062517/56813b2b550346895da3f20b/html5/thumbnails/32.jpg)
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.