this post was submitted on 28 Apr 2025
60 points (96.9% liked)
Linux
53664 readers
484 users here now
From Wikipedia, the free encyclopedia
Linux is a family of open source Unix-like operating systems based on the Linux kernel, an operating system kernel first released on September 17, 1991 by Linus Torvalds. Linux is typically packaged in a Linux distribution (or distro for short).
Distributions include the Linux kernel and supporting system software and libraries, many of which are provided by the GNU Project. Many Linux distributions use the word "Linux" in their name, but the Free Software Foundation uses the name GNU/Linux to emphasize the importance of GNU software, causing some controversy.
Rules
- Posts must be relevant to operating systems running the Linux kernel. GNU/Linux or otherwise.
- No misinformation
- No NSFW content
- No hate speech, bigotry, etc
Related Communities
Community icon by Alpár-Etele Méder, licensed under CC BY 3.0
founded 5 years ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
I use
~/.local/bin
since by linux standard,~/.local
is a user-level/usr/local
, which is a override level of/usr
~/bin
ends up cluttering the home folderAnother reason to use
~/.local
is you can do things likeAnd then you get your
.local/bin
,.local/share
,.local/include
,.local/lib
and such, just like/usr
but scoped to your user.and it should mostly just work as well.
And if there's other users in the machine, it doesn't fuck things up for others Or if it ends up messing something up, it is user-scoped, so its a lot easier to fix than a bricked system
Prefix can be just $HOME as well.
If I hand write bash scripts, or for those single binary downloads, they'll go into ~/bin. ~/.local is already used by a ton of packages. This helps a ton when it comes to backups or for just finding where I put stuff.
My ~/.local is
283 GB
, it's where podman/docker/etc put containers, it may as well be a system managed folder at that point. My ~/bin is only120 MB
and is a lot simpler to backup/restore/sync to other desktops.In a way it is. But user-level system, as opposed to root-level system.
At that point I'd poke around what's in there, cuz there's absolutely a mess in there
It's really not. Python virtualenv, Steam, libvirt, composer, krita, vulkan, zed, zoxide, systemd, etc. ~/.local is the domain of various installed packages, not my hand crafted scripts.
Another follow up question: Is there any documentation for the linux standard/convention of ~/.local/bin? My initial search about this resulted in nothing which I would call authoritative/definitive.
freedesktop.org defines environment variables that should be used by applications to store their stuff;
[archlinux.org] has a (non-authoritative) summary, but it also provides a [link to the actual specification].
Thank you so much, bookmarked all of your links! :-)
Mostly this, but also, if you're going to manage many scripts in a system for many users, revision control doesn't help that. Either look at packaging them properly for your distro, or using something Ansible to distribute and manage their versioning on the system to make things easier on yourself.
Me, packaging company software to Alpine Packages so that I can just
apk add stuff
Good practice though. It's pretty much a necessity anymore with supply chain attacks becoming such a thing.
Thanks! Do you just put the whole .local/bin under source control, do you link your scripts from somewhere else?