Buscar

Comandos externos de shell para scripts eficientes

Esta é uma pré-visualização de arquivo. Entre para ver o arquivo original

Programação para Servidores
Mario Cavalcante
Aula 5
Objetivos
Conhecer os comandos externos de um shell;
Desenvolver scripts mais eficientes utilizando comandos e estruturas de controle mais complexas
2
‹nº›
A possibilidade de utilização de comandos e aplicativos do sistema operacional tornam scripts do shell mais poderosos. 
Tal poder vem da união dos comandos do sistema e diretivas do shell com construções simples de programação.
3
Comandos externos
‹nº›
Comando básico para listar o conteúdo de um diretório. Alguns parâmetros:
-R - lista os subdiretórios recursivamente
-S - ordena pelo tamanho do arquivo
-t - ordena pela hora de modificação
-r - reverte a ordenação
-a - mostra arquivos ocultos (iniciados por .)
-h - mostra em formato mais apropriado para leitura humana
-l - utiliza formato longo para mostrar atributos de arquivos
4
Comandos básicos - ls
‹nº›
Exibe o conteúdo de um arquivo texto.
Envia o conteúdo do arquivo para a saída padrão (por padrão o monitor). 
5
cat /etc/named.conf
Comandos básicos - cat
‹nº›
Com cat –help é possível encontrar alguns complementos interessantes. 
Para quem desenvolve scripts o comando cat –n arquivo exibe o número das linhas do arquivo
6
cat –n /etc/named.conf
Comandos básicos - cat
‹nº›
Similar ao cat, porém as linhas do arquivo são mostradas da última para a primeira.
7
tac /etc/named.conf
Comandos básicos - tac
‹nº›
Envia o conteúdo do arquivo para a saída padrão, mas mostra as linhas de trás para frente. A ordem das linhas é mantida, porém são mostrados do último ao primeiro caractere da linha.
8
rev /etc/named.conf
Comandos básicos - rev
‹nº›
Cópia de arquivos. 
Alguns parâmetros
-f - força a cópia
-i - interativo (pergunta antes de sobrescrever)
-R, -r - copia diretórios recursivamente
-v - mostra os arquivos que estão sendo copiados
Sintaxe: cp origem destino
9
cp /etc/named.conf /home/teste
Comandos básicos - cp
‹nº›
Move arquivos. Também utilizado para renomear. 
Alguns parâmetros:
-f - força a movimentação
-i - interativo (pergunta antes de sobrescrever)
-v - mostra os arquivos que estão sendo movidos
Sintaxe: mv origem destino
10
cp /etc/named.conf /home/teste
Comandos básicos - mv
‹nº›
rm - Remove (deleta) arquivos. Alguns parâmetros:
-f - força a remoção
-i - interativo (pergunta antes de remover)
-R, -r - remove diretórios recursivamente
-v - mostra os arquivos que estão sendo removidos
rmdir
Remove diretórios vazios
11
rm –rf /home/teste
Comandos básicos – rmdir e rm
‹nº›
Cria um novo diretório
12
mkdir /home/teste
Comandos básicos – mkdir
‹nº›
Permissões de acesso protegem o sistema de arquivos do acesso indevido de pessoas ou programas não autorizados. 
O princípio da segurança é baseado na definição de como será o acesso aos arquivos por donos, grupos e outros usuários
13
Direitos de acesso
‹nº›
No Linux cada arquivo possui uma definição de:
dono: Usuário que criou o arquivo ou o diretório.
grupo: Cada usuário pode fazer parte de um ou mais grupos e então acessar arquivos que pertençam ao mesmo grupo que o seu.
outros: Categoria de usuários que não são donos ou não pertencem ao grupo do arquivo.
14
Direitos de acesso
‹nº›
Para cada um destes, usuário, grupo e outro (“UGO”) são definidos os direitos de acesso de 
leitura (read), 
escrita (write) e 
execução (eXecute).
Resumindo: rwx para UGO
15
Direitos de acesso
‹nº›
Verificando os direitos dos arquivos de um diretório:
16
ls -la /home/professor/shell
[root@professor shell]# ls -la
total 13156
drwxrwxrwx 3 root root 4096 Mai 31 19:36 .
drwxrwxrwx 30 root root 4096 Out 11 20:54 ..
drwxrwxrwx 8 root root 4096 Mai 10 17:45 exemplos
-rw-r--r-- 1 root root 6716606 Mai 31 19:36 exemplos.tar.gz
-rw-r--r-- 1 root root 6730922 Mai 31 19:36 exemplos.zip
-rwxrwxrwx 1 root root 119 Set 25 2015 index.php
-rwxrwxrwx 1 root root 119 Set 25 2015 index.php~
Direitos de acesso
‹nº›
Detalhando os direitos
17
[root@professor shell]# ls -la
total 13156
drwxrwxrwx 3 root root 4096 Mai 31 19:36 .
drwxrwxrwx 30 root root 4096 Out 11 20:54 ..
drwxrwxrwx 8 root root 4096 Mai 10 17:45 exemplos
-rw-r--r-- 1 root root 6716606 Mai 31 19:36 exemplos.tar.gz
-rw-r--r-- 1 root root 6730922 Mai 31 19:36 exemplos.zip
-rwxrwxrwx 1 root root 119 Set 25 2015 index.php
-rwxrwxrwx 1 root root 119 Set 25 2015 index.php~
-rw-r--r-- 1 root root 6730922 Mai 31 19:36 exemplos.zip
U G O
Direitos de acesso
‹nº›
Detalhando os direitos
18
-rw-r--r-- 1 root root
 
 
 
