Navigation

    蓝鲸ROS机器人论坛

    • Register
    • Login
    • Search
    • Categories
    • Tags
    • Popular
    ROS交流群
    ROS Group
    产品服务
    Product Service
    开源代码库
    Github
    官网
    Official website
    技术交流
    Technological exchanges
    激光雷达
    LIDAR
    ROS教程
    ROS Tourials
    深度学习
    Deep Learning
    机器视觉
    Computer Vision

    在Ubuntu中使用zsh

    技术交流
    zsh bash zsh环境变量 ubuntu zsh
    1
    1
    2898
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • weijiz
      weijiz last edited by weijiz

      zsh是一个shell环境,不过和一般使用的bash shell不同,zsh的交互性更强也更人性化。(bash还有一些莫名其妙的bug)
      下面介绍一下怎么在Ubuntu中安装和使用zsh。

      安装

      sudo apt-get update
      sudo apt-get install zsh
      # 下面是把系统默认的shell换成zsh, 重启后生效
      command -v zsh | sudo tee -a /etc/shells
      chsh -s `which zsh`
      

      安装 on-my-zsh,这个是zsh的一个插件库,包含各种常用的插件和主题。详情可以看这里

      wget https://github.com/robbyrussell/oh-my-zsh/raw/master/tools/install.sh -O - | zsh
      

      环境变量的的设置

      在bash 中一般会有很多环境变量,如果这些变量没有在zsh中设置的话就会导致各种程序的错误。
      一般bash的环境变量在.bashrc中

      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
      

      比如这是我的一些的环境变量的设置
      基本上直接复制到.zshrc文件里面就可以了。需要注意的是source指令。zsh中没办法source bash的文件。

      source xxx.sh
      # 更改为,这实际上是开了一个sh的模拟器去解释执行bash指令
      emulate sh -c 'source xxx.sh'
      

      对应上面的内容更改为

      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
      

      这样就可以了。
      下面来一个zsh的截图
      0_1492755121711_Screenshot from 2017-04-21 14-11-46.png

      Updata:
      对于ROS的source脚本并不能完全这样设置。这样设置后有些指令不能使用。发现ROS默认是提供了setup.zsh的脚本的
      所以上面的配置可以变成这样

      . /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
      

      这样就一切正常了。

      1 Reply Last reply Reply Quote 0
      • First post
        Last post
      Copyright © 2015-2021 BlueWhale community