this post was submitted on 01 Apr 2026
37 points (100.0% liked)

Linux

64546 readers
217 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

Related Communities

Community icon by Alpár-Etele Méder, licensed under CC BY 3.0

founded 6 years ago
MODERATORS
 

Does anybody else have a library of saved commands/scripts? What's in it? How do you organize it? Is there anything you'd want to share that other people might find helpful?

I do. I keep it in VS Code and store complicated (for me) stuff that I can't remember or worry I might not.

  1. Playlist download with yt-dlp with all my best settings, adding playlist index as track number.

  2. Ffmpeg metadata cleaner for music. Searching title for a bunch of specific strings to remove, setting the band, album, etc. and saving these in a new folder.

  3. Desktop file contents for when I need to create one for an appimage

  4. The script I used to bind audio output switching to a hotkey

  5. How to use ADB for when android blocks sideloading the normal way and I inevitably forget what Android Debug Bridge is or how to use it.

Linux Mint btw. Also yes, I am a noob.

you are viewing a single comment's thread
view the rest of the comments
[–] Egonallanon@feddit.uk 4 points 1 week ago (1 children)

My go to is sticking what I can in my profile and making aliased commands for them all. Don't have many for Linux quite yet but my PS profile is lapsed with dozens of these.

[–] ALoafOfBread@lemmy.ml 2 points 1 week ago (3 children)

This should be the next step for me. When you do aliased commands, can they take arguments? Like to download a playlist with yt-dlp, could i do download-playlist [URL]?

[–] fratermus@piefed.social 4 points 1 week ago* (last edited 1 week ago)

When you do aliased commands, can they take arguments? Like to download a playlist with yt-dlp, could i do download-playlist [URL]?

They don't take arguments in the sense that functions do but in bash at least they are passed on as part of the expanded string. Pasted from bash:

alias argtest='echo arg is'  
argtest foo  
arg is foo  

So yes you could alias your yt-dlp commands and invoke the alias with the URL.

[–] MyNameIsRichard@lemmy.ml 2 points 1 week ago (1 children)

Yeah. This is my alias to download music from YouTube alias yt-dmus='yt-dlp -x --audio-format opus "$@"'

[–] thingsiplay@lemmy.ml 1 points 1 week ago (1 children)

alias e='echo "${@}"' Wait a second, Bash does not process arguments in alias. This is an incredible trick new to me! All the years I was writing a function to accomplish that. I wonder if there is any drawback to this technique.

[–] MyNameIsRichard@lemmy.ml 1 points 1 week ago

Not that I know of

[–] thingsiplay@lemmy.ml 1 points 1 week ago* (last edited 1 week ago) (1 children)

Aliases themselves do not take arguments. You can write Bash function for that case. Here is a "simple" example. I leave the comments there explaining the command too:

treegrep

treegrep() {
    # grep:
    #   --recursive             like --directories=recurse
    #   --files-with-match      print only names of FILEs with selected lines
    # tree:
    #   --fromfile              Reads paths from files (.=stdin)
    #   -F                      Appends '/', '=', '*', '@', '|' or '>' as per ls -F.

    grep --recursive --files-with-match "${@}" |
        tree --fromfile -F
}

yesnoYou can also set variables to be local to the function, meaning they do not leak to outside or do not get confused with variables from outside the function:

# usage: yesno [prompt]
# example:
#   yesno && echo yes
#   yesno Continue? && echo yes || echo no
yesno() {
    local prompt
    local answer
    if [[ "${#}" -gt 0 ]]; then
        prompt="${*} "
    fi
    read -rp "${prompt}[y/n]: " answer
    case "${answer}" in
    [Yy0]*) return 0 ;;
    [Nn1]*) return 1 ;;
    *) return 2 ;;
    esac
}

[–] ALoafOfBread@lemmy.ml 2 points 1 week ago* (last edited 1 week ago)

This is what I ended up doing, and it works great. I knew about aliases, but didn't really use them at all - I didn't know about bash functions though.

So now I have a few functions in .bashrc for short things and am just aliasing shell scripts for easy access to more complex tbings I don't want cluttering the file