Возможно вы искали: 'Bird Hunter'

May 15 2025 23:46:59
  • Как сделать 8Gamers.Ru домашней страницей?
  • Игры
    • База данных по играх
    • Игровые новости
    • Игровая индустрия
    • Обзоры на игры
    • Прохождения игр
    • Гайды к играм
    • Превью о играх
    • Игровые тизеры
    • Игровые арты
    • Игровые обои
    • Игровые скриншоты
    • Игровые обложки
    • Игровые трейлеры
    • Игровое видео
    • Вышедшие игры
    • Ближайшие релизы игр
  • Кино и ТВ
    • База данных по кино
    • Статьи о кино
    • Постеры
    • Кадры из кино
    • Кино трейлеры
    • Сегодня в кино
    • Скоро в кино
  • Комиксы и манга
    • Манга по алфавиту
    • База данных по комиксах
    • Читать онлайн комиксы
    • Читать онлайн манга
    • База персонажей
  • Читы и коды
    • Чит-коды для PC игр
    • Чит-коды для консольных игр
    • Трейнеры
    • Коды Game Genie
  • Моддинг
    • Модификации
    • Карты к играм
    • Программы для моддинга
    • Статьи о моддинге
  • Геймдев
    • Всё о создании игр
    • Список движков
    • Утилиты в помощь игроделу
    • Конструкторы игр
    • Игровые движки
    • Библиотеки разработки
    • 3D-модели
    • Спрайты и тайлы
    • Музыка и звуки
    • Текстуры и фоны
  • Рецензии
    • Игры
    • Кино
    • Аниме
    • Комиксы
    • Мангу
    • Саундтреки
  • Саундтреки
    • Лирика
  • Файлы
    • Патчи к играм
    • Русификаторы к играм
    • Сохранения к играм
    • Субтитры к кино
  • Медиа
    • Видео
    • Фото
    • Аудио
    • Фан-арты
    • Косплей
    • Фото с виставок
    • Девушки из игр
    • Рисунки
    • Рисуем онлайн
    • Фотохостинг
  • Юмор
    • Анекдоты
    • Афоризмы
    • Истории
    • Стишки и эпиграммы
    • Тосты
    • Цитаты
  • Флеш
    • Азартные
    • Аркады
    • Бродилки
    • Гонки
    • Для девочек
    • Для мальчиков
    • Драки
    • Квесты
    • Леталки
    • Логические
    • Мультфильмы
    • Открытки
    • Приколы
    • Разное
    • Спорт
    • Стратегии
    • Стрелялки
Статистика

Статей: 87772
Просмотров: 96161170
Игры
Injustice:  Gods Among Us
Injustice: Gods Among Us
...
Dark Souls 2
Dark Souls 2
Dark Souls II - вторая часть самой хардкорной ролевой игры 2011-2012 года, с новым героем, сюжето...
Battlefield 4
Battlefield 4
Battlefield 4 - продолжение венценосного мультиплеер-ориентированного шутера от первого ли...
Кино
Steins;Gate
Steins;Gate
Любители японской анимации уже давно поняли ,что аниме сериалы могут дать порой гораздо больше пи...
Ку! Кин-дза-дза
Ку! Кин-дза-дза
Начинающий диджей Толик и всемирно известный виолончелист Владимир Чижов встречают на шумной моск...
Обзоры на игры
• Обзор Ibara [PCB/PS2] 18360
• Обзор The Walking ... 18804
• Обзор DMC: Devil M... 19880
• Обзор на игру Valk... 15878
• Обзор на игру Stars! 17765
• Обзор на Far Cry 3 17950
• Обзор на Resident ... 16024
• Обзор на Chivalry:... 17510
• Обзор на игру Kerb... 17981
• Обзор игры 007: Fr... 16620
Превью о играх
• Превью к игре Comp... 17960
• Превью о игре Mage... 14464
• Превью Incredible ... 14723
• Превью Firefall 13481
• Превью Dead Space 3 16335
• Превью о игре SimC... 14732
• Превью к игре Fuse 15443
• Превью Red Orche... 15542
• Превью Gothic 3 16347
• Превью Black & W... 17355
Главная » Статьи » Разное » Командный процессор Zsh (shell zsh)

Командный процессор Zsh (shell zsh)

Ключевые слова: shell, zsh, (найти похожие документы)

From: Alex Ott <http://xtalk.msk.su/~ott>
Newsgroups: http://xtalk.msk.su/~ott
Date: Mon, 25 Dec 2003 14:31:37 +0000 (UTC)
Subject: Командный процессор Zsh

