Title: Tema 1 Introdu
1Tema 1Introdução a Linux
- Pablo Gamallo Otero
- http//gramatica.usc.es/gamallo/
2PLANO
- Software livre
- Alguns comandos do shell de GNU/LINUX
3Bibliografia
- Jordi Mas i Hernández (2007), Software Libre,
Biblos, A Coruña. - http//aurelio.net/shell/
4Software 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
5Software 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)
6Software 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, ...)
7Software 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
8Software 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, ...)
9Software livre
Outro software livre conhecido
- - 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.
- Apacheo 70 dos servidores web em 2005 usavam
este software
10Software 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.
11Sistema 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.
12 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
13 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á gt 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)
14 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
15 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
16 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.o
rg/ - 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
17 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
18 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
19 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
20 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 -c
2. Cria um ficheiro UnicodeToLatin.x contendo o
seguinte comando iconv -f UTF-8 -t ISO-8859-1
-c
21 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)
22 GNU/LINUXTerceira práctica
Já podemos convertir o ficheiro codificado em
Latin 1 a Unicode cat ElQuijote.txt
./LatinToUnicode.x gt ElQuijote_Unicode.txt
23 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, ...
Comando grep selecciona as linhas do texto
que contenham uma sequência de caracteres (ou
string) específica
cat ElQuijote_Unicode.txt grep Quijote wc
24 GNU/LINUXOutros comandos de interesse
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)
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)
25 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
26 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
27 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
10 cat ElQuijote_Unicode.txt ./linhas2.x 10
33 escreve da linha 10 à linha 33
Solução ((N 2 - 1 1)) head -2 tail
-N
28 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
29 GNU/LINUX Mais práticas
Podedes praticar mais em http//aurelio.net/she
ll/apostilha-introducao-shell.pdf http//es.tldp.
org/Manuales-LuCAS/AA_Linux_colegio-1.1/AA_Linux_c
olegio-1.1-html/x3772.htm http//www.ppgia.pucpr.
br/maziero/ensino/sei/shell-bash-basico.html htt
p//www.openslack.org/piterpk/artigos/aposhell.ps
30 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.