2 pontos por GN⁺ 2024-06-24 | 2 comentários | Compartilhar no WhatsApp

Como evitar conflitos com comandos personalizados

Problema

  • Possibilidade de conflito de nomes entre scripts de shell personalizados e comandos do sistema
  • Especialmente em sistemas como o Debian, que oferecem muitos comandos, a chance de conflito aumenta

Solução

  • Colocar uma vírgula (,) antes dos comandos personalizados para diferenciá-los dos comandos do sistema
  • A vírgula não tem significado especial em nomes de arquivos, então pode ser usada com segurança

Vantagens

  • Usar vírgula evita conflitos entre comandos
  • Com a conclusão por Tab, fica fácil ver a lista de comandos personalizados

Exemplo

$ ,«tab»
,complete-scp    ,go-thpgp      ,range
,complete-ssh    ,gr            ,svn-store-password
,coreoff         ,hss           ,umount
,coreon          ,mount-thpgp   ,find
,mount-twt

Opinião do GN⁺

  • Esse método pode evitar de forma eficaz conflitos entre comandos personalizados e comandos do sistema.
  • Usar vírgula é uma solução simples e poderosa, fácil de aplicar até para engenheiros iniciantes.
  • Essa técnica é especialmente útil em sistemas que usam muitos comandos.
  • Como alternativa, também é possível considerar adicionar um prefixo específico antes dos comandos.
  • Com esse método, o gerenciamento de comandos pode se tornar mais organizado e eficiente.

2 comentários

 
GN⁺ 2024-06-24
Comentários do Hacker News
  • O nome "comma_nds" é divertido. Parece uma boa ideia, então pretendo experimentar.
  • No começo achei que não seria grande coisa, mas gostei especialmente da parte de listar as ferramentas usando tab. Ultimamente quase não tive conflitos de namespace.
  • Nomes de scripts de shell curtos e concisos podiam acabar colidindo com comandos do sistema. Colocar o diretório bin no início do $PATH resolve isso.
  • No Vim, a tecla , também é muito usada. Ela é usada com frequência por um motivo parecido.
  • Não entendi muito bem o problema, mas a ideia de autocompletar os próprios comandos é boa.
  • Eu uso comandos personalizados curtos. Não me importo se eles colidirem com comandos do sistema. Quando há conflito, defino um alias com outro nome.
  • No Windows é fácil executar scripts Python, mas no Linux é difícil. O Linux não tem o conceito de programas associados, então isso é inconveniente.
  • Há o método de usar nomes de executáveis longos para evitar conflitos e definir aliases curtos. A desvantagem é que o autocompletar com tab fica inconveniente.
  • Na comunidade de expansores/substituição de texto, a técnica de começar com vírgula também é comum.
  • Eu tinha muitos executáveis em ~/.local/bin dos quais não me lembrava. Nomes de scripts começando com vírgula teriam sido úteis para ajudar a lembrar deles.
 
kayws426 2024-06-24

Que tal usar '_'?