mirror of
https://github.com/ohmyzsh/ohmyzsh.git
synced 2025-12-05 01:46:46 +01:00
Fixes #2737 - Modified common-aliases plugin to merge hosts from .ssh/config with known_hosts instead of overriding them - This ensures .ssh/config hosts take priority over /etc/hosts entries - Maintains backward compatibility by including both sources - Uses sort -u to remove duplicates while preserving order The issue was that the common-aliases plugin was overriding the SSH plugin's host completion configuration, causing /etc/hosts entries to take priority over .ssh/config entries when completing SSH hostnames. Now both sources are merged, giving users access to all configured hosts while maintaining the expected priority order.
91 lines
2.8 KiB
Bash
91 lines
2.8 KiB
Bash
# Advanced Aliases.
|
|
# Use with caution
|
|
#
|
|
|
|
# ls, the common ones I use a lot shortened for rapid fire usage
|
|
alias l='ls -lFh' #size,show type,human readable
|
|
alias la='ls -lAFh' #long list,show almost all,show type,human readable
|
|
alias lr='ls -tRFh' #sorted by date,recursive,show type,human readable
|
|
alias lt='ls -ltFh' #long list,sorted by date,show type,human readable
|
|
alias ll='ls -l' #long list
|
|
alias ldot='ls -ld .*'
|
|
alias lS='ls -1FSsh'
|
|
alias lart='ls -1Fcart'
|
|
alias lrt='ls -1Fcrt'
|
|
alias lsr='ls -lARFh' #Recursive list of files and directories
|
|
alias lsn='ls -1' #A column contains name of files and directories
|
|
|
|
alias zshrc='${=EDITOR} ${ZDOTDIR:-$HOME}/.zshrc' # Quick access to the .zshrc file
|
|
|
|
alias grep='grep --color'
|
|
alias sgrep='grep -R -n -H -C 5 --exclude-dir={.git,.svn,CVS} '
|
|
|
|
alias t='tail -f'
|
|
|
|
# Command line head / tail shortcuts
|
|
alias -g H='| head'
|
|
alias -g T='| tail'
|
|
alias -g G='| grep'
|
|
alias -g L="| less"
|
|
alias -g M="| most"
|
|
alias -g LL="2>&1 | less"
|
|
alias -g CA="2>&1 | cat -A"
|
|
alias -g NE="2> /dev/null"
|
|
alias -g NUL="> /dev/null 2>&1"
|
|
alias -g P="2>&1| pygmentize -l pytb"
|
|
|
|
alias dud='du -d 1 -h'
|
|
(( $+commands[duf] )) || alias duf='du -sh *'
|
|
(( $+commands[fd] )) || alias fd='find . -type d -name'
|
|
alias ff='find . -type f -name'
|
|
|
|
alias h='history'
|
|
alias hgrep="fc -El 0 | grep"
|
|
alias help='man'
|
|
alias p='ps -f'
|
|
alias sortnr='sort -n -r'
|
|
alias unexport='unset'
|
|
|
|
alias rm='rm -i'
|
|
alias cp='cp -i'
|
|
alias mv='mv -i'
|
|
|
|
# zsh is able to auto-do some kungfoo
|
|
# depends on the SUFFIX :)
|
|
autoload -Uz is-at-least
|
|
if is-at-least 4.2.0; then
|
|
# open browser on urls
|
|
if [[ -n "$BROWSER" ]]; then
|
|
_browser_fts=(htm html de org net com at cx nl se dk)
|
|
for ft in $_browser_fts; do alias -s $ft='$BROWSER'; done
|
|
fi
|
|
|
|
_editor_fts=(cpp cxx cc c hh h inl asc txt TXT tex)
|
|
for ft in $_editor_fts; do alias -s $ft='$EDITOR'; done
|
|
|
|
if [[ -n "$XIVIEWER" ]]; then
|
|
_image_fts=(jpg jpeg png gif mng tiff tif xpm)
|
|
for ft in $_image_fts; do alias -s $ft='$XIVIEWER'; done
|
|
fi
|
|
|
|
_media_fts=(ape avi flv m4a mkv mov mp3 mpeg mpg ogg ogm rm wav webm)
|
|
for ft in $_media_fts; do alias -s $ft=mplayer; done
|
|
|
|
#read documents
|
|
alias -s pdf=acroread
|
|
alias -s ps=gv
|
|
alias -s dvi=xdvi
|
|
alias -s chm=xchm
|
|
alias -s djvu=djview
|
|
|
|
#list whats inside packed file
|
|
alias -s zip="unzip -l"
|
|
alias -s rar="unrar l"
|
|
alias -s tar="tar tf"
|
|
alias -s tar.gz="echo "
|
|
alias -s ace="unace l"
|
|
fi
|
|
|
|
# Make zsh know about hosts already accessed by SSH
|
|
# Merge with existing hosts from .ssh/config instead of overriding
|
|
zstyle -e ':completion:*:(ssh|scp|sftp|rsh|rsync):hosts' hosts 'reply=(${=${${(f)"$(cat {/etc/ssh_,~/.ssh/known_}hosts(|2)(N) /dev/null)"}%%[# ]*}//,/ } ${(f)"$(cat ~/.ssh/config 2>/dev/null | grep -E "^Host " | awk '"'"'{for (i=2; i<=NF; i++) print $i}'"'"' | grep -v '"'"'^*'"'"' | sed '"'"'s/\.*\*$//'"'"')"} | sort -u)'
|