Här är ditt år på SweClockers!

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.

Visa signatur
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

🍏 MacBook Pro 16" 2023 [M3 Max (16C CPU, 40C GPU), 48 GB RAM, 1 TB SSD]
🕹️ Ryzen 7500F, Asrock A620I, 32GB DDR5, EVGA RTX 3060 12GB, SF750, NR200P
🖥️ ROG Swift OLED PG32UCDP

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.

Visa signatur
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.

Visa signatur