Not knowing where to find anything. Of course, coming from Windows I’m used to there being a program files folder with my programs’ folders, and a documents folder with (often) user settings for those programs. In Linux, everything just seems to be everywhere. What seems to be the ‘documents’ equivalent for the game Factorio is in my user folder in a hidden .factorio, but I’ve to no avail been trying to find out where my ‘documents’ for Workers and Resources are. I’ll find them eventually, I’m sure. In general, I’m looking around a lot, though.
Most of your user's files will be in your home directory: /home/username
(or ~ for short).
Inside of that, some more or less popular programs litter into the root of your directory (like ~/.mozilla
), but the more behaved ones store config files in ~/.config
, and data in ~/.local
(mostly ~/.local/share
).
Flatpak will place data of its apps in ~/.var
.
Other then your home directory, /etc
contains config files for programs across the system (but mostly for background services and admin tools). If you want to make changes, most of them supports putting comments to lines starting with #
. Use that to keep notes on why you changed something, and to keep the previous version of the changed line so that you can more easily recover a bad change.
/usr
contains software, but in a very broad sense because manuals and default congigs often get placed here too. The doesn't have anything to do with users, it's an acronym for a different thing. All directories here are managed by your package manager (zypper on suse), if you edit or delete something zypper will probably undo it at some point. An exception is /usr/local
, it's the same structure but for programs that you install without a package manager, perhaps you built it from source fode, sometimes that's useful too.
/run
is in memory, subdird by user id, programs often put runtime data here. It's lost on reboot.
/tmp
is for temporary files. if it's a tmpfs
filesystem (check with running df -h
) then it's also in memory (and thus very fast, but consumes RAM) and lost on reboot, but I think by default it's persistent on disk without auto cleanup on suse.
/var
holds data for the system. like varoius logs are in /var/log
. those are mostly text files, but systemd's journal is not.
/mnt
and /media
is where other filesystems are mounted. the former is for temporary mounts, but I also mount my other disks and partitions there, and the latter is for e.g. your USB connected portable storage.
Portable storage mounting is often handled by the system, like KDE should show an icon on the taskbar when something is connected, but internal storage mounting is set up in /etc/fstab
. You can read man fstab
if you want to learn how that file works, and feel free to try running man
with other technical keywords you find because chances are good it has a man page. Finally, don't attempt to mount filesystems that were being used by a currently hibernated windows.
Not knowing how to install programs. This is more of a learning-curve thing, obviously. The software centre didn’t contain everything I could find online - for some programs, you could use ‘one click’ in OpenSUSE, but that seems to work more like a self-destruct button: I’ve tried those several times and have always had bad results >.>. I’ve found it’s easiest to install programs just using flatpaks.
Mostly with zypper or YaST Software Management, which are different frontends for the same. If you don't find something, or want to have newer versions, there is Flatpak. Flatpak provides some level of permissions control, but there are leaks especially with an X11 session, so don't install something you don't trust.
If you don't find something in default repos, you can add new ones but be very careful with that, and set repo priorities sensibly, more important repos with a lower number. SUSE has some additional half-official repos on OBS, but there's also a bunch of community repositories managed by a random person on the internet. Be especially careful with the latter because no one officially test these or checks for malware.
OpenSUSE's package management uses RPM packages. Sometimes when a package is not on the main repos, your only choice is to download an .rpm file and install it with rpm -i filename
.
Lastly, for statically built software, you may see that they are available in a tar.gz or tar.xz file (similar to a .zip but more modern). You can just unpack them wherever you see fit and run them, but it's better to have them longer term in subdirs of /usr/local/lib/
, with symlinks to the executables in /usr/local/bin/
.
I have been using suse for a few years now and I also find their oneclick .ymp files very confusing. Firefox cannot open them, you have to download it and open separately.
But then it will offer you to add 2 dozen repositories that you better not add to the system, but it also won't allow selecting one, it will want to add all or nothing.
At this point what I don't understand is what is its purpose, if not fucking up the system?
git hooks! Totally forgot it, that sounds interesting