指令汇总|常用执行指令大全

2019/01/01 指令汇总 共 31874 字,约 92 分钟

img

本文作者: slience_me


常用指令大全

更新时间: 2025-02-15 22:00:00

1. Anaconda常用指令

1.1 激活环境

# 咱们的服务器一般都是默认dash脚本,所以我们先执行一下
# 激活环境
/bin/bash

# 激活的过程
source ~/.bashrc
source activate torch

# 退出环境
conda deactivate

# 多shell指令 先激活环境然后打开文件路径,最后启动notebook
activate torch&&d:&&cd D:\codeHub\machine-learning&&jupyter notebook

# 查看安装了哪些包  
conda list    

# 查看当前存在哪些虚拟环境
conda env list
conda info -e

# 对虚拟环境中安装额外的包
conda install -n your_env_name [package]

# 检查更新当前conda
conda update conda

# 创建python版本为x.x,名字为your_env_name的虚拟环境

conda create -n your_env_name python=x.x

# 删除虚拟环境
conda remove -n your_env_name --all

# 删除环境钟的某个包
conda remove --name $your_env_name $package_name 

# anaconda命令创建python版本为x.x,名字为your_env_name的虚拟环境。**your_env_name文件可以在Anaconda安装目录envs文件下找到**。

# 打开命令行,输入python --version检查当前 python 版本。

