谈谈linux常用命令
光标移动技巧
- Ctrl+a跳到本行的行首,Ctrl+e则跳到页尾
- Ctrl+u删除当前光标前面的文字 ctrl+k-删除当前光标后面的文字
- Ctrl+w 删除当前行, 如果删除错误,使用Ctrl+y进行恢复
- Ctrl+L进行清屏操作
| 快捷键 | 含义 | 最简单的记忆方法 |
|---|---|---|
| Ctrl + A | 到行首 | A = Alphabet 的第一个 → 行首 |
| Ctrl + E | 到行尾 | E = End(结尾) → 行尾 |
| Ctrl + U | 删除光标前 | U = Up(往上拉掉前面) |
| Ctrl + K | 删除光标后 | K = Kill(砍掉后面) |
| Ctrl + W | 删除一个单词 | W = Word(删一个词) |
| Ctrl + Y | 恢复上次删除 | Y = Yank(从剪贴板拉回来) |
| Ctrl + L | 清屏 | L = Look(清屏后看得更清楚) |
which 判断命令安装
- 安装命令技巧,可通过which命令可以判断,判断命令不存在,才安装命令
which pm2 || npm i -g pm2
which pnpm || npm i -g pnpm
grep 命令 搜索技巧
- -i : 忽略大小写
- -r 或 -Rr:递归搜索,用于目录下所有文件
- -c: 统计出现的次数
- -R:递归搜索目录 + 符号链接(软链接)
# 根据域名查找nginx配置文件
grep -R "www.example.com" /etc/nginx/
# 忽略大小写,在file文件中,不区分大小写查询
grep -i "keyword" filename
# 忽略大小写、递归,在src目录中,查询关键字
grep -ir "keyword" ./src
# 统计查询关键字的出现的次数
grep -c "keyword" filename
netstat 端口命令技巧
netstat 是跨平台(Windows/Linux)的网络状态分析工具
查看端口
- window
# 查看所有端口占用
netstat -ano
# 筛选特定端口
netstat -ano | findstr 8080
a => 显示所有连接和侦听端口 (all) n => 以数字形式显示地址和端口号 (number) o => 显示拥有的与每个连接关联的进程 ID (owner)
- linux
# 查看所有端口占用
netstat -tulnp
# 筛选特定端口
netstat -tulnp | grep 8080
# 简单命令
t => 显示 TCP 连接 u => 显示 UDP 连接 l => 仅显示处于 监听(LISTEN) 状态的端口 n => 以数字形式显示地址和端口 -p => 显示对应的 进程名和 PID
cp命令拷贝技巧
-r:递归复制参数。如果源路径是一个目录,此参数会让cp命令递归地复制目录及其所有子文件和子目录。-f:强制覆盖参数。即使目标位置存在同名文件,也会直接覆盖,不会提示确认。
/data/www/vue/dist 复制到 /data/www/project/ 目录下,并覆盖目标目录中已有的文件
cp -rf /data/www/vue/dist /data/www/project/
free 内存命令技巧
- 用于查看服务器的内存情况
# Mem: 16384 12000 400 (精确数值分析)
free -m
# Mem: 16G 12G 400M (可直观、可读性更好)
free -h
| 参数 | 含义 | 最简单的记忆方式 |
|---|---|---|
| -m | 以 MB(Megabytes)显示 | m = MB |
| -h | 人类可读(自动选择 KB/MB/GB) | h = human-readable |
ln 软链接命令技巧
- 用于部署构建的时候切换版本,静态资源通过软链接指向真实路径
# 语法
ln -s [源文件] [目标路径]
# 软链接例子
ln -sfn /var/www/html/releases/20251115/dist /var/www/html/current
ln -sfn /app/releases/v3 /app/current
| 参数 | 作用 |
|---|---|
ln | 创建链接 |
-s | 创建软链接(symbolic link) |
-f | 强制覆盖旧链接 |
-n | 保持链接行为,不跟随目录 |
s=软 (symbolic(软链接) f=强制 (force(强制) n = not follow(不要跟随原链接)
切换版本部署流程
- 1、创建一个新的目录版本
- 2、把打包构建好的资源,拷贝到新的目录版本中
- 3、新的目录版本在通过软链接 指向到nginx的web目录中
cicd命令脚本
# 定义变量赋值的命令 date是linux自带的命令,显示系统时间
VERSION=v$(date +%Y%m%d%H%M%S)
mkdir -p /app/releases/$VERSION
# 上传 dist
cp -r dist/* /app/releases/$VERSION/
# 切换软链接
ln -sfn /app/releases/$VERSION /app/current
# 清理旧版本,只保留 5 个
ls -1dt /app/releases/* | tail -n +6 | xargs rm -rf