Linux 【学习备忘】

Linux-Ubuntu

  • 零、SSH
    • 1、安装ssh服务
    • 2、开启服务
    • 3、判断是否安装成功
    • 4、本地进行测试
  • 一、Linux常见命令大全
    • linux基础知识
    • 1、复制与拷贝
    • 2、创建链接 ln
    • 3、远程登录连接(桌面)
    • 4、Linux修改权限
    • 5、压缩与解压命令
    • 6、通配符
    • 7、文件系统与磁盘管理
    • 8、计算机网络
  • 二、库安装与环境搭建
    • 1、编译安装opencv
    • 2、Eigen3库安装
    • 3、ROS安装
      • 3.1 ROS安装
      • 3.2 ros相关知识
    • 4、CMake编译相关
    • 5、PCL安装
    • 6、yaml-cpp安装
    • 7、kubeflow安装
    • 8、popt库
    • 9、Qt安装
    • 10、git安装与相关知识
    • 11、Ubuntu安装Anaconda
    • 12、NLopt库(非线性优化)
    • 13、ceres库 (非线性优化)
    • 14、Matlab 安装
    • 15、vmware虚拟机-安装
    • 16、pangolin库-安装
    • 17、Ubuntu更换系统源和pip源(换源)
    • 18、LCM通信库-安装
    • 19、Poco库安装
    • 20、Boost库安装
    • 21、ffmpeg相关
    • X、GNU编译-CMake
    • X+1、各个开源库对应版本问题,如何解决?
  • 三、Shell解释器
    • 1、bash
    • 2、bash
    • 3、bash
  • 四、Linux中tools(工具)
    • 1、内存泄露检查工具
    • 2、修改密码
    • 3、修改主机名
    • 4、Debug调试
    • 等等,请细察
  • 嵌入式开发
  • 网络编程
  • X 、Linux系统中常出现的错误及问题(包括使用软件)
  • X +1、ubuntu系统与centos系统区别

零、SSH

SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。
下列命令可验证确认电脑上是否安装了客户端和服务器。

dpkg -l | grep ssh

SSH两种级别的远程登录:口令登陆和公钥登陆。
口令登陆:口令登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址 eg:

ssh [email protected]

1、安装ssh服务

sudo apt-get install openssh-server 

2、开启服务

sudo /etc/init.d/ssh start 

3、判断是否安装成功

ps -aux | grep ssh

4、本地进行测试

ssh localhost

一、Linux常见命令大全

linux基础知识

Linux常见的发行版有SUSE、Ubuntu、RedHat、CentOS、Fedora、不同发行版之间有不同的联系和区别

(1)命令大全( 点击 )

