history & fc
linux历史机制对命令行中输入的命令进行编号并依此保存,以维护命令历史。
登录会话期间输入的命令保存在shell内存中,若终止命令则添加至历史文件
历史命令缓冲区
-a:将缓存在内存的历史命令写入历史命令文件中【~/.bash_history】
-c:清空当前内存里的历史命令;
有三种方式可以再次执行历史记录的命令:
第一个方式是:!数字
第二个方式是: ctrl+r 快捷键从小往上搜索,右方向键确定
第三个方式是: !字符串
快捷键 ctrl+r
reverse-search-history (Ctrl + R) 多次按下 Ctrl + R 组合键,可以继续向前搜索匹配命令
按下 -> 键,退出搜索状态/交互模式
历史命令
用户层次 : 用户家目录下的".bash_history"文件中
用户层次的配置文件 "~/.bash_profile"文件
系统层面的配置文件设置 /etc/profile环境变量文件中进行设置
VIM常见操作
view == cat
按下“Esc”键来切换到命令模式
查找
/pattern 向后搜索字符串pattern
?pattern 向前搜索字符串pattern
替换
:%s/old/new/g 搜索整个文件,将所有的old替换为new
:%s/old/new/gc 搜索整个文件,将所有的old替换为new,每次都要你确认是否替换
退出
:w :wq
:q :q!
跳转
:100
:$
删除 移动 复制
.(当前行) $(文件中的最后一行) %(所有行)
语法::[begin],[end]d
指定要删除的行数 :3dd
:10,45d - 从第 10 行删除到第 45 行
:.,$d - 从当前行删除到最后一行
:.,1d - 从当前行删除到文件开头
:%d - 删除所有行
删除与特定模式匹配的行 !- 反向匹配
:g/PATTERN/d
:g!/PATTERN/d
除所有空行 :g/^$/d
^$模式表示任何以换行符开头的行,本质上是一个空行
缓冲区类型及其标志(:ls或者:ls!命令查看)
缓冲区编号和缓冲区属性
从Ros中解析出图片
有两种方式,各有利弊
from rosbags.image import message_to_cvimage
from cv_bridge import CvBridge
def prediction(msg):
bridge = CvBridge()
img = bridge.imgmsg_to_cv2(msg, "bgr8")
def prediction(msg):
img =message_to_cvimage(msg, "bgr8")
01.说明--rosbags-image 和python版本有关,低于某个版本是安装不了
02.从源代码构建cv_bridge
在sys.path.remove语句下放置cv_bridge的import语句。
import sys
sys.path.remove('/opt/ros/melodic/lib/python2.7/dist-packages')
from cv_bridge import CvBridge
https://github.com/ros-perception/vision_opencv/tree/melodic
OpenCV 版本号,可以在命令行中使用以下命令:
pkg-config --modversion opencv
源码安装cv_bridge
sudo apt-get install python3-dev python3-numpy python3-yaml ros-melodic-cv-bridge python3-rospkg-modules
pip3 install pip --update
pip3 install rosdep rosinstall catkin_pkg
(1)初始化cv_bridge_ws编译工作空间
mkdir -p cv_bridge_ws/src && cd cv_bridge_ws/src
catkin_init_workspace
(2)将cv_bridge源码拉取到本地
git clone https://github.com/ros-perception/vision_opencv.git
(3)编译cv_bridge
cd ../
catkin_make install -DPYTHON_EXECUTABLE=/usr/bin/python3
使用:
source devel/setup.bash --extend
在~/.bashrc里面加入source,每次启动终端自动source安装cv_bridge的工作空间
下面介绍一下方法2的操作
用自己编译的cv_bridge替换ros安装自带的cv_bridge
可能会导致ROS自带的一些调用cv_bridge的python包(如camera_calibration)无法正常使用,操作前需谨慎
删除/opt,/opt/ros/melodic/lib/python2.7/dist-packages下的cv_bridge
在cv_bridge文件夹中用如下指令编译安装(不需要catkin)即可
标签:bridge,删除,命令,提高效率,快捷,Linux,import,ros,cv
From: https://www.cnblogs.com/ytwang/p/17428541.html