# 设置国内镜像
[http://Anaconda.org](https://link.zhihu.com/?target=http%3A//Anaconda.org)的服务器在国外,安装多个packages时,conda下载的速度经常很慢。清华TUNA镜像源有Anaconda仓库的镜像,将其加入conda的配置即可:
# 添加Anaconda的TUNA镜像
conda config --add channels [https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/](https://link.zhihu.com/?target=https%3A//mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/)

# TUNA的help中镜像地址加有引号,需要去掉
# 设置搜索时显示通道地址
conda config --set show_channel_urls yes

# 恢复默认镜像
conda config --remove-key channels

# 查看需要安装的模块的所有版本
pip index versions [your python module name]

# 创建虚拟环境venv
python3 -m venv 包名
conda create -n 虚拟环境名字 python=版本
conda remove -n 虚拟环境名字 --all

# 导出/入包环境为文件
pip freeze > requirements.txt         
pip install -r requirements.txt
conda install --yes --file requirements.txt
conda install --use-local 包名称    # 安装根目录的pkgs文件下的本地包
pip list --format=freeze > requirements.txt

# 导出conda环境
conda activate pytorch  # 先进入需要导出的环境
conda env export > env.yaml
cat env.yaml

# 导入conda环境
conda env create -f /mnt/hgfs/虚拟机/PaddleRobotics-main/env.yaml

# 换源 豆瓣源
pip3 install 模块 -i http://pypi.douban.com/simple/ --trusted-host pypi.douban.com
pip3 install 模块 -i http://pypi.tuna.tsinghua.edu.cn/simple/ --trusted-host tuna.tsinghua.edu.cn
pip3 install 模块 -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host aliyun.com
  
防止权限不足 加 --user

# pip相关
pip -V  # 查询
pip list

# 如果发现激活环境后,pip list -v 有base环境的包,关闭用户的环境变量
vim ~/.bashrc
i
export PYTHONNOUSERSITE=1
:wq

# 设置工作路径
export PYTHONPATH=`readlink -f ./

# 注意
用户目录下的.local文件下为用户的环境可以删除, `pip list`的指令会显示这个环境的包,使得创建的Anaconda的虚拟环境的piplist不是空的

相关源:

清华:https://pypi.tuna.tsinghua.edu.cn/simple/

阿里云:http://mirrors.aliyun.com/pypi/simple/

中国科技大学 https://pypi.mirrors.ustc.edu.cn/simple/

华中科技大学:http://pypi.hustunique.com/

山东理工大学:http://pypi.sdutlinux.org/

豆瓣:http://pypi.douban.com/simple/

中科大:https://pypi.mirrors.ustc.edu.cn

2. github相关

cd ~/.ssh
mkdir key_backup
mv id_rsa* key_backup
ssh-keygen -t rsa -C "[email protected]"

Generating public/private rsa key pair.
Enter file in which to save the key (/c/Users/slien/.ssh/id_rsa): <press enter> 直接回车,不要修改默认路径
Enter passphrase (empty for no passphrase):<enter a passphrase> 不设置密码,直接回车,下同
Enter same passphrase again:<enter passphrase again> 设置一个密码短语,在每次远程操作之前会要求输入密码短语!
闲麻烦可以直接回车,不设置。


ssh-keygen -t rsa # 生成密钥 用公钥上传github
git remote set-url origin '[email protected]:slience-me/machine-learning.git'
git remote -v

The authenticity of host ‘github.com (20.205.243.166)’ can’t be established. ED25519 key fingerprint is SHA256:+DiY3wvvV6TuJJhbpZisF/zLDA0zPMSvHdkr4UvCOqU. This key is not known by any other names.

3. Linux相关指令

3.1 常见指令

# 查看相关进程
ps aux|grep uwsgi(管道过滤)
netstat -unltp | grep nginx(管道过滤)
whoami
ps -ef | grep "uwsgi"

# 查询端口占用状态
lsof -i:端口号

# 杀死进程
kill -9 进程号

# 查看sudo操作
cat /var/log/auth.log | grep sudo

# 更改文件的所有者和所属组
chown [新的所有者用户名]:[新的所属组名] [文件名]
chown newuser:newgroup example.txt

# 更改文件的权限 `u` 表示所有者权限,`go` 表示所属组和其他用户权限,`rw` 表示读取和写入权限,`r` 表示只读权限。
chmod [权限设置] [文件名]
chmod u=rw,go=r example.txt
chmod 644 example.txt

# 查看命令的手册页
man

# 查看命令的详细信息
info

#打印文本或变量
echo 

# 设置环境变量
export PATH=$PATH:/new/directory

## 常用命令
ls -l
cd
pwd
mkdir
rm -rf
cp    # cp file.txt /path/to/destination 复制文件或目录
mv    # mv file.txt /new/path/ 移动文件或目录
cat   # cat file.txt  连接文件并打印到标准输出设备上
more  # less largefile.txt  分页显示文件内容
less
head  # head -n 10 file.txt  显示文件开头或结尾的内容
tail

## 系统信息
uname        # 显示系统信息 uname -a
lsb_release  # 显示发行版信息 lsb_release -a
hostname     # 显示主机名 hostname

## 系统操作
shutdown    # 关机或重启系统 shutdown -h now
reboot      # 重新启动系统 reboot

## 用户相关
su      	# 切换用户 su root
who         # 显示当前登录用户信息
useradd     # 添加新用户 useradd -m newuser
userdel     # 删除用户 userdel -r newuser
passwd      # 修改用户密码 passwd [选项] 用户名 -l 禁用账号 -u 口令解锁 -d 使账号无口令 -f 强迫用户下次登录时修改口令。


## 文件相关
chmod       # 修改文件权限 chmod 777 file.txt
chown       # 修改文件所有者和所属组 chown newuser:newgroup file.txt
find        # 在文件系统中查找文件 find / -name "*.txt"

## 程序相关
ps          # 显示进程状态 ps -ef | grep "uwsgi"
kill        # 终止进程 kill -9 1234
top         # 实时显示系统运行进程信息 top

## 网络相关
ifconfig    # 显示网络接口信息 ifconfig -a
ping        # 测试与目标主机之间的连通性 ping www.baidu.com
netstat     # 显示网络状态信息 netstat -an
netstat -antlp

## 其他
date        # 显示系统日期和时间
tar         # 压缩和解压文件
gzip/gunzip # 压缩和解压缩文件

## 系统管理
traceroute  # 显示数据包到达目标主机所经过的路由信息 traceroute www.baidu.com
iftop       # 显示网络带宽使用情况 iftop
systemctl   # 管理系统服务
journalctl  # 查询和检查系统日志

## 系统监控
iostat      # 显示系统IO统计信息 iostat -x 1
free        # 显示系统内存使用情况 free -m
df          # 显示文件系统使用情况 df -h  

## 软件管理
dpkg        # 安装、更新和卸载软件包 dpkg -i package.deb
apt         # 软件包管理器 apt install package
yum         # 软件包管理器 yum install package

##  系统配置
crontab     # 配置系统定时任务 crontab -e
vi/vim       # 编辑文件 vi/vim file.txt
sudo        # 以管理员身份执行命令 sudo command

# 先将本地yum仓库换成阿里云的yum仓库
wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
yum clean all
yum makecache

3.2 配置相关

3.2.1 目录介绍

# Linux根目录下每个文件夹的功能
/bin:   # 存放二进制可执行文件
/boot:  # 存放系统引导必需的文件
/dev:   # 存放设备文件
/etc:   # 存放系统配置文件
/home:  # 存放所有用户文件的根目录
/lib:   # 存放系统共享库和内核模块
/media: # 用于挂载可移动媒体设备
/mnt:   # 用于临时挂载文件系统
/opt:   # 用于存放可选的软件包
/proc:  # 虚拟文件系统,存放系统运行时信息
/root:  # 超级用户目录
/run:   # 存放系统运行时所需的文件
/sbin:  # 存放二进制可执行文件,只有root才能访问
/srv:   # 存放服务启动之后需要提取的数据
/sys:   # 虚拟文件系统,存放系统运行时信息
/tmp:   # 用于存放各种临时文件
/usr:   # 用于存放共享文件
/var:   # 用于存放运行时需要改变数据的文件
/lost+found:   # 用于存放系统异常退出时保存的文件
/media/cdrom:  # 挂载光盘时的默认目录
/media/floppy: # 挂载软盘时的默认目录
/media/usb:    # 挂载U盘时的默认目录
/media/usb0:   # 挂载U盘0时的默认目录

Ubuntu中使用apt-get进行软件包管理:

安装:apt-get install name
更新:apt-get update name
卸载:apt-get remove name
查找:apt-cache search name

# 查看服务列表
systemctl list-unit-files --type=service

3.2.2 配置Linux环境变量

# 配置Linux环境变量
export PATH=$PATH:/usr/local/bin  # 添加到PATH环境变量中
source ~/.bashrc                  # 使环境变量生效

3.3.3 ufw防火墙

# 配置防火墙操作 【ubuntu】
ufw help  # 帮助清单
sudo apt install firewalld  # 安装
ufw status    # 查看防火墙状态和开放的端口
ufw status verbose   # 查看防火墙状态和开放的端口,并显示端口名称
ufw status numbered   # 查看防火墙状态和开放的端口,并显示端口号
ufw delete 序号  # 删除序号规则
ufw enable    # 启动防火墙
ufw disable   # 关闭防火墙
ufw allow 22
ufw allow 80/tcp
ufw reload
netstat -antp          # 查看开放端口

ufw default deny incoming   # 设置默认策略:设置默认拒绝所有传入连接
ufw default allow outgoing  # 设置默认允许所有传出连接

3.3.4 查看IP

# 查看IP 【ubuntu】
ip addr show
ip a
hostname -I  # 最精简的
ifconfig     # 需要安装 apt-get install net-tools
route -n     # 查看网关 

# centos 
ifconfig     # 需要安装 yum install net-tools

3.3.5 配置静态IP操作 ubuntu

# 配置静态IP操作 【ubuntu】
cd /etc/netplan
sudo cp 01-network-manager-all.yaml 01-network-manager-all.yaml-before
sudo vim 01-network-manager-all.yaml
------------------------------------------------------------
network:
  ethernets:
    ens33:
      addresses: [192.168.5.130/24]  # 设置静态IP地址和掩码
      routes:
        - to: default
          via: 192.168.5.2
      # gateway4: 192.168.5.2 禁用了
      dhcp4: false                   # 禁用dhcp
      nameservers:
        addresses: [114.114.114.114, 8.8.8.8]  # 设置主、备DNS
  version: 2
  renderer: NetworkManager
-------------------------------------------------------------
sudo netplan apply


# 【centos】
vi /etc/sysconfig/network-scripts/ifcfg-ens33  # 编辑网络配置文件
BOOTPROTO=static         # 设置静态IP
ONBOOT=yes               # 设置自动启用网络连接
IPADDR=192.168.1.100     # 设置IP地址
GATEWAY=192.168.1.254    # 设置网关
DNS1=8.8.8.8             # 设置DNS服务器
service network restart  # 重启网络服务

3.3.7 MySQL(系统级)

# 配置MySQL操作  【ubuntu】系统
sudo apt install mysql-server  # 安装  也可以指定版本=5.6
sudo mysql_secure_installation  # 初始化操作
------------------------------------
Securing the MySQL server deployment....
Would you like to setup VALIDATE PASSWORD component?
Press y|Y for Yes, any other key for No: (写 NO 不进行密码的强校验)

Skipping....Remove anonymous users? (Press y|Y for Yes, any other key for No) : (选择Y,删除匿名用户)
Normally......Disallow root login remotely? (选择N,允许root远程连接)
By default, Remove test database and access to it? (选择N,不删除test数据库)
Reloading t....Reload privilege tables now? Y (选择Y,修改权限立即生效)

sudo vi /etc/mysql/mysql.conf.d/mysqld.cnf
#找到 bind-address 修改值为 0.0.0.0(如果需要远程访问)
# 修改密码
sudo mysql -u root  回车  # 以 root 用户身份登录 MySQL
USE mysql;               # 择 MySQL 数据库

UPDATE user SET authentication_string=PASSWORD('new_password') WHERE User='root';  # 更新 root 用户的密码 
# 在MySQL 8.04前,执行:SET PASSWORD=PASSWORD(‘[新密码]’);但是MySQL8.0.4开始,这样默认是不行的。因为之前,MySQL的密码认证插件是“mysql_native_password”,而现在使用的是“caching_sha2_password”。

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY '新密码';

FLUSH PRIVILEGES;        # 刷新权限:
exit;                    # 退出 MySQL

# 若要让其他主机登录数据库   host='%' 开放访问  host='localhost' 本机访问
USE mysql;  
update user set host='%' where user='root' and host='localhost' limit 1;
FLUSH PRIVILEGES;     
------------------------------------

service mysql start   # 启动MySQL服务
service mysql status  # 查看MySQL状态
service mysql restart  # 重启服务
service mysql stop    # 停止MySQL状态
mysql -u root -p        # 连接MySQL数据库

3.3.8 Redis(系统级)

# 配置Redis操作
sudo apt install redis-server   # 安装
service redis start   # 启动Redis服务
service redis status  # 查看Redis状态
service redis restart  # 重启服务
service redis stop    # 停止Redis状态
redis-server /etc/redis/redis.conf  # 启动Redis服务
redis-cli                          # 连接Redis数据库

redis开启远程服务的操作方法:

1.打开redis的配置文件“redis.conf”。
2.将“bind 127.0.0.1”注释掉。
3.将“protected-mode yes”改成“protected-mode no”。
4.添加以下一行代码。
daemonize no
5.重启redis服务即可。

3.3.9 配置uwsgi操作

# 配置uwsgi操作
uwsgi --ini uwsgi.ini  # 启动uwsgi服务
uwsgi --stop uwsgi.pid  # 停止uwsgi服务

3.3.10 安装SSH服务

# 安装SSH服务 ubuntu
sudo apt-get install openssh-server
ps -e |grep ssh
service ssh start
service ssh status
service ssh restart  # 重启服务

4. Git相关指令

sudo apt install git  # 安装

# 查看配置信息
git config --list
git config --global --list
git config -l  
git config --global -l	

# 初始化Git配置
git config --global user.name "Your Name"
git config --global user.email "[email protected]"

# 创建本地仓库
git init

# 添加文件到暂存区
git add <file>
git add xxx 	# 把某一个文件或者文件夹提交到暂存区
git add . 	    # 把当前仓库中所有最新修改的文件都提交到暂存区
git add -A	    # 把所有最新修改的文件都提交到暂存区

# 查看当前文件的状态(红色代表在工作区,绿色代表在暂存区,看不见表示已经提交到历史区)
git status 

# 提交文件到本地仓库
git commit -m "Commit message"

# 设置远程仓库
git remote add origin <url>

# 查看远程仓库
git remote show origin
git remote -v 	        # 查看本地仓库和哪些远程仓库保持链接
git remote rm origin 	# 删除origin这个关联信息
git ls-remote --heads <repository_url>  # 查看有哪些分支

# 推送本地仓库到远程仓库
git push -u origin master

# 克隆远程仓库到本地
git clone <url>
git clone -b develop <repository_url>  # -b 指定分支

# 拉取远程仓库的更新
git pull
git pull origin 分支名  拉取远程仓库文件到本地   master
git pull origin main --allow-unrelated-histories # 允许合并不相关的历史记录


# 创建分支并切换到该分支
git checkout -b <branch>

# 切换到主分支
git checkout master

# 合并分支到主分支
git merge <branch>

# 删除分支
git branch -d <branch>

# 删除远程分支
git push origin --delete <branch>

# 查看分支
git branch

# 查看远程分支
git branch -r

# 查看提交历史
git log
git reflog   # 包含回滚的信息

# 回滚到指定版本
git reset --hard <commit_id>
git reset --hard  # 重置暂存区与工作区,与上一次commit保持一致
git reset --hard 版本号  # 回退到某个版本

# 撤销未提交的修改
git checkout -- <file>

# 配置别名
git config --global alias.<shortcut> <full_command>
# 常用的几个指令
-------------------------------------------------------------
git init
git add README.md
git commit -m "first commit"
git branch -M main  # 重命名分支
git remote add origin [email protected]:slience-me/notebooks.git
git push -u origin main  # -u 参数用于设置当前分支与远程分支的关联
-------------------------------------------------------------
git pull origin main # 拉取并合并分支

git tag                # 查看标签
git tag v1.0           # 创建标签
git push origin v1.0   # 推送标签到远程仓库
git push origin --tags # 推送所有标签到远程仓库

# 设置远程仓库的默认分支为master
git push --set-upstream origin master 

项目开发流程

1.项目负责人先创建中央仓库并增加协作者

2.小组成员基于$ git clone 把远程仓库及其内容克隆到本地一份(解决了三件事情:初始化本地仓库;与对应的远程仓库保持了关联;把远程仓库默认内容拉取到本地)

3.每个成员写完自己的程序后,基于“git add / git commit”把自己修改的内容存放到历史区,然后通过“git pull / git push”把本地信息和远程仓库信息保持同步(可能涉及冲突s的处理)

.gitignore相关语法

# .gitignore文件使用一些简单的规则来指定哪些文件或目录应该被忽略,不纳入版本控制。
# 以下是一些常用的 `.gitignore` 语法和模式:

1. 通配符:
    - `*`: 匹配任意数量的字符(不包括路径分隔符)。
    - `?`: 匹配任意单个字符。
    - `**`: 匹配任意数量的字符,包括路径分隔符。

2. 目录和文件:
   - `/dirname`: 忽略根目录下的指定目录。
   - `filename`: 忽略根目录下的指定文件。
   - `dirname/`: 忽略根目录下的指定目录及其内容。
   - `dir*/`: 匹配以 "dir" 开头的目录。

3. 注释:
   - `#`: 以 `#` 开头的行将被视为注释。

4. 取反:
   - `!`: 取反,表示不忽略匹配到的文件或目录。

5. 模式匹配:
   - `*.ext`: 匹配任意文件名以 `.ext` 结尾的文件。
   - `/*.ext`: 匹配根目录下的任意文件名以 `.ext` 结尾的文件。
   - `**/*.ext`: 匹配任意目录下的任意文件名以 `.ext` 结尾的文件。

6. 文件夹匹配:
   - `/logs/`: 匹配根目录下的 `logs` 目录及其内容。

7. 忽略所有文件:
   - `*`: 忽略所有文件。
   - `*/`: 忽略所有目录。

8. 忽略特定类型文件:
   - `*.log`: 忽略所有以 `.log` 结尾的文件。

9. 忽略特定文件或目录:
   - `file.txt`: 忽略根目录下的 `file.txt` 文件。
   - `dir/`: 忽略根目录下的 `dir` 目录。

10. 匹配多个模式:
    - 可以在一行中使用多个模式,以空格或制表符分隔

示例:

# 忽略所有日志文件
*.log

# 忽略所有临时文件
temp/

# 忽略根目录下的build文件夹
/build

# 忽略根目录下的所有build文件夹
/build*/

# 忽略根目录下的.idea文件夹及其内容
.idea/

# 不忽略根目录下的test.txt文件
!test.txt

这些是常用的 .gitignore 语法和模式,你可以根据项目的需要进行适当的配置。如果需要更详细的信息,可以查阅 Git 官方文档中的 .gitignore 文档

5. 显卡

#  查看显卡信息
nvidia-smi

# 查看cuda版本
nvcc --version
nvcc -V

# 查看cudnn版本
cat /usr/local/cuda/include/cudnn.h | grep CUDNN_MAJOR -A 2

# 检查当前使用的CUDA路径
echo $PATH | grep -o 'cuda-[0-9\.]*'
echo $LD_LIBRARY_PATH | grep -o 'cuda-[0-9\.]*'

# 切换到正确的CUDA版本 配置环境变量
export CUDA_HOME=/usr/local/cuda-12.4
export PATH=$CUDA_HOME/bin:$PATH
export LD_LIBRARY_PATH=$CUDA_HOME/lib64:$LD_LIBRARY_PATH

# 查询系统中是否安装了CUDA
import torch

torch.cuda.is_available()
True

英伟达官网 驱动下载

https://www.nvidia.cn/Download/index.aspx?lang=cn

6. 【ubuntu】系统重装操作合集


6.1 系统安装

安装教程

  • /boot : 分配1G=1024MB 主分区。系统的boot启动引导项安装位置

  • efi: 分配1G=1024MB 主分区

  • / : 剩余 主分区。根目录,所有目录的根节点

  • /home : 自由分配 逻辑分区。一般放置自己的数据,一般挂载机械硬盘

  • swap : 分配64G=65536MB 逻辑分区。交换空间,一般是物理内存的1~2倍就行了


注意:

开放root用户:

Ubuntu 默认情况下禁用了 root用户,因此你需要通过 sudo 来执行具有管理员权限的操作。

# 首先,打开终端。
# 然后输入以下命令来切换到 root 用户: 
sudo -i
# 系统会要求你输入当前用户的密码。成功后,你将以 root 用户身份登录。

# 修改 root 用户的密码, 修改 root 用户的密码
passwd

合盖后不睡眠

如果使用笔记本,希望合盖后不睡眠

# 1. 打开文件 `/etc/systemd/logind.conf`。
# 2. 找到 `HandleLidSwitch=suspend`,如果前面有 `#`,去掉它。
# 3. 改成 `HandleLidSwitch=lock`,然后保存文件。
# 4. 重启 `systemd-logind` 服务以应用更改:
sudo systemctl restart systemd-logind
# 这样就能实现合盖时锁屏而不是休眠的效果。

6.2 安装openssh-server

在Ubuntu上安装和配置SSH服务器非常简单。以下是详细的步骤:

# 1. 更新系统包
sudo apt update

# 2. 安装OpenSSH服务器
sudo apt install openssh-server

# 3. 检查SSH服务的状态
sudo systemctl status ssh

# 如果显示类似以下内容,说明SSH服务器已成功启动并正在运行
# ● ssh.service - OpenBSD Secure Shell server
#  Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
#  Active: active (running) since ...

# 如果SSH服务未运行,可以使用以下命令启动它:
sudo systemctl start ssh
# 要确保每次启动系统时SSH自动启动,可以使用:
sudo systemctl enable ssh

# 4. 配置防火墙以允许SSH
# 如果你使用`ufw`防火墙,可能需要显式允许SSH流量。运行以下命令
sudo ufw allow ssh

# 5. 测试SSH连接
ssh username@server_ip_address
# 查找服务器的IP地址
ip a

# 6. 配置SSH(可选)
# 默认情况下,SSH配置文件位于`/etc/ssh/sshd_config`。可以通过编辑该文件来更改默认设置,例如修改默认的SSH端口、禁用密码认证、启用密钥认证等。
# 编辑文件
sudo nano /etc/ssh/sshd_config
# 修改后,重新加载SSH服务以应用更改
sudo systemctl restart ssh

6.3 安装远程连接桌面

在Ubuntu上安装并配置远程桌面可以通过多种方式实现,最常见的选项是使用xrdp 与桌面环境结合,让Windows用户通过远程桌面连接(RDP协议)访问Ubuntu桌面。以下是安装和配置远程桌面的详细步骤:

# 1. 安装桌面环境(如果需要)
# 如果你使用的是Ubuntu Server或最小化安装版本,你需要首先安装一个桌面环境。
# 最常用的桌面环境是`GNOME`,它是Ubuntu默认的桌面环境。
# 你可以通过以下命令来安装完整的Ubuntu桌面,配置高选gdm3,低配置选lightdm
sudo apt install ubuntu-desktop

# 如果你希望安装较轻量的桌面环境,比如`Xfce`,可以执行以下命令
sudo apt install xfce4

# 2. 安装xrdp
# 安装xrdp(远程桌面协议服务器),它允许你通过RDP协议远程连接到Ubuntu桌面。
sudo apt install xrdp

# 3. 启动和配置xrdp
# 安装完成后,启动并启用xrdp服务,使其每次启动系统时自动运行
sudo systemctl enable xrdp
sudo systemctl start xrdp
# 你还可以检查xrdp服务的状态,以确保它正在运行
sudo systemctl status xrdp

# 4. 将xrdp与桌面环境关联
# 在xrdp默认配置中,使用的是Xfce或GNOME桌面环境。你可以根据安装的桌面环境来配置xrdp。
# 如果你安装的是Xfce,需要为xrdp配置启动Xfce桌面。执行以下命令来创建一个.xsession文件并将其内容设置为xfce4-session
echo xfce4-session >~/.xsession
# 对于GNOME桌面,默认情况下应该无需额外配置。

# 5. 配置防火墙以允许RDP
# 如果你使用ufw防火墙,需要允许RDP连接(默认端口是3389)
sudo ufw allow 3389

# 6. 使用远程桌面客户端连接
# 在Windows、macOS或Linux的远程桌面客户端中输入你的Ubuntu服务器的IP地址,使用RDP协议进行连接。
# 在Windows中,打开“远程桌面连接”,输入Ubuntu的IP地址
IP_ADDRESS:3389

# 7. 可选配置:修改xrdp会话配置文件 参考link: https://blog.csdn.net/taxuebufeng/article/details/141063474
# 如果遇到黑屏或登录失败等问题,可以尝试修改xrdp配置文件。例如,编辑/etc/xrdp/startwm.sh文件,在其中找到以下几行并注释掉
unset DBUS_SESSION_BUS_ADDRESS  # 新增
unset XDG_RUNTIME_DIR           # 新增
test -x /etc/X11/Xsession && exec /etc/X11/Xsession  # 注释
exec /bin/sh /etc/X11/Xsession  # 注释
# 然后在这些行的下方添加你想使用的桌面环境。例如,如果你使用Xfce,可以添加以下内容:
startxfce4  # 使用Xfce
gnome-session # 使用GNOME
# 保存并重新启动xrdp服务:
sudo systemctl restart xrdp

# 8. 重新连接远程桌面
# 完成上述步骤后,你应该可以顺利通过远程桌面客户端连接到Ubuntu的桌面环境。
# 这样你就完成了Ubuntu的远程桌面配置,之后可以使用任何支持RDP的客户端工具进行远程桌面连接。

# ---------------------------------------------------------
# 问题: Authentication is required to create a color profile
# 出现这种情况时,gnome桌面频繁要求输入密码,解决方法如下
# 打开终端,新建一个颜色配置文件
sudo vim /etc/polkit-1/localauthority/50-local.d/45-allow-colord.pkla

# 将以下内容复制到文件中
[Allow Colord all Users]
Identity=unix-user:*
Action=org.freedesktop.color-manager.create-device;org.freedesktop.color-manager.create-profile;org.freedesktop.color-manager.delete-device;org.freedesktop.color-manager.delete-profile;org.freedesktop.color-manager.modify-device;org.freedesktop.color-manager.modify-profile
ResultAny=no
ResultInactive=no
ResultActive=yes

# 重启xrdp,问题解决
service xrdp restart

6.4 用户操作

  • 查看全部用户cat /etc/passwd
  • 修改密码 sudo passwd user

  • 新增用户sudo adduser user

由于重装系统,原始的用户信息丢失,需要重新创建用户,与home的用户对应上,但是会出现问题,user1:1001旧的,user1:1007 新的,用户目录权限对不上,所以需要该指令sudo chown -R new_owner:new_group /home/username

6.5 CUDA

CUDA 是 NVIDIA 的并行计算平台和编程模型,用于 GPU 加速计算。安装 CUDA 工具包可以让你使用 GPU 进行高性能计算,nvcc 则是 CUDA 的编译器。以下是 Ubuntu 上安装 CUDA、nvcc 等相关工具的详细步骤。

# 1. 检查硬件和操作系统兼容性
# 在安装 CUDA 之前,确保你的系统满足以下条件:
# - 你有一个支持 CUDA 的 NVIDIA 显卡。
# - 你使用的是 Ubuntu(例如 18.04、20.04 或 22.04 等版本)。
# - 你已经安装了合适的显卡驱动。

# 2. 更新系统
# 首先,更新系统的包列表和软件包,确保一切都是最新的
sudo apt update
sudo apt upgrade

# 3. 安装 NVIDIA 驱动
# 通常 CUDA 工具包包含 NVIDIA 驱动,但是你也可以手动安装,建议确保安装的驱动是最新的兼容版本。
# 检查 NVIDIA 显卡是否被识别
lspci | grep -i nvidia
# 安装最新版本的驱动
sudo apt install nvidia-driver-###    # 将 ### 替换为推荐的驱动版本
# 你可以使用 `ubuntu-drivers devices` 查看推荐的 NVIDIA 驱动版本。

# 4. 添加 CUDA 相关的存储库
# 访问 [NVIDIA CUDA Toolkit 下载页面](https://developer.nvidia.com/cuda-downloads),选择你对应的操作系统版本并跟随提示。通常可以使用以下步骤添加CUDA 的存储库
# 访问 CUDA 的下载页面,选择你的操作系统,通常会得到类似以下的安装命令:
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu$(lsb_release -sr | cut -d. -f1)/x86_64/cuda-repo-ubuntu$(lsb_release -sr | cut -d. -f1)_<version>_amd64.deb
sudo dpkg -i cuda-repo-ubuntu$(lsb_release -sr | cut -d. -f1)_<version>_amd64.deb
sudo apt-key adv --fetch-keys https://developer.download.nvidia.com/compute/cuda/repos/ubuntu$(lsb_release -sr | cut -d. -f1)/x86_64/7fa2af80.pub
sudo apt update
# 我的版本
wget https://developer.download.nvidia.com/compute/cuda/repos/ubuntu2004/x86_64/cuda-ubuntu2004.pin
sudo mv cuda-ubuntu2004.pin /etc/apt/preferences.d/cuda-repository-pin-600
wget https://developer.download.nvidia.com/compute/cuda/12.6.2/local_installers/cuda-repo-ubuntu2004-12-6-local_12.6.2-560.35.03-1_amd64.deb
sudo dpkg -i cuda-repo-ubuntu2004-12-6-local_12.6.2-560.35.03-1_amd64.deb
sudo cp /var/cuda-repo-ubuntu2004-12-6-local/cuda-*-keyring.gpg /usr/share/keyrings/
sudo apt-get update
sudo apt-get -y install cuda-toolkit-12-6

# 5. 安装 CUDA 工具包
# 使用以下命令安装 CUDA 工具包
sudo apt install cuda
# 这会安装 CUDA 相关的工具,包括编译器nvcc。

# 6. 设置环境变量
# 安装完成后,还需要配置环境变量,才能正确地调用CUDA和nvcc。可以在.bashrc中添加以下路径:
# 编辑 `.bashrc` 文件
nano ~/.bashrc
# 添加以下行以设置CUDA环境变量(假设安装在默认位置/usr/local/cuda)
export PATH=/usr/local/cuda/bin:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64:$LD_LIBRARY_PATH
# 使修改立即生效
source ~/.bashrc

# 7. 验证 CUDA 和 NVCC
# 验证安装是否成功。
# 检查NVIDIA驱动是否工作 你应该能够看到显卡的状态和驱动程序信息
nvidia-smi 
# 检查 CUDA 编译器 nvcc 你应该看到 nvcc 版本信息,说明安装成功
nvcc -V

# 8. 运行 CUDA 示例代码(可选)
# 安装 CUDA 工具包后,NVIDIA 通常会提供一些示例代码,可以用来测试 GPU 是否正常工作
# 进入 CUDA 示例代码目录
cd /usr/local/cuda/samples
# 编译并运行一个测试程序(例如 `deviceQuery`)
sudo make
cd 1_Utilities/deviceQuery
./deviceQuery
# 这将会展示 GPU 的一些详细信息,如果能够正确显示,那么说明 CUDA 工作正常。

7. 技术栈指令集

1)Nginx

Nginx合集


  1. 目录结构
  2. 系统级安装
    • Ubuntu 安装
    • 常见配置修改
  3. 个性化操作
    • 自定义站点路径
    • 自定义站点配置示例
  4. 用户级安装
  5. 部署 Vue 项目
    • 配置 Nginx 提供静态文件
    • HTTPS 配置
  6. 部署 PHP 项目
  7. 错误排查
    • 检查 Nginx 错误日志
    • 检查 PHP 错误日志

# 配置nginx操作 【ubuntu】
service nginx start    # 启动nginx服务
service nginx status   # 查看nginx状态
service nginx restart  # 重启服务
nginx -t               # 检查语法
nginx -s reload        # 重新加载nginx配置
nginx -s stop          # 停止nginx服务

7.1 Anaconda

ubuntu操作步骤
# 1. 下载 Anaconda
在Anaconda官网(https://www.anaconda.com/)下载最新版。
# 2. 安装 Anaconda
1)打开terminal;
2)打开下载文件的位置
3)运行 .sh 文件:bash (AnacondaXXXXX-Linux-x86_64.sh 用table键代码补全即可)
bash Anaconda3-2021.11-Linux-x86_64.sh 
# 3. 进入注册信息页面,持续点击空格即可跳过注册信息, 输入yes;
# 4. 阅读注册信息,然后输入yes;查看文件即将安装的位置,按enter,即可安装,
# 5. 安装完成后,收到加入环境变量的提示信息,输入yes
# 6. 我们执行(选择性, 可以不用动,新手慎重修改):
sudo gedit ~/.bashrc  # 用vim也行
# 然后在打开的文件最后加两行命令,用于配置环境
export PATH="~/anaconda3/bin":$PATH
source ~/anaconda3/bin/activate #修改终端的默认 python 为 anaconda
# 保存文件后关闭,然后在终端执行,用于保存环境配置
source ~/.bashrc
# 7. 重启终端,会看到命令行前面出现(base)环境,即可默认使用Anaconda3;
# 8. 可以使用`conda -V`验证是否安装完毕,若安装完成,则会出现版本号。
conda -V

