1.查看linux内核的版本
cat /proc/version
2.关于archlinux
的软件安装
2.1 使用pacman -S
和yay -S
进行安装,安装后,这些包都在/var/cache/pacman/pkg/
文件夹下,为了避免使用pacman -Syu
命令将某个软件更新,可以在/etc/pacman.conf
的IgnorePkg
位置加上这个软件名。
【如果想降级一个软件:可以参考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目录下的缓存
5.2 pacman -R
指令:删除
sudo pacman -R <pkg_name> #删除软件
sudo pacman -Rs <pkg_name> #删除软件,并删除<pkg>所有的依赖包
sudo pacman -Rns <pkg_name> #删除软件,并删除<pkg>所有的依赖,并删掉<pkg>的全局配置文件。 推荐!!
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 #查询所有不再被依赖的包名
6.关于在命令行窗口开启/管理DL的方法
在archlinux中配置了clash后,或者其他的工具后,可以在使用脚本的方法实现在命令行自定义快速开启或者关闭代理,这样只要clash配置成服务了,即使远程也可以开启/关闭代理了。
- 通过命令
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 "已关闭代理"
}
- 修改配置文件
通过命令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
- 安装docker
sudo pacman -S docker
- 将docker设为开机启动
sudo systemctl enable docker.service
- 启动docker
sudo systemctl start docker.service
- 查看docker信息
sudo docker info
- 常见操作
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
- 拉取MySQL5.7.34镜像
docker pull mysql:5.7.34
- 查看当前所有的镜像
docker images
- 创建并运行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 | 镜像名称 |
-
进入MySQL5.7.34所在的Docker中
docker exec -it mysql57 bash
-
登录MySQL
mysql -uroot -p
然后输入密码即可登陆成功。 -
修改本地root密码
ALTER USER 'root'@'localhost' IDENTIFIED BY 'new password' PASSWORD EXPIRE NEVER;
-
修改本地密码后远程仍使用旧密码的解决方法
Mysql 中一个用户,对应两个密码,一个是 @localhost 的密码, 一个是 @% 的密码。
select host, user, authentication_string from mysql.user
查看
更改远程登录的密码:
UPDATE user SET authentication_string= PASSWORD('654321') WHERE User = 'root';
-
设置mysql随docker启动而自启动
docker update mysql --restart=always
7.3 安装MySQL8.0.26
- 拉取MySQL8.0.26镜像
docker pull mysql:8.0.26
- 查看当前所有的镜像
docker images
- 创建并运行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 | 镜像名称 |
- 进入MySQL8.0.26所在的Docker中
docker exec -it mysql80 bash
- 登录MySQL
mysql -uroot -p
然后输入密码即可登陆成功。 - 如果要远程连接,更改远程root用户的密码规则。
#使用mysql数据库
USE mysql;
#修改'root'@'%'用户的密码规则和密码
ALTER USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'abc123';
#刷新权限
FLUSH PRIVILEGES;
注意:
由于最新版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;
这只是对本地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
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 ========"
}
需要添加执行权限
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容器日志大小,有三种实现方式。
-
全局限制,也就是所有的docker容器统一使用一个限定值,不管是原来已启动的镜像还是以后将要启动的镜像,统统限制日志大小。
新建daemon.json
:vim /etc/docker/daemon.json
,然后添加一下内容:{ "log-driver":"json-file", "log-opts": {"max-size":"500m", "max-file":"3"} }
max-size=500m,意味着一个容器日志大小上限是500M,max-file=3,意味着一个容器有三个日志,分别是id+.json、id+1.json、id+2.json。使用的驱动是json-file驱动。
-
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。 -
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