1. Linux Bash命令基础与核心操作作为一名Linux系统管理员我每天都要与Bash打交道。Bash(Bourne-Again SHell)是大多数Linux发行版的默认shell掌握其常用命令是高效工作的基础。本文将分享我在日常工作中最常用的Bash命令及其使用技巧。1.1 文件与目录操作文件操作是Linux系统管理中最基础也最频繁的任务。以下是我总结的核心命令# 列出目录内容带颜色区分文件类型 ls -l --colorauto # 创建多级目录 mkdir -p /path/to/new/directory # 复制文件并保留属性 cp -a source_file destination # 安全删除文件交互式确认 rm -i filename # 查找并删除7天前的日志文件 find /var/log -type f -mtime 7 -exec rm {} \;提示使用ls -l时第一列的第一个字符表示文件类型-为普通文件d为目录l为链接文件1.2 文本处理与查看处理文本文件是系统管理员的日常工作这些命令能极大提升效率# 查看文件开头默认10行 head -n 20 /var/log/syslog # 实时查看日志文件更新 tail -f /var/log/nginx/access.log # 统计文件行数 wc -l access.log # 查找包含error的行忽略大小写 grep -i error /var/log/syslog # 替换文件中的文本 sed -i s/old_text/new_text/g file.txt我在排查问题时经常组合使用这些命令例如grep Failed /var/log/auth.log | awk {print $9} | sort | uniq -c | sort -nr这条命令可以统计登录失败次数最多的用户。2. 系统监控与进程管理2.1 系统状态监控了解系统运行状态是管理员的基本功# 查看内存使用情况人类可读格式 free -h # 查看磁盘空间仅显示本地文件系统 df -hT -x tmpfs -x devtmpfs # 查看CPU使用率每2秒刷新 top -d 2 # 查看网络连接 ss -tulnp # 查看系统负载 uptime2.2 进程管理技巧进程管理是系统维护的关键这些命令能帮你掌控运行中的程序# 查找特定进程 pgrep -l nginx # 以树状显示进程关系 pstree -p # 终止进程先尝试友好终止 kill -15 PID kill -9 PID # 强制终止 # 按内存使用排序进程 ps aux --sort-%mem | head注意kill -9是最后手段可能导致数据丢失或状态不一致3. 用户权限与系统管理3.1 用户和组管理在多用户系统中这些命令必不可少# 创建用户并指定家目录 useradd -m -d /home/newuser -s /bin/bash newuser # 修改用户密码 passwd username # 查看用户组信息 groups username # 添加用户到附加组 usermod -aG sudo username # 锁定用户账户 usermod -L username3.2 权限控制Linux的权限系统是其安全基础# 修改文件所有者 chown user:group file # 递归修改目录权限 chmod -R 750 /path/to/directory # 设置特殊权限SUID chmod us /usr/bin/program # 查看文件的ACL getfacl /etc/shadow4. 网络配置与诊断4.1 网络配置网络问题是常见故障点这些命令能帮你快速诊断# 查看IP地址和网络接口 ip addr show # 测试网络连通性 ping -c 4 google.com # 跟踪路由路径 traceroute example.com # 查看DNS解析 dig example.com # 测试端口连通性 nc -zv example.com 4434.2 网络服务管理管理网络服务的常用命令# 查看服务状态 systemctl status nginx # 启动/停止服务 systemctl start nginx systemctl stop nginx # 设置开机启动 systemctl enable nginx # 查看服务日志 journalctl -u nginx -f5. 实用脚本与自动化5.1 基础脚本编写Bash脚本能自动化重复任务提高效率#!/bin/bash # 备份脚本示例 BACKUP_DIR/backups DATE$(date %Y%m%d) TARGET_DIR/var/www # 创建备份目录 mkdir -p $BACKUP_DIR/$DATE # 打包压缩网站文件 tar -czf $BACKUP_DIR/$DATE/www_backup.tar.gz $TARGET_DIR # 删除7天前的备份 find $BACKUP_DIR -type d -mtime 7 -exec rm -rf {} \;5.2 定时任务管理使用cron实现自动化# 编辑当前用户的cron任务 crontab -e # 每天凌晨3点执行备份 0 3 * * * /path/to/backup_script.sh # 每5分钟检查服务状态 */5 * * * * /path/to/monitor_service.sh6. 高级技巧与问题排查6.1 性能优化命令这些命令能帮你发现系统瓶颈# 查看磁盘I/O使用情况 iotop # 监控系统调用 strace -p PID # 查看内存使用详情 vmstat 1 5 # 分析CPU使用率 mpstat -P ALL 1 56.2 常见问题排查遇到问题时这些命令能帮你快速定位# 查看系统日志 journalctl -xe # 检查磁盘错误 fsck /dev/sda1 # 查看内核消息 dmesg | tail -20 # 检查硬件信息 lshw -short我在实际工作中发现很多问题都可以通过查看日志解决。养成定期检查日志的习惯能帮你提前发现潜在问题。7. 环境配置与个性化7.1 Shell环境定制个性化你的Bash环境能提高工作效率# ~/.bashrc 常用配置 alias llls -alF alias grepgrep --colorauto PS1\[\e[32m\]\u\h:\w\$ \[\e[0m\] # 设置命令历史记录 HISTSIZE5000 HISTFILESIZE10000 HISTTIMEFORMAT%F %T 7.2 实用别名设置这些别名能节省大量时间# 快速进入常用目录 alias cdsitecd /var/www/html # 安全操作别名 alias rmrm -i alias cpcp -i alias mvmv -i # 网络诊断别名 alias myipcurl ifconfig.me alias portsnetstat -tulanp8. 安全最佳实践8.1 基本安全措施这些命令能增强系统安全性# 检查SUID/SGID文件 find / -perm -4000 -o -perm -2000 -type f -exec ls -la {} \; # 检查空密码账户 awk -F: ($2 ) {print $1} /etc/shadow # 查看登录失败记录 lastb | head -20 # 检查开放的端口 ss -tulnp | grep -v 127.0.0.18.2 审计与监控定期审计是保持系统安全的关键# 查看用户登录历史 last # 检查特权命令使用情况 cat /var/log/auth.log | grep sudo # 监控文件更改 auditctl -w /etc/passwd -p wa -k passwd_changes # 查看审计日志 ausearch -k passwd_changes掌握这些Bash命令后你会发现Linux系统管理变得轻松许多。记住熟练使用这些命令的关键在于实践。我建议你创建一个测试环境尝试组合使用这些命令来解决实际问题。随着经验的积累你会发展出自己的一套高效工作流程。