It can be exhausting to know just enough to see results that aren't quite what you're after, but not quite know enough to refine it to get what you want. And you're supper close to it. Here's some things to fill the gap (and correct a misunderstanding or two):
gives me a list of over 2000 rows inside of the terminal that i cant apparently search or sort
The dpkg -l
command can be postfixed with a search pattern:
dpkg -l lib*
will return all packages with names that start with lib
||/ Name Version Architecture Description
+++-====================================-=================================-============-===============================>
ii libaa1:amd64 1.4p5-46 amd64 ASCII art library
un libabiword-3.0 <none> <none> (no description available)
ii libaccountsservice0:amd64 0.6.55-0ubuntu12~20.04.7 amd64 query and manipulate user accou>
ii libacl1:amd64 2.2.53-6 amd64 access control list - shared li>
ii libaio1:amd64 0.3.112-5 amd64 Linux kernel AIO access library>
ii libalgorithm-diff-perl 1.19.03-2 all module to find differences betw>
ii libalgorithm-diff-xs-perl 0.04-6 amd64 module to find differences betw>
ii libalgorithm-merge-perl 0.08-3 all Perl module for three-way merge>
ii libamd2:amd64 1:5.7.1+dfsg-2 amd64 approximate minimum degree orde>
ii libamtk-5-0:amd64 5.0.2-1build1 amd64 Actions, Menus and Toolbars Kit>
ii libamtk-5-common 5.0.2-1build1 all Actions, Menus and Toolbars Kit>
un libansicolor-perl <none> <none> (no description available)
ii libapparmor1:amd64 2.13.3-7ubuntu5.3 amd64 changehat AppArmor library
ii libappindicator3-1 12.10.1+20.04.20200408.1-0ubuntu1 amd64 Application Indicators
ii libappstream4:amd64 0.12.10-2 amd64 Library to access AppStream ser>
un libapt-inst1.5 <none> <none> (no description available)
un libapt-pkg <none> <none> (no description available)
un libapt-pkg5.0 <none> <none> (no description available)
ii libapt-pkg6.0:amd64 2.0.10 amd64 package management runtime libr>
un libarchive-tar-perl <none> <none> (no description available)
un libarchive1 <none> <none> (no description available)
ii libarchive13:amd64 3.4.0-2ubuntu1.2 amd64 Multi-format archive and compre>
un libarcus3 <none> <none> (no description available)
ii libargon2-1:amd64 0~20171227-0.2 amd64 memory-hard hashing function - >
dpkg -l ?lib*
will return all packages with names that have lib
in the second third and fourth character positions.
||/ Name Version Architecture Description
+++-========================-========================-============-====================================================
ii glib-networking:amd64 2.64.2-1ubuntu0.1 amd64 network-related giomodules for GLib
ii glib-networking-common 2.64.2-1ubuntu0.1 all network-related giomodules for GLib - data files
ii glib-networking-services 2.64.2-1ubuntu0.1 amd64 network-related giomodules for GLib - D-Bus services
un glib-networking-tests <none> <none> (no description available)
un glibc-doc <none> <none> (no description available)
ii klibc-utils 2.0.7-1ubuntu5.1 amd64 small utilities built with klibc for early boot
un zlib1 <none> <none> (no description available)
ii zlib1g:amd64 1:1.2.11.dfsg-2ubuntu1.5 amd64 compression library - runtime
Then I tried to be smart and do man dpkg -l to see if that has any options on how to use it better, and instead i got another huge text file that i cant search or navigate through properly
Yeah, man pages are overwhelming at times. There are ways to navigate them in the terminal, but I would have to look that up because I pretty much never do that. It's easier for me to just look it up online or open the text in an editor. Looks like you had the same idea with trying man dpkg -l | nano
and man dpkg -l | vscode
and you were so close to the end goal of reading the man page in a text editor!
Here are two ways you can make it work:
For both methods you will need to drop the -l
so just use man dpkg
.
Method 1:
Use the >
operator to redirect the output of man dpkg
to a file:
man dpkg > dpkg.man
(note that the file name after the >
operator above can be anything you want the name of the file to be. I chose dpkg.man
because it seemed like it would be easy to remember for me.)
Then open the file using nano or vscode:
nano dpkg.man
code dpkg.man
(note the name of the package for vscode is code
)
Method 2:
Use the |
operator to send the output of man dpkg
to a nano filebuffer:
man dpkg | nano
Then open file that was saved when nano returned an error message. In your case:
nano nano.12608.save
code nano.12608.save
(This second method feels a bit janky but it works.)
Since you were talking about using apt-get
and apt
to manage packages, I'll suggest nala as a more beginner friendly alternative that is more verbose and explicit about what it is doing. Give nala a try.
I hope this helps and that you can return to learning how to get things done using Linux with renewed resolve now that you've had some time away from it.
Keep asking questions! You're probably learning more than you realize already.