0%

【文章】快速搭建Linux终端开发环境

写在前面

VSCode推出Remote SSH插件以后,远程开发变得简单,原生的开发环境大大提高了工作效率,但各种复杂的系统交互仍然需要回归终端。趁着近期有空折腾,笔者搜集各种资料,基于zsh+oh-my-zsh+tmux+oh-my-tmux搭建了一个相对令人满意的终端环境,本文用于整理搭建过程,构建一份搭建指南,以便日后读者参考

环境要求

  • Linux操作系统(笔者使用Ubuntu 20.04,其他版本可能略有差异)
  • 用户具有sudo权限(安装依赖)
  • 一些基本的工具(例如curlgit等)
  • 科学的网络环境(请自行配置代理工具)

搭建步骤

zsh

使用apt直接安装zsh

1
$ sudo apt install zsh

检查zsh可用性

1
2
3
$ cat /etc/shells
# /etc/shells: valid login shells
/usr/bin/zsh

oh-my-zsh

使用curl安装oh-my-zsh,这里同样可以使用wget,具体参考官网

1
2
$ cd
$ sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"

修改默认shellzsh,然后重新登录

1
$ chsh -s /bin/zsh

检查默认shell是否已经正确修改

1
2
$ echo $SHELL
/bin/zsh

注意:如果使用VSCode进行远程开发,需要额外进行以下操作

  • 在命令面板(Ctrl+Shift+P)中关闭服务器上的vscode-server进程
  • 进入配置终端设置,将该服务器的默认终端修改为zsh

此处笔者使用agnoster主题,在~/.zshrc中修改配置

1
2
$ vim ~/.zshrc
ZSH_THEME="agnoster"

Github安装zsh-autosuggestionszsh-syntax-highlighting插件,并在~/.zshrc中启用

1
2
3
4
$ git clone https://github.com/zsh-users/zsh-autosuggestions $ZSH_CUSTOM/plugins/zsh-autosuggestions
$ git clone https://github.com/zsh-users/zsh-syntax-highlighting.git $ZSH_CUSTOM/plugins/zsh-syntax-highlighting
$ vim ~/.zshrc
plugins=(git zsh-autosuggestions zsh-syntax-highlighting)

tmux

使用apt直接安装tmux

1
$ sudo apt install tmux

如果系统自带tmux,重启即可

1
$ tmux kill-server

oh-my-tmux

Github安装oh-my-tmux,这里笔者使用自己配置的版本,同样可以直接使用原版,除了下载地址不同以外,安装过程完全相同

1
2
3
4
$ cd
$ git clone https://github.com/xxyQwQ/.tmux
$ ln -sf .tmux/.tmux.conf
$ cp .tmux/.tmux.conf.local .

其他事项

迁移bash配置

如果之前在.bashrc中进行了一些配置,可以将这些内容直接复制到.zshrc

1
2
3
4
5
$ vim ~/.zshrc
# proxy setting
if [ -f /etc/profile.d/clash.sh ]; then
. /etc/profile.d/clash.sh
fi

关于Anaconda

如果使用Anaconda,建议关闭自动激活,否则在启动tmuxPATH变量可能错误加载,导致虚拟环境无法正常使用

1
2
$ vim ~/.condarc
auto_activate_base: false

改进外观

笔者配置时注意到zshtmux中显示的主机名可能很长,可以通过修改配置文件的方式隐藏它们

对于oh-my-zsh,在agnoster.zsh-theme中做如下修改

1
2
3
4
5
6
$ vim ~/.oh-my-zsh/themes/agnoster.zsh-theme
prompt_context() {
if [[ "$USERNAME" != "$DEFAULT_USER" || -n "$SSH_CLIENT" ]]; then
prompt_segment black default "%(!.%{%F{yellow}%}.)%n"
fi
}

对于oh-my-tmux,在~/.tmux.conf.local中做如下修改

1
2
$ vim ~/.tmux.conf.local
tmux_conf_theme_status_right=" #{prefix}#{mouse}#{pairing}#{synchronized}#{?battery_status,#{battery_status},}#{?battery_bar, #{battery_bar},}#{?battery_percentage, #{battery_percentage},} , %R , %d %b | #{username}#{root} "

至此,终端环境已经搭建完成,效果展示如下