(2)命令大全( 点击 )
cd命令 cd 进入用户主目录
cd ~ 进入用户名目录/home/user/(cd ~/. 和cd ~ 和cd ~/效果相同,. 点在文件名头部,代表一个隐藏文件)
cd - 代表前一个工作目录
cd . 代表此层目录
cd . . 返回上一级目录
cd ~account 代表account这个使用者的家目录(account是个账号名称)
cd !$ 把上个命令的参数作为cd 参数使用
pwd 查看当前目录(Print Working Directory)
pwd -P 显示出真正的路径,而非使用链接(link)路径
mkdir 建立新目录
mkdir -m 设置文件的权限。直接设置,不使用默认权限(umask是命令)
mkdir -p 帮助你直接将所需要的目录(包含上层目录)递归创建
sync(可点击) sync是一个linux同步命令,含义为迫使缓冲块数据立即写盘并更新超级块。
grep linux命令之grep。全拼:Global search REgular expression and Print out the line。 作用:文本搜索工具,根据用户指定的“模式(过滤条件)”对目标文本逐行进行匹配检查,打印匹配到的行。
date date --help Linux date命令可以用来显示或设定系统的日期与时间。
mount 在linux中,挂载是linux本身的文件目录与硬件设备的文件目录合二为一的过程,在linux系统中需要通过挂载,硬件设备才能使用,若不挂载,系统中的命令行无法找到硬件设备。
Linux mount命令是经常会使用到的命令,它用于挂载Linux系统外的文件。
命令语法:mount [-t 文件系统] 设备文件名 挂载点
举个栗子:mount -t iso9600 /dev/sr0 /mnt/cdrom
sshpass sshpass免密登录
sed sed在处理文本时是逐行读取文件内容,读到匹配的行就根据指令做操作,不匹配就跳过。
awk awk是专门为文本处理设计的编程语言,是一门数据驱动的编程语言,与sed类似都是以数据驱动的行处理软件,主要用于数据扫描、过滤、统计汇总工作,数据可以来自标准输入、管道或者文件。
tee Linux tee命令用于读取标准输入的数据,并将其内容输出成文件。tee指令会从标准输入设备读取数据,将其内容输出到标准输出设备,同时保存成文件。
ldconfig ldconfig是一个动态链接库管理命令,其目的为了让动态链接库为系统所共享。 主要用途: 默认搜寻/lilb和/usr/lib,以及配置文件/etc/ld.so.conf内所列的目录下的库文件。搜索出可共享的动态链接库,库文件的格式为:lib***.so.**,进而创建出动态装入程序(ld.so)所需的连接和缓存文件。
补充: Linux下的动态链接库文件扩展名为so,可以用多个文件生成一个动态链接库。Linux下的静态库文件扩展名为.a。
curl 用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。
diff 以逐行的方式,比较文本文件的异同。
ldconfig 设置系统的动态库路径的,设置完成后,新的shell窗口也能起作用。
ldd 在linux中, ldd是list, dynamic, dependencies的缩写, 意思是, 列出动态库依赖关系。

1、复制与拷贝

(1)Linux与Linux:scp

本地主机文件复制到远程主机: 
scp loclal_file_name remote_name@ip:remote_file_name
本地主机目录复制到远程主机:
scp -r loclal_dir_name remote_name@ip:remote_dir_name
远程主机文件复制到本地主机:
scp remote_name@ip:remote_file_name local_file_name
远程主机目录复制到本地主机:
scp -r remote_name@ip:remote_dir_name local_dir_name

(2)Windows与Linux:pscp。(其他方法:Windows安装FileZilla、WinSCP软件)。

*用法*:
  pscp [选项] [用户名@]主机:源文件 目标文件
  pscp [选项] 源文件 [源文件……] [用户名@]主机
  pscp [选项] -ls 用户名@主机:文件空间
*常见选项*:
  -l:    用指定的用户连接
  -p:  传输时保留源文件属性
  -P:  指定连接的端口(默认22)
  -pw:指定登录用户的密码(显示的)
  -q:  传输时不显示任何提示消息
  -r:  递归拷贝整个目录
  -v:  传输时显示提示消息
  -V:  打印版本信息并退出
*使用方式*:
 开始→运行→cmd,在DOS命令环境下,切换到pscp.exe所在目录,然后调用
 建议将pscp.exe放到C:\WINDOWS\system32中,然后就可以在任何地方调用
 注意:pscp会使用Windows登陆的用户名,因此需要指定Linux用户名。
*常用场景*:
 (1)本地文件复制到远程服务器
  格式:pscp local_file user@ip:/remote_dir
  使用dodo用户将D盘下的linuxidc.txt文件上传到IP地址为192.168.100.250的linux主机的/linuxidc/目录下
  pscp -l dodo D:\linuxidc.txt 192.168.100.250:/linuxidc
  pscp D:\linuxidc.txt [email protected]:/linuxidc
  注:
  <1>以上两条语句作用相同
    <2> "-l dodo"要在file之前
 (2)本地目录以及目录中的文件复制到远程服务器
  格式:pscp local_dir user@ip:/remote_dir
  使用dodo用户将D盘下的hello目录上传到IP地址为192.168.100.250的linux主机的/linuxidc/目录下
  pscp -r D:\hello [email protected]:/linuxidc
 (3)远程服务器中的文件复制到本地
  格式:pscp user@ip:/file \local_dir
  使用dodo用户将Linux主机中/linuxidc目录下的文件test.sql保存到本地
  pscp [email protected]:/linuxidc/test.sql D:\hello\test.sql
 (4)远程服务器中的目录以及目录中的文件复制到本地
  格式:pscp -r user@ip:/remote_dir \local_dir
  使用dodo用户将Linux主机中/linuxidc目录以及目录中的文件保存到本地
  pscp -r [email protected]:/linuxidc/hello1 D:\hello2
  这样就会把hello1目录保存在hello2目录下

