# 好用的简写 if has xdg-open alias open xdg-open end alias ll 'ls -l' alias l ll alias llg 'll --git --git-repos' alias lla 'ls -la' alias grep 'grep --color=auto' alias rm 'rm -ir' alias mkdirs 'mkdir -p' alias ip 'ip -c -h -p' alias ipa 'ip -br a' function ports --description 'Show listening ports' if has ss ss -tulpn else netstat -tulpn | grep LISTEN end end function suports --description 'Show listening ports with root privileges when needed' if has ss __fishrc_as_root ss -tulpn else __fishrc_as_root netstat -tulpn | grep LISTEN end end function findtxt --description 'Search for text under /' if test (count $argv) -eq 0 echo 'Usage: findtxt ' return 1 end set -l pattern (string join ' ' -- $argv) if has rg rg -n --no-messages -- "$pattern" / else grep -IHrnws -s -e "$pattern" / end end alias clr reset alias please sudo if test "$IS_SANDBOX" = 1 alias codex 'codex --dangerously-bypass-approvals-and-sandbox' alias claude 'claude --dangerously-skip-permissions' end alias du 'du -h' alias ffmpeg 'ffmpeg -hide_banner' alias ffprobe 'ffprobe -hide_banner' function ts --description 'Run tailscale with root privileges when needed' __fishrc_as_root tailscale $argv end alias ts-install 'curl -fsSL https://tailscale.com/install.sh | sh' alias visucode 'env EDITOR="code --wait" sudoedit' alias cpu-temp s-tui function gpu-temp --description 'Watch GPU temperatures with gpustat' while sleep 1 clear gpustat end end function ipv4 --description 'Show public IPv4 from Cloudflare trace' curl https://1.0.0.1/cdn-cgi/trace -4 | grep ip end function ipv6 --description 'Show public IPv6 from Cloudflare trace' curl 'https://[2606:4700:4700::1111]/cdn-cgi/trace' -6 | grep ip end function compress-json --description 'Zstd-compress JSON files below the current directory' find . -name '*.json' -print0 | parallel --jobs 80% -0 zstd -z -19 -v -f --rm '{}' end function dotclean --description 'Remove macOS metadata files below the current directory' find . \( -name '.DS_Store' -o -name '._*' \) -delete -print end alias clean-empty-dir 'find . -type d -empty -delete -print' function mkfs.fat32 --description 'Format FAT32 with root privileges when needed' __fishrc_as_root mkfs.fat -F 32 $argv end # Rsync aliases by 依云, for synching (keep hard links, ACL, atime, xattr, etc) # Deletes files in destination that are not in source alias xcp "rsync -aviHAXKhS --one-file-system --partial --info=progress2 --atimes --open-noatime --delete --exclude='*~' --exclude=__pycache__" alias xcpz 'xcp --compress-choice=zstd --compress-level=3 --checksum-choice=xxh3' alias xmv 'xcp --remove-source-files' alias xmvz 'xcpz --remove-source-files' # Rsync aliases by Azalea, for file transfer (do not keep hard links, ACL, atime, etc.) # Will not delete files in destination that are not in source alias rcp "rsync -avihS --partial --info=progress2 --exclude='*~' --exclude=__pycache__" alias rcpz 'rcp --compress --compress-level=3 --checksum-choice=xxh3' alias rmv 'rcp --remove-source-files' alias rmvz 'rcpz --remove-source-files' alias tmuxs 'tmux new-session -s' alias tmuxr 'tmux attach-session -t' alias tmuxl 'tmux list-sessions' alias catt 'echo 🐱' alias old-update-ssh-keys 'curl -L https://github.com/Hykilpikonna.keys > ~/.ssh/authorized_keys' alias colors "color '&000&111&222&333&444&555&666&777&888&999&aaa&bbb&ccc&ddd&eee&fff'" alias tar-kill-progress 'watch -n 60 killall tar -SIGUSR1' alias valgrin 'valgrind --leak-check=full --show-leak-kinds=all --leak-resolution=med --track-origins=yes --vgdb=no' # Automatic sudo aliases. if test (id -u) -ne 0 alias sctl 'sudo systemctl' alias sctlu 'systemctl --user' alias jctl 'sudo journalctl' alias jctlu 'journalctl --user-unit' alias ufw 'sudo ufw' alias nginx 'sudo nginx' alias certbot 'sudo certbot' alias apt 'sudo apt' alias dpkg 'sudo dpkg' else alias sctl systemctl alias sctlu 'systemctl --user' alias jctl journalctl alias jctlu 'journalctl --user-unit' end