目录
-
- Linux系统详解与Ubuntu常用指令分类指南
-
- 一、Linux系统概述
- 二、Ubuntu发行版介绍
- 三、Linux指令分类详解
-
- [1. 文件与目录管理命令](#1. 文件与目录管理命令)
- [2. 系统信息与状态监控](#2. 系统信息与状态监控)
- [3. 用户与权限管理](#3. 用户与权限管理)
- [4. 软件包管理](#4. 软件包管理)
- [5. 系统服务与进程管理](#5. 系统服务与进程管理)
- [6. 网络管理与配置](#6. 网络管理与配置)
- [7. 文本处理与编辑](#7. 文本处理与编辑)
- [8. 系统维护与备份](#8. 系统维护与备份)
- [9. 文件系统与存储管理](#9. 文件系统与存储管理)
- [10. 系统维护与优化](#10. 系统维护与优化)
- [11. 其他实用命令](#11. 其他实用命令)
- 四、Linux指令进阶使用技巧
-
- [1. 管道操作符(|)](#1. 管道操作符(|))
- [2. 重定向操作符(>和>>)](#2. 重定向操作符(>和>>))
- [3. 通配符(*和?)](#3. 通配符(*和?))
- [4. 环境变量](#4. 环境变量)
- [5. Shell脚本编写基础](#5. Shell脚本编写基础)
- 五、总结
Linux系统详解与Ubuntu常用指令分类指南
摘要:本文全面介绍了Linux操作系统及其最受欢迎的发行版Ubuntu。首先概述了Linux系统的核心优势,包括开源特性、稳定性、多用户多任务支持、硬件兼容性和安全性。接着详细介绍了Ubuntu发行版的特点、版本选择以及最新的Ubuntu 26.04 LTS版本特性。文章的核心部分是Linux指令分类详解,涵盖了文件与目录管理、系统信息监控、用户权限管理、软件包管理、系统服务与进程管理、网络配置、文本处理、系统维护备份、文件系统管理、系统优化以及其他实用命令等11个类别,每个类别都提供了常用命令的说明和示例。最后还介绍了Linux指令的进阶使用技巧,包括管道操作符、重定向、通配符、环境变量和Shell脚本编写基础。本文适合Linux初学者和中级用户作为日常使用参考手册。
一、Linux系统概述
Linux是一种基于POSIX和UNIX标准的开源操作系统,由芬兰赫尔辛基大学的学生林纳斯·托瓦兹(Linus Torvalds)于1991年10月5日首次发布。严格来说,Linux仅指Linux内核,但通常人们将Linux内核与GNU工具集、软件包管理系统和应用程序的组合称为Linux系统,也就是我们常说的Linux发行版。
Linux的核心优势在于其开源特性,这使得它能够快速迭代、及时修复漏洞,并催生了庞大的开源社区为用户提供技术支持。除此之外,Linux还有以下不可替代的优点:
- 稳定性极强:企业级Linux服务器可实现7×24小时不间断运行,适合金融、互联网等核心业务场景
- 多用户多任务:原生支持多个用户同时登录,每个用户可运行多个进程
- 硬件兼容性广:支持x86、ARM等多种架构,适配从嵌入式设备到超级计算机的全系列硬件
- 完全免费:无论是个人使用还是企业部署,都无需支付任何版权费用,大幅降低使用成本
- 安全可靠:通过严格的权限控制和访问控制机制,提供较高的安全性
Linux的应用场景极为广泛,从个人电脑到服务器、从嵌入式设备到超级计算机,从移动终端(如Android系统基于Linux内核)到物联网设备,都能看到Linux的身影。超过70%的服务器运行在Linux上,主流网站如淘宝、维基百科、GitHub等的服务器均基于Linux系统。
二、Ubuntu发行版介绍
Ubuntu是Linux系统中最受欢迎的发行版之一,由Canonical公司维护,基于Debian系统构建,融合了免费和专有软件。Ubuntu由南非企业家马克·沙托沃思(Mark Shuttleworth)于2004年创立,以"Linux for Human Beings"(人人可用的Linux)为理念,是全球最流行的桌面Linux发行版之一。
Ubuntu的核心优势包括:
- 免费开源:无需支付任何许可费用,适合个人和企业使用
- 易用性:提供图形化界面,与Windows操作体验相似,适合新手
- 社区支持:拥有庞大的社区支持,遇到问题容易找到解决方案
- 安全稳定:病毒和恶意软件极少针对Linux系统
- 软件丰富:拥有数万个免费应用,通过APT包管理系统方便管理
- 长期支持:LTS(长期支持)版本每2年发布一次,提供5年免费支持,适合企业使用
Ubuntu提供多种版本选择:
- 桌面版:适合个人用户和开发人员
- 服务器版:专为服务器环境优化
- Core版:轻量级版本,适用于物联网设备
- 衍生版本:如Kubuntu(KDE桌面环境)、Xubuntu(Xfce桌面环境)、Lubuntu(LXQt桌面环境)等
Ubuntu 26.04 LTS是2026年4月发布的最新长期支持版本,具有以下特性:
- 内核升级至Linux 7.0,提供更好的硬件兼容性
- 桌面环境升级至GNOME 50,支持Wayland显示协议,移除了Xorg桌面会话
- 原生集成NVIDIA CUDA,支持AMD光追性能和ext4文件系统优化
- 内存要求提高至6GB(推荐配置)
- 采用Rust语言重写部分内核驱动和基础工具(如sudo、ls)
- 支持TPM全盘加密,提高系统安全性
三、Linux指令分类详解
Linux指令按功能可分为以下几类,以下以Ubuntu 26.04 LTS为例进行详细介绍:
1. 文件与目录管理命令
这些命令用于创建、删除、复制、移动文件和目录,以及查看文件内容。
| 命令 | 说明 | 示例 |
|---|---|---|
ls |
列出目录内容 | ls -l(详细列表) ls -a(包含隐藏文件) ls -la /home(详细列出/home目录内容) |
cd |
切换目录 | cd /var/www(切换到指定目录) cd ..(返回上一级目录) cd ~(返回用户主目录) |
mkdir |
创建目录 | mkdir new_dir(创建新目录) mkdir -p dir1/dir2/dir3(递归创建多级目录) |
rmdir |
删除空目录 | rmdir old_dir(删除空目录) |
cp |
复制文件或目录 | cp file1.txt file2.txt(复制文件) cp -r dir1/ dir2/(递归复制目录) cp file.txt /backup/(复制文件到指定目录) |
mv |
移动或重命名文件/目录 | mv old.txt new.txt(重命名文件) mv file.txt /newlocation/(移动文件) mv dir1/ dir2/(移动目录) |
rm |
删除文件或目录 | rm file.txt(删除文件) rm -r dir/(递归删除目录) rm -f file.txt(强制删除文件,不提示确认) rm -rf dir/(强制递归删除目录) |
touch |
创建空文件或更新文件时间戳 | touch newfile.txt(创建空文件) touch -a file.txt(仅更新访问时间) |
cat |
查看或合并文件内容 | cat file.txt(显示文件内容) cat file1.txt file2.txt > combined.txt(合并文件) |
more |
分页查看文件内容 | more largefile.txt(分页显示大文件) more +100 file.txt(从第100行开始显示) |
less |
交互式分页查看文件内容 | less file.txt(交互式查看文件) /searchterm(在less中搜索关键词) |
head |
显示文件开头部分 | head file.txt(显示文件前10行) head -n 20 file.txt(显示文件前20行) |
tail |
显示文件末尾部分 | tail file.txt(显示文件后10行) tail -f file.txt(实时跟踪文件更新,常用于查看日志) |
grep |
在文件中搜索文本模式 | grep "error" file.txt(搜索包含"error"的行) grep -r "pattern" /path/(递归搜索目录中的文件) `grep -E "^(root |
find |
搜索文件和目录 | find /path -name "*.log"(搜索指定目录下的.log文件) find ~ -type f -size +100M(查找当前用户目录下大于100MB的文件) find . -user "username"(查找属于指定用户的文件) |
tar |
打包/解包文件 | tar -czvf archive.tar.gz /path/to/dir(打包并压缩目录) tar -xzvf archive.tar.gz -C /target/dir(解包到指定目录) tar -tf archive.tar.gz(查看压缩包内容,不解压) |
zip |
压缩文件为ZIP格式 | zip archive.zip file1.txt file2.txt(压缩多个文件) zip -r archive.zip dir/(递归压缩目录) |
unzip |
解压ZIP格式文件 | unzip archive.zip(解压到当前目录) unzip -d /target/dir archive.zip(解压到指定目录) |
cpio |
打包/解包文件,适合备份 | cpio -o -H newc < filelist > archive.cpio(打包文件) cpio -i -d -v < archive.cpio(解包文件) |
2. 系统信息与状态监控
这些命令用于查看系统信息、资源使用情况和系统状态。
| 命令 | 说明 | 示例 |
|---|---|---|
uname |
显示系统内核信息 | uname -a(显示完整内核信息) uname -r(仅显示内核版本) |
lsb_release |
显示Ubuntu发行版信息 | lsb_release -a(显示完整发行版信息) |
top |
实时显示系统进程和资源使用情况 | top(启动后按q退出) |
htop |
增强版top命令,支持鼠标操作 | htop(需要先安装:sudo apt install htop) |
ps |
查看当前进程状态 | ps aux(显示所有进程) `ps -ef |
free |
显示内存使用情况 | free -m(以MB为单位显示) free -h(以人类可读格式显示) |
df |
显示磁盘空间使用情况 | df -h(以易读格式显示) df -i(显示磁盘inode信息) |
du |
显示目录/文件的磁盘使用情况 | du -sh /var/log(显示目录总大小) du -a --max-depth=1 /path(显示目录下各文件大小,深度1) |
lscpu |
显示CPU信息 | lscpu(显示CPU架构、核心数等信息) |
lspci |
显示PCI设备信息 | lspci(列出所有PCI设备) `lspci |
lsusb |
显示USB设备信息 | lsusb(列出所有USB设备) |
lsblk |
显示块设备信息 | lsblk(显示磁盘和分区信息) lsblk -f(显示文件系统信息) |
ip |
网络配置与信息查看(替代ifconfig) | ip a(显示所有网络接口信息) ip route(显示路由表) ip link set dev eth0 up(启用网络接口) |
ss |
显示套接字统计信息(替代netstat) | ss -tuln(显示所有TCP/UDP监听端口) ss -s(显示套接字统计摘要) |
3. 用户与权限管理
这些命令用于管理用户账户、组和文件/目录权限。
| 命令 | 说明 | 示例 |
|---|---|---|
useradd |
创建新用户 | sudo useradd username(创建用户) sudo useradd -m username(创建用户并创建主目录) |
usermod |
修改用户账户属性 | sudo usermod -aG sudo username(将用户添加到sudo组) sudo usermod -l newusername oldusername(修改用户名) |
userdel |
删除用户账户 | sudo userdel username(删除用户,不删除主目录) sudo userdel -r username(删除用户及其主目录) |
passwd |
管理用户密码 | sudo passwd username(设置用户密码) sudo passwd -l username(锁定用户账户) |
su |
切换用户身份 | su -(切换到root用户) su - username(切换到指定用户) |
sudo |
以超级用户权限执行命令 | sudo apt update(更新软件源) sudo -i(以root用户身份启动交互式shell) |
visudo |
安全地编辑sudoers文件 | sudo visudo(编辑sudo权限配置) |
id |
显示用户和组信息 | id username(显示用户所属组) |
groups |
显示用户所属组 | groups username(显示用户所属组) |
chmod |
修改文件或目录权限 | chmod 755 script.sh(设置文件权限) chmod -R 644 /var/www/html(递归设置目录下所有文件权限) |
chown |
修改文件或目录所有者 | sudo chown username:group file.txt(修改文件所有者和组) sudo chown -R username:group /path/to/dir(递归修改目录所有者和组) |
chgrp |
修改文件或目录所属组 | sudo chgrp developers file.txt(修改文件所属组) |
setfacl |
设置访问控制列表(ACL) | sudo setfacl -m u:username:rwx /path/to/file(为特定用户设置ACL权限) getfacl /path/to/file(查看文件的ACL权限) |
4. 软件包管理
Ubuntu使用APT(Advanced Package Tool)作为软件包管理工具,用于安装、更新和删除软件。
| 命令 | 说明 | 示例 |
|---|---|---|
apt update |
更新软件包列表 | sudo apt update(更新软件源列表) |
apt upgrade |
升级已安装软件包 | sudo apt upgrade(升级所有已安装软件) |
apt dist-upgrade |
智能升级(处理依赖关系) | sudo apt dist-upgrade(智能升级系统) |
apt install |
安装软件包 | sudo apt install software-name(安装指定软件) sudo apt install software1 software2(安装多个软件) |
apt remove |
删除软件包(保留配置文件) | sudo apt remove software-name(删除软件) |
apt purge |
删除软件包及配置文件 | sudo apt purge software-name(彻底删除软件) |
apt autoremove |
删除不再需要的依赖包 | sudo apt autoremove(清理无用依赖) |
apt search |
搜索可用软件包 | apt search web-server(搜索包含关键词的软件包) |
apt show |
显示软件包详细信息 | apt show nginx(显示nginx软件包信息) |
dpkg |
Debian包管理工具(直接管理.deb文件) | dpkg -i package.deb(安装.deb包) dpkg -r package(删除软件包) dpkg -L package(列出软件包安装的文件) |
snap |
Ubuntu应用商店包管理工具 | sudo snap install software-name(安装snap包) sudo snap remove software-name(删除snap包) |
apt-cache |
查询软件包缓存信息 | apt-cache policy software-name(查看软件包版本信息) apt-cache depends software-name(查看软件包依赖关系) |
5. 系统服务与进程管理
这些命令用于管理Linux系统的服务和进程。
| 命令 | 说明 | 示例 |
|---|---|---|
systemctl |
系统服务管理工具 | systemctl start service-name(启动服务) systemctl stop service-name(停止服务) systemctl restart service-name(重启服务) systemctl enable service-name(设置服务开机自启) systemctl disable service-name(禁用服务开机自启) systemctl status service-name(查看服务状态) |
service |
旧式服务管理工具(兼容SysVinit) | sudo service apache2 start(启动Apache服务) sudo service nginx reload(重新加载服务配置) |
kill |
终止进程 | kill 1234(终止指定PID进程) kill -9 1234(强制终止进程) pkill process-name(终止指定名称的进程) |
killall |
终止所有指定名称的进程 | sudo killall佛陀进程(终止所有"佛陀进程") |
bg |
将进程放到后台运行 | command &(直接在后台运行) fg(将后台进程放到前台) |
fg |
将后台进程放到前台运行 | fg %1(将作业ID为1的进程放到前台) |
jobs |
显示后台作业列表 | jobs(显示所有后台作业) jobs -l(显示作业及对应的PID) |
top |
实时显示系统进程和资源使用情况 | top(启动后按q退出) |
htop |
增强版top命令,支持鼠标操作 | htop(需要先安装) |
ps |
查看当前进程状态 | ps aux(显示所有进程) `ps -ef |
journalctl |
查看系统日志 | journalctl -u service-name(查看指定服务日志) journalctl -f(实时跟踪日志) journalctl --since "2026-06-09 12:00:00"(查看特定时间后的日志) |
6. 网络管理与配置
这些命令用于配置和管理网络连接、路由表和服务。
| 命令 | 说明 | 示例 |
|---|---|---|
ping |
测试网络连通性 | ping google.com(测试到Google的连通性) ping -c 4 8.8.8.8(发送4个ICMP包测试) |
curl |
传输数据,支持多种协议 | curl http://example.com(获取网页内容) curl -O http://example.com/file.tar.gz(下载文件并保存为原文件名) curl -X POST -d "data=values" http://api.example.com(发送POST请求) |
wget |
下载文件,支持断点续传 | wget http://example.com/file.zip(下载文件) wget -c http://example.com/largefile.iso(断点续传下载) |
ip |
网络配置与信息查看(替代ifconfig) | ip a(显示所有网络接口信息) ip route add 192.168.2.0/24 via 192.168.1.1(添加路由规则) ip link set dev eth0 down(禁用网络接口) |
ss |
显示套接字统计信息(替代netstat) | ss -tuln(显示所有TCP/UDP监听端口) ss -s(显示套接字统计摘要) ss -o state syn-recv(显示SYN-RECV状态的连接) |
ping6 |
测试IPv6网络连通性 | ping6 ::1(测试IPv6本地回环) ping6 -c 4 2001:db8::1(发送4个ICMPv6包测试) |
traceroute |
跟踪数据包到目标主机的路径 | traceroute example.com(跟踪到example.com的路径) traceroute -T(使用TCP协议追踪) |
traceroute6 |
跟踪IPv6数据包路径 | traceroute6 ::1(跟踪IPv6本地回环路径) |
netstat |
显示网络连接、路由表等信息(部分发行版需安装) | netstat -tuln(显示所有TCP/UDP监听端口) |
nmap |
网络探测和安全扫描(需安装) | sudo nmap -sS 192.168.1.0/24(扫描局域网开放端口) sudo nmap -O example.com(识别远程主机操作系统) |
ssh |
远程登录到其他主机 | ssh username@192.168.1.100(连接到远程主机) ssh -p 2222 username@remotehost(指定非标准端口) |
scp |
安全复制文件(通过SSH) | scp file.txt username@remotehost:/path/(上传文件) scp username@remotehost:/path/file.txt ./(下载文件) |
ssh-keygen |
生成SSH密钥对 | ssh-keygen -t ed25519(生成Ed25519类型密钥) ssh-copy-id username@remotehost(将公钥复制到远程主机) |
ping |
测试网络连通性 | ping -c 4 8.8.8.8(发送4个ICMP包测试) |
ping6 |
测试IPv6网络连通性 | ping6 ::1(测试IPv6本地回环) |
7. 文本处理与编辑
这些命令用于处理和编辑文本文件,是Linux系统管理的重要工具。
| 命令 | 说明 | 示例 |
|---|---|---|
grep |
在文件中搜索文本模式 | grep "error" /var/log/nginx/error.log(搜索日志中的错误信息) grep -r -i "warning" /var/log/(递归搜索日志目录中的警告信息,不区分大小写) |
sed |
流编辑器,用于文本替换和转换 | sed 's/old/new/g' file.txt(替换文件中所有old为new) sed -i.bak 's/pattern/replacement/g' file.txt(直接修改文件,并创建备份) sed -n '10,20p' file.txt(只显示10-20行) |
awk |
文本处理和格式化工具 | awk '{print $1}' /etc/passwd(打印第一列) awk -F: '{print $1}' /etc/passwd(指定冒号为分隔符) awk '/pattern/ {print $0}' file.txt(匹配模式后打印整行) |
less |
交互式分页查看文件内容 | less file.txt(查看文件内容) /search-term(在less中搜索关键词) G(跳转到文件末尾) |
more |
分页查看文件内容 | more file.txt(分页查看文件) space(向下翻页) enter(向下滚动一行) |
tail |
显示文件末尾部分(常用于查看日志) | tail -f /var/log/nginx/access.log(实时跟踪日志更新) tail -n 100 file.txt(显示文件最后100行) |
head |
显示文件开头部分 | head -n 20 file.txt(显示文件前20行) |
cut |
按列提取文本 | cut -d: -f1 /etc/passwd(提取第一列) cut -c1-5 file.txt(提取前5个字符) |
sort |
排序文本行 | sort file.txt(简单排序) sort -r file.txt(逆序排序) sort -u file.txt(去重排序) |
uniq |
报告或忽略重复行 | `cat file.txt |
join |
按字段连接文件 | join file1.txt file2.txt(默认使用空格或制表符分隔) join -t: -1 1 -2 1 file1.txt file2.txt(指定分隔符和连接字段) |
wc |
统计文件行数、单词数和字符数 | wc -l file.txt(统计行数) wc -w file.txt(统计单词数) wc -c file.txt(统计字符数) |
diff |
比较两个文件的差异 | diff file1.txt file2.txt(显示差异) diff -u file1.txt file2.txt(以统一格式显示差异) diff -r dir1/ dir2/(递归比较目录) |
comm |
比较两个已排序文件的公共行和差异行 | comm sorted_file1.txt sorted_file2.txt(比较两个排序文件) comm -1 sorted_file1.txt sorted_file2.txt(仅显示文件2独有行) |
8. 系统维护与备份
这些命令用于系统维护、备份和恢复操作。
| 命令 | 说明 | 示例 |
|---|---|---|
apt update |
更新软件包列表 | sudo apt update(更新软件源列表) |
apt upgrade |
升级已安装软件包 | sudo apt upgrade(升级所有已安装软件) |
apt dist-upgrade |
智能升级(处理依赖关系) | sudo apt dist-upgrade(智能升级系统) |
apt autoremove |
删除不再需要的依赖包 | sudo apt autoremove(清理无用依赖) |
apt clean |
清理已下载的软件包缓存 | sudo apt clean(释放磁盘空间) |
apt full-upgrade |
升级系统,可能自动处理软件包替换 | sudo apt full-upgrade(全面系统升级) |
apt install |
安装软件包 | sudo apt install software-name(安装指定软件) |
apt remove |
删除软件包(保留配置文件) | sudo apt remove software-name(删除软件) |
apt purge |
删除软件包及配置文件 | sudo apt purge software-name(彻底删除软件) |
tar |
打包/解包文件和目录 | tar -czvf backup.tar.gz /path/to/dir(打包并压缩目录) tar -xzvf backup.tar.gz -C /restoration/dir(解包到指定目录) |
zip |
创建ZIP格式压缩包 | zip -r archive.zip /path/to/dir(递归压缩目录) |
unzip |
解压ZIP格式压缩包 | unzip archive.zip -d /target/dir(解压到指定目录) |
rsync |
快速同步文件和目录 | rsync -avz /source/dir/ user@remote:/target/dir/(同步到远程主机) rsync -av --delete /source/dir/ /target/dir/(同步并删除目标目录多余文件) |
mysqldump |
MySQL数据库备份工具 | mysqldump -u username -p db-name > backup.sql(备份数据库) |
mysql |
MySQL数据库导入工具 | mysql -u username -p db-name < backup.sql(从备份恢复数据库) |
crontab |
管理定时任务 | crontab -e(编辑当前用户的定时任务) sudo crontab -e(编辑root用户的定时任务) |
at |
在指定时间运行命令 | `echo "ls -l" |
atq |
查看计划任务队列 | atq(显示所有计划任务) |
atrm |
删除计划任务 | atrm 1234(删除指定ID的任务) |
9. 文件系统与存储管理
这些命令用于管理文件系统、磁盘分区和存储设备。
| 命令 | 说明 | 示例 |
|---|---|---|
mount |
挂载文件系统 | sudo mount /dev/sdb1 /mnt/external(挂载外部磁盘) sudo mount -t ntfs-3g /dev/sdb1 /mnt/windows(挂载Windows格式磁盘) |
umount |
卸载文件系统 | sudo umount /mnt/external(卸载外部磁盘) |
fdisk |
磁盘分区工具 | sudo fdisk /dev/sdb(管理磁盘分区) sudo fdisk -l(列出所有磁盘分区) |
parted |
更强大的磁盘分区工具 | sudo parted /dev/sdb print(显示磁盘分区表) sudo parted /dev/sdb mklabel gpt(创建GPT分区表) |
mkfs |
创建文件系统 | sudo mkfs.ext4 /dev/sdb1(创建ext4文件系统) sudo mkfs.vfat -F32 /dev/sdb1(创建FAT32文件系统) |
fsck |
文件系统检查与修复 | sudo fsck /dev/sda1(检查并修复指定分区) |
mkswap |
创建交换分区 | sudo mkswap /dev/sda2(创建交换分区) |
swapon |
启用交换分区 | sudo swapon /dev/sda2(启用交换分区) |
swapoff |
禁用交换分区 | sudo swapoff /dev/sda2(禁用交换分区) |
blockdev |
管理块设备特性 | sudo blockdev --getsize64 /dev/sda(获取设备大小,以字节为单位) |
losetup |
管理环回设备 | sudo losetup /dev/loop0 /path/to/image(创建环回设备) |
dd |
低级数据复制和转换工具 | sudo dd if=/dev/sda of=/path/to/image bs=4M status=progress(创建磁盘镜像) sudo dd if=/dev/zero of=/path/to/file bs=1M count=100(创建100MB的零文件) |
chroot |
切换根目录环境 | sudo chroot /mnt/live(切换到/mnt/live目录作为根目录) |
10. 系统维护与优化
这些命令用于系统维护、性能优化和调试。
| 命令 | 说明 | 示例 |
|---|---|---|
apt update |
更新软件包列表 | sudo apt update(更新软件源列表) |
apt upgrade |
升级已安装软件包 | sudo apt upgrade(升级所有已安装软件) |
apt dist-upgrade |
智能升级(处理依赖关系) | sudo apt dist-upgrade(智能升级系统) |
apt autoremove |
删除不再需要的依赖包 | sudo apt autoremove(清理无用依赖) |
apt clean |
清理已下载的软件包缓存 | sudo apt clean(释放磁盘空间) |
apt full-upgrade |
升级系统,可能自动处理软件包替换 | sudo apt full-upgrade(全面系统升级) |
apt install |
安装软件包 | sudo apt install software-name(安装指定软件) |
apt remove |
删除软件包(保留配置文件) | sudo apt remove software-name(删除软件) |
apt purge |
删除软件包及配置文件 | sudo apt purge software-name(彻底删除软件) |
top |
实时显示系统进程和资源使用情况 | top(启动后按q退出) |
htop |
增强版top命令,支持鼠标操作 | htop(需要先安装) |
free |
显示内存使用情况 | free -m(以MB为单位显示) |
df |
显示磁盘空间使用情况 | df -h(以易读格式显示) |
du |
显示目录/文件的磁盘使用情况 | du -sh /var/log(显示目录总大小) |
lscpu |
显示CPU信息 | lscpu(显示CPU架构、核心数等信息) |
lspci |
显示PCI设备信息 | lspci(列出所有PCI设备) |
lsusb |
显示USB设备信息 | lsusb(列出所有USB设备) |
lsblk |
显示块设备信息 | lsblk(显示磁盘和分区信息) |
ip |
网络配置与信息查看(替代ifconfig) | ip a(显示所有网络接口信息) |
ip route |
显示和管理路由表 | ip route add 192.168.2.0/24 via 192.168.1.1(添加路由规则) |
11. 其他实用命令
这些命令虽然不属于上述主要类别,但在日常使用中非常实用。
| 命令 | 说明 | 示例 |
|---|---|---|
clear |
清除终端屏幕 | clear(清屏) |
reset |
重置终端状态 | reset(重置终端) |
man |
查看命令手册页 | man ls(查看ls命令手册) man 2 printf(查看printf函数手册) |
help |
查看命令帮助(部分命令支持) | ls --help(查看ls命令帮助) |
date |
显示或设置系统日期和时间 | date(显示当前时间) sudo date -s "2026-06-09 12:00:00"(设置系统时间) |
cal |
显示日历 | cal(显示当前月日历) cal 2026(显示指定年份的日历) |
whoami |
显示当前用户 | whoami(显示当前用户) |
pwd |
显示当前工作目录 | pwd(显示当前路径) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
cd |
切换目录 | cd ~(返回用户主目录) cd /(返回根目录) |
四、Linux指令进阶使用技巧
1. 管道操作符(|)
管道操作符用于将前一个命令的输出作为后一个命令的输入,实现命令间的组合使用。
bash
# 统计系统中运行的进程数量
ps aux | wc -l
# 查找所有以.log结尾的文件,并显示它们的最后10行内容
find /var/log -name "*.log" -exec tail -n 10 {} \;
# 统计Web服务器访问日志中来自不同IP地址的访问次数
cat /var/log/nginx/access.log | awk '{print $1}' | sort | uniq -c | sort -nr
2. 重定向操作符(>和>>)
重定向操作符用于将命令的输出重定向到文件,而不是显示在终端。
bash
# 将命令输出保存到文件(覆盖模式)
ls -l /etc | grep -i "pass" > passwords.txt
# 将命令输出追加到文件末尾(追加模式)
free -m >> system_info.txt
# 同时将标准输出和标准错误重定向到文件
grep "error" /var/log/nginx/error.log > errors.txt 2>&1
# 将命令的输出同时显示在终端并保存到文件
ls -l /home | tee file_list.txt
3. 通配符(*和?)
通配符用于匹配文件名中的特定字符,简化命令输入。
bash
# 删除当前目录下所有以.txt结尾的文件
rm *.txt
# 删除当前目录下所有以.log和.err结尾的文件
rm *.log *.err
# 删除当前目录及子目录下所有以.bak结尾的文件
rm -rv *.bak
# 删除当前目录下所有以"temp"开头的文件
rm temp*
# 删除当前目录下所有以任意字符开头、第二个字符是a的文件
rm ?.a*
4. 环境变量
环境变量用于存储系统和应用程序使用的配置信息。
bash
# 查看所有环境变量
env
# 查看特定环境变量
echo $PATH
echo $HOME
# 临时设置环境变量(仅在当前会话有效)
export MY_VAR="value"
echo $MY_VAR
# 使环境变量在当前用户的所有会话中生效
echo 'export MY_VAR="value"' >> ~/.bashrc
source ~/.bashrc
# 查看命令搜索路径
echo $PATH
# 临时修改命令搜索路径
export PATH=$PATH:/new/path
# 查看当前用户所属组
echo $GROUPS
5. Shell脚本编写基础
Shell脚本是Linux系统管理的重要工具,可以将一系列命令组合起来,实现自动化任务。
bash
#!/bin/bash
# 这是一个简单的备份脚本示例
# 设置备份目录和文件名
BACKUP_DIR="/backup"
DATE=$(date +%Y%m%d)
BACKUP_FILE="system_backup_${DATE}.tar.gz"
# 创建备份目录(如果不存在)
mkdir -p ${BACKUP_DIR}
# 执行备份操作
sudo tar -czvf ${BACKUP_DIR}/${BACKUP_FILE} /etc /var/log /home
# 检查备份文件是否存在
if [ -f "${BACKUP_DIR}/${BACKUP_FILE}" ]; then
echo "备份完成,文件保存在:${BACKUP_DIR}/${BACKUP_FILE}"
else
echo "备份失败,请检查错误信息"
fi
五、总结
Linux系统以其开源、稳定、高效和可定制的特性,成为服务器、云计算、嵌入式和开发环境的首选操作系统。Ubuntu作为最流行的Linux发行版之一,以其易用性、社区支持和长期支持版本而受到广泛欢迎。
掌握常用的Linux指令是Linux系统管理的基础,这些指令按功能可分为文件与目录管理、系统信息与状态监控、用户与权限管理、软件包管理、系统服务与进程管理、网络管理与配置、文本处理与编辑、文件系统与存储管理、系统维护与优化以及其他实用命令等几大类别。每类指令都有其特定的功能和使用场景,熟练掌握这些指令可以显著提高Linux系统的使用效率和管理能力。
通过结合管道、重定向、通配符和环境变量等高级特性,可以进一步增强Linux指令的功能和灵活性,实现更复杂的系统管理任务。而编写Shell脚本则是将这些指令组合使用,实现自动化系统管理的有效途径。
随着Linux技术的不断发展,新的命令和工具也在不断涌现,但本文介绍的常用指令和技巧将帮助您快速入门并建立扎实的Linux系统管理基础。