Core utilities (Português)

From ArchWiki
Status de tradução: Esse artigo é uma tradução de Core utilities. Data da última tradução: 2020-06-21. Você pode ajudar a sincronizar a tradução, se houver alterações na versão em inglês.

Utilitários principais (ou Core utilities) são as ferramentas básicas e fundamentais de um sistema GNU/Linux. Este artigo fornece uma visão geral incompleta deles, vincula sua documentação e descreve alternativas úteis. O escopo deste artigo inclui, mas não está limitado a, o GNU coreutils. A maioria dos utilitários principais é ferramenta tradicional Unix (veja Heirloom) e muitos foram padronizados pela POSIX, mas foram desenvolvidos para fornecer mais recursos.

A maioria das interfaces de linha de comando está principalmente documentada em páginas man, utilitários pelo Projeto GNU estão documentados em manual info, alguns shells fornecem um help comando para comandos embutidos shell. Além disso, a maioria dos utilitários imprime seu uso quando executado com o sinalizador --help.

Essenciais

A tabela a seguir lista alguns utilitários importantes com os quais os usuários do Arch Linux devem estar familiarizados. Veja também intro(1).

Pacote Utilitário Descrição Documentação Alternativas
embutido no shell cd muda o diretório cd(1p)
GNU coreutils ls lista o diretório ls(1), info tree, #Alternativas ao ls
cat concatena para stdout cat(1), info tac(1), bat
mkdir cria diretório mkdir(1), info
rmdir remove diretório vazio rmdir(1), info
rm remove arquivos ou diretórios rm(1), info shred
cp copia arquivos ou diretórios cp(1), info #Alternativas ao cp
mv move arquivos ou diretórios mv(1), info
ln cria links absolutos ou simbólicos ln(1), info
chown altera dono e grupo de arquivo chown(1), info chgrp(1)
chmod altera permissões de arquivo chmod(1), info
dd converte e copia um arquivo dd(1), info
df relata uso de espaço em disco pelos sistemas de arquivos df(1), info
GNU tar tar arquivador tar tar(1), info arquivadores
GNU less less paginador de terminal less(1) paginadores de terminal
GNU findutils find pesquisa por arquivos ou diretórios find(1), info, GregsWiki #Alternativas ao find
GNU diffutils diff compara arquivos linha por linha diff(1), info #Alternativas ao diff
GNU grep grep imprime linhas correspondendo a um padrão grep(1), info #Alternativas ao grep
GNU sed sed editor de fluxo sed(1), info, uma linha
GNU gawk awk linguagem de varredura e processamento de padrão gawk(1), info nawk, mawkAUR
util-linux dmesg exibe ou controla o ring buffer do kernel dmesg(1) journal do systemd
lsblk lista dispositivos de bloco lsblk(8)
mount monta um sistema de arquivos mount(8)
umount desmonta um sistema de arquivos umount(8)
su substitui o usuário su(1) sudo
kill encerra um processo kill(1) pkill(1), killall(1)
procps-ng pgrep procura por processos por nome ou atributos pgrep(1) pidof(1)
ps mostra informações sobre processos ps(1) top(1), htop
free exibe a quantidade de memória livre e usada free(1)

Prevenindo perda de dados

Os redirecionamentos rm, mv, cp e shell excluem ou sobrescrevem arquivos sem perguntar. rm, mv e cp possuem suporte ao sinalizador -i para avisar o usuário antes de cada remoção/sobrescrita. Alguns usuários gostam de ativar o sinalizador -i por padrão usando aliases. Depender dessas opções de shell pode ser perigoso porque você se acostuma a elas, resultando em perda de dados em potencial quando você usa outro sistema ou usuário que não as possui. A melhor maneira de evitar a perda de dados é criar backups.

Não essenciais

Essa tabela lista utilitários principais que geralmente são úteis.

Pacote Utilitário Descrição Documentação Alternativas
embutido no shell alias define ou exibe aliases alias(1p)
type imprime o tipo de um comando type(1p) which(1)
time obtenha o tempo de um comando time(1p)
GNU coreutils tee lê a stdin e escreve para stdout e arquivos tee(1), info
mktemp cria um arquivo ou diretório temporário mktemp(1), info
cut imprime partes selecionadas de linhas cut(1), info
tr traduz ou exclui caracteres tr(1), info
od despeja arquivos em octal e outros formatos od(1), info hexdump(1), vim's xxd(1)
sort ordena linhas sort(1), info
uniq relata ou omite linhas repetidas uniq(1), info
comm compara dois arquivos ordenados linha por linha comm(1), info
head imprime a parte inicial dos arquivos head(1), info
tail imprime a parte final dos arquivos, ou segue arquivos tail(1), info
wc imprime contagem de nova linha, palavra e byte wc(1), info
GNU binutils strings emite caracteres imprimíveis em arquivos binários strings(1), info
GNU glibc iconv converte codificações de caracteres iconv(1) recode
file file advinha o tipo de arquivo file(1)

