Ubuntu 24.04 Server 全套运维命令 + nano /vim 文件编辑完整版手册
2026/10/23 22:36:08
Ubuntu 24.04 Server 全套运维命令 + nano /vim 文件编辑完整版手册
一、前置准备1.1 安装 vim(系统默认不带)
1.2 基础概念
第一部分 nano 编辑器(系统预装,优先推荐改配置文件)
1.1 打开 / 新建文件语法
1.2 nano 快捷键(^ 代表 Ctrl;M 代表 Alt)
操作流程示例(改 netplan):sudo nano /etc/netplan/00-installer-config.yaml → 修改内容 → Ctrl+O 保存回车 → Ctrl+X 退出 → sudo netplan try
第二部分 vim 编辑器(老手使用)2.1 打开文件2.2 vim 三大模式末行模式(冒号开头)
环境说明:Ubuntu 24.04 LTS Server(代号 noble),默认无图形界面;自带 nano;vim 需要手动安装;网络管理为 netplan;服务管理 systemd;包管理 apt。约定:xxx 为自定义名称,PID 替换为进程号;修改系统配置绝大多数情况需要加 sudo。
一、前置准备1.1 安装 vim(系统默认不带)
- sudo apt update
- sudo apt install vim -y
- nano:简单上手,适合新手改 yaml、配置文件,底部自带快捷键提示
- vim:功能强大,三种工作模式,适合长期运维人员
- netplan yaml 文件硬性规则:只能空格缩进,禁止 Tab 制表符,缩进数量必须对齐,否则 netplan 报错断网
第一部分 nano 编辑器(系统预装,优先推荐改配置文件)
1.1 打开 / 新建文件语法
- # 打开已有文件,文件不存在则自动新建空白文件
- nano test.txt
- # 修改系统配置,必须加sudo,否则只读无法保存
- sudo nano /etc/netplan/00-installer-config.yaml
- sudo nano /etc/apt/sources.list
- sudo nano /etc/nginx/nginx.conf
| Ctrl+O | Write Out,保存文件,按下后回车确认文件名 |
| Ctrl+X | 退出 nano;有修改会提示是否保存 |
| Ctrl+W | 向下搜索文本 |
| Ctrl+R | 读取外部文件,把别的文件内容导入当前文档 |
| Ctrl+K | 剪切当前一整行;选中区块后剪切选中内容 |
| Ctrl+U | 粘贴剪切板内容 |
| Ctrl+Shift+6 | 开始标记选中区块;移动光标选择范围 |
| Ctrl+C | 显示当前光标所在行号、列号(yaml 排错神器) |
| Alt+U | 撤销上一步操作 |
| Alt+E | 重做,恢复撤销内容 |
| Ctrl+A | 跳到本行开头 |
| Ctrl+E | 跳到本行末尾 |
| Ctrl+G | 打开 nano 帮助文档 |
第二部分 vim 编辑器(老手使用)2.1 打开文件
- vim test.txt
- sudo vim /etc/netplan/00-installer-config.yaml
- 普通模式(默认进入):执行复制、删除、跳转、搜索等命令
- 插入模式:输入文字;普通模式按 i/a/o 进入;Esc 返回普通模式
- 末行命令模式:普通模式按 : 进入,执行保存、退出、替换、设置
- i 在光标前面插入文字
- a 在光标后面插入文字
- o 在光标下方新开一行并进入编辑
- O 在光标上方新开一行并进入编辑
- dd 删除当前整行
- 5dd 从当前行开始,删除连续5行
- yy 复制当前整行
- 3yy 复制连续3行
- p 在光标下方粘贴
- P 在光标上方粘贴
- u 撤销
- Ctrl+r 重做
- /关键词 向下搜索关键词,n跳到下一个匹配,N上一个
- ?关键词 向上搜索关键词
- gg 跳到文档第一行
- G 跳到文档最后一行
- 100G 直接跳到第100行
- x 删除光标所在单个字符
- dw 删除光标位置到单词结尾
- :w 保存文件,不退出
- :w test.bak 另存为 test.bak
- :wq 保存并退出
- :q 退出(文件无修改才能退出)
- :q! 强制退出,放弃所有修改
- :wq! 强制保存退出(只读文件,需要sudo打开)
- :set nu 临时显示行号,方便排错
- :set nonu 关闭行号
- :%s/old/new/g 全文替换 old 为 new,g=全部匹配
- :%s/old/new/gc 全文替换,每一处都询问确认
- :1,50s/old/new/g 只在1~50行范围内替换
- :! ls 不退出vim,临时执行shell命令ls
vim 小坑:粘贴代码容易自动缩进错乱,可以在粘贴前输入 :set paste,粘贴完 :set nopaste
第三部分 文件 & 目录全套操作命令3.1 目录跳转
3.2 列出目录内容 ls
- cd /etc # 进入/etc目录,绝对路径
- cd ./test # 进入当前目录下test文件夹,相对路径
- cd ~ # 回到当前用户家目录 /home/用户名
- cd .. # 返回上一级目录
- cd ../opt # 上一级目录里面的opt
- cd - # 切换回上一次所在目录
- pwd # 查看当前所在完整路径
3.3 创建、删除、移动、复制
- ls # 简单列出文件
- ls -l # 长格式:权限、所有者、大小、时间
- ls -lh # 长格式 + 人性化单位(KB/MB)最常用
- ls -a # 显示所有文件,包含 .开头隐藏文件
- ls -A # 显示隐藏文件,不显示 . 和 ..
- ls -R # 递归遍历所有子目录
- ls -lt # 按修改时间倒序,最新文件在最上面
- ls -lhS # 按文件大小从大到小排序
3.4 查看文件内容
- touch test.txt # 创建空文件;文件已存在则更新修改时间
- mkdir testdir # 创建单个文件夹
- mkdir -p a/b/c/d # 递归创建多级目录,父目录不存在自动创建
- rm test.txt # 删除单个文件,会提示确认
- rm -f test.txt # 强制删除文件,不提示
- rm -r testdir # 删除文件夹,递归删除,有提示
- rm -rf testdir # 强制递归删除文件夹,无提示!高危命令!慎用!
- cp source.txt dest.txt # 复制文件
- cp source.txt /tmp/ # 复制文件到/tmp目录
- cp -r sourcedir destdir # 复制整个文件夹
- cp -p source.txt dest.txt # 复制同时保留原文件权限、时间属性
- mv oldname.txt newname.txt # 重命名文件
- mv test.txt /tmp/ # 移动文件到目标目录
- mv testdir /opt/ # 移动文件夹
3.5 文件查找 find
- cat test.txt # 一次性输出全部内容,适合小文件
- cat -n test.txt # 输出同时显示行号
- less test.txt # 分页阅读器(推荐大日志文件)
- # less快捷键:空格下一页、b上一页、q退出、/搜索
- more test.txt # 简易分页查看
- head test.txt # 默认查看前10行
- head -n 30 test.txt # 查看前30行
- tail test.txt # 默认查看末尾10行
- tail -n 100 test.txt # 查看最后100行
- tail -f /var/log/syslog # 实时跟踪日志输出(生产高频)
- tail -F /var/log/syslog # 实时跟踪,文件轮转后自动继续监听
3.6 权限 & 属主 chmod /chown
- find / -name "*.log" # 全局搜索所有后缀.log文件
- find /etc -name "00-installer-config.yaml"
- find ./ -type f # 只查找普通文件
- find ./ -type d # 只查找文件夹
- find /var/log -size +100M # 查找大于100M的文件
- find /tmp -mtime -1 # 查找24小时内修改过的文件
- find /home -user ubuntu # 查找属于ubuntu用户的文件
3.7 软链接(Linux 快捷方式)
- chmod 755 script.sh # 设置权限 rwxr-xr-x
- chmod +x script.sh # 给文件增加执行权限(脚本必备)
- chmod -x script.sh # 移除执行权限
- chmod 644 test.txt # 普通文本推荐权限 rw-r--r--
- chown ubuntu:ubuntu test.txt # 修改文件所有者:所属组
- chown -R ubuntu:ubuntu ./webfolder # -R 递归修改整个目录下所有文件属主
- chgrp www-data test.txt # 单独修改所属用户组
3.8 压缩解压
- ln -s /opt/nginx/html /var/www/myweb # 创建软链接
- ls -l /var/www/myweb # 查看链接指向
- rm /var/www/myweb # 删除软链接,不要加-r
3.9 文本检索 grep(搭配管道 | 超级常用)
- # tar.gz 压缩解压(原生自带)
- tar -zcvf package.tar.gz ./folder/ # c创建压缩包 z gzip v显示过程 f指定包名
- tar -zxvf package.tar.gz # x解压
- tar -zxvf package.tar.gz -C /opt/ # 解压到指定目录/opt
- # zip 格式,需要先安装
- sudo apt install zip unzip -y
- zip -r web.zip ./web/
- unzip web.zip
- unzip web.zip -d /opt/
3.10 输出重定向
- grep "error" /var/log/syslog
- grep -i "warn" /var/log/syslog # -i 忽略大小写
- grep -n "fail" /var/log/syslog # -n 输出匹配行号
- grep -r "listen" /etc/nginx/ # -r 递归目录下搜索文本
- grep -v "comment" test.txt # -v 反向匹配,排除包含关键词行
第四部分 系统信息、进程、服务管理4.1 系统信息查看
- echo "hello world" > test.txt # > 覆盖写入文件
- echo "add new line" >> test.txt # >> 追加写入,不覆盖原有内容
- ls -lh > list.txt # 把命令输出保存进文件
4.2 进程管理
- uname -r # 内核版本
- uname -a # 完整内核信息
- lsb_release -a # Ubuntu系统版本
- hostname # 主机名
- hostnamectl # 系统详细信息
- uptime # 开机时长、平均负载
- free -h # 内存、swap使用
- df -h # 磁盘分区使用率
- lsblk # 块设备、硬盘分区树状
- fdisk -l # 磁盘分区详情
4.3 systemd 服务管理(所有后台服务统一这套命令)
- ps aux # 查看全部进程(最常用)
- ps -ef # 树形父进程关系
- top # 实时进程监控
- htop # 美化监控,需要安装 sudo apt install htop
- kill 1234 # 正常终止PID=1234进程
- kill -9 1234 # 强制杀死进程,杀不掉的时候用
- pkill nginx # 按进程名字杀死所有同名进程
- pgrep nginx # 只输出nginx所有PID
4.4 journalctl 日志查看(systemd 日志)
- systemctl status nginx # 查看服务状态、最近日志
- systemctl start nginx # 启动服务
- systemctl stop nginx # 停止服务
- systemctl restart nginx # 重启服务
- systemctl reload nginx # 平滑重载配置(不中断连接,nginx支持)
- systemctl enable nginx # 设置开机自启
- systemctl disable nginx # 取消开机自启
- systemctl is-enabled nginx # 查询是否开机自启
- systemctl list-unit-files --type=service # 列出所有服务开机启动状态
第五部分 网络命令 + netplan(Ubuntu24.04 核心)
- journalctl -u nginx # 单独查看nginx服务日志
- journalctl -u nginx -f # 实时滚动跟踪日志
- journalctl -u nginx --since "1 hour ago" # 查看一小时内日志
- journalctl -u nginx --since "2026-10-01 08:00:00"
- journalctl --disk-usage # 查看日志占用磁盘大小
netplan 静态 IP yaml 模板示例
- ip a # 查看网卡、内网IP
- ip route # 查看路由表、网关
- ping baidu.com -c 4 # ping4次停止,测试外网连通
- ss -tulnp # 查看所有监听端口(替代netstat)
- curl ifconfig.me # 获取公网出口IP
- curl ip.sb
- # netplan网络配置
- ls /etc/netplan/ # 先看yaml配置文件名
- sudo nano /etc/netplan/00-installer-config.yaml
- sudo netplan try # 试应用配置!120秒无确认自动回滚,防SSH断网【强烈推荐】
- sudo netplan apply # 正式应用配置
- sudo netplan --debug apply # 带调试信息,排错用
5.1 ufw 防火墙
- network:
- ethernets:
- ens33:
- addresses: [192.168.1.100/24]
- gateway4: 192.168.1.1
- nameservers:
- addresses: [223.5.5.5, 223.6.6.6]
- version: 2
第六部分 APT 软件包管理
- sudo ufw status verbose
- sudo ufw enable
- sudo ufw disable
- sudo ufw allow 80/tcp
- sudo ufw allow 443/tcp
- sudo ufw allow 'Nginx HTTP'
- sudo ufw allow ssh
- sudo ufw delete allow 80/tcp
- sudo ufw reload
第七部分 用户管理
- sudo apt update # 更新软件源索引清单
- sudo apt upgrade -y # 升级本机所有已安装包
- sudo apt full-upgrade -y # 完整升级,会自动增减依赖(服务器推荐)
- sudo apt install nginx -y
- sudo apt search nginx
- sudo apt show nginx # 查看软件包详情
- sudo apt remove nginx # 卸载,保留配置文件
- sudo apt purge nginx # 卸载+删除配置文件
- sudo apt autoremove -y # 清理无用孤立依赖包
- sudo apt autoclean # 清理旧缓存安装包
- sudo apt list --installed # 列出本机全部已经安装软件
- sudo apt list --upgradable # 查看哪些包可以升级
第八部分 辅助:帮助命令
- sudo adduser testuser # 创建新用户,交互式设置密码
- sudo usermod -aG sudo testuser # 加入sudo管理员组
- id testuser # 查看用户uid、所属组
- passwd testuser # 修改用户密码
- sudo passwd root # 设置root密码(不推荐直接root远程登录)
- sudo deluser testuser # 删除用户,保留家目录
- sudo deluser --remove-home testuser # 删除用户+同时删除家目录
第九部分 高频运维最佳实践 & 避坑清单
- man ls # 打开官方手册文档(q退出)
- ls --help # 简短帮助信息
- command -v nginx # 查看命令程序所在路径
- which nginx
- whereis nginx
- 修改 netplan yaml:优先 sudo netplan try,不要直接 apply,改错直接断 SSH
- 编辑系统配置,不加 sudo 只能只读,保存失败
- yaml 文件只能空格缩进,Tab 会解析失败
- rm -rf 高危,执行前一定要核对路径,不要直接在根目录测试
- 线上服务重载配置优先 systemctl reload,而不是 restart,减少中断
- 查看日志优先 journalctl -u xxx -f 或者 tail -F
- 复制粘贴大段配置到 vim,先开启 :set paste 防止格式错乱