2、创建链接 ln

具体用法是:sudo ln [参数] [源文件或目录] [目标文件或目录] 
举例:
当前目录是/local,而我经常要访问/usr/local/linux/work
那么我就可以使用在local下建立一个文件linkwork,
然后sudo ln -s /usr/local/linux/work  /local/linkwork,
即建立两者之间的链接。

删除链接
rm -rf   symbolic_name  !!! 注意!!!不是rm -rf   symbolic_name/ 
那么上面我就是rm -rf   /local/linkwork。

链接(可点击)有两种,一种被称为硬链接(Hard Link),另一种被称为符号链接(软连接)(Symbolic Link)。建立硬链接时,链接文件和被链接文件必须位于同一个文件系统中,并且不能建立指向目录的硬链接。而对符号链接,则不存在这个问题。默认情况下,ln产生硬链接。如果给ln命令加上- s选项,则建立符号链接。如果[链接名]已经存在但不是目录,将不做链接。[链接名]可以是任何一个文件名(可包含路径),也可以是一个目录,并且允许它与“目标”不在同一个文件系统中。如果[链接名]是一个已经存在的目录,系统将在该目录下建立一个或多个与“目标”同名的文件,此新建的文件实际上是指向原“目标”的符号链接文件。

3、远程登录连接(桌面)

3.1 请点击–> Windows远程访问Ubuntu(Linux)服务器
3.2 请点击–> Windows 远程桌面连接Ubuntu操作以及各种问题解决

4、Linux修改权限

4.1 请点击–> linux系统下修改文件夹目录权限
4.2 请点击–> Linux 文件和文件夹权限操作

5、压缩与解压命令

5.1 请点击–> Linux压缩打包命令——tar、zip、unzip

5.2 请点击–> 解压缩命令tar zip rar

5.3 请点击–> linux 下文件加密压缩和解压的方法

压缩文件格式 解压命令
*.tar tar –xvf
*.gz gzip -d 或者 gunzip
*.tar.gz 和 *.tgz tar –xzf
*.bz2 bzip2 -d 或者 bunzip2
*.tar.bz2 tar –xjf
*.Z uncompress
*.tar.Z tar –xZf
*.rar unrar e
*.zip unzip

6、通配符

通配符 使用说明

7、文件系统与磁盘管理

请点击–> ubuntu: du指令
请点击–> linux命令详解之df命令
请点击–> linux的dev目录系列之设备详解–loop详解

8、计算机网络

ubuntu查看IP地址和端口号

sudo ifconfig -a  #查看IP
sudo netstat -an  #查看端口号

二、库安装与环境搭建

请点击–> linux C/C++开发环境搭建指南

查看各个库是否安装成功,命令:pkg-config --modversion opencv

1、编译安装opencv

ubuntu中怎么卸载软件 ubuntu如何卸载软件

1、如果是从Ubuntu Software Center安装的,进入center,找到那个软件,很明显会有“卸载”的按钮;

2、如果是tar、gz、zip之类解压就能用,免安装的,直接删除;

3、如果是自己下载的deb包安装,或者通过apt-get install安装、或者通过添加ppa安装,使用sudo apt-get autoremove software-name来卸载,为了一次卸干净,可以再加上一个参数sudo apt-get autoremove --purge software-name

4、如果是通过configure然后make & make install,也可以直接删除;
请点击–> Ubuntu18.04安装opencv(编译安装)
请点击–> opencv编译安装全解 ,其中,包含附加QT等

