fbpx
Whatsapp (31) 3069-8315
linuxdicaninja 1 scaled

Comando grep no Linux (filtra dados) [Guia Básico]

O comando grep no Linux é largamente usado no dia a dia das tarefas administrativas em Linux. Ele filtra as linhas de um determinado arquivo procurando por uma expressão regular como padrão.

O grep pode ler um ou mais arquivos que são passados como argumento ou pode receber na entrada padrão o redirecionamento da saída de outro processo. Se o grep receber mais de um arquivo ou um wildcard como argumento para efetuar a sua busca, ele vai indicar o nome do arquivo seguido de dois pontos e a linha encontrada.

O grep utiliza o padrão de Expressões Regulares POSIX BRE.

Assim, os meta-characters ? + { } (  )  não tem significado especial. No padrão BRE esses caracteres somente são interpretados com significado especial se precedidos com a contra-barra  \?   \+   \{   \}  \|   \(   \).

Suas opções mais frequentes são:

  • -c: Mostra somente a contagem das ocorrências nos arquivos e não as linhas onde as ocorrências foram encontradas;
  • -h: Mostra somente as linhas encontradas, sem a indicação do nome dos arquivos; 
  • -i: Procura as ocorrências ignorando se as letras estão em maiúsculas ou minúsculas;
  • -v: Mostra todas as linhas do arquivo procurado menos as ocorrências encontradas. Tem o efeito inverso;
  • -n: Mostra, além do texto das linhas encontradas, o número das linhas dentro dos arquivos;
  • -B n: Mostra n linhas antes da linha encontrada;
  • -A n: Mostra n linhas depois da linha encontrada.
  • -E    Muda o padrão POSIX BRE para POSIX ERE.
  • -F    Não interpreta nenhum meta-caractere

Exemplos:

Procura a palavra uira no arquivo /etc/passwd:

$ grep uira /etc/passwd
uira:x:500:100:uira:/home/uira:/bin/bash

Procura todas as linhas começadas com a letra u no arquivo /etc/passwd. O acento circunflexo simboliza o início de uma linha:

$ grep "^u" /etc/passwd
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
uira:x:500:100:uira:/home/uira:/bin/bash

Procura todas as linhas terminadas com a palavra false. O símbolo $ representa o fim de uma linha:

$ grep "false$" /etc/passwd
mail:x:8:12:Mailer daemon:/var/spool/clientmqueue:/bin/false
wwwrun:x:30:8:WWW daemon apache:/var/lib/wwwrun:/bin/false

Procura todas as linhas que iniciam com as vogais no /etc/passwd. A expressão regular chamada lista procura qualquer um dos caracteres dentro do colchete:

$ grep "^[aeiou]" /etc/passwd
uucp:x:10:14:Unix-to-Unix CoPy system:/etc/uucp:/bin/bash
at:x:25:25:Batch jobs daemon:/var/spool/atjobs:/bin/bash
uira:x:500:100:uira:/home/uira:/bin/bash
alias:x:501:1000::/var/qmail:/bin/false

Procura por todas as linhas em que o primeiro caracter seja qualquer um e o segundo caracter seja uma vogal. O ponto final na expressão regular simboliza “um caractere qualquer”:

$ grep "^.[aeiou]" /etc/passwd
root:x:0:0:root:/root:/bin/bash
bin:x:1:1:bin:/bin:/bin/bash
news:x:9:13:News system:/etc/news:/bin/bash
uira:x:500:100:uira:/home/uira:/bin/bash

Procura por linhas que contenham uma sequência de pelo menos quatro números consecutivos:

$ grep "[0-9][0-9][0-9][0-9]" /etc/passwd
squid:x:31:65534:WWW-proxy squid:/var/cache/squid:/bin/false
nobody:x:65534:65533:nobody:/var/lib/nobody:/bin/bash
alias:x:501:1000::/var/qmail:/bin/false
qmaild:x:502:1000::/var/qmail:/bin/false

Procura em todos os arquivos num diretório a ocorrência da palavra security.

$ grep security *

Veja o arquivo datas:

$ cat datas
1978-05-11 João
1976-02-23 Maria
2001-07-11 Pedro
1980-05-14 Carla

