4 de abril de 2017
Salviano A. Leão – 1
Sumário
• Sumário
☞ Linux: comandos básicos
Referências
☞ Bash e ferramentas
Manuais
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 2
• Sumário
Referências
• Referências para os
comandos básicos
• Referências para
Shell-script
Manuais
Administração
Shell Script
Segurança
Arquivos Referências
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 3
Referências para os comandos básicos
• Sumário
☞
Referências
http://www.guiaubuntupt.org/wiki/index.php?title=Comandos_basicos#col
• Referências para os
comandos básicos ☞
• Referências para
Shell-script http://www.planetarium.com.br/planetarium/noticias/2004/2/1076629936
Manuais
Administração
☞ http://wiki.ubuntu-br.org/ComandosBasicos
Shell Script
☞ http://www.infowester.com/comandoslinux.php
Segurança
Arquivos ☞ http://www.mtm.ufsc.br/~krukoski/pub/linux/focalinux2/ch-cmdv.htm
Processos no Linux
☞ http://pt.wikipedia.org/wiki/Guia_de_comandos_para_Linux/Unix
Shell Script
O sed ☞
http://www.vivaolinux.com.br/artigo/Fundamentos-do-sistema-Linux-com
☞ http://focalinux.cipsga.org.br/
Salviano A. Leão – 4
Referências para Shell-script
• Sumário
☞ Júlio Cezar Neves: http://br.gnome.org/TWikiBar/TWikiBarPapo001
Referências
• Referências para os
☞ Aurélio Marinho Jargas: http://aurelio.net/shell/
comandos básicos
• Referências para
Shell-script
☞ wikipedia: http://pt.wikipedia.org/wiki/Shell_script
Manuais
☞ Shell Script: http://www.inf.ufpr.br/afms03/shell.html
Administração
Salviano A. Leão – 5
Livros recomendados
• Sumário ☞ Julio Cezar Neves, Programação Shell Linux, Editora Brasport 9a¯ edição (2013)
Referências
• Referências para os ☞ Aurélio Marinho Jargas, Shell Script Profissional, editora Novatec (2008).
comandos básicos
• Referências para
Shell-script ☞ Aurélio Marinho Jargas, Expressões Regulares – Uma abordagem divertida,
Manuais editora Novatec 3a¯ edição(2009).
Administração
☞ João Eriberto Mota Filho, Descobrindo o Linux – Entenda o sistema
operacional GNU/Linux, editora Novatec 3a¯ edição(2012).
Shell Script
Segurança
Arquivos
☞ Carl Albing, JP Vossen, and Cameron Newham, Bash Cookbook, O’Reilly First
Processos no Linux
Edition (2007).
Shell Script
O sed ☞ Eric Foster-Johnson, John C. Welsh and Micah Anderson, Beginning Shell
Scripting, Wiley Publishing Inc. (2005).
☞ Dale Dougherrty and Arnold Robbins, Sed & awk, O’Reilly Second Edition (1997).
☞ Jeffrey E.F. Friedl, Mastering Regular Expressions, O’Reilly Third Edition (2006).
Salviano A. Leão – 6
• Sumário
Referências
Manuais
• Obtendo ajuda
Administração
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
Manuais
O sed
Salviano A. Leão – 7
Obtendo ajuda
• Sumário
help Mostra informações gerais sobre os comandos intrínsecos do Shell;
Referências
man Mostra toda a informação a respeito de um comando;
Manuais
• Obtendo ajuda info Mostra documentação no formato próprio do info;
Administração
Shell Script apropos Pesquisa na páginas do man nomes e descrições que se encaixam o co-
Segurança mando buscado;
Arquivos
whatis Procura nomes na páginas do man e mostra na tela as páginas de descrição
Processos no Linux
de qualquer nome que se assemelha;
Shell Script
# comando -- help
Salviano A. Leão – 8
man pages - Manual de Referências
• Sumário
Estrutura das Páginas do man
Referências
Comandos que podem ser executados a
Manuais
1. Comandos do usuário
• Obtendo ajuda partir do shell
Administração Funções que devem ser executadas pelo
2. Chamadas do sistema
Shell Script kernel
Segurança
Funções internas das bibliotecas, princi-
3. Biblioteca de funções
Arquivos
palmente as da libc
Processos no Linux
Driver e hardware, principalmente os en-
Shell Script 4. Formato de arquivos especiais
contrados em /dev
O sed
Formato de arquivos e convenções, por
5. Arquivos de configuração
exemplo /etc/passwd
6. Jogos e demonstrações Jogos
Sistemas de arquivos, protocolos de rede,
7. Pacotes de macros e convenções
códigos ASCII e outros
8. Comandos de administração do sis- Comandos que em geral só o root pode
tema executar
9. Rotinas do Kernel Não é padrão
Salviano A. Leão – 9
• Sumário
Referências
Manuais
Administração
• Comandos: user
• Desliga sistema
• Gerenciar usuários
• history
• Partições
• Arquivos
• disco
• Arquivo .bashrc
Administração
• Comando ls
• hardware
• Diretorios
• Links
• Comando diff
• Comando patch
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 10
Comandos básicos usuário: qualquer
• Sumário
chage user Muda as informações de expiração da senha do usuário user;
Referências
chfn user Muda o nome real do usuário user e suas informações;
Manuais
Shell Script
who Mostra quem está usando o sistema.
O sed
whoami Mostra o nome de login do usuário. O mesmo que id -un.
Salviano A. Leão – 11
Comandos básicos do sistema
• Sumário
exit Sair do terminal;
Referências
halt Desligar o sistema;
Manuais
Shell Script
O parâmetro now pode ser mudado. Por exemplo: digite
Segurança # shutdown -r +10
Arquivos
O sed
Salviano A. Leão – 12
Comandos básicos usuário: superusuário
• Sumário
O usuário comun pode usar, entretanto ele deve possuir permissões:
Referências su Muda a identificação do usuário ou torna-se o superusuário, o root;
Manuais
Arquivos
userdel Apaga todos os arquivos relacionados ao usuário;
Processos no Linux
usermod Modifica as informações do sistema relativas ao usuário;
Shell Script
O sed
Salviano A. Leão – 13
O Comando history
• Sumário
Ele mostra os últimos 1000 comandos executados na linha de comando na conta cor-
Referências
rente. O comando history -c apaga história dos últimos comando digitados; Desig-
Manuais
nador de eventos – ele refere-se a uma linha da lista do history
Administração
!n Refere-se a n-ésima linha de comando da lista;
• Comandos: user
• Desliga sistema
• Gerenciar usuários !-n Refere-se a corrente linha de comando menos n;
• history
• Partições !! Refere-se ao comando prévio;
• Arquivos
• disco !texto Refere-se ao mais recente comando que inicia com texto;
• Arquivo .bashrc
• Comando ls
• hardware
!?texto[? ] Refere-se ao mais recente comando contendo texto;
• Diretorios
• Links ^texto1^texto2^ Repita o último comando trocando texto1 por texto2;
• Comando diff
• Comando patch
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 14
Estrutura de Arquivos do Linux
• Sumário
Salviano A. Leão – 15
Conteúdo dos diretórios
• Sumário
Diretório Tipos de arquivos
Referências
Manuais
/bin Principais utilitários do sistema.
Administração
Contém os arquivos e a imagem do kernel necessários para a inicili-
/boot
• Comandos: user zação do sitema.
• Desliga sistema
• Gerenciar usuários /dev Arquivos especiais dos dispositivos do sistema.
• history /etc Arquivos de configuração do sistema.
• Partições
• Arquivos /home Local onde ficam os diretórios dos usuários com contas no sistema.
• disco Bibliotecas de funções administrativas do sistema além dos módulos
• Arquivo .bashrc /lib
• Comando ls do kernel.
• hardware Em geral onde são montados os dispositivos removíveis, por exemplo
• Diretorios /media
• Links
os pendrives, CDs e DVD, etc.
• Comando diff /proc Arquivos com informações sobre o hardware.
• Comando patch
/root diretório padrão do superusuário, o root.
Shell Script
Comando de manutenção do sistema, em geral só o superusuário
Segurança /sbin
pode executar.
Arquivos
/tmp arquivos temporários do sistema
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 16
Conteúdo dos diretórios
• Sumário
Diretório Tipos de arquivos
Referências
Manuais
/usr Encontram os utilitários, documentação, bibliotecas, etc.
Administração
/usr/bin Utilitários que o usuário tem permissão para executar.
• Comandos: user /usr/games Jogos.
• Desliga sistema
• Gerenciar usuários /usr/include Cabeçalhos das bibliotecas.
• history /usr/lib Bibliotecas.
• Partições
• Arquivos /usr/local Usado por programas específicos do usuário.
• disco /usr/local/bin Os programas executáveis específicos do usuário.
• Arquivo .bashrc
• Comando ls /usr/local/lib As bibliotecas dos programas específicos do usuário.
• hardware Utilitários do sistema que o superusuário tem permissão para execu-
• Diretorios /usr/sbin
• Links tar.
• Comando diff /usr/share Local onde encontra-se a documentação, icones, etc.
• Comando patch
/usr/src Aqui encontra-se o código fonte do kernel quando ele é instalado.
Shell Script
Onde o sistema guarda os relatórios, os arquivos de log, e os arquivos
Segurança /var
de impressão, de email, de download instalação do siste, etc.
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 17
Informações sobre as partições
• Sumário
Os comandos a seguir mostram as informações sobre as partições e também editam
Referências
as partições do sistema.
Manuais
gdisk manipula partições GPT.
Administração
• Comandos: user gfdisk manipula tabelas de partições GPT.
• Desliga sistema
• Gerenciar usuários
• history
fdisk manipula tabelas de partições MBR. As informações são obtidas melhor pelo
• Partições comando:
• Arquivos
• disco phonon:~/Seminarios/XXVIISF > sudo fdisk -l /dev/sda
• Arquivo .bashrc
• Comando ls Disco /dev/sda: 320.1 GB, 320072933376 bytes
• hardware 255 heads, 63 sectors/track, 38913 cylinders
• Diretorios Unidades = cilindros de 16065 * 512 = 8225280 bytes
• Links
Sector size (logical/physical): 512 bytes / 512 bytes
• Comando diff
I/O size (minimum/optimal): 512 bytes / 512 bytes
• Comando patch
Identificador do disco: 0x20000000
Shell Script
Salviano A. Leão – 18
Informações sobre o uso do sistema de arquivos
• Sumário
df Mostra informações dos discos de todos os sistemas de arquivos. Há algumas
Referências
opções interessantes:
Manuais
df -h Mostra as informações num formato mais legível;
Administração
• Comandos: user
• Desliga sistema Sist. Arq. Tam Usad Disp Uso% Montado em
• Gerenciar usuários /dev/sda5 44G 12G 30G 28% /
• history none 1,9G 324K 1,9G 1% /dev
• Partições none 1,9G 188K 1,9G 1% /dev/shm
• Arquivos
none 1,9G 92K 1,9G 1% /var/run
• disco
none 1,9G 0 1,9G 0% /var/lock
• Arquivo .bashrc
none 1,9G 0 1,9G 0% /lib/init/rw
• Comando ls
/dev/sda6 190G 74G 107G 41% /home
• hardware
/dev/sda3 49G 21G 29G 42% /windows
• Diretorios
• Links
• Comando diff
• Comando patch free Mostra o uso da memória do computador, inclusive do swap. As opções -b, -k,
Shell Script -m, -g mostra o resultado respectivamente em unidades de bytes, KB, MB, ou GB.
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 19
Informações sobre o uso do disco
• Sumário
du Mostra o uso detalhado de disco no diretório corrente e em seus subdiretórios. Há
Referências
diversas opções:
Manuais
du -h Mostra informações em formato legível.
Administração
• Comandos: user du -s Mostra de forma sintética o uso do disco.
• Desliga sistema
• Gerenciar usuários
• history
du -sh Mostra de forma sintética o uso do disco em formato legível.
• Partições
• Arquivos du -ah Mostra também o tamanho dos arquivos, tudo em formato legível.
• disco
• Arquivo .bashrc du –max-depth=n -ah Mostra também o tamanho dos arquivos, tudo em formato
• Comando ls
• hardware
legível, porém só vai até n níveis de profundidade de subdiretórios.
• Diretorios
• Links
• Comando diff
• Comando patch
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 20
Variáveis de ambiente e atalhos
As variáveis definidas pelo sistema para cada usuário são obtidas com o comando env
ou printenv
• Sumário
Referências
> env
Manuais > printenv
Administração
• Comandos: user
• Desliga sistema Ele fornece todas as variáveis de ambiente usadas pelo usuário. Os arquivos de confi-
• Gerenciar usuários
• history
guração da área do usuário são:
• Partições
• Arquivos Arquivo Conteúdo
• disco
• Arquivo .bashrc Sempre que se entra no sistema esse é o primeiro arquivo a ser
• Comando ls .bashrc rodado. Nele encontra-se a definção do formato do prompt, o PATH
• hardware
do usuário, suas definições, etc.
• Diretorios
• Links
.bash_aliases Aqui o usuário defini os seus atalhos.
• Comando diff
• Comando patch O comando locale mostra as suas configurações locais
Shell Script
# .bashrc
• Sumário # Ajusta PATH para incluir o diretório bin específico do usuário se existir
if [ -d ~/bin ] ; then
Referências PATH=${HOME}/bin:${PATH}
fi
Manuais # Para padronizar os números, conforme padrão US
# usando os pontos com separador decimal
Administração export LC_NUMERIC="en_US.UTF-8"
• Comandos: user
# Não duplique as linhas do history
• Desliga sistema export HISTCONTROL="ignorespace:ignoredups"
• Gerenciar usuários export HISTIGNORE="&:ls:[bf]g:exit: [ \t]*:ps:cd"
• history
# Definindo algumas variavies do sistema
• Partições export BROWSER="/usr/bin/firefox"
• Arquivos export JAVA_HOME="/usr/lib/jvm/java-1.8.0-openjdk-amd64"
• disco # Para obter um prompt colorido
• Arquivo .bashrc if [ "$USER" = root ]
• Comando ls then
PS1='${debian_chroot:+($debian_chroot)}\[\033[01;31m\]\h\[\033[00m\]:\[\033[01;33m\]\w >
• hardware ֒→ \[\033[00m\]'
• Diretorios else
• Links PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\h\[\033[00m\]:\[\033[01;33m\]\w >
֒→ \[\033[00m\]'
• Comando diff fi
• Comando patch
# Habilite a característica de completar um comando.
Shell Script if [ -f /etc/bash_completion ]; then
. /etc/bash_completion
Segurança fi
Salviano A. Leão – 22
Arquivo .bash_aliases
Salviano A. Leão – 23
Listando arquivos e diretórios com o ls
• Sumário
Há inúmeras opções para esse comando, entre as mais utéis estão
Referências -C Lista arquivos em colunas, ordenados verticalmente.
Manuais
Administração -F Sufixa o nome dos diretórios com ’/’, e dos executáveis com ’*’.
• Comandos: user
• Desliga sistema -R Lista os diretórios encontrados, recursivamente.
• Gerenciar usuários
• history -a Lista todos os arquivos, incluindo os arquivos ocultos.
• Partições
• Arquivos
• disco
-c Usa o tempo de alteração para ordenar.
• Arquivo .bashrc
• Comando ls -d Lista diretórios e arquivos no mesmo formato.
• hardware
• Diretorios -l Lista todas as informações do arquivo em uma coluna.
• Links
• Comando diff
• Comando patch
-r Inverte a ordem do ordenação.
Shell Script
-t Ordena a exibição pelo rótulo de tempo.
Segurança
O sed
Salviano A. Leão – 24
Uma opções úteis do ls para programação shell
• Sumário
-b, - -escape, - -quoting-style=escape Coloca aspas em nomes de arquivos com ca-
Referências
racteres não gráficos usando sequência de barra invertida alfabética e octal como
Manuais
usado em C. Esta opção é como a opção -Q exceto que os nome de arquivos não
Administração são colocados entre duas aspas.
• Comandos: user
• Desliga sistema -B, - -ignore-backups Não lista arquivos que terminam com ’ ’, a menos que sejam
• Gerenciar usuários
• history
fornecidos na linha de comando.
• Partições
• Arquivos -Q, - -quote-name, - -quoting-style=c Confina o nome do arquivo em aspas duplas
• disco e os caracteres não gráficos entre aspas como no C.
• Arquivo .bashrc
• Comando ls
• hardware
- -full-time Lista o tempo completo, em detrimento a abreviação padrão. O formato é
• Diretorios como no padrão date(1) ; não é possível alterar isto, mas você pode extrair a cadeia
• Links
• Comando diff
de caracteres da data com cut(1) e passar o resultado para ’date -d’.
• Comando patch
Shell Script
- -show-control-chars Imprime caracteres não gráficos como no nome do arquivo.
Segurança
Isto é o padrão a menos que a saída seja um terminal e o programa seja ls.
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 25
Uma opções úteis do ls para programação shell
• Sumário
- -quoting-style=word Usa o estilo word para colocar aspas nos nomes da saída. A
Referências
word pode ser uma das seguintes:
Manuais
literal Saída de nomes como é. Isto é o comportamento padrão de ls.
Administração
• Comandos: user shell Colocar aspas nos nomes para o interpretador de comandos se eles contém
• Desliga sistema
• Gerenciar usuários meta caracteres do interpretador de comandos ou que causaria saída ambígua.
• history
• Partições shell-always Coloca aspas nos nomes para o interpretador de comandos, mesmo
• Arquivos
• disco
se eles normalmente não requereriam aspas.
• Arquivo .bashrc
• Comando ls c Coloca aspas nos nomes como nas cadeias de caracteres da linguagem C; isto é
• hardware igual a opção -Q.
• Diretorios
• Links
• Comando diff
escape Coloca aspas como o c exceto que omite as aspas duplas ao redor; isto é
• Comando patch igual a opção -b.
Shell Script
Segurança
Um valor padrão para esta opção pode ser especificada com a variável de ambiente
Arquivos
QUOTING_STYLE.
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 26
Informações sobre o sistema
dmesg Mostra as mensagens da inicialização (os log) do sistema;
• Sumário hostname Mostra o nome da máquina que se está conectado (o host local);
Referências
uname Mostra informações sobre o sistema.
Manuais
Salviano A. Leão – 27
Comandos de informações do sistema
• Sumário
basename Mostra o NOME sem quaisquer componentes iniciais de diretório. Se for
Referências
especificado, remove também o SUFIXO final.
Manuais
> basename -s .ext arquivo.ext
Administração
• Comandos: user
arquivo
• Desliga sistema
> basename /usr/lib/liblapack_atlas.so
• Gerenciar usuários liblapack_atlas.so
• history
• Partições
• Arquivos
• disco dirname Mostra só o diretório.
• Arquivo .bashrc
• Comando ls whereis Mostra onde se encontra determinado arquivo (binários), fonte e páginas de
• hardware
• Diretorios manual ou simplesmente um comando. Algumas opções são:
• Links
• Comando diff -b Procure somente binários;
• Comando patch
Processos no Linux which Mostra qual arquivo binário está sendo chamado pelo shell quando chamado
Shell Script via linha de comando. Opções
O sed
Salviano A. Leão – 28
Manipulando arquivos e diretórios
• Sumário
pwd Mostra o diretório corrente;
Referências
cd Muda de diretório;
Manuais
Segurança
-r ou -R Cópia recursivamente através dos subdiretórios;
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 29
Removendo e Movendo/Renomeando arquivos
mv Move e/ou renomeia um arquivo e/ou diretório;
Segurança
Quando for realmente necessário usar o rm, sem a alias para apagar um conjunto
Arquivos
indesejado, basta, proteger o comando com o apostrofes:
Processos no Linux
Shell Script
> 'rm' *.log
O sed
Esse comando irá apagar todos os arquivos com extensão .log sem perguntar.
Salviano A. Leão – 30
Manipulando diretórios
• Sumário
☞ O comando
Referências mkdir [ opcoes ] [ novo - diretorio ]
Manuais
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 31
Manipulando diretórios
• Sumário
☞ O comando
Referências rmdir [ opcoes ] [ diretorio ]
Manuais
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 32
Inodes
• Sumário
• O inode é uma estrutura que contém as informações básicas sobre seus arquivos
Referências
e pastas, como permissões de acesso, identificação dos donos dos arquivos, data
Manuais
e hora do último acesso e alterações, tamanho e os ponteiros para o arquivo em si.
Administração
• Comandos: user
• De modo geral, o inode é a identidade de um arquivo ou diretório, é uma identifi-
• Desliga sistema cação única para ele.
• Gerenciar usuários
• history • O kernel inicia a leitura qualquer arquivo ou diretório primeiramente pelo inode
• Partições
• Arquivos do arquivo para em seguida ler o arquivo ou diretório. Ao ler essa estrutura, são
• disco checadas as permissões e nos casos em que ela é negada ao usuário o kernel
• Arquivo .bashrc
• Comando ls retorna a mensagem de “Permission denied”, caso contrário o procedimento segue
• hardware normalmente.
• Diretorios
• Links
• Comando diff
• Para visualizar os inodes dos seus arquivos, use o parâmetro -i no comando ls
• Comando patch para ver os inodes de cada um.
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 33
Ligações simbólicas comando: ln
• Sumário
O comando
Referências ln [ opcoes ] [ origem ] [ link ]
Manuais
Administração cria uma ligação simbólica entre arquivos e/ou diretórios. Aqui
• Comandos: user
• Desliga sistema origem Diretório ou arquivo de onde será feito o link.
• Gerenciar usuários
• history
• Partições
link Nome do link que será criado.
• Arquivos
• disco enquanto as opções são
• Arquivo .bashrc
• Comando ls -f Remove o arquivo de destino existente.
• hardware
• Diretorios -s Cria um link simbólico. Usado para criar ligações com o arquivo/diretório de
• Links
• Comando diff destino.
• Comando patch
Shell Script
-v Mostra o nome de cada arquivo antes de fazer o link.
Segurança
-d ou -F Cria um link físico (hard link) para diretórios. Somente o root pode usar
Arquivos
esta opção.
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 34
Tipos de links
• Sumário
Há dois tipos de links: os simbólicos e os físicos.
Referências • O link simbólico cria um arquivo especial no disco (do tipo link) que tem
Manuais
como conteúdo o caminho para chegar até o arquivo alvo.
Administração
• Comandos: user • O link físico faz referência ao mesmo inode do arquivo original, assim ele é perfei-
• Desliga sistema
• Gerenciar usuários tamente idêntico, inclusive nas permissões de acesso, ao arquivo original.
• history
• Partições
• Arquivos > ls -i /etc/passwd
• disco
1576306 4,0K /etc/passwd
• Arquivo .bashrc
> stat /etc/passwd
• Comando ls
• hardware
File: '/etc/passwd'
• Diretorios
Size: 1841 Blocks: 8 IO Block: 4096 arquivo
• Links ֒→ comum
• Comando diff Device: 805h/2053d Inode: 1576306 Links: 1
• Comando patch Access: (0644/-rw-r--r--) Uid: ( 0/ root) Gid: ( 0/
Shell Script
֒→ root)
Access: 2010-06-06 11:17:01.501942274 -0300
Segurança
Modify: 2010-05-25 15:05:36.710615705 -0300
Arquivos Change: 2010-05-25 15:05:36.743892352 -0300
Processos no Linux
Shell Script
O sed
Ao contrário dos links simbólicos, não é possível fazer um link físico para
um diretório ou fazer referência a arquivos que estejam em partições diferentes.
Salviano A. Leão – 35
Notas sobre o link
• Sumário
Deve-se notar que ao usar:
Referências • o comando rm com um link, somente o link será removido.
Manuais
Administração
• o comando cp com um link, o arquivo original será copiado ao invés do link.
• Comandos: user
• Desliga sistema • o comando mv com um link, a modificação será feita no link.
• Gerenciar usuários
• history • um comando de visualização (como o cat), o arquivo original será visualizado.
• Partições
• Arquivos
• disco
Exemplos:
• Arquivo .bashrc
• Comando ls > ln -s /home/salviano/file1 /home/salviano/tmp/file1
• hardware
• Diretorios
• Links
• Comando diff Cria o link /home/salviano/tmp/file1 para o arquivo /home/salviano/file1
• Comando patch
Arquivos
Cria um link /home/salviano/dropbox/QM para o diretório /home/salviano/cursos/QM.
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 36
Comando diff
• Sumário
Compara dois arquivos e mostra as diferenças entre eles. Ele só é usado para comparar
Referências
arquivos em formato de texto. As diferenças entre dois arquivos podem ser redireciona-
Manuais
das para um terceiro arquivo o qual poderá ser usado pelo comando patch para aplicar
Administração as alterações em um arquivo que não contém as diferenças. A sintaxe do comando é
• Comandos: user
• Desliga sistema
diff [diretorio1/arquivo1] [diretorio2/arquivo2] [opcoes]
• Gerenciar usuários
• history
• Partições
• Arquivos na qual diretório1/arquivo1 e diretório2/arquivo2 são os arquivos ou diretórios que serão
• disco
comparados. Já as opções podem ser:
• Arquivo .bashrc
• Comando ls
• hardware
-a Compara os dois arquivos como arquivos texto.
• Diretorios
• Links -b Ignora espaços em branco como diferenças.
• Comando diff
• Comando patch -B Ignora linhas em branco inseridas ou apagadas nos arquivos.
Shell Script
Segurança
- -brief Relata somente as diferenças entre os arquivos, e não os detalhes destas
Arquivos diferenças.
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 37
Opções do diff
• Sumário
-i Ignora diferenças entre maiúsculas e minúsculas nos arquivos.
Referências
-H Usa análise heurística para verificar os arquivos.
Manuais
O sed
Salviano A. Leão – 38
Notas sobre o diff
• Sumário
• Use o comando zdiff para comparar diretamente arquivos compactados pelo utilitário
Referências
gzip;
Manuais
• Use o comando sdiff para visualizar as linhas diferentes entre os dois arquivos em
Administração
• Comandos: user
formato texto simples.
• Desliga sistema
• Gerenciar usuários • Caso seja necessário comparar até três arquivos use o diff3.
• history
• Partições • Instale e use o meld, uma excelente interface gráfica para o diff.
• Arquivos
• disco
• Arquivo .bashrc
• Comando ls
• hardware
• Diretorios
• Links
• Comando diff
• Comando patch
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
Salviano A. Leão – 39
Exemplos do diff
• Sumário
> diff texto.txt texto1.txt
Referências
Manuais
Administração Compara o arquivo texto.txt com texto1.txt e exibe suas diferenças na tela.
• Comandos: user
• Desliga sistema
• Gerenciar usuários > diff -Bu texto.txt texto1.txt
• history
• Partições
• Arquivos
• disco
Compara o arquivo texto.txt com texto1.txt ignorando linhas em branco diferentes entre
• Arquivo .bashrc os dois arquivos e usando o formato unificado.
• Comando ls
• hardware
• Diretorios > diff texto.txt texto1.txt > texto.diff
• Links
• Comando diff
• Comando patch
Compara o arquivo texto.txt com texto1.txt e gera um arquivo chamado texto.diff con-
Shell Script
tendo a diferença entre eles. Este arquivo poderá ser usado pelo patch para aplicar as
Segurança
diferenças existente entre os dois no arquivo texto.txt.
Arquivos
Processos no Linux
> diff -r /usr/src/linux-2.6.30 /usr/src/linux-2.6.32 >
Shell Script
֒→ patch-2.6.32.diff
O sed
• Sumário
Atualiza arquivos texto através das diferenças geradas pelo comando diff. A sua sintaxe
Referências
é
Manuais
patch [opcoes] [arqv.diff] ou patch [opcoes] < [arqv.diff]
Administração
• Comandos: user
• Desliga sistema
• Gerenciar usuários na qual o arqv.diff é o arquivo contendo as diferenças geradas pelo comando diff e as
• history
• Partições
algumas da opções do comando são:
• Arquivos
• disco
-p N Aqui N é o nível do diretório onde o patch será aplicado, se for igual a 0, o patch
• Arquivo .bashrc assume que os arquivos que serão atualizados estão no diretório atual, se 1, assume
• Comando ls
• hardware
que os arquivos que serão atualizado estão no diretório acima (..), se 2, 2 diretórios
• Diretorios acima e assim por diante.
• Links
• Comando diff
-b Cria cópias de segurança dos arquivos originais ao aplica o patch.
• Comando patch
Shell Script
-binary Lê e grava arquivo usando modo binário.
Segurança
O sed
Salviano A. Leão – 41
Notas sobre o patch
• Sumário
-n Interpreta o arquivo de patch como um .diff normal.
Referências
-N Não desfaz patches já aplicados.
Manuais
Shell Script Aplica as diferenças contidas no arquivo texto.diff nos arquivos originais.
Segurança
Shell Script
Aplica as diferenças contidas no arquivo texto.diff nos arquivos originais. Faz a mesma
O sed
coisa que o comando anterior.
Salviano A. Leão – 42
• Sumário
Referências
Manuais
Administração
Shell Script
• Comandos da família grep
• Expressões Regulares
• Classe POSIX
• Comando tr
• Comando seq
• Arquivos Shell Script
• Comando split
• Comando csplit
• RANDOM
• Comando sort
• Comando cut
• Comando join
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 43
Processos no Linux
Comandos da família grep
• Sumário
A familia de comandos grep, egrep, fgrep, rgrep, faz uma busca em um texto por um
Referências
padrão e retorna as linhas do texto que contém o padrão procurado. Sua sintaxe é a
Manuais
seguinte
Administração
Shell Script
grep [OPTIONS] PADRAO [ARQUIVO...]
• Comandos da família grep grep [OPTIONS] [-e PATTERN | -f ARQUIVO] [ARQUIVO...]
• Expressões Regulares
• Classe POSIX
• Comando tr
O comando
• Comando seq
• Arquivos
• Comando split
• egrep é o mesmo que grep -E.
• Comando csplit
• RANDOM • fgrep é o mesmo que grep -F.
• Comando sort
• Comando cut • rgrep é o mesmo que grep -r.
• Comando join
• Listar arquivos Opçoes do tipo de pesquisa:
• Comando od
• Comando less
• Comando echo
-E Interpreta o PADRAO como uma expressão regular extendida.
• Comando fmt
• Comando printf -F Interpreta o PADRAO como uma lista de palavras fixas, separdas por uma nova
• Comando pr linha, sendo que qualquer uma delas pode ocorrer.
• Comando paste
• Comando comm
• Exemplo de uso do iconv
-G Interpreta o PADRAO como uma expressão regular básica.
Segurança
Arquivos
Salviano A. Leão – 44
Processos no Linux
Algumas opções do grep
-e PADRAO use o PADRAO como o padrão da busca. Este pode ser usado para especificar
• Sumário
multiplos padrões de busca.
Referências
Segurança
Arquivos
Salviano A. Leão – 46
Processos no Linux
Expressões Regulares
• Sumário
Lista dos Principais Metacaracteres
Referências
Manuais
Expressão Regular básica ^ $ . * [ \? \+ \| \( \) \{ \}
Administração
Expressão Regular estendida ^ $ . * [ ? + | ( ) { }
Shell Script
• Comandos da família grep
• Expressões Regulares Metacaractere Nome Metacaractere Nome
• Classe POSIX
• Comando tr . Ponto ^ Circunflexo
• Comando seq
[] Lista $ Cifrão
• Arquivos
• Comando split [^ ] Lista negada \b Borda
• Comando csplit
? Opcional \ Escape
• RANDOM
• Comando sort * Asterisco | Ou
• Comando cut
+ Mais () Grupo
• Comando join
• Listar arquivos {} Chaves \1 Retrovisor
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 47
Processos no Linux
Exemplos de representantes
• Sumário
Metacaractere Nome Função
Referências
Manuais
. Ponto Um caractere qualquer
Administração
[] Lista Lista de caracteres permitidos
Shell Script [^ ] Lista negada Lista de caracteres proibidos
• Comandos da família grep
• Expressões Regulares
• Classe POSIX
• Comando tr $ grep -e "sy.:" /etc/passwd
• Comando seq
sys:x:3:3:sys:/dev:/bin/sh
• Arquivos
• Comando split $ grep -ne "sy.:" /etc/passwd
• Comando csplit 4:sys:x:3:3:sys:/dev:/bin/sh
• RANDOM
$ grep -e "sy[sn]" /etc/passwd
• Comando sort
• Comando cut sys:x:3:3:sys:/dev:/bin/sh
• Comando join sync:x:4:65534:sync:/bin:/bin/sync
• Listar arquivos syslog:x:101:103::/home/syslog:/bin/false
• Comando od
• Comando less
hplip:x:103:7:HPLIP system user,,,:/var/run/hplip:/bin/false
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 48
Processos no Linux
Exemplos de quantificadores
• Sumário
Metacaractere Nome Função
Referências
Manuais
? Opcional Zero ou um
Administração
* Asterisco Zero, um ou mais
Shell Script + Mais Um ou mais
• Comandos da família grep {n,m} Chaves De n até m
• Expressões Regulares
• Classe POSIX
• Comando tr
• Comando seq
• Arquivos $ grep -E "sys:?" /etc/passwd
• Comando split sys:x:3:3:sys:/dev:/bin/sh
• Comando csplit syslog:x:101:103::/home/syslog:/bin/false
• RANDOM
• Comando sort
hplip:x:103:7:HPLIP system user,,,:/var/run/hplip:/bin/false
• Comando cut $ grep -E "sys:+" /etc/passwd
• Comando join sys:x:3:3:sys:/dev:/bin/sh
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 49
Processos no Linux
Exemplos de âncoras
• Sumário
Metacaractere Nome Função
Referências
Manuais
^ Circunflexo Início da linha
Administração
$ Cifrão Fim da linha
Shell Script \b Borda Início ou fim da palavra
• Comandos da família grep
• Expressões Regulares
• Classe POSIX
• Comando tr
$ grep -E "^[sS]" /etc/passwd
• Comando seq
• Arquivos sys:x:3:3:sys:/dev:/bin/sh
• Comando split sync:x:4:65534:sync:/bin:/bin/sync
• Comando csplit
syslog:x:101:103::/home/syslog:/bin/false
• RANDOM
• Comando sort speech-dispatcher:x:107:29:Speech
• Comando cut ֒→ Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
• Comando join saned:x:113:119::/home/saned:/bin/false
• Listar arquivos
• Comando od
salviano:x:1000:1000:Salviano de Araujo
• Comando less ֒→ Leão,,,:/home/salviano:/bin/bash
• Comando echo sshd:x:115:65534::/var/run/sshd:/usr/sbin/nologin
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 50
Processos no Linux
Exemplos dos outros metacaracteres
Segurança
Arquivos
Salviano A. Leão – 51
Processos no Linux
Classe POSIX
• Sumário
Classe POSIX Similar Significado
Referências
Manuais
[:upper:] [A-Z] Letras maísculas
Administração
[:lower:] [a-z] Letras minúsculas
Shell Script [:alpha:] [A-Za-z] Letras maíusculas e minúsculas
• Comandos da família grep [:alnum:] [A-Za-z0-9] Letras e números
• Expressões Regulares
• Classe POSIX [:digit:] [0-9] Números
• Comando tr [:xdigit:] [0-9A-Fa-f] Números hexadecimais
• Comando seq
• Arquivos [:punct:] [.,!?:#$&...] Sinais de pontuação
• Comando split [:blank:] [ \t] Espaço (ESP) e TAB
• Comando csplit
• RANDOM [:space:] [ \t\n\r\f\v] Caracteres brancos
• Comando sort [:cntrl:] - Caracteres de controle
• Comando cut
• Comando join [:graph:] [^\n\r\f\v] Caracteres imprimíveis, exceto ESP e TAB
• Listar arquivos [:print:] [^ \t\n\r\f\v] Caracteres imprimíveis
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 52
Processos no Linux
Comando tr
• Sumário
O comando tr é útil para traduzir, comprimir e/ou deletar caracteres da entrada padrão
Referências
(stdin) escrevendo o resultado na saída padrão (stdout). Ou seja, o comando tr no
Manuais
linux é utilizado para substituição de um valor por outro, basicamente especificamos o
Administração valor a procurar e o valor a substituir. Como o comando tr não trabalha com arquivos é
Shell Script necessário usar um pipe ou redirecionamento para que ele receba os valores. Abaixo
• Comandos da família grep a sintaxe básica do comando tr:
• Expressões Regulares
• Classe POSIX
• Comando tr tr [OPÇÃO] ... CONJUNTO1 [CONJUNTO2]
• Comando seq
• Arquivos
• Comando split
O parâmetro OPÇÃO pode ser:
• Comando csplit
• RANDOM
• Comando sort
-c, -C, –complementar Use o complemento do CONJUNTO1
• Comando cut
• Comando join -d, –delete Excluir caracteres do CONJUNTO1, não traduz
• Listar arquivos
• Comando od -s, –squeeze-repeats Substituir cada seqüência de um caractere repetido que está
• Comando less
• Comando echo listado no último CONJUNTO especificado, com uma única ocorrência desse carac-
• Comando fmt tere
• Comando printf
• Comando pr
• Comando paste
-t, –truncate-set1 Primeiro truncar CONJUNTO1 ao comprimento de CONJUNTO2
• Comando comm
• Exemplo de uso do iconv –help exibir esta ajuda e sair
Segurança
–version Informações da versão de saída e sair
Arquivos
Salviano A. Leão – 53
Processos no Linux
Parâmentros do comando tr
• Sumário
Os CONJUNTOs são especificados como sequências de caracteres. A maioria delas
Referências
representam a si mesmas. As sequências interpretadas são:
Manuais
\NNN com valor octal NNN (1 a 3 dígitos octal)
Administração
Arquivos
Salviano A. Leão – 54
Processos no Linux
• Sumário
[:alnum:] Todas as letras e dígitos
Referências
[:alpha:] Todas as letras
Manuais
Arquivos
Salviano A. Leão – 55
Processos no Linux
• A conversão ocorre se -d não for fornecido e CONJUNTO1 e CONJUNTO2 apare-
cem.
Referências
• O CONJUNTO2 é estendido para comprimento de CONJUNTO1 repetindo seu úl-
Manuais
timo caractere conforme necessário.
Administração
• Sumário
Nos exemplos a seguir usaremos o seguinte arquivo
Referências
1 Matricula; Nome; Curso; Período
Manuais
2 876; Mara Borges da Silva; Física Médica; 2
Administração
3 876; João Niguém; Física Bacharelado; 3
Shell Script
4 524; José Américo Brasil; Física Licenciatura; 1
• Comandos da família grep
• Expressões Regulares 5 323; Daniela Mendes Campos; Engenharia Física; 5
• Classe POSIX 6 294; Alessandra Maria Rodrigues; Física Médica; 7
• Comando tr
7 740; Marina Matias Souza; Física Licenciatura; 4
• Comando seq
• Arquivos
8 598; Marina Almeida Prado; Física Bacharelado;
• Comando split 9 860; Carlos Souza Costa; Engenharia Física; 6
• Comando csplit 10 197; Paulo Abreu Faria; Física Bacharelado;
• RANDOM
• Comando sort
11 133; João Carlos Matos; Física Licenciatura; 5
• Comando cut
• Comando join
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 57
Processos no Linux
Exemplo de uso do comando tr
• Sumário
Até aí tudo bem, mas vamos então ver alguns exemplos simples de como podemos
Referências
utilizar o comando tr na prática.
Manuais
Administração
> cat Lista.txt | tr [A-Z] [a-z]
matricula; nome; curso; período
Shell Script
• Comandos da família grep 876; mara borges da silva; física médica; 2
• Expressões Regulares 876; joão niguém; física bacharelado; 3
• Classe POSIX 524; josé américo brasil; física licenciatura; 1
• Comando tr
• Comando seq
323; daniela mendes campos; engenharia física; 5
• Arquivos 294; alessandra maria rodrigues; física médica; 7
• Comando split 740; marina matias souza; física licenciatura; 4
• Comando csplit
• RANDOM
598; marina almeida prado; física bacharelado;
• Comando sort 860; carlos souza costa; engenharia física; 6
• Comando cut 197; paulo abreu faria; física bacharelado;
• Comando join
133; joão carlos matos; física licenciatura; 5
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 58
Processos no Linux
> cat Lista.txt | tr [:lower:] [:upper:]
MATRICULA; NOME; CURSO; PERíODO
• Sumário 876; MARA BORGES DA SILVA; FíSICA MéDICA; 2
Referências 876; JOãO NIGUéM; FíSICA BACHARELADO; 3
Manuais
524; JOSé AMéRICO BRASIL; FíSICA LICENCIATURA; 1
Administração
323; DANIELA MENDES CAMPOS; ENGENHARIA FíSICA; 5
294; ALESSANDRA MARIA RODRIGUES; FíSICA MéDICA; 7
Shell Script
• Comandos da família grep 740; MARINA MATIAS SOUZA; FíSICA LICENCIATURA; 4
• Expressões Regulares 598; MARINA ALMEIDA PRADO; FíSICA BACHARELADO;
• Classe POSIX
860; CARLOS SOUZA COSTA; ENGENHARIA FíSICA; 6
• Comando tr
• Comando seq 197; PAULO ABREU FARIA; FíSICA BACHARELADO;
• Arquivos 133; JOãO CARLOS MATOS; FíSICA LICENCIATURA; 5
• Comando split
• Comando csplit
• RANDOM
• Comando sort
• Comando cut
cat Lista.txt | tr [:lower:] [:upper:] | tr [ãéí] [ÃÉÍ]
• Comando join MATRICULA; NOME; CURSO; PERÍODO
• Listar arquivos 876; MARA BORGES DA SILVA; FÍSICA MÉDICA; 2
• Comando od
876; JOÃO NIGUÉM; FÍSICA BACHARELADO; 3
• Comando less
• Comando echo 524; JOSÉ AMÉRICO BRASIL; FÍSICA LICENCIATURA; 1
• Comando fmt 323; DANIELA MENDES CAMPOS; ENGENHARIA FÍSICA; 5
• Comando printf
294; ALESSANDRA MARIA RODRIGUES; FÍSICA MÉDICA; 7
• Comando pr
• Comando paste 740; MARINA MATIAS SOUZA; FÍSICA LICENCIATURA; 4
• Comando comm 598; MARINA ALMEIDA PRADO; FÍSICA BACHARELADO;
• Exemplo de uso do iconv 860; CARLOS SOUZA COSTA; ENGENHARIA FÍSICA; 6
Segurança 197; PAULO ABREU FARIA; FÍSICA BACHARELADO;
Arquivos 133; JOÃO CARLOS MATOS; FÍSICA LICENCIATURA; 5
Salviano A. Leão – 59
Processos no Linux
Comando seq
• Sumário
O comando seq gera uma sequência de números, e sua sintaxe é a seguinte:
Referências
Manuais
seq [OPÇÃO] ... ÚLTIMO
seq [OPÇÃO] ... PRIMEIRO ÚLTIMO
Administração
seq [OPÇÃO] ... PRIMEIRO INCREMENTO ÚLTIMO
Shell Script
• Comandos da família grep
• Expressões Regulares
• Classe POSIX DESCRIÇÃO: Ele gera uma sequência numérica do PRIMEIRO ao ÚLTIMO, com o
• Comando tr passo de INCREMENTO. Os argumentos obrigatórios para opções longas também são
• Comando seq
• Arquivos obrigatórios para opções curtas. As opções são as seguintes:
• Comando split
• Comando csplit -f, –format = FORMAT Usa o estilo do printf no FORMAT dos flutuante
• RANDOM
• Comando sort -s, –separator = STRING Usa STRING para separar números (padrão: \n)
• Comando cut
• Comando join
• Listar arquivos
-w, –equal-width Igualar largura preenchendo com zeros à esquerda
• Comando od
• Comando less –help Exibe uma ajuda
• Comando echo
• Comando fmt –version Exibe informações da versão
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 60
Processos no Linux
• Se PRIMEIRO ou INCREMENTO for omitido, o padrão é 1, mesmo quando ÚLTIMO
é menor do que PRIMEIRO.
• Sumário • A sequência de números termina quando a soma do número atual com o INCRE-
Referências MENTO se tornar maior do que ÚLTIMO.
Manuais
• O PRIMEIRO, INCREMENTO e ÚLTIMO são interpretadas como valores de ponto
Administração
flutuante.
Shell Script
• Comandos da família grep
• Expressões Regulares
• O INCREMENTO é geralmente positivo se o PRIMEIRO é menor do que ÚLTIMO, e
• Classe POSIX o INCREMENTO geralmente é negativo se PRIMEIRO é maior do que ÚLTIMO.
• Comando tr
• Comando seq
• O FORMAT deve ser adequado para imprimir um argumento do tipo "double"; Ele é
• Arquivos
• Comando split padrão para %.PRECf se PRIMEIRO, INCREMENTO e ÚLTIMO forem todos núme-
• Comando csplit ros decimais de ponto fixo com precisão máxima PREC, e para os casos contrário
• RANDOM
• Comando sort ele será %g.
• Comando cut
• Comando join
• Listar arquivos
• Comando od
> seq 1 2 10 > seq -w -s"; " 7 2 20
• Comando less 1 07; 09; 11; 13; 15; 17; 19
• Comando echo 3 > seq -s"; " 1 0.2 2
• Comando fmt
• Comando printf
5 1,0; 1,2; 1,4; 1,6; 1,8; 2,0
• Comando pr 7 > seq -s"; " -f "%4.2f" 1 0.2 2
• Comando paste 9 1,00; 1,20; 1,40; 1,60; 1,80; 2,00
• Comando comm
> seq -s"; " 7 2 20 > seq -s"; " -f "%4.2f" 2 -0.2 1
• Exemplo de uso do iconv
1; 3; 5; 7; 9 2,00; 1,80; 1,60; 1,40; 1,20; 1,00
Segurança
Arquivos
Salviano A. Leão – 61
Processos no Linux
Comandos para obter informações de arquivos
• Sumário
file Mostra o tipo de arquivo;
Referências
type Determina o tipo de um comando, se ele é um comando instalado nos sistema
Manuais
ou se ele é comando do próprio shell. Ele tem as seguintes opções:
Administração
Segurança
Arquivos
Salviano A. Leão – 62
Processos no Linux
Manipulando arquivos
• Sumário
cat Mostra o conteúdo de um arquivo binário ou texto e também pode concaternar
Referências
arquivos.
Manuais
tac Semelhante ao cat mas inverte a ordem;
Administração
Segurança
Arquivos
Salviano A. Leão – 63
Processos no Linux
Comando split
Esse comando é usado para quebrar um arquivo em vários pedaços. A sintaxe do
comando é:
• Sumário
Referências
split [OPCAO]... [INPUT [PREFIX]]
Manuais
Administração
Shell Script
A saída será pedaços de tamanho-fixo do INPUT prefizado PREFIXaa, PREFIXab, ...;
• Comandos da família grep O tamanho padrão em linhas é 1000, e o PREFIX padrão é x.
• Expressões Regulares
• Classe POSIX
Todos os argumentos são necessário. A opções são:
• Comando tr
• Comando seq -a N Usa um sufixo de comprimento N, o padrão é 2;
• Arquivos
• Comando split -b SIZE Divide o arquivo fixando a quantidade bytes dos arquivos em SIZE bytes;
• Comando csplit
• RANDOM
-C SIZE Coloque o máximo de SIZE bytes de linhas por arquivo;
• Comando sort
• Comando cut
• Comando join -d Usa sufixos numéricos em vez de alfabético;
• Listar arquivos
• Comando od -l N Use N linhas por arquivo;
• Comando less
• Comando echo O tamanho SIZE dos arquivos podem ter um sufixo multiplicador, e os usuais são:
• Comando fmt
• Comando printf
sufixo valor sufixo valor sufixo valor
• Comando pr
• Comando paste b 512 MB 10002 G 10243
• Comando comm
• Exemplo de uso do iconv
kB 1000 M 10242 T 10004
Segurança
K 1024 GB 10003 TB 10244
Arquivos
Os sufixos em ordem são: K, M, G, T, P, E, Z, Y.
Salviano A. Leão – 64
Processos no Linux
Comando csplit
• Sumário
Esse comando é usado para quebrar um arquivo em seções determinadas pela linha
Referências
de contexto. A sintaxe do comando é:
Manuais
csplit [ OPCAO ]... [ ARQUIVO ] [ PADRAO ]
Administração
Shell Script A saída será pedaços do ARQUIVO separado pelo PADRAO para os arquivos xx00,
• Comandos da família grep
• Expressões Regulares
xx01, ....
• Classe POSIX A opções são:
• Comando tr
• Comando seq -b, - -suffix-format=FORMAT Usa o sprintf FORMAT ao em vez de %02d
• Arquivos
• Comando split
• Comando csplit
-f, - -prefix=PREFIX Usa PREFIX em vez de xx
• RANDOM
• Comando sort -k, - -keep-files Não remove os arquivos de saída em caso de errros.
• Comando cut
• Comando join -n, - -digits=DIGITS Usa um número específico de dígitos em vez de 2
• Listar arquivos
• Comando od
• Comando less
-s, - -quiet, - -silent Não mostra a saída.
• Comando echo
• Comando fmt -z, - -elide-empty-files remove os arquivos de saída vazios.
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 65
Processos no Linux
O padrão
• Sumário
Ele lê o arquivo de entrada ARQUIVO, e com o PADRAO podendo ser:
Referências
• INTEGER Copia até mas não incluí o número específico de linhas
Manuais
Administração • /REGEXP/[OFFSET] Copia até mas não incluí a linha que casa com a ER.
Shell Script
• Comandos da família grep • %REGEXP%[OFFSET] Ignora, mas não incluindo a linha que casa.
• Expressões Regulares
• Classe POSIX • {INTEGER} Repete o padrão especificado previamente esse número de vezes.
• Comando tr
• Comando seq
• Arquivos
• {*} Repete o padrão especificado previamente tantas as vezes quanto for possível.
• Comando split
• Comando csplit A linha de deslocamento OFFSET é necessário ter um sinal de + ou − seguido por um
• RANDOM
inteiro positivo.
• Comando sort
• Comando cut
• Comando join
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 66
Processos no Linux
Exemplo do csplit
• Sumário
Ao contrário do comando split, o comando csplit permite que se especifique uma palavra
Referências
que irá indicar o delimitador de cada um dos novos arquivos. Considere por exemplo o
Manuais
arquivo Tese.tex:
Administração
Shell Script
\chapter{Introdução}
• Comandos da família grep Nesse trabalho será discutidos ...
• Expressões Regulares
• Classe POSIX
\chapter{Teoria}
• Comando tr
• Comando seq Nosso sistema pode ser descrito pela Hamiltoniana...
• Arquivos
• Comando split
\chapter{Resultados}
• Comando csplit
• RANDOM Vamos apresentar os resultados teóricos e experimentais,...
• Comando sort
• Comando cut \chapter{Conclusão}
• Comando join
• Listar arquivos
Nosso resultados este de acordo com os resultados
• Comando od experimentais...
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 67
Processos no Linux
Exemplo csplit
Para quebrar o arquivo tese em um por capítulo fazemos:
Arquivos
Salviano A. Leão – 68
Processos no Linux
Gerador de números pseudo-aletórios
A variável especial, $RANDOM, existente no bash,uma vez acessada, gera como saída
• Sumário um número aleatório. Veja só isso:
Referências
Shell Script
• Comandos da família grep
Toda vez que seu conteúdo é acessado, a variável $RANDOM retorna um número alea-
• Expressões Regulares
• Classe POSIX tório entre 0 e 32767. Entretano as vezes é necessário gerar números aleatório em um
• Comando tr determinado intervalo, como por exemplo entre 0 e 100, e para isso
• Comando seq
• Arquivos
• Comando split > echo "$(($RANDOM % 100))"
• Comando csplit 63
• RANDOM > echo "$(($RANDOM % 100))"
• Comando sort
59
• Comando cut
> echo "$(($RANDOM % 100))"
• Comando join
• Listar arquivos
62
• Comando od
> echo "$(($RANDOM % 100))"
• Comando less 82
• Comando echo > echo "$(($RANDOM % 100))"
• Comando fmt 6
• Comando printf
• Comando pr
• Comando paste Para gerar uma lista de 10 números usa-se o loop (esse será mostrado mais adiante).
• Comando comm
• Exemplo de uso do iconv
> for x in $(seq 1 10) ; do echo "$(($RANDOM % 100))" ; done
Segurança
Arquivos
Salviano A. Leão – 69
Processos no Linux
Agora para gerar uma lista de números Para fazer isso, basta inserir algum valor
aleatórios entre entre N0 = 20 e na variável $RANDOM, antes de utilizá-la:
NF = 80, devemos proceder assim
• Sumário > RANDOM=100
∆N = NF − N0 , logo comando deveria
Referências > echo $RANDOM
ser "$((RANDOM%∆N + N0 ))", 9532
Manuais
portanto nesse caso teremos > echo $RANDOM
Administração
1585
Shell Script > echo $RANDOM
• Comandos da família grep
> echo "$((RANDOM %60 +20))" 1295
• Expressões Regulares
• Classe POSIX
73
> echo "$((RANDOM %60 +20))"
• Comando tr
35 As vezes isso não é uma boa ideia, pois
• Comando seq
• Arquivos > echo "$((RANDOM %60 +20))" se repetirmos o processo obtemos os
• Comando split 34 mesmos resultados
• Comando csplit > echo "$((RANDOM %60 +20))"
• RANDOM 58
• Comando sort > RANDOM=100
• Comando cut > echo $RANDOM
• Comando join 9532
• Listar arquivos Como em qualquer função para geração > echo $RANDOM
• Comando od 1585
• Comando less de números dessa natureza, é
> echo $RANDOM
• Comando echo interessante utilizar uma semente (seed) 1295
• Comando fmt
• Comando printf para melhorar a qualidade do resultado.
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 70
Processos no Linux
• Sumário
Para evitar esse problema deve-se variar a semente toda vez que a variável RANDOM
Referências
for usada em um shell script. Há várias alternativas, entretano, mostrarei duas de rápida
Manuais
implementação. A primeira, e muito tradicional, consiste em usar o relógio do sistema
Administração operacional. Com o comando date ele pode retorna o horário no formato de segundos
Shell Script decorridos desde 1 de janeiro de 1970 e atribuir esse valor como sendo a semente da
• Comandos da família grep variável $RANDOM, conforme código abaixo
• Expressões Regulares
• Classe POSIX
• Comando tr > date +%s
• Comando seq 1490552202
• Arquivos > RANDOM=$(date +%s)
• Comando split > echo $RANDOM
• Comando csplit
• RANDOM
• Comando sort
• Comando cut outra possibilidade é usar a opção %N que retorna a hora com precisão de nanosegun-
• Comando join dos e estamos pegando somente essa parte fracionária
• Listar arquivos
• Comando od
• Comando less > date +%N
• Comando echo 746454405
• Comando fmt > RANDOM=$(date +%N)
• Comando printf > echo $RANDOM
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Com isso, pode-se usar uma semente capaz de gerar números diferentes a cada exe-
Segurança
cução dos seus shell scripts que necessitem de números aleatórios.
Arquivos
Salviano A. Leão – 71
Processos no Linux
Radom devices
• Sumário
Caso o seu problema necessite de um gerador de números aleatórios sério use o dis-
Referências
positivos /dev/urandom e /dev/random da seguinte forma
Manuais
Administração
> od -vAn -N4 -tu4 < /dev/urandom
573502242
Shell Script
• Comandos da família grep > od -An -N4 -i < /dev/urandom
• Expressões Regulares 2019913170
• Classe POSIX > od -An -N2 -i < /dev/random
• Comando tr
• Comando seq
31949
• Arquivos
• Comando split
• Comando csplit ou ainda
• RANDOM
• Comando sort
• Comando cut > dd if=/dev/urandom count=1 2> /dev/null | cksum | cut -f1 -d" "
• Comando join 293454337
• Listar arquivos > dd if=/dev/urandom count=4 bs=1 | od -An -N4 -i
• Comando od
• Comando less
378852248
• Comando echo
• Comando fmt
• Comando printf O comando abaixo gera um texto aleatório, enquanto não for interrompido
• Comando pr
• Comando paste
• Comando comm tr -dc a-z1-4 </dev/urandom | tr 1-2 ' \n' | awk 'length==0 ||
• Exemplo de uso do iconv
֒→ length>50' | tr 3-4 ' ' | sed 's/^ *//' | cat -s | sed 's/ / /g' |
Segurança
֒→ fmt
Arquivos
Salviano A. Leão – 72
Processos no Linux
Comando sort
• Sumário
Classifica as linhas de um arquivo texto ou da entrada padrão, de acordo com as opções
Referências
passadas. A classificação é feita por linhas e as linhas são divididas em campos que é a
Manuais
ordem que as palavras aparecem na linha separadas por um delimitador (normalmente
Administração um espaço). A sintaxe do comando é
Shell Script
sort [ opcoes ] [ arquivo ]
• Comandos da família grep
• Expressões Regulares
• Classe POSIX na qual arquivo é o nome do arquivo que será classificado. Se nenhum arquivo for
• Comando tr
• Comando seq
especificado, será usado o dispositivo de entrada padrão (normalmente o teclado ou
• Arquivos um pipe "). Algumas opções são:
• Comando split
• Comando csplit -b Ignora linhas em branco.
• RANDOM
• Comando sort
• Comando cut
-d Somente usa letras, dígitos e espaços durante a classificação.
• Comando join
• Listar arquivos -f Ignora a diferença entre maiúsculas e minúsculas.
• Comando od
• Comando less -r Inverte o resultado da comparação.
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 73
Processos no Linux
Comando sort: opções
-n Caso estiver classificando um campo que contém números, os números serão clas-
• Sumário sificados na ordem aritmética. Por exemplo, se você tiver um arquivo com os núme-
Referências ros:
Manuais
Administração
> cat lista0
200
Shell Script
• Comandos da família grep 20
• Expressões Regulares 70
• Classe POSIX
• Comando tr
• Comando seq Usando a opção -n, o arquivo será classificado desta forma:
• Arquivos
• Comando split
• Comando csplit > sort -n lista0
• RANDOM 20
• Comando sort
• Comando cut
70
• Comando join 200
• Listar arquivos
• Comando od
• Comando less No caso em que essa opção não é usada, o sort irá classificar o arquivo como uma
• Comando echo
• Comando fmt listagem alfabética (que vai de a até z e do 0 até 9), dessa forma ela terá a seguinte
• Comando printf forma:
• Comando pr
• Comando paste
• Comando comm > sort -n lista0
• Exemplo de uso do iconv 20
Segurança 200
Arquivos 70
Salviano A. Leão – 74
Processos no Linux
Opções do sort
• Sumário
-c Verifica se o arquivo já está classificado. Se não estiver, retorna a mensagem
Referências
"disorder on arquivo".
Manuais
-o SAIDA Grava a saída do comando sort no arquivo SAIDA.
Administração
Segurança
Arquivos
Salviano A. Leão – 75
Processos no Linux
Opções do sort
-k POS1, POS2 Específica qual o campo dentro da linha entre POS1 e POS2 que
• Sumário será usado na classificação. Cada posição tem a forma ’[F.C][OPTS]’, onde F é o
Referências número do campo a ser usado, e C é o número do primeiro caractere do início do
Manuais campo. Campos e posições de caracteres são numeradas a partir de 1, uma posição
Administração de caractere zero em POS2 indica o último caractere do campo. Se ’C’ é omitido em
Shell Script POS1, o padrão é 1 (o início do campo), se omitido em POS2, o padrão é 0 (o fim
• Comandos da família grep
• Expressões Regulares
do campo). OPTS são opções de ordenação, que permitem chaves individuais para
• Classe POSIX serem classificados de acordo com as diferentes regras.
• Comando tr
• Comando seq
Exemplo: Para classificar o segundo campo do arquivo lixo.csv cujo separador de
• Arquivos campos é o caracter “;”, use ‘- -key=2,2’ ou (‘-k 2,2’), da seguinte forma:
• Comando split
• Comando csplit sort -t ";" -k 2 ,2 lixo . csv
• RANDOM
• Comando sort
• Comando cut
> sed -n '2,$p' Lista.txt | sort -k 2
• Comando join
• Listar arquivos 294; Alessandra Maria Rodrigues; Física Médica; 7
• Comando od 860; Carlos Souza Costa; Engenharia Física; 6
• Comando less 323; Daniela Mendes Campos; Engenharia Física; 5
• Comando echo
• Comando fmt
133; João Carlos Matos; Física Licenciatura; 5
• Comando printf 876; João Niguém; Física Bacharelado; 3
• Comando pr 524; José Américo Brasil; Física Licenciatura; 1
• Comando paste
876; Mara Borges da Silva; Física Médica; 2
• Comando comm
• Exemplo de uso do iconv 598; Marina Almeida Prado; Física Bacharelado;
Segurança
740; Marina Matias Souza; Física Licenciatura; 4
Arquivos
197; Paulo Abreu Faria; Física Bacharelado;
Salviano A. Leão – 76
Processos no Linux
Exemplos do sort
• Sumário
1 > ls -al | sort -b -g -k5
Referências
2 total 80
Manuais
3 -rw-r--r-- 1 salviano salviano 175 Jun 6 2010 getip
Administração
4 -rw-r--r-- 1 salviano salviano 304 Jun 9 2010 Tese.tex
Shell Script 5 drwxr-xr-x 10 salviano salviano 4096 Mar 25 22:16 ..
• Comandos da família grep
• Expressões Regulares
6 drwxr-xr-x 2 salviano salviano 4096 Mar 25 20:28 .
• Classe POSIX 7 -rw-r--r-- 1 salviano salviano 10598 Mar 22 15:07 ExpReg.txt
• Comando tr 8 -rw-r--r-- 1 salviano salviano 22597 Jun 9 2010 Linux_processos.txt
• Comando seq
9 -rw-r--r-- 1 salviano salviano 28574 Jun 9 2010 comando_find
• Arquivos
• Comando split
• Comando csplit
• RANDOM Sorteando pelo mês:
• Comando sort
• Comando cut
• Comando join
1 > ls -al | sort -b -k6
• Listar arquivos 2 total 80
• Comando od 3 -rw-r--r-- 1 salviano salviano 175 Jun 6 2010 getip
• Comando less
• Comando echo
4 -rw-r--r-- 1 salviano salviano 28574 Jun 9 2010 comando_find
• Comando fmt 5 -rw-r--r-- 1 salviano salviano 22597 Jun 9 2010 Linux_processos.txt
• Comando printf 6 -rw-r--r-- 1 salviano salviano 304 Jun 9 2010 Tese.tex
• Comando pr
7 -rw-r--r-- 1 salviano salviano 10598 Mar 22 15:07 ExpReg.txt
• Comando paste
• Comando comm 8 drwxr-xr-x 2 salviano salviano 4096 Mar 25 20:28 .
• Exemplo de uso do iconv 9 drwxr-xr-x 10 salviano salviano 4096 Mar 25 22:16 ..
Segurança
Arquivos
Salviano A. Leão – 77
Processos no Linux
Comando cut
• Sumário
O comando ’cut’ escreve na saída padrão partes selecionadas de cada linha de cada
Referências
arquivo de entrada ou da entrada padrão se nenhum arquivo for fornecido ou para um
Manuais
arquivo passado como argumento de entrada. Sintaxe:
Administração
Arquivos
–version Exibe informações da versão
Salviano A. Leão – 78
Processos no Linux
Exemplos
Considere por exemplo
• Sumário
O comando join (unir) concatena registros de dois arquivos de texto baseado em índi-
Referências
ces comuns entre os registros. O comando funciona como um tipo de banco de dados
Manuais
primitivo, permitindo a montagem de novos arquivos de registros a partir de registros
Administração existentes em diferentes arquivos. Somente dois arquivos podem ser relacionados de
Shell Script cada vez. Os arquivos devem estar ordenados em ordem crescente pelo índice. Pre-
• Comandos da família grep ferencialmente utilize índices numéricos, índices alfanuméricos também são aceitos.
• Expressões Regulares
• Classe POSIX Sintaxe:
• Comando tr
• Comando seq
join [OPÇÕES] [ARQUIVO1][ARQUIVO2]
• Arquivos
• Comando split
• Comando csplit
• RANDOM
• Comando sort -a ARQNUM também imprime linhas impagáveis do arquivo ARQNUM, onde ARQ-
• Comando cut
NUM é 1 ou 2, correspondente a ARQUIVO1 ou ARQUIVO2
• Comando join
• Listar arquivos
• Comando od -e EMPTY substituir campos de entrada em falta com EMPTY
• Comando less
• Comando echo -i, –ignore-case ignora diferenças no caso quando se comparam campos
• Comando fmt
• Comando printf -j FIELD equivalente a ’-1 FIELD -2 FIELD’
• Comando pr
• Comando paste
• Comando comm
-o FORMATO obedecer FORMATO durante a construção da linha de saída
• Exemplo de uso do iconv
-t CHAR usa CHAR como separador de campos de entrada e saída
Segurança
Arquivos
Salviano A. Leão – 80
Processos no Linux
-v NUMARQUIVO semelhante a -a NUMARQUIVO, mas suprime como linhas de saída adjuntas
• Sumário
-2 CAMPO adjunta neste CAMPO do arquivo 2
Referências –check-order verifica se uma entrada está corretamente ordenada, mesmo se todas as linhas
Manuais de saída estiverem pareáveis
Administração
–nocheck-order não verifica se uma saída está corretamente ordenada
Shell Script
• Comandos da família grep –header trata a primeira linha de cada arquivo como um campo cabeçalhos, as imprime sem
• Expressões Regulares
tentar uni-las
• Classe POSIX
• Comando tr
• Comando seq
-z, –zero-terminated delimitador de linha é NUL, não nova linha
• Arquivos
• Comando split
–help mostra esta ajuda e finaliza
• Comando csplit
• RANDOM
–version informa a versão e finaliza
• Comando sort
• Comando cut
• Comando join Considere o seguinte exemplo
> cat arq2
• Listar arquivos a a2
• Comando od > cat arq1 c c2
• Comando less a a1 b b2
• Comando echo c c1
• Comando fmt b b1
• Comando printf
• Comando pr
• Comando paste
• Comando comm > join arq1 arq2
• Exemplo de uso do iconv a a1 a2
c c1 c2
Segurança b b1 b2
Arquivos
Salviano A. Leão – 81
Processos no Linux
Exemplos
• Sumário
head Mostra as linhas iniciais de um arquivo texto. As opções são
Referências -c N Mostra os N-bytes do início do arquivo;
Manuais
Administração
-n N Mostra as N primeiras linhas do arquivo. O padrão é mostrar as 10 primeiras.
Shell Script
• Comandos da família grep tail Mostra as linhas finais de um arquivo texto. As opções são
• Expressões Regulares
• Classe POSIX
-c N Mostra os N-bytes do fim do arquivo;
• Comando tr
• Comando seq
• Arquivos -n N Mostra as N últimas linhas do arquivo. O padrão é mostrar as 10 últimas.
• Comando split
• Comando csplit
• RANDOM more é um filtro para paginar o texto na tela, com algumas opções. Ele já esta meio
• Comando sort obsoleto e é mais conveniente usarmos o seu substituto que possuí mais recurso, o
• Comando cut
• Comando join comando less.
• Listar arquivos
• Comando od less é um filtro para paginar o texto na tela, com uma série de opções. Ele é mais
• Comando less
• Comando echo
eficiente e mais rápido.
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 83
Processos no Linux
Comando od
• Sumário É o Octal Dump, que serve para mostrar o código de cada caractere de um arquivo ou
Referências texto. Além de octal, também mostra os códigos em hexadecimal e ASCII. Algumas
Manuais opções mais úteis são
Administração
-A, –address-radix=RADIX formato de saída para arquivos; RADIX é um dos [doxn],
Shell Script
• Comandos da família grep para Decimal, Octal, Hex ou None
• Expressões Regulares
• Classe POSIX -t, –format=TYPE Seleciona o formato de saída ou formatos;
• Comando tr
• Comando seq -a ou -t a Mostra os nomes dos caracteres;
• Arquivos
• Comando split
• Comando csplit
-b ou -t o1 Mostra os caracteres em octal;
• RANDOM
• Comando sort -c ou -t c Mostra os caracteres em ASCII ou com barras de ESCAPE;
• Comando cut
• Comando join -x Mostra os caracteres em hexadecimal.
• Listar arquivos
• Comando od
Este comando é muito útil para encontramos caracteres especiais escondidos em al-
• Comando less
• Comando echo guns arquivos.
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 84
Processos no Linux
Exemplos do comando od
• Sumário
ed Editor de texto orientado a linhas.
Referências
vi Editor de texto comum a quase todos os sistemas tipo Unix.
Manuais
Administração nano Editor de texto muito usado nos GNU/Linux atuais, e extremamente versátil e
Shell Script poderoso.
• Comandos da família grep
• Expressões Regulares emacs Editor de texto muito usado por ser extremamente versátil e poderoso.
• Classe POSIX
• Comando tr
• Comando seq
mcedit Editor integrado ao GNU Midnight Commander, cujo pacote linux é o mc, de
• Arquivos uso fácil e simples.
• Comando split
• Comando csplit pico Pequeno editor de texto;
• RANDOM
• Comando sort
• Comando cut
sed Editor de texto orientado para fluxo.
• Comando join
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 86
Processos no Linux
Comando less
• Sumário
O less é um filtro para paginar o texto na tela, que permite mover-se no texto em todas
Referências
as direções. Para navegar no texto, seus comandos são similares aos do emacs. Aqui
Manuais
listamos alguns:
Administração
ESPAÇO ou ^V or f or ^F Move o texto N linhas a frente. N refere-se ao tamanho
Shell Script
padrão em linhas do terminal usado. O comando z redefine esse valor
• Comandos da família grep
• Expressões Regulares
• Classe POSIX z Redefine o tamanho padrão em linhas do terminal.
• Comando tr
• Comando seq /PADRÃO Pesquisa para frente o PADRÃO no texto.
• Arquivos
• Comando split
?PADRÃO Pesquisa para trás o PADRÃO no texto.
• Comando csplit
• RANDOM
• Comando sort q ou Q ou :q ou :Q ou ZZ Sai do ambiente less.
• Comando cut
• Comando join Para maiores detalhes de navegação consulte o manual.
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 87
Processos no Linux
Comando echo
Segurança
Arquivos
Salviano A. Leão – 88
Processos no Linux
Tabela de caracteres de ESCAPE
Manuais
\\ barra invertida
Administração
\a Som de alerta (bipe).
Shell Script
\b Caracter backspace (apaga um caracter).
• Comandos da família grep \c Além desse ponto, não produz uma saída.
• Expressões Regulares
• Classe POSIX
\f Introduz uma nova linha, que inicia na coluna chamada.
• Comando tr \n Introduz nova linha.
• Comando seq
• Arquivos
\r Retorno de carro. Mostra só o que está a direita dele.
• Comando split \t Tabulação horizontal.
• Comando csplit
• RANDOM
\v Tabulação vertical.
• Comando sort \0nnn Caractere cujo código ASCII é nnn (octal).
• Comando cut
• Comando join
\xnn Caractere cujo hexadecimal é nn.
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 89
Processos no Linux
Comando fmt
Segurança
Arquivos
Salviano A. Leão – 90
Processos no Linux
Comando fold
• Sumário
O comando fold permite alterar a largura das linhas de um arquivo. Em sistemas
Referências
GNU/Linux, o comando fold faz parte do pacote textutils.
Manuais
Esta alteração pode ser feita contando-se os bytes, palavras, ou através de um valor
Administração pré-definido para o comprimento de linha que se desenha.
Shell Script O comportamento padrão do comando fold é quebrar as linhas em 80 colunas.
• Comandos da família grep Vejamos um exemplos:
• Expressões Regulares
• Classe POSIX
• Comando tr > fold -s -w 70 texto.txt
• Comando seq
• Arquivos
• Comando split Com estas opções as linhas serão quebradas na 70a coluna, após um espaço em
• Comando csplit
• RANDOM branco (opção -s), impedindo que palavras sejam quebradas.
• Comando sort
• Comando cut
• Comando join
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 91
Processos no Linux
Comando printf
• Sumário
Comando que formata a saída de um texto. Sua sintaxe é a seguinte:
Referências
Manuais
printf [FORMATO] [ARGUMENTOS]...
Administração
Shell Script
em que:
• Comandos da família grep
• Expressões Regulares
FORMATO é uma cadeia de caracteres que contem 3 tipos de objeto:
• Classe POSIX
• Comando tr
• Comando seq
• caracteres simples;
• Arquivos
• Comando split • caracteres para especificação de formato;
• Comando csplit
• RANDOM • sequência de escape no padrão da linguagem C.
• Comando sort
• Comando cut
• Comando join
ARGUMENTOS é a cadeia a ser impressa sob o controle do formato.
• Listar arquivos
• Comando od
# printf " Ola , esse eh o comando printf "
• Comando less
Ola , esse eh o comando printf #
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 92
Processos no Linux
Especificações do FORMATO
• Sumário
Cada um dos caracteres utilizados para especificação de formato é precedido pelo ca-
Referências
racter % e logo a seguir vem a especificação de formato de acordo com a tabela:
Manuais
CARACTER Descrição
Administração
Arquivos
Salviano A. Leão – 93
Processos no Linux
Sequências de Escape do printf
• Sumário
As sequências de escape padrão da linguagem C são sempre precedidas por um
Referências
contra-barra (\) e as reconhecidas pelo comando printf são:
Manuais
Arquivos
Salviano A. Leão – 94
Processos no Linux
Exemplos
• Sumário
# printf "%s\t%s\n" "1" "2" "3" "4" "5" "6"
Referências
1 2
Manuais 3 4
Administração 5 6
Shell Script
• Comandos da família grep
# printf "%.*f\n" 10 4.3
• Expressões Regulares 4.3000000000
• Classe POSIX # printf "%.*f\n" 4 4.3
• Comando tr 4.3000
• Comando seq
• Arquivos # printf "%d\n" 0x41
• Comando split 65
• Comando csplit
• RANDOM # printf -v Mensagem "Ola usuario %s" "$USER"
• Comando sort
# echo $Mensagem
• Comando cut
Ola usuario salviano
• Comando join
• Listar arquivos
• Comando od # printf "%#10.9g\n" 3.1415
• Comando less 3.14150000
• Comando echo # printf "%#10.8g\n" 3.1415
• Comando fmt 3.1415000
• Comando printf # printf "%#10.7g\n" 3.1415
• Comando pr 3.141500
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 95
Processos no Linux
Comando pr
• Sumário
Página arquivos texto ou a entrada padrão para impressão. Este comando faz a pa-
Referências
ginação de um arquivo texto e opcionalmente ajusta o número de colunas e mostra o
Manuais
resultado na saída padrão. Sintaxe:
Administração
Shell Script
pr [OPÇÕES] [ARQUIVO]
• Comandos da família grep
• Expressões Regulares
• Classe POSIX na qual ARQUIVO é o arquivo que será paginado para impressão, e as OPÇÕES podem
• Comando tr
• Comando seq
ser:
• Arquivos
• Comando split [NUM] Inicia a numeração de páginas na página [PAGINA]
• Comando csplit
• RANDOM -[NUM] Mostra a saída com [NUM] colunas.
• Comando sort
• Comando cut
-c Imprime o caracter CTRL como "^"na saída padrão.
• Comando join
• Listar arquivos
• Comando od -F, -f Usa avanço de página ao invés de linhas em branco para separar páginas.
• Comando less
• Comando echo -e[caracter [tamanho]] Usa o caracter [caracter] como tabulação (o padrão é tab) e o
• Comando fmt
• Comando printf
espaço da tabulação [tamanho].
• Comando pr
• Comando paste -h [nome] Mostra [nome] ao invés do nome do arquivo no cabeçalho.
• Comando comm
• Exemplo de uso do iconv -l [num] Define o número máximo de linhas por página para [num].
Segurança
Arquivos
Salviano A. Leão – 96
Processos no Linux
OPÇÕES
• Sumário
-m Imprime vários arquivos em paralelo, um por coluna.
Referências
-r Oculta mensagens de erro de abertura de arquivos.
Manuais
Segurança
Arquivos
Salviano A. Leão – 98
Processos no Linux
Comando pr
• Sumário
Considere os dois seguintes arquivos:
Referências
Manuais
> cat users.txt: > cat senhas.txt
Administração João 12345
Shell Script José 51234
• Comandos da família grep Maria 45123
• Expressões Regulares
• Classe POSIX
• Comando tr
• Comando seq
• Arquivos
Para unir eles em um único arquivo, faz-se
• Comando split
• Comando csplit > pr -m -t -s\ users.txt senhas.txt
• RANDOM
• Comando sort
• Comando cut
• Comando join Note que logo após o -s\ existe dois espaços, depois os nomes dos arquivos.
• Listar arquivos A saída do comando acima será:
• Comando od
• Comando less
• Comando echo João 12345
• Comando fmt José 51234
• Comando printf Maria 45123
• Comando pr
• Comando paste
• Comando comm O mesmo resultado é obtido com o comando paste
• Exemplo de uso do iconv
Segurança
> paste users.txt senhas.txt
Arquivos
Salviano A. Leão – 99
Processos no Linux
Comando paste
• Sumário
O paste une linhass de arquivos. Sintaxe
Referências
Manuais
paste [OPÇÕES] ... [ARQUIVO] ...
Administração
Shell Script
• Comandos da família grep • Escreve linhas que consistem das correspondentes sequências das linhas de cada
• Expressões Regulares
• Classe POSIX
ARQUIVO, separadas por TABs, para saída padrão.
• Comando tr
• Comando seq • Sem ARQUIVO, ou quando ARQUIVO for -, leia a entrada padrão.
• Arquivos
• Comando split • Os argumentos obrigatórios para opções longas são obrigatórios para opções curtas
• Comando csplit
• RANDOM também.
• Comando sort
• Comando cut As OPÇÕES são:
• Comando join
• Listar arquivos
-d, –delimiters=LIST reusa os characteres da LISTA em vez dos TABs
• Comando od
• Comando less
• Comando echo
-s, –serial Cola um arquivo por vez em vez de em paralelo
• Comando fmt
• Comando printf -z, –zero-terminated o delimitador de linha é NUL, não uma nova linha
• Comando pr
• Comando paste –help Exibe uma ajuda
• Comando comm
• Exemplo de uso do iconv
–version Exibe informações da versão
Segurança
Arquivos
Salviano A. Leão – 100
Processos no Linux
Exemplos
Segurança
Arquivos
Salviano A. Leão – 101
Processos no Linux
Exemplos
Considere os 2 arquivos criados da seguinte forma:
Administração
Para ver o conteúdo dos arquivos criados, vamos usar o paste:
Shell Script
• Comandos da família grep
• Expressões Regulares > paste impares pares
• Classe POSIX 1 2
• Comando tr 3 4
• Comando seq 5 6
• Arquivos 7 8
• Comando split 9 10
• Comando csplit
• RANDOM
• Comando sort
• Comando cut
Agora vamos transformar a coluna do pares em linha:
• Comando join
• Listar arquivos > paste -s pares
• Comando od 2 4 6 8 10
• Comando less
• Comando echo
• Comando fmt
• Comando printf
O separador default é TAB, mas isso pode ser alterado com a opção -d.
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 102
Processos no Linux
Para calcular a soma do conteúdo dos pares primeiramente faríamos:
Administração
e depois passaríamos esta linha para a calculadora (bc) e então ficaria:
Shell Script
• Comandos da família grep
• Expressões Regulares > paste -s -d'+' pares | bc
• Classe POSIX 30
• Comando tr
• Comando seq
• Arquivos Assim sendo, para calcular o fatorial do número contido em $Num, basta:
• Comando split
• Comando csplit
• RANDOM > seq $Num | paste -sd'*' | bc
• Comando sort
• Comando cut
• Comando join Por exemplo, o fatorial de é
• Listar arquivos
• Comando od
• Comando less > seq 6 | paste -sd'*' | bc
• Comando echo 720
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 103
Processos no Linux
Comando comm
O comando comm, parte do pacote coreutils, compara dois arquivos ordenados
linha por linha e escreve na saída padrão as linhas que são comuns, mais as linhas
• Sumário
que são exclusivas de cada arquivo. A sintaxe do comando
Referências
Manuais
comm [-123][--help][--version] ARQV1 ARQV2
Administração
Shell Script
• Comandos da família grep Parâmetros:
• Expressões Regulares
• Classe POSIX -1 Exclui as linhas únicas do ARQ1.
• Comando tr
• Comando seq
• Arquivos
-2 Exclui as linhas únicas do ARQ2.
• Comando split
• Comando csplit -3 Mostra as linhas que são únicas em cada arquivo.
• RANDOM
• Comando sort –check-order Verifica se os arquivos de entrada estão ordenados e se todas as
• Comando cut
• Comando join linhas de entrada possuem uma correspondẽncia.
• Listar arquivos
• Comando od –nocheck-order Não verifica se os arquivos de entrada estão ordenados.
• Comando less
• Comando echo –output-delimiter=STR As colunas estão separadas pela string STR
• Comando fmt
• Comando printf
• Comando pr
-z, –zero-terminated O delimintador de linha é NUL, não uma nova linha
• Comando paste
• Comando comm –help ajuda online.
• Exemplo de uso do iconv
• Sumário
Antes de usar o “comm”, os arquivos de entrada devem ser classificados usando a
Referências
sequência de agrupamento especificada pela localidade ’LC_COLLATE’, com as novas
Manuais
linhas de arrasto significativas. Se um arquivo de entrada terminar em um caractere de
Administração não-nova-linha, uma nova linha será adicionada silenciosamente. O comando ’sort’ sem
Shell Script opções sempre gera um arquivo que é entrada adequada para ’comm’. Sem opções,
• Comandos da família grep ’comm’ produz três colunas de saída. A coluna 1 contém linhas exclusivas para ARQV1,
• Expressões Regulares
• Classe POSIX a coluna 2 contém linhas exclusivas para ARQV2 e a coluna 3 contém linhas comuns a
• Comando tr ambos os arquivos. As colunas são separadas por um único caractere TAB.
• Comando seq
• Arquivos
• Comando split
As opções -1, -2 e -3 suprimem a impressão das colunas correspondentes. Ao contrário
• Comando csplit
• RANDOM de alguns outros utilitários de comparação, ’comm’ tem um status de saída que não
• Comando sort
depende do resultado da comparação. Após a conclusão normal ’comm’ produz um
• Comando cut
• Comando join código de saída de zero. Se houver um erro, ele sai com status diferente de zero.
• Listar arquivos
• Comando od
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 105
Processos no Linux
Exemplos
• Sumário
Por exemplo, considere os ARQ1 e ARQ2, para mostrar somente as linhas em comun
Referências
à ambos os arquivos, ou seja, aquelas presentes em ambos faça
Manuais
> comm -12 ARQ1 ARQ2
Administração
Shell Script
• Comandos da família grep
Já para mostrar as linhas que são únicas em ambos os arquivos faça
• Expressões Regulares
• Classe POSIX
• Comando tr > comm -3 ARQ1 ARQ2
• Comando seq
• Arquivos
• Comando split
• Comando csplit
Exclui as linhas únicas de ARQV1
• RANDOM
• Comando sort > comm -1 ARQV1 ARQV2
• Comando cut
• Comando join
• Listar arquivos
Exclui as linhas únicas de ARQV2
• Comando od
• Comando less
• Comando echo > comm -2 ARQV1 ARQV2
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 106
Processos no Linux
Exemplo
Arquivos
Salviano A. Leão – 107
Processos no Linux
• Sumário
Mostra as linhas comnuns de frutas1.txt e frutas2.txt
Referências
> comm -12 <(sort frutas1.txt | uniq ) <(sort frutas2.txt | uniq)
Manuais
Banana
Administração Goiaba
Shell Script
• Comandos da família grep
• Expressões Regulares Mostra somente as linhas únicas de frutas1.txt e frutas2.txt
• Classe POSIX
• Comando tr
> comm -3 <(sort frutas1.txt | uniq ) <(sort frutas2.txt | uniq)
• Comando seq
Abacate
• Arquivos
• Comando split
Abacaxi
• Comando csplit Acerola
• RANDOM Caja
• Comando sort Caqui
• Comando cut Laranja
• Comando join Manga
• Listar arquivos Pera
• Comando od Uva
• Comando less
• Comando echo
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 108
Processos no Linux
• Sumário
Exclui as linhas únicas de frutas1.txt
Referências
> comm -1 <(sort frutas1.txt | uniq ) <(sort frutas2.txt | uniq)
Manuais
Banana
Administração Caja
Shell Script
Caqui
• Comandos da família grep Goiaba
• Expressões Regulares Laranja
• Classe POSIX Pera
• Comando tr Uva
• Comando seq
• Arquivos
• Comando split Exclui as linhas únicas de frutas2.txt
• Comando csplit
• RANDOM
• Comando sort > comm -2 <(sort frutas1.txt | uniq ) <(sort frutas2.txt | uniq)
• Comando cut Abacate
• Comando join Abacaxi
• Listar arquivos Acerola
• Comando od Banana
• Comando less Goiaba
• Comando echo
Manga
• Comando fmt
• Comando printf
• Comando pr
• Comando paste
• Comando comm
• Exemplo de uso do iconv
Segurança
Arquivos
Salviano A. Leão – 109
Processos no Linux
Exemplo de uso do iconv
Considere o seguinte arquivo Caracteres-acentuados.txt
Segurança
Arquivos
Salviano A. Leão – 110
Processos no Linux
• Sumário
Referências
Manuais
Administração
Shell Script
Segurança
• Privilégios
• Permissões no linux
• Comando chmod
Arquivos
Segurança
Processos no Linux
Shell Script
O sed
• Sumário
chown Comando para alterar o dono;
Referências
chgrp Comando para alterar o grupo;
Manuais
Segurança
• Privilégios
• Permissões no linux
• Comando chmod
Arquivos
Processos no Linux
Shell Script
O sed
• Sumário
No Linux, como em outros sistemas Unix, cada arquivo tem uma permissão. As
Referências
permissões são atributos dos arquivos que especifica se ele pode ser lido, executado
Manuais
ou escrito. Estas permissões definem o que um usuário pode fazer. Para saber se um
Administração
programa é executável ou não, execute um ’ls -l’ e veja no lado esquerdo se o arquivo
Shell Script tem X nos seus argumentos, como no exemplo abaixo:
Segurança
• Privilégios $ ls -al
• Permissões no linux
drwxr-xr-x 2 root root 4,0K 2010-06-08 09:53 hsperfdata_root/
• Comando chmod
drwxr-xr-x 2 salviano salviano 4,0K 2010-06-08 11:10 hsperfdata_salviano/
Arquivos
drwx------ 3 salviano salviano 4,0K 2010-06-08 08:48 kde-salviano/
Processos no Linux
drwx------ 2 salviano salviano 4,0K 2010-06-08 08:31 keyring-kecE07/
Shell Script
drwx------ 2 salviano salviano 4,0K 2010-06-08 13:46 ksocket-salviano/
O sed drwx------ 2 salviano salviano 4,0K 2010-06-08 13:08 mc-salviano/
drwx------ 2 gdm gdm 4,0K 2010-06-08 08:31 orbit-gdm/
drwx------ 2 root root 4,0K 2010-06-08 13:41 orbit-root/
drwx------ 2 salviano salviano 4,0K 2010-06-08 13:46 orbit-salviano/
drwx------ 2 salviano salviano 4,0K 2010-06-08 11:06 plugtmp/
drwx------ 2 gdm gdm 4,0K 2010-06-08 08:31 pulse-PKdhtXMmr18n/
drwx------ 2 salviano salviano 4,0K 2010-06-08 08:31 pulse-xmEMNrxCFrAT/
drwx------ 2 salviano salviano 4,0K 2010-06-08 08:31 ssh-yHcbLv1559/
-rw-r--r-- 1 salviano users 13 2010-06-08 13:44 test1
-rw-r--r-- 1 salviano backup 13 2010-06-08 13:46 test2
lrwxrwxrwx 1 salviano salviano 5 2010-06-08 14:07 testx -> test2
Manuais
hsperfdata_root/ root root drwxr-xr-x
Administração
hsperfdata_salviano/ salviano salviano drwxr-xr-x
Shell Script
kde-salviano/ salviano salviano drwx- - - - - -
Segurança
keyring-kecE07/ salviano salviano drwx- - - - - -
• Privilégios ksocket-salviano/ salviano salviano drwx- - - - - -
• Permissões no linux
• Comando chmod mc-salviano/ salviano salviano drwx- - - - - -
Arquivos orbit-gdm/ gdm gdm drwx- - - - - -
Processos no Linux orbit-root/ root root drwx- - - - - -
Shell Script orbit-salviano/ salviano salviano drwx- - - - - -
O sed plugtmp/ salviano salviano drwx- - - - - -
pulse-PKdhtXMmr18n/ gdm gdm drwx- - - - - -
pulse-xmEMNrxCFrAT/ salviano salviano drwx- - - - - -
ssh-yHcbLv1559/ salviano salviano drwx- - - - - -
test1 salviano users -rw-r- -r- -
test2 salviano backup -rw-r- -r- -
testx salviano salviano lrw-r- -r- -
Processos no Linux • Portanto, de acordo com nossa tabela anterior, o arquivo testx é um link, test1 e
Shell Script
test2 são arquivos e o restante diretórios.
O sed
• Sumário
Também há casos em que no lugar do ’d’, aparecem outras letras que indicam outros
Referências
tipos de arquivos. A letra ’l’ significa que é um link simbólico, as letras ’c’ e ’b’
Manuais
correspondem à dispositivos (/dev). Veja alguns exemplos abaixo:
Administração $ ls -al /dev/
Shell Script
lrwxrwxrwx 1 root root 3 2010-06-08 08:29 scd0 -> sr0
0 brw-rw---- 1 root disk 8, 0 2010-06-08 08:29 sda
Segurança
• Privilégios
0 brw-rw---- 1 root disk 8, 1 2010-06-08 08:29 sda1
• Permissões no linux 0 brw-rw---- 1 root disk 8, 2 2010-06-08 08:29 sda2
• Comando chmod 0 brw-rw---- 1 root disk 8, 3 2010-06-08 08:54 sda3
Arquivos 0 brw-rw---- 1 root disk 8, 4 2010-06-08 08:29 sda4
Processos no Linux
0 brw-rw---- 1 root disk 8, 5 2010-06-08 08:29 sda5
0 brw-rw---- 1 root disk 8, 6 2010-06-08 08:29 sda6
Shell Script
0 brw-rw---- 1 root disk 8, 7 2010-06-08 08:29 sda7
O sed
0 brw-rw---- 1 root disk 8, 16 2010-06-08 08:29 sdb
0 crw-rw---- 1 root disk 21, 0 2010-06-08 08:29 sg0
0 crw-rw---- 1 root cdrom 21, 1 2010-06-08 08:29 sg1
0 crw-rw---- 1 root disk 21, 2 2010-06-08 08:29 sg2
0 drwxrwxrwt 2 root root 200 2010-06-08 13:40 shm/
• Sumário
• No exemplo aseguir, mostra-se um diretório do sistema:
drwxr-xr-x 2 root root 4096 2010-04-28 13:51 bin
Referências
|----------> Contém a letra 'd' na primeira coluna, é um diretório
Manuais
Administração • Agora vamos examinar a coluna do dono (a dos números 1), que mostra as
Shell Script permissões que o dono do arquivo possuí. Por exemplo considere o arquivo
Segurança -rwxr--r-- 1 salviano users 13 2010-06-08 13:44 test1
• Privilégios ||\--> salviano, dono do arquivo pode executar o arquivo, x=executable!
• Permissões no linux |\---> salviano, dono do arquivo pode gravar no arquivo, w=writable!
• Comando chmod \----> salviano, dono do arquivo pode ler o arquivo, r=readable!
Arquivos
Processos no Linux
• Agora vamos examinar a coluna do grupo (a dos números 2), que mostra as
Shell Script permissões que o grupo do dono do arquivo possuí. Por exemplo considere o
O sed arquivo:
-r--rwxr-- 1 salviano backup 13 2010-06-08 13:46 test2
| |||\-> Todo mundo pode ler o arquivo
| ||\--> Grupo dono do arquivo (backup) pode executar o arquivo
| |\---> Grupo dono do arquivo (backup) pode gravar no arquivo
| \----> Grupo dono do arquivo (backup) pode ler o arquivo
\-------> Dono do arquivo (salviano) pode ler o arquivo
• Sumário
• Por sua vez a coluna que representa todos os outros usuários do sistema
Referências
(composta pelos números 3), refere as permissões para todos os outros usuários
Manuais
do sistema, sem ser o dono e os participantes do grupo-do-dono do mesmo.
Administração Considere por exemplo:
Shell Script
-r--r--rwx 1 salviano backup 13 2010-06-08 13:46 test2
| | ||\--> Todos os usuários (exceto salviano e usuários do
Segurança
| | || grupo backup) tem permissão para executar o arquivo!
• Privilégios
| | |\---> Todos os usuários (exceto salviano e usuários do
• Permissões no linux
• Comando chmod
| | | grupo backup) tem permissão para gravar no arquivo!
\--\--\----> Todos os usuários tem permissão para ler o arquivo!
Arquivos
Processos no Linux • Ao referir a um diretório o sinalizador x (executável) diz se o diretório está ou não
Shell Script acessível, já que só se pode EXECUTAR diretórios... Exemplo:
O sed drwxr--r-- 1 root root 13 2010-06-08 13:46 Lixao
||||| \---> Todos os podem ler o conteúdo do diretório, mas não
||||| podem usar o comando 'cd' para entrar nele, pois não
||||| há o sinalizador 'x' para a quarta coluna.
||||\------> O grupo 'root' pode ler o conteúdo do diretório,
|||| mas não pode usar 'cd' para entrar no diretório.
|||\-------> O 'root' pode usar 'cd' para entrar no diretório.
||\--------> O 'root' pode gravar arquivos nesse diretório.
|\---------> O 'root' pode ler o interior desse diretório.
\----------> Indica que o nome listado é um diretório.
• Sumário
O comando chmod pode ser usado para mudar os sinalizadores ’rwx’ dos arquivos
Referências
e/ou diretórios, a sintaxe básica do comando é:
Manuais
chmod [ ugoa ]{ -+}[ rwx ] n o m e _ d o _ a r q u i v o _ o u_ d ir e to r io
Administração
Shell Script Exemplo: Para mudar a permissão do arquivo (u=user) para o dono poder ler e gravar
Segurança (rw) no ’arquivo1.txt’, digite:
• Privilégios
• Permissões no linux
$ chmod u + rw arquivo1 . txt
• Comando chmod
Arquivos
Para desfazer o comando a troca de permissões anteriores, digite:
Processos no Linux
• Sumário
O comando chmod pode também ser usado com números, em vez dos flags. Este
Referências
método é chamado de octal, veja o exemplo abaixo:
Manuais
$ chmod -c 664 arquivo . txt
Administração
Shell Script
Processos no Linux
$ chown -c usuario . grupo a r q u i v o _ o u _ d ir et or io
$ chown usuario : grupo a r q u i v o _ o u _ di re to ri o
Shell Script
$ chown salviano . users test2
O sed $ chown - cR salviano . salviano / home / salviano
Referências
Manuais
Administração
Shell Script
Segurança
Arquivos
• date
• compactar
• Comando tar Arquivos
• rsync
Processos no Linux
Shell Script
O sed
• Sumário
tar Cria um arquivo, que é formado pela sequência dos outros, em fila. Ele não usa
Referências
nenhum algooritmo de compactação.
Manuais
compress Compactador
Administração
O sed
Segurança
onde dispositivo é o arquivo de dispositivo do sistema, arqv1 é o nome do arquivo do
Arquivos
agrupamento, arqv2 é o nome do arquivo a ser agrupado e diretorio é o nome do
• date
• compactar diretório a ser agrupado.
• Comando tar
• rsync
Processos no Linux
Shell Script
O sed
• Sumário
-A Une ao final de um arquivo tar um outro arquivo tar;
Referências
-c Cria um novo arquivo;
Manuais
O sed
-u Adiciona somente arquivos com data mais recente do que a do arquivo que estiver
no arquivo compactado;
-x Descompacta o arquivo;
• Sumário
• Para agrupar dois ou mais arquivos em um único arquivo:
Referências $ tar - cvf programas . tar prog . c prog2 . c
Manuais
Administração
• Para agrupar o diretório de trabalho e seus sub-diretórios em um único arquivo:
Shell Script
Shell Script
O sed
• Para desagrupar todos os arquivos de um arquivo criado pelo comando:
• Sumário
• Para desagrupar vários arquivos de um arquivo criado pelo comando:
Referências $ tar - xvf tudo . tar prog . c bin /* doc / prog . txt
Manuais
Administração
• Para listar os arquivos agrupados em um arquivo criado pelo comando:
Shell Script
Shell Script
O sed
• Para agrupar arquivos no dispositivo padrão:
$ tar - cv *
$ tar - xv
• Sumário
O comando tar pode ser usado para copiar arquivos mantendo-se as permissões
Referências
originais e os donos, tanto localmente quanto através da rede.
Manuais
• Para realizar esta cópia localmente:
Administração
Arquivos
• date
• Para realizar a cópia remotamente:
• compactar
• Comando tar $ tar cvf - [ origem ] | rsh [ sistema remoto ] '( cd [ destino ]; tar xv
• rsync
Processos no Linux
• Para duplicar um diretório
Shell Script
• Sumário
A seguir mostramos alguns exemplos de como incluir a data atual no nome do arquivo
Referências
tar.
Manuais
• Neste exemplo, será criado um tar do diretório ~/Dados, com o nome de
Administração
Backup_dados_data.tar.gz:
Shell Script
$ tar -zcvf Backup_dados_"$(date +%d.%b.%Y)".tar.gz ~/Dados
Segurança
Backup_dados_08.Jun.2010.tar.gz
Arquivos
• date $ tar -zcvf Backup_dados_"$(date +%d%m%y)".tar.gz ~/Dados
• compactar Backup_dados_080610.tar.gz
• Comando tar
• rsync
• Vamos incluir também a hora e minutos, não utilize ":"como separador porque é um
Processos no Linux
simbolo não válido em nome de arquivos, exemplos:
Shell Script
$ tar -zcvf Backup_dados_"$(date +%d.%b.%Y-%H-%M)".tar.gz ~/Dados
O sed Backup_dados_08.Jun.2010-23-41.tar.gz
• Sumário
Um método rápido e versátil de fazer cópias locais e remotas. a sua sintaxe é:
Referências Local : rsync [ OPCOES ...] FONTE ... [ DESTINO ]
Manuais
Shell Script
O comando acima irá copiar, no diretório corrente, todo o diretório chamado
O sed
/home/salviano.
Já o comando
rsync - apvrz -- progress -- links -- rsh = '/ usr / bin / ssh - p22 '
polaron . ufg . br :/ home / salviano / .
• Sumário
-a - archive, basicamente indica que voce quer que a cópia seja recursiva e que tudo
Referências
seja preservado (links simbólicos, por exemplo);
Manuais
-v - verbose, escreva tudo que estiver fazendo;
Administração
Processos no Linux • Ele copia apenas o que mudou na árvore de diretórios. De um arquivo modificado
Shell Script ele irá transferir apenas o blocos novos ou alterados.
O sed
• Antes de transferir os dados, faz uma comparação do arquivo na origem e no
destino. Os arquivos são quebrados em segmentos e os seus checksums são
comparados. Os pedaços cujos checksums forem diferentes são transmitidos.
Referências
Manuais
Administração
Shell Script
Segurança
Arquivos
Processos no Linux
• Comando kill
• Comandos nice e renice Processos no Linux
• ps
• top
• fg e bg
• Comando fuser
• Comando pstree
• nohup
• Comandos para
navegação
Shell Script
O sed
• Sumário
O que apresentaremos a seguir foi adaptado da seguinte página
Referências
http://www.infowester.com/linprocessos.php .
Manuais
Nos sistemas operacionais, um processo é a forma de representar um programa em
Administração execução. É o processo que utiliza os recursos do computador - processador,
Shell Script memória, etc - para a realização das tarefas para as quais a máquina é destinada.
Segurança O sistema operacional lida com uma infinidade de processos e, por isso, é necessário
Arquivos ter meios que permitam controlá-los. Para isso, os processos contam com um conjunto
Processos no Linux de características, dentre as quais:
• Comando kill
• Comandos nice e renice • Proprietário do processo;
• ps
• top
• Estado do processo (em espera, em execução, etc);
• fg e bg
• Comando fuser
• Comando pstree • Prioridade de execução;
• nohup
• Comandos para • Recursos de memória.
navegação
Shell Script
O sed
• Sumário
• Cada processo possuí um dono e um PID (Process Identifier), um número de
Referências
identificação que o sistema dá a cada processo. Para cada novo processo, um
Manuais
novo número deve ser atribuído, ou seja, não se pode ter um único PID para dois
Administração ou mais processos ao mesmo tempo.
Shell Script
• Os sistemas baseados em Unix precisam que um processo já existente se duplique
Segurança
para que a cópia possa ser atribuída a uma tarefa nova. Quando isso ocorre, o
Arquivos
processo "copiado"recebe o nome de "processo pai", enquanto que o novo é
Processos no Linux
• Comando kill denominado "processo filho". É nesse ponto que o PPID (Parent Process Identifier)
• Comandos nice e renice passa a ser usado: o PPID de um processo nada mais é do que o PID de seu
• ps
• top processo pai.
• fg e bg
• Comando fuser
• Comando pstree
• nohup
• Comandos para
navegação
Shell Script
O sed
• Sumário
• Cada processo precisa ter um proprietário, pois só assim o sistema saberá, através
Referências
das permissões fornecidas pelo proprietário, quem pode e quem não pode executar
Manuais
o processo em questão. Para lidar com os donos, o sistema usa os números UID e
Administração GID.
Shell Script
• O Linux gerencia os usuários e os grupos através de números conhecidos como
Segurança
UID (User Identifier) e GID (Group Identifier). Como é possível perceber, UID são
Arquivos
números de usuários e GID são números de grupos. Os nomes dos usuários e dos
Processos no Linux
• Comando kill grupos servem apenas para facilitar o uso humano do computador.
• Comandos nice e renice
• ps • Cada usuário precisa pertencer a um ou mais grupos. Como cada processo (e
• top
• fg e bg
cada arquivo) pertence a um usuário, logo, esse processo pertence ao grupo de
• Comando fuser seu proprietário. Assim sendo, cada processo está associado a um UID e a um
• Comando pstree
• nohup
GID.
• Comandos para
navegação • Os números UID e GID variam de 0 a 65536. Dependendo do sistema, o valor
Shell Script limite pode ser maior. No caso do usuário root, esses valores são sempre 0 (zero).
O sed
Assim, para fazer com que um usuário tenha os mesmos privilégios que o root, é
necessário que seu GID seja 0.
• Sumário
• Os sinais são meios usados para que os processos possam se comunicar e para
Referências
que o sistema possa interferir em seu funcionamento. Por exemplo, se o usuário
Manuais
executar o comando kill para interromper um processo, isso será feito por meio de
Administração um sinal.
Shell Script
• Quando um processo recebe um determinado sinal e conta com instruções sobre o
Segurança
que fazer com ele, tal ação é colocada em prática. Se não houver instruções
Arquivos
pré-programadas, o próprio Linux pode executar a ação de acordo com suas
Processos no Linux
• Comando kill rotinas.
• Comandos nice e renice
• ps
• top
• fg e bg
• Comando fuser
• Comando pstree
• nohup
• Comandos para
navegação
Shell Script
O sed
• Sumário
STOP esse sinal tem a função de interromper a execução de um processo e só
Referências
reativá-lo após o recebimento do sinal CONT;
Manuais
CONT esse sinal tem a função de instruir a execução de um processo após este ter
Administração
sido interrompido;
Shell Script
Shell Script Os comando kill, kilall e pkill são comandos que o usuário pode usar para enviar um
O sed sinal qualquer sinal para o sistema, porém, se ele for usado de maneira isolada, ou
seja, sem o parâmetro de um sinal, o kill por padrão executa o sinal TERM.
• Sumário
Ele envia um sinal para um processo do sistema. A sua sintaxe é
Referências $ kill - SINAL PID
Manuais
Administração Como exemplo, vamos supor que você deseja interromper temporariamente a
Shell Script execução do processo de PID 4220. Para isso, pode-se usar o seguinte comando:
Segurança
$ kill - STOP 4220
Arquivos
Processos no Linux
• Comando kill
Para que o processo 4220 volte a ser executado, basta usar o comando:
• Comandos nice e renice
• ps $ kill - CONT 4220
• top
• fg e bg
Se o sinal precisa ser enviado a todos os processos, pode-se usar o número -1 no
• Comando fuser
• Comando pstree lugar do PID. Por exemplo:
• nohup
• Comandos para $ kill - STOP -1
navegação
Shell Script
O sed
Shell Script
killall - SINAL nome - do - processo
O sed
ou ainda, podemos usar o pkill
Por exemplo:
killall - STOP vi
Salviano A. Leão – 140
Estado dos processos
• Sumário
Quando um processo é criado, isso não significa que ele será imediatamente
Referências
executado. Além disso, determinados processos podem ser temporariamente
Manuais
paralisados para que o processador possa executar um processo prioritário. Isso quer
Administração dizer que os processos, em certos momentos, podem estar em situações de execução
Shell Script diferentes. O Linux trabalha, essencialmente, com quatro tipos de situação, isto é,
Segurança estados:
Arquivos
Executável o processo pode ser executado imediatamente;
Processos no Linux
• Comando kill
• Comandos nice e renice Dormente o processo precisa aguardar algo ocorrer para ser executado. Só após
• ps esse "algo ocorrer"é que ele passa para o estado executável;
• top
• fg e bg
• Comando fuser
Zumbi o processo é considerado "morto", mas, por alguma razão, ainda existe;
• Comando pstree
• nohup Parado o processo está "congelado", ou seja, não pode ser executado.
• Comandos para
navegação
Shell Script
O sed
• Sumário
Os comandos nice e renice estão associados ao conceito de gentileza. Um processo
Referências
pode ter prioridade em relação a outros em sua execução. Quando um processo é
Manuais
gentil, significa que ele “oferece a gentileza” de permitir que um processo com
Administração prioridade maior que a sua seja executado antes dele. Os níveis de gentileza, também
Shell Script chamados de nice, são determinados através de números. Quanto mais alto for o valor
Segurança nice, mais gentil é o processo. Geralmente, o intervalo de números usados no nice são
Arquivos os inteiros entre -19 e 19.
Processos no Linux Embora determinar a prioridade de um processo não seja uma prática comum, afinal,
• Comando kill
o próprio Linux faz muito bem essa tarefa, isso pode ser necessário em alguma
• Comandos nice e renice
• ps situação. Para isso, utiliza-se um comando que recebe o mesmo nome do conceito:
• top
nice. A sintaxe é:
• fg e bg
• Comando fuser
• Comando pstree nice -n prioridade processo
• nohup
• Comandos para
navegação
Por exemplo:
Shell Script
O sed
nice -n -5 ntpd
No exemplo, o ntpd recebe prioridade -5. Trata-se de uma prioridade alta, afinal, como
já dito, quanto menor o número menor sua gentileza.
• Sumário
Se um determinado processo está em execução, isso acontece com uma prioridade já
Referências
definida. Para alterar um processo nessa condição, usa-se o comando renice, cuja
Manuais
sintaxe é:
Administração
renice prioridade opção processo/destino
Shell Script
Segurança
O sed
Neste caso, o comando renice alterou a prioridade do processo 1000, assim como a
prioridade dos processos do usuário salviano.
• Sumário
Esse comando informa quais os processos em execução atualmente, quais os UIDs e
Referências
PIDs correspondentes, entre outros. As opções mais importantes desse comando são
Manuais
os seguintes:
Administração
-a Mostra todos os processos existentes;
Shell Script
O sed -w Se o resultado de processo não couber em uma linha, essa opção faz com que o
restante seja exibido na linha seguinte.
• Sumário
Por exemplo:
$ ps aux
Referências USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.0 23692 1960 ? Ss 08:13 0:00 /sbin/init
Manuais
root 2 0.0 0.0 0 0 ? S 08:13 0:00 [kthreadd]
Administração root 3 0.0 0.0 0 0 ? S 08:13 0:00 [migration/0]
root 4 0.2 0.0 0 0 ? S 08:13 0:26 [ksoftirqd/0]
Shell Script root 5 0.0 0.0 0 0 ? S 08:13 0:00 [watchdog/0]
root 6 0.0 0.0 0 0 ? S 08:13 0:00 [migration/1]
Segurança root 7 0.0 0.0 0 0 ? S 08:13 0:00 [ksoftirqd/1]
root 8 0.0 0.0 0 0 ? S 08:13 0:00 [watchdog/1]
Arquivos
root 9 0.0 0.0 0 0 ? S 08:13 0:00 [migration/2]
Processos no Linux root 10 0.0 0.0 0 0 ? S 08:13 0:00 [ksoftirqd/2]
root 11 0.0 0.0 0 0 ? S 08:13 0:00 [watchdog/2]
• Comando kill
root 12 0.0 0.0 0 0 ? S 08:13 0:00 [migration/3]
• Comandos nice e renice root 13 0.0 0.0 0 0 ? S 08:13 0:00 [ksoftirqd/3]
• ps
• top $ ps alx
F UID PID PPID PRI NI VSZ RSS WCHAN STAT TTY TIME COMMAND
• fg e bg
4 0 1 0 20 0 23692 1960 poll_s Ss ? 0:00 /sbin/init
• Comando fuser 1 0 2 0 20 0 0 0 kthrea S ? 0:00 [kthreadd]
• Comando pstree 1 0 3 2 -100 - 0 0 migrat S ? 0:00 [migration/0]
• nohup 1 0 4 2 20 0 0 0 ksofti S ? 0:27 [ksoftirqd/0]
• Comandos para 5 0 5 2 -100 - 0 0 watchd S ? 0:00 [watchdog/0]
navegação 1 0 6 2 -100 - 0 0 migrat S ? 0:00 [migration/1]
1 0 7 2 20 0 0 0 ksofti S ? 0:00 [ksoftirqd/1]
Shell Script 5 0 8 2 -100 - 0 0 watchd S ? 0:00 [watchdog/1]
1 0 9 2 -100 - 0 0 migrat S ? 0:00 [migration/2]
O sed 1 0 10 2 20 0 0 0 ksofti S ? 0:00 [ksoftirqd/2]
5 0 11 2 -100 - 0 0 watchd S ? 0:00 [watchdog/2]
1 0 12 2 -100 - 0 0 migrat S ? 0:00 [migration/3]
1 0 13 2 20 0 0 0 ksofti S ? 0:00 [ksoftirqd/3]
• Sumário
USER nome do usuário dono do processo;
Referências
UID Número de identificação do usuário dono do processo;
Manuais
Shell Script STAT Indica o estado atual do processo, sendo representado por uma letra:
Segurança
R executável;
Arquivos
• Sumário
O comando ps trabalha como se tirasse uma fotografia da situação dos processos
Referências
naquele momento. O comando top/htop, por sua vez, coleta as informações, mas as
Manuais
atualiza regularmente. Geralmente essa atualização ocorre a cada 10 segundos. A
Administração sintaxe do comando top é a seguinte:
Shell Script
top - opcao
Segurança
• Sumário
Para se ter ainda mais controle sobre os processos executados no Linux, pode-se
Referências
utilizar os seguintes comandos:
Manuais
jobs mostra os processos que estão parados ou executando em segundo plano
Administração
(background). Quando um processo está nessa condição, significa sua execução é
Shell Script
feita pelo kernel sem que esteja vinculada a um terminal, ou seja, ele é executado
Segurança
enquanto o usuário usa outros comandos e aplicativos. A sua sintaxe é:
Arquivos
Shell Script
O sed
• Sumário
fg e bg ele enviam um processo respectivamente para o primeiro plano (foreground)
Referências
e segundo plano (background). Para usar o bg, deve-se paralisar o processo. Isso
Manuais
pode ser feito pressionando-se as teclas Ctrl + Z no teclado. Em seguida, digita-se o
Administração comando da seguinte forma:
Shell Script
$ bg + numero
Segurança
Arquivos ou ainda
Processos no Linux
• Comando kill $ bg % numero
• Comandos nice e renice
• ps
• top
O número mencionado corresponde ao valor de ordem informado no início da linha
• fg e bg quando o comando jobs é usado.
• Comando fuser
• Comando pstree
Quanto ao comando fg, a sintaxe é a mesma:
• nohup
• Comandos para $ fg + numero
navegação
Shell Script
O sed
• Sumário
O comando fuser mostra qual processo faz uso de um determinado arquivo ou
Referências
diretório. Sua sintaxe é:
Manuais
fuser - opcao caminho ( do arquivo ou diretorio )
Administração
Processos no Linux
-i deve ser usada em conjunto com a opção k e serve para perguntar se a finalização
• Comando kill
• Comandos nice e renice do processo deve ser feita;
• ps
• top -u mostra o proprietário do processo;
• fg e bg
• Comando fuser
-v o resultado é mostrado em um padrão de exibição semelhante ao comando ps.
• Comando pstree
• nohup
• Comandos para
navegação
Shell Script
O sed
• Sumário
Esse comando mostra processos relacionados em formato de árvore. Sua sintaxe é:
Referências pstree - opcao PID
Manuais
Shell Script
O sed
• Sumário
nohup Esse comando possibilita ao processo ficar ativo mesmo quando o usuário
Referências
faz logout. É da natureza dos sistemas baseados em Unix interromper processos
Manuais
caso seu proprietário não esteja mais ativo, por isso, o nohup pode ser muito útil.
Administração Sua sintaxe é:
Shell Script
nohup comando
Segurança
Arquivos
Processos no Linux
time Determina a quantidade de tempo consumida durante a execução de um
• Comando kill determinado comando mais outras informações. Por exemplo,
• Comandos nice e renice
• ps
$ time ls
• top
total 3,0M
• fg e bg 4,0K Aula_prosper.tex 24K lista-de-comandos.tex
• Comando fuser 8,0K bash.tex 8,0K Lista_dos_comando_basicos.tex
• Comando pstree 20K Comandos_Basicos.tex 4,0K lista_tabelas
• nohup 20K Comandos_Basicos.tex.backup 4,0K lista-verbatim01.tex
• Comandos para 4,0K IntroBash/ 4,0K Makefile
navegação
4,0K linux-pauloaguiar/ 36K Notas_01.tex
Shell Script
• Sumário
at e batch agenda tarefas a serem executadas pelo sistema.
Referências
atq lista as tarefas agendadas com o comando at.
Manuais
Shell Script
O sed
Administração
• cut • awk
Shell Script
Segurança • tr • sleep
Arquivos
• comm • bc
Processos no Linux
• Comando kill
• Comandos nice e renice
• tee
• ps
• top
• fg e bg
• Comando fuser
• Comando pstree
• nohup
• Comandos para
navegação
Shell Script
O sed
• Sumário
curl
Referências
wget
Manuais
Administração lynx
Shell Script
elinks
Segurança
Arquivos surfraw
Processos no Linux
• Comando kill youtube-dl
• Comandos nice e renice
• ps
• top
• fg e bg
• Comando fuser
• Comando pstree
• nohup
• Comandos para
navegação
Shell Script
O sed
Referências
Manuais
Administração
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
• O Shell
Shell Script
• Shell Script Básico
• Pipes
• Variáveis
O sed
• Sumário
Referências
Shell ou interpretador
Manuais
Administração
Programas e comandos
Shell Script
Segurança
Núcleo ou Kernel
Arquivos
O sed
• Sumário
Será que funciona? Um script mínimo em Bash, com apenas duas linhas, pode ser
Referências
visto abaixo
Manuais
# ! / b i n / bash
Administração
Shell Script
echo " H el l o , World ! "
Segurança
Arquivos A primeira linha indica que o shell Bash será usado para interpretar o script e, embora
Processos no Linux não seja obrigatória, sua inclusão é considerada uma boa prática. Tanto, que se
Shell Script atribuiu a denominação carinhosa de "sha-boom"aos seus dois primeiros caracteres,
• O Shell
• Shell Script Básico
denotando algo que se pode traduzir para o português como "o início de um passe de
• Pipes mágica". A segunda linha contém a única ação que será realmente executada, e que
• Variáveis
resultará na exibição do texto "Hello, World!"no terminal.
O sed
Deve-se tornar o script um arquivo executável e para isso use o seguinte comando
para que seu script seja reconhecido pelo sistema como um comando executável:
# chmod +x helloworld.sh
#./helloworld.sh
• Sumário
Pipes representam um conceito da família Unix de sistemas operacionais através do
Referências
qual se possibilita que a saída de um programa seja usada como a entrada de outro.
Manuais
# ! / b i n / bash
Administração
Shell Script
l s − l | sed −e " s / [ aei o ] / u / g "
Segurança
Arquivos O trecho de script acima faz uso de um pipe. Ele pode ser entendido da seguinte
Processos no Linux maneira: o comando ls -l é executado e sua saída, ao invés de exibida no terminal,
Shell Script é enviada para o programa sed que manipula o texto da forma que lhe é conveniente.
• O Shell
• Shell Script Básico
Exemplo de script: conta palavras
• Pipes
• Variáveis
> cat /etc/passwd | egrep -o '\w+' | sed '/^[0-9]/d' | sort -f | uniq
O sed ֒→ -c -i | sort -n -r
• Sumário
Variáveis em Bash podem ser usadas da mesma maneira que se costuma usá-las na
Referências
maioria das linguagens de programação, com duas distinções. A primeira delas
Manuais
refere-se ao fato de que em Bash, não é necessário declarar variáveis. A simples
Administração atribuição de um valor para um nome resulta na alocação de uma variável com aquele
Shell Script nome. Segundo, as variáveis não são tipadas. O que significa que uma mesma
Segurança variável pode conter, em momentos distintos, valores de tipos diferentes.
Arquivos Assim, o script abaixo é perfeitamente válido. Note a ausência obrigatória de espaços
Processos no Linux entre o nome da variável e o operador de atribuição.
Shell Script
• O Shell # ! / b i n / bash
• Shell Script Básico
• Pipes
• Variáveis var =" H el l o , World ! "
O sed echo $var
var =10
echo $var
Shell Script
• O Shell
• Shell Script Básico
• Pipes
• Variáveis
O sed
O sed
O sed
O sed
Arquivos
Processos no Linux
Shell Script
• O Shell
• Shell Script Básico
• Pipes
• Variáveis
O sed
O sed
• Sumário
O comando if é um comando para tomada de decisão. O mesmo realiza uma
Referências
determinada ação quando um requisito é atendido. Sintaxe:
Manuais
Administração
if [ condicao 1 ]; then
comando 1
Shell Script elif [ condicao 2]
Segurança comando 2
Arquivos
else
comando 3
Processos no Linux
fi
Shell Script
• O Shell
• Shell Script Básico No exemplo a seguir o usuário digitará um valor na tela e só sera exibida uma
• Pipes
• Variáveis mensagem na tela caso esse valor seja maior, igual ou menor do que o número 10.
O sed
#!/bin/bash
echo -n "Digite um algo: "
read Entrada
if [ "$Entrada" -eq "10" ]; then
echo "Entrou com o numero 10"
elif [ "$Entrada" -lt 10 ]; then
echo "Entrou com um numero menor que 10"
else
echo "Entrou com um numero maior que 10"
fi
• Sumário
O laço for é uma executa uma ação repetitivamente até que uma condição seja
Referências
atendida.
Manuais
Sintaxe:
Administração
for contador in limite_contador;
Shell Script
do
Segurança acao
Arquivos done
Processos no Linux
Shell Script O while é um tipo de laço que existe em várias linguagens de programação. O
• O Shell
• Shell Script Básico
mesmo executa uma ação enquanto um requisito não é atendido.
• Pipes Sintaxe:
• Variáveis
• Sumário
Para obter Informações da imagem
Referências
# file carros_01.png
Manuais
carros_01.png: PNG image data, 640 x 633, 8-bit/color RGB, non-interlaced
Administração
• Sumário
Para encontrar uma imagem cuja as dimensões sejam menores que 300, faça:
Referências
> find . -iname "*.jpg" -type f | xargs -I{} identify -format '%w %h %i' {} | a
Manuais
384 288 ./carros_16.jpg
Administração 384 288 ./carros_14.jpg
Shell Script 384 288 ./carros_15.jpg
Segurança
Arquivos
encontrar imagen
Processos no Linux
Shell Script
• O Shell
• Shell Script Básico
• Pipes
• Variáveis
O sed
• Sumário
Pode-se dizer que uma Expressão Regular (ER) é um método formal, com uma sintaxe
Referências
própria, de se especificar um padrão ou um conjunto de padrões de texto.
Manuais
Administração A especificação deste padrão pode ser feita via uma composição de símbolos, ou seja,
Shell Script um conjunto de caracteres literais agrupados com metacaracteres formando uma
Segurança expressão regular. Os metacaracteres são caracteres específicos que possuem
Arquivos funções especiais em uma expressão regular.
Processos no Linux
Shell Script
Quando a expressão regular é aplicada a textos e retorna com sucesso o resultado
• O Shell
• Shell Script Básico esperado, o que ocorre quando o texto contém trechos que satisfazem exatamente a
• Pipes todas as condições impostas na ER. Nesse caso, diz−se que o texto “casou” com a
• Variáveis
ER.
O sed
A ERs servem para se dizer algo abrangente de forma específica. Definido o padrão
de busca, tem−se uma lista (finita ou não) de possibilidades de casamento.
Segurança
• [bmpv]ala pode casar com: bala, mala, pala, vala.
Arquivos
Processos no Linux • [bmpv]ala* pode casar com: balada, malaria, palanque, valado.
Shell Script
• O Shell As ERs são úteis para buscar ou validar textos variáveis como:
• Shell Script Básico
• Pipes • data e horário;
• Variáveis
• endereço de e−mail;
• endereço de Internet;
Arquivos
{n,m} Chaves De n até m vezes
Processos no Linux
Âncoras
Shell Script
• O Shell
• Shell Script Básico Metacaractere Nome Representa
• Pipes ^ Circunflexo O início da linha
• Variáveis
$ Cifrão O fim da linha
O sed
\b Borda O início ou fim de uma palavra
Outros
Shell Script
Opções:
Segurança
• -F: O mesmo que fgrep. Interpreta padrão como uma ER sem metacaracteres.
Arquivos
Processos no Linux • -E: Similar a egrep. Interpreta padrão como uma ER estendida.
Shell Script
• O Shell • -r: Faz procura recursiva.
• Shell Script Básico
• Pipes • -e expr: Procura pela ER expr.
• Variáveis
• Sumário
Observação: recomenda-se que o padrão esteja entre apóstrofos (’), pois alguns
Referências
caracteres tem significado especial para o shell e podem ser interpretados
Manuais
erroneamente.
Administração Exemplos: Procura a palavra "nobody"dentro do arquivo /etc/passwd e exibe o
Shell Script número da linha onde ela ocorre:
Segurança
# grep -n nobody / etc / passwd
Arquivos 18: nobody : x :65534:65534: nobody :/ nonexistent :/ usr / sbin / nologin
Processos no Linux
Shell Script Procura todos os arquivos abaixo de /etc que possuem a palavra mouse:
• O Shell
• Shell Script Básico # grep -r mouse / etc /*
• Pipes
• Variáveis
Outros exemplos:
O sed
Processos no Linux
Representa uma tabulação. Você também pode usar essa expres-
\t
Shell Script
são na caixa Substituir por.
• O Shell Verifica pelos limites de uma palavra. Por exemplo, "\bbook"
• Shell Script Básico
• Pipes localiza "bookmark"mas não localiza "checkbook"enquanto que
\b
• Variáveis "book\b" localiza "checkbook"mas não "bookmark". A palavra
O sed discreta "book"é encontrada em ambos termos de pesquisa.
^$ Busca linha em branco.
^. Procura o primeiro caractere de uma linha.
^[mnt] Busca linha que iniciem com m, n ou t.
^[^psr] Busca linha que não iniciem com p, s ou r.
Administração
login:senha:UID:GID:Nome Completo:Diretório $HOME:shell
Shell Script
Segurança
Todas as senhas estão protegidas em outro arquivo, por isso há somente uma letra
Arquivos
"x"em seu lugar. Analisando a primeira linha, sabemos que ela é referente ao
Processos no Linux
administrador do sistema ("root"). Seu número de usuário (UID) e seu número de
Shell Script
• O Shell
grupo são iguais: zero. Seu nome é "root"mesmo, seu diretório padrão é o "/root"e seu
• Shell Script Básico shell de login é "bash".
• Pipes
• Variáveis
O sed
Circunflexo ^: Cifrão $:
• Sumário
> grep ^root /etc/passwd > grep -n bash$ /etc/passwd
Referências root:x:0:0:root:/root:/bin/bash 1:root:x:0:0:root:/root:/bin/bash
> grep -n ^root /etc/passwd 35:salviano:x:1000:1000:Salviano de Araujo
Manuais 1:root:x:0:0:root:/root:/bin/bash ֒→ Leão,,,:/home/salviano:/bin/bash
Administração
Shell Script
Segurança
Recomenda-se que se proteja a ER, assim usa-se
Arquivos
Referências
> grep '^...............................$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
Manuais \end{code}
Será que ali tem 32 pontos mesmo? Como saber ao certo?
Administração Para certificar faz-se,
\begin{code}
Shell Script
grep '^...............................$' /etc/passwd | wc -c
Segurança 32
Arquivos
Processos no Linux
Colocar vários pontinhos, não é conveniente.
Shell Script
As chaves {}
• O Shell
• Shell Script Básico As ER facilitam este tipo de tarefa também. Colocando um número entre chaves "{}",
• Pipes
indica-se uma quantidade de repetições do caractere (ou metacaractere) anterior:
• Variáveis
O sed
> grep '^.\{31\}$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
\end{code}
Como as chaves fazem parte de um conjunto avançado de Expressões
Regulares ("extended"), então o egrep lida melhor com elas. Assim
\begin{code}
> egrep '^.{31}$' /etc/passwd
root:x:0:0:root:/root:/bin/bash
Para verificar,
Segurança
Arquivos
Se omitir o segundo número e manter a vírgula, fica uma faixa aberta, sem fim. Assim
Processos no Linux
pode se informar repetições de "no mínimo N vezes". Para obter as linhas que
Shell Script
• O Shell
possuem 80 caracteres ou mais:
• Shell Script Básico
• Pipes > egrep '^.{80,}$' /etc/passwd
• Variáveis gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/usr/sbin/nologin
avahi-autoipd:x:117:132:Avahi autoip daemon,,,:/var/lib/avahi-autoipd:/bin/false
O sed
speech-dispatcher:x:123:29:Speech Dispatcher,,,:/var/run/speech-dispatcher:/bin/sh
E claro, essa repetição também pode ser usada para caracteres comuns ou outros
metacaracteres além do ponto. Que tal repetir uma lista? Um bom exemplo é procurar
os usuários que têm um UID ou GID com 4 dígitos ou mais:
Administração
O sed
O ou | (OR)
Para fazer o OR lógico, onde se procura por uma coisa ou outra, deve−se usar o pipe
"e delimitar as opções com os parênteses "()":
Referências
Manuais
Administração
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
O sed
• SED
• awk
• Sumário
O que é o sed? O sed de fato possui características de:
Referências • um editor de textos, mas ele não é um;
Manuais
Arquivos De fato, devido a todas as suas características, pode-se dizer que ele é um pouco de
Processos no Linux tudo que foi citado e um pouco mais
Shell Script (Para maiores detalhes veja o site do Aurelio Marinho Jargas). É uma ferramenta
O sed muito útil, que permite ao usuário uma grande flexibilidade de uso.
• SED
• awk
Referências:
• http://sed.sourceforge.net/
• http://aurelio.net/sed/
• http://aurelio.net/sed/1liners-ptBR.txt
• Sumário
A sua sintaxe básica é a seguinte:
Referências # sed ' express ão ' arquivo
Manuais
Administração Com o SED é possível substituir e “casar” padrões, sempre por meio de Expressões
Shell Script Regulares. O SED lê um arquivo, linha por linha, e aplica a expressão do parâmetro
Segurança passado a cada uma das linhas.
Arquivos
Processos no Linux
Shell Script
O sed
• SED
• awk
Nota:
• Sumário O endereço não é um comando, mas sim o seu contexto. É o elemento que diz
Referências exatamente em quais linhas um comando, ou bloco deles, deverá ser aplicado.
Manuais
O QUE FAZER ---> comando
Administração
Processos no Linux
Há três tipos de endereços:
Shell Script
• Sumário
A maneira mais simples de se determinar um endereço é indicar diretamente sua
Referências
posição no arquivo, informando ao sed o número da linha à qual se quer aplicar o
Manuais
comando. Por exemplo, para apagar a 7a¯ linha de um arquivo:
Administração
# sed '7 d ' arquivo
Shell Script
Segurança Fácil, não? Observe que o espaço em branco entre o endereço e o comando é
Arquivos opcional, então também poderia ser ’7d’.
Processos no Linux
Shell Script
Como endereçar a primeira e/ou a última linha
O sed
• SED
• awk Para endereçar a primeira linha: 1. Para apagá-la?
Note que em sistemas UNIX o uso das aspas simples é obrigatório. Sem elas o shell
tentaria expandir a variável ’$d’ e o sed receberia um comando vazio.
• Sumário
Considere o seguinte arquivo
Referências > cat arq1 . txt
Manuais Cop é rnico 1473 1543
Administração
Galileu 1564 1642
Kleper 1571 1630
Shell Script
Newton 1643 1727
Segurança Laplace 1749 1827
Arquivos
Lagrange 1736 1813
Hamilton 1805 1865
Processos no Linux
Maxwell 1831 1879
Shell Script Planck 1858 1947
O sed
• SED Vamos retirar a linha com o Hamilton
• awk
Arquivos
Com uma pequena ajuda de uma ER
Processos no Linux
O sed
• SED Mas ficar repetindo, um comando não é conveniente, então podemos agrupá-lo da
• awk seguinte forma
Shell Script
Note que o metacaractere * é guloso e vai até o final da frase. Por sua vez a ER
Segurança
\{2\} significa o número de vezes que ele poderá casar com o caractere anterior e
Arquivos
nesse caso um número decimal.
Processos no Linux
Poderíamos usar o metacaractere \+, que significa casar uma ou mais vezes, assim,
Shell Script
teríamos
O sed
• SED
# sed -n '/^.*16[0 -9]\+ $ / p ' arq1 . txt
• awk
Galileu 1564 1642
Kleper 1571 1630
Considere agora o caso em que você deseja quais os físicos que nasceram no século
XVIII, e para isso faça
Manuais
A melhor forma é:
Administração
# sed '5 ,10 d ' arquivo
Shell Script
Segurança Então agora podemos misturar todos os tipos de endereço. Veja os exemplos:
Arquivos
1 ,/ Newton /
Processos no Linux
7,$
Shell Script / Galileu / , $
O sed / Kleper / ,/ Lagrange /
• SED 1,$
• awk
Como endereçar um trecho entre duas linhas, excluindo-as Para tal considere o
arquivo numeros.txt (que vai de um a dez):
Segurança ;#
Arquivos
;#
;#
Processos no Linux
;#
Shell Script ;#
O sed ;#
• SED }
• awk
Se for a linha ’um’, salte para o fim do script e processe a próxima linha (ou
seja, não faça nada nesta) se for a linha ’cinco’, salte para o fim do script e
processe a próxima linha (ou seja, não faça nada nesta) nos outros casos,
coloque ’- - -’ no começo da linha.
/ padr ã o /! { p ; d ; }
/ padr ã o1 / ,/ padr ã o2 /! { p ; d ; }
Shell Script
apague todas as linhas EXCETO da linha 1 até a 10
O sed
• SED
• awk
Interrompendo o processamento
Ou ainda, para obter apenas os cabeçalhos de uma mensagem de e-mail, que são
separados do corpo da mensagem por uma linha em branco:
O sed
• SED
Traduzindo: "Ao encontrar a primeira linha em branco do arquivo, saia".
• awk
Administração > dpkg -l "*maxima*" | sed -n '/^ii/ p' | sed -r 's/^ii *([a-z,-]*)
֒→ *(.*)/sudo apt-get install -y \1/g'
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O sed
• SED
• awk
Referências
Manuais
Administração
Shell Script
Segurança
Arquivos
Processos no Linux
Shell Script
O awk
O sed
• Sumário
O awk é uma linguagem procedural (ou imperativa) interpretada. As suas vantagens
Referências
em relação as compiladas são:
Manuais
• se for necessário fazer frequentemente alterações em vários arquivos texto, onde
Administração
quer que seja que certos padrões apareçam;
Shell Script
Segurança • se for necessário extrair dados de algumas linhas de um arquivo enquanto o resto é
Arquivos descartado.
Processos no Linux
Ou seja, com awk é possível gerenciar tarefas simples de "reformatar dados"com ape-
Shell Script
nas algumas linhas de código.
O sed
Função básica do awk é procurar por linhas (ou outras unidades de texto) em arquivos
que possuem certos padrões especificados no programa; para cada "padrão"(pattern)
deve haver uma ação associada, isto é, quando uma linha corresponde a um dos pa-
drões, awk realiza a ação especificada naquela linha; depois, awk continua proces-
sando as linhas de entrada desta maneira até encontrar o fim do arquivo de entrada;
o conjunto de comandos "padrão-ação"pode aparecer literalmente como um programa
ou em um arquivo específico com a opção -f "; arquivos de entrada são lidos em ordem;
se não há arquivos, a entrada padrão é lida.
Manuais
awk '<Programa>' <Arq1Entrada> <Arq2Entrada> ...
Administração
Shell Script
Segurança
<programa> consiste numa série de padrões e ações. Este comando é usado quando
Arquivos
programas simples são escritos no momento que se deseja utilizá-los. Este formato de
Processos no Linux comando instrui o shell, ou interpretador de comandos, para iniciar o awk e usar o
Shell Script programa para processar registros nos arquivos de entrada. As aspas simples em
O sed torno do programa instruem o shell para: não interpretar os caracteres awk como
caracteres especiais do shell; e tratar todo o programa como um único argumento para
awk e permitir que o programa tenha mais do que uma linha.
Também é possível executar o awk sem arquivos de entrada. Neste caso, quando se
digita a linha de comando:
Manuais
Administração O awk aplica o programa à entrada padrão, o que significa que tudo que for digitado no
Shell Script terminal até que seja pressionado CTRL+d. O exemplo a seguir copia os caracteres
Segurança digitados para a saída padrão.
Arquivos
Shell Script
O sed
• Sumário
> awk 'BEGIN {print "Nome Nasce Morre"}
Referências
֒→ {print } END {print "Numero total ", NR }' arq1.txt
Manuais Nome Nasce Morre
Administração Nicolau Copérnico 1473 1543
Galileu Galilei 1564 1642
Shell Script
Johannes Kepler 1571 1630
Segurança René Descartes 1596 1650
Arquivos Blaise Pascal 1623 1662
Processos no Linux
Isaac Newton 1643 1727
Pierre Simon Laplace 1749 1827
Shell Script
Joseph Louis Lagrange 1736 1813
O sed Benjamin Franklin 1706 1790
Charles Augustin de Coulomb 1736 1806
Michael Faraday 1791 1867
William Rowan Hamilton 1805 1865
William Thomson 1824 1907
James Clerk Maxwell 1831 1879
Max Karl Ernst Ludwig Planck 1858 1947
Albert Einstein 1879 1955
Heinrich Rudolf Hertz 1857 1894
Jules Henri Poincaré 1854 1912
Hendrik Antoon Lorentz 1853 1928
Wilhelm Conrad Röntgen 1845 1923
Numero total 20