Linux / macOS 常用命令手册
适用对象:日常开发、服务器运维、Docker 容器编排
系统覆盖:Ubuntu/Debian、CentOS/RHEL、macOS
最后更新:9/8/2026
目录
- 一、系统与用户管理
- 二、文件与目录操作
- 三、文本处理与查看
- 四、网络相关
- 五、进程与服务管理
- 六、SSH 与远程登录
- 七、压缩与解压
- 八、权限管理
- 九、环境变量
- 十、包管理
- 十一、Docker 常用命令
- 十二、Docker Compose 常用命令
- 十三、系统信息与监控
- 十四、磁盘管理
- 十五、实用快捷键
一、系统与用户管理
SSH 服务配置
# 编辑 SSH 配置文件
nano /etc/ssh/sshd_config
# 修改完配置后重启 SSH 服务
systemctl restart sshd # Linux (systemd)
用户与密码
# 修改 root 用户密码
passwd root
# 修改当前用户密码
passwd
# 切换用户
su - username
sudo -i # 切换到 root
# 添加用户
useradd username # Linux
adduser username # Linux (交互式)
dscl . -create /Users/username # macOS (不常用)
# 删除用户
userdel -r username # -r 同时删除家目录
# 查看当前登录用户
whoami
who # 所有登录用户
id # 当前用户 UID/GID
主机名
# 查看主机名
hostname
hostnamectl # Linux (systemd)
# 临时修改主机名
hostname new-name
# 永久修改主机名 (Linux)
hostnamectl set-hostname new-hostname
# macOS 修改主机名
sudo scutil --set HostName new-hostname
sudo scutil --set ComputerName new-hostname
关机与重启
# 立刻关机
shutdown -h now
poweroff
halt
# 定时关机 (10 分钟后)
shutdown -h 10
# 取消定时关机
shutdown -c
# 重启
shutdown -r now
reboot
# macOS 关机
sudo shutdown -h now
网络配置
# IPv4 DHCP 配置(Debian/Ubuntu /etc/network/interfaces)
auto ens3
iface ens3 inet dhcp
# IPv6 DHCP
iface ens3 inet6 dhcp
# 静态 IP 示例
iface ens3 inet static
address 192.168.1.100
netmask 255.255.255.0
gateway 192.168.1.1
# 重启网络服务
systemctl restart networking # Debian/Ubuntu
systemctl restart NetworkManager # CentOS/桌面版
# macOS 查看 IP
ifconfig | grep "inet "
ipconfig getifaddr en0 # macOS 获取 en0 IP
二、文件与目录操作
基础操作
# 查看当前路径
pwd
# 列出文件
ls
ls -l # 详细信息
ls -la # 包含隐藏文件
ls -lh # 人类可读大小
ls -lt # 按修改时间排序
ls -ltr # 按时间倒序
# 切换目录
cd /path/to/dir
cd ~ # 进入家目录
cd - # 返回上一次所在目录
cd .. # 上一级
# 创建目录
mkdir dirname
mkdir -p path/to/dir # 递归创建
# 创建文件
touch filename
touch file1 file2 file3
# 复制
cp src dst
cp -r src/ dst/ # 递归复制目录
cp -i src dst # 覆盖前询问
cp -p src dst # 保留权限、时间戳
# 移动 / 重命名
mv src dst
mv file1 file2 /target/dir/ # 批量移动
# 删除
rm filename
rm -r dirname/ # 递归删除
rm -rf dirname/ # 强制递归删除(谨慎!)
rm -i file # 删除前确认
查找文件
# find:功能强大
find /path -name "filename"
find /path -name "*.log"
find /path -type f -size +100M # 大于 100MB 的文件
find /path -type f -mtime -7 # 7 天内修改过的文件
find /path -type f -user username # 按属主查找
find /path -type f -perm 0644 # 按权限查找
# 执行动作
find /path -name "*.log" -exec rm {} \;
# locate:基于数据库(速度快)
locate filename
sudo updatedb # 更新数据库
# which / whereis:查找可执行文件
which python
whereis nginx
链接
# 创建软链接(类似 Windows 快捷方式)
ln -s /target/path linkname
# 创建硬链接
ln /target/file hardlink
三、文本处理与查看
查看文件内容
cat filename # 全部输出
less filename # 分页查看(上下箭头/q 退出)
more filename # 分页查看(空格翻页)
head -n 20 filename # 前 20 行
tail -n 20 filename # 后 20 行
tail -f filename # 实时跟踪日志(Ctrl+C 退出)
tail -F filename # 跟踪并自动重试打开(文件被重建也能继续)
文本处理三剑客
# grep:搜索文本
grep "pattern" file
grep -i "pattern" file # 忽略大小写
grep -r "pattern" /path # 递归搜索目录
grep -n "pattern" file # 显示行号
grep -v "pattern" file # 反向匹配
grep -E "pat1|pat2" file # 多个模式
grep -c "pattern" file # 统计匹配行数
grep -l "pattern" *.txt # 只显示文件名
# sed:流编辑器
sed -i 's/old/new/g' file # 原地替换
sed -n '10,20p' file # 打印 10-20 行
sed '/pattern/d' file # 删除匹配行
sed -i '$a\new line' file # 文件末尾追加一行
# awk:文本分析
awk '{print $1}' file # 打印第一列
awk -F: '{print $1, $3}' /etc/passwd # 指定分隔符
awk '$3 > 100' file # 条件过滤
awk '{sum += $1} END {print sum}' file # 求和
其他实用工具
# sort / uniq
sort file # 排序
sort -n file # 按数字排序
sort -r file # 倒序
sort -k2 file # 按第二列排序
sort file | uniq # 去重(需先排序)
sort file | uniq -c # 统计每行重复次数
# wc:统计
wc -l file # 行数
wc -c file # 字节数
wc -w file # 单词数
# cut / paste / tr
cut -d: -f1 /etc/passwd # 按 : 分割取第一列
cut -c1-10 file # 取每行 1-10 字符
tr 'a-z' 'A-Z' < file # 大小写转换
tr -d '\r' < file # 删除回车符
# diff / patch
diff file1 file2
diff -u file1 file2 > patch.diff
patch < patch.diff
四、网络相关
网络工具
# 查询所有占用的端口
apt install net-tools && netstat -tunlp # Debian/Ubuntu
yum install net-tools && netstat -tunlp # CentOS
ss -tunlp # 现代替代
# 常用 netstat 选项
netstat -tunlp # TCP/UDP + 数字地址 + 监听 + 进程
netstat -an # 所有连接
netstat -s # 统计信息
# ip 命令(替代 ifconfig)
ip addr # 查看所有 IP
ip addr show eth0
ip route # 查看路由表
ip link # 查看网卡
ip -s link # 网卡统计
# ping / traceroute
ping host
ping -c 4 host # 发送 4 个包
traceroute host
tracepath host
# DNS 查询
nslookup domain
dig domain
dig +trace domain
host domain
# 下载
wget URL
wget -O filename URL # 指定文件名
curl -O URL # curl 下载
curl -o filename URL
curl -I URL # 只看响应头
curl -X POST -d "data" URL # POST 请求
curl -L URL # 跟随重定向
防火墙
# ufw(Ubuntu)
ufw status
ufw allow 22/tcp
ufw allow 80/tcp
ufw enable
ufw disable
# firewalld(CentOS)
firewall-cmd --list-all
firewall-cmd --add-port=80/tcp --permanent
firewall-cmd --reload
# iptables(通用)
iptables -L
iptables -A INPUT -p tcp --dport 22 -j ACCEPT
macOS 网络相关
# 查看网络接口
ifconfig
networksetup -listallhardwareports
# Wi-Fi
networksetup -setairportnetwork en0 SSID PASSWORD
# DNS
networksetup -setdnsservers Wi-Fi 8.8.8.8 1.1.1.1
# 抓包
sudo tcpdump -i en0 port 80
五、进程与服务管理
systemd(现代 Linux)
# 服务管理
systemctl start service-name
systemctl stop service-name
systemctl restart service-name
systemctl reload service-name
systemctl status service-name
systemctl enable service-name # 开机自启
systemctl disable service-name
# 查看所有服务
systemctl list-units --type=service
systemctl list-unit-files # 所有已安装的服务
# 系统控制
systemctl reboot
systemctl poweroff
systemctl suspend
进程查看与管理
# 进程列表
ps aux
ps -ef
ps aux | grep nginx
# 实时进程监控
top
htop # 更友好的交互界面(需安装)
# 杀进程
kill PID
kill -9 PID # 强制
killall process-name
pkill -f "pattern"
# 后台运行
nohup command & # 不挂起运行
command & # 后台运行
jobs # 查看当前 shell 的后台任务
fg %1 # 把后台任务调到前台
bg %1 # 让暂停的任务在后台继续
信号
kill -l # 查看所有信号
kill -HUP PID # 1 - 重新加载配置(nginx 等)
kill -USR1 PID # 10 - 用户自定义信号 1
kill -USR2 PID # 12 - 用户自定义信号 2
六、SSH 与远程登录
基本连接
ssh user@host
ssh -p 2222 user@host # 指定端口
ssh -i ~/.ssh/id_rsa user@host # 指定私钥
ssh -L 8080:localhost:80 user@host # 本地端口转发
ssh -R 8080:localhost:80 user@host # 远程端口转发
ssh -D 1080 user@host # 动态转发(SOCKS 代理)
密钥管理
# 生成密钥对
ssh-keygen -t rsa -b 4096
ssh-keygen -t ed25519 # 更现代的算法
ssh-keygen -t rsa -C "comment" -f filename # 自定义注释和文件名
# 复制公钥到远程(需要密码登录时)
ssh-copy-id user@host
ssh-copy-id -i ~/.ssh/id_rsa.pub user@host
# 手动复制
cat ~/.ssh/id_rsa.pub | ssh user@host "mkdir -p ~/.ssh && chmod 700 ~/.ssh && cat >> ~/.ssh/authorized_keys && chmod 600 ~/.ssh/authorized_keys"
SCP / SFTP 文件传输
# scp:基于 SSH 的拷贝
scp file user@host:/path/
scp -r dir/ user@host:/path/
scp user@host:/path/file ./local/
scp -P 2222 file user@host:/path/ # 大写 P 指定端口
# sftp:交互式文件传输
sftp user@host
> put localfile
> get remotefile
> ls
> cd
> exit
配置与排查
# 客户端配置 ~/.ssh/config
Host myserver
HostName 192.168.1.10
User ubuntu
Port 22
IdentityFile ~/.ssh/id_rsa
# 然后就能简写
ssh myserver
# 调试连接
ssh -vvv user@host
七、压缩与解压
tar
# 打包
tar -cvf archive.tar file1 dir1
tar -czvf archive.tar.gz file1 dir1 # gzip 压缩
tar -cjvf archive.tar.bz2 file1 dir1 # bzip2 压缩
tar -cJvf archive.tar.xz file1 dir1 # xz 压缩
# 解包
tar -xvf archive.tar
tar -xzvf archive.tar.gz
tar -xjvf archive.tar.bz2
tar -xJvf archive.tar.xz
# 查看内容不解压
tar -tvf archive.tar
tar -tzvf archive.tar.gz
# 指定解压目录
tar -xzvf archive.tar.gz -C /target/dir
zip / unzip
# 压缩
zip archive.zip file1 file2
zip -r archive.zip dir/ # 递归压缩目录
# 解压
unzip archive.zip
unzip archive.zip -d /target/dir # 指定目录
unzip -l archive.zip # 查看内容
其他格式
gzip file # 压缩(源文件会被替换为 file.gz)
gunzip file.gz
bzip2 file
bunzip2 file.bz2
xz file
unxz file.xz
# 7z(需安装)
7z a archive.7z files...
7z x archive.7z
八、权限管理
基础权限
# 查看权限
ls -l
stat file
# 数字方式(r=4, w=2, x=1)
chmod 755 file # rwxr-xr-x
chmod 644 file # rw-r--r--
chmod -R 755 dir/ # 递归
# 符号方式
chmod u+x file # 属主增加执行权限
chmod g-w file # 属组去掉写权限
chmod o=r file # 其他人只读
chmod a+x file # 所有人加执行权限
# 属主 / 属组
chown user:group file
chown -R user:group dir/
chown user file
chgrp group file
特殊权限
chmod u+s file # SUID - 以属主身份执行
chmod g+s file # SGID - 以属组身份执行
chmod +t dir # Sticky - 仅文件主可删除
# 文件属性(扩展属性)
chattr +i file # 不可修改(root 也无法删除)
chattr +a file # 仅可追加
lsattr file
ACL(访问控制列表)
getfacl file
setfacl -m u:user:rwx file
setfacl -m g:group:rx file
setfacl -x u:user file
setfacl -b file # 清除所有 ACL
九、环境变量
Linux(bash)
# 临时设置(当前会话)
export PATH=$PATH:/opt/myapp/bin
export MY_VAR="hello"
# 永久设置:写入 ~/.bashrc(交互式 shell)
echo 'export PATH=$PATH:/mnt/xxx' >> ~/.bashrc
source ~/.bashrc
# 系统级:写入 /etc/profile.d/myapp.sh(推荐)
echo 'export PATH=$PATH:/opt/myapp/bin' | sudo tee /etc/profile.d/myapp.sh
sudo chmod +x /etc/profile.d/myapp.sh
# 查看环境变量
env
echo $PATH
echo $HOME
printenv PATH
macOS(zsh)
# 临时设置
export PATH=$PATH:/Users/l3126596029/Code/xxx
export MY_VAR="hello"
# 永久设置:写入 ~/.zshrc
echo 'export PATH=$PATH:/Users/l3126596029/Code/xxx' >> ~/.zshrc
source ~/.zshrc
# PATH 路径顺序(登录顺序)
# /etc/zshenv → ~/.zshenv → /etc/zprofile → ~/.zprofile
# → /etc/zshrc → ~/.zshrc → /etc/zlogin → ~/.zlogin
# 仅 GUI 应用可见的环境变量(macOS)
launchctl setenv MY_VAR "hello" # 临时
# 永久:写入 ~/.MacOSX/environment.plist 或 ~/Library/LaunchAgents/*.plist
通用操作
# 取消设置
unset MY_VAR
# 设置代理
export http_proxy=http://proxy:8080
export https_proxy=http://proxy:8080
export no_proxy="localhost,127.0.0.1"
# 查看生效的 PATH 顺序
echo $PATH | tr ':' '\n'
十、包管理
Debian / Ubuntu(apt)
# 更新索引
sudo apt update
# 升级所有包
sudo apt upgrade
sudo apt full-upgrade # 处理依赖变化
# 安装 / 卸载
sudo apt install package
sudo apt remove package
sudo apt purge package # 同时删除配置
sudo apt autoremove # 删除无用的依赖
# 搜索
apt search keyword
apt show package # 查看包信息
# 已安装列表
apt list --installed
dpkg -l | grep package
macOS(Homebrew)
# 安装 Homebrew
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
# 搜索 / 安装 / 卸载
brew search package
brew install package
brew uninstall package
# 更新
brew update
brew upgrade # 升级所有包
brew upgrade package # 升级指定包
# 维护
brew cleanup
brew doctor
brew list # 已安装列表
brew info package # 包信息
brew deps package # 查看依赖
# Cask(GUI 应用)
brew install --cask app-name
brew uninstall --cask app-name
通用工具
# snap(Ubuntu)
sudo snap install package
sudo snap list
# flatpak
flatpak install package
flatpak list
# nix
nix-env -iA nixpkgs.package
nix-env --list-generations
十一、Docker 常用命令
镜像管理
# 搜索 / 拉取
docker search keyword
docker pull image:tag # 默认 tag 为 latest
docker pull nginx:1.25-alpine
# 查看本地镜像
docker images
docker image ls
docker images -a # 包含中间层
# 删除镜像
docker rmi image-id
docker rmi image:tag
docker image rm image-id
docker image prune # 删除 dangling 镜像
docker image prune -a # 删除所有未被使用的镜像
# 镜像标签
docker tag source:tag target:tag
docker tag myapp:1.0 username/myapp:1.0
# 推送 / 拉取(Registry)
docker login
docker login registry.example.com
docker push username/myapp:1.0
docker pull username/myapp:1.0
# 构建镜像
docker build -t myapp:1.0 .
docker build -t myapp:1.0 -f Dockerfile.dev .
docker build --no-cache -t myapp:1.0 .
docker build --build-arg KEY=value -t myapp:1.0 .
# 镜像历史 / 信息
docker history image:tag
docker inspect image:tag
# 导出 / 导入
docker save -o myapp.tar image:tag
docker load -i myapp.tar
# 从容器提交镜像
docker commit -m "msg" container-id new-image:tag
容器管理
# 运行容器
docker run -d --name myapp -p 8080:80 image:tag # 后台运行
docker run -it --name box image:tag /bin/bash # 交互式
docker run --rm -it image:tag sh # 退出后自动删除
docker run -d --name myapp -p 80:80 -v /host:/container image:tag
docker run -d --restart=always --name myapp image:tag # 开机自启
docker run -d -e KEY=value --env-file .env image:tag # 环境变量
docker run -d --network host image:tag # 主机网络
docker run -d --name myapp --hostname myhost image:tag
# 常用参数
# -d 后台运行
# -i, -t 交互式 / 分配 TTY
# --name 指定容器名
# -p host:container 端口映射
# -P 随机端口映射
# -v host:container 挂载卷
# --rm 退出后自动删除
# -e KEY=value 环境变量
# --restart 重启策略(no/always/on-failure/unless-stopped)
# --network 网络模式(bridge/host/none/custom)
# --privileged 特权模式
# --user 运行用户
# --memory 内存限制
# --cpus CPU 限制
# 查看容器
docker ps # 运行中的
docker ps -a # 所有
docker ps -q # 只显示 ID
docker ps -s # 显示大小
# 启动 / 停止 / 重启
docker start container
docker stop container
docker restart container
docker pause container
docker unpause container
# 删除容器
docker rm container
docker rm -f container # 强制(运行中的也能删)
docker container prune # 删除所有已停止的
# 进入容器
docker exec -it container /bin/bash
docker exec -it container sh
docker attach container # 附着到主进程(Ctrl+P+Q 退出)
# 查看日志
docker logs container
docker logs -f container # 实时跟踪
docker logs --tail 100 container
docker logs --since 10m container # 最近 10 分钟
# 容器信息
docker inspect container
docker stats # 资源使用(实时)
docker stats container
docker top container # 容器内进程
docker port container # 端口映射
# 文件拷贝
docker cp file container:/path/
docker cp container:/path/file ./
# 容器内执行命令
docker exec container ls /
# 导出 / 导入容器(保存为镜像)
docker export container > myapp.tar
docker import myapp.tar myapp:1.0
# 重命名
docker rename old-name new-name
网络管理
# 查看网络
docker network ls
docker network inspect bridge
# 创建网络
docker network create mynet
docker network create --driver bridge mynet
docker network create --subnet 10.0.0.0/24 mynet
# 连接 / 断开
docker network connect mynet container
docker network disconnect mynet container
# 删除网络
docker network rm mynet
docker network prune
数据卷管理
# 查看卷
docker volume ls
docker volume inspect myvol
# 创建卷
docker volume create myvol
# 删除卷
docker volume rm myvol
docker volume prune
# 绑定挂载 vs 命名卷
# -v /host/path:/container/path 绑定挂载
# -v myvol:/container/path 命名卷
# --mount type=bind,source=/host,target=/container
# --mount type=volume,source=myvol,target=/container
系统维护
# 查看 Docker 系统状态
docker info
docker version
docker system df # 磁盘占用
docker system events # 实时事件
# 清理
docker system prune # 清理停止的容器、未使用的网络、dangling 镜像
docker system prune -a # 清理所有未使用的镜像
docker system prune --volumes # 同时清理卷
# cgroup / 资源限制
docker run -m 512m --cpus=1.0 image:tag
十二、Docker Compose 常用命令
以下命令在有
docker-compose.yml的目录下执行。
Docker Compose V2(Docker 20.10+)使用docker compose(无连字符)。
V1(独立工具)使用docker-compose(有连字符)。本文以 V2 为例。
基本控制
# 启动服务(前台看日志,Ctrl+C 停止)
docker compose up
# 后台启动
docker compose up -d
docker compose up -d --build # 先构建再启动
# 停止 / 启动 / 重启
docker compose stop
docker compose start
docker compose restart
# 停止并删除容器、网络
docker compose down
docker compose down -v # 同时删除卷
docker compose down --rmi all # 同时删除镜像
# 查看状态
docker compose ps
docker compose ls -a # 所有项目
docker compose top # 进程信息
构建与拉取
# 构建 / 重新构建
docker compose build
docker compose build --no-cache
docker compose build service-name
# 拉取镜像
docker compose pull
# 强制重建
docker compose up -d --force-recreate
docker compose up -d --build --force-recreate
查看日志与进程
# 日志
docker compose logs
docker compose logs -f # 实时跟踪
docker compose logs --tail 100
docker compose logs service-name
docker compose logs -f --since 10m
# 进程
docker compose top
docker compose ps
执行命令
# 在服务容器内执行命令
docker compose exec web ls /
docker compose exec web bash
docker compose exec -u root web bash
# 类似 run 但启动一次性容器
docker compose run --rm web python manage.py migrate
docker compose run --rm web bash
扩缩容
# 启动 N 个实例
docker compose up -d --scale web=3
# 限制范围(注意:仅适用于未指定 replicas 的服务)
docker compose up -d --scale worker=5
配置与验证
# 验证配置
docker compose config
docker compose config -q # 静默模式,只输出错误
# 查看生效的环境变量
docker compose config | grep -A 5 environment
项目与环境
# 指定项目名(默认是目录名)
docker compose -p myproject up -d
# 指定文件
docker compose -f docker-compose.prod.yml up -d
docker compose -f docker-compose.yml -f docker-compose.override.yml up -d
# 指定环境变量文件
docker compose --env-file .env.production up -d
常用 compose 文件片段
# docker-compose.yml 示例
version: '3.8'
services:
web:
image: nginx:alpine
ports:
- "8080:80"
volumes:
- ./html:/usr/share/nginx/html:ro
depends_on:
- api
restart: unless-stopped
networks:
- frontend
api:
build: ./api
environment:
- DATABASE_URL=postgres://user:pass@db:5432/mydb
depends_on:
- db
db:
image: postgres:15
volumes:
- db-data:/var/lib/postgresql/data
environment:
POSTGRES_PASSWORD: secret
networks:
- backend
volumes:
db-data:
networks:
frontend:
backend:
十三、系统信息与监控
系统信息
# 系统概况
uname -a
cat /etc/os-release # Linux 发行版
lsb_release -a # Ubuntu/Debian
cat /etc/redhat-release # CentOS
# 主机信息
hostname
hostnamectl
uptime # 运行时间与负载
# 硬件信息
lscpu # CPU
free -h # 内存
free -m # 内存(MB)
lsblk # 块设备
df -h # 磁盘
lsusb # USB
lspci # PCI
性能监控
# CPU / 内存 / 进程
top
htop
glances # 综合监控
vmstat 1 # 系统整体
mpstat 1 # CPU
# 磁盘 I/O
iostat -x 1
iotop
# 网络
iftop # 实时流量
nethogs # 按进程统计
sar -n DEV 1 # 系统自带
# 内存详情
cat /proc/meminfo
macOS 系统信息
system_profiler SPHardwareDataType # 硬件
system_profiler SPSoftwareDataType # 系统
sw_vers # 系统版本
top
activity monitor # GUI 工具
十四、磁盘管理
磁盘与分区
# 查看磁盘
df -h # 整体使用
df -i # inode 使用
du -sh dir/ # 目录大小
du -h --max-depth=1 dir/ # 子目录大小
ls -lh # 文件大小
# 分区与格式化
lsblk # 块设备列表
fdisk -l # 分区表
parted /dev/sdb print
# 挂载
mount /dev/sdb1 /mnt
umount /mnt
mount | grep sdb # 已挂载列表
# 开机自动挂载(/etc/fstab)
# /dev/sdb1 /mnt/data ext4 defaults 0 2
LVM(逻辑卷管理)
pvs # 物理卷
vgs # 卷组
lvs # 逻辑卷
pvcreate /dev/sdb
vgcreate myvg /dev/sdb
lvcreate -L 10G -n mylv myvg
mkfs.ext4 /dev/myvg/mylv
mount /dev/myvg/mylv /mnt
Swap
# 查看
free -h
swapon --show
# 创建 swap 文件
sudo fallocate -l 2G /swapfile
sudo chmod 600 /swapfile
sudo mkswap /swapfile
sudo swapon /swapfile
# 永久生效
echo '/swapfile none swap sw 0 0' | sudo tee -a /etc/fstab
十五、实用快捷键
Bash / Zsh 通用
Ctrl + C # 中断当前命令
Ctrl + D # 退出当前 shell / EOF
Ctrl + Z # 挂起当前进程(fg/bg 恢复)
Ctrl + L # 清屏(等效 clear)
Ctrl + A # 光标移到行首
Ctrl + E # 光标移到行尾
Ctrl + U # 删除光标到行首
Ctrl + K # 删除光标到行尾
Ctrl + W # 删除光标前一个单词
Ctrl + Y # 粘贴最近一次删除的内容
Ctrl + R # 反向搜索历史命令
Ctrl + G # 退出历史搜索
Ctrl + P / N # 上一条 / 下一条历史
Ctrl + →/← # 按单词移动光标
Tab # 自动补全(按两下显示所有)
!! # 上一条命令
!$ # 上一条命令的最后一个参数
!* # 上一条命令的所有参数
Tmux 常用
tmux # 新建会话
tmux new -s name # 命名会话
tmux ls # 列出
tmux attach -t name # 接入
Ctrl+B D # 分离会话
Ctrl+B % # 垂直分屏
Ctrl+B " # 水平分屏
Ctrl+B 方向键 # 切换面板
Ctrl+B [ # 进入复制模式(q 退出)
附录 A:常用端口速查
| 端口 | 用途 |
|---|---|
| 20/21 | FTP |
| 22 | SSH |
| 23 | Telnet |
| 25 | SMTP |
| 53 | DNS |
| 80 | HTTP |
| 110 | POP3 |
| 143 | IMAP |
| 443 | HTTPS |
| 3306 | MySQL |
| 5432 | PostgreSQL |
| 6379 | Redis |
| 8080 | HTTP 代理 / Tomcat |
| 9200 | Elasticsearch |
| 27017 | MongoDB |
附录 B:常用目录约定
| 路径 | 用途 |
|---|---|
/etc | 系统级配置文件 |
/etc/profile.d/ | 系统级登录脚本(推荐) |
/var/log/ | 日志目录 |
/tmp | 临时文件 |
/opt | 可选 / 第三方应用 |
/srv | 服务数据 |
~ | 当前用户家目录 |
~/.config/ | 用户配置(XDG 标准) |
~/.local/bin/ | 用户本地可执行(XDG 标准) |
附录 C:Vim / Nano 速查
Nano
nano filename
# Ctrl+O 保存
# Ctrl+X 退出
# Ctrl+W 搜索
# Ctrl+K 剪切整行
# Ctrl+U 粘贴
# Ctrl+G 帮助
Vim
vim filename
# i/a/o 进入插入模式
# Esc 回到普通模式
# :w 保存
# :q 退出
# :wq 保存并退出
# :q! 强制退出
# /keyword 向下搜索
# ?keyword 向上搜索
# n / N 下一个 / 上一个匹配
# dd 删除一行
# yy 复制一行
# p 粘贴
# u 撤销
# Ctrl+r 重做
# :set nu 显示行号
# :%s/old/new/g 全文替换
提示:命令繁多但无需死记。常用命令 +
--help是最佳学习路径。
例如docker run --help、systemctl --help、tar --help。
评论