day38-day39
总结
-
Bourne Shell —> bsh
-
Bourne Again Shell —> bash
-
Shell —> 壳程序 —> 人机交互环境
-
命令格式 —> 命令 参数 目标对象
-
命令 --help —> 获得命令的帮助
-
man 命令 —> 查看命令的手册
-
功能键/快捷键:
- Tab - 命令或路径的自动补全
- Ctrl+w - 删除光标前面的单词
- Ctrl+u - 删除光标前所有的内容
- Ctrl+k - 删除光标后所有的内容
- Ctrl+a - 光标移到行首
- Ctrl+e - 光标移到行尾
- Ctrl+c - 终止进程
- Tab - 命令或路径的自动补全
-
-
基础命令:
- 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 / pkill / killall - 结束进程 kill PID pkill 进程名字 - top - 类似于Windows的任务管理器 - jobs - 查看当前会话的后台任务 ---> 编号 ~ 可以在命令后面使用 & 将任务放到后台运行 ~ 如果任务已经在前台运行了,可以用Ctrl+z将任务暂停并放到后台 - fg %编号 - 将后台任务放到前台运行 - bg %编号 - 将任务在后台运行起来 - netstat - 检测网络和端口状态 -n:number,以数字的方式显示网络地址 -l:listen,查看处于监听状态的网络服务 -p:process,显示相关进程的信息 -t:tcp,基于TCP的网络服务
-
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 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 start mysqld
- 停止:systemctl stop mysqld
-
项目部署上线过程:
-
克隆项目到云服务器
git clone --depth 1 https://gitee.com/jackfrued/data_viz_2103.git -
启动和初始化数据库
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 -pmysql> 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';
-
修改Nginx配置
user root; http { server { root /root/data_viz_2103/static; } }
-
启动Nginx
systemctl start nginx
systemctl restart nginx -
-
创建虚拟环境,安装依赖项
- 安装virtualenv工具:pip3 install virtualenv
- 使用virtualenv创建虚拟环境:virtualenv --python=/usr/bin/python3 venv
- 激活虚拟环境:source venv/bin/activate
- 安装依赖项:pip install -r requirements.txt
-
-
启动Gunicorn
-
如果需要修改数据库连接信息,可以先执行export命令配置环境变量
export DB_USER=guest
export DB_PASS=Guest.618gunicorn -w 4 -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
-
域名绑定
~ 购买域名:https://wanwang.aliyun.com/
~ 通过备案系统进行备案
~ 域名解析:A —> @ —> 云服务器公网IP地址 -
配置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
-