Bourne Shell —> bsh

Bourne Again Shell —> bash

Shell —> 壳程序 —> 人机交互环境

  • 命令格式

命令格式 —> 命令 参数 目标对象

~ 命令 --help —> 获得命令的帮助

~ man 命令 —> 查看命令的手册

~ 功能键/快捷键:

- Tab - 命令或路径的自动补全

- Ctrl+w - 删除光标前面的单词

- Ctrl+u - 删除光标前所有的内容

- Ctrl+k - 删除光标后所有的内容

- Ctrl+a - 光标移到行首

- Ctrl+e - 光标移到行尾

- Ctrl+c - 终止进程

  • 基础命令

- clear - 清除屏幕输出

- history - 历史命令 —> !命令编号 —> 再次执行命令

-c:清除历史命令

- who / w - 查询接入的用户

- whoami - 查看当前用户的用户名

- cal / date - 日历 / 日期时间

- exit / logout - 退出登录

- shutdown - 关机或重启

- man - manual - 查看命令的帮助手册

- whatis - 查看命令的描述信息

- whereis / which - 查看命令对应的路径

- pwd - print working directory - 打印工作目录

- cd - change directory - 切换目录

- 绝对路径

- 相对路径

- ls - list directory contents - 列出目录下的内容

-l:长格式

-a:所有文件

- mkdir - make directory - 创建文件夹

-p:自动创建父文件夹

- cp / mv - copy / move - 复制/移动文件

-r:递归式

- rm - remove - 删除

-r:递归式

-f:强制

-i:交互式

- cat - concatenate - 连接多个文件(显示文件内容)

-n:行号

- gzip / gunzip - 压缩和解压缩

- tar - 归档和解归档

- wget - 网络下载器

~ 下载搜狐首页:wget https://www.sohu.com/

  • ps - 查看进程
  • aux / -ef —> 所有进程
  • kill PID
  • pkill 进程名字
  • top - 类似于windows的任务管理器
  • jobs - 查看当前会话的后台任务
  • fg %编号 - 将后台任务放到前台运行
  • bg %编号 - 将任务在后台运行起来
  • netstat – 检测网络端口状态
  • -n:number ,以数字的方式显示网络地址
  • -l:listen , 查看处于监听状态的网络服务
  • -p:process , 显示相关进程的信息
  • -t :tcp , 基于TCP的网络服务
  • Linux系统安装软件/服务的方式:

~ Linux系统安装软件/服务的方式:

- 使用包管理工具:最方便最简单 —> 软件管家

CentOS / Redhat:yum / rpm

Ubuntu:apt / apt-get

\1. YUM - Yellowdog Updater Modified

~ 搜索:yum search nginx

~ 安装:yum install -y nginx

~ 更新:yum update -y nginx

~ 卸载:yum erase -y nginx / yum remove -y nginx

~ 查看信息:yum info nginx

~ 查看所有安装过的包:yum list installed

\2. RPM - Redhat Package Manager

~ 安装:rpm -ivh 软件包文件

~ 卸载:rpm -e 软件包名字

~ 查看:rpm -qa | grep mysql

  • 安装MySQL 5.7.34

~ 安装MySQL 5.7.34

\1. 下载安装文件

wget https://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar

\2. 解归档到指定文件夹

mkdir mysql

tar -xf mysql-5.7.34-1.el7.x86_64.rpm-bundle.tar -C mysql

cd mysql

\3. 卸载MariaDB的库文件

yum erase -y mariadb-libs

\4. 补充底层依赖项

yum install -y libaio libaio-devel

\5. 使用RPM安装

rpm -ivh mysql-community-common-5.7.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-5.7.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-libs-compat-5.7.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-devel-5.7.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-client-5.7.34-1.el7.x86_64.rpm

rpm -ivh mysql-community-server-5.7.34-1.el7.x86_64.rpm

\6. 启动MySQL

systemctl start mysqld

\7. 查看初始密码

cat /var/log/mysqld.log | grep password

\8. 用客户端工具连接并修改密码

mysql -u root -p

mysql> alter user ‘root’@‘localhost’ identified by ‘Luohao.618’;

如果使用CentOS 8.x,需要调整以下两个步骤:

~ yum install -y perl

~ 不需要安装mysql-community-libs-compat-xxx包

  • 源码构建安装:自己定制,麻烦

~ 安装Python3.8

\1. 从官方网站下载Python源代码

wget https://www.python.org/ftp/python/3.8.10/Python-3.8.10.tgz

\2. 解压缩和解归档(把一个文件拆成多个文件)

gunzip Python-3.8.10.tgz / xz -d Python-3.8.10.tar.xz

tar -xf Python-3.8.10.tar

\3. 补充安装Python解释器需要的底层依赖项

yum install -y 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

\4. 检查有没有构建工具

gcc --version

make --version

如果没有就安装:yum install -y gcc

