Linux查看服务器安装了什么?Linux怎么查看已安装软件

在Linux服务器上查看“安装了什么”,核心是使用对应发行版的包管理器命令,比如RPM系用rpm -qa、Debian系用dpkg -l,再结合systemctl、ss等命令查看运行中的服务与端口,如果你搜的是“linux查看服务器安卓了什么”,大概率是“安装”的笔误,下面按真实运维场景展开。

linux查看服务器安装了什么软件?先分清安装来源

Linux装软件不像Windows那样有统一的“程序和功能”面板,同一台服务器上,软件可能来自包管理器、源码编译、二进制压缩包,甚至容器镜像,业内专家指出,生产环境多数软件仍以包管理器安装为主,但手工部署的组件往往藏在/usr/local或/opt下。

包管理器是主要入口

不同发行版对应不同包管理器,这是查看已安装软件的第一站。

  • RPM系:CentOS、RHEL、Fedora、Rocky、AlmaLinux,使用rpm、yum、dnf
  • Debian系:Ubuntu、Debian,使用dpkg、apt
  • 其他:Arch Linux用pacman -Q,openSUSE用zypper se --installed-only

源码编译和二进制包容易被漏掉

包管理器查不到,不代表服务器没装,以下位置需要手动检查:

  • /usr/local/bin、/usr/local/sbin
  • /usr/local/etc、/usr/local/lib
  • /opt目录下的商业软件或独立应用
  • 容器环境中的镜像和容器

centos查看已安装软件命令:RPM系实操

CentOS是很多企业服务器的默认选择,要查它装了什么,rpm -qa是最直接的命令。

基础命令速查

  • rpm -qa:列出所有已安装的RPM包
  • rpm -qa | grep nginx:筛选特定软件
  • rpm -q nginx:查询nginx是否安装,并显示版本
  • rpm -ql nginx:列出该包安装的所有文件路径
  • rpm -qi nginx

    Linux查看服务器安装了什么?Linux怎么查看已安装软件

    :查看包的版本、安装时间、厂商等信息

  • rpm -qa --last:按安装时间倒序排列,最近装的排前面
  • yum list installed:以yum视角列出已安装包
  • dnf list installed:CentOS 8及以上推荐使用

查看安装历史

想确认某个软件是什么时候、通过什么方式装的,可以查历史记录:

  • yum history list
  • dnf history list
  • grep "install" /var/log/yum.log
  • 注意:直接用rpm -ivh安装的包,不会出现在yum history中

RPM系命令对比

命令 作用 适用场景
rpm -qa 列出所有包 快速盘点
rpm -q 包名 查特定包 确认是否安装
rpm -ql 包名 查文件列表 找安装路径
yum list installed 列出已装包 带仓库信息
dnf list installed 同上,新版本 CentOS 8+

ubuntu查看已安装软件列表:Debian系实操

Ubuntu和Debian用dpkg管理软件包。dpkg -l会输出一长串列表,每行开头的ii表示已正确安装。

dpkg与apt命令

  • dpkg -l:列出所有包,信息较详细
  • dpkg -l | grep nginx:筛选nginx相关包
  • dpkg -s nginx:查看包状态和版本
  • dpkg -L nginx:列出包安装的文件
  • apt list --installed:更简洁的已安装列表
  • apt list --installed | grep nginx:筛选特定软件

查看安装日志

Ubuntu下安装记录主要看两个文件:

  • /var/log/dpkg.log:记录包的安装、升级、移除
  • /var/log/apt/history.log

    Linux查看服务器安装了什么?Linux怎么查看已安装软件

    :记录apt操作历史

  • 用grep " install " /var/log/dpkg.log可以筛选安装动作

只输出包名

如果只想拿到干净的包名列表,可以配合awk:

  • dpkg -l | awk '$1=="ii"{print $2}'
  • apt list --installed 2>/dev/null | tail -n +2 | cut -d/ -f1

linux查看服务器安装的服务:从systemd到端口监听

知道装了哪些包,不等于知道哪些服务在跑,服务层面要分开看:已安装、已启动、开机自启。

systemd服务列表

现代Linux基本都用systemd管理服务:

  • systemctl list-unit-files --type=service:列出所有服务单元
  • systemctl list-units --type=service --state=running:只看正在运行的
  • systemctl list-units --type=service --state=enabled:只看开机自启的
  • service --status-all:老系统或兼容场景可用

端口和进程视角

服务最终会体现为进程和端口,这两个命令很实用:

  • ss -tulnp:查看TCP/UDP监听端口及对应进程
  • netstat -tulnp:需要安装net-tools,老习惯可用
  • lsof -i -P -n:查看网络连接与进程
  • ps aux | grep 服务名:确认进程是否存在
  • systemctl status 服务名:查看单个服务状态

开机自启检查

  • systemctl list-unit-files --state=enabled
  • 老系统可查/etc/rc.d/rc.d或使用chkconfig --list

linux怎么查看服务器已安装的软件?进阶场景与避坑

实际运维中,总会遇到包管理器查不到的情况,下面这些场景很常见。

源码编译软件怎么查

