OC by @[email protected]

A while ago I made a tiny function in my ~/.zshrc to download a video from the link in my clipboard. I use this nearly every day to share videos with people without forcing them to watch it on whatever site I found it. What’s a script/alias that you use a lot?

# Download clipboard to tmp with yt-dlp
tmpv() {
  cd /tmp/ && yt-dlp "$(wl-paste)"
}
  • confusedpuppy@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    1
    ·
    23 hours ago

    I have a computer and 3 devices I wanted to transfer files between but every available solution was either too awkward which made things annoying, or too bulky with more than what I needed.

    I ended up writing a long script (around 1000 lines but I’m generous with spacing so I can read my own code easily) using rsync to deal with transferring files and whole directories with a single command. I can even chain together multiple rsync commands back to back so that I can quickly transfer multiple files or directories in one command. Instead of trying to refer to a wall of text full of rsync commands, I can make something like this:

    alias rtPHONEmedia="doas rtransfer /home/dell-pc/.sync/phone/.sync-phone_02_playlists /home/dell-pc/.sync/phone/.sync-phone_03_arbeit /home/dell-pc/.sync/phone/.sync-phone_04_albums /home/dell-pc/.sync/phone/.sync-phone_05_soulseek /home/dell-pc/.sync/phone/.sync-phone_06_youtube"

    This will copy everything from a specific folders on my phone, and store them neatly organized into my storage partition on my computer SSD. This also includes all the necessary information including SSH username, address and ID keys.

    I can then run alias rtARCHIVEfull="doas rtransfer /home/dell-pc/.sync/computer/.sync-computer_01_archive-full" to quickly copy that storage partition on my computer to my external backup SSD.

    I use it so often. It’s especially nice because I can work on a file on my computer and quickly update the file to the remote address location, putting it directly where I need it to be immediately.

  • DesolateMood@lemmy.zip
    link
    fedilink
    arrow-up
    12
    ·
    2 days ago

    This is dumb lol but

    update = “sudo apt update && sudo apt upgrade”

    Exchange apt for whatever package manager you use, optionally add “&& flatpak upgrade”. If you really want to live on the edge throw a -y in there as well

    • kmirl@lemmy.world
      link
      fedilink
      English
      arrow-up
      3
      ·
      2 days ago

      I have a similar one as well for debian-based operating systems…

      dist-upgrade() {
          sudo apt update && sudo apt dist-upgrade && sudo apt autoremove
      }
      

      To get this to work without a password, i dropped a file in /etc/sudoers.d that allows anyone in the sudo group to sudo apt without a password.

      root@tux:~# cat /etc/sudoers.d/apt

      # Cmnd alias specification
      Cmnd_Alias COMMANDS = /usr/bin/apt, /usr/bin/apt-get, /usr/bin/dpkg
      
      # Use apt commands without a password
      %sudo ALL=(root) NOPASSWD: COMMANDS
      
    • mcmodknower@programming.dev
      link
      fedilink
      English
      arrow-up
      7
      ·
      2 days ago

      Mine is a bit longer and includes automatically removing unused dependencies: alias update='sudo apt update && sudo apt upgrade && flatpak update && sudo apt autoremove --purge && flatpak remove --unused --delete-data && notify-send '\''update done'\'''

  • A_norny_mousse@feddit.org
    link
    fedilink
    arrow-up
    9
    ·
    2 days ago
    alias zipcat='gunzip -c'
    alias untar='tar -xzvf'
    alias ping='ping -c3'
    alias ..='cd ..'
    alias ...='cd ../..'
    alias ....='cd ../../..'
    
      • arcayne@lemmy.today
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 day ago

        Oooh, ouch looks really neat! May actually cause me to retire my extract function. It suddenly feels a little incomplete by comparison, lol.

        # Extract any archive
        extract() {
                if [ -f "$1" ]; then
                        case $1 in
                        *.tar.bz2) tar xjf "$1" ;;
                        *.tar.gz) tar xzf "$1" ;;
                        *.bz2) bunzip2 "$1" ;;
                        *.rar) unrar x "$1" ;;
                        *.gz) gunzip "$1" ;;
                        *.tar) tar xf "$1" ;;
                        *.tbz2) tar xjf "$1" ;;
                        *.tgz) tar xzf "$1" ;;
                        *.zip) unzip "$1" ;;
                        *.Z) uncompress "$1" ;;
                        *.7z) 7z x "$1" ;;
                        *) echo "'$1' cannot be extracted via extract()" ;;
                        esac
                else
                        echo "'$1' is not a valid file"
                fi
        }
        
    • Havatra@lemmy.zip
      link
      fedilink
      arrow-up
      2
      ·
      2 days ago

      Do you often (if at all) run into conflicts with the .. alias? I can’t think of any case on top of my head, but it feels a bit sketchy. The more than 2 dots however I imagine is pretty safe.

      • A_norny_mousse@feddit.org
        link
        fedilink
        arrow-up
        3
        ·
        edit-2
        2 days ago

        No, never. I rarely use the 4 dots, but 2 and 3, all the time.

        Tab completion shows this:

        $ ..<Tab><Tab>
        ../   ...   ....
        
  • basiclemmon98@lemmy.dbzer0.com
    link
    fedilink
    arrow-up
    4
    ·
    2 days ago

    alias ser=‘pacman -Ss’
    alias ins=‘sudo pacman -S’
    alias rem=‘sudo pacman -Rncs’
    alias upd=‘sudo pacman -Syu’

    alias q=‘quit’
    alias cl=‘clear’

    alias p=‘systemctl poweroff’
    alias r=‘systemctl reboot’

  • christopher@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    2 days ago

    I am using Music Player Daemon, and I use the following script to turn gPodder into a client. My music is in ~/Music and I put the podcasts in ~/Music/Podcasts. The script works for both streaming or downloaded podcasts.

    [~]$ cat bin/mpcut.sh
    #!/bin/bash
    if [ "$(echo "$1" | cut -b-4)" = "http" ]; then
        /usr/bin/mpc pause
        /usr/bin/mpc insert "$1"
        /usr/bin/mpc toggle
        /usr/bin/notify-send -i gpodder "$1 inserted to next spot in playlist."
    else
        /usr/bin/mpc pause
        /usr/bin/mpc add "Podcasts/$(echo "$1" | cut -d"/" -f6-)"
        /usr/bin/mpc toggle
        /usr/bin/notify-send -i gpodder "$(echo "$1" | cut -d"/" -f7-)" "added to end of playlist."
    fi
    

    Audio Player in gPodder preferences is set to this: /home/christopher/bin/mpcut.sh %F

    I have an application shortcut Super-G set to this in xfce4-keyboard-settings: env GTK_THEME=Adwaita-dark GPODDER_HOME=/home/christopher/.config/gPodder/ GPODDER_DOWNLOAD_DIR=/home/christopher/Music/Podcasts/ /usr/bin/gpodder

    or you could use an alias: alias gpodder='GTK_THEME=Adwaita-dark GPODDER_HOME=/home/christopher/.config/gPodder/ GPODDER_DOWNLOAD_DIR=/home/christopher/Music/Podcasts/ /usr/bin/gpodder --verbose'

  • TwilightKiddy@programming.dev
    link
    fedilink
    English
    arrow-up
    6
    ·
    edit-2
    2 days ago

    Wouldn’t say I use it often, but this thing resolves a domain name to an IP address:

    function resolve() {
      case $1 in
        -4)
          getent ahostsv4 $2 | grep STREAM | head -n 1 | cut -d ' ' -f 1
          ;;
        -6)
          getent ahostsv6 $2 | grep STREAM | head -n 1 | cut -d ' ' -f 1
          ;;
        -p)
          getent hosts $2 | head -n 1 | cut -d ' ' -f 1
          ;;
        *)
          getent ahosts $1 | grep STREAM | cut -d ' ' -f 1 | sort -u      
          ;;
      esac
    }
    

    All my aliases are just default arguments for programs or shorthands for my other scripts, most of which are specific for my setup.

    This is a very good argument for ffmpeg and ffprobe, by the way:

    alias ffmpeg="ffmpeg -hide_banner"
    alias ffprobe="ffprobe -hide_banner"
    
  • Jesus_666@lemmy.world
    link
    fedilink
    English
    arrow-up
    4
    ·
    2 days ago

    It’s not terribly exciting but I find myself using this a lot:

    #!/bin/sh
    
    echo "$*" | sed -e "s/x/*/g" | bc -l
    

    Just a little shorthand for bc that allows me to write “x” instead of “*” to avoid shell expansion nonsense. I put it in ~/.local/bin/= so I can e.g. just write = 17+4x5. Combined with a Quake-style terminal this is much faster than launching a calculator app. It’s a script instead of an alias so it works regardless of the shell I’m currently using.

    The call to bc -l could be replaced with one to qalc -t if you know qalc to be present on the system .

  • mcmodknower@programming.dev
    link
    fedilink
    English
    arrow-up
    2
    ·
    2 days ago

    in my .gitconfig i have

    [alias]
    	glg = log --oneline --decorate --all --graph
    

    This allows me to get a quick overview over all branches with pushes that are recent enough for most cases.

  • LumpyPancakes@piefed.social
    link
    fedilink
    English
    arrow-up
    3
    ·
    2 days ago

    Here’s one used daily:

    connect ‘192.168.15.20:23 /nossh /T=1’
    timeout=30
    wait ‘username:’
    sendln ‘admin’
    wait ‘password:’
    sendln ‘hunter2’
    wait ‘DSPXmini>’
    sendln ‘set dspx.enum.0 digital_audio’
    wait ‘digital_audio’
    if result=0 goto Error
    if result=1 goto Success

    :Error
    messagebox ‘Something went wrong. Please call Xxxxx on xxxxxxxxxx for help.’ ‘Bugger.’
    goto End

    :Success
    messagebox ‘Done :-) Studio B is now ISOLATED from the transmitter. You can now play around in Studio B without affecting what is going to air.’ ‘Studio B Isolated.’
    messagebox ‘Please keep your speaker volume low if someone is broacasting from Studio A at the moment. The walls are thin.’ ‘Thin Wall Reminder…’

    :End
    disconnect 0

  • gkaklas@lemmy.zip
    link
    fedilink
    English
    arrow-up
    4
    ·
    edit-2
    2 days ago

    https://gkak.la/shell-aliases

    Not an alias, but expanding -h to --help has been very useful in cases where the program just prints “see --help for options” when you just use -h

    I use glola from oh-my-zsh every day to see an overview of my projects

    Ans ns/nss is very convenient to run one-off commands with software I don’t already have installed!

    Oh and cdt = cd $(mktemp -d) is nice to have when you just need a temporary clean directory to do something quick

  • kbal@fedia.io
    link
    fedilink
    arrow-up
    3
    ·
    2 days ago

    #!/bin/bash # Recursively rename everything in the current directory as necessary # to make it match the case of filenames in Skyrim’s “Data” directory,

    from=`pwd -P`
    to="${HOME}/.steam/debian-installation/steamapps/common/Skyrim_1.5.97/Data"
    tmp="/tmp/skydata_index"
    filez="/tmp/skydata_from"
    
    IFS='
    '
    
    match_case() {
        cd "$2"
        find . | grep -v '^[.]$' > "$tmp"
        cd "$1"
        find . -maxdepth 1 | grep -v '^[.]$' > "$filez"
        for j in `cat $filez`; do
            if ( grep -i "^${j}$" $tmp ); then
                name=`grep -i "^${j}$" $tmp | head -1`
                if [ "${name}xx" != "${j}xx" ] ; then
                    mv "$j" "$name"
                fi
            fi
        done
    
        # going recursiv
        find . -maxdepth 1 -type d | grep -v '^[.]$' > "$filez"
        for j in `cat $filez`; do
            if ( test -d "${2}/${j}" ) ; then
                match_case "${1}/${j}" "${2}/${j}"
            fi
        done
    }
    match_case $from $to
    rm $tmp $filez