7.2 Java

【本地安装】

#【本地安装】
# 1. 上传或下载安装包
cd/usr/local
jdk-8u121-linux-x64.tar.gz
# 2. 解压安装包
tar -zxvf jdk-8u121-linux-x64.tar.gz
# 3. 建立软连接
ln -s /usr/local/jdk1.8.0_121/ /usr/local/jdk
# 4. 修改环境变量
vim /etc/profile
export JAVA_HOME=/usr/local/jdk
export JRE_HOME=$JAVA_HOME/jre
export CLASSPATH=.:$CLASSPATH:$JAVA_HOME/lib:$JRE_HOME/lib
export PATH=$PATH:$JAVA_HOME/bin:$JRE_HOME/bin
# 通过命令source /etc/profile让profile文件立即生效
source /etc/profile
#5. 测试是否安装成功
使用java -version,出现版本

【网络安装】

#【ubuntu】
# 1. 更新包列表
sudo apt update

# 2. 安装 Java 1.8(OpenJDK 8)
sudo apt install openjdk-8-jdk

# 3. 验证安装
java -version
# 打印出如下内容
# openjdk version "1.8.0_282"
# OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~16.04.1)
# OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

# 4. 配置默认的 Java 版本(如果系统中有多个版本的 Java)
# 如果你系统中已经安装了其他版本的 Java,并且想要将 Java 1.8 设置为默认版本,可以使用 update-alternatives 工具:
sudo update-alternatives --config java
# 执行命令后,会出现一个选择框,列出所有安装的 Java 版本。你可以输入相应的数字来选择 Java 1.8(通常是数字 1)。
# 同样地,如果你还安装了 javac(Java 编译器),可以使用以下命令设置默认的 javac 版本:
sudo update-alternatives --config javac

