this post was submitted on 23 Jun 2025
206 points (99.0% liked)

Linux

58020 readers
646 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
 

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)"
}
(page 3) 50 comments
sorted by: hot top controversial new old
[–] monovergent@lemmy.ml 2 points 2 months ago

My desktop text editor has an autosave feature, but it only works after you've manually saved the file. All I wanted is something like the notes app on my phone, where I can jot down random thoughts without worrying about naming a new file. So here's the script behind my text editor shortcut, which creates a new text file in ~/.drafts, names it with the current date, adds a suffix if the file already exists, and finally opens the editor:

#!/bin/bash

name=/home/defacto/.drafts/"`date +"%Y%m%d"`"_text
if [[ -e "$name" || -L "$name" ]] ; then
    i=1
    while [[ -e "$name"_$i || -L "$name"_$i ]] ; do
        let i++
    done
    name="$name"_$i
fi
touch -- "$name"
pluma "$name" #replace pluma with your editor of choice
[–] twice_hatch@midwest.social 2 points 2 months ago

alias scr=screen -dRU

I don't know why Screen has any other flags. I do not want to bother learning the keyboard shortcuts for tmux even though its probably works better

[–] Ritsu4Life@lemmy.world 2 points 2 months ago (3 children)

I have started my daily drawing journey which i still am bad at it. To create a new .kra files files every day I use this

#/usr/bin/bash

days=$(</var/home/monika/scripts/days)
echo "$days"

file_name=/var/home/monika/Pictures/Art/day$days.kra

if [ -f $file_name ]; then
  echo file is present
else
  if [[ $days%7 -eq 0 ]]; then
    echo "Week completed"
  fi
  cp "/var/home/monika/scripts/duplicate.kra" $file_name
  flatpak run org.kde.krita $file_name
  echo $(($days + 1)) >/var/home/monika/scripts/days
fi

load more comments (3 replies)
[–] balsoft@lemmy.ml 2 points 2 months ago (1 children)

I've stolen a bunch of Git aliases from somewhere (I don't remember where), here are the ones I ended up using the most:

g=git
ga='git add'
gau='git add --update'
gcfu='git commit --fixup'
gc='git commit --verbose'
'gc!'='git commit --verbose --amend'
gcmsg='git commit --message'
gca='git com
gd='git diff'
gf='git fetch'
gl='git pull'
gst='git status'
gstall='git stash --all'
gstaa='git stash apply'
gp='git push'
'gpf!'='git push --force-with-lease'
grb='git rebase'
grba='git rebase --abort'
grbc='git rebase --continue'

I also often use

ls='eza'
md='mkdir -p'
mcd() { mkdir -p "$1" && cd "$1" }

And finally some Nix things:

b='nix build'
bf='nix build -f'
bb=nix build -f .'
s='nix shell'
sf='nix shell -f'
snp='nix shell np#'
d='nix develop'
df='nix develop -f'
[–] lessthanseventy@lemm.ee 1 points 2 months ago

This makes me want spacemacs for the terminal

[–] jcs@lemmy.world 2 points 2 months ago

I wrote this suite of scripts a few years ago and still use them to:

  1. Boot into Ventoy and select a Debian Live environment
  2. Optional: connect a storage device (local partition, USB drive, etc) for persistent storage
  3. Modify cfg/cfg.sh if it's the first time using the tool
  4. Run setup.sh to configure the environment into a familiar/productive state

The tools are flexible on hardware (more directed toward x64 systems at this time), and I (almost) never have to worry about OS upgrades. Just boot into a newer live OS image once it's ready. They are still a work-in-progress and still have a few customizations that I should abstract for more general use, but it's FOSS in case anyone has merge requests, issues, suggestions, etc.

[–] Flyswat@lemmy.dbzer0.com 2 points 2 months ago

To save videos from certain streaming sites that are not supported by yt-dlp, I catch the M3U playlist used by the page and with that I use this script that gets ffmpeg to put together the pieces into a single file.

