AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 460567
Accepted
extremeaxe5
extremeaxe5
Asked: 2018-08-05 15:28:27 +0800 CST2018-08-05 15:28:27 +0800 CST 2018-08-05 15:28:27 +0800 CST

Como posso saber se a página de manual que estou vendo é a correta?

  • 772

Por exemplo,

[fakename]$ type echo
echo is a shell builtin

Mas man echome dá a versão GNU coreutils do echo. Qual é a maneira mais fácil de saber se a página de manual que estou olhando é a correta, ou seja, aquela para o utilitário que eu obteria se a invocasse diretamente?

man
  • 6 6 respostas
  • 410 Views

6 respostas

  • Voted
  1. Best Answer
    ilkkachu
    2018-08-06T03:56:30+08:002018-08-06T03:56:30+08:00

    Você não, realmente. Não sem conhecimento externo à página de manual.

    No caso de echo(e printf, e test, ...), geralmente é um shell embutido, então você precisará saber disso e ler a documentação do shell. (E echoé notoriamente diferente em diferentes implementações, use .printf )

    Na maioria, se não em todos os shells, você pode descobrir se algo está embutido com , por exemplo , imprimirá . ( é especificado pelo POSIX mas, por exemplo , o fish também o suporta, por mais não-POSIXy que seja.) No Bash , você leria então a documentação online ou usaria o comando interno (que é específico do Bash e do qual você precisa saber existe).type commandtype echoecho is a shell builtintypeman bashhelp

    Mesmo que o comando não seja um built-in, é possível que existam vários comandos com o mesmo nome, renamesendo um exemplo famoso (veja Por que o utilitário de renomeação no Debian/Ubuntu é diferente do de outras distribuições, como CentOS? ). Agora, seu sistema operacional deve ter a página de manual correta para o utilitário realmente instalado e, por exemplo, no Debian, o sistema de "alternativas" atualiza as páginas de manual correspondentes também quando as alternativas de comando são alteradas. Mas se você ler uma página de manual online , precisará estar ciente disso.

    Muitos utilitários têm uma opção de linha de comando, como a --versionque pode informar qual é a implementação desse comando. (Mas nem quase todos os utilitários o têm. Eu acho que é um GNUism originalmente, então os utilitários GNU o têm, assim como aqueles que por acaso copiaram o costume.) No caso de rename, isso funciona para diferenciar duas implementações diferentes:

    debian$ rename --version
    /usr/bin/rename using File::Rename version 0.20
    centos$ rename --version
    rename (util-linux-ng 2.17.2)
    

    Além disso, seu sistema pode ter um alias ou uma função com o mesmo nome de um utilitário, geralmente para modificar o comportamento do utilitário. Nesse caso, os padrões apresentados em uma página de manual podem não se aplicar. Os aliases para lssão comuns, assim como os aliases que adicionam -ia rmou mv. Mas type footambém diria se fooé um alias ou função.

    • 5
  2. Kusalananda
    2018-08-06T03:30:53+08:002018-08-06T03:30:53+08:00

    Se você quiser o manual de um comando interno, precisará consultar o manual do seu shell. O comando será documentado nele, juntamente com todos os outros comandos internos (ou haverá pelo menos uma referência de onde a documentação para internos pode ser encontrada).

    • bash: man bashou de um shell help echointerativo .bash
    • zsh: man zsh(e depois de um pouco de leitura, man zshbuiltin)
    • fish: man fish(e depois de um pouco de leitura, help echo)

    O manual que você obtém para man echodocumentos /bin/echo, ou seja, o comando externo . echoEste comando não é o que você usaria quando usasse echosem um caminho explícito.

    • 1
  3. Pat Gunn
    2018-08-05T16:08:05+08:002018-08-05T16:08:05+08:00

    Deve ser possível invocar a versão não interna do shell fornecendo o caminho completo (que você pode obter com which echo). Não há páginas de manual separadas para internos do shell; para documentação sobre aqueles que você deseja procurar na página de manual do seu shell. O comando "type" que você mencionou acima é a melhor maneira de descobrir qual você obterá.

    • 0
  4. undercat
    2018-08-06T03:27:05+08:002018-08-06T03:27:05+08:00

    Como o comando sobre o qual você deseja obter informações é um shell embutido, digitar help <command name>o mesmo shell fornecerá a entrada de ajuda correta:

    $ help echo
    echo: echo [-neE] [arg ...]
        Write arguments to the standard output.
        ...
    

    Alternativamente, você pode digitar man bash(ou qualquer shell que esteja usando) e encontrar o built-in que estava procurando.

    Infelizmente, não há uma maneira fácil de verificar se uma página de manual corresponde totalmente ao comando que você deseja executar. Obter a página "certa" é mais complicado do que parece, pois isso dependerá de muitos fatores, como o caminho completo do comando, variáveis ​​de ambiente e aliases, e é tecnicamente impossível manlevar em conta todos esses fatores. No entanto, após um curto período de tempo, você deve desenvolver uma compreensão geral de onde procurar ajuda.

    Se eu fosse descrever um algoritmo geral para obter a documentação correta na maioria dos *nices modernos, seria algo assim:

    • Você precisa de ajuda com um built-in ( type <command>diz que é built-in)?
      • Use help <command>ou man <shellname>se helpnão estiver disponível em seu shell.
    • Quer sua ajuda sucinta e técnica?
      • Use man <command>(ou man <section> <command>se houver várias entradas em diferentes seções, consulte man mana lista de seções)
    • Você quer sua ajuda na forma de um tutorial/manual interativo mais longo (se disponível)?
      • usarinfo <command>
    • Se as etapas acima falharem:
      • Verifique /usr/share/doc/<package name>se há documentação adicional no pacote, como páginas HTML.
      • Execute o comando com as opções -hou --help, supondo que o comando seja confiável. Muitas vezes, isso fornecerá um breve resumo do que ele faz e informará onde você pode encontrar mais informações.
      • Google.

    mas devo reiterar, tudo isso se tornará "natural" à medida que se passa algum tempo com o sistema operacional.

    • -1
  5. Claudio Cortese
    2018-08-05T16:58:26+08:002018-08-05T16:58:26+08:00

    mané dividido em seção:

    1. Seção Geral
    2. Chamadas do sistema
    3. Funções da biblioteca
    4. Formatos de arquivo
    5. Jogos e protetores de tela
    6. Diversos
    7. Administração do Sistema

    Dependendo do que você procura você pode invocar manassim para evitar confusão: man section command.

    Para obter mais informações, você pode realmente usarman man

    • -4
  6. schily
    2018-08-06T03:06:17+08:002018-08-06T03:06:17+08:00

    Se a distribuição do seu sistema operacional não tiver páginas de manual para esses programas que mencionam as diferenças, você deve fazer um relatório de bug.

    Na verdade, essa é a tarefa dos criadores da distro, mas se você digitar:

    type cmdname
    

    você obterá a saída se cmdnamefor um shell embutido. Se você souber qual shell está usando, poderá executar:

    man shellname
    

    substituindo shellnamepelo nome do seu shell. A página man do seu shell deve conter informações sobre comandos internos.

    Deixe-me dar um exemplo de como um UNIX amigável deve documentar isso: http://schillix.sourceforge.net/man/man1/test.1.html

    • -4

relate perguntas

  • Como exibir páginas cat (não man)?

  • Como faço para baixar a documentação e torná-la acessível a partir da linha de comando?

  • Página man atualizada para ifconfig em sistemas GNU/Linux.

  • Onde estão documentados os comandos disponíveis na janela da página do manual e esses comandos dependem do sistema?

  • exportando man pages para postscript

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    ssh Não é possível negociar: "nenhuma cifra correspondente encontrada", está rejeitando o cbc

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    Como descarregar o módulo do kernel 'nvidia-drm'?

    • 13 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Wong Jia Hau ssh-add retorna com: "Erro ao conectar ao agente: nenhum arquivo ou diretório" 2018-08-24 23:28:13 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve