Post on 06-Jan-2016
description
Tema 1Introdução a Linux
Pablo Gamallo Oterohttp://gramatica.usc.es/~gamallo/
PLANO
Software livre
Alguns comandos do shell de GNU/LINUX
Bibliografia
Jordi Mas i Hernández (2007), Software Libre, Biblos, A Coruña.
http://aurelio.net/shell/
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
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)
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, ...)
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
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, ...)
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
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.
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.
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
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)
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”
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
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
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
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
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
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
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
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
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)
GNU/LINUXTerceira práctica
Já podemos convertir o ficheiro codificado em Unicode a Latin:
cat ElQuijote.txt | ./UnicodeToLatin.x > ElQuijote_latin.txt
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
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)
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
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
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
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
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
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.