源码编译的软件不会进入RPM或dpkg数据库,可以这样找:

  • 检查/usr/local/bin和/usr/local/sbin
  • 检查/opt目录
  • 用find / -name "软件名" 2>/dev/null

    Linux查看服务器安装了什么?Linux怎么查看已安装软件

    搜索可执行文件

  • 查看echo $PATH,确认自定义路径
  • 检查/usr/local/etc下的配置文件

容器和虚拟化环境

如果服务器跑了Docker或Kubernetes,宿主机包管理器看不到容器内的软件:

  • docker ps -a:查看所有容器
  • docker images:查看所有镜像
  • podman ps -a:Podman环境同理
  • kubectl get pods --all-namespaces:K8s集群查看Pod

脚本化快速盘点

可以写一个简单循环,检查常用命令是否存在:

  • for cmd in nginx mysql redis php python3; do which $cmd; done
  • 输出结果为空,说明该命令不在PATH中,但不代表没装,可能路径未加入环境变量

常见误区

  • 只看/usr/bin不够,软件可能装在/usr/local或/opt
  • 包管理器查不到不等于没装,源码编译和容器是盲区
  • snap和flatpak在服务器上较少,但桌面版Ubuntu可能用到
  • 商业软件常放在/opt/软件名,需要单独检查

关于linux查看服务器安装了什么软件的Q&A

Q1:为什么rpm -qa查不到我刚安装的软件?

可能通过源码编译、二进制包或容器方式安装,检查/usr/local、/opt目录,或用which 软件名确认可执行文件是否在PATH中。

Q2:linux查看服务器安装的服务时,如何判断哪些是自启动?

使用systemctl list-unit-files --state=enabled查看,老系统可检查/etc/rc.d/rc.d目录,或运行chkconfig --list。

Q3:有没有一条命令能列出所有已安装软件?

没有通用命令,RPM系用rpm -qa,Debian系用dpkg -l,再结合systemctl和ss查看服务与端口,行业共识认为,组合命令才能覆盖完整视图。

图片来源于AI模型,如侵权请联系管理员。作者:酷小编,如若转载,请注明出处:https://www.kufanyun.com/ask/877480.html

赞 (0)
上一篇 2026年10月1日 16:48
下一篇 2026年10月1日 16:51

相关推荐

  • POSTGRESQL初始化秒杀?快速配置还是常见坑点?

    POSTGRESQL初始化秒杀在秒杀等高并发业务场景中,数据库的快速初始化与高效部署是保障系统上线速度和用户体验的关键,PostgreSQL作为开源关系型数据库,其初始化过程直接影响冷启动时间,本文将从环境准备、核心步骤、高级优化等维度,系统阐述如何实现PostgreSQL的“秒级”初始化,助力高并发场景下的快……

    2026年1月4日
    03290
  • Postman手机抓包SSL证书问题如何解决?遇到证书错误该怎么办?

    Postman手机抓包SSL证书问题解析与实践指南SSL证书问题的典型表现(手机抓包场景下)在Postman手机抓包过程中,SSL证书问题通常以以下形式呈现:请求失败提示:手机端显示“SSL证书无效”“无法验证证书”或“证书已过期”等错误信息,导致请求无法发送;响应数据异常:即使请求成功,返回的数据可能不完整……

    2025年12月29日
    05810
  • 服务器2h1g和2h2g有什么区别,2h1g和2h2g怎么选

    服务器2h1g和2h2g的核心区别在于内存容量:2h2g提供2GB内存,相比2h1g的1GB翻倍,使得多任务处理、内存密集型应用(如数据库、缓存)能稳定运行,而2h1g更适合单进程轻量场景,核心差异:内存与性能边界内存容量对应用的影响- 2h1g(2核CPU+1GB内存)在运行Web服务时,若并发访问超过20个……

    2026年7月23日
    0893
    • 服务器间歇性无响应是什么原因?如何排查解决?

      根源分析、排查逻辑与解决方案服务器间歇性无响应是IT运维中常见的复杂问题,指服务器在特定场景下(如高并发时段、特定操作触发时)出现短暂无响应、延迟或服务中断,而非持续性的宕机,这类问题对业务连续性、用户体验和系统稳定性构成直接威胁,需结合多维度因素深入排查与解决,常见原因分析:从硬件到软件的多维溯源服务器间歇性……

      2026年1月10日
      020
  • 为什么用ftp工具连接不到服务器,ftp连接失败怎么解决

    当FTP工具连不上服务器,超过一半的情况不是服务器宕机,而是端口被拦截或加密模式不匹配,按顺序排查才能找到问题,排查前先分清状况:能ping通但连不上,还是直接超时很多人在群里急问“为什么用ftp工具连接不到服务器”,但描述里只说“连不上”,其实连不上的表现分两种,对应的排查方向完全不同,第一种:提示连接超时……

    2026年9月5日
    0611

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

评论列表(1条)

  • 橙user716的头像
    橙user716 2026年10月1日 16:51

    这篇文章的内容非常有价值,我从中学习到了很多新的知识和观点。作者的写作风格简洁明了,却又不失深度,让人读起来很舒服。特别是系用部分,给了我很多新的思路。感谢分享这么好的内容!