Vous êtes sur la page 1sur 26

Sistemas Operativos Ficha 1 1

DEPART AMENT O
DE
ENGENHARI A
I NFORMTI CA
www. dei . es t g. i pl ei r i a. pt

Si st emas Operat i vos

h t t p: / / t wi t t er . com/ E S T G_ E I _ S O

Ficha 1 Apresentao do sistema operativo Linux
O Linux na perspetiva do utilizador
Tpicos abordados:
Apresentao do Sistema Operativo
Acesso rea de trabalho
Introduo shell
Identidade do utilizador
Organizao da informao (sistema de ficheiros)
Sistema de ajuda
Comandos principais
Outros comandos
Redireccionamento de ficheiros
Pipes
Editor vim
Exerccios

Durao prevista: 2 aulas

1999-2014: {vitor.carreira, patricio, mfrade, loureiro, nfonseca, rui, nuno.costa, leonel.santos}@ipleiria.pt


1 Apresentao do Sistema Operativo
O Linux um sistema operativo, variante do UNIX, que :
Multitarefa - capacidade para a execuo simultnea de vrios
programas.
Multiutilizador - capacidade para o suporte simultneo de vrios
utilizadores.
2 Acesso rea de Trabalho
Identificao
login: nome que identifica o utilizador no sistema.
password: palavra que permite o acesso do utilizador sua rea de
trabalho.
Sistemas Operativos Ficha 1 2

O Linux nas aulas prticas de SO
Dado que, as mquinas dos laboratrios tm como software de sistema o
Windows, o Linux ser usado recorrendo a uma mquina virtual, conseguida pelo uso
do software VMWare Player. Por outro lado, uma vez que os laboratrios so
partilhados, por vrios turnos da UC de sistemas operativos, conveniente ter uma
mquina virtual Linux (Ubuntu) para cada turno.
Assim, para executar o sistema operativo Linux ter que efetuar um dos seguintes
passos:
1. No seu porttil
a. Copiar o ficheiro:
d:\vm\Ubuntu1204.atualizada.vmtools.login=user.pass=password.2013.02.01.7z
de um computador do laboratrio para o porttil e descompactar
para uma diretoria sua escolha;
b. Executar o VMWare Player (preferencialmente a verso 6.x) e
abrir o ficheiro Ubuntu.vmx.
2. No PC do laboratrio
a. Abrir uma sesso de Windows;
b. Fazer apenas uma das opes seguintes (por ordem de
importncia):
i. Caso exista a diretoria d:\vm\ubuntu-12.04-desktop, fazer
uma cpia da diretoria d:\vm\ubuntu-12.04-
desktop\copy\lab\My Virtual Machines\ para o Ambiente
de Trabalho" ou para "Os Meus Documentos" da sua conta;
ii. Caso contrrio, verificar se existe a diretoria
d:\tmp\Ubuntu1204* ;
c. Arrancar com os servios do VMWare (Figura 1);
d. Executar o VMWare Player e abrir o ficheiro Ubuntu.vmx da
diretoria escolhida no ponto b);
Sistemas Operativos Ficha 1 3


Figura 1 - Servios do VMWare Player

NOTA: A mquina virtual tem como utilizador: user e a palavra-passe : password

2.1.1 Acesso a uma sesso Linux
Depois de carregada, a imagem do sistema operativo Linux (Ubuntu), sobre
VMWare Player, este para num cenrio idntico ao da figura seguinte.


Figura 2 Pedido de password do utilizador selecionado (login)

Depois de escolher o utilizador com o qual quer fazer login, o sistema pede a palavra-
chave. Depois de introduzidas as credenciais de acesso (selecionar utilizador e escrever
palavra-chave) o sistema operativo vai exibir a interface grfica. Dado que as aulas
prticas privilegiam o uso da consola de texto, como modo de interao com o sistema
operativo, cada aluno dever abrir esta usando o sistema de menus apresentado na figura
seguinte ou usando a combinao de teclas: CTRL + ALT + T.
Sistemas Operativos Ficha 1 4


Figura 3 Interface grfica e carregamento da consola


Figura 4 A consola textual em execuo

