Apostila de Noções de Informática – CEF 2012 Professor: Darliton Carvalho SISTEMA OPERACIONAL LINUX 1. INTRODUÇÃO O Linux é um sistema operacional criado em 1991 por Linus Torvalds na universidade de Helsinky na Finlândia. É um sistema Operacional de código aberto distribuído gratuitamente pela Internet. Seu código fonte é liberado como Free Software (software gratuito) o aviso de copyright do kernel feito por Linus descreve detalhadamente isto e mesmo ele está proibido de fazer a comercialização do sistema. O sistema segue o padrão POSIX que é o mesmo usado por sistemas UNIX e suas variantes. Assim, aprendendo o Linux você não encontrará muita dificuldade em operar um sistema do tipo UNIX, FreeBSD, HPUX, SunOS, etc., bastando apenas aprender alguns detalhes encontrados em cada sistema. O Linux, atualmente, tem recebido apoio de várias empresas como Netscape, Digital, SUN, Intel e Oracle. Todas usam Linux e desenvolvem produtos para Linux. 2. DISTRIBUIÇÕES Algumas organizações voluntárias decidiram juntar os programas do Linux em \pacotes" próprios aos quais elas dão suporte. Esses pacotes sãoo chamados distribuições, dentre as mais famosas e usadas, destacamse: Debian, RedHat, Slackware, SuSE, Caldera e Stampede Uma distro é como se fosse uma “versão” do sistema. É errado chamar de versão porque cada distro tem suas versões ao longo do tempo, como 1.0, 2.0, ou 11.04, 11.10, etc. Na prática as distros acabam sendo vistas como sistemas diferentes, embora sejam variações de uma mesma base com programas comuns a todas. Os distros incluem o kernel, as ferramentas básicas, um ou mais ambientes gráficos (existem muitos outros além do KDE e GNOME), um sistema de instalação de programas e um papel de parede e visual característico. A distro não é só o visual, é o conjunto de programas e ferramentas que ela inclui. A facilidade de instalar programas e resolver problemas também definem outras características importantes. Na prática, é possível usar mais de um ambiente na mesma distro, como KDE, GNOME, Xfce, Lxde, etc. Você pode alternar entre eles ao fazer logoff, sair da sua conta e entrar novamente. LiveCD ou liveDVD é um conceito de sistema operacional que roda a partir de um CD ou DVD sem precisar instalá-lo. Imagens das distribuições Figura 1 – GNOME [email protected] Página 1 Apostila de Noções de Informática – CEF 2012 Professor: Darliton Carvalho Figura 2 – Ubuntu 3. CARACTERÍSTICAS - Multitarefa real - Multiusuário - Suporte a nomes extensos de arquivos e diretórios (255 caracteres) - Convivem sem conflito com outros sistemas operacionais (Windows, Netware, etc.) no mesmo computador. - Conectividade com outros tipos de plataformas: Sun, Macintosh, Sparc, PowerPc,Unix, Windows, DOS, etc. - Proteção entre processos executados na memória RAM - Suporte ha mais de 63 terminais virtuais (consoles) - Devido a modularização, os drivers dos periféricos e recursos do sistema podem ser carregados e removidos completamente da memória RAM a qualquer momento. - Não há a necessidade de se reiniciar o sistema após a modificar a configuração de qualquer periférico ou parâmetros de rede. Somente é necessário reiniciar o sistema no caso de uma instalação interna de um novo periférico, falha em algum hardware (queima do processador, placa mãe, etc.). - Não precisa de um processador potente para funcionar. - Utiliza permissões de acesso a arquivos, diretórios e programas em execução na memória RAM. - VIRUS NO LINUX! Em todos esses anos de existência, o número de registro de vírus no LINUX foi quase zero. Isto tudo devido a grande segurança oferecida pelas permissões de acesso do sistema que funcionam inclusive durante a execução de programas e o fato do código fonte ser aberto. - Suporte a dispositivos Plug-and-Play e dispositivos USB - Vários tipos de firewalls de alta qualidade e com grande poder de segurança de graça - O sistema de arquivos usado pelo Linux: Ext2, EXT3 e REISERFS - Permite a montagem de um servidor Web, E-mail, News, etc. com um baixo custo e alta performance. - Não é requerida uma licença para seu uso. O GNU/Linux é licenciado de acordo com os termos da GNU. - Por ser um sistema operacional de código aberto, você pode ver o que o código fonte faz e adaptá-lo as suas necessidades ou de sua empresa.. - “Todo programa para Linux é grátis” Não é porque é de código aberto que tem que ser de graça. Os programadores podem sim cobrar pelo que fizeram, embora seja raro na comunidade de desenvolvedores Linux independentes. É mais fácil achar sharewares para Windows ou Mac do que Linux. - “Todo programa para Linux é de código aberto” Algumas produtoras de software proprietário (fechado) podem lançar versões deles para Linux, sejam gratuitos ou não. Não é por isso que eles precisam ser open source. Qualquer um pode fazer programas fechados e pagos para Linux, desde que não use no código trechos de código de software livre com restrições no fechamento (caso dos que usam a licença GPL, muito comum em programas para Linux). - Linux roda em smartphones, especialmente com o sistema Android, do Google. - As urnas eletrônicas brasileiras também rodam Linux. A interface é personalizada, especial para a votação. [email protected] Página 2 Apostila de Noções de Informática – CEF 2012 Professor: Darliton Carvalho 4. SISTEMA DE ARQUIVOS O sistema de arquivos do Linux se caracteriza por uma estrutura hierárquica e de proteção dos arquivos. Ele é semelhante a maioria dos sistemas UNIX existentes O sistema de arquivos do Linux permite a prote_c~ao de arquivos em tr^es classes: 1. dono do arquivo 2. grupo do arquivo 3. outros (tirando o grupo e o dono do arquivo) Cada classe pode ter três proteções 1. leitura 2. escrita 3. execução A execução a essas permissões e o administrador do sistema que pode ler, escrever e executar todos os arquivos. / Diretório raiz Principais Comandos Estrutura de diretórios do Linux /bin arquivos executáveis (binários); /boot arquivos de inicialização; /dev arquivos de dispositivos de entrada/saída; /etc configuração do sistema da máquina local; /home diretórios dos usuários; /lib arquivos das bibliotecas compartilhadas; /mnt ponto de montagem de partição temporária; /root diretório local do superusuário (root); /sbin arquivos de sistema essenciais; /tmp arquivos temporários; /usr arquivos de acesso por usuários; /var informação variável. 4.1 PERMISSÕES drwxr-xr-x 16 paulo paulo 1024 set 10 20:30 OÆce40 drwxr-xr-x 12 paulo paulo 1024 set 16 16:36 SNNSv4.1 drwxr-xr-x 11 paulo paulo 1024 set 19 15:39 artigos -rw-r{r{ 1 paulo paulo 531 out 10 07:24 download -rw||- 1 paulo paulo 3130 out 10 07:06 fgv.old -rw-rw-r{ 1 paulo paulo 50316 out 10 06:33 mbox -rw||- 1 paulo paulo 6135 out 10 07:02 modem [email protected] Comandos Básicos do Linux man mostra informações sobre comandos em geral. $ man ls (informações sobre o comando ls) bdiff compara dois arquivos textos grandes. $ bdiff big1.txt big2.txt (mostra diferenças na tela) cal exibe um calendário. $ cal 2002 (exibe calendário de 2002) cat mostra o conteúdo e cria arquivos. $ cat arq.txt (mostra na tela o conteúdo de arq.txt) $ cat > novo.txt (digitação do texto) (cria arquivo via teclado) Ctrl_d cd muda de diretório. $ cd (vai para o diretório raiz do usuário) $ cd docs (vai para o sub-diretório docs) $ cd .. (volta um nível) chmod muda permissões de arquivos. proprietário: ugo – user, group, others permissão: rwx – read, write, execute clear limpa a tela. (análogo ao cls do DOS) $ clear cmp compara dois arquivos; mostra a localização (linha e byte) da primeira diferença entre eles. $ cmp arq1.txt arq2.txt (mostra resultado na tela) comm compara dois arquivos para determinar quais linhas são comuns entre eles. $ comm arq1.txt arq2.txt txt (mostra resultado na tela) cp copia arquivos. $ cp arq.txt arq2.txt (faz cópia de arq.txt com nome de arq2.txt) $ cp arq.tgz ~/ (copia arq.tgz para o diretório raiz do usuário) date retorna a data e a hora do sistema. $ date df mostra espaço usado, livre e capacidade partições/HD. $ df -k diff compara dois arquivos textos. $ diff arq1.txt arq2.txt (mostra diferença na tela) Página 3 Apostila de Noções de Informática – CEF 2012 Professor: Darliton Carvalho du relatório de uso do disco. $ du –sk ~ (lista subdiretórios do usuário, em Kbytes) env mostra a configuração das variáveis do sistema. $ env | more (mostra configuração por página) find procura um arquivo no HD. $ find / -name “arq.txt” –print (procura arq.txt a partir do raiz) finger mostra informações dos usuários. $ finger silva (mostra informações de todos usuários que têm silva) fold formata arquivos textos. $ fold –s –w60 arq.txt > arq2.txt (corta texto na coluna 60, mantendo “strings” inteiras) grep procura por uma determina “string”. $ grep linux arq.txt (busca “string” linux no arquivo arq.txt) gzip compacta arquivo. $ gzip arq.txt (compacta arquivo arq.txt _ arq.txt.gz) gunzip descompacta arquivo. $ gunzip arq.txt.gz (descompacta arquivo arq.txt .gz_ arq.txt) head exibe o início de um arquivo $ head –f arq.txt (mostra as 10 primeiras linhas de arq.txt) less mostra conteúdo de um arquivo. $ less letter.txt (mostra o conteúdo de letter.txt) logout sai da sessão atual. $ logout lpr imprime arquivo. $ lpr –Php4mv letter.ps (imprime letter.ps na impr. Hp4mv) ls lista arquivos. (mesma função que o dir do DOS) $ ls (lista nomes arquivos) $ ls –a (lista nomes arquivos ocultos) $ ls *.txt (lista todos os arquivos com extensão .txt) $ ls –l (mostra permissões, bytes, diretório, etc.) $ ls | more (exibe conteúdo da lista, página por página) $ ls –lt (lista arqs. classificados pela hora de criação/alteração) $ ls –lu (lista arqs. classificados pela hora do último acesso) mail usado para ler ou enviar emails. $ mail (ambiente para manipulação de e_mail´s) $ mail –s “assunto” [email protected] < arq.txt (envia conteúdo de arq.txt para o e_mail indicado) mkdir cria diretório. $ mkdir docs (cria diretório docs no diretório corrente) $ mkdir ~/temp/docs (cria subdiretório docs no diretório temp) [email protected] more exibe conteúdo de um arquivo página por página. $ more arq.txt([barra de espaço] muda tela; [enter] muda linha) mv move e/ou renomeia arquivos. $ mv teste.hp ~/docs (move arquivo) $ mv arquivo1.txt arquivo2.txt (renomeia arquivo) $ mv arq1.txt ~/docs/arq2.txt (move e renomeia arquivo) passwd muda a senha. $ passwd (pede-se a senha antiga e 2 vezes a nova senha) ps lista processos ativos. $ ps aux | more (lista processos ativos, tela por tela) rm apaga arquivos. $ rm arquivo.txt (apaga arquivo) $ rm –i arquivo.txt (pede confirmação antes de apagar) rmdir apaga um diretório. $ rmdir docs (apaga diretório docs vazio) $ rmdir –r dcos (apaga diretório docs cheio) sleep atrasa o comando. $ sleep 60 && echo “testando...” (mostra msg. após 60 s) sort classifica conteúdo de arquivo. $ sort arq.txt > arq_ord.txt (ordena arq.txt e salva em arq_ord.txt) tail exibe o fim de um arquivo. $ tail –f arq.txt (mostra as 10 últimas linhas de arq.txt) tar (“tape archive”) agrupa arquivos para backup. $ tar –cvf docs.tar *.doc (faz backup dos arqs. .doc) $ tar -xvf arq.tar (restaura backup) $ tar –tvf arq.tar (lista o conteúdo de um backup) uname exibe a versão do Linux. $ uname –a (exibe todas as informações) wc exibe detalhes sobre o arquivo. $ wc –lwc arq.txt (mostra nº. de linhas, palavras e caracteres) who mostra quem está logado na máquina. whoami mostra o username com que “logou” na máquina. write enviar mensagens para outro usuário, na mesma máquina. $ write usuario1 $ (mensagem) (envia mensagem p/ usuario1) $ Ctrl_d Curingas * p/ todos os arqs., exceto os ocultos ($ ls *) .* p/ todos os arqs. ocultos ($ ls .*) *.* p/ somente os que tiverem extensão ($ ls *.*) ? p/ substituir uma letra qualquer ($ rm arq?.txt) ?? p/ substituir duas letras quaisquer ($ rm arq??.txt) Página 4