Estou pensando em mudar do bash para o zsh, pois geralmente encontro posts elogiando o zsh. Eu sou um usuário experiente da linha de comando e estou assumindo que o básico é praticamente o mesmo, portanto, estou procurando conselhos para obter os benefícios da mudança e quaisquer dicas a serem observadas.
Por favor, dê um conselho por resposta. Estou procurando por pedaços pequenos, em que possa voltar e integrar informações extras ao uso do meu shell a um ritmo constante, em vez de tentar aprender tudo de uma só vez.
bash
command-line
zsh
Hamish Downer
fonte
fonte
source /etc/zsh_command_not_found
ao seu.zshrc
.Respostas:
Como você diz,
zsh
é semelhante em muitos aspectosbash
. Ele possui alguns recursos que você não encontrarábash
e pode ser estendido de maneiras poderosas. Não pense em se mover como um tipo de revolução, mas como uma série de etapas evolutivas que o ajudam no seu trabalho diário. Aqui estão algumas dicas do meu.zshrc
. Embora você diga que prefere conselhos únicos, este post é uma lista longa. Ainda assim, é uma boa ideia analisar os pontos um a um. Basta adicionar os bits interessantes ao seu~/.zshrc
e recarregarsource ~/.zshrc
. Uma dica final: aprender as teclas dezsh
's atalhos de teclado padrão ( 'Emacs'):^A ^E ^W Alt-F Alt-B Alt-P ^L ^R
. Você pode substituirAlt
por duas teclas separadas:Alt-P
é equivalente aESC
P
.Isso fornece uma conclusão mais abrangente da guia.
Conclusão da guia pelas duas extremidades.
A conclusão da guia não diferencia maiúsculas de minúsculas.
Melhor conclusão para killall.
Altera a definição de "palavra", por exemplo, com ^ W.
Cores para sl.
Atalhos para ls.
Uma história para todas as conchas abertas; armazene 10.000 entradas. Isso torna isso um útil auxílio à memória para encontrar os comandos que você usou da última vez,
./configure
etc. Use Alt-P (comando find que começa assim) e ^ R (pesquisa no histórico) liberalmente.Permite todos os tipos de globos estendidos, como ls ** / *. Txt (encontre todos os arquivos de texto),
ls -d *(D)
(mostre todos os arquivos, incluindo os que começam com "."). Para saber mais, vá para aman zshexpn
seção "GERAÇÃO DE NOME DO ARQUIVO".Isso é útil para lembrar comandos no seu histórico sem executá-los.
Digite ".." em vez de "cd ..", "/ usr / include" em vez de "cd / usr / include".
Prompt agradável.
Exibir estatísticas de uso da CPU para comandos que levam mais de 10 segundos
Alguns comandos que você usa extensivamente no Ubuntu.
Lista os pacotes classificados por tamanho - útil para decidir quais pacotes estão ocupando espaço em disco.
fonte
Eu recomendaria o livro From bash to Z Shell . Ele tem todos os conselhos que você precisa para mudar seu shell. Explica as diferenças de ambas as conchas e facilita para um novo zsher.
fonte
Aqui está o meu .zshrc e essa é a coisa mais importante! O zsh tem muitas opções que você pode usar, então veja alguns de todos os exemplos da rede ou leia a documentação na página inicial do Zsh .
Meu .zshrc não contém nada realmente interessante além de um carimbo de data / hora no lado direito da linha de comando.
Btw, lembre-se de tentar a complementação de guias em todos os lugares onde alguns exemplos aqui:
mostrará algo assim:
E se você usar ssh-keys sem senha ou ssh-agent, poderá ser útil para tabcompletar arquivos remotos:
Depois de obter a lista, você pode pressionar tab mais vezes para percorrer as diferentes possibilidades.
Mas esteja avisado, este shell fará com que você seja preguiçoso e faça com que você sinta que um shell padrão é estúpido e irritante!
fonte
Alguns globs estendidos especificamente úteis:
1-
rmdir *(/^F)
- exclua todos os diretórios não vazios do diretório atual2-
grep traceback /srv/log/**/*(.m-2)
- procure esse regex em arquivos modificados nos últimos dois dias3-
chmod g+w **/*(U^I)
- torne todos os arquivos de minha propriedade e não graváveis em grupo graváveis em grupoSim, é claro que você pode escrever isso,
find
mas isso é mais fácil. Ele tem duas desvantagens, para ser justo, ambas relacionadas à expansão da linha de comando: se ela corresponder a milhares de arquivos, a linha de comando ficará muito longa e isso falhará, e, em segundo lugar, todos os arquivos serão encontrados. antes que o arquivo comece a ser executado.(Você precisará
setopt extendedglob
se isso ainda não estiver ativado)fonte
Eu não sei muito sobre bash, então não consigo compilar. Alguns trechos do meu arquivo de configuração zsh.
Alguma configuração
Git no prompt
Algumas teclas de atalho, insira no início da linha algum texto.
As funções, eu guardo em ~ / .zsh / functions
O git_info_for_prompt
Algumas opções do github
fonte
Estou na mesma viagem :)
Até agora, descobri que a coisa é ter um bom arquivo de configuração (.zshrc).
Tome este como exemplo http://matt.blissett.me.uk/linux/zsh/zshrc , veja os comentários e faça o seu caminho. Stackoverflow e severphault e bons locais para pesquisar também.
Ainda não mergulhei em http://dotfiles.org/.zshrc , mas não tenho muito tempo a perder :)
fonte
Aprenda sobre os globs estendidos e recursivos estendidos no zsh.
Aprenda um pouco sobre o zstyle e como várias coisas (especialmente a conclusão) permitem ajustar sua configuração usando o zstyle.
Olhe para as matrizes associativas. Também as matrizes padrão (cuidado com as diferenças do bash, para melhor!)
Se você usar expressões regulares, consulte
=~
(que o bash também possui) e considere:setopt rematch_pcre
Evite escrever scripts que dependam de mais do que um pouco da mágica do zsh, porque, embora seja fantástico usá-lo, o zsh pode tender a ser apenas de gravação. Se você estiver usando muito mais, pense em quando mudar para uma linguagem como Python.
Zsh é sedutor. É o lado sombrio. Bem vinda.
fonte
Grande benefício - excelente conclusão de guias com scripts de conclusão pré-empacotados para muitos comandos. Aqui está um exemplo mostrando a saída de
apt-get<TAB>
:fonte
Eu dei um cupê de palestras e converti várias pessoas para o zsh. Eu mantenho um repositório no github das minhas (quais são as vantagens), juntamente com um iniciador e uma cópia da minha própria configuração do zsh no github aqui.
http://github.com/mitechie/zshrc
fonte
Outro recurso excelente é a página de amantes do zsh (vem do site grml zsh ).
fonte