Создание исполняемого скрипта

3

Я пытаюсь выполнить программу (Usearch или samtools), просто набрав название программы (например, usearch [options]) из любого места. Я использую Ubuntu.

В инструкциях говорится: «добавьте двоичный файл в свой путь, чтобы сделать его доступным в командной строке» Но я не знаю, что это значит или как это сделать. Поиск в Интернете выявил вещи, которые были над моей головой.

Может ли кто-нибудь дать мне простой шаг за шагом, как это сделать?

Gaius Augustus
источник
Как я уже сказал в своем вопросе, я огляделся по сторонам, и ответы не были настолько тупыми, чтобы я мог понять. Я искал простой ответ, который мог бы понять.
Gaius Augustus

Ответы:

7

msgstr "добавить двоичный файл в ваш путь, чтобы сделать его доступным в командной строке"

В Unix PATH это переменная окружения который определяет, где оболочка ищет исполняемые программы для запуска при вводе их в командной строке. Если вы делаете:

echo $PATH

Вы можете увидеть, что ваш PATH похоже. Все каталоги на PATH Затем выполняется поиск (по порядку) при вводе команды (например, ls ). Например, мой $ PATH:

.:/usr/local/bin:/usr/bin:/bin

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

Вам нужно убедиться, что ваш скрипт исполняемый ( chmod +x myscript ), а затем он должен быть в одном из каталогов в PATH переменная.

Установление локальных скриптов и программ в каталогах bin системы считается несколько плохой практикой. Обычно я помещаю что-то вроде следующего в конфигурационный файл запуска моей оболочки, который .profile но может быть .bashrc или же .zshrc в зависимости от оболочки:

export PATH=$HOME/bin:$PATH

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

Если вы хотите установить свой сценарий для всех пользователей вашей системы, то лучше всего использовать этот сценарий. /usr/local/bin, Вы должны убедиться, что /usr/local/bin на вашем пути, используя вышеуказанный механизм.

Так что вам нужно:

  1. Сделайте вашу программу исполняемой ( chmod +x my-program )
  2. Может быть, добавьте свой собственный локальный каталог bin или /usr/local/bin на ваш .profile,
  3. Установите его в каталог в вашем PATH среда.
Gray
источник
1
Спасибо. Я смог использовать свою программу из папки «Документы», набрав «PATH = $ PATH: / $ HOME / Documents». После создания папки bin (и помещения в нее моего исполняемого файла) в моей домашней папке я добавил в файл .bashrc следующее: «export PATH = $ HOME / bin: $ PATH». Я закрыл терминал и снова открыл его. Когда я печатаю файл (например, usearch), он теперь отображает информацию об использовании.
Gaius Augustus
2

Вам нужно будет добавить каталог bin в переменную PATH.

Если вы введете «echo $ PATH» в своем терминале, он отобразит строку путей. Теперь вам нужно знать, где находится установка программ, и убедиться, что ваш PATH содержит соответствующий каталог bin. Попробуйте выполнить «PATH = $ PATH: / Path-to-bin /» в своем терминале, теперь вы сможете выполнить нужную программу, просто набрав, например, Usearch

Это может раздражать добавление каталога bin в PATH для каждого окна терминала, к счастью .bashrc (расположенный в ~ /) запускается со временем, когда вы открываете новый терминал. Таким образом, вы можете добавить строку «PATH = $ PATH: //» в ваш .bashrc, используя вашу любимую программу редактирования (т.е. «vim ~ / .bashrc»).

.Bashrc - это скрытый файл. Поэтому, набрав «ls», вы не получите список .bashrc, попробуйте «ls -la», чтобы увидеть, что .bashrc - ваш домашний каталог.

Надеюсь, это поможет, дайте мне знать, если у вас есть более конкретные вопросы.

Удачи!

Josh Jobin
источник
Спасибо! Это мне очень помогло. Просто чтобы добавить других начинающих, нуждающихся в помощи: я просмотрел мой файл .bashrc, набрав в терминале «gedit ~ .bashrc» следующее (ссылка: ubuntuforums.org/showthread.php?t=2158436 ). Затем я следовал инструкциям, приведенным выше, в ответ на Грей.
Gaius Augustus