apostila tutorial basico linux

30
Tutorial Básico Linux Enviado por: Sumaya Pandini

Upload: mamute

Post on 07-Aug-2015

122 views

Category:

Documents


37 download

TRANSCRIPT

Page 1: APOSTILA Tutorial Basico Linux

Tutorial Básico Linux

Enviado por: Sumaya Pandini

Page 2: APOSTILA Tutorial Basico Linux

A história do Linux

O nome Linux surgiu da mistura de Linus + Unix. Linus é o nome do criador do Linux, Linus Torvalds. E Unix, é o nome de um sistema operacional de grande porte, no qual contaremos sua história agora, para que você entenda melhor a do Linux.

Qual a relação entre o Unix e o Linux, ou melhor, entre o Unix e Linus Torvalds?

Para responder essa pergunta, é necessário falar de outro sistema operacional, o Minix. O Minix é uma versão do Unix, porém, gratuita e com o código fonte disponível. Isso significa que qualquer programador experiente pode fazer alterações nele. Ele foi criado originalmente para uso educacional, para quem quisesse estudar o Unix "em casa". No entanto, vale citar que ele foi escrito do “zero” e apesar de ser uma versão do Unix, não contém nenhum código da AT&T e por isso pode ser distribuído gratuitamente.

A partir daí, “entra em cena” Linus Torvalds. Ele era um estudante de Ciências da Computação da Universidade de Helsinki, na Filândia e em 1991, por hobby, Linus decidiu desenvolver um sistema mais poderoso que o Minix. Para divulgar sua idéia, ele enviou uma mensagem a um grupo pela Usenet (uma espécie de antecessor da Internet). A mensagem pode ser vista no final deste artigo. No mesmo ano, ele disponibilizou a versão do kernel (núcleo dos sistemas operacionais) 0.02 e continuou trabalhando até que em 1994 disponibilizou a versão 1.0. Hoje, a versão atual é a 2.6.15

O Linux é um sistema operacional livre e é uma re-implementação das especificações POSIX (padronização da IEEE, Instituto de Engenharia Elétrica e Eletrônica) para sistemas com extensões System V e BSD. Isso signfica que o Linux é bem parecido com Unix, mas não vem do mesmo lugar e foi escrito de outra forma.

Mas porque o Linux é gratuito?

Linus Torvalds, quando desenvolveu o Linux, não tinha a inteção de ganhar dinheiro e sim fazer um sistema para seu uso pessoal, que atendesse suas necessidades. O estilo de desenvolvimento que foi adotado foi o de ajuda coletiva. Ou seja, ele coordena os esforços coletivos de um grupo para a melhoria do sistema que criou. Milhares de pessoas contribuem gratuitamente com o desenvolvimento do Linux, simplesmente pelo prazer de fazer um sistema operacional melhor.

Licença GPL

O Linux está sob a licença GPL, permite que qualquer um possa usar os programas que estão sob ela, com o compromisso de não tornar os programas fechados e comercializados. Ou seja, você pode alterar qualquer parte do Linux, modificá-lo e até comercialiazá-lo, mas você não pode fechá-lo (não permitir que outros usuários o modifiquem) e vendê-lo.

GNU

Page 3: APOSTILA Tutorial Basico Linux

Mas a história do Linux não termina por aqui. É necessário também saber o que é GNU. GNU é um projeto que começou em 1984 com o objetivo de desenvolver um sistema operacional compatível com os de padrão Unix. O Linux em si, é só um kernel. Linus Torvalds, na mesma época que escrevia o código-fonte do kernel, começou a usar programas da GNU para fazer seu sistema. Gostando da idéia, resolveu deixar seu kernel dentro da mesma licença.

Mas, o kernel por si só, não é usável. O kernel é a parte mais importante, pois é o núcleo e serve de comunicador entre o usuário e o computador. Por isso, com o uso de variantes dos sistemas GNU junto com o kernel, o Linux se tornou um sistema operacional.

Mas você pode ter ficado confuso agora. O que é o Linux então? O que é GNU? Simplesmente, várias pessoas uma versões modificadas dos sistemas GNU, pensando que é o Linux em si. Os programadores que trabalham com ele, sabem que o Linux, é basicamente o kernel, conforme já foi dito, mas todos, chamam esse conjunto de Linux (há quem defenda o uso de GNU/Linux).

O projeto GNU é um dos responsáveis pelo sucesso do Linux, pois graças à “mistura” de seus programas com o kernel desenvolvido por Linus Torvalds, o Linux vem mostrando porque é um sistema operacional digno de habilidades insuperáveis por qualquer outro sistema.

Distribuições

O GNU/Linux, como já foi dito, é um sistema aberto, eu posso ler seu código fonte, modificá-lo, e distribuí-lo. Então... Por que não traduzí-lo para o meu idioma, customizar o sistema e implementá-lo de forma que ele suporte a maioria dos hardwares utilizados na região que vivo? Essas foram algumas perguntas que levaram pessoas a estudar o código fonte do GNU/Linux e desenvolver suas próprias distribuições. Mas nos parece que a pergunta que mais impulsionou tais pessoas foi : E por que não ganhar dinheiro com isso? Daí surgiram muitas distribuições diferentes do GNU/Linux em todo o planeta. Embora algumas tenham ignorado a última pergunta, onde a distribuição é desenvolvida por voluntários, sem fim lucrativos (como é o caso da DEBIAN, distribuicao que segue radicalmente as leis morais da GPL). Então vem o questionamento : A ideologia foi embora com aparecimentos de tantas distribuições? A resposta é não. Para isso daremos como exemplo a distribuição mais conhecida aqui no Brasil, a Conectiva (GNU/)Linux. A Conectiva é uma empresa que comercializa o GNU/Linux no Brasil. A GPL não proibe essa atitude, desde que sejam seguidas algumas regras. A empresa pode vender as mídias com a distribuição, porém, tem o dever de disponibilizar na rede a distribuição completa com seu código fonte integralmente. Quem quiser fazer o download da distribuição Conectiva GNU/Linux, basta ir até a página da empresa. Quem achar mais viável comprar o cd, pode adquirí-lo por um custo baixo.

Page 4: APOSTILA Tutorial Basico Linux

Essas empresas que comercializam o GNU/Linux existem em diversos países, e sobrevivem vendendo mídias a baixo custo, oferencendo soluções para empresas, ministrando cursos, etc. Nada de ilegal nisso, embora algumas empresas às vezes exageram na ambição e são eventualmente bastante criticadas e desprezadas pela comunidade que segue a filosofia do Software Livre, prejudicando assim seus preciosos rendimentos.

Algumas distribuições do GNU/Linux que podemos encontrar facilmente na rede :

• Debian : Como já foi dito é a distribuição que mais segue as leis da GPL e que se preocupa muito mais com estabilidade do que com novidade, a maioria dos pacotes disponíveis na versão estavel não são atuais mas em compensação são muito mais confiáveis. Tem seu próprio formato de pacotes (.deb) e tem um sistema de atualização muito eficiente (apt-get).

