Linux系统操作必备:常用命令大全(非常全面)

一、文件与目录操作命令

1.1 基础操作类

ls命令是文件列表查看的核心工具,常用参数组合包括:

  • ls -l:显示详细信息(权限、所有者、大小等)
  • ls -a:显示隐藏文件(以.开头的文件)
  • ls -lh:人类可读格式显示文件大小(KB/MB/GB)
    示例:ls -alh /var/log 可查看系统日志目录的完整信息。

cd命令需注意相对路径与绝对路径的差异:

  • cd ~:快速返回用户主目录
  • cd -:返回上一个工作目录
  • cd ../:进入上级目录(注意斜杠方向)

pwd命令在脚本开发中尤为重要,可确保操作路径的准确性。建议配合环境变量使用:CURRENT_DIR=$(pwd)

1.2 文件操作类

cp命令的递归复制功能:

  1. cp -r /source/dir /target/dir/ # 复制目录
  2. cp -i *.txt backup/ # 交互式复制(覆盖前确认)

rm命令的谨慎使用原则:

  • 强制删除:rm -f file.txt(慎用!)
  • 递归删除目录:rm -r dir/
  • 安全替代方案:mv obsolete_files /trash/

find命令的高级搜索技巧:

  1. find /home -name "*.log" -size +10M # 查找大于10MB的日志文件
  2. find . -type f -mtime +7 -delete # 自动删除7天前的文件

二、权限管理命令

2.1 基础权限控制

chmod的数字表示法:

  • 755权限:chmod 755 script.sh(rwxr-xr-x)
  • 递归修改目录权限:chmod -R 750 /secure_data/

chown命令的批量操作示例:

  1. chown -R webuser:webgroup /var/www/
  2. find /var/www/ -type d -exec chmod 750 {} \;
  3. find /var/www/ -type f -exec chmod 640 {} \;

2.2 高级权限管理

setfacl实现精细权限控制:

  1. setfacl -m u:developer:rwx /project/
  2. setfacl -d -m g:team:r-x /shared/ # 设置默认权限

sudo配置的最佳实践:

  1. 使用visudo编辑配置文件
  2. 按角色分配权限而非个人
  3. 记录所有sudo操作:Defaults logfile=/var/log/sudo.log

三、进程管理命令

3.1 进程监控

ps命令的常用组合:

  1. ps aux | grep nginx # 查看nginx进程
  2. ps -eo pid,ppid,cmd,%mem # 自定义输出列

tophtop的对比使用:

  • top:基础进程监控(Ctrl+M按内存排序)
  • htop:彩色显示,支持鼠标操作(需安装)

3.2 进程控制

kill信号详解:

  • SIGTERM(15):优雅终止(默认)
  • SIGKILL(9):强制终止(慎用)
  • SIGHUP(1):重启服务
    示例:kill -HUP $(cat /var/run/nginx.pid)

systemctl服务管理:

  1. systemctl status mysql # 查看服务状态
  2. systemctl enable nginx # 开机自启
  3. systemctl isolate multi-user.target # 切换运行级别

四、网络调试命令

4.1 基础网络工具

netstat的替代方案ss

  1. ss -tulnp | grep 80 # 查看80端口监听
  2. ss -s # 网络统计信息

curl的调试技巧:

  1. curl -v http://example.com # 显示详细请求
  2. curl -I http://example.com # 只获取响应头
  3. curl -X POST -d "key=val" http://api/

4.2 高级网络诊断

tcpdump抓包示例:

  1. tcpdump -i eth0 port 80 -w capture.pcap
  2. tcpdump -nn -A port 443 | grep "HTTP/1.1"

nmap端口扫描:

  1. nmap -sV 192.168.1.1 # 版本检测
  2. nmap -p 1-1000 192.168.1.1 # 端口范围扫描

五、系统信息命令

5.1 硬件信息

lscpudmidecode对比:

  1. lscpu | grep "Model name" # CPU型号
  2. dmidecode -t bios # BIOS信息
  3. lsblk # 块设备列表

5.2 性能监控

vmstat实时监控:

  1. vmstat 1 5 # 每秒1次,共5次
  2. procs: r=运行队列 b=阻塞进程
  3. memory: swpd=交换分区使用

iostat磁盘IO监控:

  1. iostat -x 1 # 显示扩展统计
  2. %util: 设备利用率(>80%需优化)

六、实用技巧与建议

  1. 命令组合:使用管道|和重定向>提升效率

    1. grep "error" /var/log/syslog | wc -l
    2. tar czf archive.tar.gz $(find . -name "*.txt")
  2. 历史命令

    • Ctrl+R:反向搜索历史
    • history | grep "command":查找特定命令
  3. 别名设置:在~/.bashrc中添加常用别名

    1. alias ll='ls -alFh'
    2. alias update='sudo apt update && sudo apt upgrade'
  4. 安全建议

    • 避免直接使用root操作
    • 定期审计/var/log/auth.log
    • 使用fail2ban防止暴力破解
  5. 性能优化

    • 对大文件操作使用ionice
    • 磁盘密集型任务安排在低峰期
    • 使用nice调整进程优先级

本指南系统梳理了Linux系统管理的核心命令,涵盖从基础操作到高级调试的完整场景。建议开发者结合实际需求,通过man 命令名深入学习参数细节,并建立个人命令笔记库。掌握这些命令后,可进一步提升通过脚本自动化处理复杂任务的能力,真正实现高效系统管理。