Dela vilka bash / zsh aliases du använder

Permalänk
Medlem

Dela vilka bash / zsh aliases du använder

Hej!

Tänkte starta en tråd där vi kan tipsa och dela med oss av vilka bash / zsh aliases vi på sweclockers använder i vardagen.

Några som jag flitigt använder:

alias lg='exa -alh | grep --ignore-case' alias lsd='ls -D -l' alias lsf='ls -f -l' alias du='du -sh' alias c='clear' alias e='exit' alias dl='cd ~/Downloads' alias doc='cd ~/Documents'

shooot

Permalänk
Medlem

Clear och exit känns överflödigt, ctrl+d och ctrl+l gör jobbet

Permalänk
Medlem
Skrivet av dlq84:

Clear och exit känns överflödigt, ctrl+d och ctrl+l gör jobbet

Tycker tvärt om

Permalänk
Medlem

git-cmp() { git add . && git commit -m "$1" && git push }

Ibland vill man bara göra en snabb push.

Visa signatur

Starka åsikter om onödiga saker.

Permalänk
Medlem

Visa alla ip addresser vi har en upprättad anslutning emot.

alias con="netstat -lantp | awk '/ESTABLISHED/ {split($5, a, ":"); ips[a[1]]} END {for (ip in ips) print ip}'"

Ifall om jag lyssnar på musik och något jag vill flytta från arkivet till någon personlig mapp / flytta till någon enhet så skriver jag bara cmp3:

cmp3() { target_dir=~/music [ ! -d "$target_dir" ] && mkdir -p "$target_dir" current_track=$(lsof -c cmus 2>/dev/null | awk '/\.mp3/ && /\/mnt/ {print $9}') if [ -n "$current_track" ]; then cp -- "$current_track" "$target_dir/" echo "Copied: $current_track" else echo "No track found or not an mp3 file, see cmus-remote -Q" fi }

För att starta en elapsed timer snabbt med hundradelar "etime":

etime() { start=$(date +%s.%N) while true; do current=$(date +%s.%N) elapsed=$(echo "scale=9; $current - $start" | bc) printf "\rElapsed time: %.2f seconds" "$elapsed" sleep 0.01 done }

Motsatsen, remaining time "rtime 10":

rtime() { countdown_seconds="$1" while [ $(echo "$countdown_seconds > 0" | bc -l) -eq 1 ]; do printf "%.2f seconds remaining\r" "$countdown_seconds" sleep 0.01 countdown_seconds=$(echo "$countdown_seconds - 0.01" | bc -l) done echo -e "\nDone." }

Kolla vädret, valuta värde, antalet mail från mailklienten m.m.

# Funktion för att kolla en URL innan jag besöker den med urlcheck <url> så det är en skum phishing sida

urlcheck() { curl -Ls -o /dev/null -w '%{url_effective}\n' "$1" }

# Kommando för att kolla min IP-address.

myip=$(curl ifconfig.co)

# Skapa ett random lösenord snabbt och elegant, undvik alla otillåtna tecken:

alias pwgen="< /dev/urandom tr -dc 'a-zA-Z0-9-_!@#$%^&*()_+{}|:<>?=' | head -c 16; echo"

# Kommando för att göra en snabb arkivering med mktar <mapp> för att arkivera en mapp..

mktar() { if [ "$1" = "--encrypt" ]; then if [ -f "$2" ]; then echo "Enter encryption password: " read -s password openssl enc -aes-256-cbc -salt -in "$2" -out "$2.enc" -pass pass:"$password" else echo "Error: File not found for encryption." fi elif [ "$1" = "--decrypt" ]; then if [ -f "$2" ]; then echo "Enter decryption password: " read -s password openssl enc -d -aes-256-cbc -in "$2" -out "${2%.enc}" -pass pass:"$password" else echo "Error: File not found for decryption." fi else local folder_path="$1" local folder_name=$(basename "$folder_path") local date=$(date "+%Y%m%d") local archive_name="${folder_name}-${date}.tar.gz" if command -v pigz >/dev/null; then tar cf - "$folder_path" | pigz >"$archive_name" else tar czf "$archive_name" "$folder_path" fi fi }

