Linux 命令详解:Debian 系统必备操作指南

Debian 作为最受欢迎的 Linux 发行版之一,以其稳定性、安全性和丰富的软件生态被广泛应用于服务器、桌面和嵌入式系统。掌握 Debian 系统的核心命令是高效管理和维护系统的基础。本文将详细介绍 Debian 环境中最常用的 Linux 命令,涵盖系统信息查询、包管理、文件操作、用户管理、进程控制、网络配置等核心场景,并结合最佳实践和实例,帮助读者快速上手并深入理解命令背后的原理。

目录#

  1. 系统信息查询命令
  2. 包管理命令
  3. 文件与目录操作命令
  4. 用户与组管理命令
  5. 进程管理命令
  6. 网络配置与诊断命令
  7. 系统维护与服务管理
  8. 常见陷阱与最佳实践
  9. 总结
  10. 参考资料

1. 系统信息查询命令#

了解系统状态是管理的第一步。以下命令可帮助你快速获取 Debian 系统的关键信息。

1.1 uname:查看内核信息#

功能:显示操作系统内核版本、主机架构等信息。
常用选项

  • -a:显示所有信息(推荐);
  • -r:仅显示内核版本;
  • -m:显示主机硬件架构(如 x86_64)。

示例

# 查看完整内核信息
uname -a  
# 输出:Linux debian-server 5.10.0-28-amd64 #1 SMP Debian 5.10.209-2 (2024-01-31) x86_64 GNU/Linux
 
# 仅查看内核版本
uname -r  
# 输出:5.10.0-28-amd64

1.2 lsb_release:查看 Debian 版本#

功能:显示发行版具体版本(需安装 lsb-release 包)。
常用选项

  • -a:显示所有版本信息。

示例

# 安装 lsb-release(若未安装)
sudo apt install lsb-release  
 
# 查看 Debian 版本
lsb_release -a  
# 输出:
# Distributor ID: Debian
# Description:    Debian GNU/Linux 11 (bullseye)
# Release:        11
# Codename:       bullseye

1.3 hostname/hostnamectl:查看/修改主机名#

功能hostname 显示当前主机名;hostnamectl 管理主机名(更现代的工具)。

示例

# 查看主机名
hostname  
# 输出:debian-server
 
# 永久修改主机名(需 root)
sudo hostnamectl set-hostname new-server-name  

1.4 uptime:查看系统运行时间#

功能:显示系统启动时间、运行时长、当前登录用户数及系统负载(1/5/15 分钟平均负载)。

示例

uptime  
# 输出:12:34:56 up 2 days, 3h 45m, 2 users,  load average: 0.89, 0.75, 0.60

最佳实践:负载平均值应低于 CPU 核心数(如 4 核 CPU 负载 >4 可能表示过载)。

1.5 df/du:磁盘空间查询#

  • df:查看文件系统级磁盘使用情况(分区容量、已用、可用)。
  • du:查看目录/文件级磁盘占用(单个目录或文件大小)。

常用选项

  • df -h:以人类可读单位(GB/MB)显示;
  • du -sh <目录>:显示目录总大小(-s 汇总,-h 人类可读)。

示例

# 查看所有分区使用情况
df -h  
# 输出:
# Filesystem      Size  Used Avail Use% Mounted on
# /dev/sda1       40G   15G   23G  39% /
# tmpfs           1.9G     0  1.9G   0% /dev/shm
 
# 查看 /var/log 目录大小
du -sh /var/log  
# 输出:2.3G	/var/log

1.6 free:内存使用查询#

功能:显示系统内存(物理内存、交换分区)使用情况。

常用选项

  • -h:人类可读单位;
  • -m:以 MB 为单位。

示例

free -h  
# 输出:
#               total        used        free      shared  buff/cache   available
# Mem:           7.8G        2.1G        3.5G        320M        2.2G        5.2G
# Swap:          2.0G          0B        2.0G

说明available 表示可立即分配给应用的内存(比 free 更准确)。

1.7 其他系统信息命令#

命令功能示例
lscpu查看 CPU 详细信息lscpu
lsblk查看磁盘分区结构lsblk -f(显示文件系统类型)
cat /proc/cpuinfo查看 CPU 核心数、频率等grep "cpu cores" /proc/cpuinfo

2. 包管理命令#

Debian 使用 apt(Advanced Package Tool)作为包管理工具,负责软件的安装、更新、卸载等。掌握 apt 是 Debian 管理的核心。

