Linux-Ubuntu
- 零、SSH
- 一、Linux常见命令大全
- 二、库安装与环境搭建
- 三、Shell解释器
- 四、Linux中tools(工具)
- 嵌入式开发
- 网络编程
- X 、Linux系统中常出现的错误及问题(包括使用软件)
- X +1、ubuntu系统与centos系统区别
零、SSH
SSH分为客户端 openssh-client 和服务器 openssh-server,可以利用以下命令确认电脑上是否安装了客户端和服务器。
下列命令可验证确认电脑上是否安装了客户端和服务器。
dpkg -l | grep ssh
SSH两种级别的远程登录:口令登陆和公钥登陆。
口令登陆:口令登录非常简单,只需要一条命令,命令格式为: ssh 客户端用户名@服务器ip地址 eg:
ssh ldz@192.168.0.1
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 dodo@192.168.100.250:/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 dodo@192.168.100.250:/linuxidc
(3)远程服务器中的文件复制到本地
格式:pscp user@ip:/file \local_dir
使用dodo用户将Linux主机中/linuxidc目录下的文件test.sql保存到本地
pscp dodo@192.168.100.250:/linuxidc/test.sql D:\hello\test.sql
(4)远程服务器中的目录以及目录中的文件复制到本地
格式:pscp -r user@ip:/remote_dir \local_dir
使用dodo用户将Linux主机中/linuxidc目录以及目录中的文件保存到本地
pscp -r dodo@192.168.100.250:/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 <Eigen/Dense>而不是使用#include <eigen3/Eigen/Dense>所以要做如下处理
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安装与相关知识
说明:
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 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.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 安装
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)中都会用来进行可视化操作。
SLAM可视化绘图库——Pangolin教程(一)
SLAM可视化绘图库——Pangolin教程(二)
SLAM可视化绘图库——Pangolin教程(三)
17、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,即可使用。
9、ubuntu20.10创建QT应用程序快捷方式 Terminal中输入命令直接打开QtCreator
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
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
17、命令行下载视频 annie 工具 from github
嵌入式开发
网络编程
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”) |