• Conectiva : É a distribuição que dá o melhor suporte para o idioma português e para os teclados brasileiros, assim como para o hardware presente na maioria das máquinas vendidas aqui no Brasil. Usa o formato de pacotes da RedHat (.rpm).

• Slackware : É a distribuição preferida para quem gosta de fuçar, já que não traz muitos utilitários para facilitar a configuraç ão dos periféricos como a maioria das outras distribuições fazem. Não tem um sistema de pacotes muito eficiente.

• Mandrake : Uma das melhores distribuições voltadas para sistemas Desktop, é dificil durante uma instalação ele não encontrar algum dispositivo seja ela onboard ou não ,possui um utilitário para configuração do sistema que facilita bastante para quem não tem muito conhecimento da localização dos arquivos de configuração no sistema. Usa o formato de pacotes da RedHat

• SuSe : Uma das distribuições que melhor dá suporte para arquiteturas diferentes dos PC's comuns (notebooks e máquinas RISC por exemplo). Usa o formato de pacotes da RedHat

• RedHat : RedHat - Foi a distribuição que criou o formato de pacote RPM, que hoje é usado por inúmeras distribuições. Da mesma forma que o Suse é voltado tanto para desktops quanto para servidores

Link para distribuições: http://www.linuxiso.org/

Page 5: APOSTILA Tutorial Basico Linux

Linux Básico:

USUÁRIOS:

Em uma instalação padrão do Windows não há o conceito de usuários , já o GNU/Linux funciona a nível de usuário. Existe um superusuário denominado "root", ele é o unico usuário que inicialmente tem acesso a todos os arquivos do sistema. Ele tem permissão para cadastrar no sistema usuários "comuns", que terão acesso limitado, garantindo assim a segurança do sistema. Cada usuário pode pertencer a um ou a vários grupos de usuários, e da mesma forma que os usuários, os grupos são criados ou modificados pelo usuário "root". Pelo fato do root poder fazer "qualquer coisa" no sistema, é aconselhável não trabalhar no sistema como root (Só quando for realmente necessários).

PERMISSÕES:

Da mesma forma que o conceito de usuários, o conceito de permissões não existe em uma instalação padrão do Windows (com exceção das versões para servidor), o que acaba facilitando a ação de vírus ou até mesmo de danificação acidental do sistema.

As permissões dos arquivos no GNU/Linux podem ser vistas com o comando ls -l , por exemplo :

# ls -l -rw-r--r-- 1 daniel daniel 0 Mar 17 00:45 arquivo.txt drwxr-xr-x 2 daniel daniel 4096 Mar 17 00:46 arquivo As primeiras 10 colunas da saída desse comando estão relacionadas com as permissões de cada arquivo

Coluna 1 : Tipo do arquivo (d = diretório, - = arquivo normal, entre outros) Colunas 2-4 : Permissões para o dono do arquivo Colunas 5-7 : Permissões para o grupo do arquivo Colunas 8-10 : Permissões para os outros usuários

Para as colunas de 2 a 10 as letras significam :

r = permissão para leitura w = permissão para escrita x = permissão para execução

No exemplo anterior o usuário daniel terá permissão de ler e de escrever no arquivo "arquivo.txt" . Os usuários do grupo daniel terá permissão de ler e os outros usuário terão permissão de ler.

Page 6: APOSTILA Tutorial Basico Linux

Uma observação importante é que para diretórios, a permissão de execução significa que o usuário terá permissão de entrar no diretório.

NOMES DE ARQUIVOS:

Outra diferença importante para os usuários é o fato dos nomes dos arquivos no GNU/Linux serem case sensitive, ou seja, as letras maiúsculas e minísculas fazem diferença, por exemplo, no GNU/Linux, posso ter os seguintes nomes de arquivos em um mesmo diretório:

# ls -1 teste testE tesTE TesTe TESTE

Uma última diferença diz respeito às extensões dos arquivos, que não são necessárias para os arquivos no GNU/Linux. Enquanto no Windows, um arquivo nomeado "arquivo.exe" é um executável e um "texto.doc" é um documento de texto, no GNU/Linux podemos ter somente os nomes "arquivo" e "texto" , mas então como saber o tipo de arquivo se o mesmo não tem extensão ? A identificação dos arquivos é feita baseada no conteúdo do cabeçalho dos mesmos. na próxima seção veremos como identificar um arquivo que não possui extensão.

PARTIÇÕES/DIRETÓRIOS:

No Windows temos uma estrutura baseada em letras identificando cada dispositivo geralmente da seguinte forma :

• Arquivos do sistema : Residem em C: onde temos os diretórios : Meus Documentos, Arquivos de Programas etc...

• Drive de disco flexível 3,5" : É acessado em A: • Unidade de CD-ROM : É acessado em D:

O caminho até um arquivo é descrito por exemplo dessa forma : C:\Meus Documentos\arquivo.txt

No GNU/Linux não temos essa estrutura baseada em letras mas sim baseada em pontos de montagem :

• Arquivos do sistema : A partição que contém esses arquivos é chamada de root (raiz) e seu ponto de montagem é o '/' . A estrutura de diretórios do / é a seguinte :

o /bin - Arquivos executáveis por todos os usuários

Page 7: APOSTILA Tutorial Basico Linux

o /boot - Arquivos relacionados com o kernel (Responsável por controlar o sistema)

o /dev - Todos os dispositivos (Unidade de cd, teclado, placa de som , ...) o /etc - Arquivos de configuração o /home - Diretórios pessoais dos usuários comuns o /lib - Bibliotecas utilizadas pelos diversos programas o /mnt - Pontos de montagem para dispositivos como disquetes e cds o /proc - Arquivos que monitoram o funcionamento do sistema o /root - Diretório pessoal do super-usuário (o root) o /sbin - Arquivos executáveis pelo super-usuário o /tmp - Diretório temporário o /usr - Possui uma estrutura semelhante a estrutura do / o /var - Arquivos de log

• Drive de disco flexível 3,5" : É acessado em /mnt/floppy • Unidade de CD-ROM : É acessado em /mnt/cdrom

É importante notar que ao contrário de outros sistemas operacionais, o GNU/Linux usa como separador dos diretórios a '/' e não '\', e o ponto mais baixo da árvore de diretórios do GNU/Linux é o '/' , por exemplo, uma localização comum para um arquivo no GNU/Linux é a seguinte : /home/usuario/arquivo

Essa estrutura pode sofrer algumas modificações dependendo de cada distribuição. Home do usuário Diretório que pertence ao usuário, onde ele pode tudo. O comando cd isolado leva o usuário até este diretório. Ao logar no sistema, o usuário cai também em seu home.

shell (comandos básicos):

O shell seria uma espécie de prompt do DOS para o GNU/Linux soh que ele foi desenvolvido bem antes e é muito mais poderoso pois além de permitir que o usuário rode os comandos ele também possui uma linguagem que permite a edição de vários scripts para as mais variadas finalidades. Existem vários shells para o GNU/Linux, o mais usado e também um dos mais poderosos é o bash, outros shells :

• sh • tcsh • csh • ksh

