如何列出系统中安装的所有应用程序?

如何列出系统中安装的所有应用程序?

我知道,我只需按Super+即可A查看 Ubuntu 中已安装的所有应用程序,但我需要一个命令来列出它们的名称。该命令

dpkg --get-selections | awk '{print $1}'

也不是一个选项,因为它显示所有已安装的软件包,并且包含驱动程序、内核和库。

答案1

我为那些想要以良好的方式使用 bash 的人想出了这个答案。很明显,问题的答案与从 中列出文件有关/usr/share/applications,但问题是ls命令永远不应该被解析过去,我也犯过同样的错误,但现在我明白了,最好的方法是使用循环for来迭代文件,即使我必须使用我珍贵的键盘上的更多键:

for app in /usr/share/applications/*.desktop; do echo "${app:24:-8}"; done

我也在上一个命令中使用了字符串操作操作:删除app前24个字符为/usr/share/applications/和后8个字符为.desktop


更新:

另一个可以找到 Dash 显示的应用程序的地方是~/.local/share/applications/*.desktop。因此您还需要运行以下命令:

for app in ~/.local/share/applications/*.desktop; do echo "${app:37:-8}"; done

为了统一前两个命令,您可以使用:

for app in /usr/share/applications/*.desktop ~/.local/share/applications/*.desktop; do app="${app##/*/}"; echo "${app::-8}"; done

答案2

要获取所有已安装应用程序及其名称的列表,最简单的方法是执行以下操作:

sudo apt-get install aptitude
aptitude -F' * %p -> %d ' --no-gui --disable-columns search '?and(~i,!?section(libs), !?section(kernel), !?section(devel))'

它将为您提供所有已安装软件包的列表,这些软件包不是库,不是内核,不是开发包,如下所示:

* zip -> Archiver for .zip files 
* zlib1g -> compression library - runtime 
* zlib1g-dev -> compression library - development 
* zsh -> shell with lots of features 
* zsh-common -> architecture independent files for Zsh 

它更完整,因为它还列出了不会出现在.desktop文件中的非 GUI 应用程序

答案3

运行以下命令查看所有已安装的应用程序,

ls /usr/share/applications | awk -F '.desktop' ' { print $1}' -

如果要获取所有已安装应用程序的列表,请运行以下命令,

ls /usr/share/applications | awk -F '.desktop' ' { print $1}' - > ~/Desktop/applications.txt

它会将上述命令输出存储到目录applications.txt内的文件中~/Desktop

或者

还可以在终端上运行以下命令来列出已安装的应用程序,

find /usr/share/applications -maxdepth 1 -type f -exec basename {} .desktop \; | sort

要获取文本文件中的列表,请运行以下命令

find /usr/share/applications -maxdepth 1 -type f -exec basename {} .desktop \; | sort > ~/Desktop/applications.txt

所有已安装应用程序的桌面条目都存储在/usr/share/applications目录内,其中文件名的格式为application-name.desktop.desktop从文件名中删除部分将为您提供已安装应用程序的完整列表。

更新:

正如@Radu 所建议的那样,您还可以在~/.local/share/applications目录中找到其他已安装应用程序的桌面条目。

find /usr/share/applications ~/.local/share/applications -maxdepth 1 -type f -exec basename {} .desktop \;

答案4

如果您需要按Super+时显示应用程序列表A,则可以使用ls /usr/share/applications。您唯一要做的就是替换.desktop结尾,这是一个相当简单的任务。我用以下方法完成sed

ls /usr/share/applications | sed s/.desktop// - > installed-apps.txt

但是您可以在收到列表后使用文本编辑器来执行此操作。

相关内容