2.1 apt update:更新软件源索引#

功能:从 /etc/apt/sources.list 中配置的软件源拉取最新的包列表(不升级软件)。

示例

sudo apt update  
# 输出:命中 http://deb.debian.org/debian bullseye InRelease... (显示源更新进度)

最佳实践:安装或升级软件前,务必先执行 apt update,确保获取最新版本信息。

2.2 apt upgrade:升级已安装软件#

功能:根据 apt update 获取的索引,升级所有已安装软件(不删除旧包)。

常用选项

  • -y:自动确认升级(无需手动输入 y);
  • --no-install-recommends:仅安装必要依赖(减少冗余)。

示例

# 升级所有软件(需确认)
sudo apt upgrade  
 
# 自动确认升级
sudo apt upgrade -y  

2.3 apt full-upgrade:智能升级(处理依赖变更)#

功能:升级软件时,可自动处理因依赖冲突需要删除旧包的情况(比 upgrade 更彻底)。

示例

sudo apt full-upgrade -y  

2.4 apt install:安装软件包#

功能:从软件源安装指定包,自动解决依赖关系。

常用选项

  • sudo apt install <包名>:安装单个包;
  • sudo apt install <包1> <包2>:安装多个包;
  • -y:自动确认安装。

示例

# 安装 nginx 服务器
sudo apt install nginx  
 
# 安装 curl 和 wget(多个包)
sudo apt install curl wget -y  

2.5 apt remove/apt purge:卸载软件#

  • apt remove <包名>:卸载软件,但保留配置文件;
  • apt purge <包名>:彻底卸载(删除软件及配置文件)。

示例

# 卸载 nginx(保留配置)
sudo apt remove nginx  
 
# 彻底卸载 nginx(删除配置)
sudo apt purge nginx  

2.6 apt autoremove:清理无用依赖#

功能:卸载因安装其他软件而自动安装、但现在不再需要的依赖包(“孤儿包”)。

示例

sudo apt autoremove -y  

最佳实践:卸载软件后,建议执行 apt autoremove 清理残留依赖。

2.7 apt search/apt show:搜索与查看包信息#

  • apt search <关键词>:搜索包含关键词的包;
  • apt show <包名>:查看包的详细信息(版本、依赖、描述等)。

示例

# 搜索 "text editor" 相关包
apt search "text editor"  
 
# 查看 vim 包信息
apt show vim  
# 输出:Package: vim... Version: 2:8.2.2434-3+deb11u1... Description: Vi IMproved - enhanced vi editor...

2.8 dpkg:底层包管理工具#

功能apt 的底层实现,直接操作 .deb 包文件(如手动安装本地 .deb)。

常用命令

  • dpkg -i <包.deb>:安装本地 .deb 包;
  • dpkg -l <包名>:查看已安装包状态;
  • dpkg -S <文件路径>:查询文件属于哪个包。

示例

# 安装本地下载的 chrome.deb
sudo dpkg -i google-chrome-stable_current_amd64.deb  
 
# 查看 /usr/bin/nginx 属于哪个包
dpkg -S /usr/bin/nginx  
# 输出:nginx-core: /usr/bin/nginx

3. 文件与目录操作命令#

文件系统操作是 Linux 的基础,以下命令覆盖日常文件管理场景。

3.1 ls:列出目录内容#

功能:显示指定目录下的文件和子目录(默认当前目录)。

常用选项

  • -l:长格式(显示权限、所有者、大小、修改时间等);
  • -a:显示隐藏文件(以 . 开头的文件);
  • -h:大小以人类可读单位显示;
  • -t:按修改时间排序(最新在前)。

示例

# 长格式显示当前目录(含隐藏文件)
ls -la  
 
# 按大小降序显示 /var 目录
ls -lhS /var  

3.2 cd/pwd:切换目录与显示路径#

  • cd <目录>:切换到指定目录(cd ~ 切换到 home 目录,cd .. 返回上级目录);
  • pwd:显示当前工作目录的绝对路径。

示例

# 切换到 /tmp 目录
cd /tmp  
 
# 显示当前路径
pwd  
# 输出:/tmp  
 
# 返回 home 目录
cd ~  

3.3 mkdir/rmdir:创建与删除目录#

  • mkdir <目录名>:创建单个目录;
  • mkdir -p <dir1/dir2>:递归创建多级目录;
  • rmdir <目录名>:删除空目录(非空目录需用 rm -r)。