# 安装依赖包
sudo apt-get install build-essential 
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff-dev libjasper-dev libdc1394-22-dev

# 可尝试一行命令安装
sudo apt install libopencv-dev

1.1 程序所使用的编译命令:

g++ -o main main.cpp `pkg-config opencv --cflags --libs`

1.2 请点击–> Ubuntu20.04编译安装Opencv4.5.5

2、Eigen3库安装

Eigen只包含头文件,因此它不需要实现编译,只需要引入头文件即可编译项目。
Eigen头文件的默认安装位置是:“/usr/local/include/eigen3”
在很多程序中include时经常使用#include 而不是使用#include 所以要做如下处理
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include
(1)源码安装(推荐)
eigen官网下载、git下载eigen源码

cd eigen-3.3.7
mkdir build
cd build
cmake ..
sudo make install
//安装后,头文件安装在/usr/local/include/eigen3/
//移动头文件
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include

(2)命令安装(不推荐)
这种方法安装eigen库,比较简单,但是eigen不一定是最新版本。

sudo apt-get install libeigen3-dev
//若默认安装的是/usr/local/include/eigen3/Eigen 下,将Eigen文件夹拷贝一份到/usr/local/include 下
sudo cp -r /usr/local/include/eigen3/Eigen /usr/local/include 
sudo cp -r /usr/local/include/eigen3 /usr/include
查看eigen3版本
pkg-config --modversion eigen3

(3)卸载eigen3

1、查看eigen3位置相关文件
sudo updatedb
locate eigen3
2、删除eigen3相关文件
sudo rm -rf /usr/include/eigen3
sudo rm -rf /usr/lib/cmake/eigen3
sudo rm -rf /usr/local/include/eigen3
sudo rm -rf /usr/share/doc/libeigen3-dev 
sudo rm -rf /usr/local/share/pkgconfig/eigen3.pc /usr/share/pkgconfig/eigen3.pc /var/lib/dpkg/info/libeigen3-dev.list /var/lib/dpkg/info/libeigen3-dev.md5sums
sudo rm -rf /usr/local/lib/pkgconfig/eigen3.pc
sudo rm -rf /usr/local/share/eigen3
3、查询是否已经删除
pkg-config --modversion eigen3

3、ROS安装

3.1 ROS安装

【推荐官网安装步骤->可点击】

3.1.1 请点击–>ubuntu18.04 ros安装
3.1.2 请点击–>ubuntu 20.04 ros安装
默认安装opencv和Eigen3

#一行代码解决,ubuntu 20.04 ros安装
wget http://fishros.com/install -O fishros && bash fishros

3.2 ros相关知识

3.2.1 请点击–> rosbag的命令

4、CMake编译相关

4.1 CMake安装
请点击–>Windows下CMake安装
4.2 请点击–> CMakeLists.txt 语法介绍与实例演练

4.3 请点击–> “轻松搞定CMake”系列之CMakeLists文件编写语法规则详解

4.4 请点击–> 通俗理解动态库与静态库区别
CMake系列(一) CMake如何入门
CMake系列(二) CMake简单的例子
CMake系列(三) CMake编译出静态库和动态库并使用
CMake系列(四) CMake使用install方法的使用
CMake系列(五) CMake配置编译类型
CMake系列(六) CMake含参编译
CMake系列(七) CMake 使用find_package()搭建简单的QT工程
CMake系列(八) CMake 多级目录
CMake系列(九) CMake 头文件接口库编译及使用
CMake系列(十) CMake include的使用

#内容示例:  CMakeLists.txt
cmake_minimum_required(VERSION 3.5)
project(project_name)
set(CMAKE_CXX_STANDARD 14)
find_package(yaml-cpp REQUIRED)
include_directories( ${YAML_CPP_INCLUDE_DIRS} )

find_package(catkin REQUIRED COMPONENTS roscpp cv_bridge rosbag image_transport sensor_msgs)
include_directories( ${catkin_INCLUDE_DIRS} )

find_package(PCL 1.8 REQUIRED)
include_directories(${PCL_INCLUDE_DIRS})

