• 关于archlinux的使用


    1.查看linux内核的版本

    cat /proc/version

    2.关于archlinux的软件安装

    2.1 使用pacman -S yay -S进行安装,安装后,这些包都在/var/cache/pacman/pkg/文件夹下,为了避免使用pacman -Syu命令将某个软件更新,可以在/etc/pacman.confIgnorePkg位置加上这个软件名。
    【如果想降级一个软件:可以参考https://wiki.archlinux.org/title/Arch_Linux_Archive#How_to_downgrade_one_package

    2.2 如果下载的是一个tar.gz的压缩包,使用tar -zxvf进行解压,再进入到解压后的文件夹中,执行安装,此处执行makepkg的时候不允许用root用户,必须用普通用户,makepkg -s //-s参数可以自动解决依赖,编译完成后会生成一个.pkg.tar.xz的文件,再用pacman -U执行本地安装:
    pacman -U visual-studio-code-bin-1.23.1-1-x86_64.pkg.tar.xz

    2.3 如果下载的是一个.pkg.tar.xz的压缩包,用pacman -U执行本地安装。

    3.关于在archlinux中使用root用于登录的方法

    直接在命令行输入vim /usr/lib/systemd/system/getty@.service进行编辑
    找到ExecStart=-/sbin/agetty --noclear %I 38400 linux
    改为ExecStart=-/sbin/agetty --noclear -a root %I 38400 linux
    然后重启电脑reboot即可

    4.SSH服务

    注意在开启ssh服务时,vim /etc/ssh/sshd_config找到PermitRootLogin prohibit-password,将prohibit-password改为yes

    5.关于pacman的常用指令:

    5.1 pacman -S 指令:安装

    sudo pacman -S #安装软件
    sudo pacman -Sy #获取最新打软件情况,如果已经是最新了,直接会提示已经更新到最新了。
    sudo pacman -Syy #强行更新你的应用的软件库(源)
    sudo pacman -Su #更新所有软件
    sudo pacman -Syu #更新软件源并更新你的软件
    sudo pacman -Syyu #强行更新一遍,再更新软件
    sudo pacman -Ss <pkg_name> #查询所有软件名里面带有<pkg_name>相关的软件。
    sudo pacman -Sc #删除软件/var目录下的缓存
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    5.2 pacman -R 指令:删除

    sudo pacman -R <pkg_name> #删除软件
    sudo pacman -Rs <pkg_name> #删除软件,并删除<pkg>所有的依赖包
    sudo pacman -Rns <pkg_name> #删除软件,并删除<pkg>所有的依赖,并删掉<pkg>的全局配置文件。 推荐!!
    
    • 1
    • 2
    • 3

    5.3 pacman -Q 指令:查询

    sudo pacman -Q #显示出所有软件 sudo pacman -Q | wc -l 查询数量
    sudo pacman -Qe #查询所有自己安装的软件
    sudo pacman -Qeq #查询所有自己安装的软件,只显示包名,不显示版本号等
    sudo pacman -Qs <pkg_name> #查询本地安装的所有带<pkg_name>的软件
    sudo pacman -Qdt #查询所有孤儿软件,不再被需要的。
    sudo pacman -Qdtq #查询所有不再被依赖的包名
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    6.关于在命令行窗口开启/管理DL的方法

    在archlinux中配置了clash后,或者其他的工具后,可以在使用脚本的方法实现在命令行自定义快速开启或者关闭代理,这样只要clash配置成服务了,即使远程也可以开启/关闭代理了。

    1. 通过命令 vim teminal_proxy.sh新建一个脚本文件,内容如下:
    # 开启DL
    function proxy_on(){
        export ALL_PROXY=socks5://127.0.0.1:1087  # 注意你的端口号可能不是1087,注意修改
        export http_proxy=http://127.0.0.1:1087
        export https_proxy=https://127.0.0.1:1087
        echo -e "已开启代理"
    }
    # 关闭DL
    function proxy_off(){
        unset ALL_PROXY
        unset http_proxy
        unset https_proxy
        echo -e "已关闭代理"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    1. 修改配置文件
      通过命令vim /etc/bash.bashrc编辑配置文件,在最后一行加上下面的内容:
      source /home/fuhe/Downloads/clash/teminal_proxy.sh,因为我的脚本文件放在/home/fuhe/Downloads/clash/路径下。
      保存后,使用命令source /etc/bash.bashrc更新一下配置文件。
      然后在终端就可以使用以下命令随意打开/关闭代理了。
      打开代理:proxy_on 关闭代理:proxy_off
      在这里插入图片描述

    7.利用Docker安装不同版本的MySQL

    7.1安装Docker并开启Docker

    1. 安装docker
      sudo pacman -S docker
    2. 将docker设为开机启动
      sudo systemctl enable docker.service
    3. 启动docker
      sudo systemctl start docker.service
    4. 查看docker信息
      sudo docker info
    5. 常见操作
      docker start 容器名/容器ID 启动容器
      docker stop 容器名/容器ID 停止容器
      docker restart 容器名/容器ID 重启容器
      docker stats 容器名/容器ID 查看容器内存、CPU、网络IO、磁盘IO的情况
      docker rename 旧容器名 新容器名
      docker logs -f 容器名 滚动查看容器的日志

    7.2 安装MySQL5.7.34

    1. 拉取MySQL5.7.34镜像
      docker pull mysql:5.7.34
    2. 查看当前所有的镜像
      docker images
    3. 创建并运行mysql57容器,同时设置MySQL5.7.34的root用户登录密码
      docker run --name mysql57 -p 3308:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34
    指令参数说明
    run启动Docker
    -p 3308:3306操作系统端口:Docker运行MySQL的服务端口
    -name mysql57当前启动容器的名称
    -e MYSQL_ROOT_PASSWORD=123456设置MySQL5.7.34的root用户密码
    -d mysql5.7.34镜像名称
    1. 进入MySQL5.7.34所在的Docker中
      docker exec -it mysql57 bash

    2. 登录MySQL
      mysql -uroot -p
      然后输入密码即可登陆成功。

    3. 修改本地root密码
      ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password' PASSWORD EXPIRE NEVER;

    4. 修改本地密码后远程仍使用旧密码的解决方法
      Mysql 中一个用户,对应两个密码,一个是 @localhost 的密码, 一个是 @% 的密码。
      select host, user, authentication_string from mysql.user查看
      在这里插入图片描述
      更改远程登录的密码:
      UPDATE user SET authentication_string= PASSWORD('654321') WHERE User = 'root';

    5. 设置mysql随docker启动而自启动
      docker update mysql --restart=always

    7.3 安装MySQL8.0.26

    1. 拉取MySQL8.0.26镜像
      docker pull mysql:8.0.26
    2. 查看当前所有的镜像
      docker images
    3. 创建并运行mysql80容器,同时设置MySQL8.0.26的root用户登录密码
      docker run --name mysql80 -p 3309:3306 -e MYSQL_ROOT_PASSWORD=123456 -d mysql:8.0.26
    指令参数说明
    run启动Docker
    -p 3309:3306操作系统端口:Docker运行MySQL的服务端口
    -name mysql80当前启动容器的名称
    -e MYSQL_ROOT_PASSWORD=123456设置MySQL8.0.26的root用户密码
    -d mysql8.0.26镜像名称
    1. 进入MySQL8.0.26所在的Docker中
      docker exec -it mysql80 bash
    2. 登录MySQL
      mysql -uroot -p
      然后输入密码即可登陆成功。
    3. 如果要远程连接,更改远程root用户的密码规则。
    #使用mysql数据库
    USE mysql;
    #修改'root'@'%'用户的密码规则和密码
    ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
    #刷新权限
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    注意:
    由于最新版MySQL的加密方式改变了,如果使用Navicat Premium 15等工具连接无法连接成功,我们需要对docker【mysql80】里面的MySQL8.0.26的加密方式进行修改。
    输入docker exec -it mysql80 bash进入当前docker,其中mysql80是该docker的容器名字,如图所示:
    在这里插入图片描述

    #使用mysql数据库
    USE mysql;
    #修改'root'@'localhost'用户的密码规则和密码
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'abc123';
    #刷新权限
    FLUSH PRIVILEGES;
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    这只是对本地root用户进行的修改,如果是要远程连接,也需要对远程用户的密码规则进行修改。如6中所述。
    如果仅仅是修改密码,则使用命令:alter user 'root'@'localhost' identified by 'new password';

    8.在Docker中安装vim

    /etc/apt/sources.list文件中,写入源地址。

    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster main contrib non-free" >/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-updates main contrib non-free" >>/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian/ buster-backports main contrib non-free" >>/etc/apt/sources.list
    echo  "deb http://mirrors.tuna.tsinghua.edu.cn/debian-security buster/updates main contrib non-free" >>/etc/apt/sources.list
    
    • 1
    • 2
    • 3
    • 4

    apt-get update
    apt-get install vim

    9.关于端口

    在MySQL中查看端口:show global variables like 'port';
    找到端口对应的进程,lsof -i:3307,可通过kill PID关闭进程。

    10.查看容器的IP

    docker inspect -f '{{.Name}} - {{.NetworkSettings.IPAddress }}' $(docker ps -aq)

    11.容器下的日志管理

    docker的日志,docker的日志分为两种,第一种是docker引擎的日志,第二种是docker容器运行时的服务日志。默认为json-file格式,json-file日志驱动记录从容器的 STOUT/STDERR的输出 ,用 JSON 的格式写到文件中,日志中不仅包含着输出日志,还有时间戳和输出格式。
    常用的驱动是json-file,syslog ,journald 这三种,json-file 是默认的日志驱动。
    docker的日志通常默认是保存在 /var/lib/docker/containers/容器名称/ 目录下,如果是默认的json-file 驱动,那么日志文件名称为 容器名称-json-log,当然,docker日志也有级别,通常级别为info,如果为debug的话,那么日志增长会非常快的。
    docker日志快速增长的解决方法:

    11.1 定时任务清空日志(需定时查看并手动清理)

    这种方法可以通过建立脚本的方法。如下:
    在这里插入图片描述
    首先在脚本路径下新建脚本文件:vim docker_log.sh,我的路径在/home/fuhe/Documents/dockerLog/下。
    然后添加下面的内容:

    function dockerLogSIze(){
    	echo "======== docker containers logs file size ========"
    	logs=$(find /var/lib/docker/containers/ -name *-json.log)
    	for log in $logs
    	do
    	ls -lh $log
    	done
    }
    function cleanDockerLog(){
    	echo "======== start clean docker containers logs ========"
    	logs=$(find /var/lib/docker/containers/ -name *-json.log)
    	for log in $logs
    	do
    	echo "clean logs : $log"
    	cat /dev/null > $log
    	done
    	echo "======== end clean docker containers logs ========"
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18

    需要添加执行权限
    chmod +x docker_log.sh
    完成后,在/etc/bash.bashrc文件的最后一行加上:
    source /home/fuhe/Documents/dockerLog/docker_log.sh
    添加后,通过命令source /etc/bash.bashrc进行更新。
    然后在命令行终端就可以通过dockerLogSIze查看日志的大小,通过cleanDockerLog清理日志文件。
    当然可以将脚本设为定时启动的,定期就执行一次。

    11.2 限制日志的大小

    另一种方法就是通过设置Docker容器日志大小,有三种实现方式。

    1. 全局限制,也就是所有的docker容器统一使用一个限定值,不管是原来已启动的镜像还是以后将要启动的镜像,统统限制日志大小。
      新建daemon.json:vim /etc/docker/daemon.json,然后添加一下内容:

      {
      "log-driver":"json-file",
      "log-opts": {"max-size":"500m", "max-file":"3"}
      }
      
      • 1
      • 2
      • 3
      • 4

      max-size=500m,意味着一个容器日志大小上限是500M,max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。使用的驱动是json-file驱动。

    2. docker run 阶段,某一个容器单独限定日志大小。
      --log-driver json-file --log-opt max-size=10m,比如,将这一段加在docker run 后面,那么以这条命令启动的容器日志将会限定在10m大小,并且使用的日志驱动是json-file。
      docker run --name mysql57 -p 3308:3306 --log-driver json-file --log-opt max-size=10m -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.7.34
      这个mysql57容器的日志将会保持在10m大小。使用的日志驱动是json-file。

    3. docker-compose 编排启动一组容器时组内每个容器日志限制大小。
      关于docker-compose 编排文件限制,参考下面的文章。

    https://blog.csdn.net/yy8623977/article/details/124563135?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522166374101416782391862774%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=166374101416782391862774&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_ecpm_v1~pc_rank_34-2-124563135-null-null.142v48pc_rank_34_1,201v3control_1&utm_term=docker-compose%20%E7%BC%96%E6%8E%92%E6%96%87%E4%BB%B6%E9%99%90%E5%88%B6&spm=1018.2226.3001.4187

  • 相关阅读:
    Java循环的使用案例与嵌套循环
    【Kubernetes】当K8s出现问题时,我们可以从哪些方面排查出
    yolo系列配置文件解析,内容来自官方
    【无标题】
    十二、集合操作
    【网络安全 --- kali2023安装】超详细的kali2023安装教程(提供镜像资源)
    python父类子类的继承和覆写的区别以及通过代码进行讲解
    2023中国物流系统集成商百强榜研究报告(附下载)
    python 字符串类型
    Java多线程进阶——CAS与synchronized优化
  • 原文地址:https://blog.csdn.net/outsider2019/article/details/126911702