目录

多云下的zsh

概述

这里主要是指你有多个云主机,为了避免误操作,最好打开 zsh 的时候,能够显示 ip,否则操作了哪个都不知道,可以参考下面这个方法。另外如果家里有很多台家庭服务器,同样的,有一个比较容易辨认机器的 shell 是比较重要的,如果不标记一下,很难避免一些灾难级别的误操作。

操作

/%E5%A4%9A%E4%BA%91%E4%B8%8B%E7%9A%84zsh/img.png

下面是一个简单的替换脚本。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
cp ~/.oh-my-zsh/themes/robbyrussell.zsh-theme ~/.oh-my-zsh/themes/robbyrussell.zsh-theme.bak
cat > ~/.oh-my-zsh/themes/robbyrussell.zsh-theme <<"EOF"
# 这个函数是获取ip的关键,不同机器可能会有些区别
function get_ip_address() {
    ifconfig | grep "inet " |grep -i  "broadcast 192.168.1.255" | awk '{print $2}'
}
PROMPT='%(!.%{%F{yellow}%}.)$USER@%{$fg[green]%}$(get_ip_address)%{$fg_bold[red]%}>%{$fg_bold[green]%}%p%{$fg[cyan]%}%c%{$fg_bold[blue]%} $(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
EOF
# 恢复原来的设置
cp ~/.oh-my-zsh/themes/robbyrussell.zsh-theme.bak ~/.oh-my-zsh/themes/robbyrussell.zsh-theme

# 固定一个ip
cat > ~/.oh-my-zsh/themes/robbyrussell.zsh-theme <<"EOF"
# 这个函数是获取ip的关键,不同机器可能会有些区别
function get_ip_address() {
    ifconfig | grep "inet " |grep -i  "broadcast 192.168.1.255" | awk '{print $2}'
}
PROMPT='%(!.%{%F{yellow}%}.)$USER@%{$fg[green]%}121.36.45.162 %{$fg_bold[red]%}>%{$fg_bold[green]%}%p%{$fg[cyan]%}%c%{$fg_bold[blue]%} $(git_prompt_info)%{$fg_bold[blue]%} % %{$reset_color%}'
EOF

下面是最终的效果。

/%E5%A4%9A%E4%BA%91%E4%B8%8B%E7%9A%84zsh/img_1.png

修改主题

下面的方法相对简单一点。

1
2
3
4
yum install -y zsh git
sh -c "$(curl -fsSL https://raw.githubusercontent.com/ohmyzsh/ohmyzsh/master/tools/install.sh)"
sed -i 's/ZSH_THEME="robbyrussell"/ZSH_THEME="alanpeabody"/' ~/.zshrc
source ~/.zshrc

参考资料

  1. 官方主题
警告
本文最后更新于 2017年2月1日,文中内容可能已过时,请谨慎参考。