ubuntu下使用XBOX手柄控制ROS中的多个小乌龟turtlesim

配置微软Xbox One手柄到ROS实现通讯控制 环境:Ubuntu16.04 + ROS kinetic 安装joy package joy package为通用的Linux操纵杆提供了ROS驱动,它包括了一个joy_node节点,可以让Linux操纵杆和ROS交互.这个节点发布一个”Joy”消息,包含了操纵杆每一个按钮和轴的当前状态. 安装这个joy package: sudo apt-get install ros-kinetic-joy ... 阅读详情
AI摘要

本文档介绍了如何在Ubuntu 16.04和ROS kinetic环境下,使用XBOX手柄通过joy驱动库控制ROS中的turtlesim模拟器。详细步骤包括游戏手柄的连接、驱动安装、手柄测试,以及编写控制单个小乌龟和两个小乌龟同步、单独运动的代码。

参考文档

电脑系统:ubuntu16.04
ROS版本:kinetic
参考书籍:Learning ROS for Robotics Programming Second Edition第四章
其内容为:
在这里插入图片描述
书籍的github库:https://github.com/AaronMR/Learning_ROS_for_Robotics_Programming_2nd_edition

操作步骤

利用microUSB线连接游戏手柄

连接以后手柄会震动。震感贼棒。哈哈哈!

下载安装游戏手柄驱动库

sudo apt-get install ros-kinetic-joystick-drivers

参考文档:http://wiki.ros.org/joy
里面的介绍:支持所有的游戏手柄
在这里插入图片描述
github库:https://github.com/ros-drivers/joystick_drivers
将github库中的源文件放到catkin工作空间的src文件夹下编译。此时会遇到很多问题:
解决方法参考链接:https://blog.youkuaiyun.com/p942005405/article/details/86559966


我的方法:

sudo apt-get install libbluetooth-dev

安装完蓝牙驱动后还是报错,然后把joystick_drivers下的wiimote文件夹删除或者移除到其他位置。
然后在工作空间下重新编译

catkin_make

因为wiimote文件介绍:http://wiki.ros.org/wiimote
这个包好像是关于蓝牙协议和通信的,具体可以参考上面ROS中的介绍。


测试游戏手柄

连接游戏手柄

查看游戏手柄是否识别:

ls /dev/input/

在这里插入图片描述
检查每个按钮的对应:

sudo jstest /dev/input/js0

在这里插入图片描述
提供的有:轴0-7 共8个 ; 按钮0-10 共11个
在这里插入图片描述

查看游戏手柄节点信息

启动ros,运行roscore。
然后,运行joy包中的节点:

rosrun joy joy_node

运行成功的标志:(力反馈后续在整)
在这里插入图片描述

rostopic list
rostopic echo /joy

操作按钮可以到上面轴或者按钮数值的变化。

rostopic type /joy
rosmsg show sensor_msgs/Joy

显示手柄发送的数据类型:
在这里插入图片描述
查看小乌龟消息类型

rosrun turtlesim turtlesim_node
rostopic list
rostopic type /turtle1/cmd_vel
rosmsg show geometry_msgs/Twist

在这里插入图片描述

编程控制一个小乌龟运动

创建ros包

创建joystick_example的ros包

在catkin_ws/src/joystick_drivers下运行命令:

catkin_create_pkg joystick_example roscpp std_msgs sensor_msgs joy geometry_msgs

因为依赖的比较多,我的package.xml文件为:
在这里插入图片描述

创建cpp文件:

在catkin_ws/src/joystick_drivers/joystick_example/src下新建一个example.cpp:

#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include<sensor_msgs/Joy.h>
#include<iostream>

using namespace std;

class TeleopJoy{
	public:
		TeleopJoy();
	private:
		void callBack(const sensor_msgs::Joy::ConstPtr& joy);
		ros::NodeHandle n;
		ros::Publisher pub;
		ros::Subscriber sub;
		int i_velLinear, i_velAngular;
};

TeleopJoy::TeleopJoy()
{	
	n.param("axis_linear",i_velLinear,i_velLinear);
	n.param("axis_angular",i_velAngular,i_velAngular);
	
	//pub = n.advertise<turtlesim::Velocity>("turtle1/command_velocity",1);
	//sub = n.subscribe<sensor_msgs::Joy>("joy", 10, &TeleopJoy::callBack, this);
        pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",1);
	sub = n.subscribe<sensor_msgs::Joy>("joy", 10, &TeleopJoy::callBack, this);
}