Alguns comandos importantes :

• ls - Mostra arquivos e diretórios • cd - Muda de diretório

Page 8: APOSTILA Tutorial Basico Linux

• man - Abre páginas de manual (Um dos comandos mais importantes do GNU/Linux)

• df - Informa o espaço livre de disco • du - Informações sobre o uso do disco • who - Mostra quem está acessando o sistema • file - Determina o tipo do arquivo • cat - Concatena arquivo e lista o resultado na saida padrão • grep - Lista as linhas que combinem com um padrão • ps - Relata a situação dos processos • top - Lista os processos que estão utilizando a CPU • fg - Permite fazer um programa rodando em segundo plano ou parado, rodar em

primeiro plano • bg - Permite fazer um programa rodando em primeiro plano ou parado, rodar em

segundo plano • kill - Finaliza um processo • history - Mostra os últimos comandos executados • clear - Limpa a tela do terminal • updatedb - Atualiza um banco de dados com os arquivos do HD • locate - Faz a busca no banco de dados atualizado pelo updatedb • find - Pesquisa arquivos em um hierarquia de diretórios • rm - Remove arquivos ou diretórios • mkdir - Cria diretórios • rmdir - Remove diretórios vazios • pwd - Lista o nome do diretório de trabalho atual • tail - Lista as última linhas de arquivos • head - Lista as primeiras linhas de arquivos • date - Imprime ou acerta a data e hora do sistema • mount - Monta um sistema de arquivos e mostra os que estiverem montados • umount - Desmonta sistemas de arquivos • useradd - Adiciona um usuário • userdel - Remove um usuário • groupadd - Criar um novo grupo • groupdel - Apaga um grupo • passwd - Atualiza a senha de um usuário • finger - Mostra as informações de um usuário • chfn - Altera a informação do usuário apresentada no finger • chgrp - Altera o grupo dos arquivos • chown - Altera o dono e o grupo de arquivos • chmod - Altera as permissões de acesso aos arquivos • write - Usado para mandar mensagens para outro usuário

São comandos simples mas que quando utilizados em conjunto através de scripts ou de pipes '|' permitem a criação de soluções poderosas para os mais diversos problemas.

Para obter mais informações sobre um comando específico, digite o nome do mesmo seguido de --help, ou então leia a manpage dele.

Page 9: APOSTILA Tutorial Basico Linux

Acesso a discos no GNU/Linux:

Como já vimos anteriormente, no Windows geralmente acessamos o disquete em A:\ e o cdrom em D:\ No GNU/Linux temos que seguir o procedimento de "montar" o dispositivo antes de acessá-lo. É um conceito novo pra quem nunca teve contato com o GNU/Linux, embora seja muito simples. Vimos que no diretório '/mnt' estao definidos os pontos de montagem dos dispositivos da máquina e que normalmente temos a seguinte estrutura:

• /mnt/floppy - aqui está definido o ponto de montagem do disquete • /mnt/cdrom - aqui está definido o ponto de montagem do cdrom

Geralmente os gerenciadores gráficos dão suporte a montagem, ao exemplo do Window Maker. Uma outra partição pode ser definida manualmente editando o arquivo /etc/fstab.

Para montar um disquete por exemplo , deve ser executado o comando :

# mount /mnt/floppy Depois de montado, o conteúdo do disquete estará em /mnt/floppy. Quando terminar de usar o dispositivo , o mesmo deve ser desmontado com o comando : # umount /mnt/floppy

Atalhos essenciais de teclado em Linux e comandos de verificação:

<Ctrl><Alt><F1> Muda a tela para o primeiro terminal texto. Sob Linux você pode ter vários (6 na definição padrão) terminais abertos ao mesmo tempo. Este é um atalho de teclado que significa: "pressione a tecla Control e a tecla Alt, segure-as. Agora pressione a tecla <F1> e solte todas elas.

<Ctrl><Alt><Fn> (n=1..6) Muda a tela para o terminal texto numero n. (O mesmo poderia ser feito com o comando raramente usado chvt n. "chvt" significa "change virtual terminal[mude o terminal virtual]").

tty Mostra o nome do terminal no qual você está digitando este comando. O numero do terminal ativo pode ser mostrado usando o comando fgconsole.

<Ctrl><Alt><F7> Muda a tela para o primeiro terminal gráfico (se o X-windows estiver sendo executado neste terminal).

Page 10: APOSTILA Tutorial Basico Linux

<Ctrl><Alt><Fn> (n=7..12) Muda a tela para o terminal gráfico n (se um terminal gráfico estiver sendo executado na tela n - 1). Por default, o primeiro servidor X roda no terminal 7. Por default, nada roda nos terminais 8 a 12--você pode executar servidores X subsequentes ali.

<Tab> (Em um terminal texto) Completa automaticamente o comando se há somente uma opção ou, em caso contrário, mostra todas as opções disponíveis. ESTE ATALHO É MUITO LEGAL! Ele funciona até no prompt do LILO!

<Seta para cima> (Em um terminal texto) Varre, mostra e edita o histórico de comandos. Pressione <Enter> para executar.

<Shift><PgUp> Mostra telas anteriores. Isto funciona também no prompt de login, assim você pode navegar através das mensagens de inicialização (boot). A quantidade/uso de sua memória de vídeo determina a distancia que você pode chegar nas paginas anteriores.

<Shift><PgDown> Mostra telas a frente, depois de você ter usado o atalho anterior.

<Ctrl><Alt><+> (em X-windows) Muda para próxima resolução do servidor X (se você configurou o servidor X com mais de uma resolução). Para múltiplas resoluções em meu monitor/placa SVGA padrão, eu tenho a seguinte linha no arquivo /etc/X11/XF86Config (a primeira resolução é a inicial, a maior resolução determina o tamanho da “tela virtual”): Modes "1024x768" "800x600" "640x480" "512x384" "480x300" "400x300" "1152x864"Z Naturalmente, primeiro eu tenho de configurar o servidor X, ou usando o Xconfigurator, xf86config, ou manualmente editando o arquivo /etc/X11/XF86Config, de forma que ele suporte as resoluções acima (na maior parte é uma questão de descomentar a linha que define o chipset de meu vídeo, e especificar as freqüências de sincronização que meu monitor suporta). XFdrake (utilitário de configuração do Mandrake) pode faze-lo a partir da interface gráfica. Veja também os comandos xvidtune e xvidgen.

<Ctrl><Alt><-> (em X-windows) Muda a resolução do servidor X para a resolução anterior.

<Ctrl><Alt><Esc> (em X-windows, KDE) Fecha a janela na qual vou posicionar e clicar o mouse (o ponteiro do mouse se transforma em algo parecido como o símbolo da morte). Resultado similar pode ser obtido com o comando xkill (executado em um terminal X). Útil quando um programa rodando no ambiente X não pode ser finalizado(travado?).

<Ctrl><Alt><BkSpc> (em X-windows) Termina o servidor X corrente. Use se o servidor X não pode ser terminado normalmente.

Page 11: APOSTILA Tutorial Basico Linux