示例

# 创建单个目录
mkdir docs  
 
# 创建多级目录(如 /tmp/project/src)
mkdir -p /tmp/project/src  
 
# 删除空目录
rmdir docs  

3.4 rm:删除文件/目录#

功能:删除文件或目录(危险操作,谨慎使用)。

常用选项

  • -r:递归删除目录(含子文件/目录);
  • -f:强制删除(忽略不存在的文件,不提示);
  • -i:删除前提示确认(安全选项)。

示例

# 删除单个文件(带确认)
rm -i file.txt  
 
# 删除非空目录(强制,无提示)
rm -rf /tmp/old_dir  

警告rm -rf / 会删除系统所有文件,绝对禁止!建议删除前用 ls 确认路径,或使用 -i 选项。

3.5 cp/mv:复制与移动文件#

  • cp <源> <目标>:复制文件/目录;
  • mv <源> <目标>:移动/重命名文件/目录。

常用选项

  • cp -r <源目录> <目标目录>:递归复制目录;
  • cp -v <源> <目标>:显示复制过程(verbose);
  • mv -i <源> <目标>:目标存在时提示覆盖。

示例

# 复制文件到 /tmp
cp /home/user/file.txt /tmp  
 
# 递归复制目录到 /backup
cp -r /home/user/docs /backup  
 
# 重命名文件
mv oldname.txt newname.txt  
 
# 移动文件到上级目录
mv file.txt ../  

3.6 文件内容查看命令#

命令功能示例
cat显示文件全部内容(适合小文件)cat /etc/hosts
more分页显示文件(空格翻页,q 退出)more /var/log/syslog
less交互式分页(支持上下滚动、搜索)less /var/log/syslog(按 /关键词 搜索)
head显示文件前 N 行(默认 10 行)head -5 /etc/passwd(前 5 行)
tail显示文件后 N 行(默认 10 行)tail -f /var/log/nginx/access.log(实时跟踪)
grep按关键词搜索文件内容grep "error" /var/log/syslog

4. 用户与组管理命令#

Linux 是多用户系统,用户与组管理用于控制权限和资源访问。

4.1 useradd:创建用户#

功能:创建新系统用户(需 root 权限)。

常用选项

  • -m:自动创建用户 home 目录(/home/<用户名>);
  • -s:指定默认 shell(如 /bin/bash);
  • -G:添加用户到附加组(多个组用逗号分隔)。

示例

# 创建用户 alice,自动创建 home 目录,指定 bash 为 shell
sudo useradd -m -s /bin/bash alice  
 
# 创建用户 bob,并添加到 sudo 组(获得管理员权限)
sudo useradd -m -G sudo bob  

4.2 passwd:修改密码#

功能:修改用户密码(普通用户可改自己密码,root 可改所有用户密码)。

示例

# 普通用户修改自己密码
passwd  
# 提示输入当前密码,再输入新密码  
 
# root 修改 alice 的密码
sudo passwd alice  
# 直接输入新密码(无需原密码)

4.3 userdel:删除用户#

功能:删除用户(默认不删除 home 目录)。

常用选项

  • -r:删除用户的同时,删除 home 目录和邮件缓存。

示例

# 仅删除用户(保留 home 目录)
sudo userdel alice  
 
# 彻底删除用户及 home 目录
sudo userdel -r alice  

4.4 组管理命令#

命令功能示例
groupadd <组名>创建组sudo groupadd developers
groupdel <组名>删除组sudo groupdel developers
usermod -aG <组名> <用户名>将用户添加到组sudo usermod -aG developers bob
groups <用户名>查看用户所属组groups bob(输出:bob : bob sudo developers)

4.5 chmod/chown:权限与所有者管理#

  • chmod:修改文件/目录的权限(读 r=4、写 w=2、执行 x=1);
  • chown:修改文件/目录的所有者和所属组。

示例

# 给文件所有者添加执行权限(chmod u+x)
chmod u+x script.sh  
 
# 给所有用户添加读写权限(chmod a+rw)
chmod a+rw data.txt  
 
# 修改文件所有者为 alice,所属组为 developers
sudo chown alice:developers project.txt  
 
# 递归修改目录权限(仅所有者可读写执行,组和其他无权限)
sudo chmod -R 700 /home/alice/private  

5. 进程管理命令#