# 5. 设置 JAVA_HOME 环境变量
# 一般来说,OpenJDK 8 会安装在 /usr/lib/jvm/ 目录下。你可以通过以下命令查找确切路径:
sudo update-alternatives --config java
# 假设你的安装路径是 /usr/lib/jvm/java-8-openjdk-amd64,你需要将其添加到 JAVA_HOME 环境变量中。
# 编辑 ~/.bashrc 文件:
nano ~/.bashrc
# 在文件的末尾添加以下行:
export JAVA_HOME=/usr/lib/jvm/java-8-openjdk-amd64
export PATH=$PATH:$JAVA_HOME/bin
# 保存并关闭文件。然后,使这些更改生效:
source ~/.bashrc
# 你可以通过以下命令来验证 JAVA_HOME 是否设置成功:
echo $JAVA_HOME

7.3 Git

【Centos】

# 直接使用指令
#【Centos】
yum -y install git

【Ubuntu】

#【Ubuntu】
sudo apt update
sudo apt install git
git --version

8. 常用的Pip安装的包名

8.1 opencv

conda install opencv-python
pip install opencv-python

8.2 sklearn

pip install scikit-learn

8. MD5 计算文件的哈希值

# 打开git bash
md5sum.exe 文件名称 

9. Nodejs相关指令

