<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[在Ubuntu中使用zsh]]></title><description><![CDATA[<p dir="auto">zsh是一个shell环境，不过和一般使用的bash shell不同，zsh的交互性更强也更人性化。（bash还有一些莫名其妙的bug）<br />
下面介绍一下怎么在Ubuntu中安装和使用zsh。</p>
<h4>安装</h4>
<pre><code>sudo apt-get update
sudo apt-get install zsh
# 下面是把系统默认的shell换成zsh, 重启后生效
command -v zsh | sudo tee -a /etc/shells
chsh -s `which zsh`
</code></pre>
<p dir="auto">安装 on-my-zsh，这个是zsh的一个插件库，包含各种常用的插件和主题。详情可以看<a href="http://ohmyz.sh/" target="_blank" rel="noopener noreferrer">这里</a></p>
<pre><code>wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
</code></pre>
<h4>环境变量的的设置</h4>
<p dir="auto">在bash 中一般会有很多环境变量，如果这些变量没有在zsh中设置的话就会导致各种程序的错误。<br />
一般bash的环境变量在.bashrc中</p>
<pre><code>source /opt/ros/kinetic/setup.bash
export PATH=/home/randoms/Programs/android-sdk-linux/platform-tools:$PATH
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/.go
export PATH=$GOPATH/bin:$PATH
source /home/randoms/Documents/ros/workspace/devel/setup.sh
export ROS_PACKAGE_PATH=/home/randoms/Documents/ros/workspace/src:/home/randoms/Documents/ros/workspace/src/ORB_SLAM2/Examples/ROS:$ROS_PACKAGE_PATH
export BUP_DIR=/home/randoms/backup/bup
ulimit -c unlimited
</code></pre>
<p dir="auto">比如这是我的一些的环境变量的设置<br />
基本上直接复制到.zshrc文件里面就可以了。需要注意的是<code>source</code>指令。zsh中没办法source bash的文件。</p>
<pre><code>source xxx.sh
# 更改为，这实际上是开了一个sh的模拟器去解释执行bash指令
emulate sh -c 'source xxx.sh'
</code></pre>
<p dir="auto">对应上面的内容更改为</p>
<pre><code>emulate sh -c 'source /opt/ros/kinetic/setup.sh'
export PATH=/home/randoms/Programs/android-sdk-linux/platform-tools:$PATH
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/.go
export PATH=$GOPATH/bin:/home/randoms/Documents/SharpLink/SharpLink/bin/Debug:$PATH
emulate sh -c 'source /home/randoms/Documents/ros/workspace/devel/setup.sh'
export ROS_PACKAGE_PATH=/home/randoms/Documents/ros/workspace/src:/home/randoms/Documents/ros/workspace/src/ORB_SLAM2/Examples/ROS:$ROS_PACKAGE_PATH
export BUP_DIR=/home/randoms/backup/bup
ulimit -c unlimited
</code></pre>
<p dir="auto">这样就可以了。<br />
下面来一个zsh的截图<br />
<img src="/assets/uploads/files/1492755117645-screenshot-from-2017-04-21-14-11-46-resized.png" alt="0_1492755121711_Screenshot from 2017-04-21 14-11-46.png" class=" img-responsive img-markdown" /></p>
<p dir="auto">Updata:<br />
对于ROS的source脚本并不能完全这样设置。这样设置后有些指令不能使用。发现ROS默认是提供了setup.zsh的脚本的<br />
所以上面的配置可以变成这样</p>
<pre><code>. /opt/ros/kinetic/setup.zsh
export PATH=/home/randoms/Programs/android-sdk-linux/platform-tools:$PATH
export PATH=$PATH:/usr/local/go/bin
export GOPATH=$HOME/.go
export PATH=$GOPATH/bin:/home/randoms/Documents/SharpLink/SharpLink/bin/Debug:$PATH
#emulate sh -c 'source /home/randoms/Documents/ros/workspace/devel/setup.sh'
. /home/randoms/Documents/ros/workspace/devel/setup.zsh
export ROS_PACKAGE_PATH=/home/randoms/Documents/ros/workspace/src:/home/randoms/Documents/ros/workspace/src/ORB_SLAM2/Examples/ROS:$ROS_PACKAGE_PATH
export BUP_DIR=/home/randoms/backup/bup
ulimit -c unlimited
</code></pre>
<p dir="auto">这样就一切正常了。</p>
]]></description><link>http://community.bwbot.org/topic/186/在ubuntu中使用zsh</link><generator>RSS for Node</generator><lastBuildDate>Tue, 10 Mar 2026 10:14:06 GMT</lastBuildDate><atom:link href="http://community.bwbot.org/topic/186.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 21 Apr 2017 06:13:52 GMT</pubDate><ttl>60</ttl></channel></rss>