Оригинал: http://xtalk.msk.su/~ott/linux/zsh/Zsh-article.html


В этой статье мы предполагаем, что читатель уже имеет навыки работы с одним
из распространенных командных процессоров UNIX и поэтому сосредоточимся на
отличительных возможностях Zsh.

Zsh -- командный процессор UNIX, который может использоваться как командный
процессор для скриптов, так и интерактивная оболочка. Zsh обладает
множеством возможностей, среди которых -- настраиваемый механизм дополнений
(completiotions), редактирование командной строки, механизм сохранения
историй, встроенное исправление неправильных комманд.

По возможностям zsh наиболее сильно похож на ksh, но при этом обладает еще
множеством расширений.

Свежие версии zsh доступны с сервера www.zsh.org и его зеркал. Кроме этого
zsh часто включают в состав популярных дистрибутивов Linux и других
вариантов UNIX.

* Запуск

Обычно zsh указывают в качестве интерактивной оболчки для входа в
систему. Но кроме этого zsh можно запускать с разными ключами, определяюзими
его поведение. Например, ключ -r заставляет zsh работать в "ограниченном"
режиме, ключ -c указывает откуда читать команды для выполнения, а ключ -i
заставляет работать в интерактивном режиме.

При работе в "ограниченном" режиме запрещается выполнять некоторые действия:
изменять каталог, запускать программы с помощью команды exec, перенаправлять
вывод в файлы, изменять значение переменных среды, используемых при запуске
программ, а также запускать программы, используя их абсолютные имена.

При запуске zsh старается эмулировать sh или ksh, в зависимости от того, под
каким именем его запустили. В режиме эмуляции не исполняются обычные скрипты
инициализации/завершения работы zsh. Для инициализации используются файлы
/etc/profile и $HOME/.profile

** Файлы, используемые при запуске

При запуске zsh читается некоторое количество файлов, содержащих команды
инициализации. В первую очередь читается файл /etc/zshenv, затем читается
файл $ZDOTDIR/.zshenv. Затем, если запускаемый процесс используется для
входа в систему, то читаются файлы /etc/zprofile и
$ZDOTDIR/.zprofile. Затем, если оболочка является интерактивной, читаются
файлы /etc/zshrc и $ZDOTDIR/.zshrc. И наконец, если процесс используется для
входа в систему, то читаются файлы /etc/zlogin и $ZDOTDIR/.zlogin.

Когда происходит выход из оболочки, использовавшейся для входа в систему, то
читаются файлы $ZDOTDIR/.zlogout и затем /etc/zlogout.

Если переменная ZDOTDIR не установлена, то вместо нее используется значение
перменной HOME. Файл /etc/zshenv читается при запуске любого процесса zsh,
поэтому он жолжен быть настолько малым, насколько это возможно.

Все перечисленные файлы могут быть откомпилированны с помощью команыд
zcompile. Откомпилированные файлы имеют расширение .zwc, и загружаются в том
случае, если они новее исходного файла.


* Грамматика команд



* Перенаправление вывода

Zsh поддерживает такое же перенаправление вывода как и bash, но кроме этого
он поддерживает множество расширений. Некоторые расширения работыют только
если заданы соответствующие настройки. Например, если не задана опция
CLOBBER, то использование команды > для существующего файла приведет к
возникновению ошибки и невыполнению команды. На этот случай, для практически
всех команд существуют их модификации, которые не зависят от
настроек. Например, для команды > существуют ее модификации >! и >|.

Для одновременного перенаправления стандартного вывода и стандартного потока
сообщений об ошибках определены дополнительные команды >&, &>, >>&, &>> и их
модификации со знаками | и ! (например, &>|). Эти команды соответственно
переписывают и дополняют информацию в указанных файлах. Эти команды
позволяют избавиться от неуклюжих конструкций вида 1>FNAME 2>&1.

Zsh также позволяет перенаправлять информацию более чем в один файл,
аналогично использованию команды tee (это доступно только если определена
переменная MULTIOS, что обычно указано по умолчанию). Кроме этого можно
одновременно использовать перенаправление и конвейры. Например, команда date
>foo | cat запишет дату в файл foo и выведет ее в стандартный поток вывода.

Если установлена переменная MULTIOS, то имя файла, указанное в качестве
того, куда перенаправлять информацию, подвергается раскрытию шаблонов
(globbing). Таким образом можно использовать команду : > * для обрезания
всех файлов в текущем каталоге.

Множественное перенаправление также работает и при вводе информации,
позволяя заменять конструкции вида cat foo fubar | sort на конструкции sort
<foo <fubar или даже sort <f{oo,ubar}.