Nota: use a combinao de teclas CRTL + L para limpar o terminar.

3 Shell
A shell (concha) um programa que aceita comandos introduzidos pelo utilizador
e os converte para instrues ao sistema operativo. Por outras palavras, a shell o
programa com o qual o utilizador interage. No modo de texto, a shell aparece como
sendo uma linha de comandos, na qual o utilizador escreve os comandos que pretende
executar.
user@ubuntu:~$
ou
$
Figura 5 Exemplos da linha de comandos do Linux
Sistemas Operativos Ficha 1 5

Para executar um comando, basta escrev-lo na linha de comando, carregando na
tecla de ENTER quando estiver totalmente escrito. A primeira palavra de uma linha de
comando sempre o nome do comando a ser executado. Tudo o resto so argumentos
para o comando.
$ ls
$ ls al
$ ls a -l
Figura 6 Exemplos de comandos

Na Figura 6, o ls o comando sendo a e l os argumentos da linha de
comando (char * argv[ ] na linguagem C).
Alguns Utilitrios
Existem alguns utilitrios que pode experimentar:
cal - visualizar o calendrio de um ms (ou ano) especificado
o Exemplo: $cal 3 2028
date - visualizar a hora corrente do servidor
o Exemplo: $date
o Sada do comando: Sat Feb 23 14:35:36 WET 2013
clear limpa o ecr (em alternativa pode fazer CTRL+L)
Completar palavras com o TAB
A tecla TAB permite completar palavras na linha de comando (mecanismo
designado de tab completion), com base nos ficheiros existentes na diretoria
referenciada. Por exemplo, suponha que na diretoria corrente, existem os seguintes
ficheiros: main.c, funcoes.c, funcoes.h, funcoesAux.h. Caso se pretenda visualizar o
contedo do ficheiro main.c, pode escrever-se na linha de comando:
$ cat main.c

Contudo, se tivssemos escrito apenas cat m, e carregado na tecla TAB, a shell
completaria a nossa palavra acrescentando a parte em falta ao m, isto , ain.c, dado
que na diretoria corrente apenas, aquele nome de ficheiro se inicia por m. Agora,
imagine-se outra linha de comando:
Sistemas Operativos Ficha 1 6

$ cat fu

Carregando na tecla TAB, levaria ao acrscimo de ncoes, sendo que neste caso
existem trs opes: (funcoes.c, funcoes.h, funcoesAux.h). Neste caso o sistema de
completar palavras termina precisamente, quando as duas opes divergem. E se se
carregasse novamente na tecla TAB, ser-nos-iam mostradas as vrias hipteses
possveis (neste caso: funcoes.c, funcoes.h, funcoesAux.h).
Outra forma de completar automaticamente as palavras, consiste em carregar duas
vezes na tecla TAB. Por exemplo, se a linha de comando estiver vazia, a shell indica o
nmero de comandos disponveis ($PATH), perguntando se ns os queremos visualizar
todos (Figura 7).

Figura 7 Duplo TAB" numa linha de comando vazia

Exerccio 1a
Escreva a letra x, na linha de comando, e carregue duas vezes em TAB.
3.1.1 Execuo de comandos em modo privilegiado
No Ubuntu, para executar comandos que necessitam privilgios de administrao
pode utilizar-se o comando sudo antes do comando real que se pretende executar. Se o
comando, que necessita de privilgios de administrao, o adduser (explicado a
seguir), ento para o poder executar tem que se escrever na linha de comandos:
$ sudo adduser

Figura 8 - Execuo de comando em modo de administrao
importante referir que para que o comando adduser seja executado so
necessrias duas condies importantes:
Sistemas Operativos Ficha 1 7

