Перейти к содержимому

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

2

Имея программу в /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

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

558 просмотров
micgeronimo спросил 10 лет назад
M 157

3 ответа

2

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

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

Объяснение:

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

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

rehash 

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

Floris ответил 10 лет назад
F 705
0

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

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

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

Jonatan Öström ответил 10 лет назад
J 155