Что эквивалентно команде unix, которая в VMS
У меня есть инструмент XYZ в VMS. Я хочу получить место, где он установлен. Например, в Unix мы можем добиться этого с помощью какой команды. Так что, пожалуйста, помогите мне VMS эквивалент этой команды.
3 ответа
В VMS нет аналогичной команды. Чтобы найти местоположение такого инструмента, это зависит от того, как инструмент настроен в VMS. Команды VMS могут быть командами DCL, или глаголами DCL, или чужими командами, или символами DCL. Я предполагаю, что вы вызываете инструмент xyz, просто набрав "xyz" в командной строке DCL.
Глаголы DCL определены в таблице команд DCL. Ваш системный администратор, возможно, добавил инструмент xyz в одну из командных таблиц DCL, например, с помощью $ SET COMMAND
команда в общесистемной процедуре LOGIN. Если ваш инструмент настроен как команда DCL, вы можете получить и посмотреть на утилиту VERB (эта утилита доступна с бесплатного компакт-диска VMS), которая покажет вам вашу команду XYZ с командой DCl. $ VERB XYZ
, Его выходные данные будут содержать строку "изображение", поэтому все, что находится после этого ключевого слова, является (файлом) спецификацией исполняемого образа инструмента. Каталог по умолчанию здесь SYS$SYSTEM
, что является логическим именем. Помните, что спецификация может быть (полной) спецификацией файла VMS или просто логическим именем.
Для внешних команд - почти всегда используемых для инструментов, портированных из Unix - вы можете проверить наличие символа DCL с помощью команды DCL $ SHOW SYMBOL XYZ
, Если инструмент настроен таким образом, вы увидите вывод типа "XYZ == $file_pecification". Опять же, спецификацией файла может быть (полная) спецификация файла VMS или просто логическое имя.
Кроме того, последние версии VMS поддерживают автоматические внешние команды. Это исполняемые образы (и командные процедуры), которые находятся в директориях /-ах, на которые указывает логическое имя DCL$PATH
, будет автоматически использоваться как чужая команда. Так что ваш инструмент xyz может быть файлом в таком каталоге. Это был бы самый простой способ найти его местоположение: $ DIRECTORY DCL$PATH:XYZ
должен сделать это.
Практический способ найти EXE-образ. Вот что я бы сделал:
0) Спросите своего коллегу или администратора VMS
1) Проверьте чужую команду, например, MYEXE (MYEXE :== $SOMEWHERE:[DIR]MYEXE.EXE
):
SHOW SYMBOL/GLOBAL MYEXE
DIR 'f$string(MYEXE - "$")
2) Проверьте чужую пакетную команду, например, MYCOM (MYCOM :== @SOMEWHERE:[DIR]MYCOM.COM
):
DIR 'f$string(MYCOM - "@")
3) Проверьте определенный командный глагол DCL, например, MYVERB (SET COM MYCOMMANDS.CLD
) - этот самый хитрый, в зависимости от того, как был обработан файл.CLD), вам может понадобиться VERB
утилита (бесплатное ПО VMS) для извлечения подробностей командного глагола из DCLTABLES.EXE
HELP MYVERB
HELP VERB
DIR SYS$SYSTEM:MYVERB.EXE
Однако, если вы дойдете до этой точки в своем поиске, я бы на самом деле просмотрел процедуры LOGIN, вот где такой глагол потенциально мог бы быть установлен из файла.CLD... если только пользовательские DCLTABLES не были прямо установлены. Так что это сложно и должно быть направлено к администратору.
SEARCH SYS$LOGIN:LOGIN.COM MYVERB, "SET COM", ".CLD"
SEARCH SYS$MANAGER:SY*.COM MYVERB, "SET COM", ".CLD"
Тем не менее, проще всего спросить вашего коллегу или вашего дружелюбного администратора VMS... если вы оба не оба:)
Поскольку user2116290 упомянул бесплатное программное обеспечение VERB
Утилиту я вставлю в плагин для другой бесплатной утилиты под названием DFU (для Disk/File Utilities).
DFU может искать в индексном файле тома диска все файлы, соответствующие определенному имени. (Также возможен поиск по дате, размеру файла, владельцу файла и т. Д.).
DFU может сделать много других полезных вещей. Взгляните на сайт, на который я ссылаюсь выше, для получения дополнительной информации.
Ты можешь использовать....
$ PRODUCT SHOW HISTORY
указанная выше команда поможет вам показать установленные продукты.