Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Introdução ao Sistema Operacional Linux
POR QUE SE FALA TANTO NO LINUX?
Sistema Operacional
Antes de compreendermos o Linux, é necessário entender primeiro o que vem a ser um
Sistema Operacional.
Quando clicamos com o botão do mouse sobre qualquer ícone na tela do Windows, ou
quando criamos um documento no Writer, estamos, na verdade, interagindo com o
programa principal do computador, denominado sistema operacional (em nosso
exemplo, o Windows). A função de um sistema operacional é interfacear a relação do
usuário com a grande complexidade de circuitos eletrônicos que é o computador. Sem
esse programa, o micro não passaria de um “corpo sem cérebro”, pois não haveria quem
lhe desse as ordens necessárias para o cumprimento de suas tarefas.
O Linux é simplesmente um desses sistemas operacionais.
Entenderemos a grande projeção deste sistema operacional, conhecendo um pouco de
sua história, mas por ora vale ressaltar que o Linux tem obtido tamanho sucesso graças,
principalmente às liberdades que a licença sob a qual é distribuído (GPL) proporciona.
Apenas para iniciar esta temática, observe que o Windows possui também um kernel
(caso contrário, ele não seria um sistema operacional, certo?). Mas qual a diferença
entre os dois? Muito simples, o Windows possui o código fonte de seu kernel fechado,
isto é, ninguém, a não ser seu proprietário (Microsoft) pode decidir sobre seus destinos,
pois apenas ele possui “a pedra fundamental” que é a codificação de seu kernel. Já no
Linux, qualquer mortal pode obter o código e fazer as alterações que bem entender em
seu núcleo. Destarte, este sistema operacional é muito mais moldável às necessidades
de um número bem maior de pessoas, haja vista não haver interesse financeiro
envolvido em seu desenvolvimento.
No Linux, o Kernel (ouviremos muito falar disso por aí), é o Sistema Operacional. Ele é
desenvolvido para se entender com a configuração de seu computador e os periféricos
que possui.
O UNIX: FONTE DE INSPIRAÇÃO PARA O LINUX.
Em um esquema simples, podemos dividir o sistema computacional nos elementos
básicos:
Em 1970, nos Laboratórios da Bell, o sistema UNIX foi criado por Ken Thompson e
Dennis Ritchie, entre outros, para ajudar no controle dos projetos internos do próprio
laboratório. Era um sistema básico e voltado principalmente para programadores e
cientistas.
Ken Thompson era, em 1975, professor assistente na Universidade da Califórnia, em
Berkeley, onde continuou seu desenvolvimento do UNIX, criando o tradicional “UNIX de
Berkeley”, que mais tarde deu origem a uma versão comercial denominada “SUN-OS” da
empresa SUN Microsystems.
A empresa conhecida como AT&T, em 1979, desenvolveu uma versão comercial do
UNIX, chamada de "Versão 7". Essa versão passa a se chamar, em 1982, "System III"
(Sistema Três).
A partir deste ponto, houve uma evolução paralela de dois "tipos" de UNIX. Uma
comercializada pela AT&T e outra proveniente da Universidade da Califórnia.
Até 1983, o uso do UNIX estava principalmente voltado para aplicações científicas,
sendo o sistema mais utilizado no meio acadêmico. Neste ano, a AT&T resolveu agregar
uma série de características e facilidades, visando assim, o usuário comercial. Este
procedimento sempre encontrou barreiras pois o usuário comercial achava que o UNIX
era por demais científico e nada user friendly, sendo só usado por programadores e
cientistas. A versão comercial ficou sendo conhecida como "System V" (Sistema Cinco).
Somente a partir de 1989 é que uma preocupação maior com a padronização fez com
que os sistemas UNIX ganhassem a confiabilidade exigida pelo mercado,
transformando-o em um dos sistemas operacionais mais robustos e estáveis, e de ampla
utilização até os dias de hoje.
. Hardware
. Sistema Operacional (kernel)
. Shell de comandos
. Aplicações
1
2
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
PRINCIPAIS CARACTERÍSTICAS DO LINUX
Interativo – O usuário requisita os comandos e obtém os resultados de sua execução
através do terminal.
Multitarefa – Um único usuário pode requisitar que sejam efetuados vários comandos
ao mesmo tempo em seu terminal. É responsabilidade do sistema UNIX controlar estas
execuções paralelas.
Quando um usuário executa mais de um comando ao mesmo tempo, geralmente é
somente um que necessita a interação com o usuário. Os demais comandos executados
são na sua maioria comandos que não exigem a atenção do usuário, sendo tarefas
demoradas. Quando isto ocorre, dizemos que os programas que o usuário está
executando sem a interação ficam em Background. O programa que o usuário está
executando e interagindo fica em Foreground.
1972 - Ken Thompson e Dennis M. Ritchie com um PDP-11
Linux
O Kernel do Linux foi, originalmente, escrito por Linus Torvalds do Departamento de
Ciência da Computação da Universidades de Helsinki, Finlândia, com a ajuda de vários
programadores voluntários através da Internet.
Linus Torvalds iniciou cortando (hacking) o kernel como um projeto particular, inspirado
em seu interesse no Minix, um pequeno sistema UNIX desenvolvido por Andy
Tannenbaum. Ele se limitou a criar, em suas próprias palavras, "um Minix melhor que o
Minix" ("a better Minix than Minix"). E depois de algum tempo de trabalho em seu projeto,
sozinho, ele enviou a seguinte mensagem para comp.os.minix:
“Você suspira por melhores dias do Minix-1.1, quando homens serão homens e
escreverão seus próprios "device drivers" ? Você está sem um bom projeto e esta
morrendo por colocar as mãos em um S.O. no qual você possa modificar de acordo com
suas necessidades ? Você está achando frustrante quando tudo trabalha em Minix ?
Chega de atravessar noites para obter programas que trabalhem correto ? Então esta
mensagem pode ser exatamente para você.
Como eu mencionei há um mês atrás, estou trabalhando em uma versão independente
de um S.O. similar ao Minix para computadores AT-386. Ele está, finalmente, próximo do
estágio em que poderá ser utilizado (embora possa não ser o que você esteja
esperando), e eu estou disposto a colocar os fontes para ampla distribuição. Ele está na
versão 0.02... contudo eu tive sucesso rodando bash, gcc, gnu-make, gnu-sed,
compressão, etc. nele.”
No dia 5 de outubro de 1991 Linus Torvalds anunciou a primeira versão "oficial" do
Linux, versão 0.02. Desde então muitos programadores têm respondido ao seu
chamado, e têm ajudado a fazer do Linux o Sistema Operacional que é hoje.
3
Multiusuário – O UNIX pode controlar o acesso ao sistema através de vários terminais,
virtuais ou reais, cada um pertencendo a um usuário. O UNIX aceita as requisições de
comandos de cada um dos usuários e gera as filas de controle e prioridades para que
haja uma distribuição correta dos recursos de hardware necessários a cada usuário.
Devido a característica de ser um sistema multiusuário, o UNIX implementa um sistema
de segurança visando impedir o acesso aos arquivos e diretórios de um usuário por
outro. No módulo sobre permissões veremos como se pode liberar ou restringir o acesso
entre usuários.
TERMINOLOGIA BÁSICA:
Faz-se necessário o entendimento de certos termos que serão muito utilizados nas
explicações e textos. Estes termos fazem parte do jargão do Unix e Linux e devem ser
conhecidos, pois toda a bibliografia e documentação se utilizam deles. São eles:
Shell – É o termo UNIX para interpretador de comandos. O shell nada mais é que um
programa que recebe os comandos do usuário e ativa o sistema operacional. Ele faz o
controle do terminal, tanto na entrada como na saída. Existem várias opções de shell
para o usuário, cada um com determinadas características e facilidades. Dentre os mais
conhecidos podemos citar: bash, sh, rsh, csh e ksh. O interpretador de comandos
padrão do Unix é o ksh e sh (AIX,HPUX) e bash (Linux).
Kernel – É como é chamado o núcleo do sistema Unix e Linux. Este núcleo faz o
gerenciamento direto dos dispositivos de E/S (device drivers), gerenciamento de
memória e controle do uso da CPU pelos vários processos do sistema.
Comando – Um comando Unix/Linux nada mais é que um arquivo (programa
executável) guardado em um diretório específico do sistema. Portanto quando o usuário
executa um comando, ele simplesmente está rodando um programa como qualquer
outro do sistema.
4
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Processo – É um conceito básico do sistema. Toda vez que se executa um
programa/comando é gerado um processo no sistema. Todo gerenciamento é feito sobre
este processo. Os processos são, portanto, comandos/programas em execução. Todo
processo é identificado por um número chamado process id (PID). Este process ID é
único no sistema durante a execução do processo, portanto pode e deve ser usado para
identificação do processo em caso de necessidade.
separada, precedida por "-" ou "+" e seguida de seu argumento Caso ela seja colocada
juntamente com as demais opções, ela deve ser a última da lista.
Um detalhe que gera muita confusão para o iniciante do sistema Linux é o fato de que as
opções variam de comando para comando, tornando-se difícil uma memorização das
mesmas. Se isto acontecer com você, não se preocupe, pois poucas pessoas sabem
todas as opções de todos os comandos.
Os argumentos definem os objetos sobre os quais o comando será aplicado. Temos
como exemplos de argumentos: arquivos, periféricos, etc.
Usuários
Dentro do sistema existem dois tipos de usuários: normal e super-usuário. O usuário
comum é aquele que tem acesso limitado somente a seus dados e arquivos. Se tentar
acessar dados de outro usuário, o sistema, dependendo das permissões configuradas,
não deixará, emitindo uma mensagem de erro.
O super-usuário ou conta root é uma conta com poderes supremos sobre toda a
máquina. Com ela pode-se acessar qualquer arquivo que se encontra na máquina,
removê-lo, mudá-lo de lugar, etc. O esquema de permissão e segurança do Unix/Linux
não se aplica ao super-usuário.
Existem também certos comandos que só podem ser executados quando o usuário tem
permissão de super-usuário. Estes comandos geralmente servem para a manutenção do
sistema e não devem ser deixados à disposição de usuários comuns devido à
complexidade e perigo do mal uso destes comandos. (em muitos casos esses comandos
são utilizados por crackers - hackers do mal - para destruição de sistemas
computacionais)
Comandos
Formato Geral de um Comando: comando [opções] [argumentos]
Comando – Comando ou programa a ser executado
Opções – Modificadores do comando (opcional)
Argumentos – Define o objeto a ser afetado pelo comando (opcional)
A maioria dos comandos Linux possue a sintaxe compatível ao formato acima. Temos o
nome do comando, seguido de opções e argumentos. As opções, quando colocadas,
devem sempre preceder os argumentos.
Observar que os caracteres separadores dos campos da linha de comando são o
espaço em branco e o <Tab>. Um outro detalhe, muito importante, é o fato de que o
Linux faz distinção entre os caracteres maiúsculos e minúsculos (case sensitive).
Portanto, para o Linux, Carol é diferente de carol.
Quase sempre as opções dos comandos são precedidas pelo caractere "-" (menos) ou
"+" (mais) e podem entrar em qualquer ordem e posição na linha de comando, mas
sempre antes dos argumentos . Na maioria das vezes as opções são representadas por
letras, podendo-se agrupar uma série de letras em uma única opção. Por exemplo, as
opções "-w -l -c" do comando wc podem ser escritas como "-wlc". Existem também
opções que são mutuamente exclusivas, não podendo aparecer ao mesmo tempo em
um comando.
O terceiro tipo de opção que pode existir em um comando, é a opção que exige logo
após, um argumento específico. Neste caso, quase sempre esta opção é colocada
5
6
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Principais diretórios
Os diretórios de um sistema de arquivos têm uma estrutura pré-definida, com poucas
variações. A seguir ilustramos os principais:
/home
/boot
/var
/etc
/usr
/tmp
/mnt
raiz dos diretórios home dos usuários,
contem arquivos de usuários (definições
próprias do usuário, arquivos de
customização, documentos, correios,
etc...).
arquivos de boot (kernel do sistema, etc),
arquivos usados pelo LiLO (um carregador
de bootstrap, a coisa que se carrega
primeiro quando se dá boot na maquina e
talvez dê a você uma opção sobre qual
sistema operacional a ser carregado, se
você tem mais que um no seu computador.
Ele tipicamente também contem o kernel
do Linux, mas isto pode ser armazenado
em qualquer outro lugar, se somente LILO
está configurado para conhecer onde ele
está.
contem arquivos que são alterados,
diretórios de spool, arquivos de log,
arquivos de trava, arquivos temporários, e
paginas formatadas de manual, arquivos
variáveis, áreas de spool (impressão, email, news), arquivos de log
arquivos de configuração dos serviços,
arquivos de configuração de âmbito do
sistema para seu sistema operacional.
aplicações voltadas aos usuários, contem
todos os comandos, bibliotecas,
documentação, e outros arquivos que não
se alteram durante a operação normal. Ele
também conterá as aplicações maiores,
talvez aquelas que vieram com sua
distribuição, por exemplo, Netscape.
arquivos temporários, este diretório pode
ser limpo automaticamente.
montagem de diretórios compartilhados
temporários, ponto de montagens para
medias removíveis(disquetes, cdrom,
7
/bin
/dev
/lib
/proc
zipdrive), partições de outros sistemas
operacionais (MS Windows, por exemplo),
compartilhamentos de rede, e qualquer
outra coisa que esteja montada no sistema
de arquivos temporariamente. Ele
normalmente contem um subdiretório
separado para cada tipo de montagem. O
conteúdo destes
dispositivos/compartilhamentos aparecem
nestes subdiretórios - - não existem letras
de drives em Linux.
aplicações de base para o sistema,
executáveis(binários) necessários durante
o boot e que podem ser usados por
usuários normais.
arquivos de acesso aos dispositivos
físicos e conexões de rede, arquivos de
dispositivos. Os dispositivos aparecem nos
UNIXes como arquivos de forma que é
fácil ler ou gravar utilizando-os.
bibliotecas básicas do sistema, bibliotecas
compartilhadas para programas que
residem no sistema de arquivos ¨/¨.
contem inteiramente arquivos virtuais.
Eles realmente não existem no disco e não
ocupam nenhum espaço ali.(embora ls -l
mostre os tamanhos deles). Quando você
os vê, você na realidade está tendo
acesso a arquivos na memória. Ele é
usado para se ter acesso a informações
sobre o sistema.
8
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Nomes de Arquivos
Iniciando uma Sessão
O Linux é sensível a maiúsculo-minúsculas. Por exemplo, meuarquivo, Meuarquivo, e
meuARQUIVO são três arquivos diferentes. Sua password (senha) e nome de login são
também sensíveis a maiúsculas/minúsculas (Isto segue a tradição em que tanto o Unix e
a linguagem C são sensíveis a maiúsculas/minúsculas) A convenção de nomes para
arquivos e diretórios é a mesma. Todos os arquivos e diretórios que eu crio (para mim,
como um usuário) são em minúsculos, a menos que haja uma razão muito especial para
faze-lo diferente. A maioria dos comandos Linux é também em minúsculos.
Os nomes de arquivos em Linux podem ter um tamanho de até 256 caracteres e eles
contém normalmente letras, números, ¨.¨ (pontos), ¨_¨(travessões) e ¨-¨ (hífens). Outros
caracteres são permitidos mas não recomendados. Em particular, não é recomendado
usar caracteres denominados metacaracteres: ¨*¨(asterisco), ¨?¨ (interrogação), e¨ ¨
(espaço), ¨$¨ (cifrão), ¨&¨ (e comercial), colchetes, etc.
Isto é porque metacaracteres tem significado especial para o shell Linux (o shell é algo
como COMMAND.COM, o processador de comandos do DOS). É possível ter espaço
dentro de um nome de arquivo mas nós não recomendamos isto , usamos ¨_¨
(travessão) em seu lugar.
Não é possível de forma alguma ter uma ¨/¨ (barra) como parte do nome do arquivo por
que ela é usada para representar o topo da árvore de diretórios e é um separador
utilizado no caminho de um arquivo. ( o mesmo que o ¨\¨ em DOS).
Tal como em DOS, eu não posso ter um arquivo chamado ¨.¨ ou um arquivo chamado ¨..¨
(ponto ou dois pontos) - - eles significam o diretório corrente e o diretório pai,
exatamente como em DOS. Para manipular arquivos como nomes que contem
metacaracteres, eu uso um par de ¨'¨ (apostrofo), de forma que os metacaracteres são
colocados entre aspas e portanto o shell não interpreta o significado deles. Por exemplo,
para remover um arquivo meu arquivo* (contem espaço e um asterisco), assim:
rm 'meu arquivo*'
O acesso ao sistema é feito através de uma conta previamente cadastrada no sistema
pelo administrador do sistema. Sem esta conta não é possível o acesso ao sistema. Esta
conta é chamada user name ou login name. O nome da conta deve ser uma string de
até 8 caracteres e deve ser único em cada máquina.
Junto com a conta, é atribuída uma senha de acesso. Esta senha é que garante que não
se faça nenhum acesso indevido aos dados de determinado usuário. A manutenção
desta senha e de sua validade é de responsabilidade única do usuário.
Uma vez acertadas a conta e a senha, o sistema apresentará um prompt indicando que
ele está apto a receber comandos do usuário. Neste ponto dizemos que estamos com
uma sessão aberta.
O esquema de segurança, baseado em senhas, perde seu sentido se o usuário não
seguir certas normas de segurança. Estas normas são simples e óbvias e o
cumprimento delas pode evitar transtornos futuros. As normas são as seguintes:
- Não forneça sua senha para ninguém.
- Não use palavras óbvias ligadas a você. (Nome próprio ou de parentes, iniciais, nome
do cachorro, números do telefone, nome do setor, palavras ligadas ao trabalho, etc.).
- Mude regularmente a sua senha por medida de segurança ou toda vez que achar que
sua senha foi descoberta.
- Não anote a senha em nenhum lugar. Memorize-a.
Comando exit
O comando exit deve ser utilizado para encerrar uma sessão de trabalho, terminando a
conexão com o usuário. O sistema volta a pedir uma nova conta.
Um fato importante a relatar é que a sessão (dependendo do shell) pode terminar se for
digitado um <CTRL> D, pois este caractere significa fim de arquivo ou fim da entrada de
dados.
Obtendo HELP no Sistema
As páginas de manual acompanham a maioria dos sistemas Linux. Elas trazem uma
descrição básica do comando/programa e detalhes sobre o funcionamento de opção.
Uma página de manual é visualizada na forma de texto único com rolagem vertical.
Também documenta parâmetros usados em alguns arquivos de configuração.
A utilização da página de manual é simples, digite:
man [seção] [comando/arquivo]
9
10
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
seção – É a seção de manual que será aberta, se omitido, mostra a primeira seção
sobre o comando encontrada (em ordem crescente).
O LINUX É SÓ LINHA DE COMANDOS?
comando/arquivo – Comando/arquivo que deseja pesquisar.
Quando começamos nossos estudos sobre este Sistema Operacional, tem-se a
idéia de que a coisa é voltada apenas ao meio acadêmico, ou àqueles “nerds” que
adoram se exibir digitando comandos incompreensíveis em suas telas. Mas a realidade é
outra, o Linux hoje em dia, é um sistema preocupado com o usuário final, apresentando
todas as facilidades que o Windows e o Mac OS oferecem. Mesmo quem nunca utilizouse de suas interfaces gráficas, não terá problema algum ao dar os primeiros cliques e
descobrir que pode elaborar seus textos, planilhas e apresentações; navegar na Internet,
enviar e receber emails; comunicar-se através de programas como o aMSN, Skype, etc.
A navegação dentro das páginas de manual é feita usando-se as teclas:
q
PageDown ou f
PageUP ou w
SetaAcima ou k
SetaAbaixo ou e
r
p ou g
h
s
Sai da página de manual;
Rola 25 linhas abaixo;
Rola 25 linhas acima;
Rola 1 linha acima;
Rola 1 linha abaixo;
Redesenha a tela (refresh);
Inicio da página;
Ajuda sobre as opções da página de
manual;
Salva a página de manual em formato
texto no arquivo especificado (por
exemplo: /tmp/ls).
DISTRIBUIÇÕES LINUX
Podemos dizer que o Linux é o Kernel. As distribuições, portanto, não são
“versões” do Linux, mas apenas manipulações em suas formas de se apresentar ao
usuário final, bem como os aplicativos embutidos em cada uma delas. Dentre as
inúmeras distribuições existentes, podemos citar algumas mais conhecidas:
Cada seção da página de manual contém explicações sobre uma determinada parte do
sistema. As seções são organizadas em diretórios separados e localizadas no diretório
/usr/man. Os programas/arquivos são classificados nas seguintes seções:
DISTRIBUIÇÕES
MANDRIVA, UBUNTU, FEDORA
DEBIAN, SLACKWARE, GENTOO
Programas executáveis ou comandos internos
Chamadas do sistema (funções oferecidas pelo kernel);
Chamadas de Bibliotecas (funções dentro de bibliotecas do sistema);
Arquivos especiais (normalmente encontrados no diretório /dev);
Formatos de arquivos e convenções (/etc/inittab, por exemplo).
Jogos;
Pacotes de macros e convenções (por exemplo, man);
Comandos de Administração do sistema (normalmente usados pelo root);
Rotinas do kernel (não padrões).
DAMN SMALL, PUPPY, SLAX
CARACTERÍSTICA
Voltadas para o usuário principiante;
fácil utilização e grande interatividade.
Usuários avançados se sentirão mais à
vontade aqui.
Se o computador possui um hardware
modesto, estas distros se aplicam
perfeitamente a micros mais antigos.
Ainda como bom exemplo, podemos citar o Linux Kurumin, uma produção nacional e de
extrema conversabilidade com o usuário final. Veja abaixo a ilustração de um desktop do
Kurumin:
A documentação de um programa também pode ser encontrada em 2 ou mais
categorias, como é o caso do arquivo host_access que é documentado na seção 3
(bibliotecas) e 5 (formatos de arquivo). Por este motivo é necessário digitar man 5
hosts_access para ler a página sobre o formato do arquivo, porque o comando man
procura a página de manual nas seções em ordem crescente e a digitação do comando
man hosts_access abriria a seção 3.
11
12
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
OS COMANDOS DO LINUX
Muito embora haja a possibilidade de utilizar o Linux apenas através da interface
gráfica, em nossas provas o aluno irá se deparar com questões onde a grande maioria
reporta-se ao conhecimento sobre as linhas de comando. Veremos agora alguns dos
principais comandos utilizados.
Para utilizarmos o Shell de comandos, é necessário abrirmos uma seção Shell, ou
o fazermos através de um terminal.
No Linux Kurumin, por exemplo, poderíamos clicar no Botão “K” (correspondente
ao INICIAR do Windows e escolhermos a opção Konsole.
O SERVIDOR XWINDOWS E OS GERENCIADORES DE JANELAS.
Se tomarmos por base outros sistemas operacionais, como o Windows e Mac OS,
veremos que a interface gráfica é estática, ou seja não há opções de alteração em seu
modo básico de funcionamento. Isto porque esses sistemas operacionais trabalham com
um único gerenciador de janelas, definido por seu fabricante.
No Linux a coisa funciona de uma maneira mais flexível, pois existe um
componente do sistema denominado SERVIDOR DE JANELAS e cada distribuição
escolhe o seu GERENCIADOR DE JANELAS. A coisa funciona mais ou menos assim:
imagine que o servidor de janelas, também conhecido como XWindows, é uma tabula
rasa, onde podemos “desenhar “ nossas interfaces. É por isso que as distribuições
diversas existentes podem oferecer ao usuário final o resultado de toda sua criatividade
gráfica.
Os principais Gerenciadores de Janelas existentes são o KDE e o GNOME.
13
14
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Vejamos um exemplo, onde foi digitado o comando ls –a. Note que da segunda vez,
bastou acrescentar o “!” para que o Linux repetisse o último comando com seu devido
Outra maneira, seria através do console: tecle simultaneamente Crtl+Alt+F1(...F6) que
uma console modo texto será exibido solicitando um login, onde você deverá entrar
com seu usuário e senha para ter acesso ao prompt de comando.
parâmetro:
Antes de iniciarmos a descrição de alguns comandos, vale a pena relembrar alguns
termos:
Comando do Linux: Palavra digitada pelo usuário representa uma ou mais
ações.
Interpretador de comandos (Shell): é o modo texto, o programa que
interpreta as instruções enviadas pelo usuário e seus programas para o
kernel.
Obs: Há, no Linux, vários interpretadores de comandos (no Windows existe o
command.com). Podemos destacar o bash, csh e sh entre outros. Entre eles o mais
usado é o Bash (Bourne Again Shell).
CONHECENDO O BASH
O Bash possui algumas características que facilitam a digitação e seu uso como um todo.
Vejamos:
FUNÇÃO DE AUTO-COMPLETAR: ao se pressionar a tecla TAB; o comando é
completado e acrescentando um espaço. Por exemplo, digite cd /p +TAB. O resultado
será cd /proc .
MODO SUPERUSUÁRIO: alguns comandos só podem ser executados pelo usuário
REPETIÇÃO AUTOMÁTICA DE UM COMANDO: o Shell irá repetir o comando se você
Root, aquele que tem todos os poderes. Isto se dá por uma medida de segurança. Para
usar tais comandos é necessário preceder o comando com a palavra sudo. Mas a senha
precedê-lo com um sinal de “!”.
do root será solicitada.
Vejamos um exemplo onde o comando date é utilizado para se alterar a data do sistema.
Note que a sintaxe do comando é: date mmddhhmmaaaa, ou seja, mês, dia, hora,
minutos, ano. Como é um dos comandos que só o root pode executar, usamos o sudo.
15
16
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Uma variante do comando date, é o comando hwclock. A diferença básica é que este
Observe que é possível navegarmos por diversos níveis usando apenas um
comando cd:
altera a data do sistema, aquela que fica armazenada no BIOS do computador,
logicamente é uma das funções inerentes ao root. Vejamos uma exemplo:
"sudo hwclock --set --date=032922502009" para definir a data e hora do hardware
como 22:50 h de 29/03/2009.
COMANDOS MAIS COMUNS NO BASH
COMANDOS RELACIONADOS AO GERENCIAMENTO DE ARQUIVOS E DIRETÓRIOS
cp
usado para copiar arquivos e diretórios.
Exemplo: iremos copiar o arquivo diana, com o novo nome de afrodite.
pwd informa o diretório onde o usuário se encontra. Observe que a mesma informação
é mostrada na barra de títulos da janela, veja o exemplo:
cd
permite a navegação pela árvore de diretórios, é como clicar em uma pasta para
abri-la, se usamos o Konqueror (equivalente ao Windows Explorer), por exemplo. Seus
parâmetros mais comuns são:
cd /
vai para o diretório raiz. Observe a existência de um espaço em branco entre o
comando e a barra.
cd
move para o diretório pessoal do usuário, também conhecido como home, ou
simplesmente um til (~).
cd ..
sobe um nível na estrutura de diretórios.
cd -
retorna ao diretório anterior.
mv
move, ou renomeia arquivos e diretórios.
mv diana afrodite
irá renomear o arquivo diana para afrodite.
mv diana ~/Modelos irá mover o arquivo diana para o diretório Modelos, mantendo o
nome de origem.
mv diana ~/Modelos /afrodite
17
moverá o arquivo diana para a pasta Modelos, com
o novo nome de afrodite.
ls
lista o conteúdo de um diretório.
ls -a
mostra também os arquivos ocultos (eles se iniciam com um ponto).
ls -l
exibe os conteúdos em forma de listagem.
ls -h
exibe a listagem apenas com informações básicas sobre os arquivos.
18
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Escrita
permite a modificação de seu conteúdo, isto é, o usuário poderá criar ou
deletar os arquivos.
Execução
como diretórios não são executáveis, este atributo permite que se entre no
diretório e navegue-se por ele.
Em um breve resumo:
Poderíamos também usar uma combinação dos três:
1. as permissões de arquivos os protegem contra as leituras ou alterações de seu
conteúdo.
2. as permissões de diretórios protegem os arquivos contra exclusões ou
renomeações.
rm
deleta arquivos, ou pastas (diretórios). Solicita confirmação do usuário
(y/n).
rm diana
deleta o arquivo diana do diretório corrente.
rm -f diana idêntico ao comando anterior, porém não solicita a confirmação.
rm -R ~/Modelos exclui o diretório “Modelos” e todo o seu conteúdo, inclusive
os subdiretórios. o R no parâmetro significa recursivamente.
Digitamos ls -l
mkdir cria novos diretórios, ou subdiretórios.
chmod
altera as permissões de acesso de arquivos e diretórios. Antes de
detalharmos o comando, faz-se necessário entendermos como o Linux
trata as permissões.
Definições básicas do controle de acesso ao sistema de arquivos
O Linux para cada arquivo ou diretório as seguintes propriedades:
Um usuário proprietário (owner). Geralmente o autor do arquivo.
Um grupo proprietário. Por padrão, o grupo do autor do arquivo, mas pode ser alterado.
Permissões de acesso. Divididas em:
ARQUIVOS:
Leitura
permite acesso ao conteúdo do arquivo.
Escrita
permite modificar o conteúdo do arquivo.
Execução
permite executar o arquivo (se o mesmo for um executável).
DIRETÓRIOS:
Leitura
permite listar os arquivos do diretório.
19
20
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Melhorando o visual...
As letras correspondentes para as permissões de cada um dos grupos são:
total 456
drwxr-xr-x 7 jlafite jlafite
drwxr-xr-x 15 jlafite jlafite
drwxr-xr-x 2 jlafite jlafite
-rw-r--r-1 jlafite jlafite
drwxr-xr-x 3 jlafite jlafite
drwxr-xr-x 2 jlafite jlafite
-r--r--r-1 jlafite jlafite
lrwxrwxrwx 1 jlafite jlafite
drwxr-xr-x 2 jlafite jlafite
drwxr-xr-x 12 jlafite jlafite
lrwxrwxrwx 1 jlafite jlafite
288
776
168
0
168
304
608
13
80
304
31
2009-01-08 14:10
2009-01-08 12:30
2008-08-08 18:10
2009-01-08 14:10
2008-08-08 18:10
2008-08-08 18:09
2008-08-08 18:10
2008-11-21 00:55
2008-08-08 18:09
2008-08-08 18:10
2008-11-21 00:55
r
w
x
-
.
..
bin
bob
doc
etc
FILES
INSTALL -> ./doc/INSTALL
installer
lib
vmware > ./bin/vmware
permissão de leitura (read).
permissão de escrita (write).
permissão de execução (eXecute).
indica que o respectivo direito está
negado.
bits SUID e SGID setados.
S
Tomemos da listagem acima um exemplo para análise:
-rw-r--r--
1 jlafite
jlafite
0
2009-01-08 14:10
bob
1) Sabemos tratar-se de um arquivo normal (o primeiro caractere é "-")
2) o proprietário do arquivo bob é o usuário jlafite
A primeira letra à esquerda indica o tipo de entrada, a saber:
d
l
b
3) as permissões para o proprietário são leitura e escrita (rw), porém não de
execução.
arquivo normal
diretório
link simbólico (atalho)
dispositivo (mapeado em /dev), como
os discos rígidos, por exemplo.
dispositivo (mapeado em /dev)
orientado a caracteres (como modems e
portas seriais)
socket mapeado em arquivo (para
comunicação entre processos)
FIFO ou Named Pipe (outro meio de
comunicação entre processos)
c
s
p
4) o arquivo pertence ao grupo também denominado jlafite.
5) o grupo só possui permissão de leitura.
6) outros usuários só possuem permissão de leitura.
Voltando ao comando chmod.
É através desse comando que alteramos as permissões para usuários proprietários,
grupos e outros. Podemos fazê-lo de duas maneiras:
Ainda na primeira coluna, os outros caracteres ilustram direitos de acesso, divididos em
três grupos:
1) usuário (user)
2) grupo (group)
3) outros (others)
1) FORMA SIMBÓLICA
chmod [opções] [permissões] [diretório/arquivo]
Onde:
diretório/arquivo Diretório ou arquivo que terá sua permissão mudada.
opções:
-v, –verbose Mostra todos os arquivos que estão sendo processados.
-f, –silent Não mostra a maior parte das mensagens de erro.
-c, –change Semelhante a opção -v, mas só mostra os arquivos que tiveram as
permissões alteradas.
-R, –recursive Muda permissões de acesso do diretório/arquivo no diretório atual e
subdiretórios.
ugoa+-=rwxXst • ugoa - Controla que mudanças serão efetuadas, na seguinte ordem:
21
22
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
0: Todas as permissões negadas. As pastas não exibirão seu conteúdo.
usuário (u)
grupo (g)
outros (o)
todos (a).
1: Somente execução. Nenhum tipo de leitura, ou alteração poderá ser feita no arquivo.
As pastas permitirão apenas a exibição de seu conteúdo, não lhes permitindo leitura,
nem alteração.
+-= - + coloca a permissão, - retira a permissão do arquivo e = define a permissão
exatamente como especificado.
4: Somente leitura.
rwx - r permissão de leitura do arquivo. w permissão de gravação. x permissão de
execução (ou acesso a diretórios).
5 (4+1): Leitura e execução para os arquivos. Exibição e leitura dos arquivos dentro da
pasta.
Através de alguns exemplos, fica mais fácil a compreensão deste método:
6 (4+2): Leitura + gravação.
chmod g+r *
Atribui a todos os usuários que pertençam ao grupo dos arquivos (g)
tenham (+) permissões de leitura (r) em todos os arquivos.
7 (4+2+1): Permissões totais: leitura + gravação + execução.
chmod o-r alfa.odt Retira (-) a permissão de leitura (r) do arquivo alfa.odt para
os outros usuários.
Observe que as permissões de acesso para pastas deverão sempre obedecer a
utilização dos dígitos 5 (4+1), ou 7 (4+2+1), sem o quê não conseguiremos listar seu
conteúdo.
chmod uo+x alfa.odt Inclui (+) a permissão de execução do arquivo alfa.odt para o
dono e outros usuários do arquivo.
chmod 744 diana
altera as permissões do arquivo “diana” para o usuário ter total
permissão (leitura, execução e escrita) enquanto que os usuários pertencentes ao
Grupo e os Outros terão permissão apenas de leitura.
chmod a+x alfa.odt Inclui (+) a permissão de execução do arquivo alfa.odt para o
dono, grupo e outros usuários.
chmod -R 744 temp/
altera as permissões de forma idêntica ao exemplo anterior,
porém do sub-diretório /temp e todo seu conteúdo de forma recursiva.
chmod a=rw alfa.odt Define a permissão de todos os usuários exatamente (=) para
leitura e gravação do arquivo alfa.odt.
chown
2) FORMA OCTAL
chown jlafite:comercial afrodite
altera o arquivo “afrodite” para que seu
dono seja “jlafite” e que passe a pertencer ao grupo “comercial”.
Neste método, usaremos uma combinação de algarismos que definirão, ao final da
atribuição, três dígitos, sendo um para cada agrupamento (usuário, grupo e todos).
chown –R jlafite:publicidade mega/
altera o sub-diretório /mega,
recursivamente (todo o seu conteúdo) para possuir o proprietário jlafite e o
grupo publicidade.
A tabela básica é a seguinte:
4
Ler.
2
Alterar o conteúdo, ou criar novos arquivos (para uma pastas).
1
Execução (para arquivos), ou listar os arquivos (para pastas).
Altera o proprietário e o grupo de arquivos e diretórios.
diff
mostra as diferenças existentes entre dois arquivos.
diff diana01 diana02
compara os arquivos “diana01” e “diana02” e exibe as
diferenças entre eles.
find
Ao somarmos esses números, obteremos aquele que determinará o conjunto de
permissões desejado:
procura por arquivos na arvore de diretórios. Se um caminho não for passado ao
comando find a busca será feita no diretório corrente.
find ~/Documentos/bob
procura pela ocorrência de um arquivo chamado
“bob” no sub-diretório /Documentos do diretório home.
23
24
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
COMANDOS RELACIONADOS À DOCUMENTAÇÃO E AJUDA
locate
Pesquisa arquivos.
Existe uma base de dados no Linux que armazena os nomes dos
arquivos. o comando locate a consulta e devolve como resposta a
localização do arquivo pesquisado. Como esta base é constantemente
atualizada, antes de usarmos este comando devemos digitar
“updatedb”, garantindo assim a atualização da base de dados.
O Linux oferece uma base de dados de ajuda jamais vista na face da Terra. Além das
informações intrínsecas ao sistema, há inúmeras páginas de documentações, tutoriais,
cursos “on-line”, blogs e milhares de entusiastas dispostos a auxiliar todos aqueles que
entram no mundo do Pingüim. Na bibliografia deste livro mencionamos alguns desses
links e insistimos para que o leitor investigue-os com afinco, pois só se aprende
dedicando-se à pesquisa incansável.
Vamos aos comandos deste tomo:
locate ~/Natalia
pesquisa por um arquivo de nome “Natalia” no
diretório pessoal do usuário (home). Caso não seja passado ao
comando o caminho desejado ele pesquisará em toda a árvore de
diretórios do sistema.
man No Linux, existe um formato de arquivos denominado “man page”, que são
excelentes “manuais” sobre os comandos e programas do sistema. Para acessá-los,
basta digitar “man [comando]. Um exemplo inicial, mostra-nos um manual sobre o
próprio comando “man”: man man .
tar
Assim como no ambiente Windows usamos os programas Winzip,
Winrar, WinArj, etc para compactar e descompactar arquivos, no mundo Linux o
comando para isso é o tar. Ele oferece diversas possibilidades de opções em seus
parâmetros, veremos aqui apenas as maneiras mais utilizadas.
tar cvf natalia.tar *.ods
criará um arquivo denominado natalia.tar,
contendo todos os arquivos de extensão ods,
no mesmo diretório de onde foi chamado.
Observe que se a extensão “tar” for omitida,
o sistema a atribuirá automaticamente.
tar tvf natalia.tar
exibirá o conteúdo do arquivo natalia.tar.
tar xvf natalia.tar
extrairá o conteúdo do arquivo no diretório corrente.
tar xvf natalia.tar musica.mp3
extrairá apenas o arquivo
“musica.mp3” do arquivo compactado
(também chamados de tarball)
natalia.tar.
Observação 1: alguns arquivos são compactados com a extensão .tar.gz. Para
extrair seu conteúdo devemos usar a sintaxe: tar xzvf nome_do_arquivo.
Observação 2: apesar do tar ser o mais utilizado na compressão e descompressão
de arquivos, o Linux conta ainda com mais dois populares comandos: gzip e bzip2.
25
26
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
help específico para comandos do Bash.
help diff
info
COMANDOS RELACIONADOS ÀS INFORMAÇÕES DO SISTEMA
outra modalidade de ajuda com sintaxe semelhante ao man.
df
exibe o espaço em disco usado por todas as partições. Como a exibição é dada
em blocos, a menos que você seja um especialista da NASA, é melhor usar na forma df
–h. Esse “h” aí significa “humano”, ou seja, você entenderá que o espaço em disco está
sendo exibido em MB e GB.
COMANDOS RELACIONADOS ÀS INFORMAÇÕES DO SISTEMA
df
exibe o espaço em disco usado por todas as partições. Como a exibição é dada
em blocos, a menos que você seja um especialista da NASA, é melhor usar na
forma df –h. Esse “h” aí significa “humano”, ou seja, você entenderá que o espaço
em disco está sendo exibido em MB e GB.
du
lista os tamanhos de arquivos e diretórios. Também é melhor utilizado com o
parâmetro –h (humano, lembra?)
free
mostra a quantidade de memória livre no computador.
free –m
devolve o resultado em megabytes, mais claro aos humanos.
du
lista os tamanhos de arquivos e diretórios. Também é melhor utilizado com o
parâmetro –h (humano, lembra?)
free
mostra a quantidade de memória livre no computador.
free –m
devolve o resultado em megabytes, mais claro aos humanos.
lsdev
exibe um resumo de hardware, especificando endereçamentos como IRQ e
DMA dos dispositivos.
lsdev
exibe um resumo de hardware, especificando endereçamentos como IRQ e
DMA dos dispositivos.
lspci
também relacionado ao hardware, mostra os dispositivos conectados às
interfaces pci do computador.
lspci
também relacionado ao hardware, mostra os dispositivos conectados às
interfaces pci do computador.
uname
usado para exibir diversas informações sobre o sistema, tais como o
nome da maquina, versão do Kernel, dentre outros.
uname
usado para exibir diversas informações sobre o sistema, tais como o
nome da maquina, versão do Kernel, dentre outros.
uname -a
uname -m
uname -r
lsb_release –a
uname -a
uname -m
uname -r
mostra todas as informações.
mostra a arquitetura da máquina.
versão do sistema operacional.
lsb_release –a
mostra informações básicas sobre o sistema operacional. Observe a
presença de “underline” (_) entre os termos.
27
top
mostra todas as informações.
mostra a arquitetura da máquina.
versão do sistema operacional.
mostra informações básicas sobre o sistema operacional. Observe a
presença de “underline” (_) entre os termos.
Exibe os processos e recursos dos sistema (em tempo real). É algo semelhante
ao gerenciador de tarefas do Windows, mas em modo texto.
Durante sua execução, o comando top nos permite um certo grau de interação,
conforme a tabela a seguir:
k
Força a finalização de um processo ( “mata” um processo.)
m
Exibição, ou ocultação das informações sobre a memória.
M
Organiza os processos em função do uso da memória.
N
Classifica os processos pelos seus números de PID.
P
Atualiza a visualização dos processos.
espaço
Atualiza a exibição do quadro de processos.
h
Ajuda interativa.
28
Apostila de Linux – Professor Robson Áquila & Renato da Costa
q
Apostila de Linux – Professor Robson Áquila & Renato da Costa
muito cuidado, pois o programa destrói todas as informações nas partições excluídas.
Sai do comando.
fsck verifica e repara erros nos sistemas de arquivos.
ps
lista estática dos processos em execução.
ps -aux
mkfs formata uma partição do disco rígido.
apresenta todos os processos sendo executados, de todos usuários,
incluindo o nome do usuário a qual o processo pertence.
mkfs -t ext3 /dev/hda3
EXT3
kill
killall
em conjunto com o comando os, permite encerrar de maneira forçada (matar)
um processo em execução.
formata o dispositivo /dev/hda3 em um sistema de arquivos
badblocks este comando verifica a integridade física do disco, ou seja, procura por
blocos de dados danificados.
tem a mesma função de kill, mas permite que se mencione o nome do
processo, em vez de seu pid.
killall mozilla-firefox
força o encerramento do navegador Firefox.
COMANDOS RELACIONADOS AO GERENCIAMENTO DE USUÁRIOS E GRUPOS
useradd
estabelece a criação de um novo usuário no sistema. Não se esqueça de
que o Linux exige login e senha para ser utilizado, portanto se desejarmos criar uma
nova conta, esse é o comando a ser executado. O comando useradd cria uma entrada
para o usuário no arquivo “/etc/passwd” com informações do seu login, UID (user
identification), GID (group identification), shell e diretório pessoal, e a senha
criptografada deste usuário é armazenada no arquivo “/etc/shadow”.
COMANDOS RELACIONADOS AO SISTEMA DE ARQUIVOS
mount
usado para montar um sistema de arquivos, disponibilizando-o para uso.
No Linux, dispositivos como o cd-rom, pendrives e outros precisam ser montados
antes de sua utilização. Pela interface gráfica, geralmente esta operação é mais
conversacional, facilitando a vida do usuário.
sudo mount -t ext3 /dev/hda3 /mnt/disco3
para montar a terceira partição primária do
disco hda (IDE1) formatado em EXT3 no diretório /mnt/disco3. É necessário que o
diretório /media/disco3 tenha sido previamente criado para que o comando tenha
sucesso.
Observe que No Linux, os drives recebem endereços fixos, de acordo com a posição em
que forem instados:
IDE primária
Master = /dev/hda
Slave = /dev/hdb
sudo useradd aquila
cria um usuário denominado aquila, cujo diretório pessoal será
/home/aquila e o shell a ser utilizado será, por padrão, o bash.
sudo useradd -d /home/publicidade aquila cria o usuário aquila, porém mudando o diretório
pessoal para /home/publicidade.
useradd -s /bin/false aquila cria o usuário aquila, porém sem acesso ao bash.
adduser
semelhante ao useradd, oferecendo possibilidade de se introduzir maiores
informações sobre o usuário.
userdel
exclui uma conta de usuário.
userdel –r aquila
além de excluir o usuário, apaga também todo o seu diretório
pessoal, incluindo os arquivos ali existentes.
IDE secundária
Master = /dev/hdc
Slave = /dev/hdd
usermod
umount
usado para desmontar um sistema de arquivos. Note que o
dispositivo não pode estar em uso.
umount /dev/hda3
desmonta a terceira partição primária.
usado para alterar as informações e outras características do usuário.
sudo usermod -d /home/novo_dir -m aquila.
muda o diretório padrão do usuário
aquila (-d) para novo_dir, movendo todo o conteúdo para o novo diretório criado (-m).
sudo usermod -e 03/04/2009 aquila
usuário “aquila” para 03/04/2009.
fdisk usado para criar e excluir partições no disco rígido. Deve ser utilizado com
29
para alterar a data de expiração da conta do
30
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
finger mostra as informações sobre todos os usuários logados no sistema.
COMANDOS RELACIONADOS A UTILITÁRIOS DE TEXTO
finger aquila
exibe as informações apenas do usuário aquila.
cat
exibe o conteúdo do arquivo na tela do terminal. Também pode ser usado para
combinar os conteúdos de arquivos (concatenação).
cat -n teste
exibe o conteúdo do arquivo “teste”, mostrando as linhas numeradas (-n).
cat /etc/passwd
exibe o conteúdo do arquivo de senhas (passwd), situado no diretório
/etc.
passwd
permite alterar a senha do usuário, pode ser usado pelo próprio usuário
logado, ou pelo root, para alterar a senha de qualquer usuário. Também pode ser
usado para bloquear e desbloquear uma conta no sistema.
sudo passwd aquila
sudo passwd –l aquila
sudo passwd –u aquila
o sistema perguntará pela nova senha e pedirá confirmação.
bloqueia a conta do usuário aquila.
desbloqueia a conta aquila.
groupadd
cria um novo grupo no sistema.
groupdel
exclui um grupo.
groupmod
modifica os dados referentes a um grupo.
groupmod –n publicidade comercial
comercial.
id
altera o nome do grupo publicidade para
cat alfa beta > gama
concatena os arquivos alfa e beta, gerando um único arquivo
denominado “gama”, cujo conteúdo será a soma dos dois anteriores. Note que o
símbolo “>”, chamado de redirecionador, é o responsável pela ação de concatenação.
exibe os identificadores do usuário e seu grupo.
cat delta >> gama
adiciona o conteúdo do arquivo “delta” no final de “gama”. Note
que o comando agora usa o redirecionador “>>”.
OBS: se não existir o arquivo mencionado com o comando cat, o terminal se
transformará em um editor simples de texto, onde se pode digitar o conteúdo do novo
arquivo. Salva-se com CTRL + D.
less também exibe o conteúdo de arquivos na tela, mas de forma paginada, ou seja,
arquivos muito longos são exibidos uma página por vez.
less alfa
exibe o conteúdo do arquivo “alfa”, página a página.
ls-lah|less
aqui, usamos um pequeno truque, como o comando “ls-lah” seria muito
longo para caber na tela, forçamos sua combinação com as funções do “less”, através
do chamado pipe ( | ).
31
32
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
COMANDOS RELACIONADOS À MONITORAÇÃO DO SISTEMA
who exibe uma lista dos usuários logados no sistema.
who -m
exibe o nome do usuário conectado no momento.
who –q
exibe a quantidade total e os nomes dos usuários logados.
whoami
o mesmo que who -m.
last informa dados referentes aos logins e logouts efetuados no sistema, isto é, quem
entrou e quem saiu, com as respectivas datas e horas de acessos.
last -a
além das informações padrão do comando “last”, mostra também o nome da
máquina onde os acessos foram realizados.
last –d
adiciona às informações padrão o endereço IP das máquinas.
last –reboot
exibe um relatório sobre as reinicializações do sistema.
lastlog
mostra informações inerentes ao último logins dos usuários no sistema.
lastlog -u renato
exibe informações do último login apenas do usuário renato.
lastlog -t 5
informações sobre todos os usuários que se logaram nos últimos 5 dias.
Observe que o prompt está aguardando o usuário pressionar a tecla ENTER para exibir
mais uma tela cheia.
more semelhante a “less”, oferece as mesmas possibilidades de uso.
grep localiza palavras ou expressões em arquivos.
grep teste alfa
localiza a palavra teste no arquivo alfa.
grep ‘teste teste2 teste3’ alfa
localiza teste1, teste2 e teste3 no arquivo alfa. Observe
a necessidade de se usar aspas simples quando for necessário localizar mais de um
termo no arquivo.
cat/etc/passwd|grep renato
aqui novamente se utilizou o canalizador pipe. Esse
comando irá localizar a expressão “renato” dentro do arquivo /etc/passwd.
COMANDOS RELACIONADOS À REDE
ifconfig
exibe informações sobre a interface de rede, usado também para
configurar as placas de rede.
ifconfig eth0 down
ifconfig eth0 up
desativa a interface de rede denominada eth0.
ativa a interface eth0.
ifconfig eth0 192.168.0.100 netmask 255.255.255.0 up altera o endereço IP e a
máscara de rede da interface eth0, ativando-a em seguida.
sudo ifconfig eth1 hw ether 00:C1:D0:75:3B:08
altera o endereço MAC da interface de
rede eth1. É preciso que a mesma esteja desativada.
tail
exibe, por padrão, apenas as últimas 10 linhas de um arquivo, podendo exibir
outras quantidades, através da passagem de parâmetros.
tail -30 alfa
exibe as últimas 30 linhas do arquivo alfa.
ping comando usado para verificar a conectividade da máquina na rede e entre redes.
ping -c 5 200.102.90.10
verifica se a máquina cujo IP é especificado encontra-se
disponível na rede, ou seja, conectada e acessível naquele momento.
head usado da mesma maneira que o comando “tail”, exibe as primeiras linhas de um
arquivo.
route
Permite exibir a tabela de roteamento (configuração das rotas) IP do
kernel, sendo que com uso das opções add e del permite também modificar esta tabela
inserindo ou deletando registros.
33
34
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
lsmod
lista todos os módulos do kernel carregados na memória. Os módulos são
uma espécie de drivers inerentes a certos dispositivos específicos de hardware.
Observe que agora, basta digitarmos “fd” para que o sistema converta para a
expressão que se encontra entre as aspas simples, facilitando em muito a digitação
de termos longos.
Como os “aliases” só funcionam na sessão ativa, seria fastidioso por demais ter de
repeti-los a cada login, pois não? Aqui vai um macete:
Crie os aliases desejados no arquivo .bashrc, que se encontra no diretório “home” do
usuário. Desta forma, os aliases serão executados automaticamente a cada login.
modinfo
informa dados específicos de um módulo que esteja carregado.
unalias desfaz aliases criados.
modprobe
gerencia os módulos do kernel.
apropos permite realizar uma busca por expressões de comandos do Linux. Usa a
base de dados do comando “Whatis” (veja mais a frente).
COMANDOS RELACIONADOS AOS MÓDULOS DO KERNEL LINUX
COMANDOS RELACIONADOS AO SHELL LINUX (BASH)
alias
como o próprio nome sugere, o comando “alias” permite atribuir “apelidos”
a outros comandos, ou a conjuntos de comandos. Tomemos um exemplo prático:
supondo-se a seguinte seqüência de tarefas a ser executada por um usuário:
1) montar a unidade de disquete;
login
permite o “logon” de um usuário no sistema, bem como efetuar a troca de
usuário.
login –p
troca de usuário, mas permanece com o mesmo desktop.
logout
efetua o encerramento da sessão do usuário.
exit
o mesmo que “logout”.
2) mudar de diretório, indo para aquela unidade recém-montada;
3) listar seus arquivos, mas somente se as duas ações anteriores tiverem sido
efetuadas com sucesso.
su
troca de usuário
su renato -c 'vim /home/renato/arq1'
como usuário renato.
Passo a passo, eu deveria fazer o seguinte:
1) mount /dev/fd0 /mnt/floppy
executa o arq1, no diretório especificado,
sudo
atribui ao usuário poderes de “root” na execução de algum comando.
Deve ser usado com cautela, pois pode colocar o sistema em risco.
2) cd /mnt/floppy
3) ls
uname –a
Exibe diversas informações sobre o sistema. Sem o parâmetro “a”,
mostra apenas o nome do sistema operacional.
Ou, em uma única linha de comando digitar:
mount /dev/fd0 /mnt/floppy; cd /mnt/floppy && ls
Observe a utilização de dois separadores de comandos diferentes:
ponto e vírgula (;)
usado apenas para informar ao sistema que os comandos serão
executados de forma independente, na sequência da digitação.
&&
também simboliza a separação de comandos a serem executados, porém de
forma condicional, ou seja, os comandos seguintes aos “&&” só serão executados
caso não haja nenhum tipo de erro em relação aos anteriores.
Bem, mas voltando ao comando “alias”, do qual nos afugentamos propositalmente
para apresentar mais esta pequena filigrana sobre as linhas de comando,
poderíamos criar um “alias” para a expressão anterior, de forma a tê-la mais
mnemônica e prática a nosso dispor. Vejamos:
alias fd='mount /dev/fd0 /mnt/floppy; cd /mnt/floppy && ls'
whatis
após se criar uma base de dados com o comando ”sudo
makewhatis”, o “whatis” permitirá realizar uma busca que retornará breve
resumo sobre comandos do Linux. Muito útil para dirimir dúvidas. Veja também o
comando “apropos”.
whatis ls halt
oferecerá uma breve descrição sobre os comandos “ls” e “halt”.
whereis como o comando “man” oferece uma biblioteca muito ampla de
35
36
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
informações, podemos usar “whereis” para descobrirmos onde se encontram os
respectivos arquivos de manual sobre a função ou comando desejado.
whereis ls
nos orienta onde encontrarmos com facilidade as documentações
referentes ao comando “ls”.
clear
encerra a sessão de trabalho.
reboot
reinicializa a sessão.
shutdown
which
outro comando de busca excelente; permite localizar, com
precisão, o diretório onde se encontra um programa específico.
whereis konqueror
Konqueror.
halt
encerra, ou reinicializa a sessão de trabalho.
shutdown -h now
encerra, de forma imediata, o sistema.
shutdown -h +15
encerra o sistema em quinze minutos.
retorna o diretório onde se encontra o programa
shutdown –r 10:45 ‘O sistema será reiniciado às 10h45min. Por favor, salve seus
arquivos.’
este comando irá reiniciar o sistema às 10:45, avisando o usuário
de tal ação (observe a mensagem que será enviada a todos os terminais, entre
aspas simples no comando).
usado para limpar a tela do terminal.
echo
sugerido pelo próprio nome do comando, ele “ecoa” o texto
digitado na tela do terminal.
ALGUMAS CONSIDERAÇÕES SOBRE OS COMANDOS APRESENTADOS NO
CAPÍTULO.
echo ‘O Professor Aquila é mais um satisfeito revendedor dos produtos AVON’
a frase entre aspas simples seria simplesmente mostrada na tela.
I – Não pretendemos esgotar o assunto neste breve capítulo, pois a utilização do Shell
do Linux é bastante abrangente, devendo o leitor buscar outras fontes de informações
(sugeridas na bibliografia), à medida que sua inquietação intelectual o locomova a tais
aventuras.
echo /etc/*
mostra o conteúdo do diretório /etc. Observe que não há uma
organização agradável, como acontece com o comando ls.
II – Como deve já ter ficado claro a partir dos exemplos, o comportamento padrão para
um comando pode ser modificado pela adição de uma opção para o comando. O
comando ls, por exemplo, tem uma opção -s , de forma que "ls -s" incluirá o tamanho
dos arquivos na listagem realizada. Há também uma opção -h para que esses dados
estejam em um formato "legível para humanos".
É possível agrupá-las, de tal sorte que ao digitarmos ls -s -h , corresponde a digitarmos
ls –sh.
Já outras opções apresentam-se de forma mais descritiva (longa), como por exemplo:
ls --size --human-readable, o equivalente ao comando exibido anteriormente.
ALGUMAS TECLAS DE ATALHO IMPORTANTES
Teclas Ação
Ctrl + f Move o cursor uma palavra à direita
Ctrl + b Move o cursor uma palavra à esquerda
Ctrl + a Início da linha de comando
Ctrl + e Final da linha de comando
37
38
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Ctrl + t Troca a posição do caractere sob o cursor com o anterior
Ctrl + u Limpa a linha de comando corrente
ALGUMAS QUESTÕES DE PROVAS COM GABARITOS COMENTADOS
Ctrl + y Re-insere o último trecho de comando apagado
Ctrl + r Busca incremental no histórico de comandos utilizados
(SERPRO/2007 – CESPE/UNB) Caso o usuário tivesse optado pelo sistema operacional
Linux, o sistema adquirido teria um preço menor, já que o sistema operacional Linux é
gratuito. Entretanto, esse usuário não teria acesso a diversas funcionalidades, como a
possibilidade de elaboração de planilhas eletrônicas, já que não existem programas
compatíveis com o Linux para elaboração desse tipo de planilha.
Ctrl + c Força o encerramento do comando corrente
Ctrl + d logout
Ctrl + m O mesmo que a tecla Enter
Ctrl + l
Limpa a tela, equivalente ao comando clear
COMENTÁRIO: há uma pequena confusão quando se determina que um software é
gratuito, ou de livre distribuição. Esta última modalidade, onde se enquadra o Linux, não
é necessariamente sinônimo de gratuidade, portanto já temos indícios de que o
examinador irá determinar como falsas suas afirmativas. Finalmente, podemos ter
certeza da falsidade da questão quando ele afirma que o Linux não possui programas
compatíveis para a elaboração de planilhas de cálculos. Neste sistema operacional, há
diversos aplicativos, também de livre distribuição, destinados àquelas tarefas; podemos
citar o mais famoso: BrOffice, composto de Processador de Textos (Writer), Planilha
Eletrônica (Calc) e apresentações multimídia (Impress). Questão Falsa.
Ctrl + s Bloqueia a exibição de informações na tela de saída
Ctrl + q Reativa a exibição de informações na tela de saída
Ctrl + z Põe o processo corrente em background (segundo plano)
(INMETRO/2007 – CESPE/UNB) De forma similar ao que ocorre com sistemas de
arquivos da família Unix/Linux, o sistema de arquivos NTFS provê suporte a operações
de montagem de sistemas de arquivos. Em todos esses casos, a raiz do sistema de
arquivos é denominada “/” ou “\”.
COMENTÁRIO: no Linux, os sistemas de arquivos podem ser montados e desmontados,
o que garante maior confiabilidade no uso. Os tipos de sistemas que aceitam essas
operações são:
ext2
ext3
reiserfs
xfs
vfat
msdos
iso9660
umsdos
Para partições GNU/Linux usando o Extended File System versão
2 (a mais comum).
Para partições GNU/Linux usando o Extended File System versão
3, com suporte journaling
Para partições reiserfs, com suporte a journaling.
Para partições xfs, com suporte a journaling.
Para partições Windows 95 que utilizam nomes extensos de
arquivos e diretórios.
Para partições DOS normais.
Para montar unidades de CD ROM. É o padrão.
Para montar uma partição DOS com recursos de partições EXT2,
como permissões de acesso, links, etc.
O comando mount possui a seguinte sintaxe:
mount [dispositivo] [ponto de montagem] [opções]
39
40
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Apostila de Linux – Professor Robson Áquila & Renato da Costa
Onde:
dispositivo representa a unidade de disco/partição que deseja acessar (como /dev/hda1
(disco rígido) ou /dev/fd0 (primeira unidade de disquetes).
COMENTÁRIO: letra “D”. O sistema operacional Linux possui um ambiente gráfico, onde
faz-se necessário conhecer sua estrutura:
ponto de montagem Diretório vazio de onde a unidade de disco/partição será acessado.
Servidor X
É o programa inerente ao sistema, responsável pelo controle da exibição
dos gráficos na tela, mouse e teclado.
opções: são opcionais e as mais utilizadas são:
Gerenciador de Janelas
É o programa que controla a aparência da aplicação.
Os gerenciadores de janelas (window managers) são programas que atuam entre o
servidor
X e a aplicação. Note é diferentemente do Windows, no Linux podemos utilizar diversos
gerenciadores de janelas, sem que isso comprometa o funcionamento dos aplicativos
abertos.
-r monta a partição somente para leitura.
-w monta a partição como leitura/gravação. É o padrão.
No Linux, a pasta Raiz do sistema é representada por “/”, enquanto que no Windows, a
representação através da barra invertida “\” . Questão FALSA, portanto.
(CÂMARA DOS DEPUTADOS – FCC/2007) O diretório Linux, que contém arquivos de
dispositivos referentes ao hardware, é denominado
Para simplificar, pode-se entender o Servidor X como sendo uma tábula rasa, que será
artisticamente preenchida através dos recursos fornecidos pelos gerenciadores de
janelas.
(A) /dev.
(B) /root.
(C) /bin.
(D) /etc.
(E) /swap.
Dentre os inúmeros gerenciadores de janelas disponíveis, podemos citar:
Window Maker;
AfterStep;
Gnome;
KDE;
Enlightenment;
twm (padrão quando o servidor X é instalado);
IceWm;
BlackBox
COMENTÁRIO: Letra A. Lembrando a estrutura desses diretórios no Linux:
/dev
/root
/bin
/etc
/swap
dispositivos físicos (hardware)
diretório do usuário “root” aquele que tem privilégios de administrador.
arquivos do sistema, permitido também aos usuários.
configurações de serviços.
relaciona-se à partição de troca.
(FESP-2007). Os sistemas operacionais da linha Windows empregam um padrão único
como gerenciador de interface gráfica, designado pela sigla GUI – “Graphical User
Interface”, definido como um mecanismo de interação homem-computador que utiliza
um mouse ou teclado e por meio do qual o usuário é capaz de selecionar esses
símbolos e manipulá-los de forma a obter algum resultado prático. Os sistemas Linux
também disponibilizam o uso de interfaces gráficas,
dentre as quais podem-se citar:
A) Apache, Kernel, Finder e Spotlight
B) Quantum, Samba, KDE e Finder
C) BlackBox, Xfce, Kernel, e Gnome
D) KDE, Gnome, BlackBox e Xfce
E) Spotlight, Quantum, Samba e Apache
Alguns gerenciadores, como o BlackBox, IceWm e twm são mais leves e adaptam-se
melhor a equipamentos mais antigos; outros, como o KDE e GNOME, oferecem recursos
gráficos mais sofisticados, como efeitos 3D nas janelas, etc; mas carecem de
equipamento com memória e capacidade de processamento mais generosos.
Mesmo que uma distribuição opte por certo gerenciador, o Linux é flexível o suficiente
para se utilizar outros à escolha do usuário. Isto é liberdade de uso!
(CRA-RJ / NCE) No Linux, o comando chmod 775 arq.txt altera as permissões do
arquivo para:
(A) rwx–wx–wx
(B) r-xr-x--(C) ---r–xr–x
(D) rwxrwxr-x
(E) rwxrwx--x
Letra D!
41
42
This document was created with Win2PDF available at http://www.win2pdf.com.
The unregistered version of Win2PDF is for evaluation or non-commercial use only.
This page will not be added after purchasing Win2PDF.
Download

Introdução ao Sistema Operacional Linux