压缩与解压

unzip

解压 ZIP 格式的归档文件。

常用参数

参数说明
-l列出压缩包内的文件列表,不执行解压
-o覆盖已有文件时不提示确认(默认会逐个询问 y/n/A/N/r)
-n不覆盖已有文件(默认行为)
-d <目录>将文件解压到指定目录
-P <密码>解压加密压缩包时提供密码
-j丢弃目录结构(junk paths),所有文件平铺到同一目录。同名文件会覆盖

示例

# 列出压缩包内容(不解压)
unzip -l zip2026.zip

# 解压到指定目录,覆盖已有文件不提示
unzip -o zip2026.zip -d ./output

# 解压到当前目录(最基本用法)
unzip archive.zip

# 解压加密压缩包
unzip -P mypassword archive.zip

tar

打包和解包工具,通常结合 gzip(.tar.gz)或 bzip2(.tar.bz2)使用。

常用参数

参数说明
-c创建新的归档文件(create)
-x解包归档文件(extract)
-t列出归档内容,不解包
-f <文件>指定归档文件名
-z使用 gzip 压缩/解压(.tar.gz)
-j使用 bzip2 压缩/解压(.tar.bz2)
-J使用 xz 压缩/解压(.tar.xz)
-v显示处理过程中的文件名
-C <目录>解包到指定目录

示例

# 打包并用 gzip 压缩
tar -czf archive.tar.gz ./src

# 打包并用 bzip2 压缩(压缩率更高)
tar -cjf archive.tar.bz2 ./src

# 解包 .tar.gz
tar -xzf archive.tar.gz

# 解包到指定目录
tar -xzf archive.tar.gz -C ./output

# 列出归档内容
tar -tf archive.tar.gz

# 解包时显示文件名
tar -xzf archive.tar.gz -v

网络请求

curl

命令行 HTTP 客户端,支持多种协议(HTTP、HTTPS、FTP 等)。

常用参数

参数说明
-X <方法>指定请求方法(GET、POST、PUT、DELETE 等)
-H <头>添加请求头
-d <数据>发送请求体数据(默认 POST)
-F <字段>上传表单/文件(multipart/form-data)
-o <文件>将响应保存到文件
-k跳过 SSL 证书验证
-s静默模式,不显示进度
-i显示响应头
-w <格式>自定义输出格式(如耗时、状态码)
-L跟随重定向

示例

# GET 请求
curl https://example.com/api

# POST JSON
curl -X POST -H "Content-Type: application/json" \
  -d '{"name":"test"}' https://example.com/api

# 上传文件
curl -F "file=@photo.jpg" https://example.com/upload

# 下载文件
curl -o output.html https://example.com

# 显示响应头
curl -i https://example.com

# 跳过 SSL 验证
curl -k https://self-signed.example.com

wget

非交互式文件下载工具,支持断点续传和递归下载。

常用参数

参数说明
-O <文件>指定保存文件名
-c断点续传
-q静默模式
-r递归下载(下载整个网站)
-np不递归到父目录
--limit-rate=<速率>限制下载速度
-P <目录>下载到指定目录

示例

# 下载文件
wget https://example.com/file.zip

# 指定保存文件名
wget -O report.pdf https://example.com/download?id=123

# 断点续传
wget -c https://example.com/large-file.iso

# 限速下载(200KB/s)
wget --limit-rate=200k https://example.com/file.zip

# 下载到指定目录
wget -P ./downloads https://example.com/file.zip

网络诊断

telnet

测试远程主机的 TCP 端口连通性。

示例

# 测试端口是否可达
telnet example.com 80

# 测试 MySQL 连接
telnet db.example.com 3306

# 退出:Ctrl + ] 然后输入 quit

nc(netcat)

多功能的网络调试工具,可测试端口、传输数据。

常用参数

参数说明
-z扫描端口,不发送数据
-v显示详细输出
-l监听模式(作为服务端)
-p <端口>指定本地端口
-w <秒>设置超时时间
-u使用 UDP 协议

示例

# 测试单个端口连通性
nc -zv example.com 80

# 扫描端口范围
nc -zv example.com 80-443

# 超时 3 秒快速检测
nc -zv -w 3 example.com 3306

# 监听端口(服务端)
nc -l 8080

# 传输文件:接收端
nc -l 8080 > received.txt
# 传输文件:发送端
nc example.com 8080 < send.txt

系统诊断

lsof(list open files)

列出当前系统打开的文件。Linux 中一切皆文件,网络连接、设备、管道等也都是文件,因此 lsof 可用于查看端口占用、进程打开的文件等。

常用参数

参数说明
-i <条件>查看网络连接,如 -i :80 查看占用 80 端口的进程
-i <协议>按协议筛选,如 -i TCP-i UDP
-P不将端口号转换为服务名(显示数字端口)
-n不将 IP 转换为主机名(显示数字 IP)
-p <PID>查看指定进程打开的文件
-u <用户>查看指定用户打开的文件
+D <目录>查看指定目录下被打开的文件
-c <名称>查看指定名称的进程打开的文件

示例

# 查看占用指定端口的进程
lsof -i :8080

# 以数字形式显示端口和 IP(最常用组合)
lsof -i :8080 -P -n

# 查看所有 TCP 连接
lsof -i TCP

# 查看指定进程打开的所有文件
lsof -p 12345

# 查看指定用户打开的文件
lsof -u www-data

# 查看指定目录下被打开的文件(排查"文件被占用无法删除"问题)
lsof +D /var/log

# 查看指定名称的进程打开的文件
lsof -c nginx

# 查看所有网络连接(TCP + UDP)
lsof -i

Kubernetes

以下示例中命名空间 ttos-client-jc-zhyh 需替换为实际值。

kubectl 常用参数

参数说明
-n <命名空间>指定命名空间
-A所有命名空间
-o wide显示更多列信息(IP、所在节点等)
-f持续跟踪日志输出(follow)

查看资源

# 查看指定命名空间的 Pod
kubectl get pod -n ttos-client-jc-zhyh

# 查看详细信息(含 IP、所在节点)
kubectl get pod -n ttos-client-jc-zhyh -o wide

# 查看节点信息
kubectl get node -o wide

排查问题

# 查看 Pod 详情(事件、状态、原因)
kubectl describe pod -n ttos-client-jc-zhyh

# 查看指定 Pod 详情
kubectl describe pod <pod-name> -n ttos-client-jc-zhyh

# 查看日志并过滤关键词
kubectl logs -f <pod-name> -n ttos-client-jc-zhyh | grep "缓存"

操作资源

# 删除 Pod(删除后控制器会自动重建)
kubectl delete pod <pod-name> -n ttos-client-jc-zhyh

Helm

Kubernetes 的包管理工具,用于管理应用的安装、升级和卸载。

# 登录私有 Chart 仓库
helm registry login docker.tengits.com --username <用户名> --password <密码>

# 查看指定命名空间的 Release
helm list -n ttos-client-jc-zhyh

# 查看所有命名空间的 Release
helm list -A

# 查看指定命名空间(-n 必须接命名空间名称)
helm list -n <namespace>

# 升级 Release,--reuse-values 复用上次值,仅覆盖指定参数
helm upgrade zhyh-adapter-server zhyh-adapter-server-1.0.0-test \
  --set replicaCount=1 --reuse-values -n ttos-client-jc-zhyh

# 卸载 Release
helm uninstall zhyh-adapter-server -n ttos-client-jc-zhyh

容器运行时

# 查看节点上的容器镜像
crictl images