CentOS7.x建议使用yum
yum -y install epel-release
yum remove epel-release
CentOS8.x建议使用dnf
dnf -y install epel-release
dnf remove epel-release
CentOS7.x建议使用yum
yum -y install vim iotop nload zip unzip bind-utils ntp psmisc net-tools bzip2 wget screen p7zip nc telnet connect-proxy lsof bash-completion
CentOS8.x建议使用dnf
dnf -y install vim iotop nload zip unzip bind-utils chrony psmisc net-tools bzip2 wget screen p7zip nc telnet bash-completion
export TMOUT=999999999
export HISTSIZE=1000
vim /etc/profile
底部增加一行
export HISTTIMEFORMAT="%F %T "
立即生效
source /etc/profile
vim /etc/sysctl.conf
修改配置文件,增加以下参数配置
net.ipv4.tcp_max_syn_backlog = 4096
net.ipv4.tcp_synack_retries = 1
net.ipv4.tcp_syn_retries = 2
net.ipv4.ip_local_port_range = 10000 65000
net.ipv4.tcp_fin_timeout = 5
net.ipv4.tcp_keepalive_intvl = 60
net.ipv4.tcp_keepalive_probes = 5
net.ipv4.tcp_keepalive_time = 1200
net.core.somaxconn = 4096
vm.swappiness = 0
使配置的参数生效
sysctl -p
df -hT
yum install smartmontools
查看sda磁盘信息
smartctl -a /dev/sda
lsblk -d -o name,rota
在输出中,如果 rota 列的值为 0,则表示磁盘是固态硬盘;如果值为 1,则表示是机械硬盘
以树状图完整展示参数
lsblk -t -m
对当前目录下文件夹统计显示
du -sh *
按统计从大到小排序
du -h --max-depth=1 | sort -hr
按统计从小到大排序
du -h --max-depth=1 | sort -h
find . -type f -name "*.php" -exec grep -H "请使用正式域名访问" {} \;
find . -type f -mtime -1
查找指定目录下大于50M且在600分钟内新增的文件
find /www/wwwroot/ -type f -size +50M -mmin -600
ln -s 原始文件夹 软连接名称
举例
ln -s /www/wwwroot/test /ruanlian
即把/www/wwwroot/test文件夹软链接到根目录/ruanlian文件夹
find . -name "*.png" | xargs tar -zcvf pngfiles.tar.gz
linux下
md5sum filename
sha1sum filename
sha256sum filename
sha512sum filename
windows下
certutil -hashfile filename md5
certutil -hashfile filename sha1
certutil -hashfile filename sha256
certutil -hashfile filename sha512
查看文件索引号
ls -i
详细可以使用
ls -lai
第一列即为索引号
查找索引号并执行删除操作,举例100985为索引号
find ./ -inum 100985 -exec rm {} \;
ps -eo pid,lstart,etime,cmd
ps -eo pid,comm,rss | grep php-fpm | awk '{sum+=$3} END {print sum/1024 " MB"}'
Ctrl + c ==> ^C的功能
Ctrl + v ==> ^V的功能
Ctrl + v + m ==> ^M的功能
Ctrl + v + n ==> ^N的功能
Ctrl + v 再按tab键 ==> 制表符
Ctrl + Insert ==> 复制
Shift + Insert ==> 粘贴
grep OR功能 可用grep -E "aaa|bb" 或者 egrep "aaa|bb"
grep NOT功能 可用grep -v "aaa"
grep AND功能 可直接使用管道命令
文件按行去重-使用awk命令
hhhh.txt 为去重前文件
nnnn.txt 为去重后文件
awk '!x[$0]++' hhhh.txt>nnnn.txt
tar -cvf etc.tar /etc 仅打包,不压缩
tar -xvf etc.tar 解压打包
tar -zcvf etc.tar.gz /etc 以gzip压缩
tar -zxvf etc.tar.gz 以gzip解压缩
tar -jcvf etc.tar.bz2 /etc 以bzip2压缩
tar -jxvf etc.tar.bz2 以bzip2解压
tar --exclude='./crmfrontend/web/upload' --exclude='./crmfrontend/runtime' --exclude='./api/runtime' -czvf testtar20251010.tar.gz .
查看80端口连接数
netstat -ant | grep $ip:80 | wc -l
查看当前80端口连接数
netstat -ant | grep $ip:80 | grep EST | wc -l
常看tcp各连接状态数量
netstat -n | awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
常用的三个状态是
ESTABLISHED 表示正在通信
TIME_WAIT 表示主动关闭
CLOSE_WAIT 表示被动关闭
cat /etc/resolv.conf
返回样例如下
# Generated by NetworkManager
nameserver 10.0.0.1
nameserver 180.76.76.76
如果修改可以使用nmtui修改后重启网络
find /www/wwwroot -type f \( -name "*.zip" -o -name "*.rar" -o -name "*.tar.gz" \) -size +200M -exec ls -lh {} \;
find /www/wwwroot -type f \( -name "*.zip" -o -name "*.rar" -o -name "*.tar.gz" \) -size +200M -print0 | xargs -0 ls -l
#只取大小和文件路径(推荐)
find /www/wwwroot -type f \( -name "*.zip" -o -name "*.rar" -o -name "*.tar.gz" \) -size +200M -printf "%s\t%p\n"
tail -10000 default.eshetuan.cn.log | awk '{print $1}' | sort | uniq -c | sort -nr | head -20
su www
mkdir -p ~/.ssh && touch ~/.ssh/authorized_keys && chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys && chown -R $USER:$USER ~/.ssh && echo "SSH配置已为当前用户 ($USER) 初始化完成:$HOME/.ssh"
iptables -L -n --line-numbers
firewall-cmd --list-all
安装 acme.sh
curl https://get.acme.sh | sh -s email=my@v235.top
或
wget -O - https://get.acme.sh | sh -s email=my@v235.top
DNS 手动验证 签发泛域名 *.inter.v235.top
acme.sh --issue --dns -d "*.inter.v235.top" --yes-I-know-dns-manual-mode-enough-go-ahead-please
然后,acme.sh 会生成相应的解析记录显示出来,你只需要在你的域名管理面板中添加这条 TXT 记录即可。
等待解析完成之后,执行以下命令重新生成证书:
acme.sh --renew -d "*.inter.v235.top" --yes-I-know-dns-manual-mode-enough-go-ahead-please
查看uuid
blkid /dev/vdx1
重置uuid
如果是EXT4/EXT3/EXT2格式
tune2fs -U random /dev/vdx1
报错可执行强制检查并修复
e2fsck -f /dev/vdx1
如果是XFS格式
使用xfs_admin命令配合uuidgen生成随机UUID:
sudo xfs_admin -U $(uuidgen) /dev/vdx1
ext4格式磁盘扩容
growpart 命令安装
yum install -y cloud-utils-growpart 或
dnf install -y cloud-utils-growpart
===========================================================================
【针对不是独立分区的】
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 2.8G 0 2.8G 0% /dev
tmpfs 2.8G 1.1M 2.8G 1% /dev/shm
tmpfs 2.8G 8.9M 2.8G 1% /run
tmpfs 2.8G 0 2.8G 0% /sys/fs/cgroup
/dev/mapper/centos-root 157G 80G 69G 54% /
/dev/sda1 283M 161M 103M 61% /boot
tmpfs 566M 0 566M 0% /run/user/1003
tmpfs 566M 0 566M 0% /run/user/1004
[root@localhost ~]# fdisk -l
Disk /dev/sda: 171.8 GB, 171798691840 bytes, 335544320 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk label type: dos
Disk identifier: 0x000c2471
Device Boot Start End Blocks Id System
/dev/sda1 * 2048 616447 307200 83 Linux
/dev/sda2 616448 335544286 167463919+ 8e Linux LVM
Disk /dev/mapper/centos-root: 170.4 GB, 170406182912 bytes, 332824576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk /dev/mapper/centos-swap: 1073 MB, 1073741824 bytes, 2097152 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
#自动扩展分区 磁盘sda的第2个分区
growpart /dev/sda 2
#刷新物理卷
pvresize /dev/sda2
#扩展逻辑卷
lvextend -l +100%FREE /dev/mapper/centos-root
#扩展文件系统
resize2fs /dev/mapper/centos-root
===========================================================================
【针对不是独立分区的】
#自动扩展分区 磁盘sdd的第1个分区
growpart /dev/sdd 1
#扩展文件系统
resize2fs /dev/sdd1
修改密码错误次数以及锁定时间
sudo vi /var/lib/deepin/authenticate/config.json
vi /etc/wgetrc
增加一行
check_certificate = off
#!/bin/bash
# 用法: sudo ./secure_mount.sh /dev/vdb
# 功能: 为全新无分区无数据的磁盘创建单分区、ext4格式化、UUID挂载到/www
set -e # 遇到错误退出
# 1. 检查参数
if [ -z "$1" ]; then
echo "错误: 请指定磁盘设备,例如: sudo $0 /dev/vdb"
exit 1
fi
DISK="$1"
PART="${DISK}1"
# 2. 检查磁盘是否存在
if [ ! -b "$DISK" ]; then
echo "错误: 磁盘 $DISK 不存在"
exit 1
fi
# 3. 检查磁盘是否已经被挂载(包括其分区)
mount | grep -q "^$DISK" && echo "错误: $DISK 或其分区已挂载" && exit 1
# 4. 检查磁盘上是否已有分区
if [ -b "$PART" ]; then
echo "错误: 分区 $PART 已存在,说明磁盘已有分区表。为避免数据丢失,退出。"
exit 1
fi
# 5. 使用 blkid 检查磁盘上是否已有文件系统或分区签名
BLKID_OUT=$(blkid "$DISK" 2>/dev/null || true)
if [ -n "$BLKID_OUT" ]; then
echo "错误: 磁盘 $DISK 上已有可识别的文件系统或分区签名,无法继续。"
echo "blkid 输出: $BLKID_OUT"
exit 1
fi
# 6. 最后确认(用户交互)
echo "=========================================="
echo "即将对 $DISK 执行以下操作:"
echo " - 创建 GPT 分区表,并建立一个从0%到100%的 ext4 分区"
echo " - 格式化分区为 ext4"
echo " - 挂载到 /www 并写入 /etc/fstab (使用 UUID)"
echo "⚠️ 该磁盘上的所有数据将被永久删除!"
echo "=========================================="
read -p "确认继续? (输入 yes 继续): " confirm
if [ "$confirm" != "yes" ]; then
echo "已取消操作。"
exit 0
fi
# 7. 执行分区
parted "$DISK" mklabel gpt mkpart primary ext4 0% 100% || { echo "分区失败"; exit 1; }
partprobe "$DISK"
# 等待分区设备出现
sleep 2
if [ ! -b "$PART" ]; then
echo "错误: 分区 $PART 未成功创建"
exit 1
fi
# 8. 格式化
mkfs.ext4 -F "$PART" || { echo "格式化失败"; exit 1; }
# 9. 获取 UUID
UUID=$(blkid -s UUID -o value "$PART")
if [ -z "$UUID" ]; then
echo "错误: 无法获取 UUID"
exit 1
fi
# 10. 挂载点
mkdir -p /www
# 11. 临时挂载
mount "$PART" /www || { echo "挂载失败"; exit 1; }
# 12. 写入 fstab(先备份)
cp /etc/fstab /etc/fstab.bak.$(date +%Y%m%d_%H%M%S)
echo "UUID=$UUID /www ext4 defaults 0 0" >> /etc/fstab
# 13. 验证
echo "=========================================="
echo "✅ 操作成功完成!"
df -h /www
echo "fstab 条目已添加:"
grep "UUID=$UUID" /etc/fstab
echo "=========================================="