是否使用nvm去控制版本 相关链接

# 安装
npm install <模块名>
npm install crypto-js --save // --save 参数表示将模块写入 package.json 文件中

# 卸载
npm uninstall crypto-js

# 查看 查看列表
npm list // -g 全局
# 查看某个模块版本
npm list <模块名>

# 更新
npm update  //更新 node_moudules 中所有模块
npm update <模块名> // 更新某个

# 设置国内镜像源
npm config set registry https://registry.npmmirror.com/

# 查看源
npm config get registry
    
# 设置官方源
npm config set registry https://registry.npmjs.org/

# cnpm
npm install -g cnpm --registry=https://registry.npmmirror.com
cnpm install crypto-js --save

# require
const crypto = require('crypto-js');
const module = require('模块名'); // 一般前端做项目的话 这里命名是常量 不允许修改

在安装node-sass时候要求多个环境,否则会安装失败

  • python环境,需要安装python,安装后需要配置环境变量
  • VS的桌面开发环境C++

10. 虚拟机的使用

10.1 虚拟机安装与基本使用

由于VMware虚拟机收费,所以使用了virtualbox,镜像文件通过vagrant镜像地址网站进行下载 vagrant下载地址 安装后USB可能不可用,记得下载拓展兼容包

执行 vagrant init centos/7 命令后,Vagrant 在当前目录下创建一个 Vagrantfile 文件。该文件是Vagrant的配置文件,定义了虚拟机的配置信息。

