alias


ramok аватар

Удобный алиас в zsh для copy/paste примеров из советов

На linsovet.com многие советы содержат примеры запуска команд из командной строки в формате в подобном формате

$ echo команда 1
$ echo команда 2

Этот формат неудобен если вы хотите скопировать сразу несколько команд и скопировать прямо в терминал. Если добавить в ~/.zshrc алиас

alias \$=''

то эта проблема будет решена. Если команда начинается с $, то он будет автоматически убран

Идея взята отсюда

0
Ваша оценка: Ничего
bliznezz аватар

простенькая напоминалка для xchat

из-за ирц постоянно забываю что запланировал сделать через 5 минут.

(16:37) (муха_тоже_верталет) через минуты три напомните что я кофе поставил...
(16:45) (InFant) иди плиту мой...

короче простой алиас в xchat надеюст поможет мне:
setting - advanced - user command:

remind -> exec sleep %2 && zenity --info --text="&3"<code>
 
будет принимать команду
[geshifilter-code]&#10;/remind 180 выключи на кухне газ&#10;

и через 3 минуты выскочет соответствующий попап) остальсь запомнить что надо использовать эту напоминалку когда возвращаюсь к чату.[/geshifilter-code]

0
Ваша оценка: Ничего

Persistent ZSH aliases (в bash тоже можно :)

Три уровня реальности.

Нулевой. В незапамятные времена я вынес определение aliases из .zshrc в другой файл, .zsh_aliases. Это разгрузило и без того тучный .zshrc, в котором остался только вызов

if [[ -f $ZDOTDIR/.zsh_aliases ]] { . $ZDOTDIR/.zsh_aliases; }

Первый. Теперь .zsh_aliases можно обрабатывать автоматически! Допустим, я по ходу работы придумал полезный alias. Но вот отвлекаться для редактирования .zsh_aliases не хочется. Что за беда? сделал alias с именем mkalias:

mkalias='alias | grep -v "='\''LC_ALL" | sed "s/^/alias /" > ~/.zsh_aliases'

Теперь зафиксировать сделанные в списке alias-ов изменения можно одной командой. И даже вставить её в .zlogout, чтобы управиться с задачей за 0 команд :).

Второй. А что это за "grep" такой лишний в mkalias? А это вот что. Есть несклько команд, которые я хочу запускать не в кодировке по умолчанию, а в другой. Например, man-ы хочу читать по-английски. Или GTK1-программы -- в кодировке всегда KOI8-R. Или, наоборот, stardict-gtk всегда в кодировке UTF-8. Помогает проставить LC_ALL: LC_ALL=соответств_кодировка команда, но лучше это превратить в alias. Вот у меня и заведены файлы .locale.кодировка, которые читаются из .zshrc так:

# alias some LC_ALL changes when running command
for N ($ZDOTDIR/.locale.*) {
  T="${N##*.locale.}"
  for F (`cat $N`) alias "$F"="LC_ALL=$T $F"
} || :

Так что строчки с '="LC_ALL' запоминать не надо, они генерируются. Отсюда и grep -v в mkalias. Более того, .zshrc и .zsh_aliases у меня на всех машинах одинаковые (и на Linux разных конфессий, и на FreeBSD разных версий). А вот .locale.* -- везде разный, т. к. на некоторых машинах по умолчанию стоит одна кодировка, на некоторых -- другая, там одни программы капризничают, тут другие.

Каким способом .zshrc и .zsh_aliases у меня на всех машинах получаются одинаковые? А это к alias-ам отношения не имеет.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)
ramok аватар

Алиас для показа самых больших файлов и директорий в текущей директории

"Резиновый винчестер это не игрушка, это мечта" Ж:-)
Как всегда не хватает места, и при поиске чего бы такого удалить может помочь алиас который показывает файлы и директории которые занимают больше мегабайта.

для bash, заносим в ~/.bashrc

alias dud="(shopt -s dotglob;du -ks * | sort -nr | sed -e 's/^\([0-9]\{1,\}\)[0-9]\{6\}[^0-9]/\1G\t/;t;s/^\([0-9]\{1,\}\)[0-9]\{3\}[^0-9]/\1M\t/;t;d')"
#или альтернативный вариант с perl
alias dud="(shopt -s dotglob;du -ks * | sort -nr | perl -pe 's/^(\d+)\d{6}[^\d]/\$1G\t/ || s/^(\d+)\d{3}[^\d]/\$1M\t/ || s/.*\n//')"

для zsh, заносим в ~/.zshrc

alias dud="(setopt globdots;du -ks * | sort -nr | sed -e 's/^\([0-9]\{1,\}\)[0-9]\{6\}[^0-9]/\1G\t/;t;s/^\([0-9]\{1,\}\)[0-9]\{3\}[^0-9]/\1M\t/;t;d')"
#или альтернативный вариант с perl
alias dud="(setopt globdots;du -ks * | sort -nr | perl -pe 's/^(\d+)\d{6}[^\d]/\$1G\t/ || s/^(\d+)\d{3}[^\d]/\$1M\t/ || s/.*\n//')"

Цифры примерные, так как считается что в мегабайте не 1024 байт, а 1000.

Пример использования:

3
Ваша оценка: Ничего Рейтинг: 3 (4 голоса)
ramok аватар

Подсветка потока ошибок в zsh

Часто сообщения об ошибках теряются в общем потоке вывода данных, и их хотелось бы как нибуть выделять. Тут опять пригодятся глобальные алиасы zsh.

Добавим в ~/.zshrc

autoload colors # подключим цвета
colors
 
alias -g  HE='2>>( sed -ue "s/.*/$fg_bold[red]&$reset_color/" 1>&2 )' # Highlight Errors

После перезагрузки zsh у нас появится глобальный алиас HE который можно использовать на ряду с другими фильтрами. Алиас запускает в фоне sed который подсвечивает строки, и перенаправляет ему в на выход стандартный поток ошибок

Пример работы: мы хотим найти в /etc все файлы в названии которых есть zsh и при этом подсветить в каких каталогах поиск не удался.

Пояснения: строка

$ find /etc HE GI zsh

Развернется в

find /etc 2>>( sed -ue "s/.*/$fg_bold[red]&$reset_color/" 1>&2 ) | grep -i zsh

Глобальный алиас GI описан здесь.
Подсведка результатов grep описана здесь

BUGS: алиас запускает асинхронный процесс подсведки цветов, что обозначает что подсвеченые ошибки могут выводится не синхронно с потоком стандартного вывода.

PS
Для пользователей bash существует полезный скрипт по подсвечиванию потока ошибок для программы переденной как параметр.

5
Ваша оценка: Ничего Рейтинг: 5 (1 vote)