Zsh даже позволяет использовать перенаправление без указания команды. Если
не установлена переменная NULLCMD, то при таком использовании будет
возникать ошибка. Но если установлена переменная NULLCMD, или READNULLCMD
(она имеет преимущество над NULLCMD), то эти команды будут использоваться
для обработки данных. По умолчанию NULLCMD имеет значением команду cat, а
READNULLCMD значением команду more. Таким образом команда < file приведет к
показу указанного файла.

* Функции

Zsh позволяет пользователю определять собственные функции, которые могут
выполняться точно также как и обычные программы. Функции выполняются в том
же процессе, что и вызвавшая их программа. При вызове функции аргументы
передаются как позиционные параметры.

Для ускорения загрузки zsh может использовать автоматически загружаемые
функции, когда они только объявляются, но не считываются. При первом
использовании такой функции происходит ее считывание и компиляция. Для
объявления автоматически загружаемой функции используется встроенная команда
autoload (или ее налоги `functions -u' и `typeset -fu'). Поиск определений
функций осуществляется по каталогам перечисленным в переменной fpath.

Кроме обычных функций, zsh позволяет определять функции со специальным
значением. Так, например, функция chpwd вызывается при изменении рабочего
каталога, а функции precmd и preexec выполняются перед каждым выводом
приглашения и перед выполнением считанной команды, соответственно. Кроме
того, может быть определена функция periodic, которая может выполнятся через
каждые $PERIOD (если этот параметр определен) секунд перед выводом
приглашения.

* Задания

Zsh работает с задачами подобно bash, но при этом имеется возможность более
гибко работать с заданиями запущенными в фоновом режиме. Кроме команды &,
которая используется для запуска задачи в фоновом режиме, также определены
команды &| или &!, которые запускают программу, которая не будет иметь
записи в таблице задач и с которой нельзя работать обычнымм функциями работы
с заданиями.

Для ссылки на задания можно использовать специальные переменные: %NUMBER ---
для ссылки на задание номер NUMBER (как в bash); %STRING и %?STRING --- для
ссылки на задания, чьи командные строки начинаются и содержат строку STRING,
соответственно; %% (или %+) и %- для ссылки на текущее и предыдущее задание.

* Подстановка переменных

Zsh имеет множество расширений в области различных подстановок. По
назначению подстановки можно разделить на две группы: Подстановки в строке
приглашения и прочие подстановки. Подстановки в строке приглашения могут
использовать функции из группы "прочие подстановки".

** Подстановки в строке приглашения

Zsh позволяет пользователю очень гибко настроить строки приглашения
командного процессора. Для этого используются различные подстановки. С их
помощью можно выделять цветами части текста в командной строке, помещать
строку с текущим каталогом в строку окна терминала и многое другое.

Для приглашения командной строки существует разделение на левую и правую
часть приглашения. Кроме привычных переменных, таких как PS1 и PS2, также
существуют их аналоги, имена которых начинаются с буквы R. Например, это
позволяет вынести в правую часть часы, которые показывают время выведения
приглашения.

Полное описание всех возможных подстановок для строки приглашения можно
найти в справке по zsh.

*** Темы для строки приглашения

Благодаря возможностям zsh пользователи пишут различные модули
расширения. Одним из таких модулей является модуль для установки тем для
строк приглашения. Этот модуль загружается с помощью команд:

autoload -U promptinit
promptinit

и позволяет пользователям использовать заранее подготовленные темы для
приглашений. Команда prompt -p выдает примеры всех установленных тем строки
приглашения.

** Прочие подстановки

Все остальные подстановки выполняются в пять шагов, в перечисленном ниже
порядке.

1. Сначала выполняются подстановки в истории. На этом этапе подставляются
строки из истории, которые соответствуют заданным командам. См. раздел
Подстановки истории

2. Затем выполняется раскрытие псевдонимов (алиасов). Раскрытие алиасов
выполняется немедленно, до того, как командная строка будет разобрана.

3, Затем выполняется подстановка процессов, параметров, команд, раскрытие
арифметических выражений, и затем уже раскрытие выражений в скобках. Каждый
из этих этапов подробно описан в справке по zsh.

4. Раскрытие имен файлов. На этом этапе происходит подстановка комбинаций
строк и чисел с символом ~. Если используется комбинация с числом, то
каталог берется из стека каталогов. Если используется строка, то она
используется как имя пользователя, и вместо сочетания ~ со строкой
подставляется домашний каталог соответствующего пользователя.

5. И на последнем шаге происходит генерация имен файлов
(globbing). См. раздел Генерация имен файлов

Полный перечень всех шаблонов и настроек вы сможете найти в справке по zsh.

*** Подстановки истории

Система подстановок истории zsh немного отличается от подстанов истории в
командном процессоре bash. В zsh сделано много добавлений, которые позволяют
получить доступ к нужным аргументам выполненных команд, а также выполнить
разные модификации аргументов.

Подстановки истории zsh позволяют указать какое слово из команды нужно
задействовать. Для этого используются следующие указатели слов:

:0 -- первое слово в командной строке

:n -- n-й аргумент

:^ -- 1-й аргумент (аналогично :1)

:$ -- последний аргумент строки

:X-Y -- аргументы с X по Y

:X- -- все аргументы начиная с X кроме последнего

:* -- все аргументы

:X8 -- все аргументы начиная с X (аналогично :X-$)

Кроме этого, в подстановках истории, после указателей слов, можно
использовать модификаторы, которые позволяют выполнять различные
подстановки в истории. Так, например, модификатор :h работает подобно
использованию команды dirname, а модификатор :t работает подобно
команде basename. Полный список модификаторов можно получить в
руководстве по zsh.

*** Генерация имен файлов

Zsh предоставляет множество дополнений и настроек по генерации имен
файлов.

**** Операторы глоббинга

Кроме стандартных символов (таких как *, ?, [...]), используемых для
генерации имен файлов в других командных процессорах, в zsh определены
дополнительные операторы глоббинга, такие как:

^X -- совпадает с любым кроме X. Например, ^*.elc будет соответствовать всем
файлам, кроме тех которые указаны в маске (в нашем случае это файлы с
расширением .elc).

X~Y -- совпадает со всем, что соответсвует шаблону X, и не
соответсвует шаблону Y. Например, *.el*~*.elc соответствует всем
файлам, чье расширение начинается с .el, но при этом не будут
учитываться файлы с расширением *.elc.

X# -- сответствует нулю или нескольким вхождениям шаблона X.

X## -- сответствует одному или нескольким вхождениям шаблона X.

**** Флаги глоббинга

Флаги глоббинга используются для воздействия на шаблон, который стоит
правее указанного флага. Все флаги имеют форму (#X), где X определяет
нужный модификатор. Ниже приведено описание нескольких флагов, которые
могут наиболее часто использоваться в работе

i -- делает шаблон не зависимым от регистра символов, которые в нем
применяются;

l -- заставляет символы в нижнем регистре, которые используются в
шаблоне, соответствовать символам и в вернем и нижнем
регистре. Символы в верхнем регистре, будут соотвествовать точно тем
же символам;

I -- локально отменяет воздействие флагов l и i;

другие флаги, описаны в руководстве по zsh.

**** Квалификаторы глоббинга

При генерации имен файлов могут использоваться квалификаторы
глоббинга, так что пользователь может указывать какие типы файлов
будут подпадать под под генерацию имен. Квалификаторы указываются в
конце шаблона и заключаются в круглые скобки. Среди квалификаторов
есть например,

. для указания обычных файлов

/ для указания каталогов

= для указания сокетов

и многие другие (можно указывать права доступа, времена модификации
файлов и т.п.). Их полное описание можно найти в руководстве по zsh.

**** Рекурсивный глоббинг

zsh позволяет производить рекурсивное раскрытие имен файлов. Для этого
используются формы **/ и ***/ Первая форма отличается от второй лишь
тем, что не следует по символьным ссылкам. Так, например ls **/foo
произведет поиск файлов с именем foo во всех подкаталогах.

Эти формы не могут комбинироваться с другими формами в одном
шаблоне. При одновременном использовании данных форм с другими,
оператор * приобретает свое обычное значение.

???

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

* Параметры и настройки

В zsh различаются параметры и настройки. Параметры используются для передачи
и хранения данных, а настройки используются для управления поведением zsh.

** Параметры

Каждый параметр имеет имя, значение и набор аттрибутов. Имя может состоять
из букв, цифр и специальных знаков. Значениями могут быть числа (целые),
строки, массивы и хеши (ассоциативные массивы).

Для объявления типов параметров, или присвоения целого или строкового
значения параметру, используется встроенная команда typeset. Значения
строкового или целого типа могут присваиваться простым приравниванием --
ИМЯ=ЗНАЧЕНИЕ. Для присваивания других типов параметров используется команда
typeset.

Позиционные параметры используются для доступа к аргументам командной строки
для функции или скрипта командного процессора. Специальные параметры *, @ и
argv являются массивами, которые содержат все позиционные параметры.
Позиционные параметры могут быть изменены после запуска скрипта или функции
с помощью встроенной команды set.

** Настройки

Настройки устанавливаются с помощью встроенной команды setopt, а удаляются с
помощью команды unsetopt.

* Дополнения (completitions)

Дополнения обеспечивают набор строки за вас. Оно может быть в разных
формах, но для его выполнения (обычно) используется клавиша TAB.

В zsh дополняться может все что угодно: имена и пути файлов; имена
встроенных и внешних команд, а также их ключи; имена переменных среды;
имена пользователей и компьютеров, а также многое другое. zsh имеет в
своей поставке некоторое количество определений дополнений для основых
программ операционных систем.

Существует несколько форм задания дополнений в командной строке. Ниже
приведены краткие описания этих форм.

** Виджеты дополнений



** Подсистема дополнений




** Дополнения с использованием compctl

Данный метод аналогичен по настройке тем дополнениям, что применяются в csh
& tcsh и является немного устаревшим, так что новые пользователи скорее
всего предпочтут использовать другие методы определения дополнений, но он
все равно поддерживается текущими версиями zsh.

Задание дополнений с помощью данного метода имеет общую форму

compctl ключи [command ...]

Определение дополнения начинается с ключевого слова compctl и
заканчивается списком команд для которых будет действовать
дополнение.

Ключи определяют типы параметров которые будут подпадать под
дополнение (ключи командной строки, списки выполняемых заданий, и
т.п.).

Ключ -k указывает, что параметры, которые будут дополняться, будут
переданы в массиве. Это ключ очень полезен, когда у вас списки
параметров приведены в файле, или заданы в явной форме. Так, можно
явно задать список серверов, имена которых будут дополняться при
использовании команды ssh.

compctl -k "( server1 server2 )" ssh

в том случае, если у вас много серверов, то вы можете перечислить их в
файле и вместо явного перечисления указать в скобках команду для
получения содержимого нужного файла (в нашем примере пусть это будет
~/.servers):

compctl -k "( ` cat ~/.servers ` )" ssh

Ключ -K позволяет пользователю указать функцию, которая будет
вызываться для получения списка дополняемых параметров.

Другие ключи команды compctl описаны в справочном руководстве по zsh.

* Модули Zsh

** Модуль редактирования коммандной строки

** Модуль zftp

** Другие модули Zsh



* Дополнительные источники информации

www.zsh.org , http://zsh.sunsite.dk/Doc/

Zsh User Manual - в процессе написания (http://zsh.sunsite.dk/Guide/)

Zsh FAQ -- http://www.zsh.org/FAQ/
818 Прочтений •  [Командный процессор Zsh (shell zsh)] [08.05.2012] [Комментариев: 0]
Добавил: Ukraine Vova
Ссылки
HTML: 
[BB Url]: 
Похожие статьи
Название Добавил Добавлено
• Командный процессор Zsh (shell zsh) Ukraine Vova 08.05.2012
Ни одного комментария? Будешь первым :).
Пожалуйста, авторизуйтесь для добавления комментария.

Проект входит в сеть сайтов «8Gamers Network»

Все права сохранены. 8Gamers.NET © 2011 - 2025

Статьи
Рецензия на Pressure
Рецензия на Pressure
Чтобы обратить на себя внимание, начинающие маленькие разработчики, как правило, уходят в жанры, ...
Рецензия на Lost Chronicles of Zerzura
Рецензия на Lost Chron...
Игры, сделанные без любви и старания, похожи на воздушный шар – оболочка есть, а внутри пусто. Lo...
Рецензия на The Bridge
Рецензия на The Bridge
«Верх» и «низ» в The Bridge — понятия относительные. Прогуливаясь под аркой, можно запросто перей...
Рецензия на SimCity
Рецензия на SimCity
Когда месяц назад состоялся релиз SimCity, по Сети прокатилось цунами народного гнева – глупые ош...
Рецензия на Strategy & Tactics: World War 2
Рецензия на Strategy &...
Название Strategy & Tactics: World War II вряд ли кому-то знакомо. Зато одного взгляда на ее скри...
Рецензия на игру Scribblenauts Unlimited
Рецензия на игру Scrib...
По сложившейся традиции в информационной карточке игры мы приводим в пример несколько похожих игр...
Рецензия на игру Walking Dead: Survival Instinct, The
Рецензия на игру Walki...
Зомби и продукция-по-лицензии — которые и сами по себе не лучшие представители игровой биосферы —...
Обратная связь | RSS | Донейт | Статистика | Команда | Техническая поддержка