Linux下的ROS2经常用到的shell命令(持续更新中)

本文档详细介绍了Linux系统级shell命令,包括进程管理、环境变量操作,以及ROS2系列命令,涵盖功能包管理、节点运行、信息查询、消息记录与回放等关键操作,为ROS2开发者提供全面的命令参考。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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.youkuaiyun.com/m0_37433067/article/details/80037172

### ROS2教程入门使用指南 对于初学者来说,学习ROS2可以通过多种资源来掌握其基本概念和实际操作技能。以下是关于ROS2的一些重要知识点以及如何快速上手的相关指导。 #### 一、ROS2基础知识概述 ROS2(Robot Operating System 2)是一个用于机器人开发的开源框架,提供了通信机制、工具和服务发现功能。它支持多平台部署并改进了实时性能[^1]。通过学习ROS2的基础架构,可以更好地理解节点(Node)、话题(Topic)、服务(Service)等核心组件的工作原理。 #### 二、环境搭建与配置 安装ROS2前需确认操作系统版本兼容性,并按照官方文档完成依赖项设置。例如,在Ubuntu系统下可通过`sudo apt install ros-humble-desktop`命令一键安装桌面版软件包集合(假设当前使用的发行版为Humble)[^2]。注意替换'humble'为你所选用的具体版本代号。 #### 三、参数管理实践 在实际项目中经常需要用到动态调整运行时行为的功能,这便涉及到参数服务器的操作。利用CLI工具可以直接向正在执行中的进程注入新的设定值或者读取现有状态信息。“ros2 param set <node_name> <parameter_name> value”可用于更新指定节点内的单个属性;而批量导入则借助YAML格式描述文件实现:`ros2 param load /listener listener.yaml` . #### 四、常用命令汇总 熟悉Linux Shell交互方式有助于提高工作效率。一些常用的目录浏览指令包括但不限于查看当前路径下的内容(`ls`)及其全部条目含隐藏部分(`ls -a`);新建子目录结构(mkdir),切换工作区(cd);创建新空白文本档(touch),移除无用对象(rm). 更进一步地讲,当面对复杂场景比如清理整个空闲空间时候,"rm -rf foldername"显得尤为重要但是务必小心谨慎以免误删关键资料. ```bash # 示例:进入特定文件夹并列出其中的内容 cd ~/my_ros2_ws/src/ ls ``` #### 五、动手实验建议 理论联系实际才能巩固记忆加深印象。可以从简单的发布订阅模型开始尝试构建自己的第一个程序实例,接着逐步探索高级特性诸如动作(Action)客户端/服务器端设计模式等等。 ```python import rclpy from std_msgs.msg import String def main(args=None): rclpy.init(args=args) node = rclpy.create_node('minimal_publisher') publisher = node.create_publisher(String, 'topic', 10) msg = String() while True: msg.data = "Hello World" publisher.publish(msg) node.get_logger().info(f'Sending: {msg.data}') if __name__ == '__main__': main() ``` 以上代码片段展示了如何定义一个最基本的发布者角色,持续不断地向外广播字符串消息给定名为'topic'的主题听众们接收处理.
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值