find_package( G2O REQUIRED )
include_directories(${G2O_INCLUDE_DIRS})

find_package( Ceres REQUIRED)
include_directories( ${CERES_INCLUDE_DIRS})

find_package(Eigen3)
include_directories(${EIGEN3_INCLUDE_DIR})

find_package(OpenCV 3 REQUIRED)
include_directories( ${OpenCV_INCLUDE_DIRS} )

include_directories(${CMAKE_CURRENT_LIST_DIR} /thirdty/aprde)
file(GLOB SOURCES CONFIGURE_DEPENDS 
				file_name_1/src/*.cpp)
add_executable(file_name_1 
				${SOURCES})
target_link_libraries(file_name_1
				${YAML_CPP_LIBRARIES}
				${catkin_LIBRARIES}
				${PCL_LIBRARIES}
				${OpenCV_LIBRARIES}
				${Eigen3_LIBRARIES}
				${CERES_LIBRARIES}
				${G2O_LIBRARIES}
				${CMAKE_CURRENT_LIST_DIR} /thirdparty/apri3/lib/libapriltagd.so)

5、PCL安装

5.1 请点击–> Ubuntu18.04安装PCL(详细教程)(编译安装)

Ubuntu 20 安装PCL的依赖包
提示:如果安装依赖包有问题,请一个一个执行
sudo apt-get update  
sudo apt-get install git build-essential linux-libc-dev
sudo apt-get install cmake 
sudo apt-get install cmake-gui
sudo apt-get install libusb-1.0-0-dev libusb-dev libudev-dev
sudo apt-get install mpi-default-dev openmpi-bin openmpi-common 
sudo apt-get install libflann1.9 libflann-dev
sudo apt-get install libeigen3-dev  # 这个需要自己下载正确版本安装
sudo apt-get install libboost-all-dev
sudo apt-get install libvtk9.0-qt libvtk9.0 libvtk9-qt5-dev
sudo apt-get install libqhull* 
sudo apt-get install libgtest-dev
sudo apt-get install freeglut3-dev pkg-config
sudo apt-get install libxmu-dev libxi-dev
sudo apt-get install mono-complete
sudo apt-get install openjdk-8-jdk openjdk-8-jre
#对于ubuntu 16.04以上,可以使用一行命令进行安装
sudo apt install libpcl-dev

6、yaml-cpp安装

请点击–> yaml-cpp安装

在ubuntu上安装yaml-cpp的过程:

git clone https://github.com/jbeder/yaml-cpp.git
进入yaml-cpp目录后,
mkdir build
cd build
cmake -DBUILD_SHARED_LIBS=ON ..
make
sudo make install

安装后,头文件位于:/usr/local/include
库文件位于:/usr/local/lib/libyaml-cpp.so

7、kubeflow安装

请点击–> Ubuntu 18.04安装kubernetes 18.0(kubeflow)

8、popt库

8.1 请点击–> popt 使用说明

9、Qt安装

请点击–> 在Ubuntu系统上Qt安装和配置

查看ubuntu下Qt的版本

打开命令行输入:

qmake -v

示例:
在这里插入图片描述

10、git安装与相关知识

Linux 【学习备忘】_第1张图片
说明:

workspace:工作区
staging area:暂存区/缓存区
local repository:版本库或本地仓库
remote repository:远程仓库

请点击–> Ubuntu 20.04下git的安装与基本使用
Git 常用的是以下 6 个命令:git clone、git push、git add 、git commit、git checkout、git pull。

Git 基本操作

gitlab如何删除项目

git init    # 初始化仓库
git add .    # 添加文件到暂存区
git commit -m “commit” # 提交暂存区到本地仓库。当使用git commit而不使用git commit -m命令(没有带-m参数)时,会进入到vim编辑器中。
git push <远程主机名> <本地分支名>:<远程分支名> # 上传远程代码并合并
##  git push origin master
git status # 查看仓库当前的状态,显示有变更的文件。
git rm <file> # 将文件从暂存区和工作区中删除。
git log # 查看历史提交记录。 退出:英文状态下 按 q 可以退出git log 状态。
git log --oneline # 用 --oneline 选项来查看历史记录的简洁的版本。
git blame <file> # 以列表形式查看指定文件的历史修改记录。

11、Ubuntu安装Anaconda

11.1 请点击–> 如何在Ubuntu 20上安装anaconda

ubuntu下命令行打开anaconda界面

source ~/anaconda3/bin/activate
anaconda-navigator

Ubuntu关闭anaconda自动进入base虚拟环境

conda config --set auto_activate_base false

11.2 请点击–> Anaconda创建、删除虚拟环境以及一些conda常用指令
conda环境下面有pytorch,这个时候使用jupyter notebook是没有torch的,使用以下命令:

conda install nb_conda 

用于添加conda环境,目的就是添加有pytorch的python环境。打开jupyter notebook需在conda虚拟环境中输入以下命令:

jupyter notebook

11.X 请点击–> pycharm中导入rospy包

12、NLopt库(非线性优化)

请点击–>NLopt官网文档 NLopt(nonlinear optimization)

12.1 请点击–> 非线性优化–NLopt原理介绍及使用方法

库安装链接:https://github.com/stevengj/nlopt

NLopt 包含很多种不同的优化算法,在头文件里面算法名称的枚举类型为:

  enum algorithm {
     GN_DIRECT = 0,
     GN_DIRECT_L,
     GN_DIRECT_L_RAND,
     GN_DIRECT_NOSCAL,
     GN_DIRECT_L_NOSCAL,
     GN_DIRECT_L_RAND_NOSCAL,
     GN_ORIG_DIRECT,
     GN_ORIG_DIRECT_L,
     GD_STOGO,
     GD_STOGO_RAND,
     LD_LBFGS_NOCEDAL,
     LD_LBFGS,
     LN_PRAXIS,
     LD_VAR1,
     LD_VAR2,
     LD_TNEWTON,
     LD_TNEWTON_RESTART,
     LD_TNEWTON_PRECOND,
     LD_TNEWTON_PRECOND_RESTART,
     GN_CRS2_LM,
     GN_MLSL,
     GD_MLSL,
     GN_MLSL_LDS,
     GD_MLSL_LDS,
     LD_MMA,
     LN_COBYLA,
     LN_NEWUOA,
     LN_NEWUOA_BOUND,
     LN_NELDERMEAD,
     LN_SBPLX,
     LN_AUGLAG,
     LD_AUGLAG,
     LN_AUGLAG_EQ,
     LD_AUGLAG_EQ,
     LN_BOBYQA,
     GN_ISRES,
     AUGLAG,
     AUGLAG_EQ,
     G_MLSL,
     G_MLSL_LDS,
     LD_SLSQP,
     LD_CCSAQ,
     GN_ESCH,
     NUM_ALGORITHMS /*不是一种算法 只是算法的数量*/
  };

