cd命令和roscd命令都是切换到指定目录的命令。不同的是,cd是Linux系统的命令,在使用时必须指定目标目录的完整路径;而roscd是ros系统中的命令,它可以直接切换到指定目录(ros系统中的软件包),而不需要输入冗长的完整路径。

例如,要切换到roscpp这个软件包,两个命令的格式分别为:

cd /opt/ros/kinetic/share/roscpp
    roscd roscpp

显然,在ros系统中,roscd要比cd命令更加方便。

但在使用的过程中,我们有时候会发现,roscd命令不能正常使用,系统会提示找不到软件包,这是因为roscd只能切换到那些路径已经包含在ROS_PACKAGE_PATH环境变量中的软件包,这时候我们需要切换到ros系统的工作空间(catkin_ws)下,通过source命令将软件包添加到环境变量中,即:

cd ~/catkin_ws
    source ./devel/setup.bash

添加环境变量之后,roscd即可正常使用。

注意,如果新打开了一个终端,在使用某一工作空间之前,都需要执行上述命令切换到该工作空间的目录下将工作空间的路径添加到环境变量中。

可以使用下面的命令来查看你当前的环境变量:

$ echo $ROS_PACKAGE_PATH

若系统返回信息为:

/home/你的用户名/你的工作空间名/src:/opt/ros/melodic(ROS的版本名)/share

如果安装的ROS是melodic版本,则返回信息可能是:

/home/你的用户名/你的工作空间名/src:/opt/ros/melodic/share:opt/ros/melodic/stacks

则表示环境变量已经设置成功了。
原文链接:https://blog.csdn.net/qq_28753373/article/details/82107609

cd命令和roscd命令的区别,并解决环境变量问题的更多相关文章

  1. set,env和export命令显示shell变量其区别,与环境变量扫盲(一)

    种类: ♦ set     :  用来显示本地变量,显示当前shell的变量,包括当前用户的变量 ♦ env    :  用来显示环境变量,显示当前用户的变量. ♦ export:  用来显示和设置环 ...

  2. Linux命令之env:显示当前用户的环境变量

    Linux系统里的env命令可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令.下面来比较一下set,env和export命令的异同:set命令显示当前shell的变量,包括当前用户的 ...

  3. linux命令(11)下查看和添加环境变量

    &PATH:决定了shell将到哪些目录中去寻找命令或者程序,PATH值是一系列的目录,当你要运行一个程序时,Linux在这些目录下进行搜寻编译链接. 编辑PATH 声明,其格式为: PATH ...

  4. [读书笔记]Linux命令行与shell编程读书笔记02 环境变量以及其他

    1. Linux的环境变量. 全局环境变量的查看 printenv 一个结果示例 XDG_SESSION_ID=354TERM=xtermSHELL=/bin/bashSSH_CLIENT=10.24 ...

  5. 记一次Linux bash 命令行卡顿排查之警惕LD_PRELOAD环境变量

    现象: 通过屏幕或者ssh登录Linux操作系统(本例:Ubuntu)后,执行ls 需要数秒才返回 strace -c ls 查看实际命令调用耗时并不长 对比和正常执行的主机命令执行时,加载的库文件差 ...

  6. linux命令(55):环境变量:LIBRARY_PATH 和 LD_LIBRARY_PATH的区别

    添加环境变量:https://www.cnblogs.com/lovychen/p/5583703.html PATH是可执行文件的环境变量. LIBRARY_PATH 和 LD_LIBRARY_PA ...

  7. centos shell基础 alias 变量单引号 双引号 history 错误重定向 2>&1 jobs 环境变量 .bash_history source配置文件 nohup & 后台运行 cut,sort,wc ,uniq ,tee ,tr ,split, paste cat> 2.txt <<EOF 通配符 glob模式 发邮件命令mail 2015-4-8 第十二节课

    centos shell基础知识 alias  变量单引号 双引号   history 错误重定向 2>&1  jobs  环境变量 .bash_history  source配置文件 ...

  8. shell介绍、命令历史、命令补全和别名、通配符、输入输出重定向

    第5周第5次课(4月20日) 课程内容: 8.1 shell介绍8.2 命令历史8.3 命令补全和别名8.4 通配符8.5 输入输出重定向 8.1 shell介绍 使用yum+管道方式查看zsh和ks ...

  9. Linux中级之windows下使用curl命令(cmd命令行)

    在官网下载工具包:http://curl.haxx.se/download.html(根据自己电脑系统位数选择) 使用方式一:在curl.exe目录中使用 解压下载后的压缩文件,通过cmd命令进入到c ...

随机推荐

  1. 20191114-2 Beta阶段事后诸葛亮会议

    此作业要求参见:https://edu.cnblogs.com/campus/nenu/2019fall/homework/10005 组长组“多彩夕阳”项目beta阶段诸葛亮会议 设想和目标 1.我 ...

  2. 洛谷P1036 选数 题解 简单搜索/简单状态压缩枚举

    题目链接:https://www.luogu.com.cn/problem/P1036 题目描述 已知 \(n\) 个整数 \(x_1,x_2,-,x_n\) ,以及 \(1\) 个整数 \(k(k& ...

  3. 【接口测试】使用httpClient获取cookies+携带获取的cookies访问get接口

    数据准备 在本机或者远端机器安装部署moco-runner(参考:https://blog.csdn.net/qq_32706349/article/details/80472445) 这里我们只需要 ...

  4. 05_jquery 操作table使tr(数据)整行上移下移

    1:ajax请求数据到页面 function GetWorkSpaceList() { GetServerData("get", GetEnterpriseUrl() + &quo ...

  5. 使用Rancher Server部署本地多节点K8S集群

    当我第一次开始我的Kubernetes之旅时,我一直在寻找一种设置本地部署环境的方式.很多人常常会使用minikube或microk8s,这两者非常适合新手在单节点集群环境下进行操作.但当我已经了解了 ...

  6. jdk1.7扩容时,不论是否有链表,并发都可能出现循环链表

    扩容时使用transfertransfer不同于put时的判断hash冲突,直接使用头插法,如果没有冲突,则next为null.如下:e.next = newTable[i];newTable[i] ...

  7. 微信授权流程和JSSDK调用流程

    概念理解 业务域名:当前业务使用的是哪个网站,好处:设置业务域名后,在微信内访问该域名下页面时,不会被重新排版.不出现“防欺诈盗号,请误支付或输入qq密码”的提示,微信认为该域名是安全的,客户也不觉得 ...

  8. Java set接口之HashSet集合原理讲解

    Set接口 java.util.set接口继承自Collection接口,它与Collection接口中的方法基本一致, 并没有对 Collection接口进行功能上的扩充,只是比collection ...

  9. ipynb 文件转 py

    前言 好多机器学习的文件都是ipynb的格式,如果想用其他编辑器的需要转为py的格式 命令: jupyter nbconvert --to script *.ipynb jupyter: pip3 i ...

  10. 使用git将本地文件提交到github存储库

    1.首先你要安装git https://git-for-windows.github.io/ 去官网自行下载对应版本 2.安装好git服务器后,找到你项目的文件夹,右键git bash here打开命 ...