我知道,我只需按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
但是您可以在收到列表后使用文本编辑器来执行此操作。