命名规律:

G/L代表的就是 全局(global)或者局部(local)优化
N/D代表的就是 不需导数 或者 需要导数 的优化

例如:LN_COBYLA 就是用的 COBYLA 算法 ,然后该算法用于局部(L)无需导数(N)的优化

13、ceres库 (非线性优化)

官网网址 Ceres主要解决两种问题:
1.具有边界约束的非线性最小二乘问题。
2.一般无约束优化问题。

由于ceres库和eigen库有一定的版本对应关系,因此很容易在编译期间报错。
打开home下安装ceres-solver的文件夹,然后打开ceres-solver的package.xml文件,在里面可以看到版本号。

ceres2.1.0对应eigen版本3.3.7

13.1 ubuntu 20.04 安装 ceres库

13.2 一文助你Ceres 入门——Ceres Solver新手向全攻略

待优化问题:
在这里插入图片描述

评估函数CostFunction为 :f(x)=10−x

ceres求解步骤

1、定义CostFuntion,通过函数重载运算操作符定义代价函数,就是形式里面的f(x)
2、构建Problem,设置代价函数,AutoDiffCostFunction将刚刚建立的CostFunctor 结构的一个实例作为输入,自动生成其微分并且赋予其一个CostFunction 类型的接口。调用AddResidualBlock将误差添加到目标函数中,由于优化需要梯度,我们有三种选择:
1) 使用Ceres自带的自动求导(Auto Diff)
2)使用数值求导(Numeric Diff)
3)使用自己求导的解析求导形式,提供给ceres。
3、配置Solver,在options里可以配置各种优化的选项,可以选择Line Search或者Trust Region、迭代次数、步长等等
4、定义Summary
5、开始优化Solve
6、输出结果SUmmary.BriefReport

