我知道,我只能点击Super+A来查看 Ubuntu 中所有已安装的应用程序,但我需要一个命令来列出它们的名称。命令
dpkg --get-selections | awk '{print $1}'
Run Code Online (Sandbox Code Playgroud)
也不是一个选项,因为它显示了所有已安装的软件包,并且包含驱动程序、内核和库。
Rad*_*anu 18
我为想要以良好方式使用 bash 的人提出了这个答案。很明显,问题的答案与来自 的文件列表有关/usr/share/applications
,但问题是ls
永远不应该解析命令。过去,我犯了同样的错误,但现在我了解到最好的方法是使用for
循环来迭代文件,即使我必须使用我宝贵的键盘上的更多键:
for app in /usr/share/applications/*.desktop; do echo "${app:24:-8}"; done
Run Code Online (Sandbox Code Playgroud)
我还用在前面的命令字符串操作的操作:从除去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
Run Code Online (Sandbox Code Playgroud)
要统一前两个命令,可以使用:
for app in /usr/share/applications/*.desktop ~/.local/share/applications/*.desktop; do app="${app##/*/}"; echo "${app::-8}"; done
Run Code Online (Sandbox Code Playgroud)
要获取所有已安装应用程序及其名称的列表,最简单的方法是:
sudo apt-get install aptitude
aptitude -F' * %p -> %d ' --no-gui --disable-columns search '?and(~i,!?section(libs), !?section(kernel), !?section(devel))'
Run Code Online (Sandbox Code Playgroud)
它会给你一个很好的列表,列出所有安装的包,这些包不是库,不是内核,不是像这样的开发包:
* 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
Run Code Online (Sandbox Code Playgroud)
它更完整,因为它还列出了不会出现在.desktop
文件中的非 GUI 应用程序