【Linux指南】压缩、网络传输与系统工具

一、压缩与解压缩工具

Linux 中压缩工具主要用于打包 / 压缩文件(节省空间)或解压缩,常见格式包括tar.gztar.bz2tar.xzzip等。

1. tar(打包工具,常与压缩算法结合)

tar本身仅打包文件(不压缩),需配合gzipbzip2xz等算法实现压缩,是 Linux 最常用的归档工具。
  • 核心选项
    -c:创建新归档;-x:提取归档;-v:显示过程(verbose);-f:指定归档文件(必须放最后);
    -z:用gzip压缩 / 解压(.tar.gz);-j:用bzip2压缩 / 解压(.tar.bz2);-J:用xz压缩 / 解压(.tar.xz)。
  • 常用示例
    • 打包并压缩目录(gzip算法,最常用):
      tar -czvf archive.tar.gz /path/to/dir  # 打包dir并压缩为archive.tar.gz
      
    • 解压tar.gz文件:
      tar -xzvf archive.tar.gz  # 解压到当前目录(可加-C指定路径:-xzvf archive.tar.gz -C /target/dir)
      
    • xz压缩(压缩率更高,速度较慢):
      tar -cJvf archive.tar.xz /path/to/dir  # 压缩为.tar.xz
      tar -xJvf archive.tar.xz  # 解压.tar.xz

2. zipunzip(跨平台压缩,兼容 Windows)

zip是跨平台通用的压缩格式,适合与 Windows 交换文件。
  • 压缩
    zip -r archive.zip /path/to/dir  # -r:递归压缩目录
    zip -e archive.zip file1 file2   # -e:加密压缩(需输入密码)
    
  • 解压
    unzip archive.zip                # 解压到当前目录
    unzip archive.zip -d /target/dir # 解压到指定目录
    unzip -l archive.zip             # 查看压缩包内容(不解压)

3. 其他压缩工具

  • gzip/gunzip:仅压缩单个文件(不支持目录),压缩后原文件删除(默认):
    gzip file.txt       # 压缩为file.txt.gz(删除原文件)
    gunzip file.txt.gz  # 解压为file.txt(删除.gz文件)
    
  • bzip2/bunzip2:压缩率比gzip高,用法同gzip
    bzip2 file.txt      # 压缩为file.txt.bz2
    bunzip2 file.txt.bz2 # 解压
    

二、网络传输工具

用于在本地与远程主机间传输文件,或诊断网络问题。

1. 文件传输工具

  • scp(基于 SSH 的文件复制,简单直接)
    功能:通过 SSH 协议传输文件(加密,安全),适合小文件或一次性传输。
    用法:
    # 本地文件 → 远程主机
    scp /local/path/file.txt user@remote_ip:/remote/path/
    
    # 远程文件 → 本地
    scp user@remote_ip:/remote/path/file.txt /local/path/
    
    # 传输目录(-r递归)
    scp -r /local/dir user@remote_ip:/remote/path/
    
    # 指定SSH端口(默认22,若远程端口为2222)
    scp -P 2222 localfile user@remote_ip:/path/
    
  • sftp(交互式 SSH 文件传输,适合多文件操作)
    功能:类似 FTP 的交互式工具,基于 SSH,支持上传、下载、目录操作。
    用法:
    # 连接远程主机
    sftp user@remote_ip
    
    # 本地 → 远程(上传)
    put /local/path/file.txt /remote/path/
    
    # 远程 → 本地(下载)
    get /remote/path/file.txt /local/path/
    
    # 其他操作:ls(远程目录)、lls(本地目录)、cd(远程切换)、lcd(本地切换)、exit(退出)
    
  • rsync(增量同步,适合大文件 / 备份)
    功能:仅传输差异内容(增量同步),速度快,支持断点续传,常用于备份或大文件传输。
    核心选项:-a(归档模式,保留权限 / 时间等)、-v(显示过程)、-z(传输时压缩)、--delete(删除目标端多余文件,保持完全一致)。
    用法:
    # 本地目录 → 远程目录(增量同步)
    rsync -avz /local/dir/ user@remote_ip:/remote/dir/
    
    # 远程 → 本地
    rsync -avz user@remote_ip:/remote/dir/ /local/dir/
    
    # 备份本地目录到移动硬盘(--delete确保目标与源一致)
    rsync -avz --delete /home/data/ /mnt/backup/
    

