从bash转向zsh的坑

作者: cracker_zhou | 来源:发表于2019-01-01 21:04 被阅读517次

在多位同事对我熏陶zsh有多么多么好的情况下,今天终于接着元旦放假的机会折腾了一下。
以下命令都是基于ubuntu所写,但各大linux发行版都差不多,就不废话了。安装直接apt-get即可。

  1. 配合oh-my-zsh.
wget https://raw.github.com/robbyrussell/oh-my-zsh/master/tools/install.sh -O - |sh
chsh -s /bin/zsh  #切换默认shell为zsh
  1. 坑1: 上下方向键,Home和End键可能不生效
    经测试tmux和gnome-terminal测试zsh没有这些问题,多发于使用xshell,putty连接ssh时会出现。
    首先在zsh下面Home等效快捷键是ctrl+a,End的等效快捷键是ctrl+e。
    当然也可以通过修配置文件解决。在~/.zshrc添加以下行:
bindkey "\e[1~" beginning-of-line  # Home键
bindkey "\e[4~" end-of-line  # End键
bindkey "^[[A" forward-word  # 方向上键
bindkey "^[[B" backward-word  # 方向下键

最坑最坑的并不是这个,而且以上配置文件并不适用于所有情况。如果你把以上配置添加到配置文件中并source后仍然不生效,此时你需要神奇的cat命令。单纯执行cat命令,并分别按Home后会输出等效的键码,复制并替换上面的bindkey命令即可,其他原理一样的。

  1. 坑2:tmux与zsh配合使用时需要注意修改tmux的默认shell
    准确说这个不算坑,只是注意点。我上面使用chsh修改用户默认shell之后再进入tmux时居然还是bash,所以此时需要在tmux的配置文件里面额外添加一句set -g default-shell /bin/zsh,或者使用set -g default-shell $SHELL用以自适应用户修改的shell类型。退出所有tmux并重启tmux生效。
    关于tmux参考: https://www.jianshu.com/p/42bf70c64952

  2. 坑3:~/.bashrc文件不会自动执行
    这个就更坑了,我之前把当连接ssh时自动开启tmux的命令写在了~/.bashrc文件中,但是当我把默认shell修改为zsh后我发现连接ssh后并没有自动进入tmux界面。所以很有可能实用zsh进入后之前手动设置的环境变量全都不见了,转而代替的文件列表如下:

/etc/profile  --> /etc/zsh/zshenv
~/.profile    -->  ~/.zprofile 
~/.bashrc   -->  ~/.zshrc

bash和zsh的环境变量加载顺序参加文章: https://medium.com/@rajsek/zsh-bash-startup-files-loading-order-bashrc-zshrc-etc-e30045652f2e
一句总结:zsh环境变量加载顺序是: zshenv, zprofile, zshrc, zlogin

相关文章

  • 从bash转向zsh的坑

    在多位同事对我熏陶zsh有多么多么好的情况下,今天终于接着元旦放假的机会折腾了一下。以下命令都是基于ubuntu所...

  • MacOS 的 zsh 和 bash 切换

    1. 从 bash 切换到 zsh chsh -s /bin/zsh 2. 从 zsh 切换回 bash chsh...

  • mac命令窗口配置

    1.安装 2.切换 3.在zsh中使用bash配置的命令 如果从 bash 切换到 zsh,但想保留 bash 所...

  • mac iterm2配置

    ZSH ZSH介绍 Zsh 兼容 Bash,据传说 99% 的 Bash 操作 和 Zsh 是相同的 zsh具有强...

  • 关于终端命令的笔记

    1,zsh 和 bash 相互切换 zsh,bash 都是shell脚本,zsh 比bash 更加强大。mac 以...

  • Zsh 入门和介绍

    Zsh 入门和介绍 Zsh 兼容 Bash,据传说 99% 的 Bash 操作 和 Zsh 是相同的 Zsh 官网...

  • bash修改

    bash->zsh修改(记得重启终端) chsh -s /bin/zsh zsh->bash chsh -s /b...

  • 终端类型判断

    打开终端 若输出是/bin/zsh或zsh表示是zsh类型终端 若输出是/bin/bash或bash表示是bash...

  • MAC-安装zsh

    什么是zsh? zsh类似bash也是一种shell. zsh优点: 兼容bash; 智能拼写纠正; 各种补全:路...

  • MacOS 的 zsh 和 bash 切换

    zsh、bash 都是 shell,zsh 比 bash 更加强大,功能也更加完善,此篇文章说明 zsh 和 ba...

网友评论

    本文标题:从bash转向zsh的坑

    本文链接:https://www.haomeiwen.com/subject/mkjwlqtx.html