具体内容:

  • Vagrant提示你当前目录已经生成了一个 Vagrantfile,它会用来定义你虚拟机的配置。
  • 现在你可以通过 vagrant up 命令启动虚拟机,启动后Vagrant会自动下载指定的 box(比如这里的 centos/7),并且根据 Vagrantfile 的配置来创建并启动虚拟机。
# 1.检查和编辑 Vagrantfile
# 如果你需要修改虚拟机的配置,可以编辑生成的 `Vagrantfile`。比如,你可以更改虚拟机的网络配置、共享文件夹等。
vagrant up      # 启动虚拟机
vagrant ssh     # 登录虚拟机
vagrant halt    # 停止虚拟机 
vagrant destroy # 销毁虚拟机

10.2 虚拟机网络设置

如果需要修改网卡IP:

  1. 首先需要去cmd通过指令ipconfig,查看一下虚拟机的网络IP地址,
  2. Vagrantfile文件中修改config.vm.network "private_network", ip: "192.168.56.10"中的IP地址,然后重新启动虚拟机 vagrant reload即可。
  3. 连接虚拟机检查是否修改成功:vagrant ssh, 后ip addr查看, 可以尝试ping通。

11. Docker的使用

docker镜像地址

docker官网

使用阿里云进行镜像加速

11.1 docker安装

【centos】

# 【centos7】
# 卸载旧版本
sudo yum remove docker \
                docker-client \
                docker-client-latest \
                docker-common \
                docker-latest \
                docker-latest-logrotate \
                docker-logrotate \
                docker-engine
                
# 安装依赖
sudo yum install -y yum-utils \
  device-mapper-persistent-data \
  lvm2
  
# 设置镜像源
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
        
# 安装docker
sudo yum install docker-ce docker-ce-cli containerd.io

sudo systemctl start docker # 启动docker
sudo systemctl enable docker # 设置开机自启

# 测试
sudo docker run hello-world
# 安装mysql
sudo docker pull mysql:5.7

【ubuntu】

#----------------------------------------------------------------
# 【ubuntu】
# 卸载旧版本 Docker
sudo apt remove docker \
                    docker-engine \
                    docker.io \
                    containerd \
                    runc
                    
# 安装依赖,安装必要的软件包,以允许apt通过HTTPS使用仓库:
sudo apt update
sudo apt install apt-transport-https ca-certificates curl gnupg-agent software-properties-common