1. A conta atual a ser utilizada pertencer ao grupo dos utilizadores que podem
executar o comando sudo (o utilizador USER pertence a este grupo);
uid=1000(user), gid=1000(user) grupos=1000(user), 4(adm), 24(cdrom),
27(sudo),30(dip), 46(plugdev), 109(lpadmin), 124(sambashare)
2. Saber a password do utilizador atual (que tem que pertencer ao grupo sudo).
3.1.2 Criao de utilizadores
O Ubuntu que disponibilizado para as aulas prticas apenas tem criado o
utilizador USER. Para mostrar como se podem criar contas de utilizador neste sistema
operativo, podero ser usados os comandos adduser ou useradd. De seguida, vai ser
mostrada a forma de utilizar cada um dos comandos.
[adduser]
$ sudo adduser --ingroup adm <nr_aluno>
Detalhes:
sudo comando que permite executar programas como superutilizador
adduser comando que permite criar uma nova conta (utilizador)
--ingroup argumento que permite especificar o grupo a que pertence o utilizador
<nr_aluno> - nome no novo utilizador
Depois de executar este comando sero feitas algumas perguntas, s quais o
utilizador dever responder (palavra-chave, nome, telefone, etc).
Importante: Quando for feita a pergunta A informao est correta? dever carregar
na tecla s (ou y em ingls) para confirmar a criao do utilizador.
[useradd]
$ sudo useradd -G adm -d /home/<nr_aluno> -m <nr_aluno>
Detalhes:
useradd comando que permite criar uma nova conta (utilizador)
-G argumento que permite especificar o grupo a que pertence o utilizador
-d argumento que especifica onde ficar situada a rea de trabalho
-m argumento que serve para forar a criao da a rea de trabalho
<nr_aluno> - nome no novo utilizador
Uma vez criado o novo utilizador, torna-se necessrio especificar a sua palavra-
chave. Esta operao realizada atravs do comando passwd com alguns argumentos:
[passwd]
$ sudo passwd <nr_aluno>
Sistemas Operativos Ficha 1 8

Detalhes:
passwd comando que permite especificar uma nova palavra-chave
<nr_aluno> argumento que especifica o utilizador ao qual se pretende alterar a
palavra-chave.
Quando fizer login com o seu utilizador, se o teclado no estiver corretamente
configurado, utilize a ferramenta grfica (Definies de Sistema| Disposio do
Teclado) para ativar o teclado em portugus.

Figura 9 Verificao das preferncias do teclado

Ateno: Dado que as mquinas dos laboratrios ESTG esto acessveis a toda a
comunidade acadmica, da INTEIRA responsabilidade do estudante salvaguardar
apropriadamente os seus contedos.

4 Identidade do utilizador
Login
UID User Identifier (nmero que identifica um utilizador no sistema)
GID Group Identifier (nmero que identifica o grupo do utilizador no sistema)

As mquinas preferem os nmeros para identificar os utilizadores ( mais
eficiente para armazenamento e processamento)

Comandos para acesso identificao
Para obtermos informao acerca do utilizador e do grupo a que ele pertence,
podemos usar os comandos id e groups (Figura 10).
Sistemas Operativos Ficha 1 9


Figura 10 Comandos id e groups
Na figura anterior, visvel a sigla gid, que significa a identificao do grupo
primrio e serve para definir permisses no sistema de ficheiros, enquanto groups define
a listagem dos grupos, aos quais o utilizador pertence.

5 Organizao da Informao
Sistema de ficheiros em UNIX
semelhana de outros sistemas operativos, o Linux est organizado, numa
hierarquia em rvore, com diretorias e subdiretorias (Figura 11)

Figura 11 Hierarquia de diretorias em Linux
Sistemas Operativos Ficha 1 10

Ficheiros e diretorias
5.1.1 Generalidades
Os ficheiros so identificados pelo nome (file name).
O nome dos ficheiros pode conter quaisquer carateres, com exceo do carter
/.
O nmero mximo de carateres para o nome de um ficheiro 256.
Associado ao conceito de ficheiro existe o conceito de diretoria, que um
conjunto de ficheiros e/ou subdiretorias.
Podemo-nos referir a um ficheiro atravs do seu caminho (path name), ou seja, o
nome do ficheiro e respetiva diretoria.
5.1.2 Diretoria home
a diretoria para o qual o utilizador levado quando entra no sistema.
O carter ~ identifica a diretoria home
5.1.3 Percorrer a rvore de diretorias
Para mudar de uma diretoria para outra utilize o comando cd, (Figura 12), ou
seja, change directory. Note-se que o carter de separao de diretorias em Linux o
carter / (forward slash) em vez do carter \ (backslash) do Windows.
$ cd dir1
$ cd dir1/dir2
$ cd .. (movimenta-se para a diretoria imediatamente anterior)
$ cd ~ (movimenta-se para a diretoria home)
Figura 12 Exemplos do comando cd
5.1.4 Noo de pertena de ficheiros e diretorias
Todos os ficheiros e diretorias pertencem a um determinado utilizador. Para obter
essa informao utilize o comando ls, com as opes a, (lista todos os ficheiros,
incluindo os escondidos, cujo nome se inicia por ponto .) e l (lista em formato
longo), ver Figura 13.
Sistemas Operativos Ficha 1 11


