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 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
15 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
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 ?
- 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
-
20 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
21 GNU/LINUXSegunda práctica
Unicode -gt 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
22 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
23 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)
24 GNU/LINUXTerceira práctica
Já podemos convertir o ficheiro codificado em
Unicode a Latin cat ElQuijote.txt
./UnicodeToLatin.x gt ElQuijote_latin.txt
25 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.txt grep Quijote wc
26 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)
27 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
28 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
29 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 10 cat
ElQuijote.txt ./linhas2.x 10 33 escreve da
linha 10 à linha 33
Solução ((N 2 - 1 1)) head -2 tail
-N
30 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
31 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
32 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.