<Ctrl><Alt><Del> Sai do sistema e reinicializa a maquina. Este é comando normal para encerramento do sistema(shutdown) na console em modo texto. Não use o botão “reset” para fazer isto!

<Ctrl>c Fecha o processo corrente(funciona na maioria das vezes em aplicações em modo texto).

<Ctrl>d (pressionado no inicio de uma linha vazia) Fecha a sessão corrente de terminal. Veja também o próximo comando.

<Ctrl>d Envia [End-of-File] para o processo corrente. Não pressione-o duas vezes senão você estará fazendo logout(veja o comando anterior).

<Ctrl>s Interrompe a transferencia de dados para o terminal.

<Ctrl>q Reinicia a transferencia de dados para o terminal. Tente isto se seu terminal misteriosamente parar de responder.

<Ctrl>z Envia o processo corrente para segundo plano.

exit Executa logout. Também posso usar o comando logout para obter o mesmo efeito. (Se você executou um segundo shell, por exemplo, usando bash, você voltará para o primeiro shell encerrando o segundo.)

reset Restaura um terminal desconfigurado(mostrando caracteres estranhos) para a configuração normal. Use-o caso tenha usado o comando "cat" sobre um arquivo binário. Você pode não ser capaz de ver o comando quando você o digitar.

<Botão central do mouse> Cola o texto que foi selecionado em algum lugar. Esta é a operação normal de copiar-e-colar em Linux. (Ela não funciona com Netscape e WordPerfect que usam o estilo Windows de copiar-e-colar. Ele funciona em um terminal texto se você habilitar o serviço "gpm" usando o comando "setup".) É melhor utilizado com um mouse de 3 botões (Logitech ou similar) ou usando a emulação de mouse de 3 botões").

~ (til) Meu diretório padrão (diretório padrão, normalmente o diretório /home/meu_nome_de_login). Por exemplo, o comando cd ~/meu_diretório irá alterar o

Page 12: APOSTILA Tutorial Basico Linux

diretório corrente para o diretório "meu_diretório" sob o meu diretório padrão(home) Digitando-se apenas ust "cd" é um equivalente ao comando "cd ~".

. (ponto) Diretório corrente. Por exemplo, ./meu_programa tentará executar o arquivo 'meu_programa' localizado em seu diretório corrente.

.. (sequência de dois pontos) Diretório pai do diretório corrente. Por exemplo, o comando cd .. irá alterar o meu diretório corrente para um nível acima.

Inicializando o Linux:

Após o carregamento do sistema surgirá em sua tela algo similar a:

Kernel 2.6.10

Login:

Você deverá digitar o login root que é o superusuário do sistema, você não deve trabalhar sempre como root, pois isto pode colocar seu sistema em sérios riscos, já que o root tudo pode. Este superusuário só deve ser utilizado para operações de administração do sistema.

Kernel 2.6.10

login: root

Password:

Em password você deve digitar a senha determinada quando da instalação do seu conectiva Linux. Note que a senha não apresenta eco na tela, por uma razão óbvia de segurança. Se tudo der certo deverá surgir em sua tela algo como:

[root@localhost /root]#

Page 13: APOSTILA Tutorial Basico Linux

Congratulações! Você conseguiu acessar o sistema com sucesso. Seu status de superusuário é demonstrado em seu prompt com o uso do símbolo # (identificador do status de root).Vamos aprender a sair do sistema.

Por uma questão de segurança você não deve deixar seu usuário conectado ao sistema, após terminar suas tarefas, você deve fechar o seu terminal, ou seja encerrar sua sessão de trabalho, para isto pode usar: ctrl – d ou exit ou logout. Isto deve retornar a tela de acesso ao sistema.

Kernel 2.6.10

login:

Contas e Senhas

Conforme mencionado anteriormente, não é aconselhável utilizar a conta de superusuário durante todo o tempo. Inevitavelmente um erro será cometido e a checagem de acesso que normalmente evita esse tipo de erro, não funcionará, uma vez que ao superusuário é permitido fazer qualquer coisa no sistema. Bem, se você não deve acessar o sistema como superusuário, com que nome deverá acessá-lo?

Com o seu nome ou outro qualquer que queira utilizar. Para fazer isso, você precisa saber como criar contas no seu sistema Linux.

su :

Há momentos em que pode ser necessário processar um ou dois comandos como outro usuário. É normal que administradores de sistema tenham esse tipo de demanda - eles (como todos os bons administradores de sistemas) usam a sua conta pessoal e sem privilégios especiais a maior parte do tempo. Mas caso uma senha de usuário necessite ser alterada ou as permissões de um determinado arquivo devam ser ajustadas, isso pode não ser possível com uma conta de usuário simples. Tais tarefas não levam mais que um minuto, e pode ser um tanto aborrecido ter que sair e entrar no sistema diversas vezes, somente para executar pequenas tarefas como superusuário. Uma abordagem mais simples consiste na utilização do comando su. Com este comando, a sessão atual pode transformar-se na sessão do superusuário ou outro usuário qualquer. No seguinte exemplo, o usuário conec decide tornar-se o superusuário.