Figura 13 Execuo do comando ls -la

Interpretao da informao mostrada pelo comando ls:
Coluna 1 Permisses de utilizador/grupo/outros para o ficheiro/diretoria;
Coluna 2 Para diretorias, define o nmero de diretorias contidas na mesma. Para
ficheiros, indica o nmero de referncias para o mesmo;
Coluna 3 Identifica o nome do utilizador que dono do ficheiro/diretoria;
Coluna 4 Identifica o nome do grupo que dono do ficheiro/diretoria;
Coluna 5 Ficheiro: Tamanho em bytes | Diretoria: meta-dados;
Coluna 6 Data/hora de modificao do ficheiro/diretoria;
Coluna 7 Nome do ficheiro/diretoria/ligaes.

Exerccio 1b
a) Identifique as linhas que correspondem a diretorias
b) Identifique os donos e grupos dos ficheiros listados
Manipular diretorias e ficheiros
Comando Descrio
ls [diretoria ou
ficheiro]
Lista o contedo de uma diretoria (equivalente ao dir).
Se nada for especificado lista a diretoria corrente.
ls l Lista com todos os pormenores
ls la Lista tudo com todos os pormenores
pwd Mostra a diretoria corrente
Sistemas Operativos Ficha 1 12

cd [dir] Muda para a diretoria dir. Se no for especificada a diretoria ento
muda para a diretoria home.
Diretorias especiais:
. diretoria corrente
.. diretoria anterior
~ home directory
mkdir <dir> Cria a diretoria
cp origem destino Copia o ficheiro de origem para o ficheiro de destino
rm <diretoria ou
ficheiro(s)>
Remove o(s) ficheiro(s) especificados. No caso de ser uma diretoria,
esta tem de estar vazia. Adicionar r para remover diretorias e
subdiretorias.
cat <nome do
ficheiro>
Mostra o contedo de um ficheiro
more <nome do
ficheiro>
Mostra o contedo de um ficheiro passo a passo
Tabela 1- Comandos principais para manipular diretorias e ficheiros

6 Sistema de ajuda
Man
O Linux possui um sistema de ajuda embutido no sistema operativo, que pode ser
acedido atravs do comando man:
Sintaxe: man [seco] <comando>

Exerccio 1c
a) Obter ajuda sobre o comando ls
b) Obter ajuda sobre o comando man
Sistemas Operativos Ficha 1 13

Mdulo interativo do man Alguns comandos
Comando Efeito
<space> Avana para a prxima pgina
Q Termina
B Recua para a pgina anterior
<enter> Mostra a prxima linha
P Volta para a pgina inicial, indicando o nmero de linhas da pgina
/palavra Pesquisa palavra no texto da pgina
n Procura a prxima ocorrncia da ltima pesquisa
h Exibe ajuda sobre os comandos interativos da pgina de manual
Tabela 2 - Alguns Comandos interativos do man
Algumas opes do comando man
Opo Efeito
-k <palavra> Pesquisa palavra nos cabealhos das pginas de manual, mostrando
todos os cabealhos onde se encontre a palavra
Exemplo: man k passwd
-a <palavra> Mostra todas as pginas onde se encontre no cabealho a palavra
Tabela 3 - Algumas opes do man
Exerccio 1d
O que fazem os seguintes comandos?
a) whatis <palavra>
b) apropos <palavra>
c) whereis <comando>
d) which <comando>
Seces do Manual
O manual encontra-se organizado em seces:
Seco 1 Comandos (o mais importante!)
Seco 2 Chamadas ao sistema
Seco 3 Biblioteca de programao
Sistemas Operativos Ficha 1 14