Sortera alla mappar efter bokstavsordning + dry-run

# alias sortalpha="dry_run=false; for i in *; do I=${i:0:1}; I=${I,,}; if [ ! -d "$I" ]; then if [ "$dry_run" = false ]; then mkdir "$I"; else echo "mkdir $I"; fi; fi; if [ "$dry_run" = false ]; then mv "$i" "$I"/"$i"; else echo "mv $i $I/$i"; fi; done" # alias dryrun_sortalpha="dry_run=true; for i in *; do I=${i:0:1}; I=${I,,}; if [ ! -d "$I" ]; then if [ "$dry_run" = false ]; then mkdir "$I"; else echo "mkdir $I"; fi; fi; if [ "$dry_run" = false ]; then mv "$i" "$I"/"$i"; else echo "mv $i $I/$i"; fi; done

# Konvertera alla filer till ett och samma format. dwebp2png te.x:

alias d2p="dwebp $1 -o $2.png"

Ta bort all metadata från alla bilder

find ~/pictures -type f -print0 | xargs -0 -P $(nproc) exiftool -overwrite_original -all=

Scanna wifi nätverket med "scanwifi="nmcli d w" där d=dev, w=wifi

# Visa alla fäger samt nummer för varje färg som går i 256.

ccolor() { awk -v columns=8 'BEGIN { for (color = 0; color <= 255; color++) { printf "\033[38;5;%dm%d\033[0m\t", color, color if ((color + 1) % columns == 0) printf "\n" } }'

bccolor() { awk -v columns=8 'BEGIN { for (color = 0; color <= 255; color++) { printf "\033[48;5;%dm\033[38;5;%dm%d\033[0m\t", color, (color > 127 ? 0 : 255), color if ((color + 1) % columns == 0) printf "\n" } }' }

Permalänk
Hedersmedlem

Har nästan inga alias alls. På Windows-datorn (WSL1) har jag ls='ls --color', tail='tail --disable-inotify' (för att det inte fungerar i WSL1 och gör att tail -f buggar ur) och två ssh-genvägar, "ssh -t [adress] 'screen -R -d'" för att styra NAS och offsite-servern.
På de andra har jag bara ls.

Har däremot ställt in zsh på att lagra historik och dela det mellan alla aktiva shells med ctrl+upp/ner, och använder Ctrl+R ganska ofta för att göra om saker jag gjort tidigare.

Specifikt såhär:

Klicka för mer information

HISTFILE=~/.histfile HISTSIZE=40000 SAVEHIST=40000 setopt APPEND_HISTORY # Don't erase history setopt EXTENDED_HISTORY # Add additional data to history like timestamp setopt HIST_FIND_NO_DUPS # Don't show duplicates in search setopt HIST_IGNORE_SPACE # Don't preserve spaces. You may want to turn it off setopt NO_HIST_BEEP # Don't beep setopt SHARE_HISTORY # Share history between session/terminals # Up/down arrows use local history, ctrl+up/down use global history, and ctrl+R also uses global history up-line-or-local-history() { zle set-local-history 1 zle up-line-or-history zle set-local-history 0 } zle -N up-line-or-local-history down-line-or-local-history() { zle set-local-history 1 zle down-line-or-history zle set-local-history 0 } zle -N down-line-or-local-history # Bind ctrl+left/right move one word at a time, Ctrl+up/down to use global/shared history, up/down to use shell-local history bindkey "^[[1;5C" forward-word bindkey "^[[1;5D" backward-word bindkey "${key[Up]}" up-line-or-local-history bindkey "${key[Down]}" down-line-or-local-history bindkey "^[[1;5A" up-line-or-history bindkey "^[[1;5B" down-line-or-history

Visa mer
Visa signatur

Asus ROG STRIX B550-F / Ryzen 5800X3D / 48 GB 3200 MHz CL14 / Asus TUF 3080 OC / WD SN850 1 TB, Kingston NV1 2 TB + NAS / Corsair RM650x V3 / Acer XB271HU (1440p165) / LG C1 55"
NAS: 6700K/16GB/Debian+ZFS | Backup (offsite): 9600K/16GB/Debian+ZFS

Permalänk
Medlem

På min "hemmaserver" med Ubuntu server kör jag i stort sett allt i olika docker containers, så jag använder följande alias för att hantera dem.

alias d=docker alias dc="docker compose" alias dcd="docker compose down" alias dcp="docker compose pull" alias dcu="docker compose up -d"

Inte mycket att skryta med men det är de vanligaste kommandona jag kör så det sparar lite skrivande iaf.

Visa signatur

EndeavourOS: Your search for the best Arch distro ends here
7800X3D » RX6950XT » G.SKILL 32GB » LG OLED42C35LA

Permalänk
Medlem

alias update='sudo timeshift --create --comments "Before Pacman Update" && sudo pacman -Syu'

För att ta en snap vid varje update av systemet.

Permalänk
Medlem

Bra tråd! Ska ta inspiration!

Jag använder oh-my-zsh så jag får ganska mycket trevligt på köpet via det, men här är några rader jag har i min `.zshrc`:

alias s="ssh user@server" # skriv bara `s` för att ssha in till servern ul() { sh ~/.uplimg.sh $@; } # kör ett script som laddar upp $1 (bild.jpg) till min # imagehost och kopierar resulterande länk # pretty-printar ut mediainfo i JSON format via ffprobe ffprobej() { ffprobe -v quiet -print_format json -show_format -show_streams $@ |jq; } # pretty printa JSON du har i clipboard pbjq() { pbpaste|jq; } # öppna en twitch stream i mpv tw () { streamlink twitch.tv/$@ best --player mpv;}

Visa signatur

Desktop: 9800X3D, RTX 5090 FE, Asrock A620I, 32 GB RAM, FD Ridge, PG32UCDP
Laptop: MacBook Pro 16", M3 Max (16C CPU, 40C GPU), 48 GB RAM

Permalänk
Medlem

Denna "grep" alias var en höjdare, ajöss med alla felmeddelanden från kataloger när man gör en grep "*". Sen har jag blivit så gammal så jag måste köra med "-i" på cp/mv/rm. (Skäms lite..)

alias grep="grep --devices=skip --directories=skip" alias rc-status="COLUMNS=50 rc-status" alias rc-config="COLUMNS=50 rc-config"

Permalänk
Medlem
Skrivet av Jull3Haxor:

alias update='sudo timeshift --create --comments "Before Pacman Update" && sudo pacman -Syu'

För att ta en snap vid varje update av systemet.

Kanske ska ta och lägga till något liknande. kan vara smart

Permalänk
Medlem
Skrivet av llxt:

Kanske ska ta och lägga till något liknande. kan vara smart

Gjorde sama sak för yay och eos-update, kör EOS..

Men ang det, fick idag veta av en vän att istället fört alias så är det bara installera timeshift-autosnap som lägger en hook till pacman och kör då en snap varje pacman -Syu.

Permalänk
Medlem
Skrivet av Jull3Haxor:

Gjorde sama sak för yay och eos-update, kör EOS..

Men ang det, fick idag veta av en vän att istället fört alias så är det bara installera timeshift-autosnap som lägger en hook till pacman och kör då en snap varje pacman -Syu.

Ah, ok Körs denna hook om man updaterar med yay -Syu också?

Permalänk
Medlem
Skrivet av llxt:

Ah, ok Körs denna hook om man updaterar med yay -Syu också?

Som jag fattade det så är det bara för Pacman, därför jag gjorde alias för yay.