что эквивалентно команде unix, которая в VMS

У меня есть инструмент xyz в vms. Я хочу получить место, где он установлен. Например, в unix мы можем добиться этого, используя который command.Пожалуйста, помогите мне с vms-эквивалентом этой команды.


person vikas    schedule 17.08.2016    source источник


Ответы (4)


В VMS нет эквивалентной команды. Расположение такого инструмента зависит от того, как он настроен на VMS. Команды VMS могут быть командами DCL, также известными как глаголы DCL, или внешними командами, также известными как символы DCL. Я предполагаю, что вы вызываете инструмент xyz, просто набрав «xyz» в командной строке DCL.

Глаголы DCL определены в таблице команд DCL. Ваш системный администратор мог добавить инструмент xyz в одну из командных таблиц DCL, например, с помощью команды $ SET COMMAND в общесистемной командной процедуре LOGIN. Если ваш инструмент настроен как команда DCL, вы можете получить и посмотреть на утилиту VERB (эта утилита доступна на бесплатном компакт-диске VMS), которая покажет вам вашу команду XYZ с командой DCl $ VERB XYZ. Его вывод будет содержать строку «image», поэтому все, что следует после этого ключевого слова, является спецификацией (файла) исполняемого образа инструмента. Каталог по умолчанию здесь SYS$SYSTEM, что является логическим именем. Имейте в виду, что спецификация может быть (полной) спецификацией файла VMS или просто логическим именем.

Для внешних команд — почти всегда используемых для инструментов, перенесенных из Unix — вы можете проверить наличие символа DCL с помощью команды DCL $ SHOW SYMBOL XYZ. Если инструмент настроен таким образом, вы увидите вывод типа «XYZ == спецификация $file_». Опять же, спецификация файла может быть (полной) спецификацией файла VMS или просто логическим именем.

Кроме того, последние версии VMS поддерживают автоматические внешние команды. То есть исполняемые образы (и командные процедуры), которые находятся в директориях, на которые указывает логическое имя DCL$PATH, будут автоматически использоваться как сторонние команды. Таким образом, ваш инструмент xyz может быть файлом в таком каталоге. Это будет самый простой способ найти его местоположение: $ DIRECTORY DCL$PATH:XYZ должен это сделать.

person user2116290    schedule 17.08.2016

Поскольку user2116290 упомянул бесплатную утилиту VERB, я добавлю плагин для другой бесплатной утилиты под названием DFU (для дисковых/файловых утилит).

Одна вещь, которую может сделать DFU, — это искать в индексном файле тома диска все файлы, соответствующие определенному имени. (Он также может искать по дате, размеру файла, владельцу файла и т. д.).

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

person g1l1t1    schedule 03.09.2017

Вы можете использовать....

$ PRODUCT SHOW HISTORY

приведенная выше команда поможет вам показать установленные продукты.

person Suresh Dooly    schedule 20.05.2020

Практический способ найти EXE-образ. Вот что я бы сделал:

  1. Спросите своего коллегу или администратора VMS

  2. Проверьте внешнюю команду, например. МАЙЭКС (MYEXE :== $SOMEWHERE:[DIR]MYEXE.EXE):

    SHOW SYMBOL/GLOBAL MYEXE
    DIR 'f$string(MYEXE - "$")
    
  3. Проверьте внешнюю пакетную команду, например. МАЙКОМ (MYCOM :== @SOMEWHERE:[DIR]MYCOM.COM):

    DIR 'f$string(MYCOM - "@")
    
  4. Проверьте определенный командный глагол 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-администратора... если вы не оба из них :)

person vmsdriveby    schedule 26.05.2018