Por vezes, existem palavras que esto descritas em mais do que uma seco, para
aceder descrio numa seco, esta deve ser especificada.
Sintaxe:
man <seco> palavra
Figura 14 Utilizao do comando man

Exerccio 1e
Verifique, o resultado da execuo dos seguintes comandos:
a) man printf
b) man 3 printf

7 Comandos principais
Listagem de diretorias
$ ls [opt]
-a Lista todos os ficheiros de uma diretoria
-F Lista as diretorias com o carter /, a seguir ao nome da diretoria e o
carter *, a seguir ao nome dos ficheiros executveis.
-l Lista os detalhes dos ficheiros e diretorias
-R Lista o contedo de todos os subdiretorias
-t Lista o contedo do diretorias por ordem de modificao

Exerccio 1f
a) Efetue a listagem detalhada de todos os ficheiros, da diretoria atual
b) Faa uma listagem recursiva e detalhada da diretoria atual
Criar / remover diretorias
$ mkdir <nome_diretoria>
Cria uma diretoria com o nome nome_diretoria

$ rmdir <nome_diretoria>
Remove a diretoria com o nome nome_diretoria. A diretoria deve
estar vazia.


Sistemas Operativos Ficha 1 15

Exerccio 1g
a) Crie a diretoria temp
b) Dentro da diretoria temp crie a diretoria testes
c) Crie a diretoria trabalhos
d) Crie a diretoria aulas

Mudar de diretoria
$ cd [diretoria1]
muda para diretoria 1


$ cd [opt]
opt:
.. Muda para a diretoria ascendente
~ Muda para a diretoria home

Exerccio 1h
a) Mude para a diretoria home
b) Mude para a diretoria trabalhos
c) Mude para a diretoria ascendente
Permisses
Utilizador Grupo outros
r w x r w x r w x
4 2 1 4 2 1 4 2 1

Legenda:
r read, w write, x execute
4 read, 2 write, 1 execute

$ ls l
Mostra as permisses de acesso

$ chmod 754 ficheiro1
Altera as permisses para r w x r - x r - -

$ chmod u+x ficheiro1
Dar permisses ao utilizador para executar o ficheiro1

Sistemas Operativos Ficha 1 16

$ chmod g+rx ficheiro2
Dar permisses ao grupo para leitura e execuo ao ficheiro2

$ chmod o+rx ficheiro2
Dar permisses aos outros para leitura e execuo ao ficheiro2

$ chmod a+r ficheiro3
Dar permisses a todos para leitura ao ficheiro3

$ chown user ficheiro4
Alterar o dono do ficheiro4 para o utilizador user

$ chgrp grupoA ficheiro5
Alterar o grupo do ficheiro5 para grupoA

$ chown user:grupoA ficheiro6
Alterar o dono do ficheiro6 para o utilizador user e o grupo para o
grupoA


Exerccio 1i
a) Mude para a diretoria home
b) Altere as permisses diretoria trabalhos para: r w x r - x r - -
c) D permisses ao grupo para leitura da diretoria trabalhos
d) Altere o dono e grupo da diretoria trabalhos para um utilizador e
grupo sua escolha
Copiar ficheiros e diretorias
$ cp [opt] origem destino
Copia o ficheiro origem para destino

$ cp ficheiro1 diretoria1
Copia o ficheiro1 para o diretoria1

$ cp r diretoria1 diretoria2
Copia o diretoria1 para diretoria2

Exerccio 1j
a) Mude para a diretoria home
b) Copie o ficheiro /etc/services para a diretoria trabalhos

Sistemas Operativos Ficha 1 17

Remover ficheiros e diretorias
$ rm [opt] ficheiro1
Remove o ficheiro1

$ rm r diretoria1 (muito cuidado ao utilizar)
Remove recursivamente a diretoria1

$ rmdir diretoria1
Remove a diretoria1 se estiver vazia
Exerccio 1k
a) Mude para a diretoria home
b) Remova a diretoria temp

Mover ficheiros e diretorias
$ mv [opt] ficheiro1 ficheiro2
Move ou altera o nome de ficheiro1 para o ficheiro2

$ mv [opt] dir1 dir2
Move ou altera o nome da dir1 para dir2

$ mv [opt] ficheiro1 dir1
Move o ficheiro1 para a dir1
$ mv i ficheiro1 dir1
Move o ficheiro1 para dir1. Caso exista, em dir1 um ficheiro com o
nome ficheiro1, perguntado ao utilizador o que pretende fazer

Exerccio 1l
a) Mude para a diretoria home
b) Mova a diretoria trabalhos para dentro da diretoria aulas
Visualizar contedo de ficheiros
$ cat ficheiro1 ficheiro2
Mostra o contedo de todos os ficheiros especificados

$ more ficheiro1
Mostra o contedo do ficheiro1 pgina a pgina

Sistemas Operativos Ficha 1 18

$ tail ficheiro1
Mostra as ltimas linhas de um ficheiro

$ tail n xx ficheiro1
Mostra as ltimas xx linhas do ficheiro1

$ head ficheiro1
Mostra as primeiras linhas do ficheiro1

$ head -n xx ficheiro1
Mostra as primeiras xx linhas do ficheiro1

Exerccio 1m
a) Mude para a diretoria home
b) Mostre todo o contedo do ficheiro services da diretoria trabalhos
c) Mostre o contedo do ficheiro services pgina a pgina
d) Mostre as primeiras 5 linhas do ficheiro services
e) Mostre as ltimas 2 linhas do ficheiro services
Conceito de metacaracteres
? (qualquer caracter na posio indicada)
* (qualquer caracter em qualquer posio)
abc (qualquer dos carateres enumerados)
a-e (qualquer dos carateres na gama indicada)

Exemplo: $cp *.txt ./FilesTexto
$ rm *.?

8 Ligaes
Hard link (ficheiros)
$ ln [opt] <origem> <nome_do_link>
Os nomes origem e nome_do_link apontam para o mesmo ficheiro
que obrigatoriamente deve existir.
Sistemas Operativos Ficha 1 19

Soft link (ficheiros e diretorias)
$ ln s <dir1> <dir2>
criada uma ligao simblica de dir2 para dir1. A diretoria dir1
pode no existir no sistema de ficheiros. Neste caso, o comando ls
mostra a respetiva ligao, dir2, com fundo a vermelho.

Exerccio 1n
a) Crie um link de nome services_sombra.txt para o ficheiro services
b) Crie uma ligao simblica job para a diretoria aulas

9 Controlo de processos
$ jobs
Mostra informaes sobre os processos

$ fg <identificao do processo>
Coloca em foreground o processo especificado.

$ bg <identificao do processo>
Coloca em background o processo identificado por Identificao do
processo. Caso no, seja especificado qualquer processo como
argumento, este comando coloca o ltimo processo parado em
background.

$ ps [opt]
Mostra os processos do utilizador
-a mostra todos os processos
-l formato longo
-u mostra os processos do dono
-x mostra processos que no esto associados a um terminal

$ kill 9 <Identificao_processo>
Termina o processo identificado por Identificao_processo


Exerccio 1o
a) Apresente uma listagem de todos os processos, onde conste
tambm os donos dos mesmos.

Sistemas Operativos Ficha 1 20

b) Execute e verifique o funcionamento dos seguintes comandos:
a. sleep 90
b. CTRL + Z
c. jobs
d. bg
e. jobs
f. fg


10 Outros comandos
$ whoami
Identificao do utilizador

$ grep [opt] <expresso> [<ficheiro>]
Procura palavras num ficheiro
-i ignora maisculas e minsculas
-c nmero de linhas que verificam a condio
-v inverte a pesquisa, exibindo apenas as linhas que no verificam,
a condio

Exemplo: grep palavra1 ficheiro1