void TeleopJoy::callBack(const sensor_msgs::Joy::ConstPtr& joy)
{
	//turtlesim::Velocity vel;
        geometry_msgs::Twist vel;
	vel.angular.z = joy->axes[i_velAngular];
	vel.linear.x = joy->axes[i_velLinear];
	pub.publish(vel);
	//vel.angular = joy->axes[i_velAngular];
	//vel.linear = joy->axes[i_velLinear];
	//pub.publish(vel);
}

int main(int argc, char** argv)
{
	ros::init(argc, argv, "teleopJoy");
	TeleopJoy teleop_turtle;

	ros::spin();
}

修改CMakeLists文件:

在catkin_ws/src/joystick_drivers/joystick_example修改CMakeLists.txt:
在这里插入图片描述

新建example.launch文件:

在catkin_ws/src/joystick_drivers/joystick_example中:
新建launch文件夹----新建example.launch文件:
文件内容为:

<launch>
	<node pkg="turtlesim" type="turtlesim_node" name="sim"/>
	<node pkg="joystick_example" type="example" name="example" />
	<param name="axis_linear" value="1" type="int" />
	<param name="axis_angular" value="0" type="int" />
	<node respawn="true" pkg="joy" type="joy_node" name="joy_node">
	<param name="dev" type="string" value="/dev/input/js0" />
    	<param name="deadzone" value="0.12" />
	</node>
</launch>

然后在catkin_ws下重新编译包:

catkin_make

在这里插入图片描述

运行测试文件:

编译成功后:
运行roscore
运行

roslaunch joystick_example example.launch

用手柄操作
在这里插入图片描述

代码解释


cpp代码解释

#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include<sensor_msgs/Joy.h>
#include<iostream>

int main(int argc, char** argv)
{
	ros::init(argc, argv, "teleopJoy");
	TeleopJoy teleop_turtle;

	ros::spin();
}

主函数中创建TeleopJoy的一个实例teleop_turtle。

TeleopJoy::TeleopJoy()
{	
	n.param("axis_linear",i_velLinear,i_velLinear);
	n.param("axis_angular",i_velAngular,i_velAngular);
    pub = n.advertise<geometry_msgs::Twist>("/turtle1/cmd_vel",1);
	sub = n.subscribe<sensor_msgs::Joy>("joy", 10, &TeleopJoy::callBack, this);
}

在这个构造函数中,四个变量需要初始化。前两个变量用游戏手柄的轴值填充。其余两个变量为发布和订阅。
advertise:告诉master要在/turtle1/cmd_vel上要发布一个geometry_msgs::Twist消息。1代表发布序列的大小。在这样的情况下,如果我们发布的消息太快,缓冲区中的消息在大于1个的时候就会开始丢弃先前发布的消息。
subscribe:订阅手柄消息,当有消息到达joy时,ROS就会调用TeleopJoy::callBack函数。第二个参数是队列大小,以防我们处理消息的速度不够快,在缓存了10个消息后,再有新的消息到来就将开始丢弃先前接收的消息。

void TeleopJoy::callBack(const sensor_msgs::Joy::ConstPtr& joy)
{
    geometry_msgs::Twist vel;
	vel.angular.z = joy->axes[i_velAngular];
	vel.linear.x = joy->axes[i_velLinear];
	pub.publish(vel);
}

回调函数,创建一个新变量vel用来发布数据。游戏手柄轴的数值给vel。


launch代码解释

<launch>
	<node pkg="turtlesim" type="turtlesim_node" name="sim"/>
	<node pkg="joystick_example" type="example" name="example" />
	<param name="axis_linear" value="1" type="int" />
	<param name="axis_angular" value="0" type="int" />
	<node respawn="true" pkg="joy" type="joy_node" name="joy_node">
	<param name="dev" type="string" value="/dev/input/js0" />
    	<param name="deadzone" value="0.12" />
	</node>
</launch>

