• 服务器管理


    腾讯云服务器相关管理

    linux下安装python3

    linux自带2.x,有时候需要2.x执行一些工具,开发的时候又想用p3,就需要同时装python2和python3
    依次执行以下命令

    ssh xxx@xx.xx.xx.xx  #进入linux服务器
    su #输入密码,如果不知道管理员账户但拥有sudo权限,下面所有命令前缀都跟sudo
    mkdir /etc/python3
    cd /etc/python3
    wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0a1.tar.xz
    tar xvf  Python-3.6.0a1.tar.xz 
    cd Python-3.6.0a1
    ./configure
    make && make install
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    安装成功,验证:

    python3 --version
    >>python 3.6.0a1
    python --version
    >>python 2.7.5
    
    • 1
    • 2
    • 3
    • 4

    linux 下python3 使用venv

    mkdir /opt/PythonProject/test
    cd /opt/PythonProject/test
    python -m venv venv
    
    • 1
    • 2
    • 3

    至此,在test创建了一个venv的目录,保存python环境

    激活虚拟环境

    source env/bin/acticate
    
    • 1

    退出虚拟环境

    source env/bin/acticate
    
    • 1

    腾讯云配置ssh登录

    https://blog.csdn.net/qq_31628559/article/details/124467951

    python安装包时候报错

    Command “/opt/PythonProject/python_test/venv/bin/python3 -u -c “import setuptools, tokenize;file=‘/tmp/pip-build-ybmb9bk6/llvmlite/setup.py’;f=getattr(tokenize, ‘open’, open)(file);code=f.read().replace(‘\r\n’, ‘\n’);f.close();exec(compile(code, file, ‘exec’))” install --record /tmp/pip-8w41ni_o-record/install-record.txt --single-version-externally-managed --compile --install-headers /opt/PythonProject/python_test/venv/include/site/python3.6/llvmlite” failed with error code 1 in /tmp/pip-build-ybmb9bk6/llvmlite/
    在这里插入图片描述
    可以尝试使用pip install --upgrade pip重新安装包

    Pycharm开发相关的坑

    pycharm开发flask

    在这里插入图片描述
    debug 模式卡住

    https://www.jianshu.com/p/c9144aeb0f38

    网站seo好用的工具

    网站seo相关工具

    1. 站长之家seo查询工具
      https://seo.chinaz.com/
      可以查看网站在全网搜索引擎流量的情况
    2. 百度搜索资源平台
      https://ziyuan.baidu.com/
      可以主动向百度提交收录请求,查看网站的相关数据
    3. Matomo Analytics
      wordpress的一款插件,可以查看网站的访问量
    4. google 站长工具
      https://search.google.com/
    5. http://www.ecjson.com/(可以将json字符串变成树形结构,并可以自动转换字符串中的Unicode字符串)

    vim 编辑器相关操作

    今天给大家介绍linux下vim编辑器的全局替换功能

    全局替换

    创建一个文件
    在这里插入图片描述
    vim 打开
    在这里插入图片描述
    3. 写入一些内容
    在这里插入图片描述
    4. 现在要求吧hello 替换为hi
    输入 :%s/hello/hi/g 其中g代表全局替换

    在这里插入图片描述
    得到结果

    在这里插入图片描述

    linux 相关操作

    linux 向文件末尾添加一行数据

    开始我有一个文件
    在这里插入图片描述
    2. 现在我想向文件的最后添加一行数据,但是使用vim编辑器打开太麻烦了,下面通过一行命令就可以向文件中添加一行数据
    在这里插入图片描述
    可以看到现在成功添加了一行数据

    1. 但是注意 千万不要使用下面的命令,否则你看到的结果将会是意想不到的
    2. 在这里插入图片描述
    3. 下面介绍linux 中 >> 和 > 的区别

    “>”会覆盖目标的原有内容。当文件存在时会先删除原文件,再重新创建文件,然后把内容写入该文件;否则直接创建文件。

    ”>>“会在目标原有内容后追加内容。当文件存在时直接在文件末尾进行内容追加,不会删除原文件;否则直接创建文件。

    原文链接:https://www.jianshu.com/p/81fa507f15ee

    总的来说 > 是覆盖写,>>是追加写

    开启远程连接

    默认情况下,mysql是没有开启远程连接的

    mysql -u root -p
    
    # 输入数据库root用户密码
    GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY '你的root密码' WITH GRANT OPTION;
    # %:表示从任何主机连接到mysql服务器
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    Linux进程和线程

    ps aux

    显示其他用户启动的进程(a)
    查看系统中属于自己的进程(x)
    启动这个进程的用户和它启动的时间(u)

    1. ps -m [pid]
      显示进程下的线程

    2. 协程
      在这里插入图片描述

    在大多数情况下计算机加锁都是比较耗费性能的操作

    git常用操作

    统计项目所有成员的代码行数

    git log --format='%aN' | sort -u | while read name; do echo -en "$name\t"; git log --author="$name" --pretty=tformat: --numstat | awk '{ add += $1; subs += $2; loc += $1 - $2 } END { printf "added lines: %s, removed lines: %s, total lines: %s\n", add, subs, loc }' -; done
    
    • 1

    gradle 入门

    什么是gradle

    gradle是用于构建项目的,gradle侧重于大项目的构建

    为什么要学习gradle

    1. gradle构建项目更快

    2. spring默认的构建工具已转向gradle

    3. 市面上的公司开始使用gradle

    4. gradle侧重项目的构建,功能更全面,而maven只是侧重于jar包管理

    redis的安装与管理

    cente os 通过yum安装redis

    yum install redis
    
    • 1

    .2. 连接redis

    如果报下面的错证明redis-server没有成功启动

    Could not connect to Redis at 127.0.0.1:6379: Connection refused

    1. 本方式安装的redis配置文件于/etc/redis.conf

    注释掉bind 127.0.0.1,这种方式意味所有人都可以访问这台机器的redis实例,这是相当危险的,线上项目应该避免这样做

    同时设置守护进程方式启动,在配置文件中修改

    daemonize yes

    1. 启动redis服务端实例
    redis-server /etc/redis.conf
    
    • 1
    1. 查看启动的redis实例
    ps -ef | grep redis
    
    • 1

    在这里插入图片描述
    6. 连接redis进行测试
    7.在这里插入图片描述

    1. 如果想让外部机器能访问需要开放6379端口,但是仅仅这些还不够

    如果redis没有指定bind address ,也没有指定密码,那么redis仅允许本机去访问,处于保护模式

    1. 设置redis 密码

    可以参考以下链接

    https://blog.csdn.net/m0_58746619/article/details/125865904

    停止redis实例
    修改配置文件
    启动redis实例
    
    • 1
    • 2
    • 3

    编写如下测试代码

    package controller;
    
    import org.junit.Test;
    import org.junit.runner.RunWith;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.boot.test.context.SpringBootTest;
    import org.springframework.data.redis.core.RedisTemplate;
    import org.springframework.test.context.junit4.SpringRunner;
    
    @RunWith(SpringRunner.class)
    @SpringBootTest(classes = HelloApplication.class)
    public class RedisTest {
    
        @Autowired
        private RedisTemplate redisTemplate;
    
        @Test
        public void setTest(){
            redisTemplate.boundValueOps("name").set("zhangsan1");
        }
    
        @Test
        public void getTest(){
            Object name = redisTemplate.boundValueOps("name").get();
            System.out.println(name);
        }
    
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28

    修改配置文件

    spring:
      profiles: prod
      redis:
        host: 175.24.184.55
        password: ********
    
    • 1
    • 2
    • 3
    • 4
    • 5

    nginx 相关配置

    nginx 默认监听80端口, 不带端口的方式默认就是访问80端口
    nginx安装
    yum install nginx
    2. centos nginx 启动
    systemctl start nginx
    3. nginx位置

    whereis nginx
    3. nginx位置

    whereis nginx
    在这里插入图片描述
    我这个nginx不是用yum安装的,和使用yum安装的目录结构不同

    1. 重启nginx
      systemctl restart nginx

    mongodb

    db.ticket.update(
        {
            'form_data.assignment': 'XXX@XXX.cn'
        }, 
        {
            $set: {'form_data.assignment': 'XXX1@XXX.cn'}
        },
        {
            multi: true
        }
    )
    不加此选项默认更新一条数据
    {
        multi: true
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15

    查找不存在某个字段的数据

    db.ticket.find({
    
        'create_time': {'$exists': false}
    })
       .projection({})
       .sort({_id:-1})
       .limit(100)
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
  • 相关阅读:
    Mac mov转mp4,详细转换步骤
    学生个人单页面网页作业 学生网页设计成品 静态HTML网页单页制作 dreamweaver网页设计与制作代码 web前端期末大作业
    [论文笔记] Open-Sora 1、sora复现方案概览
    辅助生成:低延迟文本生成的新方向
    高性能 MySQL(十二):分区表
    源码:Infragistics 2022.2 sources
    基于UCOSII的DMA-SPI通信
    【SQL Server】外键约束
    立创EDA——PCB的走线(五)
    openssl3.2 - 编译 - zlib.dll不要使用绝对路径
  • 原文地址:https://blog.csdn.net/weixin_43297727/article/details/132942215