I'M rather new to Linux and I've just started with Ubuntu. I'M trying to understand the file system. I see that rather than a traditional drive letter like C: , Linux uses a single /. But I guess my real question is, where are programs stored? In Windows they're stored in X:Program Files\. One other thing, what is the file extension for a program launcher, the linux equivelent of a windows .exe? I was trying to find the launcher to a program but found myself unable to be specific enough to find what I needed with an extension.

OK hopefully this will clear up some of your questions:

The linux executable format
Most binary executable programs in Linux do not have an extension like in Windows (which use the .exe extension).
For example, the 3D program Blender, in windows the executable is called 'blender.exe'. In *nix it's just called 'blender' (no file extension)

The program launchers (I guess these are more or less equivalent to a program shortcut in windows) use the .desktop extension and are basically XML files.

File-system/paths
Regarding the Linux filesystem, the '/' at the start of a path indicates the root/top level of the file-system. It doesn't necessarily refer to any single drive per se.

So in a shell if I typed the following path:

cd /

it would take me to the root of the filesystem. Likewise:

cd /media/

Would take me to the media directory, which is off the root of the file-system. Incidentally, the media directory is where any removable USB storage devices will be listed.

Speaking of which, if we had an 8GB USB stick plugged into our PC with the volume label JAS8GB; to access it from the command line in windows you'd navigate to whatever drive letter it was assigned to:

cd J:\

(or K:\ or whatever!).

To access the device from *nix, as long as the device was mounted (which Ubuntu/Gnome seems to do automatically on insertion of USB drives), you'd need to navigate to:

/media/JAS8GB/

More on paths:
'./' denotes the current directory
'../' denotes the parent directory of the current directory
'~/' is an alias for the current users home directory so:

cd ~/Documents/Notes/

would be equivalent to:

cd /home/jason/Documents/Notes/

Program files
Program files can be found all over the place in the *nix filesystem including:
/bin/ <--- contains core system programs
/usr/bin/ <--- contains installed programs
/usr/games/ <--- contains installed games
/usr/share/applications/ <--- contains program launchers (.desktop files!)

Note: Some of these paths could be specific to Ubuntu. I know some distros put things in slightly different places sometimes!

BTW: In *nix everything is treated as a file. Even things like processes. The /proc/ folder contains any currently running processes!

When coming from windows, the *nix filesystem seems a bit maze-like and difficult to comprehend at first, but once you get used to it and where things are it's quite simple!
I hope that was of some help to you.
Cheers for now,
Jas.

commented: good post :) +1

P.S. There's also the /usr/share/app-install/desktop/ directory which also contains .desktop files for applications and the /usr/share/app-install/icons/ directory which contains icons for installed applications.

Be a part of the DaniWeb community

We're a friendly, industry-focused community of developers, IT pros, digital marketers, and technology enthusiasts meeting, networking, learning, and sharing knowledge.