launch文件中有3个节点:sim、example、joy。
axis_linear、axis_angular用来设置游戏手柄的摇杆序号。
dev用来配置游戏手柄的接口。
deadzone不被设备识别的运动区域。
在这里插入图片描述

编程控制两个小乌龟同步运动

代码修改

因为在roslaunch的学习中启用过两个turtlesim,利用rostopic pub发布固定消息。
参考了其中的launch文件:http://wiki.ros.org/cn/ROS/Tutorials/UsingRqtconsoleRoslaunch

cpp修改

将发布话题选为turtlesim1下的话题:

pub = n.advertise<geometry_msgs::Twist>("/turtlesim1/turtle1/cmd_vel",1);

launch文件修改

<launch>
	<group ns="turtlesim1">
        <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
        </group>
        <group ns="turtlesim2">
	<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
        </group>
        <node pkg="joystick_example" type="example" name="example" />
	<param name="axis_linear" value="3" type="int" />
	<param name="axis_angular" value="4" type="int" />
	<node respawn="true" pkg="joy" type="joy_node" name="joy_node">
	<param name="dev" type="string" value="/dev/input/js0" />
    	<param name="deadzone" value="0.05" />
        </node>
        <node pkg="turtlesim" name="mimic" type="mimic">
        <remap from="input" to="turtlesim1/turtle1"/>
        <remap from="output" to="turtlesim2/turtle1"/>
	</node>       
</launch>

编译运行

catkin_make
roslaunch joystick_example example.launch

在这里插入图片描述
节点关系图:
在这里插入图片描述

编程控制两个小乌龟单独运动

此处用XBOX手柄的摇杆1控制小乌龟1turtlesim1, 摇杆2控制小乌龟2–turtlesim2。
话不多说,直接粘代码。哈哈哈哈哈哈!!!!!

代码编写

在catkin_ws/src/joystick_drivers/joystick_example/src下新建example_two_turtle_ctrl.cpp

cpp文件:

#include<ros/ros.h>
#include<geometry_msgs/Twist.h>
#include<sensor_msgs/Joy.h>
#include<iostream>

using namespace std;

class TeleopJoy{
	public:
		TeleopJoy();
	private:
		void callBack(const sensor_msgs::Joy::ConstPtr& joy);
		void callBack1(const sensor_msgs::Joy::ConstPtr& joy);
		ros::NodeHandle n;
		ros::Publisher pub,pub1;
		ros::Subscriber sub,sub1;
		int i_velLinear, i_velAngular;
		int i_velLinear1, i_velAngular1;
};

TeleopJoy::TeleopJoy()
{	
	n.param("axis_linear",i_velLinear,i_velLinear);
	n.param("axis_angular",i_velAngular,i_velAngular);
	n.param("axis_linear1",i_velLinear1,i_velLinear1);
	n.param("axis_angular1",i_velAngular1,i_velAngular1);

	pub = n.advertise<geometry_msgs::Twist>("/turtlesim1/turtle1/cmd_vel",1);
	pub1 = n.advertise<geometry_msgs::Twist>("/turtlesim2/turtle1/cmd_vel",1);

	sub = n.subscribe<sensor_msgs::Joy>("joy", 10, &TeleopJoy::callBack, this);
	sub1 = n.subscribe<sensor_msgs::Joy>("joy", 10, &TeleopJoy::callBack1, this);
}

void TeleopJoy::callBack(const sensor_msgs::Joy::ConstPtr& joy)
{
        geometry_msgs::Twist vel;
	vel.angular.z = joy->axes[i_velAngular];
	vel.linear.x = joy->axes[i_velLinear];
	pub.publish(vel);
	
}
void TeleopJoy::callBack1(const sensor_msgs::Joy::ConstPtr& joy)
{
    geometry_msgs::Twist vel1;
	vel1.angular.z = joy->axes[i_velAngular1];
	vel1.linear.x = joy->axes[i_velLinear1];
	pub1.publish(vel1);	
}


int main(int argc, char** argv)
{
	ros::init(argc, argv, "teleopJoy");
	TeleopJoy teleop_turtle;

	ros::spin();
}

修改CMakeLists.txt文件:

在这里插入图片描述

编写launch文件:

在catkin_ws/src/joystick_drivers/joystick_example/launch新建example_two_turtle_ctrl.launch文件:

