Como pular para uma bandeira específica em uma página de manual do Unix?

23

Ao ler uma página de manual do Unix no terminal, como posso pular facilmente para a descrição de uma bandeira em particular?

Por exemplo, preciso saber o significado da -obandeira para mount. Eu corro man mounte quero pular para o local onde -oestá descrito. Atualmente, eu busco, /-ono entanto, que essa opção seja mencionada em vários lugares antes da seção que realmente a descreve, então devo pular um pouco.

Obrigado.

dotancohen
fonte

Respostas:

27

O que eu faço é colocar alguns espaços em branco na frente da bandeira da seguinte forma:

/     -o

Isso não é 100% confiável, mas você pula muito menos. Se você quer uma taxa de sucesso ainda melhor, tente "/^ +-o". Isso encontraria linhas começando com espaços em branco e seguidas por -o. Eu não gostaria de digitar essa sequência estranha com frequência.

akostadinov
fonte
11

Eu defini essa função no meu .bashrc

function manswitch () { man $1 | less -p "^ +$2"; }

que você pode usar da seguinte maneira

manswitch grep -r

Eu peguei a partir desta linha de comando .

Nota: o argumento para o -pswitch de lessé uma expressão regular que pede menos para procurar uma linha começando com ( ^) um ou mais espaços ( +) seguidos pelo switch (segundo argumento $2), portanto, ele tem a vantagem de trabalhar com formatação diferente.

ggll
fonte
5

Também é possível abrir a página do manual em uma posição específica na linha de comando com

man -P 'less -p "     -o"' mount
pressa
fonte
Votado por ser possível, mas isso é um pouco mais do que digitar do que pesquisar dentro do homem. Obrigado, no entanto!
dotancohen
Isso é muito útil para enviar alguém para o lugar exato na página man :)
corrida
Sim, eu estava pensando que se tivesse que abrir uma página de manual em um script por algum motivo, também seria útil. Obrigado!
dotancohen
3

A resposta do @ piccobello é ótima, mas estava comendo as cores das minhas páginas de manual. Em vez de canalizar para less(como manjá é usado lesspor padrão normalmente), simplesmente passo o lesscomando modificado para man:

function manswitch() { man -P "less -p \"^ +$2\"" $1 }

Isso mantém a funcionalidade que @piccobello tinha em sua função, mas mantém as cores.

Jorge Israel Peña
fonte
1

As outras soluções são muito boas, mas lembre-se de que as páginas de manual são apenas dados e você pode facilmente fazer quase tudo com elas no Linux.

man some-command> file.txt

converte a página em um arquivo de texto sem formatação que você pode manipular. Eu mantenho uma cópia do manual do bash como texto no meu diretório bin, para que eu possa carregá-lo no meu editor de texto para procurar coisas, copiar e colar enquanto estiver editando scripts.

Ou você pode colocá-lo em filtros como

homem algum comando | grep -A linhas após "algum padrão"

Embora não funcionasse para você em um terminal, eu (com a ajuda de um amigo) até escrevi um script que agarra uma página de manual e a exibe em um navegador da Web para que eu possa usar seus recursos de navegação / pesquisa que são muito melhores que menos. É um pouco dependente do kde, mas fácil de modificar.

http://dl.dropbox.com/u/54584985/kman

Joe
fonte
3
Você pode tentar man://no Konqueror. O KDE tem uma página de manual KIOSLAVE!
dotancohen
@dotancohen - Cool. Não sabia disso.
31412 Joe
@dotancohen -Eu tentei no dolphin e também funciona, mas exibe as páginas de manual como diretórios e arquivos e inicia o navegador padrão quando você clica em um arquivo. Eu não entendo a parte sobre KIOSLAVE. Eu tentei man: // kioslave e era o mesmo que man: //.
31412 Joe
@dotancohen - Não importa - procurei quioslaves na wikipedia. en.wikipedia.org/wiki/KIO
Joe
Sim, o KDE tem praticamente tudo. Apreciar!
dotancohen
1

Eu escrevi uma ferramenta que faz exatamente isso, chamada flagman . Ainda em desenvolvimento, mas já utilizável. Por exemplo:

$ ./flagman mount -o
       -o, --options opts
              Use the specified mount options.  The opts argument is a comma-separated list.  For example:

                     mount LABEL=mydisk -o noatime,nodev,nosuid


              For more details, see the FILESYSTEM-INDEPENDENT MOUNT OPTIONS and FILESYSTEM-SPECIFIC MOUNT OPTIONS sections.
destro
fonte