Linux: Comandos Básicos (Parte 2)
Disciplina: Laboratório de Sistemas Operacionais
Prof.ª Daniella Dias [email protected]
Permissões
Todo arquivo em um sistema do Linux tem permissões de acesso.
Isso permite ou impede os usuários de vê- lo, modificá-lo ou executá-lo.
O super usuário "root" tem a habilidade de acessar qualquer arquivo no sistema.
Cada arquivo contém restrições de
acesso, restrições de usuário e tem uma
associação de dono/grupo.
Permissões
Todo arquivo é protegido pelos seguintes grupos de permissão, em ordem de
importância:
usuário – aplica-se para o usuário que é o dono do arquivo.
grupo – aplica-se ao grupo que está associado ao arquivo.
outros – aplica-se a todos os outros usuários.
Permissões
Estas permissões se comportam de maneiras distintas para arquivos e diretórios:
leitura
arquivos podem ser exibidos/abertos
conteúdo de diretórios podem ser exibidos
escrita
arquivos podem ser editados ou apagados
conteúdo de diretórios podem ser modificados
execução
arquivos executáveis podem ser executados como um programa
diretórios podem ser acessados
Permissões
As permissões de acesso podem ser vistas através do comando “ls –l”
Tipo do arquivo e permissões
Número de ligações diretas (hard links)
Dono Grupo Tamanho
Data e hora da última modificação
Nome do arquivo ou
diretório Diretório
Permissões
“d” – diretório
“-” – arquivo
“l” – link
dono grupo outros
r – permissão de leitura w – permissão de escrita x – permissão de execução
“-” – ausência da permissão
Importante!
As permissões dos arquivos dependem das permissões do diretório. Por
exemplo, mesmo que um arquivo tenha permissões “-rwxrwxrwx”, outros usuários só poderão acessá-lo se tiverem permissão de busca (x) neste diretório.
Alterando permissões
Comando chmod (Change Mode)
chmod {a,u,g,o}{+,-,=}{r,w,x} <nome do arq ou diretório>
a – all; u – user; g – group; o – other Exemplos:
chmod a+r carta chmod +r carta chmod o=rx carta chmod u+rwx carta
Metacaracteres
Permitem a expansão de nomes de arquivos e diretórios.
* – refere-se a um conjunto qualquer de caracteres.
? – expande somente um caracter.
Exemplos:
ls *o ls o*
ls cart*
ls cart?
ls ?ar*
find
Procura um arquivo dentro de uma hierarquia de
diretórios, imprimindo o caminho a partir do diretório atual.
find <caminho> -name <nome do arquivo>
Se não for especificado o caminho, a busca será realizada no diretório atual.
No caso do uso de metacarcteres, o nome do
arquivo deve ficar entre aspas.
locate
Procura em seu banco de dados todos os diretórios e/ou arquivos que contenham a expressão
fornecida.
locate <expressão>
Enquanto o banco de dados utilizado pelo comando não estiver totalmente atualizado, arquivos recentes podem não ser encontrados.
Exemplo:
locate “*.c”
grep
Filtra um determinado texto da entrada, enviando para a saída apenas as linhas que contenha a sequencia de caracteres.
grep [opções] <string> <arquivo>
ps
Fornece informações sobre os processos que estão executados na máquina.
ps [opções]
ps
ps –au - Exercício
1.
Abra outro terminal.
•
Execute o comando sudo su para mudar seu usuário para root.
•
Abra o editor de textos nano e deixe-o aberto.
•
No terminal anterior execute novamente
o comando ps au
kill
É utilizado para mandar um sinal a um determinado processo, normalmente terminando-o.
kill [-<numero do sinal>] <PID>
Kill - Exercício
1. Execute o comando ps.
2. Execute o comando cat > casa e digite algo.
3. Mantenha o comando executando e abra outro terminal.
4. Execute novamente o comando ps au.
5. Verifique o número do processo do comando cat e execute kill -9 [processo].
6. Observe o terminal que estava executando o cat.
7. Verifique se o arquivo casa foi gerado, se sim,
verifique seu conteúdo.
tar
Guarda uma série de arquivos dentro de apenas um arquivo.
tar [opções] <lista de arquivos>
tar – Exercício
1. Crie um arquivo (.tar) contendo todos os arquivos de seu diretório.
2. Repita o procedimento anterior no modo verboso.
3. Verifique o tamanho do arquivo gerado.
4. Repita incluindo a opção z.
5. Verifique o novo tamanho.
6. Crie um diretório e copie o arquivo gerado para o mesmo.
7. Descompacte o arquivo (opção -xf)
gzip
No geral, remove o(s) arquivo(s) de entrada e
escreve um arquivo de saída compactado com o mesmo nome, acrescentado da extensão .gz.
gzip [opções] <nome do arquivo>
gzip - Exercício
1. Compacte o arquivo criado anteriormente (comando tar).
2. Use a opção -l
3. Descompacte o arquivo.
Entradas e saídas
A entrada de um programa consiste nos dados que lhe são passados inicialmente e necessários para execução do mesmo.
Pode vir do teclado (padrão) ou de um arquivo, por exemplo.
A saída é constituída pelas informações
geradas pelo programa, ou seja, resultado de sua execução.
Pode ser mostrada na tela (padrão) ou em um
arquivo de registro.
Entrada e Saída
Comando cat
cat arquivo.txt
cat
Comando sort (lê dados da entrada padrão e os ordena)
sort arquivo.txt
sort
Redirecionando saídas
> (redirecionamento destrutivo)
>> (redirecionamento não-destrutivo) Exemplos:
ls -l / > arquivos.txt
ls -la /var >> arquivos.txt cat > saida.txt
sort > saida_sort.txt cat >> saida.txt
sort >> saida_sort.txt
Redirecionando entrada