Existe uma "lista" de tudo o que eu posso chamar no terminal que é dinâmico e se adapta ao atual conjunto de pacotes / binários / funções atualmente instalados?
Sim! Se você estiver usando bash
como seu shell (que eu assumo como sendo o shell padrão), você pode pressionar TAB
duas vezes, o que lhe dará uma lista completa dos comandos que você pode executar (cuidado com o fato de ser bastante longo) .
Edit: Eu aprendi que apertar a tecla duas vezes sem nenhum caractere só funciona quando o bash usa sua configuração padrão - não a do Ubuntu. Então você pode querer executar bash --norc
. Pressionar TAB
duas vezes deve funcionar.
Outra alternativa seria instalar e configurar zsh
ou fish
, que são substitutos legais para o bash e oferecem mais funcionalidade. (Eu prefiro fish porque ele fornece um autocompletar agradável quando você digita.)
Onde exatamente os vários pacotes instalados são armazenados? Eu olhei em / bin /, mas isso parece ser apenas uma fração do que está disponível para mim. / bin / parece ter muitos binários centrais, mas outros binários aparentemente básicos, como info e whatis, parecem estar ausentes. Da mesma forma, nenhum dos meus pacotes instalados obtidos através do apt, nem do próprio apt, estão presentes.
Você pode ver onde seu shell está procurando por programas instalados:
$ echo $PATH
/home/niklas/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/niklas/.gopath/bin:/home/niklas/.gopath/bin
(Observe que isso pode parecer um pouco diferente para você.)
Hoje, a maioria dos executáveis está localizada em /usr/bin
, conforme FHS .
Se você quiser saber onde um determinado programa está localizado, use which
:
$ which apt
/usr/bin/apt
Como não tenho grande experiência com o Windows, acho que não posso responder à última parte da pergunta, mas:
-
$PATH
é a "variável de ambiente do caminho que especifica onde o sistema procurará por binários". - A maioria dos programas está instalada em
/usr
. (Isso é dividido em executáveis (/usr/bin
), bibliotecas (/usr/lib
) e arquivos compartilhados (/usr/share
). A documentação está em/usr/share/doc
.)