Como obter uma lista de todos os comandos disponíveis para o Ubuntu?

22

Quero começar a usar o terminal com mais frequência, mas não sei quais são os diferentes comandos disponíveis para mim. Existe uma maneira de listar todos os comandos diferentes que eu posso usar?

user233219
fonte

Respostas:

25

Primeiro método

NB : Obrigado a @Rmano. Este método não funciona com zshshell.

Um comando simples:

ls ${PATH//:/ }

Isso listará todos os comandos em sua $PATHvariável de ambiente.

Para armazenar o resultado em um arquivo, você pode redirecionar a saída para um arquivo.

ls ${PATH//:/ } > mycommands.txt

Observe que isso retornará um erro se algum nome de diretório no seu $PATHcontiver espaços. Nesse caso, use isso:

while read -d ':' dir; do echo "$dir"; done <<<$PATH

Segundo método

Também você pode usar:

compgen -c | sort -u > commands && less commands

Terceiro método

Outro método é um Tabclique duplo .

Quarto método

Outro método usando o findcomando:

find {,/usr}/{,s}bin -printf '%f\n\0'
Maythux
fonte
Observe que o primeiro comando funciona em, bashmas não em zsh, com a divisão de palavras desativada por padrão. refining-linux.org/archives/38/…
Rmano
11

Se você estiver usando o bash, que é o shell padrão em todos os sabores oficiais do Ubuntu, corra compgen -cpara ver os comandos disponíveis, incluindo aliases.


fonte
Isso é apenas uma festa?
Braiam
1
Até os comandos para programas baseados em GUI estão incluídos. Portanto, se você tiver compgen -c | grep thunare tiver o gerenciador de arquivos Thunar instalado, também verá comandos relacionados ao Thunar.
1
Mmm ... não funciona no Debian. Qual pacote fornece isso?
Braiam
2
@Rinzwind que explica isso, estou usando o zsh.
Braiam
1
@ vasa1: Essa resposta poderia ser mais geral? Quero dizer, ele fornece apenas a solução para o bash, mas, como Braiam observou, não funciona para o zsh ... Se possível, você poderia expandir a resposta para atender a um público maior - obviamente, apenas se você souber a resposta :-)
Aditya
4

Abra o terminal Ctrl+ Alt+ te execute este comando:

whatis `compgen -c` | more 

Isso listará todos os comandos e uma descrição simples de cada comando.

Se você deseja salvar a lista, pode redirecionar o resultado para um arquivo de saída

whatis `compgen -c` > listOfCommands.txt

Então, por que eu usei o comando whatis. O comando man whatisfornece:

Cada página do manual possui uma breve descrição disponível.
O whatis pesquisa os nomes das páginas de manual e exibe as descrições das páginas de qualquer nome correspondente.

assim, em palavras fáceis, whatisdê um general. descrição de cada comando

Maythux
fonte
+1 para informações adicionais. whatis `compgen -c` | sort> listOfCommands.txt ajudará a entrar na lista de classificação.
precisa
Outro comando útil: apropos <keyword>pesquisa todos os comandos e sua breve descrição e exibe os resultados
Aloso
3

Abra um terminal e pressione a Tabtecla duas vezes.

dadexix86
fonte
1
-1 porque isso não é padrão.
Lorenzo Ancora
@LorenzoAncora por que não é padrão? Todo o Ubuntu não possui o preenchimento automático com o duplo Tab como comportamento padrão?
dadexix86
2
Padrão! = Padrão: no futuro, talvez tenhamos um console que não suporta esse mecanismo, porque não é padrão; Além disso, o padrão TAB pode ter uma função diferente. Um procedimento padrão está listando o conteúdo de 'bin', porque faz parte do padrão oficial da FHS e qualquer sistema Linux / Unix possui esse diretório. A funcionalidade correta (e a capacidade da comunidade de ajudar os usuários) do Ubuntu é garantida pelo respeito aos padrões.
Lorenzo Ancora
Ok, obrigado pela explicação :) Eu pensei que o behaviout padrão da dupla Tab no Ubuntu foi para listar o conteúdo de PATH :)
dadexix86
@LorenzoAncora Listar o conteúdo de qualquer diretório não será exibido em nenhum lugar próximo a todos os comandos executáveis. A listagem do conteúdo de todos os diretórios PATH não mostrará os recursos internos do shell sem o executável correspondente (como cd). Pressionar Tab duas vezes supera essas duas limitações graves. Se alguém perguntasse como mostrar todos os comandos em um sistema GNU / Linux arbitrário, alguém poderia argumentar que a conclusão da guia não é uma solução adequada. É claro que qualquer coisa pode mudar no Ubuntu no futuro, mas a probabilidade de conclusão da guia no shell interativo padrão desaparecer é minúscula.
Eliah Kagan 10/03/2014
2

