De acordo com os Alias do Workshop Zsh , eles parecem ter a mesma sintaxe, então eles devem trabalho.
Eu procurei por aí, mas não consegui encontrar nada conclusivo. Existe uma diferença entre o comando alias em zsh e o comando alias no bash? Se não, significa que posso compartilhar um conjunto de aliases entre os dois shells e esperar que eles funcionem como eu pretendia?
De acordo com os Alias do Workshop Zsh , eles parecem ter a mesma sintaxe, então eles devem trabalho.
A sintaxe do comando alias
é a mesma em todos os shells no estilo Bourne. Assim, você pode compartilhá-los entre ~/.zshrc
, ~/.bashrc
, ~/.kshrc
, ~/.shrc
, desde que eles façam sentido em todos os shells.
O mesmo vale para definições de variáveis e definições de funções, contanto que você use o subconjunto da sintaxe que é suportada em todos os shells.
Se você não usar versões do zsh anteriores à 4.0, poderá colocar todas as suas definições independentes de shell em um arquivo chamado (digamos) ~/.common.rc.sh
, em que a primeira linha é
emulate -LR sh 2>/dev/null
Isto diz ao zsh para esperar uma sintaxe compatível com sh apenas neste arquivo. Em seguida, digite esse arquivo próximo ao início de ~/.bashrc
, ~/.bashrc
, ~/.kshrc
e assim por diante.
Isso é basicamente o que eu faço. Por exemplo, eu tenho um código um pouco complexo que gera um alias para ls
com minhas opções favoritas, dependendo do que está disponível ( --color
, -G
, -F
, etc.); é agnóstico de shell, por isso vai em .common.rc.sh
. Eu também tenho aliases dependentes do shell, como alias zcp='zmv -C'
que vai em .zshrc
.
zsh
alias
permite aliases globais, enquanto bash
s são expandidos apenas no início da linha.
Em zsh
:
alias -g L="| less -FRX"
Você pode então fazer:
verbose-command L
Consulte aqui para obter uma lista de aliases globais úteis.