进程是系统运行的核心,掌握进程管理可及时排查资源占用、终止异常进程。

5.1 ps:查看进程快照#

功能:显示当前系统进程的静态快照。

常用选项

  • ps aux:BSD 风格(显示所有用户进程,含详细信息);
  • ps -ef:System V 风格(显示父进程 PPID);
  • ps aux | grep <关键词>:筛选特定进程。

示例

# 查看所有进程(BSD 风格)
ps aux  
 
# 查找 nginx 进程
ps aux | grep nginx  
# 输出:root      1234  0.0  0.1 123456  7890 ?        Ss   10:00   0:00 nginx: master process /usr/sbin/nginx

5.2 top/htop:实时进程监控#

  • top:交互式实时进程监控(默认按 CPU 使用率排序);
  • htoptop 的增强版(支持鼠标操作、颜色显示,需安装 htop 包)。

top 常用操作

  • P:按 CPU 使用率排序;
  • M:按内存使用率排序;
  • k:输入 PID 终止进程;
  • q:退出。

示例

# 启动 top
top  
 
# 安装并启动 htop
sudo apt install htop  
htop  

5.3 kill/pkill:终止进程#

  • kill <PID>:通过进程 ID(PID)终止进程;
  • pkill <进程名>:通过进程名终止进程(更便捷)。

常用信号

  • kill -15 <PID>(默认):发送 SIGTERM 信号(请求进程优雅退出,推荐);
  • kill -9 <PID>:发送 SIGKILL 信号(强制终止,可能导致数据丢失,万不得已时使用)。

示例

# 优雅终止 PID 为 1234 的进程
kill 1234  
 
# 强制终止所有 nginx 进程
pkill -9 nginx  

最佳实践:优先使用 SIGTERMkill <PID>),若进程无响应再用 SIGKILLkill -9)。

5.4 bg/fg/jobs:管理后台进程#

  • command &:将命令放入后台运行(终端关闭后进程会终止);
  • jobs:查看当前终端后台进程;
  • bg <任务号>:将暂停的后台任务恢复运行;
  • fg <任务号>:将后台任务调回前台。

示例

# 后台运行长时间任务(如备份)
tar -czf backup.tar.gz /home &  
 
# 查看后台任务
jobs  
# 输出:[1]+  运行中               tar -czf backup.tar.gz /home &  
 
# 将任务 1 调回前台
fg 1  

6. 网络配置与诊断命令#

网络是服务器对外通信的桥梁,以下命令用于网络状态查询、故障排查。

6.1 ip:网络接口与路由管理#

功能:现代网络配置工具,替代传统的 ifconfigifconfig 已 deprecated)。

常用子命令

  • ip addr:查看网络接口 IP 地址;
  • ip route:查看路由表(默认网关等);
  • ip link set <接口> up/down:启用/禁用网络接口。

示例

# 查看所有接口 IP
ip addr  
# 输出:2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc fq_codel state UP group default qlen 1000
#     inet 192.168.1.100/24 brd 192.168.1.255 scope global eth0
 
# 查看默认网关
ip route  
# 输出:default via 192.168.1.1 dev eth0 proto static  

6.2 ping:测试网络连通性#

功能:通过 ICMP 协议测试与目标主机的连通性。

常用选项

  • -c <次数>:指定发送包数量;
  • -i <间隔>:指定发送间隔(秒)。

示例

# 测试与 Google DNS 的连通性(发送 4 个包)
ping -c 4 8.8.8.8  
# 输出:64 bytes from 8.8.8.8: icmp_seq=1 ttl=118 time=23.4 ms...

6.3 ss/netstat:查看网络连接#

  • ss:现代工具,替代 netstat(更高效,支持更多选项);
  • netstat:传统工具(部分系统需安装 net-tools 包)。

常用选项

  • ss -tuln:查看 TCP/UDP 监听端口(t TCP,u UDP,l 监听,n 数字端口);
  • netstat -tulnp:查看监听端口及对应进程(需 root)。

示例

# 查看所有监听端口(ss)
ss -tuln  
 
# 查看 TCP 连接及进程(netstat,需 root)
sudo netstat -tulnp | grep nginx  
# 输出:tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      1234/nginx: master p

6.4 curl/wget:HTTP 请求与文件下载#

  • curl <URL>:发送 HTTP/HTTPS 请求(支持 GET/POST 等);
  • wget <URL>:下载文件到本地(支持断点续传)。

