this post was submitted on 23 Jul 2024
42 points (95.7% liked)
Linux
48145 readers
741 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 have about 25 or so shell scripts I use somewhat regularly and well over 300 aliases. I actually specifically don't wrap package manager related scripts for no reason in particular, but many often do.
My rule for an alias is if the amount of custom flags gets lengthy, and I use it often, yeah it gets an alias. Here's an example of using yt-dlp:
For shell scripts, my rule goes that it should probably have multiple features related around a single idea, that way you can use getopts to create custom flags. For example, I have a script that wraps very basic, but commonly used,
git
commands, chaining the classicadd
,commit -m
, andpush
behind a series ofread
prompts, it has-h
flags for help-l
for a minimal log output,-i
to initialize a new repository (even using github api token to remotely create the repo if you want to use github), and-r
to revert back changes to a specified commit.Generally speaking aliases will get you what you need most of the time in a pinch, but shell scripting is more powerful, versatile, but potentially more time consuming.
Others have rightly pointed out that these abstractions can sometimes negatively impact muscle memory, but IMHO this only really applies if you work as devops or sysadmin, where you are often responsible for running many different Linux servers, but usually this isn't an issue if you have access to the internet and can see your saved aliases and/or scripts (but yeah, instant recall of native commands trumps notes every time).
Additionally, another mentioned using
git
to keep track of your aliases, which I totally agree with. Whatever you do, back up your aliases and shell scripts, ideally with a git repo of some kind. This not only allows you to take your new scripts/aliases with you wherever you go, but also reference them later in case it's not possible to use them on not your machine.Hope this helps. Bash can be crazy powerful if you take the time to learn it, and aliases are a great entry point to recognizing that potential. Here's one of my favorites that combines
mkdir
withcd
:Good luck, and have fun.