Is there a "list" of everything I can call at the terminal that is dynamic and adapts to the current set of packages/binaries/functions currently installed?
Yes! If you're using bash
as your shell (which I assume as it is the standard shell) you can press TAB
twice which will give you a complete list of commands you can run (beware that it can be quite long).
Edit: I've learned that pressing tab twice without any characters only works when bash uses its default configuration - not Ubuntu's one. So you may want to run bash --norc
. Pressing TAB
twice should work then.
Another alternative would be installing and configuring zsh
or fish
which are nice replacements for bash and offer more functionality. (I prefer fish because it provides a nice autocompletion when you type.)
Where exactly are the various installed packages stored? I've looked in /bin/, but that seems to only be a fraction of what is available to me. /bin/ seems to have a lot of core binaries, but other seemingly core binaries like info and whatis seem to be absent. Likewise, none of my installed packages obtained through apt, nor apt itself, are present.
You can see where your shell is looking for installed programs:
$ echo $PATH
/home/niklas/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/niklas/.gopath/bin:/home/niklas/.gopath/bin
(Note that this may look a bit different for you.)
Today, most executables are located in /usr/bin
as per FHS.
If you want to know where one particular program is located, use which
:
$ which apt
/usr/bin/apt
As I don't have great experience of Windows, I don't think I can answer the last part of the question, but:
$PATH
is the "path environment variable specifying where the system will look for binaries".
- Most programs are installed to
/usr
. (This is split into executables (/usr/bin
), libraries (/usr/lib
), and shared files (/usr/share
). The documentation is in /usr/share/doc
.)
Solution is found in the answer here.
I overwrote Ubuntu 14.04 with a new installation of Ubuntu 18.04, after backing up all of my files.
Best Answer
The easiest solution would be to install Ubuntu on the external SSD.
The "problem" is that Linux does not install programs into a single directory, so, when you install an application it installs pieces in various locations on the hard drive.
See http://brajeshwar.com/2008/filesystem-file-organization-in-linux/
So, generally what you "normally" would do is, as a part of the installation, partition the ssd and mount the various partitions at various locations such as /home or /usr or /var
So you could reinstall or move part of the file system, such as /usr to your ssd. Moving will take longer and be more involved then simply re-installing, making a partition or partitions such as /var and /usr on the ssd. The installer will do this for you.
To move see How can I store /var on a separate partition?
Other options : How to use second HDD as program installation drive path
Your last option would be to compile from source. When compiling you specify the location, again you would make a partition on the ssd and mount it at /usr/local. When compiling you use the --prefix option
See https://stackoverflow.com/questions/8902698/linux-configure-make-prefix
So, if you did not understand what any of that means, you are best off installing Ubuntu onto the ssd.