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给所有者加执行权
  • 示例
# 给脚本文件执行权限(所有者可读可写可执行,其他人可读可执行)
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 installapt 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:查看网络连接状态

  • 功能:显示当前网络连接、端口监听等信息(ssnetstat的现代替代,速度更快)。
  • 用法
    • 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服务器命令繁多,但核心操作可归纳为以下几类场景:

  1. 日常维护apt update && apt upgrade(定期更新系统)、df -h(检查磁盘)、free -h(检查内存)、top(监控资源)。
  2. 文件管理ls(列表)、cd(切换目录)、cp/mv(复制/移动)、nano(编辑),注意rm -rf的风险。
  3. 软件管理apt install(安装)、apt remove(卸载),安装前先apt update
  4. 服务管理systemctl start/restart(启停服务)、systemctl status(查状态)、enable(开机自启)。
  5. 网络管理ip addr(查IP)、ss -tuln(查端口)、ufw(防火墙)、ping(连通性)。
  6. 用户权限adduser(创建用户)、usermod -aG sudo(授权)、chmod/chown(权限管理)。

最佳实践

  • 操作前备份重要文件(如cp /etc/nginx/nginx.conf /etc/nginx/nginx.conf.bak)。
  • 执行危险命令(如rmchmod 777)前,再次确认路径和参数。
  • 定期记录操作(如使用history命令查看历史操作),便于问题追溯。
  • 新手建议先在测试环境练习,再操作生产服务器。

掌握这些命令后,即可应对Ubuntu服务器的日常管理、问题排查和基础运维工作,为更复杂的服务器配置打下基础。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值