<launch>
	<group ns="turtlesim1">
        <node pkg="turtlesim" name="sim" type="turtlesim_node"/>
        </group>
        <group ns="turtlesim2">
	<node pkg="turtlesim" name="sim" type="turtlesim_node"/>
        </group>
    <node pkg="joystick_example" type="example_two_turtle_ctrl" name="example_two_turtle_ctrl" />
	<param name="axis_linear" value="3" type="int" />
	<param name="axis_angular" value="4" type="int" />
    <param name="axis_linear1" value="0" type="int" />
	<param name="axis_angular1" value="1" type="int" />
    <node respawn="true" pkg="joy" type="joy_node" name="joy_node">
	<param name="dev" type="string" value="/dev/input/js0" />
    <param name="deadzone" value="0.05" />
    </node>
</launch>

编译运行

catkin_make
roslaunch joystick_example example_two_turtle_ctrl.launch

结果图:
在这里插入图片描述

节点关系:
在这里插入图片描述
哈哈哈哈哈哈哈哈,开心!!!!!!!!!
震感修改后续再说!!!!!!

20190417
20190418

【Linux】usb游戏手柄测试、编程 在ubuntu18.04下使用usb游戏手柄,之前联系客服,客服回答不清楚是否支持linux,因此采购一款北通蝙蝠2的手柄来测试。 阅读详情

相关推荐

使用Xbox One无线手柄配置和使用ROS

Xbox One无线手柄是一款功能强大且广受欢迎的游戏手柄,但它也可以作为ROS(机器人操作系统)的输入设备。通过按照上述步骤,您可以将Xbox手柄作为ROS的输入设备,并利用其功能来控制机器人和执行其他任务。在步骤3的代码中,您可以看到一个名为callback的函数。一旦您完成了软件和驱动程序的安装,您可以开始将Xbox One无线手柄与ROS配对。现在,您已完成了ROS节点的配置,可以运行它以接收Xbox One无线手柄的输入。2.3 在终端中,您将看到有关手柄的信息,例如手柄的设备ID。

XrxVue的博客 1037

Ubuntu joystick 测试手柄 xbox

测试使用Ubuntu20.04 测试环境在工控机。

qq_44179528的博客 3162

在ROS中使用Xbox360手柄控制小车运动

使用xbox360游戏手柄,在ros环境中,控制机器人小车或者小乌龟运动

ericdowney 2815

xbox one 手柄在ubuntu下的使用和开发

xbox one 手柄在ubuntu平台下的使用和开发

qq_33995823的博客 4883

服务器AutoDL自己部署QWen3

说明:核心参数:30B 模型原精度权重文件约 60GB,单张 PRO 6000 拥有 48GB 显存,单卡塞不下原精度模型,2张 PRO 6000 = 96GB 总显存,这不仅能装下模型,还能留出约 30GB 显存给 KV Cache(上下文长度) 以及 Omni 多模态组件 处理图片/视频输入时的额外开销。1. 前提准备模型选择:直接下载到 AutoDL 服务器上=》原精度模型(BF16/FP16) 的 Qwen3-Omni-30B,选择的示例和环境如下。# 3. 正式执行模型下载。

xiaoxiao_00001的博客 417

USB摄像头开发避坑指南:UVC协议中的Alternate Setting详解

本文深入解析UVC协议中的Alternate Setting机制,这是USB摄像头开发中影响视频流稳定性的关键。文章通过实际案例,详解了Alternate Setting如何管理USB带宽分配,并分析了帧率不达标、图像花屏等典型问题的根源与排查方法,为开发者提供实用的避坑指南和调试技巧。

meat5的博客 240

Ubuntu + ROS1 用 Xbox Series 手柄(USB线连接)控制 turtlesim(xone 驱动 + linux-modules-extra 踩坑全解)

这篇教程详细介绍了在Ubuntu系统上使用Xbox Series X|S手柄控制ROS1的turtlesim。重点包括:1)安装xone驱动(推荐新款手柄使用);2)解决"手柄灯闪但不工作"的问题(需安装linux-modules-extra包);3)配置ROS手柄控制节点(joy_node+teleop_twist_joy);4)特别提醒必须按住使能键(默认LB键)才能控制小乌龟移动。文中提供了完整的安装命令、调试方法和常见问题解决方案,并对比了不同Xbox手柄适用的驱动方案。