U G O
U r w – leitura e escrita
G r - - Somente leitura
O r - - Somente leitura
Direitos de acesso
‹nº›
chmod
19
4 2 1
U r w – 6
G r - - 4
O r - - 4
r w x
4 2 1
Direitos de acesso
‹nº›
Para que usuário, grupo e outros tenham rwx
20
4 2 1
U r w x 7
G r w x 7
O r w x 7
r w x
4 2 1
chmod 777 arq
Direitos de acesso
‹nº›
Outra sintaxe do chmod
21
4 2 1
U r w x 7
G r w x 7
O r w x 7
r w x
4 2 1
chmod 777 arq
chmod ugoa+= rwx arq
Direitos de acesso
‹nº›
22
chmod 777
chmod ugoa+= rwx arq
chmod 755
chmod goa+=rx arq
U r w x 7
G r - x 5
O r - x 5
4 2 1
U r w x 7
G r w x 7
O r w x 7
4 2 1
Direitos de acesso
‹nº›
Cria um link semelhante a um atalho do Windows.
Link simbólico fica quebrado quando o arquivo referenciado é movido
Hard Link se mantém mesmo quando o arquivo é movido. 
23
ln /home/aula/script1.sh programa
ln –s /home/aula/script1.sh programa
Comandos básicos – ln
‹nº›
date
Mostra a data e a hora do sistema. Também é utilizado para acertar a data/hora.
time
Mostra estatísticas de utilização de tempo do processo executado como parâmetro.
24
Comandos para data e hora 
‹nº›
at
Programa um aplicativo para executar automaticamente em determinada data/hora.
Sintaxe:
25
at  hh:mm  -f  commando
        
at  -t  AAAAMMDDhhmm  -f  comando
Comandos para data e hora 
‹nº›
sleep
Suspende a execução de um script por uma dada quantidade de segundos.
 
hwclock, clock
Consulta ou acerta a hora no relógio do hardware.
26
Comandos para data e hora 
‹nº›
cal
Mostra um calendário.
27
Comandos para data e hora 
‹nº›
sort
Mostra um arquivo com as linhas em ordem alfabética.
sort /etc/named.conf
28
Comandos para processamento de texto
‹nº›
uniq
Remove linhas duplicadas de um arquivo ordenado.
head
Envia as primeiras linhas de um arquivo para a saída padrão.
29
Comandos para processamento de texto
‹nº›
tail
Envia as últimas linhas de um arquivo para a saída padrão. Quando utilizado com o parâmetro -f o comando continua mostrando novas linhas que são adicionadas ao arquivo (útil para monitorar arquivos de log).
30
Comandos para processamento de texto
‹nº›
wc
Exibe a quantidade de linhas, palavras e caracteres em um arquivo.
31
Neste exemplo o arquivo possui: 
83 linhas, 
185 palavras e 
1571 caracteres.
Comandos para processamento de texto
‹nº›
Compactação e agrupamento de arquivos
tar
gzip
bzip2
zip, unzip
arj, unarj
rar, unrar
32
Comandos para arquivamento
‹nº›
file
Identifica o tipo de um arquivo.
which
Mostra em que diretório se encontra determinado arquivo.
diff
Compara 2 arquivos e mostra as diferenças entre eles.
33
Comandos para arquivamento
‹nº›
su
Executa um programa como um usuário substituto ou inicia um shell como outro usuário.
uname
Exibe informações sobre o sistema.
34
Comandos do sistema
‹nº›
free
Mostra o total de memória RAM e swap utilizada pelo sistema.
du
Mostra o total de espaço em disco utilizado (recursivamente) por arquivos e/ou diretórios.
df
Mostra a utilização dos discos/partições.
35
Comandos do sistema
‹nº›
dmesg
Mostra todas as mensagens emitidas durante o processo de boot do sistema.
uptime
Mostra por quanto tempo o sistema está em execução.
36
Comandos do sistema
‹nº›
Programação
para Servidores
Atividade Aula 5
Mario Cavalcante
Desenvolva um Script que: 
liste os arquivos de /etc
exiba a quantidade de memória
exiba a ocupação dos discos
38
Atividade
‹nº›
#!/bin/bash
echo “Listagem dos arquivos:”
ls /etc
echo “Memória em uso:”
free
echo “Ocupação do disco:”
df
39
Solução
‹nº›

Teste o Premium para desbloquear

Aproveite todos os benefícios por 3 dias sem pagar! 😉
Já tem cadastro?

Continue navegando