Para procurar as pessoas nascidas no dia 11 usando o grep, deve-se indicar que os caracteres {  } são metacaracteres usando a contra-barra:

$ grep "^[0-9]\{4\}-[0-9]\{2\}-11" datas
1978-05-11    João	
2001-07-11    Pedro

Para procurar uma ocorrência em todos os subdiretórios, utiliza-se a opção de recursividade “-r“:

$ grep -r uira *

Para inverter uma procura (trazer todas as ocorrências, menos algum termo, usa-se a opção “-v“.

Neste exemplo, retorna todas as linhas não comentadas do php.ini:

$ grep -v "^;" /etc/php.ini

Para listar somente as linhas com endereços de e-mail válidos:

$ grep -o '[[:alnum:]+\.\_\-]*@[[:alnum:]+\.\_\-]*' emails.txt

Para listar todos os endereços IPs únicos que acessaram um servidor web:

$ grep -E -o "(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)" /var/log/nginx/access.log  | sort | uniq

É possível também usar expressões com OU para fazer buscas de mais de um termo:

$ grep -E 'carla|uira' arquivo

Vale lembrar que o grep faz distinção de maiúsculas e minúsculas. Para fazer uma busca independente se o texto está em caixa alta ou baixa, pode-se usar a opção “-i“:

$ grep -i uira *

As buscas com a opção “-i” demoram mais tempo.

É possível usar as chaves para especificar ocorrências de algum caracter da busca em maiúsculo ou minúsculo:

$ grep [Uu]ira *

Para mostrar a linha de uma determinada ocorrência:

$ grep -n uira arquivo

Para mostrar uma linha antes e depois do termo, pode-se usar a opção “-C N“, onde N é o número de linhas:

$ grep -C 1 function LivroSubcapituloList.php 
    public static function onChangeLivro($param = null) {

Comando egrep

O comando egrep funciona como a opção -E do grep.

Ele na verdade utiliza o padrão POSIX de Expressões Regulares ERE na busca. Isto significa que a contra-barra deve ser usada para definir que o próximo caractere é um caractere literal e não um metacaractere como no padrão POSIX BRE.

Isto significa que os caractes  ?  +  {  }  |   (  ) não precisam da contra-barra para funcionar como meta-caracteres.

Tome como exemplo a lista de aniversários. Com o comando grep e sem as contra-barras, o grep não e capaz de encontrar os aniversariantes de Maio:

$ grep "^[0-9]{4}-05-[0-9]{2}" datas

Já o egrep é capaz de interpretar as {  } como meta-caracteres sem a contra-barra. É importante que você guarde a diferença do uso das contra-barras entre o grep (que necessita delas para indicar metacaracteres) e o egrep (cujo efeito das contra-barras é inverso, indicando um caractere comum):

$ egrep "^[0-9]{4}-05-[0-9]{2}" datas
1978-05-11 João
1980-05-14 Carla

Somente com a opção -E o grep é capaz de achar as ocorrências:

$ grep -E "^[0-9]{4}-05-[0-9]{2}" datas
1978-05-11 João
1980-05-14 Carla

É muito importante você saber o que faz a contra-barra no padrão POSIX BRE x POSIX ERE.

Comando fgrep

O comando fgrep também é parecido com o grep, mas ele não suporta expressões regulares, procurando somente uma chave de busca ou um texto comum nos arquivos.

Por este motivo, é mais rápido que o grep, mas menos versátil. 

Ele é o mesmo que a opção -F do grep.

Exemplo:

$ fgrep batata *
listaab:batata
supermercado:batata

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled

Comando gnupg no Linux (criptografia de mensagens) [Guia Básico]

O Comando GnuPG no Linux é uma aplicação do projeto GNU que implementa o OpenPGP tal como definido pela RFC4880. GnuPG permite criptografar e assinar os seus dados e mensagens, utilizando chaves públicas e privadas.

A ideia é você disponibilizar a sua chave pública para o mundo e manter a sua chave privada em sigilo.

Qualquer um com uma cópia de sua chave pública pode encriptar informações e enviá-las para você, porque só você poderá as mensagens. Também é possível assinar arquivos, de forma que qualquer pessoa com a sua chave pública é capaz de atestar que determinado arquivo ou mensagem veio de você.

A última versão do GnuPG pode ser instalada através do pacote gnupg da sua distribuição.

Feita a instalação, é preciso gerar as chaves do usuário com a opção “–gen-key” do comando gpg:

$ gpg --gen-key
gnupg_pt Comando gnupg no Linux (criptografia de mensagens) [Guia Básico]Figura 22 – gpg –gen-keys


Uma vez criada o par de chaves, deve-se exportar a chave pública para dar para outras pessoas, de modo que elas possam lhe enviar mensagens ou verificar a assinatura das mensagens que você enviou. Para exportar a chave pública, usa-se a opção “–export”:

$ gpg --export [email protected] > uira.pub

Se quiser verificar o arquivo criado:

$ file uira.pub 
uira.pub: PGP/GPG key public ring (v4) created Wed Oct 23 11:28:11 2019 RSA (Encrypt or Sign) 3072 bits MPI=0xbfa4300b374fd596...

Para importar a chave de outras pessoas, usa-se ]a opção “–import”:

$ gpg --import chave.pub

Você poderá ver as chaves que foram criadas com o argumento “–list-keys”

$ gpg --list-keys
/home/uiraribeiro/.gnupg/pubring.kbx
------------------------------------
pub   rsa3072 2019-10-23 [SC] [expires: 2021-10-22]
      E725EE3678AB3C99D51C625646BFCC17E483A6E0
uid           [ultimate] Uira Ribeiro <[email protected]>
sub   rsa3072 2019-10-23 [E] [expires: 2021-10-22]

Você poderá colocar sua chave pública no seu site, ou enviá-la para seus amigos.

Uma vez importada uma chave pública de outra pessoa, ela pode ser validada através da verificação da sua assinatura digital:

$ gpg --edit-key [email protected]
pub  1024D/9E98BC16  created: 1999-06-04 expires: never  trust: -/q
sub  1024g/5C8CBD41  created: 1999-06-04 expires: never     
(1)  Carla Cruz <[email protected]>
Command> fpr
pub  1024D/9E98BC16 1999-06-04  Carla Cruz <[email protected]>
Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16

A assinatura “fingerprint” deverá então ser verificada com o proprietário da chave pública, de forma que se garanta que aquela chave pública pertence mesmo ao seu verdadeiro dono. Isto evita que alguém possa criar uma chave pública fingindo ser outra pessoa. 

Algumas vezes você pode apenas aceitar que a chave é mesmo da pessoa que a enviou para você, mesmo sem verificar a assinatura. 

De qualquer forma, você pode assinar a chave pública importada com a sua chave:

$ gpg —edit-key [email protected]
pub  1024D/9E98BC16  created: 1999-06-04 expires: never  trust: -/q
sub  1024g/5C8CBD41  created: 1999-06-04 expires: never     
(1)  Carla Cruz <[email protected]>
Command> sign
pub  1024D/9E98BC16  created: 1999-06-04 expires: never   trust: -/q
Fingerprint: 268F 448F CCD7 AF34 183E  52D8 9BDE 1A08 9E98 BC16

Criptografia de Arquivos com GPG

Para criptografar um arquivo para enviar para uma determinada pessoa, você deverá ter a chave pública da pessoa importada e verificada.

A opção “–encrypt” é usada para criptografar os dados:

$ gpg --output documento.gpg --encrypt --recipient [email protected]  documento.pdf

Desta forma, o documento.pdf foi criptografado e salvo com o nome documento.gpg, que somente poderá ser lido pela Carla Cruz, que detém a chave privada.

Desta forma, a Carla, e somente a Carla, poderá ver o conteúdo do arquivo documento.gpg com a opção “–decrypt”:

carla:~\# gpg --output arquivo.pdf --decrypt documento.gpg

Assinatura de Documentos

Você poderá também assinar documentos digitalmente, de forma que as pessoas possam verificar que um arquivo é mesmo proveniente de você e não foi alterado por ninguém.

Para assinar digitalmente um arquivo, usa-se a opção “–sign”:

$ gpg --output documento.sig --sign documento.pdf

Desta forma, o arquivo será comprimido e a sua assinatura será adicionada.

Com a opção “–sign” o arquivo não está criptografado e qualquer um que tenha a sua chave pública poderá ver seu conteúdo e verificar sua assinatura.

Para verificar uma assinatura e ler o documento assinado, deve-se usar a opção “–decrypt”:

$ gpg --output documento.pdf --decrypt documento.sig

Você também poderá assinar e-mails com uma assinatura em texto, usando a opção “–clearsign”:

$ gpg --clearsign email.txt

Desta forma o texto será assinado com um hash:

-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA512
Este é um email de teste.
Abraços,
prof. Uirá Ribeiro
-----BEGIN PGP SIGNATURE-----
iQGzBAEBCgAdFiEE5yXuNnirPJnVHGJWRr/MF+SDpuAFAl2wadEACgkQRr/MF+SD
puAU9AwAkmQ/ffkJv0k2T1yq0VxuuG6ezxOulapr0dsFHCVWCXinYmjil/oNMamw
tZw4cDAKbdjMmP+3dg8a234dsFyN43AOiwznx8QPeJeMtWQNaWo9cg5THNZiKR5w
thsPMUC+3mcV0AqlGy3y5u9m4Uh6K97x+BjGc2XYkG6O3bocooSRTS3+rvDbGioR
3a84WtGY+YlgUsKlGhn4eUdfJ1+LxUNgUsSuT45CdDujB2VQXw3KK34/CGAxdctH
LBsI+DNrc/w/1lTjnmNpYGCdWjtQXAt8/DpXuI1GFJCZJmXD3Eu0gC7R7XTibcjU
CvMp5ovONTCGrnwkYXBSVwM/fZYKrcAManG5Vqyqepd7x6FVysxVPpbgPh/IKN51
RlfQeuF0+PjvqO5r3ShZxWvawnVh1kkEe2I0mYgW2aQWUdN7hC+zQZaHx6Gj3gIZ
MD1OJvCAuhW3yhBQV0EMOjotAhQC8NOfVrEKSSqD0yZs40kM+lwsNlJlNfLDMh3T
JIcAJGem
=TPYZ
-----END PGP SIGNATURE-----

A mesma opção “–decrypt” pode ser usada para verificar se a mensagem é autêntica e não foi alterada:

$ gpg  --decrypt email.asc 
Este é um email de teste.
Abraços,
prof. Uirá Ribeiro
gpg: Signature made Wed 23 Oct 2019 11:55:13 AM -03
gpg:                using RSA key E725EE3678AB3C99D51C625646BFCC17E483A6E0
gpg: Good signature from "Uira Ribeiro <[email protected]>" [ultimate]

Revogar Chaves

Se você perdeu sua chave privada, ou caso alguém tenha tido acesso a sua chave privada, ou mesmo você tenha esquecido sua passphrase, você pode gerar uma revogação de chave.

A revogação de chave gera um certificado que deve ser distribuído alertando os usuários de que sua chave e assinatura atuais não são mais válidos.

$ gpg --output revoke.asc --gen-revoke minhachave

O argumento minhachave pode ser o ID da chave, ou o userID que identifica sua chave.

Este certificado de revogação é bem pequeno. Recomenda-se imprimi-lo e guardá-lo em local seguro e apagá-lo do computador.

Os arquivos do GnuPG residem no diretório HOME dos usuários, com o nome de ~/.gnupg/

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

 

linuxdicaninja 1 scaled

Comando getent no Linux (altera propriedade) [Guia Básico]

O comando getent no Linux é utilizado para acessar as bases de dados de contas de usuário, senhas e grupos de usuários.

Apenas as bases de dados configuradas no arquivo /etc/nsswitch.conf podem ser acessadas com este comando.

A sintaxe do comando é:

$ getent base_de_dados chave

A base de dados pode assumir os seguintes valores:

  • passwd: refere-se ao arquivo /etc/passwd;
  • shadow: refere-se ao arquivo /etc/shadow;
  • group: refere-se ao arquivo /etc/group;

A chave é o item em que você deseja informações da base de dados.

Veja o exemplo, mostra os dados da conta de usuário zabbix:

$ getent passwd zabbix
zabbix:x:500:501::/home/zabbix:/bin/bash

Somente o root pode ter acesso a base de dados shadow:

# getent shadow zabbix
zabbix:$6$..5pDu8/$SBoEjzWpYE3hRNhoPI8pJW5rPpM2eEqc3OyWgAqFAJWJsaOy
xqMGs9BylcNiTKk.su.OQCuSEWRUEPoAuZFq0.:16537:0:99999:7::16509:

O comando getnet é útil para pegar os dados de uma determinada conta de usuário ou grupo, sem precisar listar o conteúdo dos arquivos passwd, shadow ou group e filtrar os resultados com o grep.

Você que é profissional de TI, de suporte ou desenvolvedor, já pensou em aprender Linux de verdade?

E ainda de quebra tirar uma certificação LPI Linux Essentials de quebra?

E melhor ainda, com o melhor curso Online para Linux?

Excelente!

★★★★★
- Janderson da Silva Jetto

Muito Bom

★★★★★
- Jayme Alvares G Filho

LPIC-101, LPIC-102 e CompTIA Linux+

★★★★★
ótimo livro ! parabéns pelo ótimo trabalho
- luiz ferraz

Recomendadissimo

★★★★★
Já obtive minha LPIC-1 e agradeço ao curso feito aqui, porque ajudou muito na obtenção da certificação
- Adriano de França Santos

Gostei demais...

★★★★★
Curso perfeito e excelente didática, Parabéns.
- José Luís Da Silva

Excelente

★★★★★
Ainda estou no Linux essencial.
- Fabio

Ótimos cursos

★★★★★
Os cursos do professor Uirá são ótimos para quem está se preparando para as certificações LPI e CompTIA Linux+ bem como para o mercado de trabalho. O professor aborta os assuntos de forma clara, concisa e objetiva. Além da teoria ganha-se muita prática podendo especialmente aplica-la através dos laboratórios GNU/Linux online disponíveis através do portal do aluno. Recomendo!
- Rodrigo Paiva

Ótimo Curso

★★★★★
O curso tem ótima didática, estou aprendendo muito com o livro e as videoulas.
- Charles Alves Fonseca

Melhor curso preparatório

★★★★★
O conteúdo abordado pelo prof. Uirá foi o melhor pro meu preparatório para LPI 1. Eu vinha de outro S.O e as aulas lecionadas aqui me ajudaram tanto para estudo quanto para manipulação do Linux no dia a dia. Aprendi muito rápido! Só tenho a agradecer ao professor Uirá pela excelente didática e material de estudo.
- Rayssa Cardoso

Material mais que essencial

★★★★★
Os assuntos são mostrados de maneira mais ampla, na medida certa dentro da prova. É um material atualizado, contendo o conteúdo que será abordado. Cria confiança de que o que está estudando é para passar e não para te enrolar. Recomendo!
- Edson

Certificação Linux LPI-1

★★★★★
Excelente livro. Além de me ajudar a estudar para a certificação também é um ótimo guia de referência. Muito didático.
- Giordane

Faça como essas pessoas e crie sua conta agora.

Aqui você tem tudo para você ter sucesso nas provas de LPI e CompTIA

Quer saber se uma certificação vale a pena ? Saiba porque os salários são bons, e porque as empresas estão procurandoprofissionais de Linux. 

Você vai ententer que os benefícios superam de longe o sacrifício.

E se você já se decidiu, veja nosso Guia de Certificação.

E se quer saber onde fazer as provas, consulte a lista de cidade.

Se quiser saber o idioma das provas, veja esse post.

Aprenda muito mais sobre Linux em nosso curso online. Você pode fazer a matrícula aqui. Se você já tem uma conta, pode acessar aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled

Arquivo fstab no Linux (configuração de montagem de discos) [Guia Básico]

O arquivo /etc/fstab armazena a configuração de quais dispositivos devem ser montados e qual o ponto de montagem de cada um na carga do sistema operacional, mesmo dispositivos locais e remotos.

A configuração do arquivo /etc/fstab contém os seguintes campos:

  • Dispositivo: Especifica o dispositivo a ser montado. Pode ser nome do dispositivo em /dev, UUID ou LABEL;
  • Ponto de Montagem: Especifica o diretório em que o dispositivo será montado;
  • Tipo de Sistema de Arquivos: Especifica o tipo de sistema de arquivos a ser montado;
  • Opções de Montagem: Especifica as opções de montagem dependendo do tipo de sistema de arquivos;
  • Frequência de Backup: O programa dump consulta o arquivo para saber a frequência de Backup. É um campo numérico, onde 1 é para sistemas ext2 e 0 para outros;
  • Checagem de Disco: determina se o dispositivo deve ou não ser checado na carga do sistema pelo fsck. É um campo numérico, onde 0 é para não ser checado, 1 é para ser checado primeiro (sistema raiz) e 2 para checar depois do sistema raiz.

Os campos podem ser separados por espaço simples, ou TAB.

Cada linha no /etc/fstab deve ser um ponto de montagem separado e deve obrigatoriamente conter todos esses campos para que o registro no /etc/fstab esteja correto.

Os tipos de sistema de arquivos mais comuns são: ext2, ext3, ext4, reiserfs, xfs, btrfs, vfat, iso9660, nfs, swap, etc.

As opções de montagem disponíveis são:

Opção Descrição
autoHabilita que o dispositivo seja montado na carga do sistema operacional.
noautoDesabilita que o dispositivo seja montado na carga do sistema operacional.
roMonta o sistema de arquivos como somente leitura.
rwMonta o sistema de arquivos para leitura e gravação.
execHabilita a execução de arquivos no sistema de arquivos especificado.
noexecDesabilita a execução de arquivos.
userPossibilita que qualquer usuário monte o dispositivo.
nouserSomente o superusuário pode montar e desmontar o dispositivo.
syncHabilita a transferência de dados síncrona no dispositivo.
asyncHabilita a transferência de dados assíncrona no dispositivo.
devDispositivo especial de caracteres.
suidHabilita que os executáveis tenham bits do suid e sgid e executem como se fosse o superusuário.
nosuidDesabilita que os executáveis tenham bits do suid e sgid.
defaultsConfigura as opções de montagem como rw, suid, exec, auto, nouser e async.

Exemplo de /etc/fstab:

$ cat /etc/fstab 
UUID=8a9e0fcb-f415-4a3f-931d-919fadf8e22c / xfs    defaults 0 1 /dev/xvdf                                /home ext4 defaults 0 1 /dev/xvdg                                  swap swap defaults 0 0

Neste exemplo, o dispositivo que foi montado como raiz uma a notação UUID, tem o sistema de arquivos xfs, com opções padrão. Um outro disco /dev/xvdf foi montado como diretório /home do sistema, usando o ext4.

E ainda, o /etc/fstab contém informação da partição usada como swap. Neste caso o ponto de montagem será swap, bem como o tipo também será swap. Desta forma, quando o computador reiniciar, a partição de swap será habilitada automaticamente com o comando “swapon”.

Relembre que o comando mount com a opção -a remonta todos os dispositivos configurados no /etc/fstab.

É comum usar o UUID dos discos no /etc/fstab de forma a evitar que o nome do disco em /dev/ seja alterado devido alguma mudança no hardware, como por exemplo a inserção de um novo disco.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled

Comando fsck no Linux (corrige sistema de arquivos) [Guia Básico]

O comando fsck no Linux é na verdade um “wrapper” que serve para chamar outros comandos que são variações do fsck para vários tipos de sistemas de arquivos.

Você pode perceber isso com o comando ls no diretório /usr/sbin:

$ ls -l /usr/sbin/*fsck*
lrwxrwxrwx 1 root root      8 mar  8  2019 /usr/sbin/dosfsck -> fsck.fat
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/e2fsck
-rwxr-xr-x 1 root root  49896 jul 26  2018 /usr/sbin/fsck
-rwxr-xr-x 1 root root  37200 jul 26  2018 /usr/sbin/fsck.cramfs
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/fsck.ext2
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/fsck.ext3
-rwxr-xr-x 4 root root 256424 jul 26  2018 /usr/sbin/fsck.ext4
-rwxr-xr-x 1 root root  57424 ago  2  2018 /usr/sbin/fsck.fat
-rwxr-xr-x 1 root root  83536 jul 26  2018 /usr/sbin/fsck.minix
lrwxrwxrwx 1 root root      8 mar  8  2019 /usr/sbin/fsck.msdos -> fsck.fat
lrwxrwxrwx 1 root root      8 mar  8  2019 /usr/sbin/fsck.vfat -> fsck.fat
-rwxr-xr-x 1 root root    433 jan 24  2019 /usr/sbin/fsck.xfs

Dependendo do sistema de arquivos, o fsck invoca o fsck.algumacoisa apropriado para lidar com aquele sistema de arquivos.

O objetivo do fsck é checar e corrigir a existência de erros no sistema de arquivos. Por padrão, o fsck assume o sistema de arquivos ext2 e, após fazer uma checagem no disco, pergunta ao usuário se ele deseja fazer as correções necessárias.

Como parâmetro o fsck aceita um nome de dispositivo (ex.:  /dev/hdc1, /dev/sdb2), um ponto de montagem (ex:  /, /usr, /home), ou um Label (ex.: LABEL=root) ou uma identificação de disco UUID (ex.:  UUID=8868abf6-88c5-4a83-98b8-bfc24057f7bd ).

Um identificador UUID é um número único que identifica um disco, como se fosse o “MAC Address dos discos”.

As opções frequentemente usadas são:

  • -A: Faz a checagem de todos os discos especificados no arquivo /etc/fstab;
  • -t: Especifica o tipo de sistema de arquivos que deverá ser checado;

Ainda podemos ter algumas opções para o sistema de arquivos ext2:

  • -b: Superbloco Especifica qual superbloco o fsck irá trabalhar;
  • -c: Faz checagem de setores defeituosos (bad blocks);
  • -f: Força a checagem do sistema de arquivos mesmo que este pareça íntegro;
  • -p: Repara automaticamente o sistema de arquivos;
  • -y: Executa o fsck de modo não interativo, não fazendo nenhuma pergunta ao usuário;

Um superbloco é uma área especial no disco com informações importantes dos parâmetros do sistema de arquivos e o seu estado atual. Geralmente o superbloco é copiado em diversas áreas no disco como backup.

O fsck precisa que o disco esteja desmontado para realizar a checagem e reparos:

# fsck /dev/xvdb1
/dev/xvdb1 is in use.

Uma vez desmontado o sistema de arquivos:

# fsck.ext4 /dev/xvdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/xvdb1: clean, 41436/524288 files, 374905/2096891 blocks

Dependendo do tamanho e dos inúmeros reparos que a partição necessita, o processo do fsck pode demorar horas.

Para verificar a partição do sistema raiz há duas opções:

  1. Usar um Pendrive com Linux para dar carga em outro Linux e verificar a partição;
  2. Usar o comando “touch /forcefsck” para criar o arquivo forcefsck, que força o linux a verificar a partição raiz no boot do sistema

Comando e2fsck

O comando e2fsck é usado para checar o sistema de arquivos ext2, ext3 e ext4. Ele é a versão do fsck para os sistemas de arquivos baseados no sistema de arquivos ext.

As opções são comuns ao fsck, já que é ele que é invocado pelo fsck quando se trata de partições do tipo ext2, ext3 e ext4.

Exemplo:

$ sudo fsck.ext4 /dev/xvdb1
e2fsck 1.42.9 (28-Dec-2013)
/dev/xvdb1: clean, 41436/524288 files, 374905/2096891 blocks

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

 

linuxdicaninja 1 scaled

Comando free no Linux (uso da memória) [Guia Básico]

Comando free no Linux mostra a quantidade de memória total, em uso e disponível, bem como informações de cachê e swap.

As opções “-b”, “-k” e “-m” mostram a quantidade em bytes, kbytes e megabytes respectivamente:

$ free
        total  used    free   shared  buff/cache  available
Mem:  2039524  189396  178424   131684     1671704   1503316
Swap:       0       0           0

A opção -h mostra as quantidades de maneira mais fácil de ler:

$ free -h
        total  used  free  shared  buff/cache  available
Mem:    1,9G  153M  205M    128M        1,6G      1,5G
Swap:      0B    0B    0B

Abaixo o significado de cada campo:

  • total:         Total de memória RAM instalada no sistema;
  • used:         Memória utilizada (total – free – buffers – cache);
  • free:           Memória disponível;
  • shared:     Memória compartilhada entre os processos usando o tmpfs. Os processos podem alocar memória que compartilham por exemplo com seus processos filhos;
  • buffers:     Memória usada como área de transferência pelo kernel;
  • cache:       Memória usada pelo cachê de páginas de memória;
  • available   Memória disponível sem levar em conta a memória utilizada em buffers e cache

Nas versões antigas do comando free, a informação de buffer e cachê eram separadas em duas colunas, porque o Linux dividia o buffer cachê em duas categorias. O buffer era a memória usada pelo Kernel, e o Cachê era a memória usada pelos processos para cachê. Resolveu-se juntar essa informação em uma só coluna.

O comando free também mostra a quantidade de memória disponível e usada em swap. 

O swap é uma área de disco que pode ser usada como espaço de troca de páginas de memória entre a RAM e o disco, possibilitando aumentar virtualmente a memória do sistema através das paginações entre memória e disco. É um recurso que pode ser usado para evitar um esgotamento da memória RAM. 

Se o sistema faz bastante uso do Swap, é um forte indicativo que há necessidade de se aumentar a quantidade de memória RAM em função do uso do sistema.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled

Comando for no Linux (loops de execução) [Guia Básico]

O shell possui estruturas para testar condições e executar determinadas sequências de programas várias vezes (loop), até que a condição testada seja satisfeita.

Os três comandos que possibilitam isso são o for (até que), o while (enquanto for verdadeiro) e until (enquanto for falso).

O comando for no Linux permite que laços (loops) sejam feitos para que um ou mais comandos sejam executados até que uma determinada variável percorra todos os valores de uma dada lista. 

Veja um exemplo simples:

$ for numero in um dois três quatro cinco
do
echo "Contando: $numero"
done 
Contando: um
Contando: dois
Contando: três
Contando: quatro
Contando: cinco

O mesmo comando pode ser escrito em uma só linha:

$ for numero in um dois três quatro cinco; do echo "Contando: $numero"; done

Veja o exemplo:

$ ls -1 > lista_arquivos.txt

Pode-se agora usar o for para executar diversos comandos para cada arquivo da lista:

$ for i in $(cat lista_arquivos.txt); do cp $i $i.backup; mv $i.backup /tmp/backup; done;

Este laço atribui para a variável $i cada linha do arquivo lista_ar­quivos.txt.

A expressão $(comando) gera uma lista com resultado do comando. Tem o mesmo efeito que utilizar o comando entre crases: `comando`.

Em seguida ele executa os comandos para renomear e mover os arquivos até que a lista esteja completa.

Agora um exemplo um pouco mais complexo, com uso do for com if:

$ for i in `ls -1`; do if test -f $i;  then echo “$i é um arquivo “; else echo “$i não é um arquivo”; fi ; done
Desktop não é um arquivo
Documents não é um arquivo
Downloads não é um arquivo
HR_PROFESSOR.sql é um arquivo

Nesta linha, o resultado do comando ls -1 é colocado na variável $i; Depois cada linha da variável $i é testada para saber se é um arquivo; se for verdadeiro, será exibida uma frase e, se for falso, outra frase.

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe

linuxdicaninja 1 scaled

Comando fmt no Linux (formata texto) [Guia Básico]

O comando fmt no Linux (format) formata um texto com uma largura específica. Ele pode remover espaços ou adicionar espaços conforme a largura desejada. O padrão são 75 caracteres.

A opção frequentemente utilizada é:

-w número: Configura a largura desejada para o texto.

Exemplo:

$ fmt –w 50 LEIAME.TXT

Aprenda muito mais sobre Linux em nosso curso online. Você pode efetuar a matrícula aqui. Se você já tem uma conta, ou quer criar uma, basta entrar ou criar seu usuário aqui.

Gostou? Compartilhe