Глобальные алиасы в zsh
В zsh в дополнение к нормальным и
суфиксным алиасам, существуют еще и глобальные алиасы. Они отличаются от обычных тем, что разварачивание алиаса
происходит в любом месте командной строки, а не только в начале строки.
Глобальные алиасы удобно использовать для всевозможных фильтров:
alias -g CA='|& cat -A' alias -g CL='| wc -l' alias -g C='***/*.([chly]|[ch]pp|[ch]xx|C)' alias -g D='| xxd -g 1' alias -g G='| grep' alias -g GI='| grep -i' alias -g H='| head' alias -g IKU='| iconv -cf koi8r -t utf8' alias -g IKW='| iconv -cf koi8r -t cp1251' alias -g IUK='| iconv -cf utf8 -t koi8r' alias -g IUW='| iconv -cf utf8 -t cp1251' alias -g IWK='| iconv -cf cp1251 -t koi8r' alias -g IWU='| iconv -cf cp1251 -t utf8' alias -g L='| less' alias -g LE='|& less' alias -g PD='| patch -p1 --dry-run' alias -g P='| patch -p1' alias -g S='| sort' alias -g SU='| sort -u' alias -g T='| tail' alias -g V='| vim -' alias -g VM='| vim -c "set ft=mail" -' alias -g LM=/var/log/messages alias -g LS=/var/log/syslog alias -g X0G='| xargs -0 egrep' alias -g X0='| xargs -0' alias -g XG='| xargs egrep' alias -g X='| xargs' alias -g DN='/dev/null' alias -g NO='&> /dev/null' # No Output alias -g NE='2> /dev/null' # No Errors alias -g E='2>&1' autoload colors # подключим цвета colors alias -g HE='2>>( sed -e "s/.*/$fg_bold[red]&$reset_color/" 1>&2 )' # Highlight Errors # usefull when copy/past examples ex: "$ echo $LANG" alias \$='' alias %='' alias tree='tree -ifF'
Пример использования:
посмотреть что у за процессор у машины
$ dmesg G "^CPU:"Посмотреть сколько rxvt запущено
$ ps -ef G rxvt WCКонечно могут возникнуть и проблемы. Например здесь дан пример как посмотреть
какие папки занимают больше гигабайта.
$ sudo du -hs * | grep GВ данном случае G развернется в "| grep", чего нам очень не хотелось бы. В этом случае поможет
быстрая отмена алиасов .
$ sudo du -hs * | grep \Gили
$ sudo du -hs * G \G- 2848 просмотров
Страница для печати


...данном случае, кроме того, что не нужно вводить символ | ?
alias G grep
dmesg |G "^CPU:"
>>конечно могут возникнуть и проблемы.
Они могут возникнуть даже несмотря на глобальность алиаса. :-) Однако в случае отсутствия "палки", можно обойтись и "привычным" синтаксисом:
sudo du -hs * | G M
sudo du -hs * | G \G
Скупой платит дважды, в общем... :-)
1. я так понимаю имелось ввиду alias G=grep?
2. пример с
sudo du -hs * G \G
добавил
--
Signature invent in progress 22% #.........
Отправить комментарий