$ find [<caminho>] [<expresso>]
Procura ficheiros e diretorias com o nome especificado
-name <padro> mostra os que satisfazem o padro
-iname <padro> como name mas case insensitive
-type <tipo> mostra os do tipo: f ficheiros, d diretorias, l links
-ctime [+|-] ficheiros modificados mais ou menos n dias
-anewer ficheiro mostra ficheiros mais recentes, que ficheiro

Exemplo: find / -name testo.txt print
find iname *txt
find anewer ficheiro


Sistemas Operativos Ficha 1 21

wc <opt>ficheiro
Devolve o nmero de linhas, palavras e carateres de um ficheiro
-l devolve o nmero de linhas do ficheiro
-w devolve o nmero de palavras do ficheiro
-c devolve o nmero de carateres do ficheiro
Exemplo: wc lwc ficheiro1

$ cut <opt> ficheiro
Permite devolver colunas de um ficheiro
-f especifica os campos a devolver
-d especifica o delimitador de campo (por omisso o tab)
-c carateres a devolver
Exemplo: mostrar todos os logins registados na mquina
cut f1 d: /etc/passwd

Exerccio 1p
a) Procure a expresso root no ficheiro /etc/passwd
b) Procure a expresso ROOT no ficheiro /etc/passwd
c) Como faria para ter sucesso na procura da alnea b?
d) Procure a diretoria trabalhos a partir da sua diretoria home
e) Quantos carateres tem o ficheiro /etc/resolv.conf?
f) Para que serve o comando paste (sugesto man paste)

11 Comandos adicionais
$ w
Identificao do utilizador e das tarefas que est a executar

$ hostname
Nome da mquina qual est ligado

$ which ficheiro
Devolve o caminho absoluto da localizao do ficheiro

$ sleep segundos
Para durante o nmero de segundos especificados
Exemplo: sleep 2

Sistemas Operativos Ficha 1 22

$ df
Mostra o espao em disco livre
$ du
Mostra o espao em disco usado

$ history
Mostra os comandos efetuados

Exemplo: history
Exemplo: !30
$ tar cvf ./mail.tar ./Mail
O contedo da diretoria Mail organizado, num ficheiro que ter o
nome mail.tar.

$ tar xvf ./mail.tar
O contedo do ficheiro mail.tar restaurado para a informao
original.

$ tar cvfz ./mail.tgz ./Mail
O contedo do diretoria Mail organizado, num ficheiro que ter o
nome mail.tar e simultaneamente comprimido, ao esta efetuada
pela opo z.

$ tar xvfz ./mail.tgz
O contedo do ficheiro mail.tar restaurado para a informao
original, sendo descomprimido pela opo z, na situao de ter sido
previamente comprimido.

$ gzip -9 mail.tar
Comprime ao mximo o ficheiro mail.tar, criando o ficheiro
mail.tar.gz.

$ gzip -d mail.tar.gz
Descomprime o ficheiro mail.tar

$ seq <nmero>
Mostra um sequncia de 1 at ao nmero (>1)

$ seq <nmero_inicial> <nmero_final>
Mostra uma sequncia do nmero inicial at ao nmero final

$ wget <URL >
Permite o acesso on-line URL indicada e faz o download (via
http, https ou ftp) da pgina especificada.
Sistemas Operativos Ficha 1 23

12 Redireccionamento dos canais padro para ficheiro
Operadores de redireccionamento:
> ou 1> redireccionamento do stdout
2> redireccionamento do stderr
>> ou 1>> redireccionamento com juno do stdout
2>> redireccionamento com juno do stderr
< redireccionamento do stdin
Exemplos:
$ ls > data.txt
$ ls >> data.txt
$ mail user1 < mensagem.txt
$ cat ficheiro1 ficheiro2 > ficheiro3
$ echo "export http_proxy=http://proxy.campus2.ipleiria.pt:8080/ " >>
~/.bash_profile

Exerccio 1q
a) Envie a data do sistema (date) para o ficheiro data.txt

13 Pipes (|)
O pipe redireciona a sada de um comando para a entrada de outro.
No exemplo seguinte, o comando wc l devolve o nmero de linhas do
resultado do comando ps aux.
$ ps aux | wc l

