Лазерная резка круглых и профильных труб gruppservis.ru.

Zsh. Четвёртый рецепт настройки: обычные псевдонимы

Эту секцию начнём с определения самых важных псевдонимов (aliases). Как известно, по умолчанию любая командная оболочка исходит из логичного допущения -- пользователь знает, что делает. И потому команды удаления или копирования файла в другой, уже существующий, будут выполнены незамедлительно. Но все мы люди, все мы человеки, и потому подчас ошибаемся. А ошибки при выполнении указанных операций практически неисправимы (а в случае с копированием -- неисправимы и теоретически).

Так что для начала обеспечим для таких критически важных команд режим запроса подтверждения, достигаемый указанием опции -i.

Однако это ещё не всё. Только что, в предыдущей секции, мы определили режим глобальной автокорреции для команд и аргументов. В большинстве случаев это удобно и жкономит усилия. Но именно в случае команд типа cp или mv становится обременительным -- zsh будет упорно подсовывать нам в качестве второго аргумента имена существующих файлов. А это, как правило, не желательно. Избежать этого можно указанием опции nocorrect для конкретной команды. И это также проще всего сделать посредством механизма alias.

И, наконец, по умолчанию действие команд типа cp или rm распространяется только на файлы текущего каталога, но не вложенных подкаталогов. Тогда как для этих команд обычно (cp) или иногда (rm) желательно рекурсивное выполнение.

Так что для ряда команд мы одним псевдонимом убиваем не двух даже, а сразу трёх зайцев:

alias mv='nocorrect mv -i'
# переименование-перемещение c пogтвepжgeнueм

alias cp='nocorrect cp -iR'
# рекурсивное копирование с подтверждением

alias rm='nocorrect rm -i'
# удаление с подтверждением

alias rmf='nocorrect rm -f'
# принудительное удаление

alias rmrf='nocorrect rm -fR'
# принудительное рекурсивное удаление

alias mkdir='nocorrect mkdir'
# создание каталогов без коррекции

Теперь займёмся определениями псевдонимов для команды ls. Как известно, опции её бесчисленны, и запомнить их нелегко. Но именно они определяют мощь этой команды для получения информации о файловой системе. Так что, дабы каждый раз не чесать в затылке и не беспокоить по пустякам тётю Маню, наиболее востребованные опции пропишем в качестве alias'ов. Для начала позаботимся о визуальном различении ординарных файлов, каталогов и так далее:

alias ls='ls -F'
# вывод символов типов файлов

Представление типа файлов в цвете ныне включено в zsh по умолчанию, так что дополнительной опции на этот счёт команда ls не требует.

Теперь опции формата вывода:

alias ll='ls -l'
# вывog в gлuннoм фopмaтe

alias la='ls -A'
# вывog всех файлов, кромe . u ..

alias li='ls -ial'
# вывog вcex фaйлoв в gлuннoм фopмaтe
# с указанием их inodes

alias lsd='ls -ld *(-/DN)'
# вывод только каталогов

alias lsa='ls -ld .*'
# вывog тoльko dot-фaйлoв

Ну а теперь -- разные полезные (на мой взгляд) псевдонимы:

alias h=history
# упрощение вывода истории команд

alias df='df -h'
alias du='du -h'
# вывод свободного и использованного
# дискового пространства
# в "гуманистическом" представлении

alias less='less -M'
# представление вывода less в more-подобном виде
# (с именем файла и процентом вывода)

alias nano='nano -w'
# запуск в режиме без переноса слов

alias wget='wget -c'
# автоматическое продолжение при
# разрыве соединения

Ну а в принципе количество псевдонимов ограничивается только фантазией пользователя, умеряемой его же здравым смыслом.

. .