文章目录
- Ubuntu服务器核心命令手册:从基础操作到系统管理
Ubuntu服务器核心命令手册:从基础操作到系统管理
Ubuntu作为最流行的Linux服务器操作系统之一,其命令行工具是服务器管理的核心。掌握常用命令不仅能提高管理效率,更能应对日常运维中的各种场景。本文系统梳理Ubuntu服务器常用命令,按功能分类详解其用途、用法、示例及注意事项,为服务器管理提供全面参考。
一、系统信息与状态查询命令
这类命令用于获取服务器硬件、系统版本、运行状态等基础信息,是排查问题和了解系统的第一步。
1. uname:查看系统内核信息
- 功能:显示操作系统内核版本、主机名、硬件架构等核心信息。
- 用法:
uname [选项] - 常用选项:
-a:显示所有信息(推荐)-r:仅显示内核版本-m:显示硬件架构(如x86_64)
- 示例:
# 查看完整系统信息
uname -a
# 输出示例:Linux ubuntu-server 5.15.0-78-generic #85-Ubuntu SMP Fri Jul 7 15:25:09 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux
# 仅查看内核版本
uname -r # 输出:5.15.0-78-generic
- 注意事项:内核版本是兼容性参考的重要依据(如驱动、软件依赖)。
2. lsb_release:查看Ubuntu版本信息
- 功能:显示Ubuntu的具体版本、代号等发行版信息(比
uname更贴近Ubuntu系统版本)。 - 用法:
lsb_release [选项] - 常用选项:
-a:显示所有信息-r:仅显示版本号
- 示例:
lsb_release -a
# 输出示例:
# Distributor ID: Ubuntu
# Description: Ubuntu 22.04.3 LTS
# Release: 22.04
# Codename: jammy
- 注意事项:LTS(Long Term Support)版本支持5年,非LTS版本仅9个月,服务器建议使用LTS版本。
3. top/htop:实时监控系统资源
- 功能:动态显示进程占用CPU、内存等资源的情况,是排查性能问题的核心工具。
- 用法:
top(基础版)或htop(增强版,需安装) top关键指标:%CPU:进程CPU使用率%MEM:进程内存使用率PID:进程ID(用于终止进程)load average:系统负载(1/5/15分钟平均值,通常不应长期超过CPU核心数)
- 示例:
# 启动基础监控
top
# 安装并启动增强版监控(推荐)
sudo apt install htop -y
htop
- 操作技巧:
top中按P:按CPU使用率排序top中按M:按内存使用率排序- 按
q退出
- 注意事项:
htop需手动安装,但界面更友好,支持鼠标操作。
4. df:查看磁盘空间使用情况
- 功能:显示文件系统的磁盘空间使用量和剩余空间。
- 用法:
df [选项] - 常用选项:
-h:以人类可读的单位(GB、MB)显示-T:显示文件系统类型(如ext4、xfs)
- 示例:
df -h
# 输出示例:
# Filesystem Size Used Avail Use% Mounted on
# /dev/sda1 40G 15G 23G 39% /
# tmpfs 951M 0 951M 0% /dev/shm
- 注意事项:若
/(根目录)使用率超过90%,需及时清理,避免系统异常。
5. free:查看内存使用情况
- 功能:显示系统物理内存和交换分区(swap)的使用情况。
- 用法:
free [选项] - 常用选项:
-h:以人类可读单位显示-g:以GB为单位显示
- 示例:
free -h
# 输出示例:
# total used free shared buff/cache available
# Mem: 15Gi 2.3Gi 10Gi 152Mi 3.1Gi 13Gi
# Swap: 10Gi 0B 10Gi
- 注意事项:
available(可用内存)比free更能反映实际可分配的内存(包含缓存可释放部分)。
二、用户与权限管理命令
用户和权限管理是服务器安全的基础,合理配置可避免未授权访问和误操作。
1. adduser/useradd:创建用户
- 功能:添加新用户(
adduser是交互式封装,useradd是底层命令,推荐服务器用adduser)。 - 用法:
sudo adduser 用户名 - 示例:
# 创建名为"bloguser"的用户
sudo adduser bloguser
- 交互过程:
- 输入密码(需符合复杂度,至少8位,包含大小写和数字)
- 填写用户信息(全名、电话等,可直接按回车跳过)
- 最后输入
Y确认
- 注意事项:
- 必须用
sudo获取权限 - 避免使用简单用户名(如
admin),降低被暴力破解风险
- 必须用
2. usermod:修改用户属性
- 功能:修改用户的权限、所属组、登录shell等属性。
- 用法:
sudo usermod [选项] 用户名 - 常用选项:
-aG sudo:将用户添加到sudo组(获得管理员权限)-s /sbin/nologin:禁止用户登录(用于系统用户)
- 示例:
# 给"bloguser"赋予sudo权限
sudo usermod -aG sudo bloguser
- 注意事项:添加
sudo权限后,用户需重新登录才能生效。
3. passwd:修改用户密码
- 功能:修改当前用户或指定用户的密码。
- 用法:
- 修改当前用户密码:
passwd - 修改其他用户密码:
sudo passwd 用户名
- 修改当前用户密码:
- 示例:
# 修改bloguser的密码
sudo passwd bloguser
# 按提示输入新密码(输入时无显示,输完回车)
- 注意事项:
- 密码应包含大小写字母、数字和特殊符号(如
P@ssw0rd2023!) - 定期更换密码(建议90天一次)
- 密码应包含大小写字母、数字和特殊符号(如
4. chmod:修改文件/目录权限
- 功能:设置文件或目录的读(r)、写(w)、执行(x)权限,是权限管理的核心命令。
- 用法:
chmod [权限值] 文件名/目录名 - 权限表示:
- 数字法(推荐):r=4,w=2,x=1,总和表示权限(如
755=rwxr-xr-x) - 符号法:
u(所有者)、g(所属组)、o(其他用户),如u+x给所有者加执行权
- 数字法(推荐):r=4,w=2,x=1,总和表示权限(如
- 示例:
# 给脚本文件执行权限(所有者可读可写可执行,其他人可读可执行)
chmod 755 script.sh
# 禁止其他用户访问敏感文件
chmod 600 secret.txt # 仅所有者可读写
- 注意事项:
- 目录必须有执行权限(x)才能进入
- 网站文件通常设置为
644(文件)和755(目录) - 避免给
/etc、/bin等系统目录设置过松权限
5. chown:修改文件/目录所有者
- 功能:更改文件或目录的所有者和所属组,解决“权限不足”问题。
- 用法:
sudo chown [所有者]:[所属组] 文件名/目录名 - 示例:
# 将网站目录权限交给www-data用户(Web服务器默认用户)
sudo chown -R www-data:www-data /var/www/myblog
- 选项说明:
-R表示递归修改目录下所有文件(必须用于目录) - 注意事项:修改系统文件所有者可能导致服务异常,操作前确认路径正确性。
三、文件与目录操作命令
文件管理是日常操作的基础,高效使用这些命令可显著提升工作效率。
1. ls:列出目录内容
- 功能:显示当前或指定目录下的文件和子目录。
- 用法:
ls [选项] [目录路径] - 常用选项:
-l:详细列表(包含权限、大小、修改时间)-a:显示隐藏文件(以.开头的文件)-h:与-l配合,以人类可读单位显示大小-t:按修改时间排序(最新的在前)
- 示例:
# 查看当前目录详细信息(包含隐藏文件)
ls -la
# 查看/var/log目录下的文件,按大小排序
ls -lhS /var/log
- 注意事项:Linux中
.表示当前目录,..表示上级目录。
2. cd:切换目录
- 功能:切换当前工作目录,是最常用的命令之一。
- 用法:
cd 目录路径 - 快捷用法:
cd:直接回到当前用户的家目录(如/home/username)cd ..:进入上级目录cd -:切换到上一次所在的目录
- 示例:
# 进入/tmp目录
cd /tmp
# 从/tmp回到家目录
cd
# 从家目录进入上级目录(即/home)
cd ..
3. mkdir:创建目录
- 功能:创建新目录,支持一次性创建多级目录。
- 用法:
mkdir [选项] 目录名 - 常用选项:
-p:递归创建多级目录(父目录不存在时自动创建) - 示例:
# 创建单个目录
mkdir logs
# 创建多级目录(无需手动先创建parent和child)
mkdir -p /var/www/myblog/static/images
4. cp:复制文件/目录
- 功能:复制文件或目录到指定位置。
- 用法:
cp [选项] 源文件/目录 目标路径 - 常用选项:
-r:递归复制目录(必须用于目录复制)-v:显示复制过程(verbose模式)-i:覆盖前提示(避免误删)
- 示例:
# 复制单个文件到/tmp目录
cp config.py /tmp/
# 复制整个目录(包含子文件)到备份目录
cp -rv /var/www/myblog /var/backups/
- 注意事项:复制目录必须加
-r,否则会报错。
5. mv:移动/重命名文件/目录
- 功能:移动文件/目录到新位置,或重命名(同一目录下的移动即重命名)。
- 用法:
mv [选项] 源 目标 - 示例:
# 重命名文件
mv oldname.txt newname.txt
# 移动目录到另一个位置
mv /tmp/logs /var/www/myblog/
- 注意事项:
mv操作不可逆,移动重要文件前建议备份。
6. rm:删除文件/目录
- 功能:删除文件或目录(危险操作,需格外谨慎)。
- 用法:
rm [选项] 文件/目录 - 常用选项:
-r:递归删除目录(必须用于目录删除)-f:强制删除(不提示,慎用!)-i:删除前提示(安全模式,推荐)
- 示例:
# 删除单个文件(会提示确认)
rm -i oldfile.txt
# 删除空目录
rm -r empty_dir
# 强制删除非空目录(极其危险,确保路径正确!)
rm -rf /path/to/dir # 注意:若路径错误可能删除系统文件!
- 注意事项:
- 禁止使用
rm -rf /或rm -rf *(前者会删除整个系统,后者会删除当前目录所有文件) - 删除重要文件前先备份,或移动到
/tmp(定期自动清理)
- 禁止使用
7. nano/vim:编辑文件
- 功能:命令行文本编辑器,用于修改配置文件、脚本等。
- 用法:
- 简单编辑(推荐新手):
nano 文件名 - 高级编辑:
vim 文件名(需学习基本操作)
- 简单编辑(推荐新手):
nano基本操作:- 打开文件:
nano /etc/nginx/nginx.conf - 编辑:直接输入内容
- 保存:按
Ctrl+O,回车确认 - 退出:按
Ctrl+X
- 打开文件:
- 示例:
# 用nano编辑Flask配置文件
nano /var/www/myblog/config.py
- 注意事项:
- 编辑系统配置文件(如
/etc下的文件)需加sudo - 保存前确认内容正确性(尤其是配置文件,错误可能导致服务启动失败)
- 编辑系统配置文件(如
四、软件包管理命令(APT)
Ubuntu使用APT(Advanced Package Tool)管理软件,以下是核心操作命令。
1. apt update:更新软件源索引
- 功能:从Ubuntu软件源服务器获取最新的软件包列表(不实际更新软件)。
- 用法:
sudo apt update - 示例:
sudo apt update
# 输出会显示各源的更新情况,最后显示"所有软件包均为最新"或可更新数量
- 注意事项:执行
apt install或apt upgrade前必须先运行此命令,否则可能安装旧版本。
2. apt upgrade:升级已安装软件
- 功能:根据
apt update获取的索引,升级所有可更新的软件包。 - 用法:
sudo apt upgrade - 示例:
sudo apt upgrade
# 会列出待升级的软件,输入Y确认开始升级
- 注意事项:
- 升级过程中可能提示配置文件替换,新手建议选
N(保留当前配置) - 升级内核后需重启服务器生效:
sudo reboot
- 升级过程中可能提示配置文件替换,新手建议选
3. apt install:安装软件包
- 功能:从软件源安装指定软件包。
- 用法:
sudo apt install 软件包名 - 示例:
# 安装Nginx服务器
sudo apt install nginx
# 同时安装多个软件
sudo apt install python3-pip mysql-server
- 注意事项:
- 软件包名需准确(可先用
apt search搜索) - 安装过程中会自动解决依赖关系
- 软件包名需准确(可先用
4. apt remove/apt purge:卸载软件
- 功能:
apt remove:卸载软件,但保留配置文件apt purge:彻底卸载(删除软件及配置文件)
- 用法:
sudo apt remove 软件包名或sudo apt purge 软件包名 - 示例:
# 仅卸载软件,保留配置(如需重新安装可恢复配置)
sudo apt remove nginx
# 彻底卸载(包括配置文件,适用于不再使用的软件)
sudo apt purge nginx
5. apt search:搜索软件包
- 功能:根据关键词搜索软件源中的可用软件包。
- 用法:
apt search 关键词 - 示例:
# 搜索Python相关的Web框架
apt search python3 web framework
# 从结果中找到需要的包名(如flask)
五、网络管理命令
服务器网络配置和排查是运维核心,以下命令覆盖常用网络操作。
1. ip:配置网络接口(替代ifconfig)
- 功能:查看和配置网络接口(IP地址、子网掩码等),是现代Linux的推荐工具。
- 用法:
ip [选项] 操作对象 - 常用操作:
ip addr:查看所有网络接口的IP信息ip link set 接口名 up/down:启用/禁用网络接口
- 示例:
# 查看IP地址(重点关注"inet"后的IPv4地址)
ip addr
# 输出中"eth0"或"ens33"通常是主网卡,"lo"是本地回环接口
# 重启网络接口(解决临时网络问题)
sudo ip link set eth0 down
sudo ip link set eth0 up
2. ping:测试网络连通性
- 功能:向目标主机发送ICMP数据包,检测网络是否可达。
- 用法:
ping [选项] 目标IP/域名 - 常用选项:
-c 次数:指定发送包的数量(避免无限循环) - 示例:
# 测试与百度的连通性(发送4个包)
ping -c 4 baidu.com
# 测试与网关的连通性
ping -c 4 192.168.1.1
- 结果解读:
0% packet loss:完全连通100% packet loss:无法连通(检查防火墙或网络配置)
3. netstat/ss:查看网络连接状态
- 功能:显示当前网络连接、端口监听等信息(
ss是netstat的现代替代,速度更快)。 - 用法:
netstat -tuln:查看监听的TCP/UDP端口ss -tuln:同上,推荐使用
- 示例:
# 安装netstat(Ubuntu默认不安装)
sudo apt install net-tools -y
# 查看所有正在监听的端口(确认服务是否正常启动)
netstat -tuln
# 或
ss -tuln
# 输出中"LISTEN"表示端口正在监听,"Local Address"显示"0.0.0.0:80"表示80端口对外开放
- 注意事项:端口监听状态是排查“服务启动但无法访问”问题的关键(如Nginx未监听80端口则无法提供Web服务)。
4. ufw:配置防火墙(简单版)
- 功能:Ubuntu默认的防火墙管理工具,简化iptables配置。
- 用法:
sudo ufw [选项/命令] - 常用操作:
sudo ufw allow 端口:允许指定端口的入站连接sudo ufw status:查看防火墙状态sudo ufw enable:启用防火墙
- 示例:
# 允许SSH(22端口)、HTTP(80端口)、HTTPS(443端口)连接
sudo ufw allow 22/tcp
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
# 启用防火墙
sudo ufw enable
# 查看已配置规则
sudo ufw status
- 注意事项:
- 必须先允许22端口(SSH),否则启用防火墙后可能无法远程连接
- 不需要的端口应关闭(如
sudo ufw deny 3306禁止MySQL远程访问)
六、服务管理命令(systemd)
Ubuntu使用systemd管理系统服务(如Nginx、MySQL),以下是核心命令。
1. systemctl start/stop/restart:控制服务启停
- 功能:启动、停止或重启指定服务。
- 用法:
sudo systemctl [start|stop|restart] 服务名 - 示例:
# 启动Nginx服务
sudo systemctl start nginx
# 重启MySQL服务(配置修改后生效)
sudo systemctl restart mysql
# 停止Flask应用服务
sudo systemctl stop myblog
2. systemctl enable/disable:设置服务开机自启
- 功能:配置服务是否在服务器启动时自动运行。
- 用法:
sudo systemctl [enable|disable] 服务名 - 示例:
# 设置Nginx开机自启
sudo systemctl enable nginx
# 禁止某个临时服务开机自启
sudo systemctl disable temp-service
3. systemctl status:查看服务状态
- 功能:显示服务的运行状态、启动日志等信息,是排查服务问题的核心命令。
- 用法:
sudo systemctl status 服务名 - 示例:
# 查看Nginx服务状态
sudo systemctl status nginx
- 状态解读:
active (running):服务正常运行inactive (dead):服务未运行failed:服务启动失败(需查看日志排查)
- 注意事项:状态输出的最后几行通常包含错误信息,是解决启动失败的关键。
七、总结:Ubuntu服务器命令使用指南
Ubuntu服务器命令繁多,但核心操作可归纳为以下几类场景:
- 日常维护:
apt update && apt upgrade(定期更新系统)、df -h(检查磁盘)、free -h(检查内存)、top(监控资源)。 - 文件管理:
ls(列表)、cd(切换目录)、cp/mv(复制/移动)、nano(编辑),注意rm -rf的风险。 - 软件管理:
apt install(安装)、apt remove(卸载),安装前先apt update。 - 服务管理:
systemctl start/restart(启停服务)、systemctl status(查状态)、enable(开机自启)。 - 网络管理:
ip addr(查IP)、ss -tuln(查端口)、ufw(防火墙)、ping(连通性)。 - 用户权限:
adduser(创建用户)、usermod -aG sudo(授权)、chmod/chown(权限管理)。
最佳实践:
- 操作前备份重要文件(如
cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak)。 - 执行危险命令(如
rm、chmod 777)前,再次确认路径和参数。 - 定期记录操作(如使用
history命令查看历史操作),便于问题追溯。 - 新手建议先在测试环境练习,再操作生产服务器。
掌握这些命令后,即可应对Ubuntu服务器的日常管理、问题排查和基础运维工作,为更复杂的服务器配置打下基础。
767

被折叠的 条评论
为什么被折叠?



