初果实验室

  • Linux 操作系统设置时区

    timedatectl set-timezone Asia/Shanghai

  • 命令行json数据格式化工具json_reformat

    Linux 命令行显示未格式化的 json 数据
    使用 json_reformat 格式化 json 后
    这样显示非常便于数据分析,
    只需要输出时使用管道重定向给 json_reformat 命令,
    json_reformat 是 yajl 提供的一个工具,
    yajl 是使用 C 开发的 JSON 分析库,
    这个库可以用来分析和验证 json 数据,
    另外一个特色是支持 stream 方式处理数据。
     
    使用 apt show yajl-tools 查看包的详情如下:
    Package: yajl-tools
    Version: 2.1.0-3
    Priority: extra
    Section: universe/utils
    Source: yajl
    Origin: Ubuntu
    Maintainer: Ubuntu Developers <ubuntu-devel-discuss@lists.ubuntu.com>
    Original-Maintainer: John Stamp <jstamp@users.sourceforge.net>
    Installed-Size: 49.2 kB
    Depends: libc6 (>= 2.4), libyajl2 (>= 2.1.0)
    Homepage: yajl
    Download-Size: 7,792 B
    APT-Manual-Installed: yes
    APT-Sources: Index of /ubuntu groovy/universe amd64 Packages
    Description: Yet Another JSON Library – tools
    A small collection of tools that use the yajl library.
    .
    Current tools are:
    json_reformat – beautifies or minimizes format of JSON data
    json_verify – validates JSON data
  • MySQL 8.0 general log 设置

    操作系统版本:Ubuntu 20.10
    MySQL版本:mysql Ver 8.0.21-0ubuntu0.20.04.4
    开启 MySQL general log 步骤:
    查找 mysqld 都读取了哪些配置文件:
    /usr/sbin/mysqld –verbose –help | grep -A 1 “Default options”
    列出了3个文件
    /etc/my.cnf
    /etc/mysql/my.cnf
    ~/.my.cnf
    这些文件只有 /etc/mysql/my.cnf 有如下内容
    !includedir /etc/mysql/conf.d/
    !includedir /etc/mysql/mysql.conf.d/
    最终在文件 /etc/mysql/mysql.conf.d/mysqld.cnf 中找到
    general_log_file 和 general_log 的配置
    设定赋值:
    general_log = 1
    general_log_file = /tmp/mysql.log
    general_log_file 对应的文件 /tmp/mysql.log 必须存在
    并且此文件的所属用户是:配置文件里面的[mysqld]中user的值,默认是mysql。
    如果属主不一致,即使其他用户有权限写这个日志文件,
    general_log 还是无法开启,开启时会报 permission denied 错误。
    修改属主
    chown mysql:mysql /tmp/mysql.log
    然后保存配置文件并退出,重新启动 mysql
    systemctl restart mysql.service
    最后使用 tail -f /tmp/mysql.log 就可以实时监控log了。
    生产环境开启这个日志要谨慎!
     
    参考资料
  • ubuntu 20.04 安装 PHP/Nginx/MySQL/Redis

    视频版:

    https://www.bilibili.com/video/BV1PK4y1n74R/

    基于Ubuntu 20.04 LTS 操作系统
    部署安装PHP
    Nginx web 服务器
    MySQL 数据库
    Redis 内存服务器

    由于服务器位于远端的机房
    所以需要远程登录服务器

    如果是Linux系统
    使用自带的terminal就可以登陆
    MacOS也有自带终端
    也可以使用 iTerm2
    Windows 可以使用的软件有很多
    例如 Windows Terminal
    共享软件 SecureCRT
    开源软件PuTTY

     

    登录系统后

    查看主机的操作系统类型
    cat /etc/os-release

    如果服务器位于国内
    建议将默认的源镜像修改为国内的地址
    https://developer.aliyun.com/mirror/ubuntu
    这样下载软件包速度会比较快

    安装 php
    apt install php

    安装 PHP进程管理器 php-fpm
    apt install php7.4-fpm

    卸载 apache2
    systemctl stop apache2.service
    apt purge apache2

    安装 nginx
    apt install nginx

    安装 MySQL
    apt install mysql-server

    安装Redis
    apt install redis-server

    安装多字节字符串扩展
    apt install php7.4-mbstring

    安装 curl 扩展
    apt install php7.4-curl

    安装 MySQL 扩展
    apt install php7.4-mysql

    安装 Redis 扩展
    apt install php7.4-redis

    安装图形库扩展
    apt install php7.4-gd

    php-imagick

    到此网站运行的基础软件都安装好了
    软件的配置也都使用了默认的配置
    但这样的配置仅用于开发测试
    用于生产环境的话要配置的细节就比较多

    修改mysql root 密码
    首先输入mysql登录mysql
    然后输入
    ALTER USER ‘root’@’localhost’ IDENTIFIED WITH mysql_native_password BY ‘abcd12345’;
    将密码修改为 abcd12345
    使用 flush privileges
    刷新权限
    至此开发环境搭建完毕

  • 购买Linode云服务器操作流程

    视频版:

    https://www.bilibili.com/video/BV19X4y1G7dc/

    如何在 Linode 购买云服务器
    Linode 是一家老牌的服务器主机供应商
    在全球多个地方都有数据中心
    购买流程方便快捷
    服务售后都做的不错
    价格也挺实惠
    最便宜主机每个月只需要 5美金
    用来做开发测试
    或者运营小微网站都是不错的选择
    据说知乎网站最早期的服务器也用的是 Linode
    首先访问 Linode 官方网站
    注册新账户
    点击邮箱里面的注册链接后
    会跳转到账单信息的填写页面
    然后填写自己的相关信息
    有 optional 标记的字段可以不用填写
    填写信用卡卡号
    有效月份和年份以及3位的 CVV 代码
    不需要输入信用卡密码
    最后勾选同意协议点击注册
    这个时候你可能会收到1美金的扣费通知
    这个只是用来验证你输入的信用卡是否有效
    不会计入实际的账单
    Linode是老牌的主机服务器提供商
    成立时间比阿里云还早
    支持7天无理由退款
    采用先使用后计算的按月结算方式
    所以不用过于担心乱扣费的问题
    信用卡验证成功后就可以进入到后台了
    现在我们来创建一台服务器
    根据自己的需求选择对应的操作系统
    这里我以 Ubuntu 20.04 为例
    建议选择 LTS 也就是 长期支持版本
    区域选择离客户相对较近的节点
    这里我选择最近的日本东京节点
    这里列出了不同配置的CPU和内存
    根据自己的预算选择就可以
    计费单位是按小时计算
    Label 是服务器的别名
    方面自己记忆和区分
    Root password 是最高权限的用户的密码
    然后点击创建
    Linode的套餐里面列出的磁盘存储
    不需要另外支付费用
    除了系统占用的空间外
    也有较多的余留空间
    如果存储空间不够
    需要挂载附加磁盘
    这个时候就会额外计费
    到此服务器就购买完成了
    接下来就可以使用 secureCRT 或者 PuTTY 等会话软件
    登录到这台服务器完成后续的操作

  • 如何在 name.com 注册域名

    https://www.bilibili.com/video/BV1cU4y1p7Hz/

    本视频演示如何在 name.com 注册账号、购买域名、设置 DNS 记录。
    name.com 支持支付宝付款,也可以使用 visa 信用卡付款。
    如果信用卡是首次国际购物,有些银行会打电话确认交易。
    如果一年后不打算续订,记得关闭自动扣费。
    刚注册的域名,一个月以后才可以转出。

  • 使用 root 登录 Ubuntu系统

    以 Ubuntu 操作系统为例,

    默认是不允许 root  登录的,

    如果希望以  root 身份登录操作系统,

    需要修改 ssh 的配置文件 /etc/ssh/sshd_config

    修改 PermitRootLogin 值为 yes

    修改 PasswordAuthentication 值为 yes

    然后重新启动 ssh 服务即可

    systemctl restart ssh.service

    或者

    service ssh restart

  • 使用GNU Screen进行结对编程

    视频版:

    https://www.bilibili.com/video/bv1NV411v7Yi

    结对编程有很多好处,可以互相提高编程水平,及时发现问题,实时共享知识技巧,

    但是由于传染病的流行,近距离接触有互相感染的风险,所以可以考虑远程结对编程,

    这个时候就需要协助软件,如果开发环境是Linux,可以使用 GNU Screen来实现。

    Screen 是 GNU 系列自由软件之一,很多Linux 发行版本都有预装,

    它本身是一款终端多会话管理工具,但是有一个特性可以实现结对编程的效果。

    以ubuntu操作系统为例,如果没有安装的话使用

    apt install screen

    就可以安装。

    首先使用

    screen -S session_name 创建会话

    然后所有通过 -x 参数进入会话的用户,

    screen -x session_name

    所有操作都是实时同步的,

    这样就实现了远程结对编程。

    另外一个工具是 tmux 也可以实现同样的功能。

    有兴趣的请自行尝试。

     

     

  • vim 编辑器 列模式 visual block 操作指南

    https://www.bilibili.com/video/BV1mb4y1X7ys/

    可视模式下,
    你可以选择想操作的文件内容,
    选中的内容会高亮显示,
    类似于使用鼠标选择文本内容,
    然后就可以执行各种操作。

    vim 编辑器 可视模式 VISUAL MODE 有下面三种

    1. 字符模式 按键 v — VISUAL —
    2. 行模式 按键 shift + v — VISUAL LINE —
    3. 列模式 按键 ctrl + v — VISUAL BLOCK —

    其实就是3中选择内容的方式,

    字符模式和行模式比较常见,

    列模式基于列来选择内容,比较特殊,

    在某些场景,列模式很有用,

    本视频主要演示列模式的操作。