Exemplos
Exibe os logins e o caminho completo das respetivas diretorias de
todos dos utilizadores cujo login contm a palavra root:
$ cut -f1,6 -d: /etc/passwd | grep root

Exerccio 1r
a) O que faz o seguinte comando?
$ ps aux | grep ^root_ | wc -l
Sistemas Operativos Ficha 1 24

14 Editor vim
Uma das ferramentas mais usadas em Linux para editar texto, o vim.
$ vim nome_ficheiro

O vim tem dois modos de funcionamento: modo de comando, em que as
teclas pressionadas correspondem a comandos e o modo de edio
propriamente dito.
Para passar, ao modo de comando necessrio premir a tecla Esc. Para
passar, a modo de edio, basta utilizar um comando como o i ou o a que
ative este modo.
De seguida, so apresentados, alguns dos muitos comandos possveis:

:q Sair sem gravar (desde que no tenha sido feita nenhuma
alterao)
:q! Sair sem gravar (caso tenha sido feita alguma alterao no
ficheiro, a opo :q no suficiente)
:x Sair e gravar o ficheiro
:w Gravar
:w ficheiro Gravar com um determinado nome
i Passar a modo de edio (inserir texto antes do cursor)
a Passar a modo de edio (inserir texto depois do cursor)
x Apagar letra
dd Apagar linha
u Undo
h Mover o cursor para a esquerda
j Mover o cursor para baixo
k Mover o cursor para cima
l Mover o cursor para a direita
/palavra Procurar palavra
n Procurar a prxima palavra


Sistemas Operativos Ficha 1 25

Bibliografia adicional
Unix
- Quick reference cards: http://www.digilife.be/quickreferences/quickrefs.htm
- Livro Unix Power Tools, 3-a edio, outubro 2002
(http://oreilly.com/catalog/9780596003302/ )
Vim
- Quick reference cards http://www.google.com/search?q=vim+quick+reference+card
- Livro vi and Vim, OReilly, julho 2008 (http://oreilly.com/catalog/9780596529833/ )






15 Exerccios (extra aula)
1. Descreva a ao dos seguintes comandos, recorrendo, se necessrio ao
manual eletrnico (man).
a) sleep 36 ; echo Est na hora &
b) cat horrio_1 horrio_2 > dirio.txt
c) ls l > ficheiro_1 2 > ficheiro_2
d) find . name rede.? print
e) who | grep eiso_ | wc l
f) chmod 655 ~/public_html
g) tar cvf mymail.tar ~/Mail
h) cp r ./Mail ./lixo
i) rm r ./lixo
j) ps aux | grep 9618
k) grep ftp /etc/inetd.conf
l) kill 1990
m) ls l | cut c15-24
n) cut f1 d: /etc/passwd
o) cut f3 d: /etc/passwd
p) mail s teste `cut f1 d: /etc/passwd` < mensagem.txt
q) ls l `cut f6 d: /etc/passwd`
Sistemas Operativos Ficha 1 26

r) ls l `find ~` 2> /dev/null
s) find / -mtime 1 \! type d print
t) grep -v '^#' /etc/inetd.conf | wc l
u) mail s teste `cut f1 d: /etc/passwd | grep ^eiso_`
v) w | tr -s ' ' '#'
w) w | tr s # | cut f1,2 d#
x) kill 1 `ps aux | tr s # | cut f2 d#`
y) grep v eiso_
z) ps aux | less
aa) ps aux | grep '^patricio' | tr -s ' ' '#' | cut -f2 -d'#' | less



2. Que, comando ou comandos utilizaria para executar, as seguintes aes?
a) O ficheiro smbpasswd.txt foi criado no dia 01/02/2000, quantos
ficheiros foram criados no sistema operativo aps esse dia?
b) Supondo que, pretende executar o programa sleep 60, em
background e simultaneamente enviar as mensagens de sada para
o ficheiro /tmp/sleep.log.
c) Saber o nmero de utilizadores da mquina cujo, o login comee por
eiso.
d) Contar o nmero de processos atualmente a correr, no sistema
operativo, pertencentes a utilizadores cujo, o login comea por eiso.

Vous aimerez peut-être aussi