
本文作者: 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
- 目录结构
- 系统级安装
- Ubuntu 安装
- 常见配置修改
- 个性化操作
- 自定义站点路径
- 自定义站点配置示例
- 用户级安装
- 部署 Vue 项目
- 配置 Nginx 提供静态文件
- HTTPS 配置
- 部署 PHP 项目
- 错误排查
- 检查 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:
- 首先需要去
cmd通过指令ipconfig,查看一下虚拟机的网络IP地址, - 去
Vagrantfile文件中修改config.vm.network "private_network", ip: "192.168.56.10"中的IP地址,然后重新启动虚拟机vagrant reload即可。 - 连接虚拟机检查是否修改成功:
vagrant ssh, 后ip addr查看, 可以尝试ping通。
11. 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。
-
首先,修改
pom.xml文件,引入spring-cloud-alibaba-nacos-discovery-starter;<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId> </dependency> -
在应用的
/src/main/resources/application.properties配置文件中配置Nacos Server地址;spring.cloud.nacos.discovery.server-addr=127.0.0.1:8848 -
使用
@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; } } }
应用启动
-
增加配置,在
nacos-discovery-provider-example项目的/src/main/resources/application.properties中添加基本配置信息;spring.application.name=service-provider server.port=18082 -
启动应用,支持 IDE 直接启动和编译打包后启动。
- IDE直接启动:找到
nacos-discovery-provider-example项目的主类ProviderApplication,执行 main 方法启动应用。 - 打包编译后启动:在
nacos-discovery-provider-example项目中执行mvn clean package将工程编译打包,然后执行java -jar nacos-discovery-provider-example.jar启动应用。
- IDE直接启动:找到
配置中心
Spring Cloud Alibaba Nacos Config如何接入(作为服务配置中心)
在启动应用示例进行项目功能演示之前,先了解一下 Spring Cloud 应用如何接入 Nacos Config 作为服务配置中心。
-
首先,修改
pom.xml文件,引入spring-cloud-starter-alibaba-nacos-config;<dependency> <groupId>com.alibaba.cloud</groupId> <artifactId>spring-cloud-starter-alibaba-nacos-config</artifactId> </dependency> -
在应用的
/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 -
总结:先引入依赖,创建一个
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;
更多的细节
-
命名空间: 配置隔离
默认: public(保留空间); 默认新增的所有配置都在public空间。
情况一(基于环境隔离):区分不同的环境:开发、测试、生产;利用命名空间来做环境隔离
# 在bootstrap.properties配置上,指明 使用哪个命名空间下的配置 spring.cloud.nacos.config.namespace=d028d4a1-44e2-461f-92fa-*******情况二(基于微服务隔离):每一个微服务之间互相隔离配置,每一个微服务都创建自己的命名空间,只加载自己命名空间下的配置
-
配置集:所有配置的集合
-
配置集ID:类似于配置文件名
Data ID:类似文件名
-
配置分组:
默认所有的配置集都属于: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如何接入
- 引入依赖
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-openfeign</artifactId>
</dependency>
- 开启feign功能
@EnableFeignClients(basePackages="cn.slienceme.gulimall.pms.feign")
- 声明远程接口
@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
- 先测试网络连通性
ping www.baidu.com - 通过 vi 命令编辑
/etc/yum.repos.d/CentOS-Base.repo文件,将其中的mirrorlist行用 # 号注释掉,并将 baseurl 行取消注释,并修改为其他可靠的镜像地址。 - 指令
sudo vi /etc/yum.repos.d/CentOS-Base.repo - 如将下图四个 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/
文档信息
- 本文作者:slience_me
- 本文链接:https://blog.slienceme.cn/2019/01/01/readme/
- 版权声明:自由转载-非商用-非衍生-保持署名(创意共享3.0许可证)