#!/bin/bash
if [ "$1" == "-h" ] || [ $# -lt 2 ]; then
	echo Download a video from a playlist into a single file
	echo usage: $(basename $0) PLAYLIST OUTPUT_VID
	exit
fi

nbparts=$(grep ^[^#] $1 | wc -l)

echo -e "\e[38;5;202m Downloading" $(( nbparts - 1 )) "parts \e[00m"
time ffmpeg -hide_banner -allowed_extensions ALL -protocol_whitelist file,http,https,tcp,tls,crypto -i $1 -codec copy $2
[–] MTK@lemmy.world 2 points 2 months ago (1 children)
load more comments (1 replies)
[–] phantomwise@lemmy.ml 2 points 2 months ago

alias nmtui="NEWT_COLORS='root=black,black;window=black,black;border=white,black;listbox=white,black;label=blue,black;checkbox=red,black;title=green,black;button=white,red;actsellistbox=white,red;actlistbox=white,gray;compactbutton=white,gray;actcheckbox=white,blue;entry=lightgray,black;textbox=blue,black' nmtui"

It's nmtui but pretty!

[–] marzhall@lemmy.world 2 points 2 months ago (1 children)

alias cls=clear

My first language was QB, so it makes me chuckle.

Also, alias cim=vim. If I had a penny...

load more comments (1 replies)
[–] livingcoder@programming.dev 2 points 2 months ago
# Copy pwd into clipboard using pbcopy
alias cpwd="pwd | tr -d '\n' | pbcopy && echo 'pwd copied into clipboard'"
[–] questionAsker@lemmy.ml 1 points 2 months ago
#Create predefined session with multiple tabs/panes (rss, bluetooth, docker...)
tmux-start 

#Create predefined tmux session with ncmpcpp and ueberzug cover
music 

#Comfort
ls = "ls --color=auto"
please = "sudo !!"

#Quick weather check
weatherH='curl -s "wttr.in/HomeCity?2QF"' 

#Download Youtube playlist videos in separate directory indexed by video order in playlist -> lectures, etc
ytPlaylist='yt-dlp -o "%(playlist)s/%(playlist_index)s - %(title)s.%(ext)s"'

#Download whole album  -> podcasts primarily 
ytAlbum='yt-dlp -x --audio-format mp3 --split-chapters --embed-thumbnail -o "chapter:%(section_title)s.%(ext)s"'

# download video -> extract audio -> show notification
ytm()
{
	tsp yt-dlp -x --audio-format mp3 --no-playlist -P "~/Music/downloaded" $1 \
		--exec "dunstify -i folder-download -t 3000 -r 2598 -u normal  %(filepath)q"

}

# Provide list of optional packages which can be manually selected
pacmanOpts()
{
typeset -a os
for o in `expac -S '%o\n' $1`
do
  read -p "Install ${o}? " r
  [[ ${r,,} =~ ^y(|e|es)$ ]] && os+=( $o )
done

sudo pacman -S $1 ${os[@]}
}

# fkill - kill process
fkill() {
  pid=$(ps -ef | sed 1d | fzf -m --ansi --color fg:-1,bg:-1,hl:46,fg+:40,bg+:233,hl+:46 --color prompt:166,border:46 --height 40%  --border=sharp --prompt="➤  " --pointer="➤ " --marker="➤ " | awk '{print $2}')

  if [ "x$pid" != "x" ]
  then
    kill -${1:-9} $pid
  fi
}
[–] stringere@sh.itjust.works 1 points 2 months ago

Currently using this to resize screenshots in a Word doc

#Requires AutoHotkey v2.0

^+1:: { Send "{RButton}z{Tab 3}4{Enter}" }

[–] beeng@discuss.tchncs.de 1 points 2 months ago* (last edited 2 months ago)

Similar to yours OP I copy many URLs and then run my script that takes the number of URLs I copied eg 5,and downloads them with yt-dlp and GNU parallel to ~/Videos

I use CopyQ to hold the clipboard history.

[–] WQMan@lemmy.ml 1 points 2 months ago (6 children)

I replaced rm with trash-put, just in case I realize I need some files that I removed down the line.

alias rm='trash-put'

Official author don't recommend it due to different semantics. But honestly for my own personal use case its fine for me.


Also I like to alias xclip:

alias clippy='xclip -selection clipboard'

# cat things.txt | clippy
load more comments (6 replies)
[–] starman@programming.dev 1 points 2 months ago

Technically not an alias, because I just use nushell's history + autocompletion everytime I use it, but one could alias it. I think I might even write a custom command for it, with path argument, some day. Anyway, here it goes:

rsync -aPh -e "ssh -p 2222" test@172.16.0.86:/storage/emulated/0/PicturesArchive/ ~/PicturesArchive/

I run an ssh daemon on my phone, and use this snippet to back up my photos.

[–] tho@lemmy.ml 1 points 2 months ago (1 children)
git() {
  if [ "$1" = clone ]; then
    shift
    set -- clone --recursive "$@"
  fi
  command git "$@"
}
[–] Archr@lemmy.world 1 points 2 months ago (1 children)

Is this just meant to make git clone always clone recursively?

Can't you do this with aliases in your .gitconfig?

[–] tho@lemmy.ml 2 points 2 months ago

yes it is. idk😄 i have a similar one for github-cli

[–] livingcoder@programming.dev 1 points 2 months ago* (last edited 2 months ago)
# grep search the current directory
function lg() {
  ls -alt | grep $1
}
[–] brax@sh.itjust.works 1 points 2 months ago

I don't have anything too fancy. I use [theFuck(https://github.com/nvbn/thefuck) to handle typos, and I have some variables set to common directories that I use.

[–] DarkSirrush@lemmy.ca 1 points 2 months ago* (last edited 2 months ago)

I have a few:

loginserver
  • 3 of these, 1 for each of my headless vm's/computers that's just an SSH command
dcompose(d/pull) - docker compose (down/pull)

3 scripts that are just docker compose up/down/pull, as scripts (remind me in 6 hours and I will post the scripts) so that it will CD to my compose folder, execute the command (with option for naming specific containers or blank for all) and then CD back to the directory I started in.

[–] Nugscree@lemmy.world 1 points 2 months ago* (last edited 2 months ago)

Because using docker can sometimes cause ownership issues if not properly configured in your docker-compose.yml, I just added an alias to ~/.zshrc to rectify that.

-edit- Only run this script in your user owned directories, e.g. anything from ~/ (or /home/<your_username>) you might otherwise cause ownership issues for your system.

## Set ownership of files/folders recursively to current user
alias iownyou="sudo chown -R $USER:$GROUP"
[–] meekah@lemmy.world 1 points 2 months ago (1 children)

Ooooh tmpv is a smart name for your little tool. I may steal it lol

load more comments (1 replies)
load more comments
view more: ‹ prev next ›