Introdução
Este artigo tem como objetivo demostrar alguns comandos Linux uteis para o gerenciamento do Sistema Operacional, você aprenderá alguns macetes sobre vários comandos típicos além de variações de utilização.
Ressalto que os comandos aqui executados podem sofrer variações dependendo da versão do Sistema Operacional utilizado ou do kernel específico compilado.
Pré-requisitos
Este artigo necessita de um sistema operacional Linux de 64 bits, preferencialmente a distribuição Oracle Linux 7.5.
Macetes Linux
1) Alterar permissão, grupo e proprietário utilizando um arquivo como referência
cd /home/oracle
ll -h
-rwxrwxr-x. 1 root root 0 Set 30 11:18 arquivo1
-rw-r--r--. 1 oracle oinstall 0 Set 30 11:17 arquivo2
1.1) Comando chmod
chmod --reference arquivo1 arquivo2
ll –h
-rwxrwxr-x. 1 root root 0 Set 30 11:18 arquivo1
-rwxrwxr-x. 1 oracle oinstall 0 Set 30 11:17 arquivo2
1.2) Comando chgrp
chgrp --reference arquivo1 arquivo2
ll -h
-rwxrwxr-x. 1 root root 0 Set 30 11:18 arquivo1
-rwxrwxr-x. 1 oracle root 0 Set 30 11:17 arquivo2
1.3) Comando chown
chown --reference arquivo2 arquivo1
ll -h
-rwxrwxr-x. 1 oracle root 0 Set 30 11:18 arquivo1
-rwxrwxr-x. 1 oracle root 0 Set 30 11:17 arquivo2
2) Detalhes sobre arquivos
2.1) Comando stat
su - oracle
cd $ORACLE_HOME/bin
stat oracle
File: "oracle"
Size: 323762270 Blocks: 632360 IO Block: 4096 arquivo comum
Device: fc00h/64512d Inode: 2231997 Links: 1
Access: (6751/-rwsr-s--x) Uid: (54321/oracle) Gid: (54321/oinstall)
Access: 2018-08-17 14:43:11.639292698 -0300
Modify: 2017-01-17 15:07:24.661273801 -0200
Change: 2017-01-17 15:07:25.084273830 -0200
Observe os detalhes obtidos:
Quantidade de blocos ocupados;
UID e GID da propriedade do arquivo;
Permissões de acesso representado em Octal (6751);
Informações de registro de data e hora de Acesso (Access), Modificação (Modify) e Alteração de Permissões (Change).
Outra opção é utilizar a opção -t que oferece as mesmas informações, porém em uma única linha. Está opção é útil para ser utilizada em scripts de shell.
stat -t oracle
oracle 323762270 632360 81e9 54321 54321 fc00 1985345 1 0 0 1538319857
1538319863 1538319903 4096
3) Tipos de Arquivos
3.1) Comando file
O comando file mostra qual é o tipo de arquivo, pois em Linux não é necessário tipificar um arquivo atribuindo uma extensão arquivo.
cd /home/oracle
file arquivo1 arquivo2
arquivo1: ASCII text
arquivo2: POSIX shell script text executable
tar -cjvf arquivos.tar.bz2 arquivo1 arquivo2
file arquivos.tar.bz2
arquivos.tar.bz2: bzip2 compressed data, block size = 900k
4) Comparando Arquivos
4.1) Comando cmp
O comando cmp é semelhante a diff, porém o resultado é retornado com primeiro sinal de diferença.
cd /home/oracle
cp arquivo1 arquivo3
echo "teste" >> arquivo3
echo "outro" >> arquivo1
cmp arquivo1 arquivo3
arquivo1 arquivo3 differ: byte 36, line 5
Uma opção útil para ser utilizada com comando CMP é parâmetro -s, ele vai retornar um código. Sendo:
0, se forem idênticos
1, se forem diferentes
Outro número diferente de 0, se não for possível fazer a comparação.
cmp -s arquivo1 arquivo3
echo $?
1
4.2) Comando md5sum
O md5sum gera um valor hash de MD5 de 32 bits.
md5sum arquivo1
e7580d1e71eabbfce47327670bd590f5
Dois arquivos com a mesma soma de verificação podem ser considerados idênticos. Porém este comando também pode ser utilizado oferecer um mecanismo para garantir a integridade, utilizando a opção –check.
md5sum /home/oracle/arquivo1 /home/oracle/arquivo2 > arquivo_soma
md5sum --check arquivo_soma
/home/oracle/arquivo1: SUCESSO
/home/oracle/arquivo2: SUCESSO
4.3) Comando ls
LS é um comando muito conhecido, porém existem algumas opções que podem torna seu uso mais eficaz.
Para mostrar a saída do comando em formato de lista, use a opção -1 (menos um)
ls -1
arquivo1
arquivo2
arquivo3
arquivos.tar.bz2
A opção -F acrescenta um símbolo despois de cada arquivo para mostrar o tipo do arquivo: “/” depois de diretórios, “@” depois de links simbólicos e “|” depois de pipes nomeados.
ls -F
diretorio/ arquivo1 arquivo2 link1@ pipe1|
A opção -r mostra os arquivos em ordem alfabética invertida.
touch zarquivo.txt
ls -1 -r
zarquivo.txt
arquivos.tar.bz2
arquivo3
arquivo2
arquivo1
A opção -S listar os arquivos dos maiores para os menores de acordo com seu tamanho.
ls -lS
-rw-r--r--. 1 oracle oinstall 135 Set 30 12:29 arquivos.tar.bz2
-rwxrwxr-x. 1 oracle root 28 Set 30 12:44 arquivo2
-rwxr-xr-x. 1 root root 25 Set 30 13:10 arquivo3
-rwxrwxr-x. 1 oracle root 23 Set 30 13:10 arquivo1
-rw-r--r--. 1 root root 0 Set 30 14:29 zarquivo.txt
4.4) Comando m4
O comando m4 pega um arquivo de entrada e substitui as strings contidas nele pelos parâmetros passados, o que é semelhante à substituição por variáveis.
Neste exemplo será substituído as strings “WINTHOR” por “CLIENTE” e “SENHA” por “654321”.
echo "impdp exporta/senha dumpfile=EXPDP_WINTHOR_FULL_28092018-19h.dmp
logfile=IMPDP_WINTHOR_FULL_28092018-23h.log TRANSFORM=OID:n
remap_schema=WINTHOR:HOMOLOGA directory=export_dir schemas=WINTHOR" >
arquivo.txt
m4 -Dsenha=654321 -DWINTHOR=CLIENTE arquivo.txt
impdp exporta/654321 dumpfile=EXPDP_WINTHOR_FULL_28092018-19h.dmp
logfile=IMPDP_WINTHOR_FULL_28092018-23h.log TRANSFORM=OID:n
remap_schema=CLIENTE:HOMOLOGA directory=export_dir schemas=CLIENTE
Conclusão
Foi demonstrado até aqui alguns dos comandos Linux úteis para a execução do seu trabalho de forma mais produtiva. Na próxima parte deste artigo descreverei alguns comandos mais sofisticados, com o objetivo de agregar conhecimento no gerenciamento de recursos em ambientes Linux. Recomento que pratique e se familiarize com estes comandos.
Referências Bibliográficas
JARGAS, Aurelio Marinho. Shell Script Profissional. Sao Paulo: Novatec, 2008. 480 p.