14、Matlab 安装

14.1 ubuntu20.04安装matlab2021b

15、vmware虚拟机-安装

Ubuntu 系统下面安装 VMware虚拟机
VM安装报错Before you can run VMware several modules must be compiled and loaded into the running kernel
vmware16pro许可证密钥最新

ZF3R0-FHED2-M80TY-8QYGC-NPKYF

YF390-0HF8P-M81RQ-2DXQE-M2UT6

ZF71R-DMX85-08DQY-8YMNC-PPHV8

解决VMware报错“could not open /dev/ vmmon,Please make sure that the kernel module `vmmon’ is loaded.”的问题

16、pangolin库-安装

Pangolin是一个基于OpenGL的轻量级开源绘图库,在许多开源SLAM算法(例如ORB-SLAM)中都会用来进行可视化操作。

ubuntu 安装Pangolin 过程

SLAM可视化绘图库——Pangolin教程(一)
SLAM可视化绘图库——Pangolin教程(二)
SLAM可视化绘图库——Pangolin教程(三)

17、Ubuntu更换系统源和pip源(换源)

1、Ubuntu更换系统源和pip源

18、LCM通信库-安装

LCM(Lightweight Communications and Marshalling,轻量级通信与数据封送库)
请点击—> 一次成功流水账-安装LCM并跑通通信示例
请点击—> LCM通信模块简介
请点击—> 自动驾驶消息传输机制LCM的安装与使用

19、Poco库安装

请点击—> 【Poco学习笔记】Poco库介绍
请点击—> Ubuntu20.04安装POCO
请点击—> Poco库完全使用手册-教程
请点击—> POCO C++ Libraries-from官方

20、Boost库安装

请点击—> ubuntu查看、安装、更新、卸载boost库 指定目录

21、ffmpeg相关

请点击—> linux平台ffmpeg+h.264的本机移植和交叉编译

请点击—> Linux ./configure 常用命令

X、GNU编译-CMake

请点击—> Linux下GCC编译过程及静态链接库和动态链接库
请点击—> 【计算机基础】静态链接与动态链接
请点击—> LD_LIBRARY_PATH详解

LD_LIBRARY_PATH是Linux环境变量名,该环境变量主要用于指定查找共享库(动态链接库)时除了默认路径之外的其他路径。

请点击—> gcc 命令详解及最佳实践
请点击—> gcc编译参数-fPIC的一些问题

X+1、各个开源库对应版本问题,如何解决?



三、Shell解释器

shell是一个程序,可以称之为壳程序,用于用户与操作系统进行交互。用来区别与核,相当于是一个命令解析器。
shell脚本的第一行一般会写有以下字样:

#!/bin/bash
或者

#!/bin/sh
或者
#!/bin/awk

其中,#! 是一个特殊的表示符,其后,跟着解释此脚本的shell路径。如果一个脚本在第一行没有加上#!+shell路径这一行,那么,脚本会默认当前用户登录的shell,为脚本解释器。查看Linux默认使用的shell类型和支持的shell类型。

1、bash

1、请点击–> Linux下shell脚本:bash的介绍和使用(详细)
2、请点击–> Bash Shell编程基础
请点击–> source ./ 和 . 的区别

2、bash

3、bash



四、Linux中tools(工具)

1、内存泄露检查工具

请点击–> Linux下几款C++程序中的内存泄露检查工具

2、修改密码

sudo passwd username          #修改用户密码
sudo passwd root              #修改root密码

3、修改主机名

请点击–> Ubuntu之修改主机名

终端输入:sudo gedit /etc/hostname

4、Debug调试

4.1 gdb调试 GDB Documentation 官网

请点击–> linux下gdb调试方法与技巧整理

请点击–> LINUX下GDB的使用方法(简单说说)

4.2 vscode调试

请点击–> Ubuntu+cmake+vscode断点调试

4.3 Clion调试(集成开发环境)

等等,请细察

5、请点击–> Ubuntu -必备的22款软件,带详细安装
请点击–> Ubuntu20.04安装微信,QQ,企业微信

6、请点击–> ubuntu20.04更改鼠标滚动速度

7、Ubuntu下安装wps2019步骤以及字体安装

一、WPS下载安装
(1)去 wps 官网 link 下载安装包,下载64 位deb 格式;
(2)在下载的目录下打开终端,输入以下命令进行安装:
sudo dpkg -i wps-office_11.1.0.9522_amd64.deb
二、字体安装
(1)下载缺失的字体,下载地址:
链接:百度云盘link
提取码:h9cs
(2)下载后解压字体包,进入文件夹,将字体文件拷贝到系统目录下。
sudo unzip wps_symbol_fonts.zip -d /usr/share/fonts
(3)生成字体的索引信息
sudo mkfontscale
sudo mkfontdir
(4)更新字体缓存
sudo fc-cache
完成后打开 WPS,即可使用。

8、Ubuntu卸载软件:3种卸载方式

9、ubuntu20.10创建QT应用程序快捷方式 Terminal中输入命令直接打开QtCreator

10、安装snap及snap常安装软件

11、ubuntu安装flameshot截图软件,并设置快捷键,也可通过software商城进行安装。

12、ubuntu20.04系统用.run文件安装nvidia显卡驱动

13、完美实现windows远程连接ubuntu18.04(用vnc),并破解需要license的要求

14、查看本机系统核心数 Linux中soft nproc 、soft nofile和hard nproc以及hard nofile配置

e.g:
nproc 

15、USB外接摄像头使用
ubuntu20.04下外接USB摄像头的使用(使用ROS)
下载源码

使用ros相关工具
git clone https://github.com/bosch-ros-pkg/usb_cam.git

linux opencv打开两个USB摄像头

OpenCV:VideoCapture同时读取两个USB摄像头采集

16、linux系统安装pip及对应包

pip、pip2和pip3区别 :
1、功能 pip 是 Python 包管理工具,该工具提供了对Python包的查找、下载、安装、卸载的功能。
2、pip、pip2和pip3区别
(1)pip和pip2相同,均对应Python2.x版本。
(2)pip3对应Python3.x版本。

请点击–> pip2升级报错 ( def read(rel_path: str) ->str: )
请点击–> Ubuntu离线安装python、pip


嵌入式开发

【丁丁历险记】索引(嵌入式开发、图像开发、服务器部署等)

QNX官网-guidebook

QNX-IPC通信

网络编程

Linux的SOCKET编程详解

【Python】基于OpenCV与UDP实现的视频流传输

X 、Linux系统中常出现的错误及问题(包括使用软件)

来源 错误描述 原因分析 解决办法
mobaXterm ASSERT: “false“ in file qasciikey.cpp, line 501Aborted (core dumped)
Linux系统 ubuntu----sh: 1: pause: not found
Linux系统 解决仓库 “http://ppa.launchpad.net/notepadqq-team/notepadqq/ubuntu focal Release” 没有 Release 文件。
Linux系统 “undefined reference to“ 问题汇总及解决方法 未引用所包含的库
Qt qt5(cmake): asked CMake to find a package configuration file provided by “Qt5Widgets” 找不到Qt对应的库 CMakeLists.txt文件中增加set(CMAKE_PREFIX_PATH “/home/wsh/Qt/5.4/gcc_64”)

X +1、ubuntu系统与centos系统区别

centos系统和Ubuntu系统命令区别以及常见操作

你可能感兴趣的:(linux)