Uma lista de comandos depende muito do que você instalou, mas há truques para listar todos os comandos. O seguinte funciona na maioria das cascas semelhantes a bourne:

  1. Pressione Tabduas vezes.
  2. Use findpara encontrar todos os executáveis:

    find / -perm +x
    
  3. Liste todos os arquivos nos diretórios dos binários (podem estar incompletos):

    ls /bin /sbin /usr/bin /usr/sbin /usr/local/bin /usr/local/sbin
    
Braiam
fonte
1

Abra uma janela do terminal (o terminal GNOME está OK, também um xTerm configurado).
Suas opções são:

  • Pressionando a TABtecla ("-> <-") duas vezes, você concluirá qualquer comando no console e, se a linha estiver vazia, obterá o número e os nomes de todos os comandos disponíveis . Observe que isso pode levar algum tempo e pode listar utilitários semi-administrativos. NOTA: este não é um padrão; para uma maneira "cruzada", consulte as outras opções.

  • Use man -k NAMEpara procurar um comando (ou parte dele) e man COMMANDobter o manual para esse comando. Nem todos os comandos têm um manual do sistema; ler o homem antes de usar qualquer utilitário administrativo é sempre uma boa ideia; Confie em mim.

  • Use o Midnight Commander ( mc) para ter uma boa interface gráfica do console (maldições) para gerenciar o sistema e o sistema de arquivos. Pode ser necessário instalá-lo a partir do seu gerenciador de pacotes. Não se preocupe; é um software seguro e extremamente comum.
    NOTA: Foi criado para quando você tiver confusão ou dificuldade em usar o sistema de arquivos.

  • Use ls /bin | morepara conhecer todos os executáveis ​​administrativos exenciais ; ls /sbin | morepara executáveis ​​administrativos comuns .

  • Use ls /usr/sbin | morepara conhecer todos os executáveis ​​do usuário ; ls /usr/sbin | moredará uma lista muito grande de executáveis ​​e bibliotecas de usuários .
    NOTA: Se a saída moreexceder uma página (tela cheia), você terá que rolar py pressionando "Page Up" e "Page Down" ou a barra de espaço.
    Você pode usar COMMAND | grep TEXTpara filtrar a saída.

Se você tiver mais perguntas, comente aqui embaixo e não se esqueça de marcar o visto ao lado da resposta se eu o ajudar.
Tenha uma ótima experiência.

Lorenzo Ancora
fonte
Geralmente, há a maioria dos executáveis /usr/bin, que você não mencionou aqui. Também há /sbin, que contém executáveis ​​frequentemente usados ​​para administração do sistema, como usermode ifconfig. E muitos sistemas também têm outros diretórios binários, como /usr/gamese /usr/local/bin. Consulte Padrão de hierarquia do sistema de arquivos e man 7 hier. Você pode expandir isso para mencionar diretórios importantes para executáveis ​​além de /bine /usr/sbin.
Eliah Kagan 10/03/2014