Como pular para um sinalizador particular em uma página de manual do Unix?

20

Ao ler uma página de manual do Unix no terminal, como posso pular facilmente para a descrição de um sinalizador específico?

Por exemplo, preciso saber o significado do sinal -o para mount . Eu corro man mount e quero pular para o lugar onde -o é descrito. Atualmente, eu procuro /-o , mas essa opção é mencionada em vários lugares antes da seção que realmente a descreve, então eu devo pular um pouco.

Obrigado.

    
por dotancohen 26.06.2012 / 11:38

6 respostas

25

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

/     -o

Isso não é 100% confiável, mas você passa por muito menos aros. Se você quiser 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 seqüência estranha, embora.

    
por 26.06.2012 / 11:57
10

Eu defini essa função no meu .bashrc

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

que você pode usar da seguinte forma

manswitch grep -r

Eu peguei de this commandlinefu .

Nota: o argumento para a opção -p de less é um regexp informando menos para procurar uma linha que comece com ( ^ ) um ou mais espaços ( + ) seguidos pelo switch (second arg então $2 ), então tem a vantagem de trabalhar com diferentes formatações.

    
por 26.06.2012 / 17:38
5

Além disso, você pode abrir a página man na posição específica a partir da linha de comando com

man -P 'less -p "     -o"' mount
    
por 26.06.2012 / 14:00
1

As outras soluções são muito boas, mas lembre-se também de que man pages são apenas dados e você pode facilmente fazer quase qualquer coisa com eles no Linux.

man some-command > arquivo.txt

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

Ou você pode canalizá-lo para filtros como

man some-command | grep -A lines-after "algum padrão"

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

link

    
por 03.07.2012 / 11:55
1

@ resposta do piccobello é ótimo, mas estava comendo as cores nas minhas páginas de homem. Em vez de canalizar para less (já que man já usa less normalmente por padrão), simplesmente passo o comando less modificado para man :

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

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

    
por 15.02.2013 / 07:40
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.
    
por 02.01.2016 / 00:03

Tags