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

Имея программу в /home/user/Downloads/program/main

Я могу запустить его с помощью следующей команды cd /home/user/Downloads/program && ./main или из графического интерфейса.

Я хочу запустить его из терминала, набрав mainЯ пытался сделать ln -s /home/user/Downloads/program/main /usr/local/bin или /bin но это не имело никакого эффекта.

Перед установкой ссылки я выдал chmod +x команда.

Это скомпилированная программа, я получаю сообщение об ошибке main: command not found

Что я делаю не так?

3 ответа

Похоже, вам нужно добавить этот каталог в ваш путь. Точная команда для этого зависит от того, какая оболочка используется. Для bash вам понадобится что-то вроде:

export PATH=$PATH:/home/user/Downloads/program/

Объяснение:

  • PATH=$PATH сохраняет существующий путь как часть нового создаваемого вами пути.
  • Каталог:/home/user/Downloads/program/ добавляет этот каталог к ​​пути (в конце, так что это последнее, что искали).
  • Экспорт помещает путь в оболочку, чтобы он оставался там. Вам может не понадобиться эта часть для одного сеанса. Однако, если вы хотите сохранить это в будущих сеансах входа в систему, вы захотите добавить это в свой.bashrc (или другой файл, который выполняется при входе в систему).

Когда вы добавляете новую программу в путь, вам нужно набрать

rehash

Чтобы это было известно оболочке.

В качестве быстрого решения вы можете сделать псевдоним. Добавить к вам ~/.bashrc подать это:

alias main='/home/user/Downloads/program/./main' 

тогда беги exec bash в вашем терминале и оно должно работать. Если вы не используете bash, то подобное будет работать для других оболочек. Например, запись в файл ~/.zshrc для zsh ракушка.

Другие вопросы по тегам