cd命令和roscd命令的区别,并解决环境变量问题

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

原文地址:https://www.cnblogs.com/tanshengjiang/p/12148041.html

时间: 2024-10-27 16:44:13

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

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

种类: ? set     :  用来显示本地变量,显示当前shell的变量,包括当前用户的变量 ? env    :  用来显示环境变量,显示当前用户的变量. ? export:  用来显示和设置环境变量, 显示当前导出成用户变量的shell变量 解释: ?每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同shell是不同的,比如BASH_A

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

Linux系统里的env命令可以显示当前用户的环境变量,还可以用来在指定环境变量下执行其他命令.下面来比较一下set,env和export命令的异同:set命令显示当前shell的变量,包括当前用户的变量;env命令显示当前用户的变量;export命令显示当前导出成用户变量的shell变量.每个shell有自己特有的变量(set)显示的变量,这个和用户变量是不同的,当前用户变量和你用什么shell无关,不管你用什么shell都在,比如HOME,SHELL等这些变量,但shell自己的变量不同sh

Centos中修改环境变量,导致命令丢失的解决办法

本人初学linux,在安装jdk时,修改环境变量导致大量命令丢失? 其实命令还是在系统当中,不过由于环境变量错误,导致修改命令无法通过之前的方式找到,所以出现上面的问题. 这时我们可以通过绝对路径来调用命令,将环境变量修改回来. /bin/vi 这是vi编辑器的绝对路径 之后的问题相信就能自己解决了.

《Linux命令行与shell脚本编程大全》 第六章环境变量

很多程序和脚本都通过环境变量来获取系统信息.存储临时数据和配置信息. 6.1 什么是环境变量: bash shell用一个叫环境变量(environment variable)的特性来存储有关shell会话和工作环境的信息. 这项特性允许在内存中存储数据,以便程序能轻松访问到它们. 在bash shell中,分两类: 全局变量:对于shell会话和所有生成的子shell都是可见的 局部变量:只对创建的它们的shell可见 6.1.1全局环境变量 查看全局变量,  $env    $printen

shell 的内置命令与外部命令的区别

shell命令通常分为两类: 内置命令(man builtins) 外部命令 下面分析两者的区别. 内置命令: 内部命令被构建在shell之中.当执行shell命令时,内部命令的执行速度非常快.这是因为没有其他的进程因为执行这条命令而被创建.比如说,当我们执行"cd"命令时,没有进程被创建.在执行过程中只是简单的改变当前的目录. 外部命令: 外部命令并没有被构建在shell中.这些可执行的外部命令保存在一个独立的文件当中.当一个外部命令被执行时,一个新的进程即被创建同时命令被执行. 通

cmd命令和linux命令的区别

cmd命令和linux命令看起来很相似,都是在一个控制台输入一些特定的指令去完成一些特定的操作.可是用过的朋友就会发现这些指令是有很多不同的,可是到底有什么不同,要说又说不上来,所以要了解一下. cmd命令的起源:DOS DOS(Disk Operating System,磁盘操作系统),是Windows系统之前的一个操作系统名称,属于单用户单任务式的,特点通常是黑底白字,用户全靠键盘输入命令来完成所有工作.之后Windows诞生了,属于多用户多任务式的(系统名称都是多窗口),初期当然还得使DO

find 命令和grep命令的区别

对于find命令和grep命令两者之间的区别,大家可以这样记忆. find命令是用来查找文件的,而grep查找的是文件内容. 另外,find是完全匹配(通配符),而grep是包含匹配(正则表达式)

Linux实际操作中命令 su 与 sudo 的区别

------------------------------------------------------------------------------------------------ 首先我先做了一些更改操作: 换到root用户的操作=>sudo su输入当前用户的密码: ****** 修改root密码的操作=>passwd 123456 /* root密码已改为123456 */ [email protected] chenwei <www.chenwei.ws>---

实际操作中命令 su 与 sudo 的区别(转)

------------------------------------------------------------------------------------------------ 首先我先做了一些更改操作: 换到root用户的操作=>sudo su输入当前用户的密码: ****** 修改root密码的操作=>passwd 123456 /* root密码已改为123456 */ [email protected]or chenwei <www.chenwei.ws>-