Sei sulla pagina 1di 30

Tutorial Básico

Linux

Enviado por:
Sumaya Pandini
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
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.
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/


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.
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
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
• 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.
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).
<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.
<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
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]#
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.
É 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
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.
• 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.
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
- 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
-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.
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


-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.
- 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.
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
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.
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.
- 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
\\$ 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
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.
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
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.

Potrebbero piacerti anche