Como é possível perceber, através do comando su o usuário comum obtém os poderes de superusuário, após a informação da senha do root. Mas caso se observe mais atentamente, é possível que o indicador de linha de comando do ambiente de trabalho seja um pouco diferente, indicando que o usuário atual foi alterado, ou seja, o indicador de linha que tinha um sinal ($) passa a ter o sinal (#). Esta é a forma tradicional de indicar se um ambiente de trabalho está sendo executado como superusuário ou não.

Page 14: APOSTILA Tutorial Basico Linux

É possível ainda tornar-se outro usuário. Pode-se fazer isso, sem informar a senha (no nosso exemplo a senha do usuário não seria questionada) através do comando su conta_do_usuário, caso se esteja utilizando o superusuário, ou informando a senha do usuário que se deseje alterar. Você achará o comando su muito útil, particularmente se está agindo como deve um administrador do sistema. Para se retornar ao usuário anterior, como por exemplo deixando de ser o superusuário para tornar-se um usuário normal, deve-se digitar o comando exit.

Desligando o Seu Sistema Linux :

Ao finalizar as atividades de seu sistema Linux, é necessário desligá-lo. Talvez isto seja um pouco mais complexo que simplesmente desligar o botão de energia, pois o encerramento do sistema Linux tem alguns detalhes adicionais. Uma vez que se esteja pronto para desligá-lo, não quer dizer que o sistema está apto para tal. Para entender melhor o que queremos dizer, execute o comando: ps ax

Cada uma das linhas listadas pelo comando ps representa um programa em execução. Cada processo pode estar trabalhando com arquivos e caso o sistema seja simplesmente desligado, esses processos não terão a chance de fechar todos os arquivos e finalizarem a execução de maneira correta, podendo gerar danos ao sistema.

Logo, para poder desligar o sistema corretamente, é necessário avisar aos processos que finalizem normalmente sua execução. Para tanto, pode-se usar o comando shutdown.

O comando shutdown pode ser executado somente pelo superusuário e será necessário acessar o sistema como tal ou executar o comando su para tornar-se superusuário root.

A sintaxe básica de shutdown é:

shutdown <opções> <horário>

Nota: o programa shutdown reside no diretório /sbin. Caso sua variável de ambiente PATH não inclua /sbin, será necessário fornecer o seu caminho completo como parte do comando (por exemplo, /sbin/shutdown -h now).

Em muitos casos, pode-se incluir uma das seguintes opções:

• -h -- Cessa o sistema quando a finalização estiver completa;

• -r -- reinicializa o sistema quando a finalização estiver completa.

Caso não seja incluída nenhuma das opções, o shutdown reinicializará o sistema em modo monousuário. A menos que o motivo do uso do modo monousuário esteja claro, esta opção não deve ser utilizada. Simplesmente informe o comando shutdown (desta

Page 15: APOSTILA Tutorial Basico Linux

vez com -h ou -r) e ele finalizará normalmente. Ele fornece ainda grande flexibilidade em termos de tempo. Caso se queira que o shutdown seja executado imediatamente, simplesmente informe a palavra now após o comando. Caso se deseje que o sistema seja desligado em cinco minutos a partir de agora, basta informar +5. Em assim sendo, o comando

shutdown -r +5

significa ``desligue o sistema em cinco minutos e o reinicialize após o encerramento ter sido completado''. Shutdown tem diversas outras opções disponíveis, sendo que descrevemos aqui somente o básico necessário para executar tarefas simples de desligamento. Para aprender mais execute o comando man shutdown para saber mais sobre as características deste comando.

Agora que você já sabe como reinicializar o sistema através do comando shutdown, experimente também utilizar as teclas Ctrl-Alt-Del. Sim, o Linux também pode ser reinicializado através da combinação destas 3 teclas. Na verdade o shutdown é executado neste momento. Para saber mais como isso funciona, dê uma olhada no arquivo /etc/inittab e verifique a linha começada com ca:.

Encerrando a Sessão

Desconecta o usuário do Linux, permite a entrada de um novo usuário.

Pode ser realizada de duas formas:

• exit encerra o shell de comandos corrente;

• logout encerra a sessão.

Dependendo da configuração do ambiente, Ctrl-d também pode encerrar a sessão.

Encerrando o Sistema

• shutdown: processo de encerramento automático que avisa aos usuários com antecedência que o sistema será paralisado e toma automaticamente providências para a finalização.

• sync: comando que faz o sistema copiar buffers (em memória, utilizando como cache de disco) para o disco.

Page 16: APOSTILA Tutorial Basico Linux

• reboot: reinicia o sistema imediatamente. Deve ser usado com cuidado pois não faz chamada ao sync e isto pode gerar inconsistências no sistema de arquivos que somente o fsck poderá consertar.

Em casos normais, use sempre shutdown para encerrar o sistema, pois este comando se certifica que tudo ocorra em ordem, sem danos ao sistema. Caso não seja possível executá-lo, pode-se usar a seguinte seqüência (de emergência) para finalizar e reiniciar o sistema:

# sync ; sync ; reboot. shutdown

Provoca o desligamento do sistema. shutdown

Sinopse

/sbin/shutdown [-t segundos] [-rkhncfF] time [mensagem de alerta] Descrição

O comando shutdown provoca o encerramento do sistema de maneira segura. Todos os processos internos em uso são avisados que o sistema está sendo desligado, e o acesso é bloqueado.

- su Utilizado para se trocar de usuário sem efetuar logout. Muito comum em acessos via rede, já que via rede por default o root não pode se logar.

Usa-se também su -c "comando a executar" para se executar um comando com poderes de root e depois retornar. Obviamente será pedida uma senha.

Uso do su: su nomeDoUsuarioAseVirar

- date Mostra ou altera a data e hora do sistema. Por exemplo, eu poderia mudar a

data e hora para 2000-12-31 23:57 usando este comando: date 123123572000

- ls Comando que serve para listar arquivos. Suas opções mais utilizadas são

-la, onde o -l significa para listar as permissões (inclusive) e o -a para listar todos os arquivos (lembrando que para o linux arquivos começados com . são ocultos). OBS: O Linux possui um alias chamado l para o comando ls -la, use-o e caso a sua distribuição não contenha tal alias, crie-o. Veja mais adiante como fazê-lo.

Page 17: APOSTILA Tutorial Basico Linux

Identificado os arquivos pela cor: Em verde : arquivos executáveis Em azul : diretórios Em branco : arquivos Em azul claro : atalhos Em amarelo : dispositivos (dev � device) Em vermelho : bibliotecas e arquivos empacotados ou compactados

Metacaracteres:

? – correspondente a algum caracter – ex: ls pass?d * - corresponde a todos os caracteres – ex: ls se* [a-z] – corresponde a uma faixa de caracteres – ex: ls sessao[1-9] – lista arquivos terminados pelos caracteres 1 até 9

Redirecionamento e pipes:

Comando > arquivo – redireciona a saída padrão Comando < arquivo – redireciona a entrada padrão Comando >> arquivo – concatena a saída padrão Comando << arquivo – concatena a entrada padrão Comando 2> arquivo – redireciona a saída padrão de erro Comando 2>> arquivo – concatena a saída padrão de erro

Comando | Comando – pipe – permite conectar a saída de um comando na entrada de outro

Ex:

$cat > arq Teste <Enter> ou <CTRL D> $cat arq > arq1 $sort < arq $sort < arq1 > arq2 $cat arq >> arq1 $ls | more

- cat – concatena e exibe arquivos

cat > teste01 teste pressione <Enter> pressione <Ctrl>+<D> Criou um arquivo com o nome teste01 com o conteúdo teste

Page 18: APOSTILA Tutorial Basico Linux

- head

Mostra as 10 primeiras linhas de um arquivo texto(longo).

head filename

- tail

Mostra as 10 primeiras 10 linhas de um arquivo texto longo ou em crescimento. Use tail -f nome_do_arquivo para que o comando tail mostre o arquivo a medida em que ele cresce - - realmente muito bom para inspeção continua de arquivos de log.

tail filename

- diff Exibe na tela as diferenças entre dois arquivos texto -u – utiliza o formato de saída unificado

diff [opções]<arquivo1><arquivo2> -

- cd (deslocamento relativo x absoluto) Comando para mudar-se de diretório. O deslocamento absoluto se tem quando utilizamos a raiz (/) para indicarmos para onde queremos ir. Por exemplo, imaginemos que estamos no diretório /usr/src/linux e desejamos ir para o diretório /usr/src/teste. Temos duas opções, a seguir: cd /usr/src/teste � Deslocamento absoluto, observe o uso do / no início do diretório para o qual queremos ir cd ../teste � Deslocamento relativo, perceba que se estivéssemos em um outro diretório (/usr) por exemplo, não iríamos cair onde queremos. Daí a convenção de "relativo".

- cp Copia arquivos. Use: cp arquivoASerCopiado novoArquivo Opções interessantes: -i � Pede confirmação antes de substituir um arquivo existente

Page 19: APOSTILA Tutorial Basico Linux

-R � Cópia recursiva. Serve para copiar diretórios e seu conteúdo.

- mv Move arquivos. Use-o também para renomear. Uso: mv arquivo novaLocalizacao/ mv arquivo novoNome Recomendado: -i � Confirma antes de substituir um arquivo existente.

OBS: No Conectiva Linux existe um alias tanto para o comando cp como para o mv com a opção -i.

- alias Cria um apelido para um comando. Tem precedência sobre o comando, ou seja, pode-se criar um alias do tipo: alias ls="ls -la". Toda vez que digitarmos ls na verdade ele executará ls -la.

- clear Limpa a tela. Recomenda-se a criação de um alias chamado c para este comando.

- mkdir (-p) Comando para a criação de diretórios. Usa-se o -p caso se queira criar uma

"árvore" de diretórios.

- rmdir (-p) Complemento do comando mkdir. Serve para remover um diretório vazio. A opção -p serve para remover uma árvore de diretórios vazia (sem arquivos).

- rm (-rf) Comando utilizado para apagar arquivos. Observe que o rm simplesmente não apaga diretórios. Sua opção -r indica para apagar recursivamente, ou seja, ir apagando todos os arquivos em subdiretórios e inclusive os próprios diretórios. A opção -f força apagar, e não emite mensagens de erro caso não exista um arquivo. Ex: rm -rf arquivoQueNaoExiste Não acontecerá NADA. Nenhuma mensagem de erro será informada.

- who (w, who is god, whoami) O commando who e w listam os usuários que estão logados na máquina. O w tem uma saída um pouco mais complexa, mostrando mais informações. O comando who is god é uma sátira e retorna o nome de seu usuário.

Page 20: APOSTILA Tutorial Basico Linux

O comando whoami (pode ser escrito who am i) também retorna o nome de seu usuário e é utilizado para saber com qual usuário você está logado, muito usado quando se utiliza o su e acaba se confundindo quem é você.

- df Mostra informações de sistemas de arquivos montados (mesmo CDRom e Disquete).

- setterm Este comando serve para modificar configurações do terminal do Linux, tais como cor de fundo e cor da letra.

Ex: setterm -background green --> Fundo Verde

setterm -foreground yellow --> Letra "amarela". O amarela está entre aspas devido ao fato de que a cor não parece ser amarelo não. OBS: Este comando mudará a cor a partir do momento em que ele for dado, ou seja, você precisa imprimir algo na tela ou dar um clear para realmente mudar a cor.

- tput Utilizaremos este comando para posicionar o cursor na tela, onde quisermos. Ele será muito útil quando estivermos construindo shell scripts. Ex: tput cup 5 10 � Posiciona o cursor na linha 5 coluna 10.

- uptime

Mostra a quanto tempo o sistema está ligado. Os maiores uptimes da internet são com máquinas UNIX.

- grep – procura em um ou mais arquivo por linhas que contêm um padrão de busca

-i – não diferencia maiúsculas de minúsculas na procura whereis – localiza o arquivo binário, código-fonte e a página do manual para um comando

ex: whereis rpm

more [opções]<arquivo> – exibe arquivos texto wc – faz contagem de palavras, linhas ou caracteres

-l – conta as linhas -c – conta os caracteres do arquivo especificado -w – conta as palavras do arquivo especificado $ wc cidades.txt estados.txt

sort – classifica as linhas dos arquivos especificados

Page 21: APOSTILA Tutorial Basico Linux

-b – ignora espaços e tabulações -d – classifica em ordem de dicionário ex: $ sort –bd cidades.txt

- Ps (aux) Comando que lista os processos em execução no sistema. Recomenda-se

sempre utiliza-lo com as opções AUX, para que liste TODOS os processos ativos no sistema.

- Kill

Serve para matar um processo em execução. Deve-se utilizar um dos sinais existentes para esta tarefa. O sinal padrão é o sinal 15. Após o sinal, deve-se informar o PID (identificador único de processos) do processo que se deseja matar (encerrar).

- Killall

Implementação do linux muito interessante. Permite-se que se mate diversos processos com o mesmo nome de uma única vez. Observe que pode utilizá-lo para matar um único processo pelo nome, desde que se tenha o cuidado de perceber se não existem outros processos com este nome. Ex: killall httpd Killall -9 vi

- touch Cria um arquivo texto vazio. Muito interessante na hora de se testar alguma coisa. Uso: touch nomeDeArquivoaCriar nomeDeArquivoaCriar2 ... Pode-se criar diversos arquivos de uma única vez.

- find Busca arquivos. Muito avançado. Uso: find DirAProcurar opções Exemplos de uso: find / -name Rodrigo.tar � Procura a partir da raiz (no sistema todo) o arquivo chamado Rodrigo.tar find /home -exec grep "teste" {} \; -exec ls -la {} \: � Procura a partir do diretório /home arquivos com o conteúdo teste (grep teste) e lista este arquivo (ls -la). find /usr -type l -ok rm -rf {} \; � Procura no diretório /usr links (-type l) e caso encontre, confirma se deve ou não apagar (-ok rm -rf). Consulte o manual para informações mais interessantes.

Page 22: APOSTILA Tutorial Basico Linux

- locate Busca arquivos, mas utiliza uma base de dados como padrão, o que o torna muito rápido. Cuidado!! Atualize sempre sua base de dados, ou irão aparecer arquivos que já foram removidos em suas buscas. Outro problema do locate é o fato de que ele busca qualquer ocorrência da palavra a buscar, ou seja, se você fizer locate a, ele irá listar TUDO no sistema que contém a palavra a. Para atualizar sua base de dados utilize: updatedb Para buscar utilize: locate oqbuscar

- top Método interessante de se vizualizar os processos ativos na máquina.

Use: M --> Ordenar por consumo de memória P --> Ordenar por consumo de CPU

- background (&)

O linux possui uma opção interessante que é a de mandar processos para o segundo plano, liberando assim o ambiente do usuário. Pode-se fazer isso através do sinal & após qualquer comando.

- jobs Lista os processos que estão em segundo plano, retornando o número do processo de segundo plano, que deverá ser utilizado para traze-lo de volta.

- fg Comando que trás de volta um processo do segundo plano. Uso: fg numeroProcessodeSegundoPlanoRetornadoPeloJobs

- ln (-s) Este comando cria um link (atalho) entre diretórios e arquivos. Um link simbólico (opção -s) nada mais é do que um arquivo no HD que aponta para a área onde está o arquivo original. Se o original é apagado, o link fica "quebrado". Já um link direto (apenas ln) dá um outro nome para a mesma área do HD. Como um backup contra remoção indevida, no entanto usa-se o mesmo espaço do HD, referenciando-no de duas maneiras diferentes. Crie e compare. Um link direto não pode ser feito entre diretórios. Uso: ln -s Original Link ln Original Link - chmod (ugo +rwx)

Comando que muda as permissões de um arquivo. Estas podem ser vistas através do comando ls -l.

Page 23: APOSTILA Tutorial Basico Linux

A esquerda dos arquivos aparecerá uma cadeia de caracteres de difícil compreensão inicial, mas prestem atenção: PrimeiroCaractere � Indica o tipo de arquivo, pode ser:

- � Arquivo normal (executável ou texto) d � Diretório c � Dispositivo orientado a caracteres (modem, portas seriais) b � Dispositivo orientado a blocos (hd) s � Socket mapeado em arquivo ("Em Unix tudo é arquivo") p � FIFO, comunicação inter-processos l � Link Simbólico 3 próximos Caracteres � Permissões Válidas para o DONO do arquivo, 1ª coluna

com nome de usuário. R � Permissão de leitura. Para diretórios, pode listar seu conteúdo. W � Permissão de escrita. X � Permissão de execução. Para diretórios, pode entrar nele.

3 próximos Caracteres � Permissões Válidas para o GRUPO dono de um arquivo, 2ª coluna, do lado da do DONO do arquivo. Observe que o GRUPO dono não necessariamente tem o DONO como membro. 3 próximos Caracteres � Permissões para o restante dos usuários do sistema. Ex: chmod ugo+rwx -R arquivoOudiretório. A opção -R manda dar a permissão recursivamente a todos os arquivos e subdiretórios deste diretório em questão. Esclarecendo a Sintaxe UGO: U � Refere-se as permissões para o DONO G � Refere-se as permissões para o GRUPO DONO O � Refere-se as permissões para o restante dos usuários A � Refere-se as permissões para TODOS os usuários (mesmo que Ugo junto) +rwx � Está-se dando todas as permissões -rwx � Está-se tirando todas as permissões OBS: Pode utilizar apenas -r ou -w sozinhos, por exemplo. =rw � Estaria-se igualando as permissões a +RW-X, ou seja, quando se utiliza o sinal de igual, as permissões se IGUALAM as que o sinal indica, sendo retiradas as que não forem mencionadas.

- chown (user:group) Utilizado para mudar o DONO e o GRUPO dono de um arquivo ou diretório. Uso: chown novodono:novogrupo arquivoOudiretorio Observe que a opção :novogrupo pode ser omitida ou trocada por .novogrupo. Também aqui existe a opção -R.

- chgrp

Page 24: APOSTILA Tutorial Basico Linux

Utilizado para mudar apenas o grupo dono de um arquivo. Uso: chgrp novogrupo ArquivoOuDiretório

- Adicionando um Usuário

Qualquer pessoa que for utilizar o linux deve necessariamente possuir um usuário válido na máquina. Lembrando que NÃO devemos utilizar o root a menos que necessário, esta tarefa é importantíssima mesmo para usuários caseiros. Adicionando: useradd rodrigo -g alunos Adicionamos o usuário rodrigo no grupo alunos. Observe que a opção -g nomegrupo não se faz necessária, e caso seja omitida, teremos comportamentos diferentes em algumas distribuições: RedHat e familiares (incluindo Conectiva): Será criado um grupo com o mesmo nome do usuário e este será adicionado neste grupo Slackware: O usuário será adicionado em um grupo chamado users Isto ocorre devido a não padronização deste ato e ao fato de um usuário NECESSARIAMENTE pertencer a algum grupo

Atribuir ou modificar a senha de um usuário

Para garantir a segurança do sistema, o sistema Unix requer o uso de uma senha. Se você achar que alguém utilizou sua conta sem permissão, mude sua senha imediatamente. Algumas dicas para a escolha da senha: • Escolha uma senha que você possa lembrar sem a necessidade de escrever. • A sua password deve ter ao menos seis caracteres e deve conter pelo menos um número. • Não use seu próprio nome ou suas iniciais. • Não use nomes de animais ou objetos relacionados a seu interesse. • Se você tem mais de uma conta, não use a mesma senha para todas as contas. O comando "passwd" é utilizado para modificar a senha pessoal. A seguir estão os passos que acontecem quando "passwd" é utilizado: passwd Changing password for (nome-do-usuário) Old password: New password: Retype new password: -> Quando o sistema pedir "Old Password:" , digite sua senha atual.

Page 25: APOSTILA Tutorial Basico Linux

Se nenhuma senha estiver associada a sua conta, o sistema irá omitir este prompt. Note que o sistema não mostra a senha que você digita na tela. Isto previne que outros usuários descubram sua senha. -> Quando o sistema pedir "New Password:", digite sua nova senha. -> O último prompt , "Retype new password", pede que você digite a nova senha novamente. Se você não digitar a senha da mesma maneira em que digitou da primeira vez, o sistema se recusa a modificar a senha e exibe a mensagem "Sorry".

passwd <nome do usário> atribui ou modifica a senha do usuário especificado. passwd atribui ou modifica a senha do usuário corrente.

- Adicionando um Grupo Um grupo nada mais é do que a união de diversos usuários com as mesmas

características. Por exemplo, poderíamos ter um grupo estudantes ou alunos. Para adicionarmos este grupo, devemos utilizar o comando: groupadd alunos No arquivo /etc/group será adicionada uma entrada alunos, e será dado um GID (identificador de grupo) a este grupo.

Excluindo um usuario userdel <nome do usuário>: elimina um usuário

Obs.: se usarmos a opção –r (userdel –r <nome do usuário>), eliminaremos também o diretório do usuário.

Page 26: APOSTILA Tutorial Basico Linux

- Arquivos da Inicialização Alguns arquivos são executados quando o sistema reinicializa. O que nos será conveniente falar por agora será o arquivo /etc/rc.d/rc.local (todas as distribuições devem tê-lo implementado). Este arquivo será o último a ser executado quando da inicialização do sistema. Diversos arquivos são executados no processo de entrada de um usuário no sistema. São eles: .bashrc .profile .bash_login Os 3 se localizam no HOME do usuário E: /etc/bashrc /etc/profile Observe que enquanto os 3 primeiros são exclusivos dos usuários (cada usuário pode ter suas configurações), os últimos 2 são globais a todos os usuários que entrarem no sistema. Não recomenda-se alterar o arquivo /etc/profile já que este é de configurações e variáveis.

- Variáveis Variáveis nada mais são do que espaços na memória que armazenam valores. O linux possui variáveis do próprio sistema, que armazenam valores de configurações ou informações da máquina.

Para vê-las utilize o comando set. Para darmos um valor a uma variável e torna-la global ao sistema, fazemos

export variável=valor. Para retirarmos uma variável fazemos unset variável.

- Variável PS1 Esta variável guarda os valores para o PROMPT do Linux. Observe que estes valores podem ser variáveis interpretadas pela SHELL, e por default o são, ou seja, se você utilizar uma shell que não a shell BASH, eles podem ficar sem sentido. A variável PS1 é uma variável normal do sistema, qualquer valor que for dado a ela irá ficar no prompt. No entanto ela possui alguns valores especiais interessantes, eis alguns: \h � Host da máquina \W � Diretório Corrente \w � Caminha completo do diretório corrente \u � Nome do usuário \t � Hora

Page 27: APOSTILA Tutorial Basico Linux

\\$ � Fica $ se for usuário normal e # se for root Exemplo: export PS1="[\h@\w]\\$ "

- Arquivo /etc/motd Este arquivo é lido pelo sistema quando um usuário loga na máquina e seu conteúdo é enviado para a tela do usuário, como uma mensagem de boas vindas ou algo do tipo. Preste atenção que comandos NÃO serão interpretados.

- Arquivo /etc/issue Tela vista ANTES do usuário se logar. Seria a própria mensagem antes do

login. Observe que o arquivo /etc/issue.net é o mesmo que o issue mas é válido para conexões via rede (telnet). Em algumas distribuições este arquivo é apenas um link para o /etc/issue.

- Senhas SHADOW O esquema de senhas chamado SHADOW foi criado devido ao fato de o Linux (e os Unix-Like da vida) utilizarem em suas senhas um método de criptografia chamado DES (Data Encryption Standard). Este método é fraco (utiliza chaves de apenas 64 bits) e pode ser facilmente quebrado (Veja o livro Cracking DES para entender melhor sobre este assunto). Como o arquivo /etc/passwd necessita ter permissão de leitura para todos, qualquer usuário facilmente conseguiria obter a senha de ROOT do sistema. Com isso criaram o SHADOW, onde as senhas criptografadas com o DES ficam no arquivo /etc/shadow que só pode ser visto pelo root. Sobra então no arquivo /etc/passwd apenas um * ou ! no lugar da senha criptografada do usuário. Todas as distribuições linux trazem o SHADOW por padrão.

- Arquivo /etc/passwd Este arquivo contém os usuários cadastrados na máquina e informações sobre eles. Sua sintaxe é: login:UID:GID:Descrição:Home:Shell Onde:

�login � Nome do usuário na máquina �UID � Identificador do usuário. O Linux utiliza este

número para dar ou tirar permissões. Pode ser repetido entre usuários.

�GID � Identificador do grupo principal do usuário. �Descrição � Qualquer coisa, se for omitido, deve-se deixar

::. Geralmente coloca-se nome e cargo do usuário �Home � Diretório pessoal do usuário. Não

necessariamente, mas recomenda-se que ele fique no /home e tenha o mesmo nome do usuário. Ex: Usuário: Rodrigo Home: /home/Rodrigo

Page 28: APOSTILA Tutorial Basico Linux

�Shell � Shell que o usuário irá utilizar para se logar no sistema. Use /bin/false caso o usuário não deva logar. E /bin/bash caso deva.

OBS: Deve ter ficado na cabeça do leitor atento o fato de CASO O USUÁRIO NÃO DEVA LOGAR. Mas quando isto acontece? Digamos que temos uma aplicação que deve ser executada com as permissões de um usuário. Criamos um para ela, mas este não é um usuário válido, como minha aplicação iria entrar na máquina? Este é um caso.

- Arquivo /etc/group Similarmente ao /etc/passwd este arquivo possui as configurações dos grupos (o /etc/passwd possui dos usuários) Sua sintaxe geral é: <grupo>:x:<gid>:<usuario1>,<usuario2> Os usuários que pertencerem a este grupo estarão listados neste arquivo, a menos que o grupo seja primário do usuário, neste caso apenas estaria referenciado em /etc/passwd no campo gid. Preste atenção que é neste arquivo que o GID dos grupos está especificado, sendo que o /etc/passwd apenas consulta ele.

- Porque saber editar manualmente usuários e grupos? Esta é uma pergunta bem simples, já que teremos de editar manualmente em diversas situações onde desejarmos modificar opções de usuários e desejarmos fazer isto de uma forma rápida e segura. - Sinais (1, 9, 15) É importante se lembrar destes 3 sinais principais: 1-) SigHUP � Manda a aplicação reiniciar

