搞定锐捷客户端联网问题
使用mentohust
- 获取mentohust客户端
http://code.google.com/p/mentohust/downloads/list
安装
sudo dpkg -i mentohust_0.3.4-1_amd64.deb
sudo mentohust 然后按着步骤走就行
想要修改配置,修改/etc/mentohust.conf 文件就行,一下是我的静态ip
[MentoHUST]
Username=B1707008
Password= TxYNCRcf
Nic=eth3
IP=10.0.120.127
Mask=255.255.255.0
DNS=0.0.0.0
PingHost=0.0.0.0
Timeout=8
EchoInterval=30
RestartWait=15
MaxFail=8
StartMode=0
DhcpMode=0
DaemonMode=1
ShowNotify=5
Version=0.00
DataFile=/etc/mentohust/
DhcpScript=dhclient
https://www.cnblogs.com/yan456jie/p/5369476.html 详细含义
conda 虚拟环境
conda list
conda env list
conda update conda
conda create -n name python=x.x /Anaconda/env
source activate name
source deactivate
conda remove --name env_name package_name
conda create --name new_env_name --clone old_env_name
conda update -all
conda update package_name
conda install --name env_name package_name
(1)编辑 ~/.condarc 文件。
vim ~/.condarc
(2)添加源。
channels:
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/main/
- https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
- defaults show_channel_urls: true
上文中前两个属于anaconda python的基础免费仓库镜像,最后一个属于pytorch的仓库镜像。注意想要下载pytorch要加上第三个镜像地址。
(3)更新源地址。
source ~/.condarc
常用命令
-
终端登录 Linux
ctrl+alt+F1-6 -
帮助
man command
man -f word -
nano file.txt , alt+ M
-
关机 sync 将数据写入磁盘, shutdown -r/h now/20:25 reboot poweroff halt
-
cd ~表示用户的家目录
pwd -P显示链接目录
mkdir -m 单独设置权限 -p 递归创建目录
rmdir /rm -r -
执行文件路径的变量 $PATH echo P A T H 打 印 , P A T H = " PATH 打印,PATH = " PATH打印,PATH="{PATH}:/root" 添加目录
-
ls -a -h显示文件大小 -l -t时间排序 -S大小排序 --color=always --full-time 完整的时间格式
-
cp 复制文件 -i 问一下是否覆盖存在文件 -p 复制文件属性 -r 递归复制 -s 复制成链接文件 -u 目标不存在才复制
-a == drp 复制所有特性 -
rm -f 或略不存在的文件, -l 增加询问 -r 递归删除(很危险).
-
mv 移动文件 -i 询问是否覆盖 -f 不询问直接覆盖 -u 目标更新才会覆盖。 可用于重命名
-
basename dirname 分割路径名和文件名
-
cat 显示文件内容 tac 反向显示 nl 带行号 more less head od
-
torch 修改文件时间或创建新文件 文件存在更改时间为当前,文件不存在就新建文件
-a -c -m -d -t
修改文件属性和权限
chgrp
chown user file
chmod [-R] xyz file (u g o a ± )
chattr 【+=-】 【ASacdisu】文件或目录 修改文件的隐藏属性
S 同步保存 a 只能增加数据不能删除 c 自动文件压缩 i 文件不能删除 s 文件删除后不能恢复 u 可以恢复
lsattr [-adR] 文件或目录 查看文件的属性 -a 显示隐藏的属性 -d 对目录不显示文件仅显示目录的属性
file file 观察文件的基本信息
命令与文件的查找
which -a command 将所有有 PATH 目录中可以找到的命令都列出。
whereis -l 查询的目录 -b -m -s 只找二进制、manual路径下的、source源文件 -u 除了这三个其他的
主要针对 /bin /sbin 下的执行文件和 /usr/share/man 下的man page 文件下
local -l 忽略大小写 -c 不输出文件名只计算文件数量 -l int 输出几行 updatedb 更新查找的数据库
find path -name filename -type TYPE -perm mode
Typora 二进制包的安装
下了一个二进制的包。。结果不会安装,记录下来以后用
tar -xzvf Typora-linux-x64.tar.gz # 解压
touch Typora.desktop # 建立个文件
nano Typora.desktop # 编辑这个文件
# 写入
[Desktop Entry]
Name=Typora
GenericName=Editorubuntu / linux
Comment=Typroa - a markdown editor
Exec="Typora的绝对路径" %U # 注意路径
Icon=图标的绝对路径
Terminal=false
Categories=Markdown;ux
StartupNotify=false
Type=Application
sudo mv Typora.desktop /usr/share/applications # 移动文件
jupyter notebook 修改工作目录
安装
sudo pip3 install notebook
然后 jupyter notebook 就可以使用了。
第一步
jupyter notebook --generate-config --allow-root
这样在/home/你的用户名/.jupyter/下生成了配置文件
第二步
sudo vim /home/你的用户名/.jupyter/jupyter_notebook_config.py
第三步
找到#c.NotebookApp.notebook_dir=’‘这一行
快速的方法是在vim的普通模式下输入
/#c.NotebookApp.notebook_dir 回车
光标定位到这一行,去掉前面的#字符,在’'中输入你想要你的jupyter notebook的工作目录即可
卸載軟件
1、查看安装列表:dpkg --list
2、卸载:sudo apt-get --purge remove 软件名
在win10+Ubuntu双系统下,完美卸载Ubuntu
- 使用diskgenius 清除ubuntu系统使用的分区。
- 删除开启引导启动项。管理员身份运行命令提示符,
diskpart
list disk
select disk 1 # 选择win安装盘
list partition
select partition 1 # 选择系统分区
assign letter=J # 分配盘符
# 管理员身份打开记事本,打开界面删除分配盘J 中EFI文件下的ubuntu
remove letter=J # 删除分配的盘符
一些配置
1. 设置python 默认打开 python3
sudo rm /usr/bin/python
sudo ln -s /usr/bin/python3 /usr/bin/python
2. sudo ln -s /usr/bin/pip3 /usr/bin/pip # pip 默认打开pip3
3. 更换Pip 源
mkdir ~/.pip/
cd .pip
sudo gedit pip.conf
写入
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
pip config list # 查看当前源
4. pip install pack
pip uninstall pack
pip install -r requirements.txt
pip install --upgrade pack
pip list
terminator
命令 说明
Ctrl+Shift+O 水平分割窗口
Ctrl+Shift+E 垂直分割窗口
F11 全屏/退出全屏
Ctrl+Shift+C 复制
Ctrl+Shift+V 粘贴
Ctrl+Tab/shift+tab 在分割的各窗口之间切换
Ctrl+Shift+X 将分割的某一个窗口放大至全屏使用
Ctrl+Shift+Z 从放大至全屏的某一窗口回到多窗格界面
Ctrl+Shift+F 搜索
Ctrl+Shift+W 关闭当前
Ctrl+Shift+Q 关闭所有
应对显存占满的问题
fuser -v /dev/nvidia0 # 查看进程
kill -9 $pid
watch -n 0.1 nvidia-smi
安装Python3.6
cd /usr/local
# wget --no-check-certificate https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tgz
# tar -xzvf Python-3.6.5.tgz
# cd Python-3.6.5
# sudo apt-get install build-essential
# sudo ./configure --prefix=/usr/local/python3.6.5
# sudo make
# sudo make install
使用中Pip 出现ssl 问题,修改/usr/local/Python-3.6.5/Modules/Setup文件如下:
virtualenv
virtualenv 简单使用 virtualenv -p /usr/bin/python2.7 venv ; source venv/bin/activate ; deactivate
$ virtualenv [OPTIONS] DEST_DIR 选项: –version 显示当前版本号。
-h, –help 显示帮助信息。
-v, –verbose 显示详细信息。
-q, –quiet 不显示详细信息。
-p PYTHON_EXE, –python=PYTHON_EXE 指定所用的python解析器的版本,比如 –python=python2.5 就使用2.5版本的解析器创建新的隔离环境。
默认使用的是当前系统安装(/usr/bin/python)的python解析器 –clear
清空非root用户的安装,并重头开始创建隔离环境。 –no-site-packages
令隔离环境不能访问系统全局的site-packages目录。 –system-site-packages
令隔离环境可以访问系统全局的site-packages目录。 –unzip-setuptools
安装时解压Setuptools或Distribute –relocatable
重定位某个已存在的隔离环境。使用该选项将修正脚本并令所有.pth文件使用相当路径。 –distribute
使用Distribute代替Setuptools,也可设置环境变量VIRTUALENV_DISTRIBUTE达到同样效要。
–extra-search-dir=SEARCH_DIRS
用于查找setuptools/distribute/pip发布包的目录。可以添加任意数量的–extra-search-dir路径。
–never-download 禁止从网上下载任何数据。此时,如果在本地搜索发布包失败,virtualenv就会报错。
–prompt==PROMPT 定义隔离环境的命令行前缀。 “`
修改root密码
sudo passwd root
安装tf1
conda create -n tf1 python=3.6
conda activate tf1
conda install tensorflow-gpu=1.12.0
# InvalidVersionSpecError: Invalid version spec: =2.7 报错 ,删除.condarc 文件中的删除带有:conda-forge 的那一行
# cuda cudnn 会自动安装
导入tf出现in a future version of numpy, it will be understood as (type, (1,)) / '(1,)type'.
numpy版本过高
pip install numpy==1.16.4
Ubuntu 20 编译安装opencv4
记录记录,,,太烦了 参考:脑补链接
https://github.com/opencv 去官网下包(两个版本要一致)然后解压,然后安装依赖项(随便百度都有,注意如果要使用Python3需要下点不一样的)
sudo apt install cmake-qt-gui # 使用窗口来编译
qbx@QBX:~/Downloads$ cd opencv-4.5.2/
然后 mkdir build 放置编译的文件
qbx@QBX:~/Downloads/opencv-4.5.2$ cmake-gui ..
两个路径对应
选择:
CMAKE_BUILD_TYPE : Release
OPENCV_EXTRA_MODULES_PATH:/home/qbx/Downloads/opencv_contrib-4.5.2/modules # 目录
用来使用pkg-config (opencv4默认不生成)
如果想用cuda cudnn 之类的,百度一下在编译的时候也选上。
然后点击Configure 完事后点击Generate。。。我记得我编译的时候有一些文件没有下载成功,但没有影响。
然后cd build/ 然后make -j4 。中间有错误就多试几次。这样就安装好了
sudo make install
opencv环境配置:
sudo vim /etc/ld.so.conf.d/opencv.conf
写入 /usr/local/lib
sudo ldconfig
sudo vim /etc/bash.bashrc
在末尾加上:
PKG_CONFIG_PATH=$PKG_CONFIG_PATH:/usr/local/lib/pkgconfig
export PKG_CONFIG_PATH
reboot
测试:
注意是 opencv4 啊
pkg-config --cflags --libs opencv4
外面的不是单引号,是` 不知道叫啥。
CMakeLists.txt 文件,,,也可以用这个编译(例子里嫖来的),
# cmake needs this line
cmake_minimum_required(VERSION 3.1)
# Define project name
project(opencv_example_project) # 项目名称
# Find OpenCV, you may need to set OpenCV_DIR variable
# to the absolute path to the directory containing OpenCVConfig.cmake file
# via the command line or GUI
find_package(OpenCV REQUIRED)
# If the package has been found, several variables will
# be set, you can find the full list with descriptions
# in the OpenCVConfig.cmake file.
# Print some message showing some of them
message(STATUS "OpenCV library status:")
message(STATUS " config: ${OpenCV_DIR}")
message(STATUS " version: ${OpenCV_VERSION}")
message(STATUS " libraries: ${OpenCV_LIBS}")
message(STATUS " include path: ${OpenCV_INCLUDE_DIRS}")
# Declare the executable target built from your sources
add_executable(test.o test.cpp) # 改成源文件和目标文件就行
# Link your application with OpenCV libraries
target_link_libraries(test.o PRIVATE ${OpenCV_LIBS}) # 链接这里也要改
### 使用
21qbx@QBX:~/Desktop/c++$ cmake .
-- OpenCV library status:
-- config: /usr/local/lib/cmake/opencv4
-- version: 4.5.2
-- libraries: opencv_calib3d;opencv_core;opencv_dnn;opencv_features2d;opencv_flann;opencv_gapi;opencv_highgui;opencv_imgcodecs;opencv_imgproc;opencv_ml;opencv_objdetect;opencv_photo;opencv_stitching;opencv_video;opencv_videoio;opencv_alphamat;opencv_aruco;opencv_bgsegm;opencv_bioinspired;opencv_ccalib;opencv_cudaarithm;opencv_cudabgsegm;opencv_cudacodec;opencv_cudafeatures2d;opencv_cudafilters;opencv_cudaimgproc;opencv_cudalegacy;opencv_cudaobjdetect;opencv_cudaoptflow;opencv_cudastereo;opencv_cudawarping;opencv_cudev;opencv_datasets;opencv_dnn_objdetect;opencv_dnn_superres;opencv_dpm;opencv_face;opencv_freetype;opencv_fuzzy;opencv_hdf;opencv_hfs;opencv_img_hash;opencv_intensity_transform;opencv_line_descriptor;opencv_mcc;opencv_optflow;opencv_phase_unwrapping;opencv_plot;opencv_quality;opencv_rapid;opencv_reg;opencv_rgbd;opencv_saliency;opencv_shape;opencv_stereo;opencv_structured_light;opencv_superres;opencv_surface_matching;opencv_text;opencv_tracking;opencv_videostab;opencv_wechat_qrcode;opencv_xfeatures2d;opencv_ximgproc;opencv_xobjdetect;opencv_xphoto
-- include path: /usr/local/include/opencv4
-- Configuring done
-- Generating done
-- Build files have been written to: /home/qbx/Desktop/c++
qbx@QBX:~/Desktop/c++$ make
[100%] Built target test.o
VScode中配置opencv c++
https://blog.csdn.net/sunzhao1000/article/details/103185875/ 参考
安装c++ 插件,打开一个文件夹,新建一个文件
#include <opencv2/opencv.hpp>
#include <iostream>
using namespace cv;
int main()
{
std::cout<<"2";
Mat img = imread("9.png");
std::cout<<"1";
imshow("img",img);
Mat img_gray;
cvtColor(img,img_gray,COLOR_BGR2GRAY);
imshow("gray",img_gray);
waitKey(0);
return 0;
}
Debug -> Open Configurations -> 打开备选框 -> C++(GDB/LLDB) -> g++ build and debug active file
建立launch.json文件,修改:
{
"version": "0.2.0",
"configurations": [
{
"name": "g++ build and debug active file",
"type": "cppdbg",
"request": "launch",
"program": "${fileDirname}/${fileBasenameNoExtension}",
"args": [],
"stopAtEntry": false,
"cwd": "${workspaceFolder}",
"environment": [],
"externalConsole": true, # 弹出命令窗口
"MIMode": "gdb",
"setupCommands": [
{
"description": "Enable pretty-printing for gdb",
"text": "-enable-pretty-printing",
"ignoreFailures": true
}
],
"preLaunchTask": "g++ build active file",
"miDebuggerPath": "/usr/bin/gdb"
}
]
}
点击F5调试,会报错,选择配置任务,在备选框中选择C/C++:cpp build active file选项,则新建一个task.json文件。
修改:
{
//> 编译单个文件
"version": "2.0.0",
"tasks": [
{
"type": "shell",
"label": "g++ build active file", // 要与launch 中一样preLaunchTask
"command": "g++",
"args": [
"-g", "-std=c++11", "${file}", "-o", "${fileDirname}/${fileBasenameNoExtension}",
"`pkg-config","--libs","--cflags","opencv4`", # 注意这个用法,编译的参数
],
"options": {
"cwd": "/usr/bin"
},
"problemMatcher": [
"$gcc"
],
"group": "build"
}
]
// //> 编译多个文件
// "version": "2.0.0",
// "tasks": [
// {
// "type": "shell",
// "label": "g++ build active file",
// "command": "g++",
// "args": [
// "-g",
// "-std=c++11",
// "${fileDirname}/*.cpp",
// "-o",
// "${fileDirname}/${fileBasenameNoExtension}",
// ],
// "options": {
// "cwd": "/usr/bin"
// },
// "problemMatcher": [
// "$gcc"
// ],
// "group": "build"
// }
// ]
}
Ctrl + Shift + P 打开搜索框,键入c++,会出现备选项目,选择图示Edit configurations (JSON)(多找找)
进入c_cpp_properties.json文件内进行配置修改。修改如下:
{
"configurations": [
{
"name": "Linux",
"includePath": [
"${workspaceFolder}/**",
"/usr/local/include/opencv4"
],
"defines": [],
"compilerPath": "/usr/bin/gcc",
"cStandard": "c11",
"cppStandard": "c++17",
"intelliSenseMode": "clang-x64"
}
],
"version": 4
} // 将include的头文件所在路径和函数库的路径设置给编译器。
ok
顺便修改一下code runner 这个插件。设置里找Code-runner: Executor Map,然后编辑settings.json ,修改cpp的部分
"cpp": "cd $dir && g++ $fileName -o $fileNameWithoutExt `pkg-config --libs --cflags opencv4` && $dir$fileNameWithoutExt",
ssh文件传送
- scp username@servername:/path/filename /var/www/local_dir(本地目录) 从服务器上下载文件
- scp /path/filename username@servername:/path 上传本地文件到服务器
- scp -r username@servername:/var/www/remote_dir/(远程目录) /var/www/local_dir(本地目录)
- scp -r local_dir username@servername:remote_dir 上传目录
几个方便的软件
-
图像查看:sudo apt install nomacs
-
pdf :sudo apt-get install okular