Linux 命令详解:Debian 系统必备操作指南
Debian 作为最受欢迎的 Linux 发行版之一,以其稳定性、安全性和丰富的软件生态被广泛应用于服务器、桌面和嵌入式系统。掌握 Debian 系统的核心命令是高效管理和维护系统的基础。本文将详细介绍 Debian 环境中最常用的 Linux 命令,涵盖系统信息查询、包管理、文件操作、用户管理、进程控制、网络配置等核心场景,并结合最佳实践和实例,帮助读者快速上手并深入理解命令背后的原理。
目录#
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-amd641.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: bullseye1.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/log1.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/nginx3. 文件与目录操作命令#
文件系统操作是 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/nginx5.2 top/htop:实时进程监控#
top:交互式实时进程监控(默认按 CPU 使用率排序);htop:top的增强版(支持鼠标操作、颜色显示,需安装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 最佳实践:优先使用
SIGTERM(kill <PID>),若进程无响应再用SIGKILL(kill -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:网络接口与路由管理#
功能:现代网络配置工具,替代传统的 ifconfig(ifconfig 已 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 监听端口(tTCP,uUDP,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 p6.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 避免这些错误操作#
- 忘记
sudo:执行apt、systemctl等命令时,缺少sudo会提示“权限不足”,需检查用户是否在sudo组。 - 滥用
rm -rf:删除文件前务必用ls确认路径,或添加-i选项(删除前提示)。 - 升级前未
update:直接执行apt upgrade可能导致软件版本不匹配,应先apt update。 - 强制终止关键进程:如
systemd、sshd等核心进程,可能导致系统崩溃。
8.2 最佳实践总结#
- 定期更新系统:
sudo apt update && sudo apt upgrade -y,保持安全补丁最新。 - 最小权限原则:日常操作使用普通用户,仅在必要时用
sudo提升权限。 - 备份关键数据:如
/etc配置目录、用户 home 目录,避免误删或故障导致数据丢失。 - 记录操作:重要操作前记录当前状态(如
cp /etc/sources.list /etc/sources.list.bak),便于回滚。 - 阅读手册:通过
man <命令>查看命令完整文档(如man apt、man systemctl)。
9. 总结#
本文详细介绍了 Debian 系统中最常用的 Linux 命令,涵盖系统信息、包管理、文件操作、用户管理、进程控制、网络配置和系统维护等核心场景。掌握这些命令不仅能提高日常运维效率,更能深入理解 Linux 系统的工作原理。
建议读者结合实际场景练习(如安装软件、排查进程占用、配置网络),并通过 man 手册和官方文档持续拓展知识。Debian 的强大之处在于其稳定性和灵活性,而熟练的命令操作是解锁这一潜力的钥匙。
10. 参考资料#
- Debian 官方文档
- Debian 管理员手册
man手册(如man apt、man systemctl)- Linux 命令大全
- APT 包管理指南