Сделать программу способной запускаться из терминала
Имея программу в /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
ракушка.