# 添加Docker的官方GPG密钥  添加Docker的稳定仓库
curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -

# 使用以下命令设置存储库
sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"

# 安装 Docker
sudo apt update
sudo apt install docker-ce docker-ce-cli containerd.io

# 如果想要指定版本
apt list -a docker-ce
sudo apt install docker-ce=<VERSION> docker-ce-cli=<VERSION> containerd.io

# 启动 Docker 并设置开机自启
sudo systemctl start docker
sudo systemctl enable docker

# 测试 Docker 安装
sudo docker run hello-world

# 安装 MySQL
sudo docker pull mysql:5.7

11.2 docker常用指令

docker version # 查看docker版本
docker -v
sudo docker info #  查看docker信息
sudo docker ps -a # 查看docker容器
sudo docker images # 查看docker镜像
sudo docker logs container_id # 查看docker容器日志
sudo docker logs tail 100 container_id
sudo docker port container_id # 查看docker容器端口映射
sudo docker top container_id # 查看docker容器进程
sudo docker inspect container_id # 查看docker容器详细信息
sudo docker start container_id # 启动docker容器
sudo docker stop container_id # 停止docker容器
sudo docker restart container_id # 重启docker容器
sudo docker rm container_id # 删除docker容器
sudo docker rmi image_id # 删除docker镜像

11.3 镜像加速

sudo mkdir -p /etc/docker
sudo tee /etc/docker/daemon.json <<-'EOF'
{
    "registry-mirrors": [
        "https://do.nark.eu.org",
        "https://dc.j8.work",
        "https://docker.m.daocloud.io",
        "https://dockerproxy.com",
        "https://docker.mirrors.ustc.edu.cn",
        "https://docker.nju.edu.cn",
        "https://mirrors.tuna.tsinghua.edu.cn",
        "https://ustc-edu-cn.mirror.aliyuncs.com",
        "https://ccr.ccs.tencentyun.com",
        "https://docker.m.daocloud.io",
        "https://docker.awsl9527.cn"
    ]
}
EOF
sudo systemctl daemon-reload
sudo systemctl restart docker

11.4 docker安装mysql

# 1. 拉取镜像
docker pull mysql:5.7

# 2. 创建容器
# 创建并准备必要的宿主机目录: 确保宿主机上的目录
sudo mkdir -p /home/slienceme/docker/mysql/log /home/slienceme/docker/mysql/data /home/slienceme/docker/mysql/conf

# 注意这个路径一定要对应上
sudo docker run -p 3306:3306 --name mysql \
-v /home/slienceme/docker/mysql/log:/var/log/mysql \
-v /home/slienceme/docker/mysql/data:/var/lib/mysql \
-v /home/slienceme/docker/mysql/conf:/etc/mysql/conf.d \
-e MYSQL_ROOT_PASSWORD=123456 \
-d mysql:5.7

# -p 3306:3306 将主机的 3306 端口映射到容器的 3306 端口
# --name mysql 设置容器名称为 mysql
# -v /mydata/mysql/log:/var/log/mysql 将日志目录挂载到主机
# -v /mydata/mysql/data:/var/lib/mysql 将数据目录挂载到主机
# -v /mydata/mysql/conf:/etc/mysql 将配置目录挂载到主机
# -e MYSQL_ROOT_PASSWORD=123456 设置 root 用户的密码为 root
# -d mysql:5.7 后台运行容器,并返回容器 ID

# 3. 进入容器
docker exec -it mysql /bin/bash
# 4. 登录mysql
mysql -uroot -p123456
# 5. 创建数据库
create database test
# 6. 创建用户
create user 'test'@'%' identified by '123456'
# 7. 授权用户
grant all privileges on test.* to 'test'@'%'
# 8. 刷新权限
flush privileges