O pacote moreutils fornece ferramentas úteis como o sponge(1) que não estão presentes no GNU coreutils.

Alternativas

Utilitários principais alternativos são fornecidos por BusyBox, o Heirloom Toolchest, 9base, sbase-gitAUR e ubase-gitAUR.

Alternativas ao cp

O uso de rsync como uma alternativa a cp/mv permite retomar uma transferência com falha, mostrar o status da transferência, pular arquivos já existentes e certificar-se da integridade dos arquivos de destino usando somas de verificação.

Alternativas ao ls

  • broot — Uma nova forma de ver e navegar por árvores de diretórios.
https://github.com/Canop/broot || broot
  • exa — Outro substituto do ls com suporte a cores, visão de árvore, integração com git e outros recursos.
https://github.com/ogham/exa || exa
  • lsd — Um ls moderno com muitas cores bonitas e ícones legais.
https://github.com/Peltoche/lsd || lsd

Alternativas ao find

  • fd — Alternativa simples, rápida e amigável ao find. Ignora arquivos ocultos e inseridos em .gitignore por padrão.
https://github.com/sharkdp/fd || fd
  • fuzzy-find — Completação aproximada para localizar arquivos.
https://github.com/silentbicycle/ff || ff-gitAUR
  • mlocate — Implementação de fusão entre locate e updatedb.
https://pagure.io/mlocate || mlocate

Para pesquisadores gráficos de arquivo, veja Lista de aplicativos/Utilitários#Busca de arquivos.

Alternativas ao diff

Enquanto diffutils não oferece suporte a diferenciação por palavras, vários outros programas oferecem:

  • git diff pode fazer um diff de palavras com --color-words, usando --no-index ele também pode ser usado para arquivos fora de árvores de trabalho Git.
  • dwdiff — Um front-end diferenciador de palavras para o programa dif; tem suporte a cores.
https://os.ghalkes.nl/dwdiff.html || dwdiff
  • GNU wdiff — Uma implementação de diferenciação de palavras do GNU diff; não possui suporte a cores.
https://www.gnu.org/software/wdiff/ || wdiff
  • cwdiff — Um interfaceador do GNU wdiff que coloriza a saída.
https://github.com/junghans/cwdiff || cwdiffAUR, cwdiff-gitAUR
  • icdiff — Uma ferramenta diff colorida escrita em Python. "Improved color diff" serve para complementar o uso normal do diff.
https://github.com/jeffkaufman/icdiff || icdiffAUR,icdiff-gitAUR

Veja também Lista de aplicativos/Utilitários#Comparação, diff, merge.

Alternativas ao grep

  • mgrep — Um grep multilinha.
https://sourceforge.net/projects/multiline-grep/ || mgrepAUR
  • ripgrep-all — Pesquisa em arquivos textos e também em PDFs, E-Books, documentos Office, zip, tar.gz.
https://github.com/phiresky/ripgrep-all || ripgrep-all

Pesquisadores de código

As três ferramentas a seguir visam substituir o grep na pesquisa de código. Elas fazem pesquisa recursiva por padrão, ignoram arquivos binários e respeitam o .gitignore.

  • ack — Um substituto do grep baseado em Perl, tendo com alvo programadores com grandes árvores de código-fonte heretogêneo.
https://beyondgrep.com/ || ack
  • ripgrep (rg) — Uma ferramenta de pesquisa que combina a usabilidade do ag com a velocidade bruta do grep.
https://github.com/BurntSushi/ripgrep || ripgrep
  • The Silver Searcher (ag) — Ferramenta de pesquisa de código similar ao Ack, porém mais rápido.
https://github.com/ggreer/the_silver_searcher || the_silver_searcher

Filtros interativos

  • fzf — Localizador aproximado de linha de comando de propósito geral, movido a find por padrão.
https://github.com/junegunn/fzf || fzf, fzf-gitAUR
  • fzy — Um seletor de texto aproximado rápido e simples com um algoritmo avançado de pontuação.
https://github.com/jhawthorn/fzy || fzy, fzy-gitAUR
  • peco — Ferramenta simplista de filtragem interativa.
https://github.com/peco/peco || peco, peco-gitAUR
  • percol — Adiciona o sabor da filtragem interativa ao conceito tradicional de pipe do shell do UNIX.
https://github.com/mooz/percol || percolAUR, percol-gitAUR

Veja também