Shell 网络与用户权限命令速查
更新时间:2026-08-25。本文覆盖 Shell 编程主题的第⑥族:网络通信与用户权限,约 16 个命令。网络排障的深度方法见本站
tools/network/。
一、HTTP 请求
1.1 curl — 全能 HTTP 客户端
bash
curl https://api.example.com # GET 请求
curl -X POST -d '{"k":"v"}' https://api # POST JSON
curl -H "Authorization: Bearer TOKEN" URL # 自定义头
curl -o out.html URL # 保存到文件
curl -s URL # 静默(无进度条)
curl -I URL # 只取响应头
curl -v URL # 详细调试
curl --max-time 10 URL # 超时 10 秒
curl -u user:pass URL # 基础认证
curl -k https://self-signed.example # 忽略证书校验
curl -w '%{http_code}\n' URL # 只输出状态码状态码判断脚本:
bash
code=$(curl -s -o /dev/null -w '%{http_code}' https://example.com)
if [ "$code" -eq 200 ]; then echo "OK"; else echo "异常: $code"; fi1.2 wget — 下载工具
bash
wget https://example.com/file.tar.gz # 下载
wget -O name.tar.gz URL # 指定文件名
wget -c URL # 断点续传
wget -r URL # 递归下载curl 偏接口/调试,wget 偏下载/批量。
二、远程登录与传输
2.1 ssh
bash
ssh user@host # 远程登录
ssh -p 2222 user@host # 指定端口
ssh user@host 'command' # 执行单条命令
ssh -i key.pem user@host # 指定密钥
ssh -o ConnectTimeout=5 host # 连接超时免密登录与密钥配置见本站部署脚本(SSH 免密优先,避免每次输密码)。
2.2 scp — 远程复制
bash
scp local.txt user@host:/path/ # 上传
scp user@host:/path/file.txt . # 下载
scp -r dir/ user@host:/path/ # 递归传目录2.3 rsync — 增量同步(强大)
bash
rsync -av src/ user@host:/dst/ # 归档+增量同步
rsync -avz --delete src/ user@host:/dst/ # 删除源中不存在的
rsync -av --progress src/ dst/ # 本地同步+进度三、端口与连接
3.1 ss — socket 统计(现代替代 netstat)
bash
ss -tlnp # 监听中的 TCP 端口
ss -tunap # 所有 TCP/UDP 连接
ss -tn state established # 已建立的连接
ss -lnt # 只监听端口+数字-t TCP、-u UDP、-l 监听、-n 数字、-p 进程、-a 全部。ss -tlnp 是查端口占用第一命令。
3.2 netstat
bash
netstat -tlnp # 监听端口(旧工具)
netstat -an # 全部连接现代系统优先用
ss,netstat可能未预装。
3.3 ping
bash
ping host # 连通性测试
ping -c 4 host # 只发 4 个包
ping -i 0.5 host # 间隔 0.5 秒3.4 telnet / nc
bash
telnet host 80 # 测试端口连通
nc -zv host 80 # 端口扫描测试
nc -z -w2 host 1-1000 # 扫描端口范围四、网络信息
| 命令 | 作用 | 示例 |
|---|---|---|
ip | 网络配置(现代) | ip addr、ip link、ip route |
ifconfig | 网络配置(旧) | ifconfig -a |
hostname -I | 本机 IP | hostname -I |
route / ip route | 路由表 | ip route |
dig / nslookup | DNS 查询 | dig example.com、nslookup example.com |
traceroute | 路由追踪 | traceroute host |
bash
ip addr show eth0 # 网卡详情
dig +short example.com # 简化的 DNS 结果五、用户与权限
5.1 用户管理
bash
useradd -m -s /bin/bash alice # 建用户+家目录+shell
userdel -r alice # 删用户(含家目录)
passwd alice # 设/改密码
groups alice # 查看用户组5.2 提权与切换
bash
sudo command # 以 root 执行(需在 sudo 组)
sudo -i # 进入 root shell
su - alice # 切换用户(含环境)
whoami # 当前用户
id # uid/gid/组sudo vs su:sudo 只对单条命令提权,有审计日志,推荐;su 整体切换用户,需目标用户密码。
5.3 文件权限(衔接文件命令)
bash
chmod 755 file # 权限(r=4 w=2 x=1)
chown user:group file # 属主
umask 022 # 默认掩码六、与主线衔接
curl -w状态码/耗时、ss -tlnp端口排查,是 网络低延迟与排查 的脚本化入口。rsync/scp是站点/日志同步的基础,本站sync_site.sh即此类工具的应用。sudo提权与权限模型,衔接 进程与系统命令 与安全域。
一句话总结
网络命令核心是 curl 测接口、ssh/scp/rsync 传与连、ss -tlnp 查端口、ping/nc 探连通;用户权限用 useradd/sudo/chmod 三件套——覆盖日常网络与权限操作。
深入:压缩归档与其他命令 → Shell 编程总纲。