示例

# 用 curl 获取网页内容
curl https://www.debian.org  
 
# 用 wget 下载文件(保存到当前目录)
wget https://example.com/file.iso  
 
# 断点续传(wget)
wget -c https://example.com/large_file.iso  

7. 系统维护命令#

系统维护确保 Debian 稳定运行,包括服务管理、日志查看、权限控制等。

7.1 sudo/su:权限提升#

  • sudo <命令>:以 root 权限执行单个命令(需用户在 sudo 组);
  • su:切换到 root 用户(需 root 密码,不推荐长期使用);
  • su - <用户名>:切换到指定用户并加载其环境变量。

示例

# 以 root 权限执行 apt update
sudo apt update  
 
# 切换到 root 用户(需输入 root 密码)
su  
 
# 切换到 alice 用户
su - alice  

最佳实践:优先使用 sudo 而非 su,避免长期以 root 身份操作(降低误操作风险)。

7.2 systemctl:服务管理#

功能:控制 systemd 服务(Debian 9+ 默认 init 系统),替代传统 service 命令。

常用操作

命令功能
systemctl start <服务名>启动服务
systemctl stop <服务名>停止服务
systemctl restart <服务名>重启服务
systemctl enable <服务名>设置服务开机自启
systemctl disable <服务名>禁用服务开机自启
systemctl status <服务名>查看服务状态

示例

# 启动并设置 nginx 开机自启
sudo systemctl start nginx  
sudo systemctl enable nginx  
 
# 查看 ssh 服务状态
sudo systemctl status ssh  
# 输出:● ssh.service - OpenBSD Secure Shell server... active (running) since ...

7.3 journalctl:日志查看#

功能:查看 systemd 日志(替代传统 /var/log 下的文本日志)。

常用选项

  • journalctl -u <服务名>:查看指定服务日志;
  • journalctl -f:实时跟踪日志(类似 tail -f);
  • journalctl --since "1 hour ago":查看近 1 小时日志。

示例

# 查看 nginx 服务日志
sudo journalctl -u nginx  
 
# 实时跟踪系统日志
sudo journalctl -f  

7.4 apt clean/apt autoclean:清理缓存#

功能:清理 apt 下载的软件包缓存(位于 /var/cache/apt/archives/)。

  • apt clean:删除所有缓存包;
  • apt autoclean:仅删除过期缓存包(已无法通过源更新的旧包)。

示例

# 清理过期缓存
sudo apt autoclean  
 
# 彻底清理所有缓存(释放空间)
sudo apt clean  

8. 常见陷阱与最佳实践#

8.1 避免这些错误操作#

  1. 忘记 sudo:执行 aptsystemctl 等命令时,缺少 sudo 会提示“权限不足”,需检查用户是否在 sudo 组。
  2. 滥用 rm -rf:删除文件前务必用 ls 确认路径,或添加 -i 选项(删除前提示)。
  3. 升级前未 update:直接执行 apt upgrade 可能导致软件版本不匹配,应先 apt update
  4. 强制终止关键进程:如 systemdsshd 等核心进程,可能导致系统崩溃。

8.2 最佳实践总结#

  • 定期更新系统sudo apt update && sudo apt upgrade -y,保持安全补丁最新。
  • 最小权限原则:日常操作使用普通用户,仅在必要时用 sudo 提升权限。
  • 备份关键数据:如 /etc 配置目录、用户 home 目录,避免误删或故障导致数据丢失。
  • 记录操作:重要操作前记录当前状态(如 cp /etc/sources.list /etc/sources.list.bak),便于回滚。
  • 阅读手册:通过 man <命令> 查看命令完整文档(如 man aptman systemctl)。

9. 总结#

本文详细介绍了 Debian 系统中最常用的 Linux 命令,涵盖系统信息、包管理、文件操作、用户管理、进程控制、网络配置和系统维护等核心场景。掌握这些命令不仅能提高日常运维效率,更能深入理解 Linux 系统的工作原理。

建议读者结合实际场景练习(如安装软件、排查进程占用、配置网络),并通过 man 手册和官方文档持续拓展知识。Debian 的强大之处在于其稳定性和灵活性,而熟练的命令操作是解锁这一潜力的钥匙。

10. 参考资料#

  1. Debian 官方文档
  2. Debian 管理员手册
  3. man 手册(如 man aptman systemctl
  4. Linux 命令大全
  5. APT 包管理指南