内网穿透
1. 前提条件 想要通过公网访问到位于校园网下的主机时,由于目标主机没有公网ip,无法直接通过SSH连接到远程主机,此时便需要使用内网穿透 想要配置内网穿透,首先必须先要有一台具有公网ip的服务器,如阿里云、腾讯云等服务器 2. frp工作原理 frp为内网穿透用到的开源软件,分为服务端和客户端。服务端运行在有公网ip的服务器上;客户端运行在内网主机上,二者可以进行数据转发。我们连接到客户端指定的端口便可以实现与内网主机连接 3. 配置公网服务器 下载frp库 # 下载 wget https://github.com/fatedier/frp/releases/download/v0.62.1/frp_0.62.1_linux_amd64.tar.gz # 解压 tar -zxvf frp_0.62.1_linux_amd64.tar.gz 打开配置文件 vim frps.toml 修改文件内容 # frps.toml # frp监听的端口,默认是7000,可以改成其他的 bindPort = 7000 # 用于客户端和服务器通信的身份验证令牌 auth.method = "to...
设置开机自启动
1. 创建一个启动脚本 cd ~ touch start_joy.sh chmod +x start_joy.sh 2. 编辑脚本文件 vim start_joy.sh #!/bin/zsh source /opt/ros/noetic/setup.zsh source /home/nv/ants/devel/setup.zsh roslaunch vehicle_rea joy_control.launch 3. 配置自动启动 创建 ~/.config/autostart 目录(如果它不存在的话) 使用 gnome-terminal 打开一个新的终端窗口并执行上述脚本。编辑 ~/.config/autostart 目录下的 .desktop 文件来实现这一点 mkdir -p ~/.config/autostart 创建一个新的 .desktop 文件,例如 start_joy.desktop vim ~/.config/autostart/start_joy.desktop [Desktop Entry] Type=Application Exec=gnome-te...
设置IP变化同步脚本
1. 创建无密码密钥 生成无passphrase密钥的命令 ssh-keygen -t rsa -b 4096 -f ~/.ssh/rsa_no_pass -N "" 在~/.ssh添加文件config vim ~/.ssh/config 在里面添加 Host gitee.com HostName gitee.com PreferredAuthentications publickey IdentityFile ~/.ssh/rsa_no_pass 2. 将本地Git与Gitee建立联系 将本地无密码公钥添加到Gitee上 创建并切换到main分支 git switch -c main 然后按照gitee提示的操作 3. 创建脚本 创建Bash脚本,该脚本每次检测IP是否变化,如果变化则更新仓库中的一个文件(例如current_ip.txt),提交并推送到Gitee的main分支 vim update_ip.sh 添加内容 #!/bin/bash export GIT_SSH_COMMAND="ssh -i /home/lwb/.ssh/rsa_no_pass" # 定义仓库路...
升级Cmake
1. 安装 安装依赖 sudo apt install libssl-dev 去官网下载所需版本的源码。也可以使用wget下载,例如: wget https://cmake.org/files/v3.28/cmake-3.28.5.tar.gz tar -xvzf cmake-3.28.5.tar.gz 进入目录配置 cd cmake-3.28.5 chmod 777 ./configure ./configure make -j8 sudo make install 2. 替换 最后使用新安装的Cmake替换旧版本,其中/usr/local/bin/cmake为新安装的Cmake目录 sudo update-alternatives --install /usr/bin/cmake cmake /usr/local/bin/cmake 1 --force
升级Eigen库
usr/include/eigen3存放的是apt安装的Eigen库 /usr/local/include/eigen3存放的是源码安装的Eigen库 1. 查看Eigen版本 sudo updatedb locate Macros.h|grep eigen3 vim (相应位置)/usr/include/eigen3/Eigen/src/Core/util/Macros.h 2. 安装 下载Eigen源码,最好下载最新release版本 wget https://gitlab.com/libeigen/eigen/-/archive/3.4.0/eigen-3.4.0.tar.gz # 解压 mkdir eigen-3.4.0 tar -zxvf eigen-3.4.0.tar.gz -C ./eigen-3.4.0 #编译安装 mkdir build && cd build cmake .. sudo make install 只需将eigen文件复制到本地调用文件夹/usr/include中就能完成对apt安装的覆盖 sudo cp -r /usr/lo...
升级GCC
1. 查看版本 gcc -v g++ -v 2. 下载指定版本 进入清华源下载相应版本 wget https://mirror.tuna.tsinghua.edu.cn/gnu/gcc/gcc-14.1.0/gcc-14.1.0.tar.gz 解压文件进入目录,我下载的是gcc-14.1.0,版本因人而异 tar -xf gcc-14.1.0.tar.gz cd gcc-14.1.0 # 下载依赖包 ./contrib/download_prerequisites # 创建一个用于编译GCC的目录: mkdir build && cd build # 配置编译选项: ../configure --prefix=/opt/gcc-14.1.0 --enable-languages=c,c++ --disable-multilib # 开始编译 make -j8 # 最后,安装GCC: sudo make install 3. 设置软链接 查看系统gcc/g++版本 sudo updatedb --prunepaths="/mnt" locate g++|grep ...
使用GitHub
1. SSH配置 请参考使用SSH博客 配置config文件 vim ~/.ssh/config 在里面添加 Host github.com HostName github.com PreferredAuthentications publickey IdentityFile ~/.ssh/xxx # 这里xxx换成你命名的私钥名称 2. 添加SSH key到GitHub 拷贝xxx.pub文件的内容 vim ~/.ssh/xxx.pub 登录GitHub账号,从右上角的设置进入,然后点击菜单栏的 SSH key 进入页面添加 SSH key 3. 设置Git信息 git config --global user.name '你的名字' git config --global user.email '你的邮箱' git config --list可以查看信息
使用SSH
1. SSH基础操作 创建.ssh文件夹 mkdir ~/.ssh 创建本地密钥对 ssh-keygen -t rsa -b 4096 -C "你的邮箱@xxx.com" -f ~/.ssh/xxx 这样就生成了公钥xxx.pub和私钥xxx,公钥可以分发,私钥需要保存好 在~/.ssh添加文件config touch ~/.ssh/config vim ~/.ssh/config 在里面添加 Host 别名 HostName 目标IP地址 User 目标用户名 IdentityFile 私钥的位置(绝对位置) 修改文件权限,SSH严格要求私钥文件必须仅所有者可读,其他用户无权访问 chmod 600 ~/.ssh/xxx # xxx为对应的私钥 chmod 700 ~/.ssh 2. 使用SSH连接远程服务器 远程服务器访问人数较多,所以在本地生成密钥对,将公钥传到服务器上,将私钥保存在本地 2.1 本地生成SSH密钥对 请参考SSH基础操作 2.2 上传公钥到服务器 ssh-copy-id -i ~/.ssh/xxx.pub username@server_ip...
使用WSL
1. 与Windows网络共享 在Windows用户文件夹下新建.wslconfig文件并写入 [experimental] autoMemoryReclaim=gradual # 可以在 gradual 、dropcache 、disabled 之间选择 networkingMode=mirrored dnsTunneling=true firewall=true autoProxy=true sparseVhd=true 2. 排除对Windows中的文件检索 在WSL的/etc/wsl.conf文件中加入如下内容 [interop] appendWindowsPath = false [automount] enabled = false 理论上可以关闭与Windows的交互,但是由于WSL共享了Windows的网络,所以无法真正禁止磁盘挂载。 可以修改updatedb的搜索范围来减小磁盘挂载的影响,编辑 /etc/updatedb.conf的方法并不是对所有发行版全部适用,可以在.zshrc或者.bashrc中加入如下内容 alias updatedb="sudo upd...
在VSCode中使用Clang
优势:代码提示更快;可以进行静态分析 1. 在Ubuntu上安装Clang(推荐14及以上,有类型提示) clang的最新版本可在github主页查看 wget https://apt.llvm.org/llvm.sh chmod u+x llvm.sh sudo ./llvm.sh 20 # 或者使用清华源 # 下载脚本 wget https://mirrors.tuna.tsinghua.edu.cn/llvm-apt/llvm.sh chmod +x llvm.sh sudo ./llvm.sh 20 all -m https://mirrors.tuna.tsinghua.edu.cn/llvm-apt 将clang20和clang++20设为默认版本 sudo update-alternatives --install /usr/bin/clang++ clang++ /usr/bin/clang++-20 20 sudo update-alternatives --install /usr/bin/clang clang /usr/bin/clang-20 20 ...