Estou curioso para saber qual truque você usa para se lembrar de opções para vários comandos? Procurar páginas de manual o tempo todo consome tempo e não é tão legal!
man
páginas é muito legal ... :)
Estou curioso para saber qual truque você usa para se lembrar de opções para vários comandos? Procurar páginas de manual o tempo todo consome tempo e não é tão legal!
man
páginas é muito legal ... :)
Respostas:
O truque é simples: você simplesmente não. É uma perda de tempo e simplesmente não é necessária. Memorizar 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 utiliza. Uma habilidade muito importante aqui é saber como descobrir coisas que você ainda não conhece.
As páginas de manual são demoradas? Não tão. Não é como se você tivesse que lê- los - pelo menos nem sempre - existe uma função de pesquisa. Portanto, se eu não me lembro qual opção enigmática foi a opção hdparm
para desativar o timer ocioso em alguns discos WD, eu faço man hdparm
e /idle3
e ei, foi -J
. Procurar coisas assim é tão rápido que nem me lembro de fazê-lo depois.
Imagine alguém realmente memorizando todas as hdparm
opções. Que perda de tempo.
Tudo bem se você se lembrar de opções porque as usa com frequência. Isso acontece automaticamente, sem sequer pensar nisso. Mas, conscientemente, gastando tempo memorizando-os ... para que serve? Um teste de papel?
man hdparm | less -p idle3
é também uma maneira prática de saltar para o termo desejado ...
rm -i -f -r
, ln -s
, df -s -h
, cp -r -i
, ls -l -h -a
, etc. (a lista varia de pessoa para pessoa).
O Zsh possui a função run-help , por padrão vinculada a Alth. Com essa função, você pode começar a digitar um comando com muitas ou complexas opções difíceis de lembrar, como rsync
por exemplo, e man
abrir a página desse comando . Então:
rsync Alth
leia a man
página e calcule quais comutadores são necessários, pressione qe retorne ao prompt de comando, exatamente de onde parou, pronto para concluir o comando com as opções necessárias:
rysnc -azP file dir/
Como observa o wiki:
A função pode ser personalizada ainda mais, definindo funções auxiliares do formulário run-help-command. Existem três funções disponíveis na distribuição padrão: run-help-git, run-help-svk e run-help-svn.
bash
possui o bash-complete
que fornecerá muitas opções de parâmetros para muitos comandos.
zsh
bash
não suporta adicionar descrições à lista de conclusão nem agrupar entradas ( --classify -F -- append file type indicators
por exemplo, na conclusão do GNU ls do zsh), portanto, não é tão útil quanto o zsh.
Usar um histórico de comandos muito longo e pesquisar nele é muito útil.
Eu basicamente coleciono todos os arquivos de histórico do shell e o grep através deles.
Em muitos casos, os resultados encontrados são muito úteis, pois é fácil procurar boas palavras-chave.
Procurando um argumento específico que você usou, como uma URL, você encontra os comandos e opções relacionados também. E, ao procurar por opções específicas, você também encontrará argumentos relevantes.
A maioria dos comandos tem --help para referência rápida, e geralmente é o suficiente para lembrar o que eu costumava saber.
Dito isto, tenha o hábito de escrever --help em vez de -h ou até - ?. Você nunca sabe o que é -h antes de procurar a saída de uso ou a página de manual. Na pior das hipóteses, o -h pode ser uma mão curta para a destruição automática perigosa.
--help
. -?
necessidades citando com zsh
, csh
, tcsh
ou fish
ou se existem arquivos cujos nomes são -
seguidos por um único caractere no diretório atual. -:
pode ser preferível lá.
Uma opção que eu gosto é criar aliases que tenham as mesmas opções ou opções 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 bom atalho que em breve 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 alias super curto que as use. Por exemplo, ls
eu quase sempre faço l
isso porque eu tenho:
alias l='ls -alFtrG'
Outra opção é apenas trazer as opções que você gosta para o comando base, por exemplo
alias ls='ls -F --color=always'
Finalmente pratique, pratique, pratique e paciência. Continue digitando opções comuns e, eventualmente, você as aprenderá. Os mais comuns em dias, outros em semanas e sim alguns levam anos para serem conhecidos por você. Pense nisso como um prazer, pois a programação unix continuará a entretê-lo por um longo tempo.
Outra opção de que gosto é um apelido para facilitar a pesquisa no meu histórico e, por isso, tenho dois apelidos semelhantes:
alias hg='history | tail -200 | grep -i'
alias hga='history | grep -i'
Estes permitem-me procurar usos de um comando, por exemplo:
hg ls
mostrará todos os usos recentes 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 hga tendia a mostrar muito.
rm -iv
faz, provavelmente também não se lembrará do que rmiv
faz. Eu não acho que é o hífen que é o problema.
rm -iv
para safe_delete
ourm_prompt
Eu normalmente 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 o contexto , depois e antes, respectivamente. Caso contrário, nl
e sed
pode ser bem compatível:
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 --help
menus, se você os tiver, mas pode ser necessário fazer isso ${CMD} --help 2>&1 | ..filter..
porque é uma prática bastante padrão para imprimir essas coisas stderr
.
Enfim, acho que a moral da história é, lembre-se de pelo menos man
e grep
. Talvez não se preocupe o resto.
grep
manejar páginas quando procuro um recurso específico, o que é bastante útil.