首页
视频
壁纸
统计
更多
留言
关于
Search
1
Linux 基础命令之用户权限管理命令全解析
4 阅读
2
Linux 网络配置、DNS设置及密码重置完整教程
3 阅读
3
Linux 系统目录功能完整解析
3 阅读
4
Linux 基础命令之文件管理命令全解析
3 阅读
5
Linux 基础命令之系统开关机命令全解析
3 阅读
SRE云计算基础
LINUX基础
基础服务
AIOPS
数通网络
网络安全
弱电项目
登录
Search
蛋蛋
累计撰写
17
篇文章
累计收到
1
条评论
首页
栏目
SRE云计算基础
LINUX基础
基础服务
AIOPS
数通网络
网络安全
弱电项目
页面
视频
壁纸
统计
留言
关于
搜索到
13
篇与
的结果
2025-11-15
linux软件包企业实战详解
一、RPM(Red Hat Package Manager)定位:红帽系Linux基础包格式(.rpm后缀)核心操作:# 安装(不解析依赖) rpm -ivh package.rpm # 升级(保留配置文件) rpm -Uvh package.rpm # 查询(已安装包) rpm -qa | grep nginx # 卸载(保留依赖包) rpm -e package_name企业痛点:❗ 依赖地狱(需手动解决依赖链)❗ 无法自动更新(需配合YUM/DNF)二、YUM/DNF(智能包管理工具)定位:自动化解决RPM依赖关系核心操作:# 安装(自动处理依赖) sudo yum install nginx # 查询仓库 yum search python3 # 更新(所有包) yum update # 回滚(查看操作记录) yum history undo 3企业实战技巧:私有仓库搭建:# 安装createrepo yum install createrepo # 初始化仓库目录 createrepo /opt/custom-repo配置客户端:/etc/yum.repos.d/local.repo 中指定 baseurl=file:///opt/custom-repo安全更新策略:# 仅安装安全补丁 yum update --security锁定关键包:yum versionlock kernel*三、TAR(归档与解包)定位:通用文件打包工具(.tar, .tar.gz, .tar.bz2) 核心操作:# 创建压缩包(gzip) tar czvf app.tar.gz /path/to/dir # 解压(保留权限) tar xzvf app.tar.gz -C /target/dir # 查看内容(不解压) tar tvf app.tar.gz企业场景:✅ 备份配置文件目录:tar czvf /backup/etc-$(date +%F).tar.gz /etc✅ 跨系统迁移应用(如JAVA项目)⚠️ 注意:解压路径安全!避免覆盖系统文件(推荐先 -C 指定目录)四、ZIP(跨平台压缩)定位:Windows/Linux兼容压缩格式 核心操作:# 压缩(递归目录) zip -r app.zip /path/to/dir # 解压(UTF-8支持) unzip -O UTF-8 win_backup.zip企业用途:📁 从Windows传输日志到Linux分析🔐 加密敏感数据:zip -e secret.zip file.txt(输入密码)五、源码包(编译安装)定位:获取最新特性或定制化软件 标准流程:# 1. 解压源码 tar xzvf nginx-1.24.0.tar.gz cd nginx-1.24.0 # 2. 配置(指定路径/模块) ./configure --prefix=/opt/nginx --with-http_ssl_module # 3. 编译&安装 make && sudo make install # 4. 添加环境变量 echo 'export PATH=/opt/nginx/sbin:$PATH' >> /etc/profile企业风险控制:依赖检查:提前安装 gcc, make, openssl-devel 等开发包版本管理:使用 checkinstall 生成RPM包便于卸载:./configure && make sudo checkinstall --pkgname=myapp目录隔离:--prefix=/opt/app_name 避免污染系统路径企业级决策矩阵场景推荐方案原因标准化部署YUM/RPM依赖自动处理,版本可控紧急漏洞修复YUM安全更新快速响应,最小化影响第三方商业软件RPM供应商包厂商支持,兼容性保障定制化功能需求源码编译灵活启用/禁用模块Windows协作ZIP跨平台兼容配置文件备份TAR保留权限结构运维铁律生产环境禁用 rpm -ivh 直接安装(依赖问题易引发故障)源码编译软件需纳入监控(版本升级无通知)任何操作前执行:tar -cvf /backup/$(date +%s).tar.gz /etc (秒级备份)通过组合使用这些工具,可构建稳健的企业级软件管理体系。
2025年11月15日
0 阅读
0 评论
0 点赞
2025-11-15
Linux用户及权限管理详解
一、用户管理1. 用户配置文件/etc/passwd:存储用户基本信息(用户名、UID、GID、家目录、默认Shell)格式:username:x:UID:GID:comment:/home/username:/bin/bash/etc/shadow:存储用户密码及过期策略(仅root可读)格式:username:加密密码:最后修改天数:最小间隔:最大有效期:警告期:禁用期2. 用户操作命令创建用户useradd -m -s /bin/bash -c "Test User" testuser # -m创建家目录,-c注释修改用户usermod -l newname oldname # 重命名 usermod -d /new/home -m testuser # 迁移家目录删除用户userdel -r testuser # -r同时删除家目录和邮件密码管理passwd testuser # 设置密码 chage -E 2025-12-31 testuser # 设置账户过期时间二、用户组管理1. 组配置文件/etc/group:存储组信息(组名、GID、成员列表)格式:groupname:x:GID:member1,member22. 组操作命令创建组groupadd developers修改组groupmod -n devs developers # 重命名组删除组groupdel devs管理组成员gpasswd -a user1 devs # 添加用户到组 gpasswd -d user1 devs # 从组移除用户三、权限管理1. 文件权限基础权限类型r (读):4w (写):2x (执行):1权限表示-rw-r--r-- 1 user group 1024 Jan 1 10:00 file.txt ↑ ↑ │ └── 所属组权限 └── 所有者权限数字表示:chmod 644 file.txt → -rw-r--r--2. 修改权限符号模式chmod u+x file.sh # 所有者添加执行权限 chmod g-w file.txt # 组移除写权限 chmod o=--- secret.txt # 其他人无权限数字模式chmod 750 script.sh # rwxr-x---(所有者7,组5,其他人0)3. 特殊权限SUID (4):以所有者身份执行chmod u+s /usr/bin/someapp # 设置SUID(显示为rws)SGID (2):目录中新文件继承组chmod g+s /shared_dir # 设置SGID(显示为r-s)Sticky Bit (1):仅文件所有者可删除chmod +t /tmp # 粘滞位(显示为rwt)四、高级权限控制1. ACL(访问控制列表)查看ACLgetfacl /project设置ACLsetfacl -m u:user1:rwx /project # 添加用户权限 setfacl -x u:user2 /project # 移除用户权限2. Sudo权限配置编辑sudoers文件visudo # 安全编辑/etc/sudoers授权示例user1 ALL=(root) /usr/bin/apt # 允许user1以root执行apt %devs ALL=(ALL) NOPASSWD:ALL # 组devs无需密码执行所有命令五、关键命令速查命令功能示例id username查看用户UID/GIDid alicegroups查看当前用户所属组groupschown修改文件所有者chown user:group filechgrp修改文件所属组chgrp devs project/umask设置默认权限掩码umask 027(新文件默认750)六、最佳实践最小权限原则:用户仅获必要权限(如通过组管理共享目录)定期审计:使用auditd监控敏感操作(如/etc/sudoers修改)密码策略:通过/etc/login.defs设置密码复杂度与有效期备份配置:备份/etc/passwd、/etc/shadow、/etc/group通过合理管理用户、组及权限,可显著提升系统安全性与运维效率。
2025年11月15日
0 阅读
0 评论
0 点赞
2025-11-15
磁盘分区详解
🤖 Assistant以下是Linux磁盘分区的详解指南,涵盖核心概念、操作流程及最佳实践:一、磁盘分区基础概念物理磁盘(Physical Disk)物理存储设备(如HDD/SSD),在Linux中表示为 /dev/sdX(如 /dev/sda、/dev/nvme0n1)。分区表(Partition Table)MBR(Master Boot Record)传统方案,最多支持4个主分区(或3主分区+1扩展分区)。扩展分区可划分为多个逻辑分区。最大磁盘容量:2TB。GPT(GUID Partition Table)现代标准,支持128个分区,无主/逻辑分区限制。支持 >2TB 的磁盘(如18EB)。需UEFI启动(替代传统BIOS)。二、分区操作工具工具适用场景关键命令示例fdiskMBR分区fdisk /dev/sda → n(新建)、d(删除)、p(查看)、w(保存)gdiskGPT分区用法类似fdisk,支持GPTparted高级操作(如调整大小)parted /dev/sda → resizepart、mkpartcfdisk交互式界面图形化操作分区三、分区步骤示例(以fdisk创建MBR分区)查看磁盘信息fdisk -l # 列出所有磁盘及分区进入交互模式fdisk /dev/sdb # 操作目标磁盘新建分区:n → 选择主/扩展分区 → 设置起始/结束扇区删除分区:d → 选择分区号保存退出:w更新分区表partprobe /dev/sdb # 重新加载分区表(无需重启)四、文件系统格式化常用文件系统类型ext4:Linux默认,日志式文件系统XFS:高性能,适合大文件Btrfs:支持快照、RAID等高级特性格式化命令mkfs.ext4 /dev/sdb1 # 格式化为ext4 mkfs.xfs /dev/sdb2 # 格式化为XFS五、挂载分区临时挂载mount /dev/sdb1 /mnt/data # 挂载到指定目录永久挂载(修改/etc/fstab)添加以下行:/dev/sdb1 /mnt/data ext4 defaults 0 2字段说明:设备 → 挂载点 → 文件系统 → 挂载选项 → dump标志 → fsck顺序验证配置mount -a # 测试fstab配置是否正确六、分区方案设计建议基础服务器分区示例/(根分区):20-50GB(系统文件)/home:独立分区(用户数据隔离)/var:独立分区(日志/缓存频繁写入)/boot:500MB-1GB(引导文件,GPT系统可选)swap:物理内存的1.5-2倍(内存不足时启用)数据服务器分区示例/data:独立分区(专用于业务数据)使用LVM(便于动态扩展)七、LVM(逻辑卷管理)核心概念PV(Physical Volume):物理卷(如/dev/sdb1)VG(Volume Group):卷组(多个PV的集合)LV(Logical Volume):逻辑卷(从VG划分的空间)操作流程pvcreate /dev/sdb1 # 创建PV vgcreate vg_data /dev/sdb1 # 创建VG lvcreate -n lv_data -L 100G vg_data # 创建LV mkfs.xfs /dev/vg_data/lv_data # 格式化 mount /dev/vg_data/lv_data /data # 挂载八、常见问题处理磁盘空间不足扩展LVM:lvextend -L +50G /dev/vg_data/lv_data → xfs_growfs /data非LVM分区:需用parted调整分区大小(风险较高)分区表损坏使用gdisk或testdisk尝试修复。数据恢复误删分区:立即卸载磁盘 → 使用testdisk扫描恢复。九、最佳实践重要操作前备份:dd if=/dev/sda of=disk.img bs=4M生产环境优先用GPT:避免MBR的2TB限制。使用LVM:灵活调整存储空间,支持快照备份。监控磁盘健康:smartctl -a /dev/sda(SMART检测)。通过以上步骤,您可高效管理Linux磁盘分区,确保系统稳定性和数据安全。
2025年11月15日
1 阅读
0 评论
0 点赞
2025-11-02
Linux 基础命令之基础命令2全解析
以下为Linux系统基础命令的详细解析,涵盖系统操作、脚本编写、防火墙管理及文本处理工具:1. 目录与文件操作cd:切换目录cd /path 进入绝对路径 | cd .. 返回上级 | cd ~ 返回家目录ls:列出目录内容-l 详细信息 | -a 显示隐藏文件 | -h 人性化文件大小pwd:显示当前工作目录的绝对路径mv:移动/重命名文件mv file1.txt /backup/ 移动文件 | mv old.txt new.txt 重命名2. 帮助文档help:查看Shell内置命令帮助help cd 显示cd用法man:查看命令手册man ls 显示ls完整文档(按q退出)3. Shell脚本控制结构注:以下为脚本语法(非独立命令),需在.sh文件中使用if:条件判断if [ $var -eq 10 ]; then echo "Equal" fifor:循环遍历for i in {1..5}; do echo $i donewhile:条件循环while [ $count -lt 5 ]; do echo $count ((count++)) donecase:多分支匹配case $input in "start") service start ;; "stop") service stop ;; *) echo "Invalid" ;; esacselect:创建交互菜单select opt in "Yes" "No"; do echo "You chose $opt" break doneread:读取用户输入 read -p "Name: " name 提示输入并存储变量4. 文本处理工具cut:按列提取文本 cut -d: -f1 /etc/passwd 以:分隔,提取第一列uniq:去重相邻重复行 sort file.txt | uniq -c 先排序再统计重复次数sort:排序文本 -n 数值排序 | -r 倒序 | -k2 按第二列排序wc:统计文本 -l 行数 | -w 单词数 | -c 字节数5. 系统工具source(.):执行脚本并影响当前Shell环境 source ~/.bashrc 重新加载配置test([ ]):条件测试 [ -f /path/file ] 检查文件存在 | [ $a -gt $b ] 数值比较6. 防火墙管理iptables:传统防火墙规则iptables -A INPUT -p tcp --dport 22 -j ACCEPT # 允许SSH iptables -L # 列出规则firewall-cmd(Firewalld工具):firewall-cmd --add-port=80/tcp --permanent # 永久开放80端口 firewall-cmd --reload # 重载配置7. SELinux管理sestatus:查看SELinux状态 sestatus 显示enforcing(强制模式)或disabledsetenforce:临时切换模式 setenforce 0 切换为宽松模式(Permissive) | setenforce 1 恢复强制模式8. 自动化运维工具ansible:批量管理主机 ansible all -m ping 测试所有主机连通性salt(SaltStack): salt '*' cmd.run 'df -h' 在所有主机执行磁盘检查使用场景示例1. 备份日志并分析cd /var/log grep "ERROR" syslog | cut -d' ' -f3- | sort | uniq -c > errors.txt wc -l errors.txt # 统计错误类型数量2. 批量重启服务for service in httpd nginx; do systemctl restart $service done3. 快速防火墙配置firewall-cmd --add-service=http --permanent firewall-cmd --reload sestatus # 确认SELinux状态关键提示:脚本控制结构需在脚本文件中使用,直接终端输入无效防火墙工具二选一(iptables vs firewalld),避免冲突生产环境操作前务必测试(如ansible使用--check模式)
2025年11月02日
2 阅读
0 评论
0 点赞
2025-11-02
Linux 基础命令之基础命令1全解析
以下是Linux系统基础命令的详细解析,涵盖常用选项、功能说明及典型示例。作为运维工程师,这些命令是日常系统管理、故障排查和自动化的核心工具。1. 时间与日期date: 显示或设置系统时间date # 显示当前时间 date +"%Y-%m-%d %H:%M:%S" # 自定义格式输出 date -s "2024-01-01 12:00:00" # 设置系统时间(需root)ntpdate: 同步网络时间(需安装ntpdate包)ntpdate ntp.aliyun.com # 从阿里云NTP服务器同步时间2. 计划任务crontab: 定时任务管理crontab -e # 编辑当前用户的任务 crontab -l # 列出任务 crontab -r # 删除所有任务示例任务:0 2 * * * /backup.sh # 每天凌晨2点执行备份脚本3. 文件同步与传输rsync: 高效远程/本地同步rsync -avz /local/ user@remote:/remote/ # 同步目录(保留属性、压缩) rsync -avz --delete /src/ /backup/ # 同步并删除目标多余文件scp: 安全文件传输scp file.txt user@remote:/path/ # 上传文件 scp -P 2222 -r dir/ user@remote:/path/ # 指定端口+递归上传目录4. 远程管理ssh: 安全远程登录ssh user@host # 标准登录 ssh -p 2222 -i ~/.ssh/key.pem user@host # 指定端口+私钥5. 后台进程管理nohup: 退出终端后保持进程运行nohup ./script.sh & # 后台运行,输出到nohup.out nohup ./script.sh > output.log 2>&1 & # 重定向输出6. Shell环境sh / bash: 执行脚本sh script.sh # 使用Bourne shell执行 bash script.sh # 使用Bash执行(支持更多特性)source: 在当前Shell执行脚本(不启动子进程)source ~/.bashrc # 重新加载配置(等效于 `. ~/.bashrc`)7. 主机名管理hostname: 显示或临时设置主机名hostname # 显示当前主机名 hostname web01 # 临时修改(重启失效)hostnamectl: 永久修改主机名(Systemd系统)hostnamectl set-hostname web01 # 永久修改 hostnamectl status # 查看主机名信息8. 资源限制ulimit: 控制进程资源ulimit -a # 显示所有限制 ulimit -n 65535 # 设置最大打开文件数(临时)永久生效:修改/etc/security/limits.conf9. 环境变量export: 设置环境变量(当前Shell及子进程)export PATH=$PATH:/usr/local/bin # 添加路径env: 查看或临时设置环境变量env # 显示所有环境变量 env VAR=value command # 临时变量执行命令set: 显示所有Shell变量(含环境变量和局部变量)set | grep PATH # 过滤查看变量declare: 声明变量类型(Bash特有)declare -i num=10 # 定义整数变量 declare -a arr=(1 2 3) # 定义数组10. 单次任务调度at: 指定时间执行一次性任务echo "reboot" | at 02:00 tomorrow # 明晨2点重启 atq # 查看待执行任务 atrm 1 # 删除ID为1的任务11. 文件与目录dir: 列出目录内容(类似ls -C)dir /path/ # 列目录(默认不显示隐藏文件)diff: 比较文件差异diff file1 file2 # 比较文件 diff -r dir1 dir2 # 递归比较目录12. 高级工具db_load: Berkeley DB数据库工具db_load -T -t hash -f data.txt passwd.db # 文本转DB文件dmsetup: LVM设备映射管理dmsetup ls # 列出所有设备映射 dmsetup remove /dev/mapper/vol01 # 删除映射运维场景应用数据备份:rsync + crontab 定时增量备份服务监控:nohup 启动后台监控脚本故障排查:ulimit -n 检查文件句柄泄露安全加固:ssh -i 使用密钥登录替代密码提示:使用 man 命令(如 man rsync)查看完整手册,或 命令 --help 获取快速帮助。
2025年11月02日
2 阅读
0 评论
0 点赞
2025-11-02
Linux 基础命令之系统开关机命令全解析
以下是Linux系统中与开关机、运行级别及用户会话相关的命令详解,适用于系统管理和故障排查场景:1. init作用:系统初始化进程(PID=1),用于切换运行级别(runlevel)。常用操作:init 0 # 关机(等同于shutdown) init 6 # 重启 init 3 # 切换到多用户文本模式 init 5 # 切换到图形界面模式注意:直接调用init会改变系统状态,需root权限。2. reboot作用:安全重启系统。常用参数:reboot # 立即重启 reboot -f # 强制重启(跳过正常关机流程) reboot -w # 仅写wtmp记录,不实际重启(测试用)3. shutdown作用:安全关机或重启(推荐使用),支持定时和消息广播。关键用法:shutdown -h now # 立即关机 shutdown -r +5 "系统升级" # 5分钟后重启,广播提示消息 shutdown -r 14:30 # 指定时间重启(14:30) shutdown -c # 取消计划中的关机/重启优势:向所有登录用户发送通知,避免数据丢失。4. halt 与 poweroffhalt:halt # 停止系统运行(不切断电源) halt -p # 停止系统并切断电源(等同于poweroff)poweroff:poweroff # 关机并断电(最常用) poweroff -f # 强制断电(可能损坏数据)区别:halt默认不切断电源,poweroff会发送ACPI指令断电。5. runlevel作用:显示当前和上一次的运行级别。输出示例:runlevel # 显示 "N 5"(N=无上一次级别,5=当前图形模式)运行级别:0:关机1:单用户模式(救援模式)3:多用户文本模式5:图形界面模式6:重启6. login 与 logoutlogin:login # 启动新登录会话(通常在终端自动触发) login user # 切换到指定用户(需密码)logout:logout # 注销当前登录会话(仅对登录shell有效)注意:在非登录shell(如子终端)中无效,需用exit。7. exit作用:退出当前Shell会话在登录Shell中相当于logout返回退出码(0=成功)示例:exit # 退出当前Shell exit 1 # 退出并返回错误码(用于脚本)命令对比与最佳实践场景推荐命令风险提示安全关机shutdown -h now广播通知用户,避免数据丢失强制断电poweroff -f可能损坏数据,仅紧急情况使用多用户重启shutdown -r +10预留时间保存工作切换运行级别init 3 或 init 5改变系统服务状态快速重启reboot比init 6更常用运维建议:生产环境优先用shutdown,避免用户数据丢失。通过runlevel检查当前模式,确保服务兼容性(如数据库服务在级别3下运行)。紧急故障时使用init 1进入单用户模式修复系统。
2025年11月02日
3 阅读
1 评论
0 点赞
2025-11-02
Linux 基础命令之网络管理命令全解析
以下为 Linux 系统网络管理核心命令的详解,包含用途、常用参数及示例:1. Ping用途:测试主机间网络连通性(ICMP 协议)常用参数:-c 次数:指定发送包次数(例:ping -c 4 google.com)-i 间隔:设置发包间隔(秒)-s 大小:指定数据包大小(字节)示例:ping -c 3 8.8.8.8 # 向 Google DNS 发送 3 个 ICMP 包2. ifconfig用途:配置或显示网络接口信息(已过时,推荐用 ip 命令)常用操作:ifconfig eth0 up # 启用 eth0 接口 ifconfig eth0 192.168.1.2 netmask 255.255.255.0 # 设置 IP 和子网掩码3. ip addr (ip a)用途:管理 IP 地址(替代 ifconfig)常用命令:ip addr show # 显示所有接口 IP 信息 ip addr add 192.168.1.10/24 dev eth0 # 为 eth0 添加 IP4. ifup / ifdown用途:启用/禁用网络接口(依赖 /etc/network/interfaces 配置)示例:ifup eth0 # 启动 eth0 ifdown eth0 # 关闭 eth05. nmcli用途:NetworkManager 命令行工具(动态管理网络)常用操作:nmcli device status # 查看设备状态 nmcli connection show # 显示所有连接 nmcli connection up "Wired" # 启用名为 "Wired" 的连接6. route用途:查看/操作路由表(已过时,推荐 ip route)示例:route -n # 数字格式显示路由表 route add default gw 192.168.1.1 # 添加默认网关7. nslookup用途:DNS 查询工具示例:nslookup google.com # 查询域名解析 nslookup -type=MX gmail.com # 查询 MX 记录8. traceroute用途:追踪数据包路径参数:-n:不解析主机名(显示 IP)-I:使用 ICMP 协议示例:traceroute -n 8.8.8.89. dig用途:高级 DNS 查询工具示例:dig google.com A # 查询 A 记录 dig @8.8.8.8 google.com # 指定 DNS 服务器查询10. tcpdump用途:网络抓包分析常用参数:-i eth0:指定网卡port 80:过滤端口-w file.pcap:保存到文件示例:tcpdump -i eth0 tcp port 80 -w http.pcap11. nmap用途:网络扫描和安全审计常用命令:nmap -sP 192.168.1.0/24 # 扫描存活主机 nmap -p 22,80,443 10.0.0.1 # 扫描指定端口12. brctl用途:管理 Linux 网桥操作:brctl addbr br0 # 创建网桥 brctl addif br0 eth1 # 将 eth1 加入网桥13. ethtool用途:查看/修改网卡参数示例:ethtool eth0 # 显示 eth0 详细信息 ethtool -s eth0 speed 1000 duplex full # 设置千兆全双工14. setup (Red Hat/CentOS)用途:文本模式系统配置工具(含网络)启动:setup # 进入交互式配置菜单15. arp用途:管理 ARP 缓存示例:arp -n # 显示 ARP 表(IP 不解析) arp -d 192.168.1.1 # 删除 ARP 条目16. ab (Apache Bench)用途:HTTP 服务压力测试示例:ab -n 1000 -c 100 http://example.com/ # 1000 请求,100 并发17. iperf用途:网络带宽测试用法:# 服务端 iperf -s # 客户端 iperf -c 192.168.1.100 -t 30 -P 4 # 30 秒测试,4 线程最佳实践建议:优先使用现代工具:ip 替代 ifconfig/route,ss 替代 netstat生产环境谨慎操作:ifdown/brctl 可能导致网络中断诊断流程:连通性:ping → tracerouteDNS 问题:nslookup → dig协议分析:tcpdump性能瓶颈:iperf/ab注意:部分命令需 root 权限执行(如 tcpdump, ifconfig)。使用前建议通过 man 命令 查看手册(例:man ip)。
2025年11月02日
0 阅读
0 评论
0 点赞
2025-11-02
Linux 基础命令之系统资源管理命令全解析
Linux 系统资源管理命令全解析下面详细解析 Linux 系统资源管理核心命令,涵盖磁盘管理、文件系统操作、性能监控和网络分析四大领域:一、磁盘分区管理1. fdisk - 传统磁盘分区工具# 查看磁盘分区 sudo fdisk -l # 进入交互模式 (如操作 /dev/sda) sudo fdisk /dev/sda交互命令: n : 新建分区 d : 删除分区 p : 显示分区表 w : 写入更改 q : 退出不保存2. parted - 高级分区工具(支持 GPT)# 查看分区 sudo parted -l # 创建 GPT 分区表 sudo parted /dev/sdb mklabel gpt # 创建 100GB 分区 sudo parted /dev/sdb mkpart primary ext4 0% 100GB二、文件系统操作3. mkfs.ext4 - 创建 ext4 文件系统# 格式化分区 sudo mkfs.ext4 /dev/sdb1 # 带标签格式化 sudo mkfs.ext4 -L "DataDisk" /dev/sdb14. mount / umount - 挂载/卸载文件系统# 挂载分区 sudo mount /dev/sdb1 /mnt/data # 卸载分区 sudo umount /mnt/data # 永久挂载 (编辑 /etc/fstab) /dev/sdb1 /data ext4 defaults 0 25. fsck.ext4 - 文件系统检查修复# 检查分区 sudo fsck.ext4 /dev/sda1 # 强制修复 sudo fsck.ext4 -f /dev/sda1三、逻辑卷管理 (LVM)命令功能示例pvcreate创建物理卷sudo pvcreate /dev/sdbvgcreate创建卷组sudo vgcreate vg_data /dev/sdblvcreate创建逻辑卷sudo lvcreate -L 100G -n lv_data vg_datalvextend扩展逻辑卷sudo lvextend -L +50G /dev/vg_data/lv_dataresize2fs调整文件系统大小sudo resize2fs /dev/vg_data/lv_data四、磁盘操作与空间分析6. dd - 磁盘/文件低级复制# 制作 U 盘启动镜像 sudo dd if=ubuntu.iso of=/dev/sdc bs=4M status=progress # 磁盘克隆 sudo dd if=/dev/sda of=/dev/sdb bs=64K conv=noerror,sync # 测试磁盘速度 dd if=/dev/zero of=./testfile bs=1G count=1 oflag=direct7. du - 目录空间分析# 查看当前目录大小 du -sh . # 查看目录下各子目录大小 du -h --max-depth=1 /var # 排除特定目录 du -h --exclude=*.log /home8. df - 磁盘空间报告# 人类可读格式 df -h # 显示 inode 使用 df -i # 显示特定文件系统类型 df -h -t ext4五、系统性能监控9. top - 实时进程监控top交互命令: P : CPU 使用排序 M : 内存使用排序 1 : 显示多核详情 k : 结束进程10. htop (增强版 top)# 安装 sudo apt install htop # Ubuntu sudo yum install htop # CentOS # 使用 htop11. free - 内存使用分析# 显示内存 (MB) free -m # 详细报告 free -h -s 5 # 每5秒刷新12. uptime - 系统负载报告uptime # 输出:10:30:01 up 15 days, 3:45, 2 users, load average: 0.08, 0.03, 0.0513. w - 登录用户与进程w # 输出: # USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT # john pts/0 192.168.1.5 09:15 5.00s 0.10s 0.00s w六、I/O 性能分析14. iostat - CPU/磁盘 I/O 统计# 每2秒刷新,显示所有设备 iostat -dx 2 # 关键指标: # %util : 设备使用率 # await : I/O 平均等待时间15. vmstat - 虚拟内存统计# 每1秒刷新,共5次 vmstat 1 5 # 关键字段: # r : 运行队列进程数 # swap : 交换内存使用 (si/so) # io : 块设备IO (bi/bo)16. iotop - 磁盘 I/O 进程监控sudo iotop # 类似 top 的交互界面,按 o 只显示活动进程七、网络与进程分析17. ps - 进程快照# 显示所有进程 ps aux # 树形结构显示 ps -ejH # 查找特定进程 ps aux | grep nginx18. netstat / ss - 网络连接分析# 显示所有监听端口 (netstat) netstat -tulnp # 显示所有连接 (ss) ss -tunap # 查看进程占用端口 ss -ltp | grep java19. lsof - 打开文件列表# 查看端口占用 sudo lsof -i :80 # 查看用户打开文件 lsof -u www-data # 查看目录打开文件 lsof +D /var/log20. iftop - 实时带宽监控sudo iftop -P -i eth0 # 显示网络流量,按 s 显示源,d 显示目标21. sar - 系统历史性能数据# 安装收集器 sudo apt install sysstat # Ubuntu sudo yum install sysstat # CentOS # 查看 CPU 历史 sar -u # 查看内存使用 sar -r # 生成每日报告 sar -A -f /var/log/sa/sa01八、实战场景命令组合1. 磁盘空间告警排查# 找出大文件 sudo du -h / | sort -h | tail -20 # 检查 inode 使用 df -i2. 内存泄漏分析# 监控内存进程 top -o %MEM # 检查内存分配 vmstat 53. 网络故障排查# 检查连接 ss -tanp | grep ESTAB # 分析带宽 sudo iftop -i eth0 # 路由跟踪 traceroute 8.8.8.84. 性能瓶颈定位# CPU 分析 mpstat -P ALL 2 # I/O 分析 iostat -x 2 # 综合报告 sar -u -r -d 1 10命令速查表类别命令核心功能磁盘管理fdiskMBR 分区操作 partedGPT 分区操作文件系统mkfs.ext4创建 ext4 文件系统 fsck.ext4文件系统检查修复LVMlvcreate创建逻辑卷空间分析df磁盘空间报告 du目录空间分析性能监控top实时进程监控 vmstat虚拟内存统计 iostatI/O 性能分析网络分析ss网络连接分析 iftop实时带宽监控进程分析ps进程快照 lsof打开文件列表系统状态sar历史性能数据分析提示:生产环境中建议定期收集性能数据(通过 sar 和 sysstat),并设置磁盘空间监控(如 df -h 配合脚本告警)。掌握这些命令是 Linux 系统管理的核心技能,建议在测试环境中充分练习。
2025年11月02日
1 阅读
0 评论
0 点赞
2025-10-19
Linux 基础命令之软件资源管理命令全解析
Linux 软件资源管理命令全解析下面详细解析 Linux 系统中软件资源管理的核心命令,涵盖包管理、压缩解压、网络传输、编译安装和服务管理等关键操作:包管理工具1. rpm - RPM 包管理(RHEL/CentOS/openEuler)# 安装软件包 sudo rpm -ivh package.rpm # 升级软件包 sudo rpm -Uvh package.rpm # 查询已安装包 rpm -qa | grep nginx # 查询包文件 rpm -ql httpd # 验证包完整性 rpm -V httpd # 卸载软件包 sudo rpm -e package_name2. yum - 高级包管理(RHEL/CentOS/openEuler)# 安装软件 sudo yum install nginx # 更新所有软件 sudo yum update # 搜索软件包 yum search python3 # 查看软件信息 yum info docker # 删除软件 sudo yum remove httpd # 清理缓存 sudo yum clean all3. apt-get - Debian/Ubuntu 包管理# 更新软件列表 sudo apt-get update # 安装软件 sudo apt-get install nginx # 升级所有软件 sudo apt-get upgrade # 删除软件(保留配置) sudo apt-get remove package # 完全删除(含配置) sudo apt-get purge package # 自动清理 sudo apt-get autoremove压缩与解压4. tar - 打包归档工具# 创建压缩包(gzip) tar -czvf archive.tar.gz /path/to/dir # 解压(gzip) tar -xzvf archive.tar.gz # 创建压缩包(bzip2) tar -cjvf archive.tar.bz2 /path/to/dir # 查看压缩包内容 tar -tf archive.tar.gz # 解压到指定目录 tar -xzvf archive.tar.gz -C /target/dir5. gzip / bzip2 - 文件压缩# gzip 压缩 gzip file.txt # 生成 file.txt.gz # gzip 解压 gzip -d file.txt.gz # bzip2 压缩 bzip2 file.log # 生成 file.log.bz2 # bzip2 解压 bzip2 -d file.log.bz26. zip / unzip - ZIP 压缩格式# 创建 ZIP 压缩包 zip -r archive.zip /path/to/dir # 解压 ZIP 文件 unzip archive.zip # 解压到指定目录 unzip archive.zip -d /target/dir # 加密压缩 zip -e secure.zip sensitive.doc网络传输7. wget - 命令行下载工具# 下载文件 wget https://example.com/file.iso # 断点续传 wget -c https://example.com/large.file # 限速下载(100KB/s) wget --limit-rate=100k https://example.com/bigfile # 镜像整个网站 wget -mk https://example.com/ # 后台下载 wget -b https://example.com/large.iso8. curl - 多功能传输工具# 下载文件 curl -O https://example.com/file.txt # 发送 POST 请求 curl -X POST -d 'param1=value' https://api.example.com # 设置请求头 curl -H "Content-Type: application/json" https://api.example.com # 使用代理 curl -x http://proxy:8080 https://example.com # 测试网站响应时间 curl -s -o /dev/null -w "%{time_total}\n" https://google.com9. rz/sz - Zmodem 文件传输(需安装 lrzsz)# 发送文件到本地(终端) sz filename # 从终端接收文件 rz # 弹出文件选择对话框10. jar - Java 归档管理# 创建 JAR 包 jar cvf app.jar *.class # 查看 JAR 内容 jar tf app.jar # 解压 JAR 包 jar xvf app.jar # 运行可执行 JAR java -jar app.jar服务管理11. service - SysV 服务管理(旧系统)# 启动服务 sudo service nginx start # 停止服务 sudo service nginx stop # 重启服务 sudo service nginx restart # 查看状态 sudo service nginx status12. systemctl - systemd 服务管理# 启动服务 sudo systemctl start nginx # 设置开机启动 sudo systemctl enable nginx # 查看服务状态 systemctl status nginx # 重启服务 sudo systemctl restart nginx # 查看所有服务 systemctl list-unit-files --type=service13. chkconfig - 服务启动管理(SysV)# 查看服务状态 chkconfig --list # 设置开机启动 sudo chkconfig httpd on # 禁用开机启动 sudo chkconfig nginx off编译安装14. make - 源代码构建工具# 配置编译选项 ./configure --prefix=/usr/local # 编译源代码 make # 安装软件 sudo make install # 清理构建文件 make clean # 卸载软件 sudo make uninstall15. cmake - 跨平台构建工具# 创建构建目录 mkdir build && cd build # 生成 Makefile cmake .. # 编译安装 make && sudo make install # 指定构建选项 cmake -DCMAKE_INSTALL_PREFIX=/opt/app ..实用技巧与场景软件源管理# 添加 EPEL 源(CentOS) sudo yum install epel-release # 添加 PPA 源(Ubuntu) sudo add-apt-repository ppa:ondrej/php sudo apt-get update下载安装示例# 下载并安装二进制包 wget https://example.com/app.tar.gz tar -xzvf app.tar.gz cd app ./configure make sudo make install服务管理场景# 查看服务日志 sudo journalctl -u nginx -f # 修改服务配置 sudo systemctl edit nginx.service # 重载服务配置 sudo systemctl daemon-reload编译优化# 多核编译加速 make -j$(nproc) # 最小化安装 ./configure --prefix=/usr --disable-static命令对比表命令类别主要功能典型使用场景rpm包管理管理 RPM 格式软件包CentOS/RedHat 系统安装yum包管理自动解决依赖关系批量安装/更新软件apt-get包管理Debian 系软件管理Ubuntu/Debian 系统维护tar压缩归档打包/解压目录备份/迁移数据wget网络传输命令行下载文件自动化脚本下载资源curl网络传输数据传输/API 调用测试 RESTful 接口systemctl服务管理管理系统服务服务启停/自启动配置make编译安装构建源代码从源码安装软件jarJava 管理创建/管理 Java 归档文件Java 应用打包部署最佳实践指南包管理原则:# 定期更新系统 sudo yum update # RHEL系 sudo apt-get upgrade # Debian系 # 清理无用包 sudo yum autoremove # RHEL系 sudo apt autoremove # Debian系编译安装规范:# 使用标准安装路径 ./configure --prefix=/usr/local # 分离构建目录 mkdir build && cd build cmake ..服务管理安全:# 限制服务权限 sudo systemctl edit nginx添加:[Service] User=nginx Group=nginx网络传输安全:# 验证下载文件完整性 wget https://example.com/file.iso wget https://example.com/file.iso.sha256 sha256sum -c file.iso.sha256提示:使用 man 命令名(如 man tar)查看完整手册。对于生产环境,建议使用配置管理工具(Ansible/SaltStack)批量管理软件资源。掌握这些命令是 Linux 系统管理员的核心技能,建议在测试环境中充分练习后再应用于生产环境。
2025年10月19日
2 阅读
0 评论
0 点赞
2025-10-19
Linux 基础命令之文件管理命令全解析
Linux 文件管理命令全解析下面详细解析 Linux 系统中核心文件管理命令,包含使用场景、常用选项和实用示例:文件创建与删除1. touch - 创建空文件/更新时间戳# 创建单个文件 touch file.txt # 创建多个文件 touch file1.txt file2.txt file3.txt # 更新时间戳为当前时间 touch -a file.txt # 仅更新访问时间 touch -m file.txt # 仅更新修改时间 # 设置特定时间戳 touch -t 202308011200 file.txt # 格式: [[CC]YY]MMDDhhmm[.ss]2. mkdir - 创建目录# 创建单层目录 mkdir documents # 创建多层目录 mkdir -p project/src/main/java # 设置目录权限(rwxr-x---) mkdir -m 750 private_dir3. rm - 删除文件/目录# 删除文件 rm file.txt # 强制删除不提示 rm -f log.txt # 递归删除目录 rm -r project/ # 交互式删除(确认每个文件) rm -i *.tmp # 删除空目录 rmdir empty_dir文本编辑器4. vi/vim - 文本编辑器# 基本操作 vi file.txt # 常用模式: i # 进入插入模式 Esc # 返回命令模式 :wq # 保存并退出 :q! # 强制退出不保存 # 实用命令: dd # 删除当前行 yy # 复制当前行 p # 粘贴 /word # 搜索单词 :%s/old/new/g # 全局替换5. nano - 简单文本编辑器(新手友好)nano file.txt # 底部快捷键提示:^O保存,^X退出文件查看6. cat - 连接并显示文件# 查看文件内容 cat config.conf # 显示行号 cat -n server.log # 合并多个文件 cat part1.txt part2.txt > full.txt # 显示非打印字符 cat -v binary.dat7. head - 显示文件开头# 默认显示前10行 head access.log # 显示前5行 head -n 5 /etc/passwd # 显示前1KB内容 head -c 1024 data.bin8. tail - 显示文件结尾# 默认显示后10行 tail error.log # 显示后20行 tail -n 20 /var/log/syslog # 实时监控日志更新 tail -f /var/log/nginx/access.log9. less / more - 分页查看文件# 分页查看(支持回退) less large_file.log # 基本操作: 空格 # 下一页 b # 上一页 /word # 搜索 q # 退出 # 简单分页(不支持回退) more /var/log/dmesg搜索与处理10. find - 文件搜索# 按名称搜索 find /home -name "*.jpg" # 按类型搜索 find /var -type f -name "*.log" # f=文件, d=目录 # 按大小搜索 find / -size +100M # 大于100MB find . -size -10k # 小于10KB # 按时间搜索 find /etc -mtime -7 # 7天内修改 # 执行操作 find ~/Downloads -name "*.tmp" -delete11. grep - 文本搜索# 基本搜索 grep "error" /var/log/syslog # 递归搜索目录 grep -r "TODO" src/ # 忽略大小写 grep -i "warning" log.txt # 显示匹配行号 grep -n "pattern" file.txt # 反向匹配(不包含) grep -v "debug" output.log12. sed - 流编辑器# 替换文本 sed 's/old/new/g' file.txt # 删除空行 sed '/^$/d' input.txt # 直接修改文件 sed -i 's/127.0.0.1/localhost/g' config.conf # 打印特定行 sed -n '10,20p' longfile.log13. awk - 文本处理语言# 打印第一列 awk '{print $1}' access.log # 条件过滤 awk '$3 > 500 {print $1, $2}' data.csv # 使用分隔符 awk -F: '{print $1, $6}' /etc/passwd # 用户和家目录 # 计算总和 awk '{sum+=$3} END {print sum}' sales.dat文件操作14. echo - 显示文本/创建文件# 输出文本 echo "Hello World" # 创建文件内容 echo "127.0.0.1 localhost" > /etc/hosts # 追加内容 echo "192.168.1.100 server" >> /etc/hosts # 显示变量 echo $PATH15. ln - 创建链接# 创建硬链接 ln original.txt hardlink.txt # 创建软链接(符号链接) ln -s /var/www/html webroot # 查看链接指向 ls -l webroot # 显示 -> /var/www/html16. stat - 显示文件详细信息# 显示文件元数据 stat document.pdf # 输出: # File: document.pdf # Size: 102400 Blocks: 200 IO Block: 4096 regular file # Access: (0644/-rw-r--r--) Uid: ( 1000/ john) Gid: ( 1000/ john) # Access: 2023-08-01 09:30:00.000000000 +0800 # Modify: 2023-07-25 14:20:15.000000000 +0800 # Change: 2023-07-25 14:20:15.000000000 +080017. file - 确定文件类型# 检测文件类型 file unknown.dat # 输出: # unknown.dat: JPEG image data, EXIF standard # 检查多个文件 file *.log # 检测压缩文件 file archive.zip # output: Zip archive data高级技巧命令组合示例# 查找并处理文件 find . -name "*.java" -exec grep -l "interface" {} \; | xargs sed -i 's/interface/@Interface/' # 日志分析 tail -f /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr # 批量重命名 find . -name "*.jpeg" -exec bash -c 'mv "$0" "${0%.jpeg}.jpg"' {} \;文件管理最佳实践备份重要文件:cp important.conf{,.bak} # 创建important.conf.bak使用安全删除:shred -zuv secret.txt # 覆盖后删除文件权限管理:chmod 600 private.key # 仅所有者可读写文件系统检测:df -h # 查看磁盘使用 du -sh * # 查看目录大小命令速查表命令主要功能常用选项touch创建文件/更新时间戳-a, -m, -tmkdir创建目录-p(递归创建)rm删除文件-r(递归), -f(强制)vi/vim文本编辑 cat显示文件内容-n(行号)head显示文件头部-n(行数)tail显示文件尾部-f(实时跟踪)find文件搜索-name, -type, -execgrep文本搜索-i, -r, -vsed流编辑器-i(原地编辑)awk文本处理语言-F(分隔符)ln创建链接-s(符号链接)stat显示文件元数据 file检测文件类型 提示:使用 man 命令名(如 man grep)查看完整手册。熟练掌握这些命令是 Linux 系统管理的基础,建议在安全环境中多加练习。
2025年10月19日
3 阅读
0 评论
0 点赞
2025-10-19
Linux 基础命令之用户权限管理命令全解析
## Linux 用户权限管理命令全解析以下是 Linux 系统中用户权限相关的核心命令详解,包含使用场景、常用选项和实际示例:用户管理命令1. useradd - 创建新用户# 基本用法 sudo useradd [选项] 用户名 # 常用选项 -m # 创建用户主目录(/home/username) -s # 指定默认shell(如 /bin/bash) -g # 指定主用户组 -G # 指定附加用户组 -d # 指定主目录路径 -e # 设置账户过期日期(YYYY-MM-DD) # 创建带主目录的用户并指定shell sudo useradd -m -s /bin/bash john # 创建用户并加入附加组 sudo useradd -m -G developers,sysadmin alice2. userdel - 删除用户# 基本用法 sudo userdel [选项] 用户名 # 常用选项 -r # 同时删除用户主目录和邮件 # 删除用户但保留主目录 sudo userdel john # 完全删除用户及其文件 sudo userdel -r alice3. usermod - 修改用户属性# 基本用法 sudo usermod [选项] 用户名 # 常用选项 -aG # 添加附加用户组(-a 表示追加) -g # 修改主用户组 -s # 修改默认shell -L # 锁定账户 -U # 解锁账户 # 将用户加入sudo组 sudo usermod -aG sudo john # 修改用户主组 sudo usermod -g developers alice # 锁定用户账户 sudo usermod -L john用户组管理命令4. groupadd - 创建新用户组# 创建基本用户组 sudo groupadd developers # 创建系统用户组(GID<1000) sudo groupadd -r sysadmin5. groupmod - 修改用户组属性# 修改组名 sudo groupmod -n devs developers # 修改组ID sudo groupmod -g 2001 devs6. groupdel - 删除用户组# 删除空用户组 sudo groupdel devs # 强制删除非空用户组(需先清空组成员) sudo groupdel -f sysadmin文件权限命令7. chmod - 修改文件权限# 符号模式 chmod [ugoa][+-=][rwx] 文件 # 数字模式 chmod XYZ 文件 # 常用选项 -R # 递归修改 # 设置文件所有者为读写,其他用户只读 chmod u=rw,go=r file.txt # 递归设置目录权限(rwxr-xr-x) chmod -R 755 /project/ # 添加执行权限 chmod +x script.sh8. chown - 修改文件所有者# 基本用法 chown [用户][:组] 文件 # 修改文件所有者 sudo chown john report.txt # 同时修改所有者和组 sudo chown john:developers project/ # 递归修改目录所有者 sudo chown -R alice:developers /webapp/9. chgrp - 修改文件所属组# 修改文件所属组 sudo chgrp developers config.ini # 递归修改目录所属组 sudo chgrp -R sysadmin /logs/权限控制命令10. umask - 设置默认权限掩码# 查看当前umask umask # 输出 0022 # 设置新umask(文件默认权限:666-022=644) umask 0022 # 永久设置(添加到 ~/.bashrc 或 /etc/profile) echo "umask 0027" >> ~/.bashrc11. chattr - 修改文件扩展属性# 基本用法 sudo chattr [+-=][属性] 文件 # 常用属性 +i # 不可修改(免疫删除/重命名) +a # 只能追加内容(日志文件) +A # 不更新访问时间 +c # 透明压缩(某些文件系统) # 设置文件不可修改 sudo chattr +i /etc/passwd # 设置日志文件只能追加 sudo chattr +a /var/log/syslog12. lsattr - 查看文件扩展属性# 查看文件属性 lsattr /etc/passwd # 递归查看目录属性 lsattr -R /etc/ssh/用户信息命令13. id - 显示用户身份信息# 显示当前用户信息 id # 显示指定用户信息 id john # 输出格式: # uid=1001(john) gid=1001(john) groups=1001(john),27(sudo)14. who - 显示已登录用户# 基本用法 who # 显示详细信息 who -Hu # 输出示例: # NAME LINE TIME IDLE PID COMMENT # john tty1 2023-08-01 09:30 . 123415. whoami - 显示当前用户名# 简单显示当前用户 whoami # 输出:john16. last - 显示用户登录历史# 显示所有登录记录 last # 显示指定用户登录记录 last john # 显示重启记录 last reboot权限切换命令17. su - 切换用户身份# 切换到其他用户 su - john # "-" 表示加载目标用户环境 # 切换后返回原用户 exit18. sudo - 以超级用户权限执行命令# 执行单条命令 sudo apt update # 以其他用户身份执行 sudo -u john whoami # 编辑sudoers文件 sudo visudo19. w - 显示登录用户及其活动# 显示所有登录用户的活动 w # 精简输出 w -h # 输出示例: # 09:30:00 up 10 days, 1 user, load average: 0.00, 0.01, 0.05 # USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT # john tty1 :0 09:15 5.00s 0.10s 0.00s w高级权限命令20. chpasswd - 批量修改密码# 从标准输入修改密码 echo "john:newpassword" | sudo chpasswd # 从文件批量修改 sudo chpasswd < users.txt # users.txt 格式: # username1:password1 # username2:password221. chroot - 切换根目录环境# 创建受限环境 sudo mkdir /jail sudo chroot /jail /bin/bash # 用于系统恢复 sudo chroot /mnt/sysroot /bin/bash权限管理最佳实践最小权限原则:# 使用sudo代替直接root登录 sudo systemctl restart nginx # 限制sudo权限 # /etc/sudoers 配置: john ALL=(ALL) /usr/bin/systemctl restart nginx, /usr/bin/apt update安全审计:# 检查空密码账户 sudo awk -F: '($2 == "") {print $1}' /etc/shadow # 检查sudo权限用户 sudo grep -Po '^sudo:\K.*$' /etc/group密码策略:# 修改密码策略 sudo nano /etc/login.defsPASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 14文件权限检查:# 查找全局可写文件 sudo find / -xdev -type f -perm -0002 -ls # 查找SUID文件 sudo find / -xdev -type f -perm -4000 -ls命令对比表命令功能描述常用场景useradd创建新用户系统初始化添加用户usermod修改用户属性将用户加入特权组chmod修改文件权限设置脚本可执行权限chown修改文件所有者项目目录所有权转移sudo以特权身份执行命令系统管理操作chattr设置文件特殊属性保护关键配置文件chroot创建受限环境系统恢复/安全沙箱umask设置默认权限掩码控制新建文件默认权限提示:所有特权命令(如 useradd、chown 等)通常需要 root 权限执行,使用 sudo 前缀或切换到 root 账户。生产环境中建议通过配置管理工具(如 Ansible)批量管理用户权限。
2025年10月19日
4 阅读
0 评论
0 点赞
2025-10-19
Linux 系统目录功能完整解析
Linux 系统目录功能完整解析Linux 系统采用树状目录结构,遵循 文件系统层次结构标准(FHS)。以下是主要目录及其功能的详细解析:核心系统目录目录路径功能说明关键内容示例根目录/整个文件系统的起点所有其他目录的父目录/bin 基础系统命令(所有用户可用)ls, cp, bash, cat/sbin 系统管理命令(通常需要 root 权限)fdisk, ifconfig, reboot, iptables/lib 系统核心库文件(32位系统)*.so 共享库文件/lib64 64位系统核心库文件64位共享库文件/boot 系统启动文件vmlinuz(内核), initramfs, GRUB 配置文件/dev 设备文件sda(磁盘), tty(终端), null, random/etc 系统配置文件passwd, hosts, fstab, 网络配置/proc 内核与进程信息(虚拟文件系统)/proc/cpuinfo, /proc/meminfo/sys 内核设备信息(虚拟文件系统)硬件设备树,驱动信息/run 运行时数据(系统启动后生成)PID 文件,锁文件,设备锁定/tmp 临时文件(所有用户可写,重启后清除)临时下载,缓存文件用户空间目录目录功能说明关键内容示例/home用户主目录(每个用户独立子目录)~/.bashrc, ~/Documents, ~/Downloads/rootroot 用户主目录(普通用户无权限访问)系统管理员专用配置文件/usr用户程序与数据(Unix System Resources)应用程序,库文件,文档/var可变数据文件(日志、缓存等经常变化的文件)日志文件,邮件队列,数据库文件/usr 子目录详解目录功能说明/usr/bin用户安装的命令行程序(非核心)/usr/sbin用户安装的系统管理命令/usr/lib应用程序的库文件/usr/includeC/C++ 头文件/usr/share架构无关的共享数据(文档、图标、字体等)/usr/local本地安装软件(系统升级不影响此目录)/usr/src内核源代码(通常为空,开发者使用)📌 最佳实践:用户编译安装的软件应放在 /usr/local 下,避免与系统包管理器冲突/var 子目录详解目录功能说明/var/log系统日志文件/var/cache应用程序缓存数据/var/lib程序状态信息(数据库、包管理元数据等)/var/mail用户邮箱文件/var/spool任务队列(打印任务、cron 任务等)/var/tmp重启后保留的临时文件(比 /tmp 生命周期长)特殊目录目录功能说明/mnt临时挂载点(手动挂载文件系统)/media可移动设备挂载点(自动挂载 U 盘、光盘等)/srv服务数据(网站、FTP 等服务的文件)/opt可选应用程序(大型商业软件安装位置)/lost+found文件恢复(fsck 修复后的文件碎片)目录结构示意图/ ├── bin -> usr/bin # 基础命令 ├── boot # 启动文件 ├── dev # 设备文件 ├── etc # 配置文件 ├── home # 用户目录 │ ├── user1 │ └── user2 ├── lib -> usr/lib # 库文件 ├── mnt # 临时挂载 ├── opt # 可选软件 ├── proc # 进程信息 ├── root # root主目录 ├── run # 运行时数据 ├── sbin -> usr/sbin # 系统命令 ├── srv # 服务数据 ├── sys # 系统设备 ├── tmp # 临时文件 ├── usr # 用户程序 │ ├── bin │ ├── lib │ ├── local │ └── share └── var # 可变数据 ├── log ├── cache └── lib关键配置文件位置用户相关:/etc/passwd - 用户账户信息/etc/shadow - 加密密码存储/etc/group - 用户组信息/etc/sudoers - sudo 权限配置网络配置:/etc/hosts - 本地域名解析/etc/resolv.conf - DNS 服务器配置/etc/sysconfig/network-scripts/ - 网络接口配置(RHEL系)/etc/netplan/ - 网络配置(Ubuntu)系统服务:/etc/systemd/system/ - 系统服务配置文件/etc/init.d/ - SysV init 脚本(旧系统)文件系统:/etc/fstab - 文件系统挂载表/etc/mtab - 当前挂载的文件系统目录操作最佳实践权限管理:# 查看目录权限 ls -ld /path/to/directory # 修改目录所有者 sudo chown user:group /path # 修改目录权限 sudo chmod 755 /path # rwxr-xr-x磁盘空间分析:# 查看磁盘使用情况 df -h # 分析目录大小 du -sh /var/log/* # 查找大文件 find / -type f -size +100M 2>/dev/null日志文件管理:# 查看系统日志 journalctl -xe # 查看特定服务日志 sudo tail -f /var/log/nginx/error.log # 日志轮转配置 /etc/logrotate.conf常见问题解决问题1:磁盘空间不足检查大文件:sudo du -h / | sort -h | tail -n 20清理日志:sudo journalctl --vacuum-size=200M # 保留200MB日志清理包缓存:sudo apt clean # Debian/Ubuntu sudo dnf clean all # RHEL/CentOS问题2:文件系统损坏# 检查文件系统 sudo fsck /dev/sda1 # 修复只读文件系统 mount -o remount,rw /问题3:关键目录误删恢复使用 testdisk 扫描分区使用 extundelete 恢复 ext4 文件从备份恢复(强调定期备份的重要性)各发行版差异目录/功能Debian/UbuntuRHEL/CentOSopenEuler网络配置/etc/netplan/*.yaml/etc/sysconfig/network-scripts//etc/sysconfig/network-scripts/包管理/var/lib/apt//var/lib/dnf//var/lib/dnf/服务管理systemctlsystemctlsystemd内核位置/boot/vmlinuz-*/boot/vmlinuz-*/boot/vmlinuz-*默认Shell/bin/bash/bin/bash/bin/bash掌握 Linux 目录结构是系统管理的基石。建议定期备份关键目录(如 /etc, /home, /var),并使用版本控制管理配置文件(如 Git)。
2025年10月19日
3 阅读
0 评论
0 点赞
2025-10-19
Linux 网络配置、DNS设置及密码重置完整教程
常见 Linux 系统及 openEuler 网络配置、DNS设置与密码重置完整教程一、网络配置与 DNS 设置(各系统对比)系统配置文件位置工具推荐DNS 持久化方法Ubuntu/etc/netplan/*.yamlnetplan在 netplan 配置中直接设置Debian/etc/network/interfacesifupdown在 interfaces 文件中设置CentOS/etc/sysconfig/network-scripts/ifcfg-*nmcli/nmtui在 ifcfg 文件中设置 DNS 参数openEuler/etc/sysconfig/network-scripts/ifcfg-*nmcli/nmtui使用 nmcli 或编辑 ifcfg 文件Arch/etc/netctl/ 或 /etc/systemd/network/netctl在配置文件中直接设置通用配置方法:# 查看网络接口 ip addr # 测试网络连通性 ping -c 4 8.8.8.8 # 检查 DNS 解析 nslookup google.com各系统详细配置:1. Ubuntu/Debian (Netplan)sudo nano /etc/netplan/01-netcfg.yamlnetwork: version: 2 renderer: networkd ethernets: enp0s3: dhcp4: no addresses: [192.168.1.100/24] gateway4: 192.168.1.1 nameservers: addresses: [8.8.8.8, 8.8.4.4]sudo netplan apply2. CentOS/openEuler (nmcli)sudo nmcli con mod "System eth0" \ ipv4.addresses 192.168.1.100/24 \ ipv4.gateway 192.168.1.1 \ ipv4.dns "8.8.8.8,8.8.4.4" \ ipv4.method manual sudo nmcli con down "System eth0" && sudo nmcli con up "System eth0"3. 传统配置 (Debian/CentOS/openEuler)sudo nano /etc/sysconfig/network-scripts/ifcfg-eth0DEVICE=eth0 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.100 NETMASK=255.255.255.0 GATEWAY=192.168.1.1 DNS1=8.8.8.8 DNS2=8.8.4.4sudo systemctl restart NetworkManager # 或 sudo systemctl restart network二、密码重置教程(通用方法)物理机/本地虚拟机重置:重启系统,在 GRUB 菜单按 e 进入编辑模式修改启动参数:Ubuntu/Debian: 在 linux 行末尾添加 init=/bin/bashCentOS/openEuler: 在 linux16 行末尾添加 rd.break按 Ctrl+X 启动挂载文件系统可写:mount -o remount,rw /重置密码:passwd username # 替换为实际用户名SELinux 处理(RHEL/CentOS/openEuler):touch /.autorelabel重启系统:exec /sbin/init # 或 reboot -f云服务器重置:通过云控制台进入恢复模式挂载系统分区:mount /dev/sda1 /mnt # 分区可能不同重置密码:chroot /mnt passwd username卸载并重启:umount /mnt reboot三、系统特定密码重置方法1. Ubuntu/Debian# 在 GRUB 编辑界面添加: init=/bin/bash # 启动后执行: mount -o remount,rw / passwd username exec /sbin/init2. CentOS/openEuler# 在 GRUB 编辑界面添加: rd.break # 启动后执行: mount -o remount,rw /sysroot chroot /sysroot passwd root touch /.autorelabel exit reboot3. 单用户模式(通用)# 在 GRUB 编辑界面添加: single # 启动后直接使用 passwd 命令 passwd username四、网络问题排查与验证网络诊断命令:# 查看IP配置 ip addr show # 检查路由表 ip route show # 测试网关连通性 ping -c 4 192.168.1.1 # 测试DNS解析 dig google.com @8.8.8.8 # 查看DNS配置 cat /etc/resolv.conf # 检查网络服务状态 systemctl status NetworkManager常见问题解决:DNS 不生效:# 检查是否被覆盖 ls -l /etc/resolv.conf # 禁用 NetworkManager 修改 echo -e "[main]\ndns=none" | sudo tee /etc/NetworkManager/conf.d/90-dns-none.conf sudo systemctl restart NetworkManager网络服务启动失败:# 查看日志 journalctl -xe -u NetworkManager # 检查配置文件语法 sudo nmcli con reload网卡未激活:sudo nmcli con up eth0 sudo dhclient eth0 # 如果使用DHCP五、安全增强建议密码策略:sudo nano /etc/login.defsPASS_MAX_DAYS 90 PASS_MIN_DAYS 7 PASS_WARN_AGE 14SSH 加固:sudo nano /etc/ssh/sshd_configPermitRootLogin no PasswordAuthentication no AllowUsers your_username防火墙配置:# firewalld (CentOS/openEuler) sudo firewall-cmd --permanent --add-service=ssh sudo firewall-cmd --reload # ufw (Ubuntu/Debian) sudo ufw allow ssh sudo ufw enable六、操作注意事项重要操作前备份:# 网络配置备份 sudo cp /etc/netplan/01-netcfg.yaml /etc/netplan/01-netcfg.yaml.bak # 密码文件备份 sudo cp /etc/shadow /etc/shadow.bak生产环境建议:使用 SSH 密钥认证代替密码通过配置管理工具(Ansible/Puppet)管理网络定期进行密码轮换灾难恢复:准备系统恢复镜像定期测试备份恢复流程记录关键系统配置信息所有操作建议在维护窗口进行,并确保有系统快照或备份。对于云环境,优先使用云平台提供的密码重置和网络配置功能。
2025年10月19日
3 阅读
0 评论
0 点赞