文章目录
- 服务器
- Linux基础命令
- 功能键/快捷键
- 命令
- clear 清楚屏幕输出
- who / w 谁连接了我
- whoami 查看当前用户的用户名
- exit / logout 退出登录
- shutdown 关机
- man manual 查看命令的帮助手册
- cal 8 2000 查看2000年8月的日历
- date 当前时间
- history 历史命令
- 查看进程 ps -ef | grep python
- top --类似于Windows的任务管理器
- jobs -- 查看当前会话的后台任务 ---> 编号
- netstat -- 检测网络和端口状态
- pwd print working directory 打印工作目录
- cd change directory 切换目录
- ls list directory contents 列出目录下的文件
- mkdir make directory 创建文件夹
- cp /mv -cpoy / move - 赋值/移动文件夹
- rm remove 删除
- cat concatenate 连接多个文件,显示文件内容
- 修改文件权限
- Linux系统安装软件/服务的方式:
- 云服务器 ----->web服务器(网站服务器)----->Apache/Nginx(enginne X)
- 启动和停止服务:
- 联网下载
- Vim 文本编辑器
- 项目部署上线过程
使用服务器跑项目:
gunicorn -w 4 -b 0.0.0.0 main:app
gunicorn 绿色独角兽
windows不好用
服务器
os
import os
os.system('名字')
可以调出系统文件
浏览器的同源策略
JS代码必须从跟自己同源的网站获取数据,不能从异源的网站获取数据
同源的三要素:
-
协议相同
-
端口相同
-
域名相同[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-p2kkTKIx-1637497809558)(E:\code\Python\1000phone\md\数据可视化\同源策略.jpg)]
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-I2ZvYPMv-1637497809560)(E:\code\Python\1000phone\md\数据可视化\同源示意图.jpg)]
后端跨域
CORS
在HTTP响应头,加字段
Access-Control-Allow-Origin:* – 允许任何网站来这里跨域取数据
👆告诉浏览器谁可以拿数据
安装cors:
pip install flask-cors
Linux基础命令
命令格式---->命令 参数 命令作用对象
功能键/快捷键
Tab - 命令或路径的自动补全
命令 --help
Ctrl + w 删除光标前面的单词
Ctrl + u 删除光标前面的内容
Ctrl + k 删除光标后的内容
Ctrl + A 光标移到行首
Ctrl + e 光标移到行尾
Ctrl + c 终止进程
命令
clear 清楚屏幕输出
who / w 谁连接了我
w的功能更强大
whoami 查看当前用户的用户名
exit / logout 退出登录
shutdown 关机
shutdown -c 取消关机
man manual 查看命令的帮助手册
cal 8 2000 查看2000年8月的日历
date 当前时间
history 历史命令
如果想再执行一遍,就输出!历史命令编号
history -c 清除历史命令
查看进程 ps -ef | grep python
init 0 关机,init 6重启
kill 进程号(PID)
kill/pkill/killall -结束进程
pkill 进程名字
top --类似于Windows的任务管理器
jobs – 查看当前会话的后台任务 —> 编号
fg %编号,将后台任务放到前台运行
bg %编号,将任务在后台运行起来
可以在命令后面使用&将任务放到后台运行
netstat – 检测网络和端口状态
ntlp - 检测网络和端口状态
-n:number ,以数字的方式显示网络地址
-l:listen,查看处于监听状态的
-t:TCP
-p:
pwd print working directory 打印工作目录
cd change directory 切换目录
cd /xx 从根目录
cd 回根目录
ls list directory contents 列出目录下的文件
-a 所有文件
-l 长格式
mkdir make directory 创建文件夹
-p 自动创建父文件夹
cp /mv -cpoy / move - 赋值/移动文件夹
-r 递归式
rm remove 删除
-r :递归式,
-f : 强制
-i :交互式
cat concatenate 连接多个文件,显示文件内容
-n 显示行号
修改文件权限
chmod u+x,g+x,o+x mycal.py
Linux系统安装软件/服务的方式:
使用包管理工具:最方便最简单 ≈ 软件管家
CentOS/Redhat : yum / rpm
搜索: yum search nginx
安装: yum install -y nginx
更新:yum update nginx
更新全部就是yum update
卸载: yum erase -y nginx / yum remove -y nginx
查看信息:yum info nginx
搜索: yum search python3 | grep “programming”
查看所有安装过的包:yum list installed
whatis python ----python 是什么
which python -----python位置
python --version python的版本
python3 --version python3的版本
Ubuntu用的命令:apt / apt-get
源代码构建安装:麻烦
以python3.8为例
-
从官网下载Python源代码
wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz
-
解压缩和解归档(把一个文件拆成多个文件)
解压缩
gunzip Python-3.8.10.tgz
解归档
tar -xf Python-3.8.10.tar
压缩格式有gzip和xz两种
解压缩
gzip / gunzip - 压缩和解压缩
tar - 归档和解归档
tar -zxf 先解压缩,解压缩了解归档
压缩不等于归档,压缩会变小,归档是多个文件夹变成一个
如果是xz文件:
xz *************** .tar.xz
-
补充安装Python解释器需要的底层依赖性
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel libdb4-devel libpcap-devel xz-devel libffi-devel libxml2
检查有没有gcc和make,如果没用就要安装
gcc --version
make --version
如果没用:yum install -y gcc
如果有:yum update -y gcc
-
安装前的配置 ----->Makefile(执行完毕后会生成这个文件)
./configure --prefix=/usr/local/python38 --enable-optimizations
-
构建和安装
make && make install
如果没有安装成功:
make clean./configure --prefix=/usr/local/python38
-
配置环境变量
vim .bash_profile
path=…:/usr/local/python3/bin
:wq
-
退出重新登录(点⚡)
python3 --version
pip3 --version
-
创建一个符号链接(快捷方式)
ln -s /usr/local/python38/bin/python3 /usr/bin/python3
安装git
-
下载Git源代码
wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.32.0.tar.xz
-
解压缩和解归档
xz -d git-2.32.0.tar.xz
tar -xvf git-2.32.0.tar
-
补充依赖项
yum install -y curl libcurl libcurl-devel
-
安装前的配置
cd git-2.32.0
./configure --prefix=/usr/local
-
构建和安装
make && make install
-
检查安装是否成功
git --version
【或者可以下载与操作系统对应的二进制程序】
安装mysql
- wget https://dev.mysql.com/get/Downloads/MySQL-5.7/mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar
- mkdir mysql 搞一个文件夹叫mysql
- tar -xf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar -C mysql 把安装包解压到mysql
- rpm -ivh rpm的包管理工具
【mysql和maria不能共存,因为是不同的分支,先卸载再安装包,maria在mysql下面,是个隐藏的】
rpm -ivh mysql-community-common…
【补充底层依赖项,要在第四步做】
yum install -y libaio libaio-devel
查看包
rpm -qa | grep mysql
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RuXNkZ93-1637497809562)(E:\code\Python\1000phone\md\数据可视化\mysql包.png)]
-
卸载MariaDB
yum erase -y mariadb-libs
-
启动mysql
systemctl start mysqld
systemctl stop mysqld
-
查看初始密码
cat /var/log/mysqld.log | grep password -
用客户端工具连接并修改密码
mysql -u root -p
alter user ‘root’@‘localhost’ identified by ‘Xiaoli.429’;
-
【如果使用CentOS 8.x,需要调整以下两个步骤:
- yum install -y perl
- 不需要安装mysql-community-libs-compat-xxx包】
云服务器 ----->web服务器(网站服务器)----->Apache/Nginx(enginne X)
--------->浏览器--------->http://8.142.38.102
---------->购买域名------->xxxxxx.xxx
--------->DNS解析-------->http://xxxx.xxx
启动和停止服务:
启动Nginx:systemctl start nginx
停止Nginx:systemctl stop nginx
重启Nginx: systemctl restart nginx
开机启动: systemctl enable nginx
禁用自启: systemctl
联网下载
wget 网址
Vim 文本编辑器
工作模式
命令模式
进入编辑模式:i / o / a
撤销:u
翻页:ctrl+f / ctrl +b
翻行:ctrl +e / ctrl+y
删行:dd
删很多行:1000dd
删到行尾:d0
删到行尾:d$
删一个单词:dw
复制/粘贴 yy/p
撤销/恢复:u/ctrl+r
移动光标:h j k l / G gg
移动到某行 100G
0 行首
$ 行尾
编辑模式
回到命令模式:ESC
末行模式(底线命令模式)
退出:q / qa / q!
保存:w / w! / w hello.py
保存退出:wq
显示行号/隐藏行号: set nu /set nonu
高亮语法:syntax on / syntax off
自动缩进: set autoindent
设置制表键(TAB)的空格数:set ts=4
将制表键转成空格:set expandtab
替换:1,$s/新闻/哈哈/cgi
1:第一行,$:最后一行,把新闻替换成哈哈,cgi:一些配置的缩写
项目部署上线过程
-
克隆项目到云服务器
git clone depth 1 https://gitee.com/jackfrued/data_viz_2103.git
-
启动和初始化数据库
mysql -u root -p < /root/data_viz_2103/order.sql
mysql -u root -p < /root/data_viz_2103/stock.sql
create user ‘guest’@‘localhost’ identified by ‘Guest.618’;
grant select on data_viz.* to ‘guest’@‘localhost’;
grant select on stock.* to ‘guest’@‘localhost’;
-
修改Nginx配置
user
-
启动Nginx
启动:systemctl start nginx
重启:systemctl restart nginx
查看状态:systemctl status nginx
开机启动:systemctl enable nginx
禁止自启:systemctl disable nginx
停止:systemctl stop nginx
-
创建虚拟环境,安装依赖项
安装virtualvenv 工具:pip3 install virtualenv
使用virtualvenv创建虚拟环境:virtualenv --python=($which python) venv
激活虚拟环境
source venv/bin/activate
创建依赖项清单
pip freeze > requirements.txt
安装依赖项
pip install -r requirements.txt
-
启动Gunicorn
如果需要修改数据库连接信息,可以先执行export命令配置环境变量
export DB_USER=guest
export DB_PASS=Guest.618
临时变量,退出登录了就失效了
gunicorn -w 2 -b 127.0.0.1 main:app
-
修改nginx配置并重启
修改:
vim /etc/nginx/nginx.conf
http{
server{
location /api/ {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
} }
}
重启:
systemctl restart nginx
gunicorn的IP地址和location的代理地址要一样
-
域名绑定
购买域名
域名解析:A---->@---->公网IP地址
-
配置HTTPS
临时变量,退出登录了就失效了
gunicorn -w 2 -b 127.0.0.1 main:app
-
修改nginx配置并重启
修改:
vim /etc/nginx/nginx.conf
http{
server{
location /api/ {
proxy_pass http://127.0.0.1:8000;
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
} }
}
重启:
systemctl restart nginx
gunicorn的IP地址和location的代理地址要一样
-
域名绑定
购买域名
域名解析:A---->@---->公网IP地址
-
配置HTTPS
购买证书,配置端口,重启