linux命令

10 阅读4分钟

一、文件与目录操作(必考题)

基础命令

  • ls:列出文件(ls -la显示详细信息,ls -h带单位显示大小)
  • cd:切换目录(cd ~到用户家目录,cd -返回上一次目录)
  • mkdir:创建目录(mkdir -p a/b/c递归创建多层目录)
  • rm:删除文件(rm -rf dir强制递归删除目录,需谨慎!)
  • cp:复制文件(cp -r src dst复制目录)
  • mv:移动/重命名文件(mv old new重命名,mv file dir移动)

进阶操作

  • find:查找文件(find / -name "*.log" -type f查找系统中所有log文件)
  • locate:快速定位文件(需先执行updatedb更新索引)
  • tree:树形展示目录结构(需安装yum install tree

二、文件内容处理(高频场景题)

查看文件

  • cat:显示全部内容(cat file1 file2 > new合并文件)
  • head/tail:查看首尾内容(tail -f log.txt实时追踪日志)
  • more/less:分页查看(less -N file显示行号,按q退出)

文本处理三剑客

  1. grep:搜索关键词(grep "error" log.txt查找含error的行)
  2. awk:格式化处理(awk '{print $1,$3}' file打印第1和第3列)
  3. sed:流编辑(sed 's/old/new/g' file全局替换old为new)

三、权限与用户管理(安全考点)

权限命令

  • chmod:修改权限(chmod 755 script.sh赋予执行权限)
  • chown:修改所有者(chown user:group file
  • umask:设置默认权限掩码(如umask 022生成文件权限644)

用户与组

  • useradd:创建用户(useradd -m user生成家目录)
  • passwd:设置密码(passwd user,普通用户只能改自己密码)
  • usermod:修改用户属性(usermod -aG sudo user添加到sudo组)

四、进程与服务管理(性能排查核心)

进程监控

  • ps:查看进程(ps -ef | grep java查Java进程)
  • top:实时监控(按P以CPU排序,按M以内存排序)
  • htop:交互式进程视图(比top更直观,需安装)

服务控制

  • systemctl:Systemd服务管理(systemctl start/stop/mysql
  • service:传统服务管理(service httpd restart,兼容旧系统)
  • kill:终止进程(kill -9 PID强制终止)

五、系统状态与性能分析(高阶考点)

资源监控

  • df:磁盘空间(df -h以易读格式显示)
  • du:目录大小(du -sh /var/log查看日志目录大小)
  • free:内存使用(free -h显示物理内存和swap)

性能工具

  • vmstat:系统整体性能(vmstat 1每秒刷新一次)
  • iostat:磁盘IO(iostat -x 1查看详细IO统计)
  • netstat:网络连接(netstat -tuln查看监听端口)

六、网络与远程操作(运维必备)

网络配置

  • ifconfig/ip:查看网络接口(ip addr show eth0
  • ping:测试连通性(ping -c 4 www.baidu.comping4次)
  • traceroute:追踪路由(traceroute www.google.com

远程连接

  • ssh:远程登录(ssh user@192.168.1.1
  • scp:远程复制(scp local.txt user@host:/path
  • sftp:安全文件传输(交互式命令行)

七、Shell 脚本与自动化(加分项)

脚本示例

#!/bin/bash
# 备份日志并清理7天前文件
LOG_DIR="/var/log/app"
BACKUP_DIR="/backup/$(date +%Y%m%d)"
OLDDATE=$(date -d "7 days ago" +%Y%m%d)

mkdir -p $BACKUP_DIR
cp $LOG_DIR/*.log $BACKUP_DIR
rm -f $LOG_DIR/*$OLDDATE*.log

echo "备份完成于 $(date)"

实用工具

  • xargs:批量执行命令(find . -name "*.txt" | xargs grep "keyword"
  • watch:定时执行命令(watch -n 5 df -h每5秒查看磁盘空间)

八、问题

问题1:如何查找占用CPU最高的进程?

  • 回答
    1. top命令实时查看,按P键以CPU使用率排序;
    2. 或用ps -eo pid,ppid,%cpu,command | sort -k3 -r | head快速排序。

问题2:如何统计日志中出现最多的IP?

  • 回答
    grep "access" access.log | awk '{print $1}' | sort | uniq -c | sort -nr | head
    
    (解释:过滤日志→取IP列→排序→统计重复次数→降序排列→取前10)

问题3:误删了重要文件,如何恢复?

  • 回答
    1. 立即停止服务器写入操作,避免数据覆盖;
    2. 使用extundelete工具(需提前安装,且文件系统为ext4):
      extundelete /dev/sda1 --restore-file path/to/file
      
    3. 若为数据库文件,可通过备份或日志恢复(如MySQL的binlog)。

九、总结

  1. 命令组合思维:强调“用管道(|)和工具链解决复杂问题”,如find + xargs + grep的联动;
  2. 安全意识:提到rm -rf的风险,建议先用ls -la确认再操作;
  3. 实战案例:举例“曾用vmstat发现内存泄漏,通过top定位到异常进程并优化”;
  4. 扩展知识:提及systemd与传统init的区别,或容器化场景下的Linux优化(如cgroups限制资源)。