# 修改配置文件
vi /home/slienceme/docker/mysql/conf/my.cnf
# ============================开始=============================
[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
# ============================结束============================

# 设置自动启动
docker update mysql --restart=always 

11.5 docker安装redis

# 1. 拉取镜像
docker pull redis
mkdir -p /home/slienceme/docker/redis/conf
touch /home/slienceme/docker/redis/conf/redis.conf

# 2. 创建容器
docker run -p 6379:6379 --name redis -v /home/slienceme/docker/redis/data:/data \
    -v /home/slienceme/docker/redis/conf/redis.conf:/etc/redis/redis.conf \
    -d redis redis-server /etc/redis/redis.conf
    
# 3. 进入容器
docker exec -it redis redis-cli

# 设置自动启动
docker update redis --restart=always

12. SpringCloud分布式开发

12.1 Nacos

一个更易于构建云原生应用的动态服务发现、配置管理和服务管理平台。使用文档

注册中心

Spring Cloud Alibaba Nacos Discovery如何接入(作为服务注册中心)

在启动 Nacos Discovery 示例进行演示之前,了解一下 Spring Cloud 应用如何接入 Nacos Discovery。

  1. 首先,修改 pom.xml 文件,引入 spring-cloud-alibaba-nacos-discovery-starter

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
    </dependency>
    
  2. 在应用的 /src/main/resources/application.properties 配置文件中配置 Nacos Server地址;

    spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848
    
  3. 使用 @EnableDiscoveryClient 注解开启服务注册与发现功能;

    @SpringBootApplication
    @EnableDiscoveryClient
    public class ProviderApplication {
       
        public static void main(String[] args) {
            SpringApplication.run(ProviderApplication.class, args);
        }
       
        @RestController
        class EchoController {
            @GetMapping(value = "/echo/{string}")
            public String echo(@PathVariable String string) {
                    return string;
            }
        }
    }
    

应用启动

  1. 增加配置,在 nacos-discovery-provider-example 项目的 /src/main/resources/application.properties 中添加基本配置信息;

    spring.application.name=service-provider
    server.port=18082
    
  2. 启动应用,支持 IDE 直接启动和编译打包后启动。

    1. IDE直接启动:找到 nacos-discovery-provider-example 项目的主类 ProviderApplication,执行 main 方法启动应用。
    2. 打包编译后启动:在 nacos-discovery-provider-example 项目中执行 mvn clean package 将工程编译打包,然后执行 java -jar nacos-discovery-provider-example.jar启动应用。

配置中心

Spring Cloud Alibaba Nacos Config如何接入(作为服务配置中心)

在启动应用示例进行项目功能演示之前,先了解一下 Spring Cloud 应用如何接入 Nacos Config 作为服务配置中心。

  1. 首先,修改 pom.xml 文件,引入 spring-cloud-starter-alibaba-nacos-config

    <dependency>
        <groupId>com.alibaba.cloud</groupId>
        <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId>
    </dependency>
    
  2. 在应用的 /src/main/resources/application.yaml 配置文件中配置 Nacos 地址并引入服务配置;

    spring:
      cloud:
        nacos:
          serverAddr: 127.0.0.1:8848
          # 以下配置项必须填写
          username: 'nacos'
          password: 'nacos'
      config:
        import:
          - nacos:nacos-config-example.properties?refreshEnabled=true&group=DEFAULT_GROUP
    

    或者在应用的 /src/main/resources/bootstrap.properties 配置文件中配置Nacos Config元数据;

    spring.application.name=nacos-config-emample
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    
  3. 总结:先引入依赖,创建一个bootstrap.properties配置文件,给配置中心默认添加一个叫 数据集(Data Id) 日志找到gulimall-coupon.properties,默认规则是,应用名.properties;然后可以给它添加任何配置;可以设置动态获取配置通过注解@RefreshScope动态刷新配置; @Value取值

    配置中心的配置文件 优先级 更高

    // 日志
    Located property source: CompositePropertySource {name='NACOS', propertySources=[NacosPropertySource {name='gulimall-coupon.properties'}]}
       
    // 示例代码
    @RefreshScope //开启配置文件刷新
    @RestController
    @RequestMapping("coupon/coupon")
    public class CouponController {
        @Autowired
        private CouponService couponService;
       		
        @Value("${coupon.user.name}")
        private String name;
        @Value("${coupon.user.age}")
        private Integer age;
    

更多的细节

  1. 命名空间: 配置隔离

    默认: public(保留空间); 默认新增的所有配置都在public空间。

    情况一(基于环境隔离):区分不同的环境:开发、测试、生产;利用命名空间来做环境隔离

    # 在bootstrap.properties配置上,指明 使用哪个命名空间下的配置
    spring.cloud.nacos.config.namespace=d028d4a1-44e2-461f-92fa-*******
    

    情况二(基于微服务隔离):每一个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的配置

  2. 配置集:所有配置的集合

  3. 配置集ID:类似于配置文件名

    Data ID:类似文件名

  4. 配置分组:

    默认所有的配置集都属于:DEFAULT_GROUP

    双11、618、双12活动相关

    需要修改在bootstrap.properties配置文件进行修改

    # 指定分组
    spring.cloud.nacos.config.group=*********
    

    常规用法:

    ​ 每个微服务创建自己的命名空间nameapace、使用配置分组区分环境,dev、test、prod

    可以同时加载多个配置集

    可以根据功能拆分的更细,例如datasource.yml、mybatis.yml、other.yml等

    spring.application.name=gulimall-coupon
    spring.cloud.nacos.config.server-addr=127.0.0.1:8848
    spring.cloud.nacos.config.namespace=85b1ece6-8158-4798-bf9b-329eb448c72b
    spring.cloud.nacos.config.group=prod
       
    spring.cloud.nacos.config.ext-config[0].data-id=datasource.yml
    spring.cloud.nacos.config.ext-config[0].group=dev
    spring.cloud.nacos.config.ext-config[0].refresh=true
    

12.2 Feign

声明式远程调用


OpenFeign如何接入

  1. 引入依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
  1. 开启feign功能
@EnableFeignClients(basePackages="cn.slienceme.gulimall.pms.feign")
  1. 声明远程接口
@FeignClient("gulimall-ware")
public interface WareFeignService {
    @PostMapping("/ware/waresku/skus")
    public Resp<List<SkuStockVo>> skuWareInfos(@RequestBody List<Long> skuIds);
}

12.3 GateWay

官方文档

18. Maven

18.1 本地安装

# 1. 上传或下载安装包
cd/usr/local
apache-maven-3.6.1-bin.tar.gz
# 2. 解压安装包
tar -zxvf apache-maven-3.6.1-bin.tar.gz
# 3. 建立软连接
ln -s /usr/local/apache-maven-3.6.1/ /usr/local/maven
# 4. 修改环境变量
vim /etc/profile
export MAVEN_HOME=/usr/local/maven
export PATH=$PATH:$MAVEN_HOME/bin
# 通过命令source /etc/profile让profile文件立即生效
source /etc/profile
# 5. 测试是否安装成功
mvn –v

18.2 环境变量

高级系统设置中的环境变量, 设置MAVEN_HOME为路径地址, 然后在Path下添加%MAVEN_HOME%\bin 在CMD中测试是否配置成功mvn -version 在CMD中测试是否配置成功java -version

18.3 Maven配置文件

./apache-maven-*.*/config下, 修改配置文件settings.xml 设置镜像源和java版本

<settings>
<mirrors>
    <mirror>
        <id>nexus-aliyun</id>
        <mirrorOf>central</mirrorOf>
        <name>Nexus aliyun</name>
        <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
    </mirror>
</mirrors>
<profiles>
    <profile>
      <id>jdk-1.8</id>
      <activation>
        <activeByDefault>true</activeByDefault>
        <jdk>1.8</jdk>
      </activation>
      <properties>
        <maven.compiler.source>1.8</maven.compiler.source>
        <maven.compiler.target>1.8</maven.compiler.target>
        <maven.compiler.compilerVersion>1.8</maven.compiler.compilerVersion>
      </properties>
    </profile> 
</profiles>
</settings>

19. VSCode

19.1 常用插件

  • Auto Close Tag
  • Auto Rename Tag
  • Chinese
  • ESLint
  • HTML CSS Support
  • HTML Snippets
  • JavaScript(ES6) code snippets
  • Live Server
  • open in browser
  • Vetur

20. 问题合集

20.1 findfont: Generic family ‘sans-serif’ not found because none of the following families were found: simhei

这个警告通常表示Matplotlib在绘制图时无法找到指定的字体。在你的情况中,警告指出找不到'sans-serif'(无衬线字体),可能是由于缺少相应的字体文件。
要解决这个问题,你可以尝试安装中文字体并告诉Matplotlib使用这些字体。以下是一种解决方法:

1. 安装中文字体: 在Linux系统上,你可以使用以下命令安装中文TrueType字体(例如,SimHei):
  
sudo apt-get install fonts-wqy-zenhei

在Windows系统上,你可以下载并安装中文TrueType字体,然后将字体文件路径添加到Matplotlib的配置中。

2. 告诉Matplotlib使用中文字体: 在你的代码中添加以下内容:

import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']  # 使用中文宋体

将上述两行代码放在绘图代码之前,这样Matplotlib就会使用指定的中文字体。
如果你在使用Jupyter Notebook等环境,可以将这两行代码放在Notebook的开头,以确保在绘图之前设置好字体。
请注意,确保字体文件路径正确,以及选择的字体是否与你的系统兼容。如果你使用其他字体,请相应地更改字体名称。

20.2 Cannot find a valid baseurl for repo: base/7/x86_64

  1. 先测试网络连通性ping www.baidu.com
  2. 通过 vi 命令编辑 /etc/yum.repos.d/CentOS-Base.repo 文件,将其中的 mirrorlist 行用 # 号注释掉,并将 baseurl 行取消注释,并修改为其他可靠的镜像地址。
  3. 指令sudo vi /etc/yum.repos.d/CentOS-Base.repo
  4. 如将下图四个 baseurl 地址按顺序修改为阿里云的镜像地址:

    baseurl=http://mirrors.aliyun.com/centos/$releasever/os/$basearch/ baseurl=http://mirrors.aliyun.com/centos/$releasever/updates/$basearch/ baseurl=http://mirrors.aliyun.com/centos/$releasever/extras/$basearch/ baseurl=http://mirrors.aliyun.com/centos/$releasever/centosplus/$basearch/

文档信息

Search

Table of Contents