qq_43741419的博客 1708

嘉立创EDA报错:元件引脚与焊盘未对应报错解决记录

原件引脚与焊盘未对应报错解决方法,一文总结!

2303_77013775的博客 1万+

ubuntu安装手柄驱动玩游戏

为什么80%的码农都做不了架构师?>>> ...

weixin_33698043的博客 2801

鸿蒙OS开机动画背后的秘密:从代码到视觉的完整解析(附源码分析)

本文深入解析了鸿蒙OS开机动画的系统级实现原理。从bootanimation服务的启动配置、与Render Service的协同,到基于VSync信号的帧率同步与绘制流水线,结合OpenHarmony源码进行了逐行解读。文章揭示了其事件驱动的优雅退出机制,并探讨了视频支持、多屏适配等高级特性与定制化可能,为开发者理解鸿蒙图形子系统提供了硬核技术视角。

sony5的博客 976

芯片设计中的STA实战:如何避免时序违例(含常见问题解析)

本文深入探讨了芯片设计中静态时序分析(STA)的实战应用,重点解析了如何避免时序违例。文章从STA的核心逻辑与约束制定出发,强调了将时序意识植入RTL编码与综合阶段的重要性,并详细介绍了后端物理实现中的时序收敛策略。同时,针对跨时钟域路径误报、多工艺角违例等常见问题提供了深度解析与调试技巧,旨在帮助IC设计工程师系统性地掌握时序分析与优化方法。

open4的博客 515

[joysticker]使用Ubuntu读取USB手柄/方向盘的输出控制

参考: 1.在UBUNTU中使用北通USB游戏手柄 2.Linux获取/dev/input目录下的event对应的设备 1.cat命令 cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat linuxyw.txt cat –help可以查看cat帮助信息,如各种参数使用方法,当然也可以用man cat来查看,建议大家...

大盈若冲,其用无穷。 1万+

第14.1章 高翔博士2025年11月最新开源框架Lightning-LM源码学习解读(一):激光-IMU定位+建图算法各模块简介

Lightning-LM:高效激光SLAM定位系统 该框架基于模块化设计,通过激光-IMU融合实现快速建图与定位,核心特点包括: 极速性能:纯CPU运行(建图1.2核/定位0.8核) 模块化架构:包含激光里程计(LIO)、地图管理、回环检测等独立模块 动态场景支持:地图分块加载、动静态图层分离 多模式适配:支持ROS2环境下的在线/离线运行 关键模块包括前端里程计(core/lio)、2D/3D地图转换(core/g2p5)、轻量优化库(core/miao)等,通过系统控制器(core/system)协调流

行知SLAM 2439

ubuntu/linux 北通无线游戏手柄不识别

北通无线游戏手柄, CONFIG_JOYSTICK_XPAD

u011326325的博客 3865

手把手完整实现STM32+ESP8266+机智云平台+手机APP应用——第一节-机智云平台搭建+所需硬件及接线说明+ESP8266烧录机智云固件

本节介绍如何在机智云平台创建自己的项目,介绍使用的硬件及接线说明,以及ESP8266烧录机智云固件过程。下一节进行机智云移植并编写STM32程序实现远程温湿度显示与控制灯照明,以及机智云APP配网。实现完整的物联网应用,STM32+ESP8266+机智云平台+手机APP应用。

嵌入式阿齐Archie 2万+

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

探秘Ubuntu上的Xbox控制器利器:Ubuntu xboxdrv Integration

探秘Ubuntu上的Xbox控制器利器:Ubuntu xboxdrv Integration 对于热爱在Ubuntu上享受游戏体验的玩家,一个功能强大且易于配置的Xbox控制器驱动是必不可少的。幸运的是,我们有【Ubuntu xboxdrv Integration】这个开源项目,它为流行的xboxdrv添加了更多的自定义设置和便捷功能,让您的游戏控制器更加得心应手。 项目介绍 该项目旨在解决原版x...

gitblog_00015的博客 699

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

ubuntu下使用USB手柄