9-) SigKILL � Manda o kernel tirar a aplicação da lista de processos ativos (mata mesmo!) 15-) SigTERM � Manda um sinal para que a aplicação termine normalmente Os sinais são utilizados para comunicações INTER-PROCESSOS, ou seja, quando um processo deseja indicar algo para outro processo.

Neste caso, o processo kill (killall é a mesma coisa), envia o sinal que pedirmos para a aplicação. Existem outros sinais (como SigINT) que são utilizados pelo sistema. Para visualizá-los utilize o comando kill -l.

Page 29: APOSTILA Tutorial Basico Linux

O Editor de Textos vi

O editor de textos (modo caracter) vi é muito utilizado no mundo Linux para editar arquivos de configuração. O vi apresenta 2 modos de uso:

a) Modo de edição � quando pressionamos a tecla < i >. b) Modo de comando � quando “chamamos” o vi ou desabilitamos o modo de edição pressionando a tecla <ESC>. Operações básicas do modo de comando: Obs.: Conceito de linha: Considerasse linha o texto digitado até o próximo enter. x � apaga um caracter yy � copia a linha corrente nyy � copia n linhas D � remove a linha corrente para posterior “colagem” nD � remove n linhas para posterior “colagem” Obs.: Notar que é necessário pressionar a tecla <shift> para obter D (maiúsculo) p � cola o texto copiado ou removido para a memória, após o cursor P � cola o texto copiado ou removido para a memória, após o cursor Obs.: Notar que é necessário pressionar a tecla <shift> para obter P (maiúsculo) dd � remove a linha corrente ndd � remove n linhas dDD � apaga do cursor até o final da linha Obs.: Notar que é necessário pressionar a tecla <shift> para obter DD (maiúsculo) cc �elimina a linha corrente, permitindo a inclusão imediata de uma nova linha ncc � elimina n linhas, permitindo a inclusão imediata de uma nova linha o � insere linha em branco abaixo da linha corrente e habilita edição O � insere linha em branco acima da linha corrente e habilita edição Obs.: Notar que é necessário pressionar a tecla <shift> para obter O (maiúsculo) u � desfaz as últimas alterações . � refaz o que “u” desfez / � procura palavra n � continua (next) a procura da palavra, para frente

Page 30: APOSTILA Tutorial Basico Linux

N � continua (next) a procura da palavra, para trás Obs.: Notar que é necessário pressionar a tecla <shift> para obter N (maiúsculo) e � avança para a próxima palavra (final da palavra) após o cursor b � retrocede para a palavra (início da palavra) anterior ao cursor <shift> :% s / termo-antigo / termo-novo � substitui o termo-antigo pelo termo-novo <shift> :e nome-do-arquivo � edita outro arquivo (novo ou já existente) <shift> :r nome-do-arquivo � insere na posição do cursor o arquivo especificado <shift> :q! � sai sem salvar <shift> :wq (ou x) � sai gravando <shift> :wq! (ou x!) � sai gravando, forçando <shift> :w � salva sem sair <shift> :w! � salva sem sair, forçando

Obs.: Se digitarmos no prompt do Linux apenas vi, o editor entrará em operação com um arquivo em branco e sem nome. Se digitarmos no prompt do Linux vi <nome-do-arquivo>, o editor entrará em operação com um arquivo em branco e com nome. Se digitarmos no prompt do Linux vi +8 <nome-do-arquivo>, abriremos o arquivo especificado na linha 8.