2. 网络诊断工具

  • ping(检查主机连通性)
    功能:向目标主机发送 ICMP 包,测试是否可达。
    用法:
    ping baidu.com       # 持续ping(Ctrl+C停止)
    ping -c 4 baidu.com  # 只发4个包
    
  • traceroute(跟踪路由路径)
    功能:显示从本地到目标主机的路由节点(每一跳的 IP),用于定位网络中断点。
    用法:
    traceroute baidu.com  # 跟踪到百度的路由
    
  • ss/netstat(查看网络连接)
    功能:查看端口占用、TCP/UDP 连接状态(ssnetstat的现代替代,速度更快)。
    用法:
    # 查看所有监听端口(LISTEN)
    ss -tuln  # -t:TCP,-u:UDP,-l:监听,-n:显示IP而非域名
    
    # 查看指定端口(如80)的占用
    ss -tuln | grep 80
    
    # 传统netstat(需安装)
    netstat -tuln
    
  • curl/wget(下载文件 / 测试 HTTP)
    • curl:支持 HTTP/HTTPS/FTP,可用于测试接口或下载文件。
      curl https://example.com/file.zip -o localfile.zip  # 下载并保存为localfile.zip
      curl -I https://example.com  # 查看HTTP响应头(测试网站是否存活)
    • wget:专注下载,支持断点续传(-c)和后台下载(-b)。
      wget https://example.com/file.zip  # 直接下载
      wget -c https://example.com/bigfile.iso  # 断点续传大文件
      wget -b https://example.com/large.zip  # 后台下载(日志存wget-log)
      

三、系统工具

用于监控系统状态、管理进程、查看硬件信息等。

1. 进程管理

  • ps(查看进程快照)
    功能:显示当前系统的进程状态(静态快照)。
    常用选项:
    ps aux  # 查看所有用户的所有进程(a:所有用户,u:显示详细信息,x:包括非终端进程)
    ps aux | grep "nginx"  # 过滤包含nginx的进程
  • top/htop(实时监控进程)
    • top:实时显示进程 CPU / 内存占用,按P排序 CPU,M排序内存,q退出。
    • htoptop的增强版(需安装),支持鼠标操作、颜色区分,更直观。
      htop  # 运行后可直接搜索进程(F3)、终止进程(F9)
      
  • kill(终止进程)
    功能:向进程发送信号(默认终止),需知道进程 ID(PID,可通过pstop获取)。
    用法:
    kill PID  # 发送TERM信号(优雅终止,允许进程清理)
    kill -9 PID  # 发送KILL信号(强制终止,不清理,慎用)
    killall nginx  # 终止所有名为nginx的进程(按名称杀进程)
    

2. 磁盘管理

  • df(查看磁盘空间)
    功能:显示挂载点的磁盘使用情况。
    df -h  # -h:人类可读格式(GB/MB),更直观
    df -T  # 显示文件系统类型(ext4、xfs等)
    
  • du(查看目录 / 文件大小)
    功能:计算指定目录或文件的磁盘占用。
    du -sh /home  # -s:仅显示总和,-h:人类可读(查看/home总大小)
    du -h /var/log/*  # 显示/var/log下所有文件的大小
    
  • fdisk/mkfs(磁盘分区与格式化)
    • fdisk:管理磁盘分区(需 root 权限)。
      fdisk -l  # 列出所有磁盘及分区(如/dev/sda)
      fdisk /dev/sda  # 进入sda磁盘的分区管理界面(按m查看帮助)
      
    • mkfs:格式化分区(创建文件系统)。
      mkfs.ext4 /dev/sda1  # 将sda1分区格式化为ext4
      mkfs.xfs /dev/sdb1   # 格式化为xfs(常用于CentOS)
      

3. 系统信息工具

  • uname(内核与系统架构)
    uname -a  # 显示完整系统信息(内核版本、主机名、架构等)
    uname -r  # 仅显示内核版本
    
  • free(内存使用情况)
    free -h  # 显示内存(总容量、已用、空闲)和交换分区,-h人类可读
    
  • uptime(系统运行时间与负载)
    uptime  # 输出:当前时间 运行时间 登录用户数 1/5/15分钟负载(负载<CPU核心数为正常)
    
  • lsb_release(发行版信息)
    lsb_release -a  # 显示Linux发行版(如Ubuntu 20.04、CentOS 7)
    
  • free/vmstat(内存与系统统计)
    • free -h:查看内存使用;
    • vmstat 2:每 2 秒输出一次系统统计(CPU、内存、IO 等)。

总结

  • 压缩:优先用tar(结合-z/-j/-J),跨平台用zip
  • 传输:小文件用scp,多文件交互用sftp,大文件 / 备份用rsync
  • 系统管理:进程用ps/htop,磁盘用df/du,网络用ss/ping,系统信息用uname/free
阅读剩余
THE END