首页 > 技术文章 > Linux下的ROS2经常用到的shell命令(持续更新中)

tuxinbang 2019-03-02 16:26 原文

1 Linux系统级shell命令

1.1 Linux查询进程并结束进程
查询进程:

 ps -ef |grep gazebo

ps:将某个进程显示出来
-A  显示所有程序。
-e  此参数的效果和指定"A"参数相同。
-f  显示UID,PPIP,C与S TIME栏位。
grep命令是查找;中间的|是管道命令,是指ps命令与grep同时执行。
这条命令的意思是显示有关gazebo有关的进程,gazebo也可以换成其他的字符。
结束进程:

kill -9 4394

形式:kill [参数] [进程号]
kill就是给某个进程id发送了一个信号。默认发送的信号是SIGTERM,而kill -9发送的信号是SIGKILL,即exit。exit信号不会被系统阻塞,所以kill -9能顺利杀掉进程。当然你也可以使用kill发送其他信号给进程。

1.2 显示环境变量或其他对象的对应字符串

echo [参数] [对象]

参数常用的有两个:
①一个是-n,表示输出之后不换行;
②另外一个是-e,表示对于转义字符按对应的方式处理,假设不加-e那么对于转义字符会按普通字符处理。

echo输出时的转义字符,(转义字符放在对象后面,)
\b 表示删除前面的空格 
\n 表示换行且光标移至行首
\t 表示水平制表符 
\v 表示垂直制表符 
\c \c后面的字符将不会输出,同一时候,输出完毕后也不会换行 
\r 输出回车符(可是你会发现\r前面的字符没有了) 
\a 表示输出一个警告声音

echo -e "OK! \n" 

-e,表示开启转义字符;\n 表示换行;

还有一个功能显示结果定向至文件:

echo "hello world!" > test1.tmp

就是把内容输出到文件里而不是标准输出。

1.3 设置或显示环境变量
export指令
参考:https://www.cnblogs.com/zhangwuji/p/7899075.html

1.4 查询相关环境变量
env | grep xxx
查询路径与xxx相关的环境变量。

2 ROS2操作shell命令

2.1 ROS2 Shell命令
      ros2 cd - 移动到指定的ROS2功能包目录
      ros2 ls - 显示ROS2功能包的文件与目录
      ros2 ed - 编辑ROS2功能包的文件
      ros2 cp - 复制ROS2功能包的文件
      ros2 pd - 添加目录至ROS2目录索引
      ros2 d - 显示ROS2目录索引中的目录

具体使用(只介绍常见使用):
     ros2 cd [功能包名称]。 使用它,无需再使用cd一层层到查找,进入功能包里
     ros2 ls [功能包名称]。 等价与ros2 cd+ls。查看ROS2功能包的文件列表更方便,快捷。
     ros2 ed [功能包名称] [文件名称]。 用于编辑功能包中的特定文件,优点也是快捷,修改容易。

2.2 ROS2执行命令
     ros2 run - 运行单个节点
     ros2 launch - 运行多个节点及设置运行选项
     ros2 clean - 检查或删除ROS2日志文件

具体使用(介绍常见命令)
     ros2 run [功能包名称] [节点名称]。执行指定的功能包中的一个节点的命令。
     ros2 launch [功能包名称] [launch文件名]。 类似dat批命令,是运行指定功能包中一个或设置执行选项的命令。
     ros2 clean [选项]。运行ros2时,对所有节点的记录都会写入日志文件,随着时间的推移,需要定期使用rosclean命令删除这些记录.

2.3 ROS2信息命令
   1. ros2 topic - 查看ROS2话题信息
    ros2 topic [选项]:
      list - 列出活动话题
      echo [话题名称] - 实时显示指定话题的消息内容
      find [类型名称] - 显示使用指定类型的消息的话题
      type [话题名称] - 显示指定话题的消息类型
      bw [话题名称] - 显示指定话题的消息类型
      hz [话题名称] - 显示指定话题的消息数据发布周期
      info [话题名称] - 显示指定话题的消息
      pub [话题名称] [消息类型] [参数] - 用指定的话题名称发布消息,许多时候另开一个终端操作
       例:

rostopic pub -1 /turtle1/cmd_vel geometry_msgs/Twist – ‘[2.0, 0.0, 0.0]”[0.0, 0.0, 0.0]’

2. ros2 service - 查看ROS2服务信息
 ros2 service [选项]
      list - 显示活动的服务信息
      info [服务名称] - 显示指定服务的信息
      type [服务名称] - 显示服务类型
      find [服务类型] - 查找指定服务类型的服务
      uri [服务名称] - 显示ROSRPC URI服务
      args [服务名称] - 显示服务参数
      call [服务名称] [参数] - 用输入的参数请求服务,通常用于测试服务

3. ros2 node - 查看ROS2节点信息
  ros2 node [选项]
      list - 查看活动的节点列表
      ping [节点名称] - 与指定的节点进行连接测试
      info [节点名称] - 查看指定节点的信息
      machine [PC名称或IP] - 查看该PC中运行的节点列表
      kill [节点名称] - 停止指定节点的运行
      cleanup - 删除失连节点的注册信息

4. ros2 param - 确认和修改ROS2参数信息
ros2 param [参数]
      list - 查看参数列表
      get [参数名称] - 获取参数值
      set [参数名称] - 设置参数值
      dump [文件名称] - 将参数保存到指定文件
      load [文件名称] - 获取保存在指定文件中的参数,经常使用。
      delete [参数名称] - 删除参数

5. ros2 bag - 记录和回放ROS2消息
ros2 bag [参数]
      record [选项] [话题名称] - 将指定话题的消息记录到bag文件
      info [文件名称] - 查看bag文件的信息
      play [文件名称] - 回放指定的bag文件,这个使用玩的也多。
      compress [文件名称] - 压缩指定的bag文件
      decompress [文件名称] - 解压指定的bag文件
      filter [输入文件] [输出文件] [选项] - 生成一个删除了指定内容的新的bag文件
      reindex bag [文件名称] - 刷新索引
      check bag [文件名称] - 检查指定的bag文件是否能在当前系统中回放
      fix [输入文件] [输出文件] [选项] - 将由于版本不同而无法回放的bag文件修改可以回放的文件

6. ros2 msg - 显示ROS2消息类型
  ros2 msg [参数]
      list - 显示所有消息
      show [消息名称] - 显示指定消息
      md5 [消息名称] - 显示md5sum
      package [功能包名称] - 显示用于指定功能包的所有消息
      packages - 显示使用消息的所有功能包

7. ros2 srv - 显示ROS2服务类型
ros2 srv [参数]
      list -显示所以服务
      show [服务名称] - 显示指定的服务信息
      md5 [服务名称] - 显示md5sum
      package [功能包名称] - 显示指定的功能包中用到的所有服务
      packages - 显示使用服务的所有功能包

8. ros2 version - 显示ROS2功能包的版本信息

9. ros2 wtf - 检查ROS2系统

2.4 ROS2 catkin命令
      catkin_create_pkg - 自动生成功能包(示例命令:catkin_create_pkg [功能包名称] [依赖性功能包1] [依赖性功能包2]….)
      catkin_make - 基于catkin构建系统的构建 (示例:catkin_make –pkg [包名] 只构建一部分功能包)
      catkin_eclipse - 对于用catkin构建系统生成的功能包进行修改,使其能在Eclipse环境中使用
      catkin_prepare_release - 在发布时用到的日志整理和版本标记
      catkin_generate_changelog - 在发布时生成或更新CHANGLOG.rst文件
      catkin_init_workspace - 初始化catkin构建系统的工作目录
      catkin_find - 搜素catkin,找到并显示工作空间

2.5 ROS2功能包命令
     ros2 pack [选项] [功能包名称] - 查看与ROS2功能包相关的信息(可以使用find, list,depend-on, depends和profile等选项)
     ros2 install - 安装ROS2附加功能包
     ros2 dep [选项] - 安装该功能包的依赖性文件(check, install, init, update)
     ros2 locate [选项] [功能包名称] - ROS2功能包信息相关命令(可用的选项是info, vcs, type, uri和repo等)

参考博客:https://blog.csdn.net/m0_37433067/article/details/80037172

推荐阅读