常用的linux命令

常用的linux命令

文章目录

      • 常用的linux命令
        • 进程命令
        • 虚拟环境
        • flask数据迁移
        • Redis数据库操作
        • Git相关操作
        • 项目部署
        • Django相关
        • 数据库相关操作

进程命令

  • 找软件进程名找PID
    • ps aux | grep 进程名
  • 根据端口找PID
    • lsof -i:端口号
  • 杀进程
    • kill -9 PID

虚拟环境

  • 虚拟环境 mkvirtualenv -p python3 环境名
  • 退出虚拟环境 deactivate
  • 进入虚拟环境 workon 环境名
  • 查看所有的虚拟环境 workon 双击tab
  • 查看已安装的包 pip freeze

flask数据迁移

  • 初始化迁移文件夹
    • python main.py mc init
  • 生成版本(会自动根据现有代码的数据库结构, 生成升级代码)
    • python main.py mc migrate -m “构建表结构”
  • 升级版本
    • python main.py mc upgrade

Redis数据库操作

  • 启动redis数据库
    • sudo redis-server /etc/redis/redis.conf
  • 终端访问redis数据库
    • sudo redis-cli -h 127.0.0.1 -p 6379
  • 创建数据库集群
    • redis-trib.rb create --replicas 1 127.0.0.1:7000 127.0.0.1:7001 127.0.0.1:7002 127.0.0.1:7003 127.0.0.1:7004 127.0.0.1:7005
  • 访问数据库集群 访问集群必须加-c
    • sudo redis-cli -h 127.0.0.1 -p 7000 -c

Git相关操作

  • 创建本地仓库
  • git init
  • 设置仓库的作者信息
git config user.name JK_LK git config user.email [email protected]
  • 全局设置作者信息(仓库默认使用)
git config user.name --global
  • 查看本地仓库状态
    • git status
  • 将工作区内容提交到暂存区
    • git add 文件 git add
  • 将暂存区内容提交到仓库区
    • git commit -m “注释”
  • 查看仓库当前的版本
    • git log
  • 根据暂存区还原工作区
    • git checkout 文件名
  • 根据仓库区还原暂存区
    • git reset HEAD
  • 切换到上一个版本(还会根据仓库区还原暂存区)
    • git reset HEAD^
  • 切换到指定版本(版本号前7位)
    • git reset a4a659a
  • 查看历史操作
    • git reflog
  • 删除工作区和暂存区文件
git rm 文件名, 此时提交git commit, 新版本就没有该文件了  
  • 恢复误删除
如果已经提交了新版本, 先切换到上一个版本 git reset HEAD^, 再还原工作区git checkout 文件名
如果还没有提交新版本, 先还原暂存区git reset HEAD, 再还原工作区git checkout 文件名
  • 扩展命令
只删除暂存区文件 git rm 文件名 --cached
还原仓库区和暂存区(默认) git reset HEAD^ --mixed
只还原仓库区 git reset HEAD^ --soft
还原仓库区&暂存区&工作区 git reset HEAD^ --hard
  • 远程操作
克隆远程仓库(下载项目代码, 并且包含本地仓库) git clone https://gitee.com/cz_zzz/InfoNews.git
推送本地版本到远程仓库 git push
拉取远程版本到本地仓库 git pull
记录密码 git config --global credential.helper store
  • 标签
项目经理:
给重要的版本打标签: git tag -a v1.0 -m "1.0版本" 版本号
将标签推送到远程仓库 git push origin v1.0
开发人员:
先拉取远程版本 git pull
查看所有的标签 git tag
查看标签对应的版本 git show v1.0
切换到对应的版本 git reset 版本号
  • 分支
项目经理: 
创建分支 git branch dev
推送分支到远程仓库 git push origin dev -u
将稳定版本合并到主分支 
先拉取远程版本git pull
再切换到主分支 git checkout master
合并分支 git merge dev 
开发人员:
先拉取远程版本 git pull
切换到开发分支 git checkout dev
在开发分支中进行开发

项目部署

  • 相关环境安装
先更新 apt 相关源
sudo apt-get update
mysql安装
apt-get install mysql-server
apt-get install libmysqlclient-dev
redis安装
sudo apt-get install redis-server
安装虚拟环境
pip install virtualenv
pip install virtualenvwrapper
使得安装的virtualenvwrapper生效,编辑~/.bashrc文件,内容如下:
export WORKON_HOME=$HOME/.virtualenvs
export PROJECT_HOME=$HOME/workspace
source /usr/local/bin/virtualenvwrapper.sh
使编辑后的文件生效
source ~/.bashrc
  • requirements文件
在虚拟环境使用以下命令将当前虚拟环境中的依赖包以版本号生成至文件中:
pip freeze > requirements.txt
当需要创建这个虚拟环境的完全副本,可以创建一个新的虚拟环境,并在其上运行以下命令:
pip install -r requirements.txt
在安装 Flask-MySQLdb 的时候可能会报错,可能是依赖包没有安装,执行以下命令安装依赖包:
sudo apt-get build-dep python-mysqldb
  • Nginx
安装
$ sudo apt-get install nginx
运行及停止
/etc/init.d/nginx start #启动
/etc/init.d/nginx stop  #停止
配置文件
编辑文件:/etc/nginx/sites-available/default

# 如果是多台服务器的话,则在此配置,并修改 location 节点下面的 proxy_pass 
upstream flask {
        server 127.0.0.1:5000;
        server 127.0.0.1:5001;
}
server {
        # 监听80端口
        listen 80 default_server;
        listen [::]:80 default_server;

        root /var/www/html;

        index index.html index.htm index.nginx-debian.html;

        server_name _;

        location / {
                # 请求转发到gunicorn服务器
                proxy_pass http://127.0.0.1:5000;
                # 请求转发到多个gunicorn服务器
                # proxy_pass http://flask;
                # 设置请求头,并将头信息传递给服务器端 
                proxy_set_header Host $host;
                # 设置请求头,传递原始请求ip给 gunicorn 服务器
                proxy_set_header X-Real-IP $remote_addr;
        }
}
  • Gunicorn
pip install gunicorn
查看选项
gunicorn -h
运行
# -w: 表示进程(worker) -b:表示绑定ip地址和端口号(bind)
gunicorn -w 2 -b 127.0.0.1:5000 运行文件名称:Flask程序实例名

Django相关

  • 创建工程的命令为
    • django-admin startproject 工程名称
  • 运行开发服务器
    • python manage.py runserver ip:端口
      或:python manage.py runserver
  • 创建子应用模块目录
    • python manage.py startapp 子应用名称
  • 数据迁移
    • python manage.py makemigration
    • python manage.py migrate

数据库相关操作

  • 为项目创建数据库用户(不再使用root账户)
create user django identified by 'django';
grant all on django_1.* to 'django'@'%';
flush privileges; 

说明:

第一句:创建用户账号 django, 密码 django (由identified by 指明)
第二句:授权meiduo_mall数据库下的所有表(django_1.*)的所有权限(all)给用户django在以任何ip访问数据库的时候('django'@'%')
第三句:刷新生效用户权限

你可能感兴趣的:(常用的linux命令)