如果有执行更新:yum update -y gcc

\5. 安装前的配置 —> Makefile

cd Python-3.8.10

./configure --prefix=/usr/local/python38

\6. 构建和安装 —> 不能断开连接

make && make install

\7. 配置环境变量

cd ~

vim .bash_profile

—> 10G$a(光标移到第10行末尾在末尾进入编辑)

—> PATH=…:/usr/local/python3/bin

—> export PATH

—> Esc —> :wq(进入末行模式,保存退出)

退出重新登录

python3 --version

pip3 --version

\8. 创建一个符号链接(相当于Windows的快捷方式)(非必需)

ln -s /usr/local/python38/bin/python3 /usr/bin/python3

  • 安装Git

\1. 下载Git源代码

wget https://mirrors.edge.kernel.org/pub/software/scm/git/git-2.32.0.tar.xz

\2. 解压缩和解归档

xz -d git-2.32.0.tar.xz

tar -xvf git-2.32.0.tar

\3. 补充依赖项

yum install -y curl libcurl libcurl-devel

\4. 安装前的配置

cd git-2.32.0

./configure --prefix=/usr/local/

\5. 构建和安装

make && make install

\6. 检查安装是否成功

git --version

  • Vim – 文本编辑神器

~ 工作模式:

- 命令模式

- 进入编辑模式:i / o / a

- 进入末行模式:: / ?

- 移动光标:h j k l / G gg / w / 0 $

- 翻页:Ctrl+f / Ctrl+b

- 翻行:Ctrl+e / Ctrl+y

- 删除:dd / d0 / d$ / dw

- 复制/黏贴:yy / p

- 撤销/恢复:u / Ctrl+r

- 保存退出:ZZ

- 编辑模式

- 回到命令模式:Esc

- 末行模式(底线命令模式)

- 替换:1,$s/新闻/狗屎/cgi

~ c - confirm

~ g - global

~ i - ignore case

- 退出: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

服务器

云服务器 —> Web服务器(网站服务器)—> Apache / Nginx

—> 浏览器 —> http://47.108.204.85

—> 购买域名 —> jackfrued.top

—> DNS解析 —> http://jackfrued.top

  • 启动和停止Nginx服务:

~ 启动:systemctl start nginx

~ 停止:systemctl stop nginx

~ 重启:systemctl restart nginx

~ 查看状态:systemctl status nginx

~ 开机启动:systemctl enable nginx

~ 禁用自启:systemctl disable nginx

  • 启动和停止MySQL服务:

停止:systemctl stop mysqld

能用循环坚决不使用递归 递归一定要有收敛条件 找到递归的公式

  • 项目部署上线过程
  1. 克隆项目到云服务器
    git clone --depth 1 https://gitee.com/jackfrued/data_viz_2103.git
  2. 启动和初始化数据库
    systemctl start mysqld
    mysql -u root -p < /root/data_viz_2103/order.sql
    mysql -u root -p < /root/data_viz_2103/stock.sql
    mysql -u root -p
    mysql> create user ‘guest’@‘localhost’ identified by ‘Guest.618’;
    mysql> grant select on stock.* to ‘guest’@‘localhost’;
    mysql> grant select on data_viz.* to ‘guest’@‘localhost’;
  3. 修改Nginx配置
1. user root;
http {
 server {root /root/data_viz_2103/static;
       
}
}
  1. 启动Nginx

systemctl start nginx
systemctl restart nginx

  1. 安装virtualenv工具:pip3 install virtualenv 使用virtualenv创建虚拟环境:virtualenv --python=/usr/bin/python3 venv 激活虚拟环境:source venv/bin/activate 安装依赖项:pip install -r requirements.txt
  2. 如果需要修改数据库连接信息,可以先执行export命令配置环境变量 export DB_USER=guest
    export DB_PASS=Guest.618
    gunicorn -w 4 -b 127.0.0.1 main:app
  3. 修改Nginx配置并重启
5.  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
  1. 通过备案系统进行备案 域名解析:A —> @ —> 云服务器公网IP地址
  2. 配置HTTPS(了解)
    ~ 购买安全证书
    ~ 修改Nginx的配置文件 —> vim /etc/nginx/nginx.conf
http {
server {
    listen       443 ssl;
    listen       [::]:443 ssl;
    server_name  _;
    
    ssl_certificate /root/cert/python-jack.pem;
    ssl_certificate_key /root/cert/python-jack.key;
    ssl_session_timeout 5m;
    ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
    ssl_protocols TLSv1 TLSv1.1 TLSv1.2; 
    ssl_prefer_server_ciphers on;
    
    root         /root/data_viz_2103/static;
    
    # Load configuration files for the default server block.
    include /etc/nginx/default.d/*.conf;
    
    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;    
    }
    
    error_page 404 /404.html;
    location = /404.html {
    }
    
    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
    }
} 
 
    重启Nginx服务器:systemctl restart nginx