1, 安装手柄驱动:# modprobe joydev2. 安装手柄测试软件:# sudo apt-get install joystick3. 测试手柄:# jstest /dev/js0 或者 # jstest /dev/input/js0

gqwang2005的专栏 4963

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

lwip-2.0.3

lwip是瑞典计算机科学院(SICS)的Adam Dunkels 开发的一个小型开源的TCP/IP协议栈。实现的重点是在保持TCP协议主要功能的基础上减少对RAM 的占用。

Ubuntu下读取Xbox360手柄输出

Ubuntu下读取Xbox360手柄输出 摘要:在淘宝上买到的游戏手柄/USB卖家只给了Windows下的驱动,本来以为Ubuntu下没有驱动,没想到网上早已经有人用cpp开发出了USB手柄的驱动,搜索很多博客的方法终于从手柄拿到数据。 Linux真给力!! 目录 目录

qq_35588369的博客 3576

ubuntu安装xbox手柄的驱动程序

原文链接 xbox 安装方法: Updated Xpad Linux Kernel Driver Driver for the Xbox/ Xbox 360/ Xbox 360 Wireless/ Xbox One Controllers This driver includes the latest changes in the upstream linux kernel and ...

lc574260570的博客 8515

在 Ubuntu 上安装 jstest-gtk 手柄测试

上面的命令将删除与 jstest-gtk 包相关的所有配置文件和数据。您无法恢复删除的数据,因此请谨慎使用此命令。这将删除系统中不再需要的 jstest-gtk 及其所有依赖包。第二步:安装jstest-gtk。第三步:删除jstest-gtk。

weixin_45003321的博客 3081

ubuntu18.04+ros melodic环境下手柄驱动环境安装

前言: 该博客仅作个人笔记使用,因为我已经有了手柄命令与机器人电机控制的底层协议,只是缺少手柄驱动,如需更全面的配置教程,请移步其他博客 环境:ubuntu 18.04 + Ros melodic 依次输入以下命令安装 sudo apt-get install ros-melodic-joy sudo apt-get install ros-melodic-joystick-drivers rosdep install joy rosmake joy 注意: 如果是其他版本,比如ubuntu16.4+ro

Fzc_Ztt的博客 1694

Ubuntu xboxdrv 项目常见问题解决方案

Ubuntu xboxdrv 项目常见问题解决方案 项目基础介绍 Ubuntu xboxdrv 项目是一个用于在 Ubuntu 系统上集成 Xbox 控制器驱动的开源项目。该项目的主要目的是提供比默认的 xpad 内核驱动更丰富的配置选项,例如模拟键盘和鼠标事件、按钮和轴的映射、自动触发、轴反转、轴灵敏度调整、模拟油门和方向舵控制以及发送宏等功能。该项目使用 Bash 脚本和一些系统配置文件来实现...

gitblog_01114的博客 543

ROS配置和使用Xbox One无线手柄

ROS配置和使用Xbox One无线手柄 环境:Ubuntu16.04 + ROS kinetic 安装joy package joy package为通用的Linux操纵杆提供了ROS驱动,它包括了一个joy_node节点,可以让Linux操纵杆和ROS交互.这个节点发布一个”Joy”消息,包含了操纵杆每一个按钮和轴的当前状态. 安装这个joy package: $ sudo ap...

0阿齐兹0的博客 7069

Python Ubuntu joystick

直接访问linux内核usb接口

怨行客 904

使用Ubuntu读取USB手柄/方向盘的输出控制

摘要:最近从淘宝购买了某通多模版蓝牙5.0的游戏手柄,使用官方的接收器,好用的不得了。实测无遮挡情况下距离40m,有遮挡情况下10m左右,顺便总结下测试方法。 1.cat命令 cat 是一个文本文件查看和连接工具。查看一个文件的内容,用cat比较简单,就是cat 后面直接接文件名,如cat linuxyw.txt options: -b:–number-nonblank 对非空输出行编号,即在每行前显示所在行号 -n:–number 对输出的所有行编号,即在每行前显示所在行号 2.hexdump命令 hex

Woods的博客 2155
上一篇: kinect摄像头在ubuntu16.04下的操作使用
下一篇: cv::VideoCapture::VideoCapture(int)’未定义的引用
answerMack
博客等级 码龄8年 145粉丝 52原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值