Como você se lembra das opções de comando? [fechadas]

11

Estou curioso para saber qual truque você usa para lembrar opções para vários comandos? Procurar páginas de manual o tempo todo é demorado e não é tão legal!

    
por Atul 03.08.2014 / 22:11

6 respostas

37

O truque é simples: Você simplesmente não. É uma perda de tempo e não é necessário. Memorizar as opções de comando não é uma habilidade particularmente útil. É muito mais importante entender como as coisas funcionam em geral e ter uma vaga idéia de quais ferramentas existem em primeiro lugar e para que você as usa. Uma habilidade muito importante aqui é saber como descobrir coisas que você ainda não conhece.

As páginas do manual são demoradas? Não tão. Não é como se você tivesse que lê-los - pelo menos, não todas as vezes - há uma função de busca. Então, se eu não me lembro qual opção enigmática foi a opção para hdparm desativar o temporizador inativo em alguns discos WD, eu faço man hdparm e /idle3 e ei, foi -J . Olhar coisas assim é tão rápido que nem lembro de fazer isso depois.

Imagine alguém realmente memorizando todas as opções hdparm . Que perda de tempo.

Tudo bem se acontecer de você lembrar de opções porque as usa com frequência. Isso acontece automaticamente sem sequer pensar nisso. Mas, na verdade, gastando tempo conscientemente em memorizá-los ... para que isso é bom? Um teste de papel?

    
por 04.08.2014 / 01:04
9

Zsh tem a função run-help , por padrão ligada a Alt h . Com essa função, você pode começar a digitar um comando com muitas ou complexas opções que são difíceis de lembrar, como rsync , por exemplo, e então ter o comando man page aberto. Então:

 rsync Alth

leia a página man e calcule quais opções você precisa, tecle q e retorne ao prompt de comando, exatamente onde parou, pronto para concluir o comando com o requisito opções:

rysnc -azP file dir/

Como o wiki observa:

The function can be further customized by defining helper functions of the form run-help-command. There are three such functions available in the standard distribution: run-help-git, run-help-svk, and run-help-svn.
    
por 03.08.2014 / 23:29
4

A maioria dos comandos tem --help para referência rápida, e geralmente é o suficiente para lembrar o que era algo que eu costumava conhecer.

Dito isto, tem o hábito de escrever - ajuda em vez de -h ou mesmo - ?. Você nunca sabe o que é antes de procurar a saída de uso ou a página de manual. No pior dos casos, o -h pode ser mão curta para - destruição automática - perigosa.

    
por 03.08.2014 / 23:17
4

Usar um histórico de comandos muito longo e pesquisá-lo é muito útil.

Eu basicamente coleto todos os arquivos do histórico do shell e os examino.

Os resultados encontrados são, em muitos casos, muito úteis, pois é fácil buscar boas palavras-chave.
Procurando por um argumento específico usado, como uma URL, você também encontra os comandos e opções relacionados. E procurando por opções específicas, você pode encontrar argumentos relevantes também.

    
por 04.08.2014 / 01:28
2

Eu geralmente faço:

man ${CMD} | grep 'what was I thinking about?'

Ou alguma variação disso. Com alguns grep s você pode especificar C / A / B para contexto , após e antes respectivamente. Caso contrário, nl e sed podem ser muito bem correspondidos:

man hdparm |                      #hard to forget
nl -bp'idle3' -nln -w1 |          #I had to grep man to put this together
sed -n '/^[0-9]/{N;N;N;s///p}'    #no print until line begins w/ number, next,next,next

           Drive's "idle3" timeout value.  This timeout
            controls how often the drive parks its heads
            and  enters  a  low power consumption state.
            The factory default is  eight  (8)  seconds,
           zero (0) to disable the WD idle3 timer  com‐
            pletely (NOT RECOMMENDED!).

     -k     Get/set  the "keep_settings_over_reset" flag

As mesmas técnicas funcionam com menus --help se você as tiver, mas pode ser necessário fazer um ${CMD} --help 2>&1 | ..filter.. porque é uma prática bastante padrão imprimir essas coisas em stderr .

De qualquer forma, acho que a moral da história é, lembre-se pelo menos man e grep . Talvez não se preocupe com o resto.

    
por 04.08.2014 / 06:58
1

Uma opção de que gosto é criar aliases com opções iguais ou semelhantes, por exemplo

alias rmi='rm -i'
alias rmiv='rm -iv'
alias rmv='rm -v'
alias cpr='cp -r'
alias cprv='cp -rv'

Dessa forma, você tem um atalho agradável que logo se lembrará facilmente, mas que também reterá informações sobre as opções reais que ele reflete.

Outra abordagem com aliases é escolher as opções mais comuns e criar um apelido super curto que as use. Por exemplo, para ls eu quase sempre faço l e isso é porque eu tenho:

alias l='ls -alFtrG'

Outra opção é apenas incluir as opções que você gosta no comando base, por exemplo

alias ls='ls -F --color=always'

Finalmente pratique, pratique, pratique e paciência. Continue digitando opções comuns e você acabará por aprendê-las. Os mais comuns em dias, outros em semanas e sim alguns levam anos para serem conhecidos por você. Pense nisso como um deleite em que a programação unix continuará a entretê-lo por um longo tempo.

Outra opção que eu gosto é um alias para facilitar a pesquisa do meu histórico e para isso tenho dois aliases semelhantes:

alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'

Estes permitem-me procurar utilizações de um comando, por exemplo:

hg ls mostrará qualquer uso recente de ls da história
hga ls mostrará todos os usos de ls de toda a minha história.

Eu desenvolvi hg depois de descobrir que o hga tendia a mostrar muito.

    
por 04.08.2014 / 00:54

Tags