基础篇
sudo -i
:启用root模式
pwd
:查看当前目录路径
whereis xxx
:查看该目录路径
rm -rf xxx
:递归删除该文件或文件夹下的子文件并不作任何提示
mkdir java1 java2 java3
,mkdir src/{java1,java2,java3}
:创建多个文件夹
mkdir -p /a/b/c
:-p不存在则新建该文件夹
netstat -anp |grep 8080
:找到端口对应的进程的pid
kill -9 PID
:关闭进程
ps:补充windows关闭进程,找到主机地址为0.0.0.0的pid
netstat -ano | findstr 8001
,taskkill -pid xxx -f
docker篇
docker logs -f container
:-f 跟踪查看日志
docker search xxx
:搜索xxx信息
docker update {container.name} --restart=always/--restart=on-failure
:更新容器,当Docker 重启时,容器会自动启动/非正常退出时重启
安装docker-compose
curl -L "https://github.com/docker/compose/releases/latest/download/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
只关心某个时间段内的日志,可以使用since参数来过滤日志
docker logs --since 5m my_container
:查看过去5分钟的日志
docker logs --since="2025-03-26 00:00:00" 容器id >>file.log
查询的是xxx时间之后的log信息并输出
docker logs --since="2023-04-28T00:00:00" --until "2023-04-28T12:00:00" 容器id >>file.log
:还可以配合着–until参数,查询某个时间段内的log信息
只关心日志的最后几行,可以使用tail参数来查看
docker logs --tail 10 my_container
:查看最后10行的日志
需要实时查看容器的日志,可以使用follow参数来实现,:
docker logs --follow my_container
:实时查看名为my_container的容器的日志
查找log中可能包含的字符串
docker logs 容器id grep -A 10 '处理失败'
:打印匹配行的后10行,-B是前10行,-C是前后10行
搭建可视化面板dpanel
docker network create dpanel-local
:新建 DPanel 默认网络,用于域名转发功能
docker run -it -d --name dpanel --restart=always -p 8807:8080 --network dpanel-local -v /var/run/docker.sock:/var/run/docker.sock -e APP_NAME=dpanel dpanel/dpanel:latest
:运行容器
防火墙篇
systemctl status firewalld
:查看防火墙状态
systemctl start firewalld
:开启防火墙
systemctl stop firewalld
:关闭防火墙
service firewalld start
:开启防火墙
若遇到无法开启,先用:
systemctl unmask firewalld.service
,然后:systemctl start firewalld.service
netstat -anp
:查询已开放的端口
firewall-cmd --query-port=666/tcp
:查询指定端口是否已开,提示 yes,表示开启;no表示未开启。
firewall-cmd --add-port=123/tcp --permanent
:添加指定需要开放的端口
firewall-cmd --permanent --remove-port=123/tcp
:移除指定端口
firewall-cmd --reload
:重载入添加的端口
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="8080" accept"
:允许ip127.0.0.1访问8080端口,如需开放网段例如30网段则用192.168.30.0/24
firewall-cmd--reload
:重新载入一下防火墙设置,使设置生效
firewall-cmd --zone=public --list-rich-rules
:查看已设置规则
firewall-cmd --permanent --add-rich-rule="rule family="ipv4" source address="127.0.0.1" port protocol="tcp" port="8080" reject"
:限制IP为127.0.0.1的地址禁止访问8080端口即禁止访问机器
firewall-cmd --permanent --remove-rich-rule="rule family="ipv4" source address=" 127.0.0.1" port protocol="tcp" port="8080" accept"
:删除已设置规则
文件系统篇
计算机中需要持久化存储的数据一般是保存在硬盘等辅助存储器中。硬盘一般容量较大,为了便于管理和使用,可以将硬盘分成一到多个逻辑磁盘,称为分区;为使分区中的文件组织成操作系统能够处理的形式,需要对分区进行格式化(创建文件系统);在linux中,对于格式化后的分区,还必须经过挂载(可简单理解为将分区关联至linux目录树中某个已知目录)之后才能使用。
df -h或lsblk
命令用于显示文件系统的磁盘空间使用情况。它会列出每个已挂载的分区、挂载点、总容量、已用空间、可用空间等信息。该命令可以帮助你快速了解文件系统和磁盘使用情况,以便在需要时释放磁盘空间。
fdisk -l 命令用于列出所有检测到的块设备,例如硬盘驱动器、固态硬盘、USB 闪存驱动器、SD卡等等。它会显示每个块设备的详细分区信息,例如分区类型、起始扇区、结束扇区、分区大小等等。该命令通常用于检查磁盘分区方案,以及为创建新分区提供信息。
这两个命令的主要区别在于它们提供的信息不同。df -h 命令显示已挂载的文件系统的磁盘空间使用情况,而 fdisk -l 命令列出所有检测到的块设备的详细信息,包括它们的分区方案。
ls -l --block-size=K [file_path]
:列出下面的文件大小(指定单位)
sudo lsof | grep deleted
:磁盘上存在已被删除但仍然被进程占用的文件
sudo du -h /var --max-depth=1 | sort -hr
:列出/var目录下的文件夹大小
tar -Pzcvf /backup/xxx.tar.gz /usr/bin/xxx
:压缩指定目录的文件到指定目录-P是支持绝对路径
挂载新磁盘
mkfs.xfs /dev/vdb
:先格式化
mount /dev/vdb /data
:挂载
blkid /dev/vdb
:查看该磁盘信息
vi /etc/fstab
:配置重启自动挂载
加入UUID=05eeaaab-5f66-45d4-a58e-17001a529624 /data xfs defaults 0 2
最后的0表示不用dump备份工具,建议设置为 0,因为:dump 工具已经过时,现代备份工具(如 rsync、tar、BorgBackup 等)更为常用。如果用于存放数据库数据,通常有专门的备份策略(如逻辑备份、快照等),不需要依赖文件系统级别的备份。2表示文件系统次要检查,对于数据库盘,建议设置为2,以确保文件系统在启动时进行检查
网络篇
改静态IP地址
cd /etc/sysconfig/network-scripts
vi ifcfg-ensxx
修改下面两项
BOOTPROTO=static
ONBOOT=yes
新增下面
IPADDR=192.168.1.8
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
nmcli c reload
:重载
ip addr
:检查
权限篇
sudo chmod -R 755 /etc/httpd/conf.d
,-R递归,4+1+2
echo "需要修改的内容" | sudo tee -a /path/to/file
:解决直接sudo不行的问题,将echo命令的输出通过管道传递给sudo命令,从而以超级用户的身份来执行echo命令
创建用户
useradd -U admin -d /home/admin -s /bin/bash
:执行以下命令,创建账户 admin
chown -R admin:admin /home/admin
:将 /home/admin 目录及其所有子文件和子目录的所有者和所属组都设置为 admin。
passwd admin
:设置密码
vim /etc/sudoers
:(可选)为账户 admin 设置 sudo 权限。
admin ALL=(ALL) NOPASSWD: ALL
:末尾添加该内容
ls -al
:查看集群相关文件目录权限
chown -R admin:admin /data
:若查看目录权限后,发现 admin 用户无相关文件的权限,可执行如下命令修改文件所属用户
ps记录:宝塔续签https证书脚本
构建多个镜像脚本
#!/bin/bash
# 定义每个 Dockerfile 的路径和对应的镜像名称
declare -A dockerfiles=(
["server/admin/Dockerfile"]="efficacylab/efficacylab-server:latest"
["server/monitor/Dockerfile"]="efficacylab/efficacylab-monitor-admin:latest"
["server/snailjob/Dockerfile"]="efficacylab/efficacylab-snailjob-server:latest"
)
# 遍历每个 Dockerfile 并构建
for dockerfile in "${!dockerfiles[@]}"
do
# 获取 Dockerfile 所在目录
build_dir=$(dirname "$dockerfile")
# 获取对应的镜像名称
image_name=${dockerfiles[$dockerfile]}
echo "开始构建镜像: $image_name"
# 执行 Docker 构建命令
docker build -t "$image_name" "$build_dir" | tee build.log
# 如果需要,可以添加更多构建后续操作,比如推送到镜像仓库等
echo "镜像 $image_name 构建完成"
echo "----------------------------------"
done