I'm new to Ubuntu and would like to know where I can find the location of program files for programs installed from the Ubuntu Software Center or the Terminal.
Ubuntu – find the location of folders for installed programs
filesystem
Related Solutions
The complete answer is to check out the Filesystem Hierachy Standard documentation on what stuff goes where.
But in your case, if you want to know where a particular executable is (for example firefox) use
which firefox
And you will get the full path like this
/usr/bin/firefox
Should I install skype to my /home/me/ directory (or a subdirectory of that)
You shouldn't install Skype manually. Just download and install the ".deb" package.
Should it be installed in system apps location (where is that? /bin? /usr/bin?)
The apps are stored normally in /usr/bin or /usr/lib http://ubuntuforums.org/archive/index.php/t-818509.html
/usr/bin
This directory contains the vast majority of binaries on your system. Executables in this directory vary widely. For instance vi, gcc,
gnome-session and mozilla and are all found here./usr/lib
This directory contains program libraries. Libraries are collections of frequently used program routines.
So apache is installed... (in some location). Do each users public html folder go in their /home/username/public directory? or a created /home/username/public_html directory? or does it go where apache is installed
It should go where apache is installed (normally the www directory). However, you can follow this guide if you want to achieve something else: http://httpd.apache.org/docs/2.4/howto/public_html.html
Follow this guide if you want to learn more about the "how" and "where" of an apache installation: http://httpd.apache.org/docs/2.4/install.html
/usr/local
The original idea behind '/usr/local' was to have a separate ('local') '/usr' directory on every machine besides '/usr', which might be just mounted read-only from somewhere else. It copies the structure of '/usr'. These days, '/usr/local' is widely regarded as a good place in which to keep self-compiled or third-party programs. The /usr/local hierarchy is for use by the system administrator when installing software locally. It needs to be safe from being overwritten when the system software is updated. It may be used for programs and data that are shareable amongst a group of hosts, but not found in /usr. Locally installed software must be placed within /usr/local rather than /usr unless it is being installed to replace or upgrade software in /usr.
Unrelated.. where should I put downloaded media (music, movies, etc)? Can other users access these by default?
It's normally in /home/$username/Downloads
. Other users can't access these files.
Further information: http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/home.html
/home is a fairly standard concept, but it is clearly a site-specific filesystem. Different people prefer to place user accounts in a variety of places. This section describes only a suggested placement for user home directories; nevertheless we recommend that all FHS-compliant
distributions use this as the default location for home directories.
On small systems, each user's directory is typically one of the many
subdirectories of /home such as /home/smith, /home/torvalds,
/home/operator, etc. On large systems (especially when the /home
directories are shared amongst many hosts using NFS) it is useful
to subdivide user home directories. Subdivision may be accomplished by using subdirectories such as /home/staff, /home/guests, /home/students, etc. The setup will differ from host to host. Therefore, no program should rely on this location.If you want to find out a user's home directory, you should use the getpwent(3) library function rather than relying on /etc/passwd because user information may be stored remotely using systems such as NIS.
User specific configuration files for applications are stored in the user's home directory in a file that starts with the '.' character
(a "dot file"). If an application needs to create more than one dot
file then they should be placed in a subdirectory with a name starting with a '.' character, (a "dot directory"). In this case the
configuration files should not start with the '.' character.It is recommended that apart from autosave and lock files programs
should refrain from creating non dot files or directories in a home
directory without user intervention.
From tldp
If I install a program through software center or apt-get, where do they go automatically? Does the package determine this
Yes it does. As already mentioned it should be in /usr/bin or /usr/lib. However, if you are installing applications manually it's often best practice to use /opt
.
http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/opt.html
https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html
Is there some document available I can read that talks about where ubuntu (or linux in general, i guess) puts stuff? My google attemps lead to explanations of ubuntu filesystem instead of where things go inside of the filesystem. A link would be appreciated.
http://www.tldp.org/LDP/Linux-Filesystem-Hierarchy/html/
https://www.debian.org/doc/manuals/debian-faq/ch-pkg_basics.en.html
https://en.wikibooks.org/wiki/LPI_Linux_Certification/Create_Partitions_And_Filesystems
https://en.wikibooks.org/wiki/LPI_Linux_Certification (in general - LPIC information)
Best Answer
on the command line, you can use
dpkg --listfiles packagename
. For instance,dpkg --listfiles firefox
. If you want to see what files a package contains without installing it, then you can install apt-file and use that.But you really shouldn't mess with it. There is usually no reason to manually interfere with the contents of a package. All configuration files for normal applications are placed in the users home directory. You don't have savegames in
C:\Programfiles\Appname\savegames
, for instance. They would be placed in/home/username/.local/share/appname/savegames
. That way, if you move your home directory to another machine, it keeps all configurations and user data.