# 1、删除手机系统自带的鸡肋软件(万能) ## 通过ADB删除 (1)、电脑上安装ADB,环境配置 [安卓手机使用ADB工具卸载预装软件教程(入门)(无需root)](https://mp.weixin.qq.com/s/eDeiRxOq0idKjRyG3SsOUw) (2)、卸载方法参考这篇文章 [删掉手机上的鸡肋系统软件,用这个办法就够了。](https://mp.weixin.qq.com/s/Uwv7Cyb5mB30bsV2OWnG7w) 主要时通过一个木函获取软件包名 # 2、ubuntu20.04安装Pycharm破解版 ## 方法一:(该方法隔一段时间需重新激活) 1、官网下载 2、获取激活码 [intellij idea注册码,idea激活码,idea破解,idea破解插件,idea注册码在线生成](http://idea.javatiku.cn/) ## 方法二:(仍在探索) ## Pycharm卸载方法 1、删除解压缩目录 2、删除隐藏目录 ```bash sudo rm -r ~/.Pycharm ``` 3、删除快捷方式 ```bash cd /usr/share/applications sudo rm -r pycharm.desktop ``` # 3、Ubuntu20.04空间清理 1、日志文件清理 [ubuntu提示根目录存储空间不足的解决办法_ubuntu根目录空间不足_飞鸭传书的博客-CSDN博客](https://blog.csdn.net/jppipai/article/details/122174918) [Can I remove files in /var/log/journal and /var/cache/abrt-di/usr?](https://unix.stackexchange.com/questions/130786/can-i-remove-files-in-var-log-journal-and-var-cache-abrt-di-usr) 2、vscode workspace清理 ```bash rm -rf .config/Code/User/workspaceStorage/* ``` # 4、ubuntu20.04中查看opencv版本号命令 ### 查看opencv 3以及以下版本: ### pkg-config --modversion opencv ### 查看opencv4版本: ### pkg-config --modversion opencv4 在opencv编译时用一下命令开启pkgconfig选项 ```plain cmake -D CMAKE_BUILD_TYPE=Release -D OPENCV_GENERATE_PKGCONFIG=YES .. ``` # 5、查看系统内核版本号及系统名称 ### uname -a # 6、ubuntu20.04软件卸载 ## Step1:dpkg -l |[grep](https://so.csdn.net/so/search?q=grep&spm=1001.2101.3001.7020) -i "软件包名",查找已经安装的软件包名 ## Step2 ### (1)、对于终端里直接使用apt-get安装的软件,用 ### sudo apt-get remove --purge 软件名 ### (2)、对于下载的.deb包进行安装的软件,用 ### sudo dpkg -r --purge *.deb ## Step3 清理卸载残留 ```bash dpkg -l |grep ^rc|awk '{print $2}' |sudo xargs dpkg -P ``` # 7、ubuntu 20.04 sudo apt-get update报错解决方案 ## (1)、错误:7 v2raya InRelease ### 解决方案 ```bash //删除原秘钥 sudo apt-key del 8CF9045B2F84DF776654C97B354E516D494EF95F //根据安装文档添加公钥 wget -qO - https://apt.v2raya.org/key/public-key.asc | sudo tee /etc/apt/trusted.gpg.d/v2raya.asc ``` ### 附件:[v2ray安装文档](https://v2raya.org/docs/prologue/installation/debian/) ## (2)、忽略:[http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu](http://ppa.launchpad.net/jonathonf/ffmpeg-4/ubuntu) focal InRelease,就类似于忽略·······的问题 ### 解决方案:进入软件和更新,将对应的名称去掉 ![](https://cdn.nlark.com/yuque/0/2022/png/29754277/1666448608425-fd93dda1-1456-48e1-a512-d9107bc7644f.png) ## (3)、换源方法 ubuntu自带: ```plain #deb cdrom:[Ubuntu 20.04.6 LTS _Focal Fossa_ - Release amd64 (20230316)]/ focal main restricted # See http://help.ubuntu.com/community/UpgradeNotes for how to upgrade to # newer versions of the distribution. deb http://cn.archive.ubuntu.com/ubuntu/ focal main restricted # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal main restricted ## Major bug fix updates produced after the final release of the ## distribution. deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates main restricted ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team. Also, please note that software in universe WILL NOT receive any ## review or updates from the Ubuntu security team. deb http://cn.archive.ubuntu.com/ubuntu/ focal universe # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal universe deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates universe ## N.B. software from this repository is ENTIRELY UNSUPPORTED by the Ubuntu ## team, and may not be under a free licence. Please satisfy yourself as to ## your rights to use the software. Also, please note that software in ## multiverse WILL NOT receive any review or updates from the Ubuntu ## security team. deb http://cn.archive.ubuntu.com/ubuntu/ focal multiverse # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal multiverse deb http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-updates multiverse ## N.B. software from this repository may not have been tested as ## extensively as that contained in the main release, although it includes ## newer versions of some applications which may provide useful features. ## Also, please note that software in backports WILL NOT receive any review ## or updates from the Ubuntu security team. deb http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse # deb-src http://cn.archive.ubuntu.com/ubuntu/ focal-backports main restricted universe multiverse ## Uncomment the following two lines to add software from Canonical's ## 'partner' repository. ## This software is not part of Ubuntu, but is offered by Canonical and the ## respective vendors as a service to Ubuntu users. # deb http://archive.canonical.com/ubuntu focal partner # deb-src http://archive.canonical.com/ubuntu focal partner deb http://security.ubuntu.com/ubuntu focal-security main restricted # deb-src http://security.ubuntu.com/ubuntu focal-security main restricted deb http://security.ubuntu.com/ubuntu focal-security universe # deb-src http://security.ubuntu.com/ubuntu focal-security universe deb http://security.ubuntu.com/ubuntu focal-security multiverse # deb-src http://security.ubuntu.com/ubuntu focal-security multiverse # This system was installed using small removable media # (e.g. netinst, live or single CD). The matching "deb cdrom" # entries were disabled at the end of the installation process. # For information about how to configure apt package sources, # see the sources.list(5) manual. ``` ### 常用的开源镜像站:[阿里源](https://developer.aliyun.com/mirror/ubuntu?spm=a2c6h.13651102.0.0.3e221b11hDdNQj)、[清华源](https://mirror.tuna.tsinghua.edu.cn/help/ubuntu/)、[各种源汇总](https://www.cnblogs.com/Hi-blog/p/5954230.html) ```bash sudo gedit /etc/apt/sources.list 复制、粘贴 ``` ## 软件包依赖 [Linux依赖管理详解_/lib/apt/list的东西可以删除吗-CSDN博客](https://blog.csdn.net/songchuwang1868/article/details/104339602) # 8、查询内存使用情况 ## 命令:free -m ### 功能说明:显示内存状态 语 法: free [-bkmotV][-s ] 补充说明:free指令会显示内存的使用情况,包括实体内存,虚拟的交换文档内存,共享内存区段,连同系统核心使用的缓冲区等。 参 数: -b 以Byte为单位显示内存使用情况。 -k 以KB为单位显示内存使用情况。 -m 以MB为单位显示内存使用情况。 -o 不显示缓冲区调节列。 -s 持续观察内存使用状况。 -t 显示内存总和列。 -V 显示版本信息。 # 9、[查看磁盘空间](https://blog.csdn.net/FIELDOFFIER/article/details/50467618) # 10、ubuntu上安装QQ、微信、wine ## (1)、QQ、微信安装 #### 方法一 [GitHub - wszqkzqk/deepin-wine-ubuntu: Deepin Wine for Ubuntu/Debian](https://github.com/wszqkzqk/deepin-wine-ubuntu) #### 参见文中步骤安装,安装完后进行更新软件,参见文章 [Ubuntu下对deepin-wine的使用详解](https://zhuanlan.zhihu.com/p/141107518) #### 方法二 [GitHub - zq1997/deepin-wine: 【deepin源移植】Debian/Ubuntu上最快的QQ/微信安装方式](https://github.com/zq1997/deepin-wine#%E5%8D%B8%E8%BD%BD%E6%B8%85%E7%90%86) ### 其中QQ、微信字体无法显示等问题可以通过移植windows下字体解决 1. ******windows**** 中系统盘所在的位置 ****c:\windows\Fonts**** 中拷贝全部的字体;** 2. **将拷贝的字体数据放在 ****ubuntu**** 系统中 ****/usr/share/deepin-wine/wine/fonts**** 中;** 3. **重新登录微信, QQ等应用即可解决所有字体变方框问题。** ## (2)、源码安装wine [使用源码安装wine_寻水的漁的博客-CSDN博客_wine源码安装](https://blog.csdn.net/u013350783/article/details/90742468) # 11、wine常用命令 ### wine——命令 ### (1)、wine安装软件的三种方式 ### wine xxx.exe ### ./ xxx.exe ### (2)、wine常用命令 ### winecfg (wine的设置~) ### wine taskmgr (任务管理器) ### wine uninstaller (卸载软件) ### wine regedit (注册表) ### wine notepad (记事本) ### wineboot ( 重启wine) # 12、[安装TopIcons-plus](https://blog.csdn.net/weixin_40108745/article/details/118343670) # 13、解决翻墙也打不开github的问题 检查Hosts文件 ```plain sudo gedit /etc/hosts ``` 将原始Hosts内容替换上去 ```plain 127.0.0.1 localhost 127.0.1.1 Alien # The following lines are desirable for IPv6 capable hosts ::1 ip6-localhost ip6-loopback fe00::0 ip6-localnet ff00::0 ip6-mcastprefix ff02::1 ip6-allnodes ff02::2 ip6-allrouters ``` 完成 :::info PS:刷新dns命令:`**sudo /etc/init.d/network-manager restart**` ::: # 14、ROS安装 ## ubuntu20.04安装ros 步骤参考: [详细介绍如何在ubuntu20.04中安装ROS系统,超快完成安装(最新版教程)_慕羽★的博客-CSDN博客_ros安装](https://blog.csdn.net/qq_44339029/article/details/120579608) 到rosdep初始化那步,用[rosdepc](https://mp.weixin.qq.com/s/VGs8oWdhHH6XsHcx21lN4Q) 用如下命令: ```bash sudo pip install rosdepc ``` 如果显示没有pip可以试试pip3。 ```bash sudo pip3 install rosdepc ``` 如果pip3还没有 ```bash sudo apt-get install python3-pip sudo pip install rosdepc ``` 使用 ```bash sudo rosdepc init rosdepc update ``` ## Ubuntu22.04安装ROS1 ```bash echo "deb [trusted=yes arch=amd64] http://deb.repo.autolabor.com.cn jammy main" | sudo tee /etc/apt/sources.list.d/autolabor.list sudo apt update sudo apt install ros-noetic-autolabor ``` ## Ubuntu22.04安装ROS2 官方安装教程: [Ubuntu (deb packages) — ROS 2 Documentation: Humble documentation](https://docs.ros.org/en/humble/Installation/Ubuntu-Install-Debs.html) 其中curl命令用proxychains curl命令代替 ros1和ros2切换: ```bash # >>> type in ros to choose which to initialize >>> ros(){ echo "ros: noetic(1) humble(2)?" read choose case $choose in 1) source /opt/ros/noetic/setup.bash (according to needs to add) ;; 2) source /opt/ros/humble/setup.bash (according to needs to add) ;; esac } # <<< type in ros/ros2 to initialize <<< ``` # 15、解决ubuntu20.04报错“Pending update of "snap-store" snap - Close the app to avoid disruptions " ```bash sudo snap refresh//若没有报错或通知,则完成,若还是有报错,则继续进行下一步 sudo refresh --time date sudo refresh --list sudo killall snap-store sudo snap refresh//等待下载 sudo snap refresh//查看有无报错或通知,基本解决 ``` # 16、Ubuntu20.04查询进程 [ubuntu查看进程和结束进程-阿里云开发者社区](https://developer.aliyun.com/article/889750) # 17、Realsense SDK 安装v2.53.1版本 [realsense-viewer 不识别 T265——Realsense SDK 在 v2.54.1 版本以后不再支持T265相机的解决办法_realsense t265_看我放个大招的博客-CSDN博客](https://blog.csdn.net/tugepaopaoo/article/details/131095933) ## 官方文档 Realsense SDK安装: [librealsense/doc/distribution_linux.md at master · IntelRealSense/librealsense](https://github.com/IntelRealSense/librealsense/blob/master/doc/distribution_linux.md) Realsense-ros安装: [GitHub - IntelRealSense/realsense-ros at ros1-legacy](https://github.com/IntelRealSense/realsense-ros/tree/ros1-legacy) # 18、ssh key查找 主目录下找到.ssh文件夹,id_rsa为私钥,id_rsa.pub是公钥 # 19、增加虚拟内存 ```bash #count的大小就是增加的swap空间的大小,1M是块大小,所以空间大小是bs*count=8192MB sudo dd if=/dev/zero of=/swapfile bs=1M count=8192 #count后的数可以自己定义 #把刚才空间格式化成swap格式 sudo mkswap /swapfile chmod 0600 /swapfile #使用刚才创建的swap空间 sudo swapon /swapfile #用top查看Mib swap top #释放空间 sudo swapoff -a ``` # 20、Ubuntu20.04卸载重装 ## 卸载 [教你彻底卸载Ubuntu双系统,去污不残留-CSDN博客](https://blog.csdn.net/qq_42257666/article/details/120721561) ## 安装 ### 注意事项 1. 安装时可以选择最小安装,没必要完整安装,好多东西都用不上 若最小安装,则不能勾选联网更新,否则安装会出错 2. 分区 1. 交换分区:设置为跟内存一样大—>主分区—>空间起始位置—>用于交换空间 2. boot:设置为1G—>逻辑分区—>空间起始位置—>ext4—> /boot 3. 根目录:根据自己需要设置大小(本次设置为100G)—>主分区—>空间起始位置—>ext4—> / 4. home:根据自己需要设置大小(本次设置为200G,也就是剩下的所有空间)—>逻辑分区—>空间起始位置—>ext4—> /home ## nvidia驱动安装 1、查看显卡类型 ```bash lspci | grep -i nvidia ``` 2、禁用nouveau ```bash sudo vim /etc/modprobe.d/blacklist-nouveau.conf # 添加以下内容 blacklist nouveau options nouveau modeset=0 ``` 3、更新系统,重启 ```bash sudo update-initramfs -u #更新系统 sudo reboot ``` 4、验证是否禁用nouveau,没有输出则成功禁用 ```bash lsmod | grep nouveau ``` 5、之前若安装了驱动,进行卸载 ```bash sudo apt autoremove --purge nvidia* reboot # 5. 查看当前的nvidia驱动 ls /usr/src | grep nvidia ``` 6、推荐通过apt安装驱动 ```bash ubuntu-drivers devices ``` 选择带recommended标签的 ```bash sudo apt install nvidia-driver-<版本号> ``` 若上面的驱动安装后出现`no devices were found`,则卸载驱动重新安装开源(带 open 标签)的 ```bash sudo apt install nvidia-driver-<版本号>-open ``` # 21、locate命令定位到不存在的文件 原因:数据库文件没有更新 解决方法:sudo updatedb # 22、.bashrc文件内容 ```bash # ~/.bashrc: executed by bash(1) for non-login shells. # see /usr/share/doc/bash/examples/startup-files (in the package bash-doc) # for examples # If not running interactively, don't do anything case $- in *i*) ;; *) return;; esac # don't put duplicate lines or lines starting with space in the history. # See bash(1) for more options HISTCONTROL=ignoreboth # append to the history file, don't overwrite it shopt -s histappend # for setting history length see HISTSIZE and HISTFILESIZE in bash(1) HISTSIZE=1000 HISTFILESIZE=2000 # check the window size after each command and, if necessary, # update the values of LINES and COLUMNS. shopt -s checkwinsize # If set, the pattern "**" used in a pathname expansion context will # match all files and zero or more directories and subdirectories. #shopt -s globstar # make less more friendly for non-text input files, see lesspipe(1) [ -x /usr/bin/lesspipe ] && eval "$(SHELL=/bin/sh lesspipe)" # set variable identifying the chroot you work in (used in the prompt below) if [ -z "${debian_chroot:-}" ] && [ -r /etc/debian_chroot ]; then debian_chroot=$(cat /etc/debian_chroot) fi # set a fancy prompt (non-color, unless we know we "want" color) case "$TERM" in xterm-color|*-256color) color_prompt=yes;; esac # uncomment for a colored prompt, if the terminal has the capability; turned # off by default to not distract the user: the focus in a terminal window # should be on the output of commands, not on the prompt #force_color_prompt=yes if [ -n "$force_color_prompt" ]; then if [ -x /usr/bin/tput ] && tput setaf 1 >&/dev/null; then # We have color support; assume it's compliant with Ecma-48 # (ISO/IEC-6429). (Lack of such support is extremely rare, and such # a case would tend to support setf rather than setaf.) color_prompt=yes else color_prompt= fi fi if [ "$color_prompt" = yes ]; then PS1='${debian_chroot:+($debian_chroot)}\[\033[01;32m\]\u@\h\[\033[00m\]:\[\033[01;34m\]\w\[\033[00m\]\$ ' else PS1='${debian_chroot:+($debian_chroot)}\u@\h:\w\$ ' fi unset color_prompt force_color_prompt # If this is an xterm set the title to user@host:dir case "$TERM" in xterm*|rxvt*) PS1="\[\e]0;${debian_chroot:+($debian_chroot)}\u@\h: \w\a\]$PS1" ;; *) ;; esac # enable color support of ls and also add handy aliases if [ -x /usr/bin/dircolors ]; then test -r ~/.dircolors && eval "$(dircolors -b ~/.dircolors)" || eval "$(dircolors -b)" alias ls='ls --color=auto' #alias dir='dir --color=auto' #alias vdir='vdir --color=auto' alias grep='grep --color=auto' alias fgrep='fgrep --color=auto' alias egrep='egrep --color=auto' fi # colored GCC warnings and errors #export GCC_COLORS='error=01;31:warning=01;35:note=01;36:caret=01;32:locus=01:quote=01' # some more ls aliases alias ll='ls -alF' alias la='ls -A' alias l='ls -CF' # Add an "alert" alias for long running commands. Use like so: # sleep 10; alert alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"' # Alias definitions. # You may want to put all your additions into a separate file like # ~/.bash_aliases, instead of adding them here directly. # See /usr/share/doc/bash-doc/examples in the bash-doc package. if [ -f ~/.bash_aliases ]; then . ~/.bash_aliases fi # enable programmable completion features (you don't need to enable # this, if it's already enabled in /etc/bash.bashrc and /etc/profile # sources /etc/bash.bashrc). if ! shopt -oq posix; then if [ -f /usr/share/bash-completion/bash_completion ]; then . /usr/share/bash-completion/bash_completion elif [ -f /etc/bash_completion ]; then . /etc/bash_completion fi fi alias python=python3 source /opt/ros/noetic/setup.bash source /home/mickey/APP/realsense_ros_catkin_ws/devel/setup.bash source /home/mickey/APP/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash /home/mickey/APP/PX4-Autopilot /home/mickey/APP/PX4-Autopilot/build/px4_sitl_default export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/mickey/APP/PX4-Autopilot export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:/home/mickey/APP/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic ``` # 23、Ubuntu美化步骤 1. 浏览器中安装gnome-shell扩展 ```plain //安装 gnome-software sudo apt-get update sudo apt-get upgrade sudo apt-get install gnome-software //安装Gnome-tweak-tool sudo apt install gnome-tweaks sudo apt-get install chrome-gnome-shell sudo apt install gnome-shell-extensions gnome-shell-extension-manager ``` ubuntu22.04下安装的gnome-tweaks没有扩展管理选项,需要单独安装gnome-shell-extension-manager,但是gnome-shell-extension-manager无法使用Browse功能下载扩展。 Ubuntu20.04下可以安装gnome-tweak-tool,有扩展管理功能,无需安装gnome-shell-extension-manager。 2. 在下面网站中安装插件: 1. dash to dock 2. user themes 3. lockscreen background 4. brightness control using ddcutil ```bash # 安装该插件之前要先安装ddcutil sudo apt install ddcutil # 运行检测 ddcutil environment # 根据检测提示运行命令即可,映像中只加了组,其他的设置都没改过 ``` [https://extensions.gnome.org/](https://extensions.gnome.org/) 3. 在下面网站中寻找主题 [Browse Latest | https://www.gnome-look.org/browse/](https://www.gnome-look.org/browse/) 用到的主题:Curors——Bibata Modern Ice Full Icon Themes——Candy Icons Grub Themes——Vimix GTK Themes——Orchis 4. 常用操作 1. Alt+f2:重启gnome,若提示wayland下无法重启,则修改/etc/gdm/custom.conf 中**WaylandEnable=false**,可能你做某些设置会让这行代码被注释掉,这才会出现上述问题,所以将此行代码注释去除重启系统,应该就正常了。 2. gnome扩展文件夹:~/.local/share/gnome-shell/extensions/ 参考: 1. 移除grub主题操作 [Ubuntu修改GRUB 主题_ubuntu grub主题-CSDN博客](https://blog.csdn.net/Shuimuxiaochao/article/details/129185418) 2. 登录界面壁纸设置 [ubuntu-gdm-set-background](https://github.com/PRATAP-KUMAR/ubuntu-gdm-set-background/?tab=readme-ov-file) 在设置登录界面壁纸出错后可以尝试如下解决方法: Changes will be effective after a Reboot (CTRL+ALT+F1 may show the changes immediately) If something went wrong, log on to tty and run the below command $ sudo update-alternatives --quiet --set gdm-theme.gresource /usr/share/gnome-shell/theme/Yaru/gnome-shell-theme.gresource # 24、windows10中vscode环境配置 1、g++ : 无法将“g++”项识别为 cmdlet、函数、脚本文件或可运行程序的名称。请检查名称的拼写,如果包括路径,请确保路径正确,然后再试一次 解决办法: [Visual Studio Code 第一次运行C/C++的环境配置过程](https://zhuanlan.zhihu.com/p/335707213) # 25、Ubuntu20.04.6问题 ## 1、开机遇到Bluetooth hci0: Timeout waiting for suspend events 解决办法: 1. 运行以下命令,找到蓝牙模块的id,找Driver = btusb,可以看到ID为8087:0026 ```bash lsusb -vt |__ Port 14: Dev 6, If 0, Class=Wireless, Driver=btusb, 12M ID 8087:0026 Intel Corp. |__ Port 14: Dev 6, If 1, Class=Wireless, Driver=btusb, 12M ID 8087:0026 Intel Corp. ``` 2. 创建udev规则禁用模块 ```bash sudo vim /etc/udev/rules.d/50-usb_power_save.rules # 添加以下内容 ACTION=="add", SUBSYSTEM=="usb", ATTR{idVendor}=="8087", ATTR{idProduct}=="0026", ATTR{power/autosuspend}="-1" ``` 3. 最后运行 ```bash sudo update-grub ``` ## 2、win10和ubuntu时间同步 [解决Ubuntu(20.04)和Windows10双系统时间不同步问题_universal time 不对-CSDN博客](https://blog.csdn.net/X_T_S/article/details/110142773) # 26、ubuntu python版本切换 [Ubuntu中查看安装的Python版本以及不同版本之间切换_ubuntu查看python版本-CSDN博客](https://blog.csdn.net/wokaowokaowokao12345/article/details/127095052) # 27、d435i关闭红外激光 ```bash /camera/stereo_module/emitter_enabled: 0 #0为关闭,1为开启 ``` # 28、ubuntu20.04.6安装px4、mavros、QGC ## px4安装 **一定要从源码安装** ```bash # 克隆源码 git clone https://github.com/PX4/PX4-Autopilot.git --recursive # 可以添加 -b 选项指定版本分支,即: git clone -b v1.14.0 https://github.com/PX4/PX4-Autopilot.git --recursive # 进入PX4-Autopilot文件夹,继续下载未下载完的组件 cd PX4-Autopilot/ git submodule update --init --recursive # 执行ubuntu.sh脚本 sudo bash ./PX4-Autopilot/Tools/setup/ubuntu.sh # 中间出错的话执行指令 python3 -m pip install --upgrade pip python3 -m pip install --upgrade Pillow # 如果过程中有安装失败的地方,可以再用 sudo bash ./PX4-Autopilot/Tools/setup/ubuntu.sh --fix-missing ``` 完成后重启系统,测试 ```bash cd cd PX4-Autopilot/ make px4_sitl_default gazebo # 在同一个终端中输入 commander takeoff # 无人机起飞 commander land # 无人机降落 ``` 添加环境变量(记得更换成自己的路径) ```bash source ~/PX4-Autopilot/Tools/simulation/gazebo-classic/setup_gazebo.bash ~/PX4-Autopilot ~/PX4-Autopilot/build/px4_sitl_default export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot export ROS_PACKAGE_PATH=$ROS_PACKAGE_PATH:~/PX4-Autopilot/Tools/simulation/gazebo-classic/sitl_gazebo-classic ``` ## mavros安装 ```bash sudo apt-get install ros-noetic-mavros ros-noetic-mavros-extras ``` 运行以下命令进行测试 ```bash roslaunch mavros px4.launch ``` 若出现报错: ![](https://cdn.nlark.com/yuque/0/2024/png/29754277/1713525282585-a687d741-0618-4baa-84bc-68c2db350d48.png) 运行 ```bash sudo /opt/ros/noetic/lib/mavros/install_geographiclib_datasets.sh ``` 若还出现其他报错,则上网搜 如果有已经使用pip3 install 安装完的软件还提示找不到,则用pip3 install --user再装一遍 若出现FCU: DeviceError:serial:open: No such file or directory,是正常现象,已安装完成,可以忽略不管 ### Mavros使用注意事项 在启动mavros时,一定要关闭QGC,否则会报错端口被占用,如下图: ![](https://cdn.nlark.com/yuque/0/2024/png/29754277/1714045676367-88ec6919-380b-45c1-aaff-6281400fd296.png) ## QGC安装 [QGC安装](https://docs.qgroundcontrol.com/master/en/qgc-user-guide/getting_started/download_and_install.html) # 29、删除多余内核 [Ubuntu删除多余内核](https://www.jianshu.com/p/f284bc90944f) # 30、Alist ```bash Alist 安装成功! 访问地址:http://YOUR_IP:5244/ 配置文件路径:/opt/alist/data/config.json ---------如何获取密码?-------- 先cd到alist所在目录: cd /opt/alist 随机设置新密码: ./alist admin random 或者手动设置新密码: ./alist admin set NEW_PASSWORD ---------------------------- 启动服务中 查看状态:systemctl status alist 启动服务:systemctl start alist 重启服务:systemctl restart alist 停止服务:systemctl stop alist ``` ## 报错解决 1. INFO[2024-07-29 10:00:46] reading config file: C:\Users\HHX\AppData\Roaming\ci.nn.alist\config.json FATA[2024-07-29 10:00:46] load config error: readObjectStart: expect { or n, but found , error found in #0 byte of ...||..., bigger context ...||... [AD] Command finished with code 1 and signal null 解决方法:删除config文件即可 # 31、从终端启动应用并隐藏终端 [Linux/Ubuntu/Debian从控制台启动程序隐藏终端窗口_ubuntu隐藏终端命令行窗口-CSDN博客](https://blog.csdn.net/bestxx2009/article/details/136765845) 简单来说,使用nohup命令,结尾加个与号(&) ```bash nohup & ``` # 32、typora ## 破解教程 ubuntu:[GitHub - Hit-Mickey/Yporaject: ubuntu typora破解](https://github.com/Hit-Mickey/Yporaject) windows: ```bash #自动配置相关文件 .\node_inject.exe #序列号生成 .\license-gen.exe ``` ## 配置文件 [typora偏好设置](https://preview-speedtest.mingqian.online/scattered_preview/typora_settings.html) # 33、解决source多个工作空间覆盖的问题 [解决source多个ROS工作空间时的覆盖问题 | 所念皆星河](https://immortalqx.github.io/2021/07/17/ros-notes-3/) 参考上文中的方法二 # 34、chrome无法同步问题解决 1、本次遇到的问题时windows下chrome同步ubuntu下的chrome数据,但ubuntu下不能同步windows下的数据 在windows下的chrome中打开chrome://sync-internals,发现有数据不能同步,有error报错,解决方法:删除login data,之后再同步即可。 ![](https://cdn.nlark.com/yuque/0/2024/png/29754277/1724667291303-2168629d-4146-4a41-a81b-2462c08e790a.png) 注:以上红色圈出来的部分不能同步是正常的。 # 35、UltraISO破解版下载 [【UltraISO】中文破解版-CSDN博客](https://blog.csdn.net/Asher117/article/details/93618082) # 36、安装windows自带软件方法 [在Windows 11上安装新版本的Notepad(记事本) – 喜欢记有趣](https://www.01booknote.xyz/%E5%9C%A8windows-11%E4%B8%8A%E5%AE%89%E8%A3%85%E6%96%B0%E7%89%88%E6%9C%AC%E7%9A%84notepad%E8%AE%B0%E4%BA%8B%E6%9C%AC%EF%BC%89.html) # 37、Ubuntu22.04卸载snap应用商店(24.04同样适用) [Ubuntu禁用(彻底移除)Snap.html](https://openlist.speedtest.mingqian.online/@s/xIc4DRmK/Ubuntu22.04%E8%AE%BE%E7%BD%AE%E4%B8%8EWindows%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6%E5%A4%B9.html) # 38、ubuntu查看线程数的命令 ```bash nproc ``` # 39、终端忽略大小写 ## Ubuntu ```bash echo 'set completion-ignore-case on' >> /etc/inputrc ``` ## Mac ```bash autoload -Uz compinit && compinit zstyle ':completion:*' matcher-list 'm:{a-z}={A-Z}' ``` # 40、ubuntu设置系统中英文 ```bash locale # check for UTF-8 sudo apt update && sudo apt install locales sudo locale-gen en_US en_US.UTF-8 sudo update-locale LC_ALL=en_US.UTF-8 LANG=en_US.UTF-8 export LANG=en_US.UTF-8 locale # verify settings ``` 中文只需要把上面的en_US替换为zh_CN # 41、ubuntu下vscode ssh连接容器无法编辑文件 ```bash sudo chmod -R 777 <文件路径> ``` # 42、ubuntu设置登录界面在主屏幕上显示 ```bash sudo cp ~/.config/monitors.xml /var/lib/gdm3/.config ``` # 43、ubuntu22.04下压缩包中文乱码解决 安装unar ```bash sudo apt install unar ``` # 44、终端走代理 ## Ubuntu ```bash 利用proxychains在终端使用socks5代理 补充: 如果代理服务器需要登陆,这时可以直接把用户名和密码写进去 http_proxy=http://userName:password@proxyAddress:port 配置proxychains 编辑/etc/proxychains.conf,最下面有一行socks4 127.0.0.1 9050,把这一行注释掉,添加一行socks5 127.0.0.1 7897 测试 proxychains curl www.google.com 如果能看到一堆输出,说明设置成功,如果一直等待或者无法访问则代表设置失败。 使用 用命令行启动软件,在前面加上proxychains,如: proxychains firefox 使用shadowsocks+proxychains代理打开新的firefox实现浏览器翻墙。 也可以通过输入proxychains bash建立一个新的shell,基于这个shell运行的所有命令都将使用代理。 ``` ## Windows [proxychains for windows](https://github.com/shunf4/proxychains-windows) 安装步骤: * 当我运行 sudo modprobe brcm 时,它说在 lib/modules 中找不到该模块下载压缩包,重命名其中的文件为proxychains * 添加Path变量,值为解压后文件夹的路径 * 添加系统变量```PROXYCHAINS_CONF_FILE```,值为proxychains.conf文件路径 ## Mac ```bash brew install proxychains-ng # 配置 cd /usr/local/etc sudo vim proxychains.conf # 完全关闭sip # 重启mac,按住option,进入恢复模式 # 打开终端,输入命令 csrutil disable # 检验是否关闭 csrutil status # 输出System Integrity Protection status:disabled,则说明关闭成功 ``` # 45、Azure-Kinect-DK安装 ## ubuntu20.04 从百度网盘中下载Kinect.zip文件,里面已经包含了所需要的包,安装即可,安装完后从官方源码下载99-k4a.rules,运行以下命令: ```bash sudo cp 99-k4a.rules /etc/udev/rules.d/ ``` 运行k4aviewer检验是否成功。 从官方源码下载Kinect_Ros,下载完后修改 ```bash sudo vim /usr/lib/cmake/k4abt/k4abtConfig.cmake # 将1.3改为1.3.0,如下: include(CMakeFindDependencyMacro) find_dependency(k4a 1.3.0 REQUIRED) # Add the targets file include("${CMAKE_CURRENT_LIST_DIR}/k4abtTargets.cmake") ``` 之后catkin_make编译即可,有未安装的包sudo apt install <包名>安装即可。 ## Ubuntu22.04 [Index of /ubuntu/18.04/prod/pool/main/k/k4a-tools/](https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/k/k4a-tools/) 从上面链接中下载k4a-tools1.4.2,安装。 [Index of /ubuntu/18.04/prod/pool/main/libk/](https://packages.microsoft.com/ubuntu/18.04/prod/pool/main/libk/) 从上面链接中下载libk4a1.4,libk4a1.4-dev,安装完后参考上方步骤将移动99-k4a.rules。 从官方源码下载Kinect_Ros Humble分支 ```bash rosdep install --from-paths src --ignore-src -r -y colcon build source install/setup.bash ros2 launch Azure_Kinect_ROS_Driver driver.launch.py ``` ## 官方网站 [GitHub - microsoft/Azure-Kinect-Sensor-SDK: A cross platform (Linux and Windows) user mode SDK to read data from your Azure Kinect device.](https://github.com/microsoft/Azure-Kinect-Sensor-SDK) [GitHub - microsoft/Azure_Kinect_ROS_Driver at humble](https://github.com/microsoft/Azure_Kinect_ROS_Driver/tree/humble) # 46、cmake编译问题重定义 ## 解决方案 ## 1、在头文件中添加下列代码 ```cpp #pragma once ``` ## 2、可能是因为在头文件中定义了全局变量,应将全局变量移至head.cpp中,并在main.cpp中使用extern告诉编译器去其他文件中寻找全局变量,例 ```cpp //设定全局变量 int flag = 0; int getoff = 1; std::mutex mtx; cv::Mat image; hitcrt::camera::TimePoint RobotDemo::startTime; hitcrt::camera::TimePoint RobotDemo::onGetTime; ``` ```cpp //声明全局变量在其他文件中寻找(即在head.cpp中寻找) extern int flag; extern int getoff; extern std::mutex mtx; extern cv::Mat image; ``` # 47、新开的线程不运行 (1)、可能是没写循环,新线程进去就直接结束 (2)、可能是上锁的位置不对,具体上锁的位置视情况而定 # 48、使用锁时遇到的问题:![](./Picture/整机小知识/1665399283415-924251e3-f442-4dc9-bb7c-af7fee098662.png) **解决方案:只需在每次编译时用gcc的-l选项将pthread库链接一下就行了。** ```bash g++ test.cpp -o test -lpthread ./test ``` # 49、ubuntu20.04中用cmake调用opencv和PCL ```plain cmake_minimum_required(VERSION 3.16) project(week7) set (CMAKE_BUILD_TYPE "Debug") find_package(OpenCV REQUIRED) find_package(PCL 1.3 REQUIRED) include_directories(${OpenCV_INCLUDE_DIRS} ${PCL_INCLUDE_DIRS}) link_directories(${PCL_LIBRARY_DIRS}) add_definitions(${PCL_DEFINITIONS}) message(${OpenCV_INCLUDE_DIRS}) add_executable(main main.cpp) target_link_libraries(main ${OpenCV_LIBS} dw ${PCL_LIBRARIES}) ``` 参考:[cmake调用opencv](https://blog.csdn.net/wphkadn/article/details/83064623) # 50、ubuntu 20.04 vscode调试方法 ## (1)、利用[backward-cpp](https://zhuanlan.zhihu.com/p/397148839) ## (2)、利用[gdb1](https://maifile.cn/dec/a81081274782@doc) [LinuxGDB.pdf](https://www.yuque.com/attachments/yuque/0/2022/pdf/29754277/1666235580788-dec6638e-6b41-4649-8f3e-da5805dae5f5.pdf) [gdb安装方法](https://blog.csdn.net/chengsi101/article/details/79424083) [报错解决方案](https://stackoverflow.com/questions/70380547/gmp-is-missing-while-configuring-building-gdb-from-source) ## 若无法调试,可参考的launch.json配置文件 ```plain { "version": "0.2.0", "configurations": [ { "name": "(gdb) 启动", "type": "cppdbg", "request": "launch", "program": "${workspaceFolder}/build/test", "args": [], "stopAtEntry": false, "cwd": "${workspaceFolder}", "environment": [], "externalConsole": false, "MIMode": "gdb", "setupCommands": [ { "description": "为 gdb 启用整齐打印", "text": "-enable-pretty-printing", "ignoreFailures": true } ] } ] } ``` # 51、cmake编译pcl,boost顺序 ```cmake if (NOT PCL_FOUND) find_package(PCL REQUIRED) endif () # if (NOT Boost_FOUND) find_package(Boost REQUIRED COMPONENTS system thread) # endif () ``` **先编译PCL,然后直接找Boost** # 52、Ubuntu20.04开机自启脚本 [ubuntu开机自动打开终端并执行程序_ubuntu开机自启动程序_weijifen000的博客-CSDN博客](https://blog.csdn.net/weijifen000/article/details/88370085#:~:text=ubuntu%E5%BC%80%E6%9C%BA%E8%87%AA%E5%8A%A8%E6%89%93%E5%BC%80%E7%BB%88%E7%AB%AF%E5%B9%B6%E6%89%A7%E8%A1%8C%E7%A8%8B%E5%BA%8F%201%20Ctrl%2BAlt%2BT%20%E6%89%93%E5%BC%80%E5%91%BD%E4%BB%A4%E8%A1%8C%EF%BC%8C%E8%BE%93%E5%85%A5%20gedit%20~%2F.bashrc%20%EF%BC%88%E6%88%96%E8%80%85%E7%94%A8vi%E7%AD%89%E6%89%93%E5%BC%80%E4%B9%9F%E5%8F%AF%E4%BB%A5%EF%BC%89%EF%BC%8C%E6%89%93%E5%BC%80%20.bashrc,%EF%BC%8C%E7%82%B9%E5%87%BB%E2%80%9C%E6%B7%BB%E5%8A%A0%E2%80%9D%E3%80%82%206%20%E6%9C%80%E5%90%8E%EF%BC%8C%E5%A6%82%E6%9E%9C%E5%BC%80%E6%9C%BA%E4%B8%8D%E6%96%B9%E4%BE%BF%E8%BE%93%E5%85%A5%E5%AF%86%E7%A0%81%EF%BC%8C%E6%AF%94%E5%A6%82%E4%BD%BF%E7%94%A8%E5%B7%A5%E6%8E%A7%E6%9C%BA%E6%97%B6%EF%BC%8C%E5%8F%AF%E4%BB%A5%E8%AE%BE%E7%BD%AE%E4%B8%BA%E7%94%A8%E6%88%B7%E8%87%AA%E5%8A%A8%E7%99%BB%E5%BD%95%E3%80%82%20%E7%82%B9%E5%87%BBUbuntu%E6%9C%80%E5%8F%B3%E4%B8%8A%E8%A7%92%E7%9A%84%E8%AE%BE%E7%BD%AE%E6%8C%89%E9%92%AE%EF%BC%8C%E7%82%B9%E5%87%BB%20%E7%B3%BB%E7%BB%9F%E8%AE%BE%E7%BD%AE...%20...%207%20%E9%87%8D%E5%90%AF%E5%8D%B3%E5%8F%AF%E3%80%82) [linux下用脚本实现:监控一个进程,不存在则将其启动。_rosekin的博客-CSDN博客](https://blog.csdn.net/rosekin/article/details/15341835?spm=1001.2101.3001.6650.3&utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-15341835-blog-100101420.pc_relevant_aa2&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7ECTRLIST%7ERate-3-15341835-blog-100101420.pc_relevant_aa2&utm_relevant_index=4) # 53、系统重装 ## windows 1. 制作无人值守应答文件,制作完后使用ultra iso软件将应答文件加入镜像 [GitHub - Hit-Mickey/unattend-generator: win系统应答文件制作](https://github.com/Hit-Mickey/unattend-generator) 2. 安装localsend,clash-verge-rev,挂梯子,安装软件 1. 单文件软件:百度网盘中的portable app 2. 7zip,everything,IDM,mocreak,mathtype,matlab,pot,QQ拼音,Texity,VLC,Zotero,百度云盘,万兴,微信,alist,QQ 3. 下载图片,设置桌面和锁屏背景 3. windows系统激活方法: * [方法一](https://github.com/TGSAN/CMWTAT_Digital_Edition/issues/81): 右键单击开始按钮,然后选择 PowerShell 或终端(不是 CMD)。复制并粘贴下面的命令,然后按 Enter ``` irm https://massgrave.dev/get | iex ``` 如果需要管理员权限,请允许 您将看到激活选项。按照屏幕上的说明进行操作。 * [win11专业版激活](https://www.orcy.net.cn/1802.html): ```basic slmgr -ipk W269N-WFGWX-YVC9B-4J6C9-T83GX slmgr -skms kms.0t.net.cn slmgr -ato ``` ## Ubuntu ### 卸载 [教你彻底卸载Ubuntu双系统,去污不残留-CSDN博客](https://blog.csdn.net/qq_42257666/article/details/120721561) ### 安装 **注意事项** 1. 安装时可以选择最小安装,没必要完整安装,好多东西都用不上 若最小安装,则不能勾选联网更新,否则安装会出错 2. 分区 1. 交换分区:设置为跟内存一样大—>主分区—>空间起始位置—>用于交换空间 2. boot:设置为1G—>逻辑分区—>空间起始位置—>ext4—> /boot 3. 根目录:根据自己需要设置大小(本次设置为100G)—>主分区—>空间起始位置—>ext4—> / 4. home:根据自己需要设置大小(本次设置为200G,也就是剩下的所有空间)—>逻辑分区—>空间起始位置—>ext4—> /home 3. 安装localsend,clash-verge-rev,挂梯子,安装软件 # 54、docker ## 前言 Unbuntu上最好安装docker.io,不要安装docker-desktop,不然会出一堆问题, ## 安装 1、apt方式(推荐) 添加 Docker 官方 apt 软件源 ```bash # 添加 Docker 官方 GPG 密钥: sudo apt update sudo apt install ca-certificates curl sudo install -m 0755 -d /etc/apt/keyrings sudo curl -fsSL https://download.docker.com/linux/ubuntu/gpg \ -o /etc/apt/keyrings/docker.asc sudo chmod a+r /etc/apt/keyrings/docker.asc # 将 Docker 软件源添加到 Apt 源列表: sudo tee /etc/apt/sources.list.d/docker.sources < **注意** > > 安装完成后,验证 Docker 服务是否正在运行: ```bash sudo systemctl status docker ``` 如果 Docker 服务未运行,可以手动启动: ```bash sudo systemctl start docker ``` 3、验证 Docker 是否安装成功 运行 `hello-world` 测试镜像: ```bash sudo docker run hello-world ``` 该命令会: 1. 下载 Docker 测试镜像; 2. 使用该镜像创建并运行一个容器; 3. 输出 Docker 安装成功提示信息; 4. 容器运行结束后自动退出。 至此,Docker Engine 已成功安装并启动。 2、一键脚本 ```bash curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun ``` ## 1、公钥 EB8AEEB597833377AA3AA3E9E7959D1C38CC11CD ## 2、中文教程 [前言 - Docker — 从入门到实践](https://yeasy.gitbook.io/docker_practice/) ## 3、完整删除docker步骤 ```bash # 查找docker的所有包 dpkg -l | grep docker sudo apt-get purge --remove $docker的所有包 # 删除docker的相关配置及目录 sudo rm -rf /etc/systemd/system/docker.service.d sudo rm -rf /var/lib/docker # 删除这个文件夹时可能会出错,现在文件管理器中找到这个文件再删除 sudo rm -rf .docker # 确认docker是否删除 docker --version ``` ## 4、docker配置 [docker源检测](https://github.com/docker-practice/docker-registry-cn-mirror-test/actions/workflows/ci.yaml) ```plain sudo vim /etc/docker/daemon.json ``` 添加如下内容: ```plain { "registry-mirrors": [ "https://dockerproxy.net" ], "max-concurrent-downloads": 2, "ipv6": true, "fixed-cidr-v6": "fd00::/80", "ip6tables": true, "experimental": true } ``` docker配置代理: **创建或编辑 systemd 配置目录** ``` sudo mkdir -p /etc/systemd/system/docker.service.d ``` **创建代理配置文件** ``` sudo vim /etc/systemd/system/docker.service.d/http-proxy.conf ``` 写入以下内容(根据你的代理地址修改): ``` [Service] Environment="HTTP_PROXY=http://127.0.0.1:1080" Environment="HTTPS_PROXY=http://127.0.0.1:1080" Environment="NO_PROXY=localhost,127.0.0.1,.mydomain.com" ``` * `HTTP_PROXY`:HTTP 代理 * `HTTPS_PROXY`:HTTPS 代理 * `NO_PROXY`:不使用代理的地址或域名 添加完后,运行如下命令: ```plain sudo systemctl daemon-reload sudo systemctl restart docker* ``` ## 5、docker命令 ```bash systemctl | grep docker # 列出所有docker的服务 sudo systemctl start docker # 启动docker sudo systemctl restart docker # 重启docker sudo usermod -aG docker ${USER} # docker添加用户 cat /etc/group #检查创建是否有效 # 建立容器 docker run -it --name (自定义容器名字) --network host (镜像名称) /bin/bash run命令参数: --device=/dev/tty* #添加串口 # 进入容器 1、docker attach ${容器名或容器id前4位} 或 (用exit退出容器时会停止容器运行) 2、docker exec -it ${容器名或者容器id前4位} bash (用exit退出容器室不会停止容器运行) ``` ## 6、docker拉取指定镜像 [如何使用 docker pull 拉取指定架构的容器镜像_docker pull 指定镜像源-CSDN博客](https://blog.csdn.net/weixin_43403660/article/details/125974212) ## 7、docker导出本地镜像,容器 [Docker - 实现本地镜像的导出、导入(export、import、save、load)](https://www.hangge.com/blog/cache/detail_2411.html) ## 8、docker中创建ubuntu项目环境 从百度网盘中下载my_ubuntu.tar,使用以下命令构建 ```bash docker load < my_ubuntu.tar docker run -it --gpus all -e XMODIFIRES -e NVIDIA_DRIVER_CAPABILITIES=all -e DISPLAY=$DISPLAY -e QT_X11_NO_MITSHM=1 -v /mnt/hogehoge:/mnt/hogehoge -v /tmp/.X11-unix:/tmp/.X11-unix --device=/dev/bus/usb --add-host hostname:127.0.0.1 --hostname hostname -u nvidia -w /home/nvidia --privileged --net host --name /bin/bash ``` 其中注意在添加串口设备时要将设备连接在电脑上,否则添加了docker也不会访问。 参考: [https://hub.docker.com/r/taichimojamoja/ubuntu_ros_opencv](https://hub.docker.com/r/taichimojamoja/ubuntu_ros_opencv) 其中opencv版本为4.2.0,eigen版本为3.3.7。 ## 9、不同容器间网络通信 1. 创建网络:```docker network create -d bridge mynet``` 2. 配置docker-compose.yml ```yam # docker-compose1.yml version: "3" services: redis: image: redis:5.0.3 container_name: redis networks: - default - mynet mysql: image: mysql:5.7 container_name: mysql networks: - default - mynet networks: mynet: external: true # 末尾要空出一行 # docker-compose2.yml version: "3" services: php: image: php:7.1 container_name: php networks: - default - mynet external_links: - redis - mysql networks: mynet: external: true # 末尾要空出一行 ``` ## docker报错解决 ### (1)docker中运行vins-fusion [在docker中运行vins-fusion-CSDN博客](https://blog.csdn.net/weixin_42990464/article/details/136202638) 1. docker: Error response from daemon: could not select device driver "" with capabilities: [[gpu]]. 情况一:用nvidia-smi查看,如果没有,则安装对应的包即可 情况二:未安装nvidia-container-toolkit,用如下命令安装: ```bash distribution=$(. /etc/os-release;echo $ID$VERSION_ID) \ && curl -fsSL https://nvidia.github.io/libnvidia-container/gpgkey | sudo gpg --dearmor -o /usr/share/keyrings/nvidia-container-toolkit-keyring.gpg \ && curl -s -L https://nvidia.github.io/libnvidia-container/$distribution/libnvidia-container.list | \ sed 's#deb https://#deb [signed-by=/usr/share/keyrings/nvidia-container-toolkit-keyring.gpg] https://#g' | \ sudo tee /etc/apt/sources.list.d/nvidia-container-toolkit.list sudo apt-get udpate sudo apt-get install -y nvidia-container-toolkit sudo nvidia-ctk runtime configure --runtime=docker sudo systemctl restart docker ``` 2. qt.qpa.screen: QXcbConnection: Could not connect to display unix:0 Could not connect to any X display. ```bash xhost +local:docker ``` ### (2)docker每次重启后都会提示dial unix /var/run/docker.sock: connect: permission denied ```bash sudo usermod -a -G docker $USER # 修改docker.socket配置 sudo vim /usr/lib/systemd/system/docker.socket ``` 可以看到以下内容: ![](./Picture/整机小知识/1711595807773-a10ee584-e9ab-477f-b1f8-7da0c1e6967b.png) 将其中的SocketMode改为0666,之后 ```bash sudo systemctl daemon-reload sudo systemctl restart docker* ``` ### (3)docker中不支持中文编码的问题,报错:UnicodeEncodeError: ‘ascii‘ codec can‘t encode characters 编写Dockerfile文件,重新构建一个镜像,Dockerfile内容如下: ```plain FROM RUN mv /etc/apt/sources.list /etc/apt/sources.list.bak # 使用root权限 USER root RUN apt update RUN apt-get install -y locales RUN locale-gen en_US.UTF-8 ENV LANG en_US.UTF-8 ENV LANGUAGE en_US:en ENV LC_ALL en_US.UTF-8 #结束root权限 USER nobody ``` 其中不能用zh_CN.UTF-8,不然docker编译的过程会报错,具体原因也不太清楚 ### (4)docker run 报错:cannot execute binary file [docker使用遇到的问题_docker cannot execute binary file-CSDN博客](https://blog.csdn.net/jq656021898/article/details/109074651) # 55、word技巧 ## 1、word中latex和mathtype公式互化 输入$公式$,然后用快捷键Alt+\转化 ## 2、公式居中,标号居右 1. 在这台电脑上,19.33字符居中,38.75字符居右 2. 选中需要设置的行,右键单击—>选择段落—>选择制表符,进行设置 ![](./Picture/整机小知识/1710234675971-53b83a90-0b73-4d42-8efa-eec84d507f39.webp) 3. 最后用tab键排版 ## 3、公式和标号不在同一行 右键段落—>中文版式—>文本对齐方式:居中 ## 4、word中添加目录 1. 手动设置标题 选中需要设置标题的行—>右键段落—>大纲级别:根据需要设置 2. 顶部彩蛋—>引用—>目录—>自动目录 ## 5、word删除空白页 1. 当上一页中有插入分页符或分节符时,通常就会多出一个空白空白页且删不掉。 word上方工具栏选择开始—>段落—>显示编辑标记,把隐藏的分页符或分节符显示出来。 如果是分节符,将鼠标光标定位于分节符前,按Delete键好可删掉空白页就没了; 如果是分页符,在空白页顶部按Backspace键(一次不行就按两次),空白页就没了。 ![](./Picture/整机小知识/1710815862811-bcbadb80-8fa7-4e45-9eaa-5c7fd4b26638.png) 2. 当上一页中表格、文本框、图形、图片等对象占了一整页时,通常就会多出一行空白段落(空白页)且删不掉。 将鼠标光标定位到空白页中,右键-段落,设置"行距"为"固定值",并将"值"设置为"1磅",点击"确定"后,就会发现多余的空白页自动消失啦。 ## 6、参考文献交叉引用 [【Word】小技巧14:还在纠结参考文献的引用吗](https://zhuanlan.zhihu.com/p/31954914) 对于参考文献连续饮用的,如[1-3],修改域代码,然后更新 ```bash 编辑代码,分别加入字符【 \#"[0"】和【\#"0]"】 [1] 的域代码变为【{REF _Ref444874357 \r \h\#"[0"}】 [3] 的域代码变为【{REF _Ref444874357 \r \h\#"0]"}】 ``` # 56、git 一次性添加多个文件 ```bash git add . #添加被修改和新建的文件,不包括被删除的文件 git add -u #添加所有被修改和被删除的文件,不包括新建的文件 git add -A #添加所有文件 git add --all #添加所有文件 ``` 报错解决: 1、error: invalid object 100644 13da9eeff5a9150cf2135aaed4d2e337f97b8114 for 'spec/routing/splits_routing_spec.rb' error: Error building trees 解决方法:git hash-object -w spec/routing/splits_routing_spec.rb 注意替换为自己的文件 2、解决windows和ubuntu跨系统协作时符号问题 | **配置值** | **目的和策略** | **推荐使用系统** | **命令** | | :---------: | ------------------------------------------------------------ | :---------------: | :---------------------------------------- | | **`true`** | **双向转换**:检出时转换为 CRLF (Windows 风格),提交时转换为 LF (Unix 风格)。 | **Windows** | `git config --global core.autocrlf true` | | **`input`** | **单向转换**:提交时将 CRLF 转换为 LF,但检出时不进行转换,保留 LF。 | **Linux / macOS** | `git config --global core.autocrlf input` | | false | 为了让 Git 正确处理中文路径。 | 所有系统 | git config --global core.quotepath false | # 57、jupyter 推荐使用miniforge3创建虚拟环境使用jupyter lab ## 1、miniforge3使用 常用命令: ```bash conda init conda init --reverse --all conda config --set auto_activate_base false #设置终端开启没有(base) conda create -n <虚拟环境名字> <安装的依赖> conda activate <虚环环境名字> #启动虚拟环境 conda deactivate #退出虚拟环境 conda list #查看安装的依赖 conda remove -n <虚拟环境名字> --all #移除环境 conda config --set auto_activate_base false ``` 配置jupyter内核: ```bash pip install ipykernel python -m ipykernel install --user --name <当前虚拟环境名字> --display-name ``` 启动jupyter lab,选择相应的内核即可。 jupyter删除内核: ```bash jupyter kernelspec list #查看内核 jupyter kernelspec remove ``` jupyter中查看python版本: ```python import sys print(sys.version) print(sys.executable) ``` conda环境打包: ```bash pip freeze > requirements.txt pip install -r requirements.txt conda list -e > requirements.txt conda install --yes --file requirements.txt conda env export > environment.yml conda env create -f environment.yml conda pack -n myenv -o myenv.tar.gz mkdir -p ~/environments/myenv tar -xzf myenv.tar.gz -C ~/environments/myenv source ~/environments/myenv/bin/activate ``` [conda终端命令补全](https://github.com/tartansandal/conda-bash-completion): ```bash conda install -c conda-forge conda-bash-completion 在~/.bashrc中添加以下内容: CONDA_ROOT=~/anaconda3 # <- set to your Anaconda/Miniconda installation directory if [[ -r $CONDA_ROOT/etc/profile.d/bash_completion.sh ]]; then source $CONDA_ROOT/etc/profile.d/bash_completion.sh else echo "WARNING: could not find conda-bash-completion setup script" fi source ~/.bashrc ``` ## 2、ubuntu20.04中安装jupyter notebook扩展 使用以下两行代码: `pip3 install jupyter_contrib_nbextensions` `jupyter-contrib-nbextension install --user` 安装完后视图: ![](https://cdn.nlark.com/yuque/0/2022/png/29754277/1672370614444-701fd762-97f9-4ca1-8749-7644b8c87102.png) ## 3、JupyterNotebook安装c++内核 通过miniconda安装 step1:安装miniconda([官网](https://docs.conda.io/en/latest/miniconda.html)) 下载好后使用命令`bash (文件名).sh`安装 参考:miniconda常用命令: [Miniconda 安装及使用 - 掘金](https://juejin.cn/post/7078965942968909854) step2:安装xues-cling `conda install -c conda-forge xeus-cling` step3:注册内核 ```bash jupyter-kernelspec install --user xcpp11 jupyter-kernelspec install --user xcpp14 jupyter-kernelspec install --user xcpp17 ``` 完成安装 --- 在jupyter notebook中使用c++效果不是很好,因为c++不是解释性语言,需要联系上下文程序,有些时候无法运行 ## 4、安装jupyter lsp ```bash pip install jupyterlab-lsp==5.1.0 pip install 'python-lsp-server[all]' ``` jupyter lab中进行配置: 1. 在高级设置中添加```{"continuousHinting": true}``` ![image-20241125184652220](./Picture/整机小知识/image-20241125184652220.png) 2. 修改下图选项为```true``` ![image-20241125184803989](./Picture/整机小知识/image-20241125184803989.png) * jupyter lsp卸载 ```bash pip uninstall jupyterlab-lsp pip uninstall jupyter-lsp pip uninstall 'python-lsp-server[all]' ``` # 59、chrome限制的端口号 1: // tcpmux 7: // echo 9: // discard 11: // systat 13: // daytime 15: // netstat 17: // qotd 19: // chargen 20: // ftp data 21: // ftp access 22: // ssh 23: // telnet 25: // smtp 37: // time 42: // name 43: // nicname 53: // domain 77: // priv-rjs 79: // finger 87: // ttylink 95: // supdup 101: // hostriame 102: // iso-tsap 103: // gppitnp 104: // acr-nema 109: // pop2 110: // pop3 111: // sunrpc 113: // auth 115: // sftp 117: // uucp-path 119: // nntp 123: // NTP 135: // loc-srv /epmap 139: // netbios 143: // imap2 179: // BGP 389: // ldap 465: // smtp+ssl 512: // print / exec 513: // login 514: // shell 515: // printer 526: // tempo 530: // courier 531: // chat 532: // netnews 540: // uucp 556: // remotefs 563: // nntp+ssl 587: // stmp? 601: // ?? 636: // ldap+ssl 993: // ldap+ssl 995: // pop3+ssl 2049: // nfs 3659: // apple-sasl / PasswordServer 4045: // lockd 6000: // X11 6665: // Alternate IRC [Apple addition] 6666: // Alternate IRC [Apple addition] 6667: // Standard IRC [Apple addition] 6668: // Alternate IRC [Apple addition] 6669: // Alternate IRC [Apple addition # 60、pip命令补全 ```bash pip completion --bash >> ~/.bash_profile 然后将.bash_profile中的内容复制粘贴到~/.bashrc中,并删除.bash_profile文件,否则ssh登录环境会报错 ``` # 61、Ubuntu固定ip地址 1. ```ip a```查询本机ip地址 本机输出如图: ![image-20241129140859884](./Picture/整机小知识/image-20241129140859884.png) 应该很好判断本机网卡和ip地址 2. 进入/etc/netplan位置,查看电脑上的网络配置文件,把本机网络配置文件复制一份备用,然后```sudo gedit /etc/netplan/01-network-manager-all.yaml```编辑,记得后面的文件名更换成本机电脑上的网络配置文件,编辑内容如下: ```` # Let NetworkManager manage all devices on this system network: ethernets: enp2s0: addresses: [192.168.30.249/24] #ip地址加掩码 dhcp4: no optional: true routes: - to: default via: 192.168.30.1 #网关 nameservers: addresses: [192.168.30.1] #跟网关一样 version: 2 ```` 查看本机网关和dns地址的方法: ```bash traceroute www.baidu.com 100 # 第一行就是自己的网关 # 查看dns nslookup www.baidu.com ``` 3. 修改NetworkManager.conf ```bash sudo gedit /etc/NetworkManager/NetworkManager.conf 将magaged=false改为managed=true ``` 实测需要修改这一项,ip地址会永远固定下来,不改的话ip地址过一段时间又会变 4. 重启本机网络服务 ```bash sudo netplan apply sudo systemctl restart systemd-networkd sudo systemctl restart NetworkManager ``` **报错解决** * WARNING **: 10:14:11.814: Permissions for /etc/netplan/00-installer-config.yaml are too open. Netplan configuration should NOT be accessible by others. ```sudo chmod 600 /etc/netplan/01-network-manager-all.yaml``` # 62、解决pip开启代理后无法使用 1. pip换源设置方法 ```pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple``` 2. 在系统的代理服务器里面添加: ![image-20241129192220794](./Picture/整机小知识/image-20241129192220794.png) 以清华源为例,添加pypi.tuna.tsinghua.edu.cn,用```;```作为分隔 # 63、git diff提示filemode发生改变 ```git config --global core.filemode false``` [参考文档](https://blog.csdn.net/lxw1844912514/article/details/103418431) # 64、pip清除缓存命令 ```bash pip cache info #查看缓存信息 pip cache list #查看缓存路径 pip cache dir #查看缓存路径 pip cache purge #清除缓存 ``` # 66、开机自启 ## windows 1. 使用bat脚本批量自启的优点在于可以设置启动顺序 ```bat :: @echo off可以关闭pwd路径与指令显示 @echo off chcp 65001 >nul :: 恢复桌面布局 :: timeout /t 1 start /b "" "C:\APP\Portable_App\ReIcon\恢复(R) - 谦谦的大桌面" echo 恢复桌面布局启动完成 . :: 启动Everything timeout /t 1 C:\APP\Portable_App\nircmd-x64\nircmd.exe exec hide C:\APP\Everything\Everything.exe echo Everything启动完成 . :: 启动dopus timeout /t 1 start /b "" "C:\APP\Portable_App\Directory Opus\Directory Opus (启动).lnk" echo dopus启动完成 . :: 拨号连接 timeout /t 1 rasdial Net_in 24B904015 200184LMQ echo 网络连接完成 . timeout /t 10 :: 启动ddns-go :: timeout /t 1 :: start /b "" "C:\APP\ddns-go_6.8.1_windows_x86_64\ddns-go.exe" :: echo ddns-go服务启动 :: 启动clash timeout /t 1 start /b "" "C:\APP\Clash Verge\clash-verge.exe" echo clash启动完成 . :: 重启easytier服务 timeout /t 1 nssm restart easytier echo easytier 服务重启完成。 :: 启动TranslucentTB timeout /t 1 start /b "" "C:\APP\Portable_App\TranslucentTB\TranslucentTB.exe" echo TranslucentTB启动完成 . :: 启动AutoHide timeout /t 1 start /b "" "C:\APP\Portable_App\AutoHideDesktopIcons.exe" echo AutoHide启动完成 . :: 启动twinkle-tray timeout /t 1 start /b "" "C:\Users\Mickey\AppData\Local\Programs\twinkle-tray\Twinkle Tray.exe" echo twinkle-tray启动完成 . :: 启动coretemp timeout /t 1 start /b "" "C:\APP\Core Temp\Core Temp.exe" echo coretemp启动完成 . :: 启动Snipaste :: timeout /t 1 :: start /b "" "C:\APP\Portable_App\Snipaste\Snipaste.exe" :: echo Snipaste启动完成 . :: 启动Pixpin timeout /t 1 start /b "" "C:\APP\Portable_App\PixPin\PixPin.exe" echo Pixpin启动完成 :: 启动zerotier :: timeout /t 1 :: start /b "" "C:\Program Files (x86)\ZeroTier\One\zerotier_desktop_ui.exe" :: echo Zerotier启动完成 . :: 启动Resilio Sync timeout /t 1 C:\APP\Portable_App\nircmd-x64\nircmd.exe exec hide C:\Users\Mickey\AppData\Roaming\Resilio Sync\Resilio Sync.exe echo Resilio Sync启动完成 . :: 启动Rustdesk timeout /t 1 C:\APP\Portable_App\nircmd-x64\nircmd.exe exec hide C:\APP\RustDesk\rustdesk.exe echo Rustdesk 完成。 :: 启动mountaindock :: timeout /t 5 :: C:\APP\Portable_App\nircmd-x64\nircmd.exe exec hide C:\Program Files\WindowsApps\io.mountainduck_5.0.4.28064_x64__nx15cxr8682sp\Mountain Duck.exe :: echo mountain dock启动完成 :: 启动watch_clash_config :: timeout /t 30 :: powershell -File "C:\APP\Portable_App\watch_clash_config.ps1" :: echo watch_clash_config启动完成 . :: 启动Alist :: cd "C:\APP\Portable_App\Alist" :: alist.exe server :: echo Alist启动完成 :: 启动RaiDrive :: timeout /t 1 :: start /b "" "C:\APP\RaiDrive\RaiDrive.exe" :: echo RaiDrive启动完成 :: 自动挂杂sftp :: timeout /t 1 :: C:\APP\Portable_App\nircmd-x64\nircmd.exe exec hide C:\APP\Portable_App\rclone-v1.72.0\mount_nas.bat :: 自动加载autohotkey脚本 timeout /t 1 start /b "" "C:\APP\Portable_App\number.exe" exit ``` * /b参数:让脚本执行时不用打开多个窗口 * "":双引号作用是允许脚本可以执行空格和中文路径 * /min参数:最小化启动程序,最好是在程序自身有静默启动的功能时使用,否则最小化后程序界面可能打不开,例如resilio sync * 为了让终端窗口中文不出现乱码,将bat文件另存为ANSI编码格式 **2025.4.17更新:使用Nircmd可以更方便地设置程序启动时是否隐藏窗口** Nircmd官方下载链接: nircmd是一个功能很丰富的命令行工具,其`exec`子命令可调用其它程序,并可指定以最大窗口、最小窗口、隐藏窗口的方式运行。例如: ```powershell # 运行 E:\app\rdesk\rdesk.exe 并隐藏窗口, # 同时为rdesk指定了选项-c和参数config.json .\nircmd.exe exec hide E:\app\rdesk\rdesk.exe -c E:\app\rdesk\config.json # 最小窗口运行程序 # .\nircmd.exec exec min E:\app\rdesk\rdesk.exe -c E:\app\rdesk\config.json # 最大窗口运行程序 # .\nircmd.exec exec max E:\app\rdesk\rdesk.exe -c E:\app\rdesk\config.json ``` 如果要运行的程序需要以管理员权限运行,则使用如下方式: ```powershell .\nircmd.exe elevatecmd exec hide YOUR-CMD ``` 更改后的自启动脚本(部分示例): ```bat :: 启动Resilio Sync timeout /t 1 C:\APP\Portable_App\nircmd-x64\nircmd.exe exec hide C:\Users\Mickey\AppData\Roaming\Resilio Sync\Resilio Sync.exe echo Resilio Sync启动完成 . ``` 参考链接:[windows隐藏程序运行窗口.html](https://openlist.speedtest.mingqian.online/@s/xIc4DRmK/windows%E9%9A%90%E8%97%8F%E7%A8%8B%E5%BA%8F%E8%BF%90%E8%A1%8C%E7%AA%97%E5%8F%A3.html) 1. 使用vbs脚本静默执行bat脚本 ```vbs Dim ws Set ws=WScript.CreateObject("WScript.Shell") ws.Run "C:\APP\Portable_App\startup.bat /start",0 Wscript.quit ``` 记得将bat脚本路径进行替换 win+r,输入shell:startup打开,将vbs脚本移动到该文件夹 这种实现开机自启的好处在于可以自定义启动顺序,并且方便进行开机启动项的管理。 [参考文档](https://blog.csdn.net/NineWaited/article/details/128758263) ## Mac 1. **使用自带的automator(自动操作)软件完成** 2. **打开“自动操作”软件** ![image](./Picture/整机小知识/2333726-20240108143652115-762963906.png) 3. **创建“应用程序”** ![image-20250616030842132](./Picture/整机小知识/image-20250616030842132.png) 4. **选择“运行Shell脚本”** 路径:资源库->实用工具->运行Shell脚本; 设置开机执行命令: ![image-20250616031313417](./Picture/整机小知识/image-20250616031313417.png) 5. **点击“运行”查看运行结果** 首次“运行”命令成功 ![image-20250616032651178](./Picture/整机小知识/image-20250616032651178.png) 6. **保存程序** 如上图标注,一定不要点叉,直接保存就行 通过快捷键:command+s 保存为程序,保存到应用程序 7. **打开系统设置,搜索登录项,添加应用程序即可** ![img](./Picture/整机小知识/v2-be7af5356be028e7adb97d2b44ffc5fc_1440w.jpg) # 67、nodejs安装 1. nvm安装 ```bash # installs nvm (Node Version Manager) curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash ## 终端输出 => nvm source string already in /home/mickey/.bashrc => bash_completion source string already in /home/mickey/.bashrc => Close and reopen your terminal to start using nvm or run the following to use it now: export NVM_DIR="$HOME/.nvm" [ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm [ -s "$NVM_DIR/bash_completion" ] && \. "$NVM_DIR/bash_completion" # This loads nvm bash_completion # download and install Node.js (you may need to restart the terminal) ## 终端输出 nvm install 22 # verifies the right Node.js version is in the environment node -v # should print `v22.12.0` # verifies the right npm version is in the environment npm -v # should print `10.9.0` ``` # 68、chrome停止更新 * windows * 关闭右上角更新提示 在Google Chrome浏览器的快捷方式,右键选择“属性”,在目标一栏中追加代码```--disable-background-networking```(注意“--”前如果没有空格则留一个空格,如果有则忽略),点击确定保存,再打开就不会弹出提示。 更多设置参考[禁止Chrome弹出无法更新的提示窗.html](https://openlist.speedtest.mingqian.online/@s/xIc4DRmK/%E7%A6%81%E6%AD%A2Chrome%E5%BC%B9%E5%87%BA%E6%97%A0%E6%B3%95%E6%9B%B4%E6%96%B0%E7%9A%84%E6%8F%90%E7%A4%BA%E7%AA%97.html) * 利用BC uninstaller停止google chrome更新服务 ![image-20250102121144757](./Picture/整机小知识/image-20250102121144757.png) * Ubuntu 使用```wget https://mirror.cs.uchicago.edu/google-chrome/pool/main/g/google-chrome-stable/google-chrome-stable_120.0.6099.224-1_amd64.deb```下载安装包,该安装包可以禁用HTTPS Upgrade,同时可以使用搜狗输入法 1. 删除软件源列表里的chrome更新源,具体在```/etc/apt/sources.list.d```中 2. 使用以下命令在APT源中禁止chrome更新 ```sudo apt-mark hold google-chrome-stable``` 3. 第 1 步:停用 Chrome 浏览器更新 如要阻止 Chrome 浏览器自动更新,请执行下列操作之一: * 在安装 Chrome 浏览器之前先创建一个空白存储区: `$ sudo touch /etc/default/google-chrome` * 将以下代码行添加到 **/etc/default/google-chrome**: `repo_add_once=false` 第 2 步:停用 Chrome 浏览器组件更新(可选) *仅适用于 Chrome 浏览器组件* 即使您停用 Chrome 浏览器的自动更新功能,浏览器组件也不会停止自动更新。这些组件包括 Widevine DRM(适用于加密媒体)和 Chrome 更新程序恢复组件。如要阻止这些组件更新,请停用 Chrome [ComponentUpdatesEnabled](https://cloud.google.com/docs/chrome-enterprise/policies/?policy=ComponentUpdatesEnabled) 政策。 使用您的首选 JSON 文件编辑器: 1. 在 **/etc/opt/chrome/policies/managed** 文件夹中创建一个 JSON 文件,并将其命名为 **component_update.json**。 2. 在 JSON 文件中添加以下设置以停用组件更新: ```json { "ComponentUpdatesEnabled": "false" } 3. 为用户部署更新。 完成以上步骤后,会停止chrome的自动更新,并且浏览器中不会出现更新提示。 # 69、远程桌面控制 ## sunshine+moonlight 通过zerotier组网后,连接仍不稳定,作为备用方案 ## rustdesk 各端口作用: 21114 (TCP): 用于网页控制台,仅在 Pro 版本中可用 Pro版本功能,略过 #### 21115 (TCP): 用于 NAT 类型测试 RustDesk 客户端要想做到**P2P直连**,必须知道自己是否能被外网访问。如果两边都是对称 NAT,直连基本没戏,只能走中继 (hbbr)。所以连接前要测试 NAT 类型。 RustDesk 客户端在启动时,会尝试通过 hbbs 的 21115/TCP 端口: 1. **探测公网可见 IP 和端口** 客户端向 hbbs 发送请求,hbbs 看到的来源 IP/端口可能和客户端自己认为的不一样。这样能识别 NAT 是否改写了端口。 2. **区分 NAT 类型** * **开放 / Full Cone NAT** → 直连成功率很高。 * **受限锥形 (Restricted Cone NAT)** → 大部分情况下能打洞成功。 * **端口受限 (Port-Restricted Cone NAT)** → 打洞更难。 * **对称 NAT (Symmetric NAT)** → 几乎无法 P2P,只能走中继 (21117)。 3. **决定连接策略** * 如果 NAT 类型“友好”,RustDesk 就会优先尝试 P2P。 * 如果 NAT 类型“不友好”,RustDesk 会直接转向中继 (21117)。 21115 端口的作用就是让 hbbs 充当一个“探测点”,帮客户端确认自己处于哪种 NAT 类型,从而决定能否直连还是必须用中继。 #### 21116/UDP 用于 ID 注册和心跳服务 ID 注册: * 当客户端启动时,它会随机生成一个`ID`。 * 客户端通过`21116/UDP`把自己的信息(ID、公网 IP、端口、NAT 类型等)注册到hbbs(ID server)。 * hbbs 维护一个`ID → 节点地址表`,用来让其他客户端能够找到当前的客户端。 心跳服务: * 客户端会定期通过UDP包向 hbbs 发“心跳”。 * hbbs依靠心跳来: * 确认客户端是否在线。 * 刷新客户端的公网地址和端口(因为NAT映射可能过期)。 * 保持NAT映射存活(UDP打洞需要映射一直有效)。 #### 21116/TCP 用于 TCP 打洞和连接服务 * 当双方 NAT 情况允许时,执行TCP 打洞 * 如果 UDP 不可达,尝试建立 TCP 通道 * 在必要时,作为连接控制和数据传输的备用通道 #### 21117/TCP:中继服务(Relay) * 当客户端之间"无法直接 P2P 连接"(例如双方都在对称 NAT 或防火墙阻挡 UDP/TCP 打洞)时,RustDesk 会使用 中继服务器 (hbbr)转发流量。 * ``` 21117/TCP ``` 就是中继服务监听的端口,负责: * 接收客户端发来的数据。 * 将数据转发给目标客户端。 可以理解为:当直连失败时,所有流量都会通过`21117/TCP`“绕道” #### 21118/TCP & 21119/TCP:支持网页客户端 * hbbs - 21118/TCP * hbbr - 21119/TCP RustDesk 除了桌面客户端外,还有网页端: * 提供 **HTTP/HTTPS 或 WebSocket 通道**,让网页客户端能连接到 RustDesk 服务。 * 转发控制命令和远程桌面数据,类似桌面客户端的功能。 在实验室ubuntu电脑上部署rustdesk server,通过zerotier组网后连接较稳定,可通过该方法远程连接。 ### 安装方法 根据需要自行将命令切换为root 下载编译好的文件 [https://github.com/rustdesk/rustdesk-server/releasesgithub.com/rustdesk/rustdesk-server/releases](https://github.com/rustdesk/rustdesk-server/releases) 链接: 解压缩 ```text unzip rustdesk-server-linux-amd64.zip ``` 移动文件 ```text mv rustdesk-server-linux-amd64/amd64 /home/ mv amd64/ rustdesk_server/ ``` 赋予可执行权限 ```text chmod +x hbbs chmod +x hbbr ``` 配置Service服务 ```text vim /etc/systemd/system/hbbs.service ``` 内容如下 ```text [Unit] Description=Rust Desk Service After=network.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s WorkingDirectory=/home/rustdesk_server #-r用于指定网卡IP(适用多网卡),-k参数用于强制校验客户端公钥,用于避免未授权的使用 ExecStart=/home/rustdesk_server/hbbs -r 0.0.0.0 -p 21116 -k _ [Install] WantedBy=multi-user.target ``` ```text vim /etc/systemd/system/hbbr.service ``` 内容如下 ```text [Unit] Description=Rust Desk Service After=network.target [Service] Type=simple User=root Restart=on-failure RestartSec=5s WorkingDirectory=/home/rustdesk_server #-k参数用于强制校验客户端公钥,用于避免未授权的使用 ExecStart=/home/rustdesk_server/hbbr -p 21117 -k _ [Install] WantedBy=multi-user.target ``` 重载并启动服务 ```text systemctl reload systemctl start hbbs systemctl start hbbr ``` 查看服务状态 ```text systemctl status hbbs systemctl status hbbr ``` ![img](./Picture/整机小知识/v2-6b8d9f6133e513ed20e26f60acfc362c_1440w.jpg) key就是/home/rustdesk_server文件夹运行后出现的id_ed25519.pub里的内容 ```text cat id_ed25519.pub ``` 获取 ID服务器和中继服务器只需填写IP,端口RustDesk会自动推导(如果没有特别设定) 注:中继服务器按官方文档的说法也无需填写,但在我的使用中,如果不填写,安卓无法远控PC,提示是无法找到中继服务器 ![img](./Picture/整机小知识/v2-67608449fd04f63601118067b7352347_r.jpg) 其中的hbbr服务和hbbs服务配置好后通过以下命令设置为开机自启: ```bash sudo systemctl enable hbbr.service sudo systemctl enable hbbs.service # 防火墙端口放行 # 可以放行的最小端口:21115:21117/tcp,21116/udp sudo ufw allow 21114:21119/tcp sudo ufw allow 21116/udp ``` ## 客户端配置 在 **ID Server** 输入框中输入 `hbbs` 主机或 IP 地址(本地端 + 远程端)。另外两个地址可以留空,RustDesk 会自动推断(如无特殊设置),Relay Server 指的是 `hbbr` (端口 21117)。 现有的rustdesk服务配置: * ip:rustdesk.speedtest.mingqian.online key:9awg+DT4hXiyoTSmzLhOOnnGpmSmEsuoWr7XRVhTTZ4= --- * ip:10.2.1.1 key:tSim+bSGkzpLeLFtabgpygGY5jFN229UlZBIVKI2cCA= * ip:mingqian.space key:CxE3+lVugrcuuvGpyEI2LN7hoyuYvcEZ6Zpu2ZUbej4= * ip:172.25.0.3 key:VZfESgD4oDdJpJoJfrZVmlXmpJFPfcp71+5UwjTpmjQ= * ip:10.1.1.2 key:fWpUAPIymD9GNh6svhyKoSu2xpsU99Fy86bL3IxIr88= * ip:10.1.1.1 * tSim+bSGkzpLeLFtabgpygGY5jFN229UlZBIVKI2cCA= *由于实验室电脑没有ipv6,所以用zerotier组网的ip地址访问更流畅* ## 发现了新大陆 无意中发现的,可以在rustdesk 安全选项中开启允许ip直接访问,如下图,然后设置相应的端口好号,就可以通过ip直连访问,速度快到飞起,延迟在1ms左右 ![image-20250927003327480](./Picture/整机小知识/image-20250927003327480.png) 没办法,rustdesk自己的打洞服务太差劲,使用zerotier打洞成功后,通过zerotier的虚拟ip地址直连访问速度快到飞起,美中不足的是会显示非加密直连,有个红色的叉叉图标,有点丑,同时不会显示服务器的在线状态,不过问题不大,可以通过中继服务器连接的选项来查看,如下图,绿色表示在线,橙色表示离线,但实际是在线的。 ![image-20250927003633958](./Picture/整机小知识/image-20250927003633958.png) 各设备ip地址: mickey-server:10.2.1.2:8002 dell:10.2.1.3:8003 实验室ubuntu:10.2.1.4:8004 实验室4080服务器:10.2.1.5:8005 --- 各设备id: mickey-mingfan:1 250 692 094 dell:mickey-dell 实验室ubuntu:1638658645 4080服务器:374264127 密码统一为:lmq666CQM,YSZGAYRty@rustdesk rustdesk客户端在ubuntu上安装好后默认是开机自启的,系统已经把服务配好 # 70、Ubuntu ufw防火墙 ```bash sudo ufw enable/disable sudo ufw allow 端口 sudo ufw delete allow 端口 sudo ufw allow from ``` 参考资料: # 71、Windows防火墙规则添加 参考: # 72、Window设置笔记本合盖后不发热 **不一定有用,只能说试试** win本合盖发热问题解决方法 一,先拔掉充电器,再合盖 先拔充电器,再合盖!! 这一步是最简单最方便的,而且可以解决大多数问题。 二,将电脑调整为休眠模式 注意!! 在某些电脑当中,休眠模式是禁用的,虽然可以通过命令提示符强行打开休眠模式,但是不建议这样做。因为强行打开休眠模式会占用非常多的硬盘空间,同时也可能会带来一些兼容性的问题。 按win+R键,输入cmd,然后按回车,打开命令提示符。 通过powercfg /a 命令可以查询你的电脑支持的睡眠状态 假如你的电脑是允许休眠模式的,那就这样做: 1,打开电源选项 在Windows任务栏的搜索框中输入“电源选项”,然后点击选择电源按钮的功能。 2,修改电源按钮设置 在定义电源按钮和开启密码保护页面,点击更改当前不可用的设置。 滚动到下方的关闭电源按钮的设置,然后勾选休眠选项(如果休眠模式已经启用)。 3,保存更改 确认更改后,点击保存更改。 如果休眠模式没有显示,则可以通过以下步骤启用: 按 win+x 或右键单击“开始”按钮,选择“终端 (管理员)”或“命令提示符 (管理员)”——注意,一定得是管理员模式,常规用win+R然后输入cmd的方法不行。 输入以下命令并按回车:powercfg /hibernate on 重新启动计算机,确保休眠模式被启用。 三,手动关闭某些外设的唤醒功能 禁用设备的唤醒功能 注意!! 在关闭了以下唤醒功能后,你的电脑就无法通过按鼠标或者按键盘直接唤醒了,必须点击电源键,这可能会带来一些使用上的繁琐。此外,并不是所有的设备都需要关闭,大家可以酌情选择,比如只关闭鼠标或者键盘的。 总之方法都在下面。 另:在我们的实际测试当中,USB设备的唤醒功能并不影响电脑发热问题,所以这里就没有提。 1,打开设备管理器 在任务栏搜索框中输入“设备管理器”,点击设备管理器。 2,查找相关外设 在设备管理器中,找到你怀疑会唤醒电源的外设。常见的外设包括: 鼠标和键盘:展开**“鼠标和其他指针设备”**,找到你使用的鼠标设备。 网络适配器:展开**“网络适配器”**,找到你使用的网络适配器(尤其是Wi-Fi适配器)。 3,禁用唤醒功能 右键点击目标设备,选择属性。 切换到电源管理标签。 在电源管理选项卡下,找到允许此设备唤醒计算机,并取消勾选该选项。 4,保存更改 点击确定保存更改。 5,重复此步骤对所有可能唤醒计算机的设备(如鼠标、键盘、网络适配器等)进行设置。 此外,有时候电源选项中的一些设置也可能导致外设唤醒计算机。你可以调整这些设置以确保外设不会影响休眠状态。 调整电源选项设置: 1,打开电源选项 在任务栏搜索框中输入“电源选项”,并点击电源和睡眠设置。 2,更改计划设置 点击更改计划设置,然后点击更改高级电源设置。 3,禁用唤醒设置 在弹出的窗口中,展开睡眠,然后找到允许唤醒计时器,将其设置为禁用。 4,保存更改 点击应用,然后点击确定。 # 73、配置ddns服务 现在的路由器都无法对ipv6地址进行ddns服务,于是用ddns-go进行配置服务。 域名为:mingqian.space,托管在dnspod上 腾讯云API秘钥: SecretId:AKIDoSs3ziCRRCj26uTntlOmvpUxBAuQimbB SecretKey:OXR6XjgPs78vTntjNmwrX1GG1XoqdBVa DNSPod Token: ID:554733 Token:f5d9d4a3ec72ab7d29441a1275a4a1d1 cloudflare Token: zdmcke1OO5pXayGYv1TNvBl2c8e6zuRlHJGzJF_l global API key:885303f6600457b0607d993cd1c6afa0dfa11 ![image-20250813144647833](./Picture/整机小知识/image-20250813144647833.png) ddns-go 监听端口:9876 server酱配置链接: 其中sendkey:SCT269225T0yUrmFtxOaN4QwOrKLjpNyEp # 74、git push报错 ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. 解决方法:在.ssh目录下新建config文件,添加以内容: ``` Host github.com Hostname ssh.github.com Port 443 ``` # 75、不同播放器对HDR和杜比视界的支持 | 播放器 | HDR | 杜比视界 | | :-------: | :--: | :------: | | vlc | √ | × | | mpv | √ | √ | | mpc-be | √ | √ | | potplayer | √ | √ | 真的是时过境迁啊,记得我一开始用的就是potplayer,但是potplayer并不支持HDR,所以后来就开始用上了vlc和mpv,因为mpv太过简洁,什么都需要自己配置,于是就把vlc当作主要播放器使用了,后面又遇到了vlc不能播放杜比视界,网上一查,mpv可以,但是需要配置,于是下了mpv.net进行配置,mpv.conf文件配置如下: ``` vo=gpu-next gpu-context=win ``` mpv-android播放杜比视界配置: v选择gpu-next,解码方式选择软件解码 配置完后mpv即可正常播放杜比视界,mpc-be则是无需任何配置也能播放HDR和杜比视界,但是界面太丑,最令我惊喜的就是potplayer,居然支持HDR和杜比视界了,而且不用额外配置,强!!!! # 76、解决chrome将http变为https 使用URL Rule插件 # 77、Mac使用快捷键 1. 查看Mac所有文件:```shift+command+c``` 2. 关闭视窗:```command+w``` 关闭应用程序:```command+q``` 3. 复制文件:```command+c``` 粘贴文件:```command+v``` 剪切文件:```command+option+v``` 4. 显示隐藏文件:```command+shift+.``` 在finder中打开前往文件夹的窗口:```command+shift+G``` 强制退出程序:```Option + Command + Esc``` # 78、Mac删除自带输入法ABC ## 1. 关闭系统完整性保护 SIP * 重启系统,按住 `Command + R` 进入恢复模式。 * 点击顶部菜单栏 `实用工具` 中的 `终端` 。 * 输入以下命令来禁用 `SIP` 保护机制。 ```text csrutil disable ``` * 执行后输出以下信息表示禁用成功。 ```text Successfully disabled System Integrity Protection. Please restart the machine for the changes to take effect. ``` * 然后再次重启系统即可。 ## 2.找到 com.apple.HIToolbox.plist 文件 * **sudo open ~/Library/Preferences/** 找到 **com.apple.HIToolbox.plist** 文件 * 使用 xcode 或者 PlistEdit Pro 也可以 ![img](./Picture/整机小知识/v2-6458248c818d767d4fe02c49d313f9d3_1440w.jpg) * 依次点开 `Root` - `AppleEnabledInputSources` ,会看到一列 `item` ,找到其中 `KeyboardLayout Name` 为 `ABC` 的那一列,将整列 `item` 删掉,然后 `command + S` 保存 * 重点来了,这个时候如果你只是保存的话,马上就回被系统改回来。右键点击 com.apple.HIToolbox.plist 文件,显示简介 - 勾选已锁定 ![img](./Picture/整机小知识/v2-feef731c9987b505906532d7fa66c514_1440w.jpg) # 79、Mac开盖自启和断电自启 ```bash # 如果不需要打开盖子或连接电源自己开机 sudo nvram BootPreference=%00 # 如果不需要打开盖子自己开机 sudo nvram BootPreference=%01 # 如果不需要连接电源时自己开机 sudo nvram BootPreference=%02 # 恢复打开盖子或连接电源时自启动 sudo nvram -d BootPreference ``` # 80、验机 以下步骤均需全程录像,中间不能间断 ## 手机 1、检查快递盒,确认快递盒无破损,未开封后在拆开 2、检查手机盒有无挤压变形,塑封是否完整流畅,无明显污渍划痕 3、核对手机盒上的信息是否与购买信息一致,包括型号、颜色、存储规格 4、根据IMEI码和序列号到官网查询产品信息和激活状态。**若为已激活,直接退** | 品牌 | 查询类型 | 查询网址 | | ------------ | --------------------------- | ------------------------------------------------------------ | | 华为 | 服务支持 - 保修期及权益查询 | [https://consumer.huawei.com/cn/support/warranty-query/](https://consumer.huawei.com/cn/support/warranty-query/) | | 苹果 | 技术支持 - 查看保修服务 | [https://checkcoverage.apple.com/](https://checkcoverage.apple.com/) | | OPPO / 一加 | 服务 - 真伪鉴别 | [https://support.oppo.com/cn/check/](https://support.oppo.com/cn/check/) | | 小米 / REDMI | 服务中心 - 真伪查询 | [https://www.mi.com/service/imei](https://www.mi.com/service/imei) | | vivo / iQOO | 服务 - 真伪查询 | [https://support.vivo.com.cn/service/authenticityCheck](https://support.vivo.com.cn/service/authenticityCheck) | | 魅族 | 服务 - 保修及真伪查询 | [https://service.meizu.com/authenticity.html](https://service.meizu.com/authenticity.html) | | 三星 | 售后服务 - 激活日期查询 | [https://support-cn.samsung.com.cn/supportcn/imei/default.aspx](https://support-cn.samsung.com.cn/supportcn/imei/default.aspx) | | 荣耀 | 服务支持 - 保修期及权益查询 | [https://www.honor.com/cn/support/warranty-query/](https://www.honor.com/cn/support/warranty-query/) | | 真我 | 服务 - 真伪和保修查询 | [https://www.realme.com/cn/support/phonecheck](https://www.realme.com/cn/support/phonecheck) | 5、开箱验机,戴手套(或者包着纸),仔细查看屏幕背板边框是否有指纹,玻璃背板有没有瑕疵点,边框和摄像模组是否有掉漆和划痕,前后摄像头是否有灰尘,摄像头是否对正,按键是否有清脆的声音,回弹是否正常 6、开机,不要插卡和联网激活,进入拨号界面,输入*#06#,查看IMEI码, 手机背面和手机盒上的IMEI码是否一致 7、打开手机自检功能,重点注意屏幕边缘触控是否正常,有无坏点,检测结束后可以看下屏幕显色是否均匀,边缘是否漏光,可以拖动图标在屏幕所有区域滑动,看是否有断触的情况。打开相机,切换不同焦距对着白纸拍几张,查看有没有黑点。 | 品牌 | 自检功能所在位置 | | ------------------ | -------------------------------------------- | | vivo / iQOO | i管家 - 实用工具 - 手机优化 - 手机检测 | | OPPO / 一加 / 真我 | 手机管家 - 右上角三个点 - 常规检测 | | 小米 / REDMI | 小米商城 - 服务 - 手机自检 | | 华为 | 我的华为 - 服务 - 快捷服务 - 更多 - 智能检测 | | 荣耀 | 我的荣耀 - 服务 - 设备检测 | ## 电脑 1、检查包装箱配置是否为购买的配置,包装箱是否损坏,封口是否被撕开过,各种配件有无遗漏 2、打开包装箱,检查电脑外观 * 检查外壳是否干净,特别是屏幕表面是否有脏污 * 检查电脑插口是否有重度使用的痕迹 * 检查螺丝是否有划痕 * 检查脚垫是否有灰尘 3、插电开机,跳过联网步骤,使用图吧工具箱检测 * 硬件信息栏查看电脑配置 * 屏幕工具一栏,选择坏点与漏光测试,最好在暗一点的环境下看,鼠标左键点击切换,ESC退出 * 屏幕工具一栏,选择显示器色域检测,主要看sRGB * 磁盘工具一栏,选择ASSSDBench mark,1G即可,左边全部打勾,需要注意硬盘的pcie是3.0还是4.0,具体什么盘可以询问客服或者查看商品详情页面,测完速后查看跟实际是否一致 * 磁盘工具一栏,CrystalDiskinfo检查硬盘,主要看通电时间,通电时间<100小时正常 * 外设工具一栏,选择Keyboard,检查键盘有没有按键坏的,每个键都按一遍 * 烤鸡工具一栏,选择FurMark,左下角settings设置,只勾选第一个和第三个,ok,然后点GPU stress test,不要关闭,打开AIDA64,在页面上方选择工具一栏,“系统稳定性测试”,只勾选第2个,左下角start开始测试。在AIDA64页面,左边点击计算机—>传感器,可以看到温度和功耗,笔记本电脑小于100℃,台式电脑小于80℃差不多,功耗和购买的不符可以直接退,双烤烤25~30min没有黑屏或者死机就ok了 # 81、ubuntu显卡开启持久模式(即on状态) 1. **单次执行命令** 执行持久模式启动命令`sudo nvidia-smi -pm 1` 执行 `nvidia-smi` 命令,若Persistence-M属性变为On,证明配置生效: ![image-20250507144411643](./Picture/整机小知识/image-20250507144411643.png) 2. **开机自动生效** 新建驱动持久化服务文件: ```bash sudo vim /etc/systemd/system/nvidia-persistenced.service ``` 填写以下内容: ``` [Unit] Description=NVIDIA Persistence Daemon Wants=network.target [Service] Type=forking ExecStart=/usr/bin/nvidia-persistenced --persistence-mode ExecStopPost=rm -rf /var/run/nvidia-persistenced [Install] WantedBy=multi-user.target 1234567891011AI写代码 ``` 设置服务开机自启 ``` systemctl daemon-reload systemctl start nvidia-persistenced.service systemctl enable nvidia-persistenced.service 123 ``` 查看服务运行状态 ```bash systemctl status nvidia-persistenced.service ``` # 82、ubuntu20.04无法打开设置 ubuntu设置无法打开,使用终端执行: ```bash gnome-control-center ``` 会提示: ```bash mazhuang@mz-Ubuntu:~$ gnome-control-center can't load /usr/lib/x86_64-linux-gnu/spa/support/libspa-support.so: /usr/lib/x86_64-linux-gnu/spa/support/libspa-support.so: cannot open shared object file: No such file or directory Segmentation fault (core dumped) ``` **解决方式:** 终端执行: ```bash sudo apt install pipewire ``` 成功解决 # 83、vscode取消Enter键自动补全 **取消** * 第一步 打开左下角的设置,再点键盘快捷方式 ![在这里插入图片描述](./Picture/整机小知识/0a14d0a4ffdc71cd821f8161acf94277.jpeg) * 第二步 搜索框中输入suggestion ![在这里插入图片描述](./Picture/整机小知识/d78d06159333a4c5ce1a8c795ba1f2b6.png) * 第三步 ![在这里插入图片描述](./Picture/整机小知识/ff34314436c0da241936fcba52d45407.png)找到acceptSelectSuggestion,默认情况下一条绑定Tab键,一条绑定Enter键,选中Enter的那条右键删除键绑定。修改后如图所示,只剩Tab一条。修改完毕! **恢复** 取消了之后不能像我们取消时的操作那样,用添加键绑定加回去。 这时需按下ctrl+shift+p,调出命令面板,然后输入keyboard,选择这一个: ![在这里插入图片描述](./Picture/整机小知识/f801c0247ada7d425dd011f3e91a637b.png) 进去以后在json文件中加入这段代码: ```python { "key": "enter", "command": "acceptSelectedSuggestion", "when": "acceptSuggestionOnEnter && suggestWidgetVisible && suggestionMakesTextEdit && textInputFocus" } 12345 ``` 如果这段代码已经存在,则只需将"-acceptSelectedSuggestion"前的 - 删掉即可 # 84、vscode设置只读快捷键 1. ctrl+shift+p,输入keyboard,打开键盘快捷方式 2. 搜索:在会话中切换活动编辑器只读 3. 将键盘快捷键设置为您想要切换为只读的键。我更喜欢在 Windows 中使用“ctrl+shift+R” 4. 现在右键单击刚刚设置的键绑定,选择“更改何时表达式”,然后输入“editorTextFocus”或“editorFocus”,然后按回车键。 ![img](./Picture/整机小知识/D6jdO.png) 修改完后如下图所示:![](./Picture/整机小知识/jEHkK.png) 现在您可以按下该键盘快捷键并在(只读 = True)和(只读 = False)之间切换。 # 85、解决windows下开启代理后微软无法访问的问题 解决办法:开启UWP环回代理 具体:在clash verge中找到uwp工具 ![image-20250518093108940](./Picture/整机小知识/image-20250518093108940.png) 进入后,先点击Exempt All,然后点击Save Changes ![image-20250518093153030](./Picture/整机小知识/image-20250518093153030.png) 可能会出现报错```Failed to set IsolationExempt AppContainers; call returned 0x57```,这个时候需要关闭一些已经打开的应用,比如这次关闭snipaste之后就可以,网上收集到的还有关闭onedrive,sandibox # 86、字幕简繁转换 使用opencc工具,目前是通过在ubuntu下源码编译项目后,可以使用opencc-dict工具将自定义的词库转换为ocd文件,命令为: ```bas opencc_dict -i custom_t2scharacter.txt -o custom_t2s.ocd2 -f text -t ocd2 ``` 其中custom_t2scharacter.txt文件是自己添加后的词库文件,custom_t2s.ocd2是生成的文件 * 注意在ubuntu下添加词库时需要将原来的行内容进行复制粘贴再进行修改,否则格式会不对,无法生成ocd2文件 而后在windows下conda的opencc环境中,找到对应的位置在里面添加custom_t2s.json文件(也可以直接everything搜索),然后就能通过代码正常调用。 # 87、小米手机查看电池健康度 1. 拨号界面输入\*\#\*\#284\#\*\#\*获取系统日志报告 2. 将报告发送到电脑(用手机打开很卡) 3. 解压,如下图所示 ![image-20250601154718750](./Picture/整机小知识/image-20250601154718750.png) ![image-20250601154753362](./Picture/整机小知识/image-20250601154753362.png) 4. 最好用vscode打开文件,次之可以用wps打开,用记事本打开会卡死,搜索battery capacity,如图所示 ![image-20250601155019084](./Picture/整机小知识/image-20250601155019084.png) 如果Estimated battery capacity显示个位数,则下一行为当前手机电池容量 # 88、Mac安装Homebrew并换源 * 安装 ```bash # 先在终端中临时开启代理安装Homebrew export http_proxy=http://127.0.0.1:7897 export https_proxy=http://127.0.0.1:7897 ``` [homebrew安装链接地址](https://brew.sh/) * 换源 ```bash echo 'export HOMEBREW_API_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles/api"' >> ~/.zprofile echo 'export HOMEBREW_BOTTLE_DOMAIN="https://mirrors.tuna.tsinghua.edu.cn/homebrew-bottles"' >> ~/.zprofile ``` * 删除多余的仓库 ```bash brew untap homebrew/core brew untap homebrew/cask ``` * 卸载 ```bash /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/uninstall.sh)" ``` # 89、Mac文件图标排列 ```bash control+command+0键 取消自动排列的快捷键 control+command+1键 按名称排列 control+command+2键 按种类排列 control+command+3键 按上次打开日期排列 control+command+4键 按添加的日期排列 control+command+5键 按修改的日期排列 control+command+6键 按大小排列 control+command+7键 按标记排列 ``` # 90、windows中使用nssm安装服务 ``` NSSM: The non-sucking service manager Version 2.24 64-bit, 2014-08-31 Usage: nssm