Для работы с ОС необходимо использование какого-либо инструмента, который позволит из пользовательского пространства обращаться к ядру системы. Сейчас существует два основных способа, которые называются интерфейсом: GUI и CLI. Каждый из них имеет свои преимущества и недостатки. Остановимся на втором, так как именно его в основном используют, при работе и администрировании с nix подобными системами.
Бывает так, что оболочка, в которой работает пользователь выдает ошибку command not found. Разберем, как ее решить в материале.
Как решить проблему и причем тут оболочка?
Чтобы понять в чем корень самой проблемы нужно увидеть, как работает сам механизм взаимодействия с ОС. Разберем кратко, но останавливаясь на каждом из элементов.

Сначала пользователь, находясь в оболочке вызывает shell или же bash, который является тем самым инструментом для управления ОС. В нем он пишет к примеру команду echo “Hello”, после чего терминал отправляет оболочке, а она обращается к ядру за информацией. Кто такой echo и где он сидит? Ядро отвечает и выдает поток на чтение файла, где вывод следующий:

Оболочка считывает переменную PATH, в которой прописано, что все команды нужно искать в папках /bin, /urs/bin и т.д. Предположим, что команда была установлена в рабочую директорию одного из пользователей, и так как она не указана в средах, то и выполнена не будет. А может ее и просто нет? Следовательно, среди пути обращения и работы можем выделить несколько проблем:
- Не прописан путь к ПО в переменных средах, поэтому найти его невозможно;
- Недостаточно прав и привилегий для выполнения поиска ПО в папках;
- Не установлено ПО в системе;
- Ошибка в написании названия ПО.
Пройдемся по каждой и опишем несколько способов решения, возникшей проблемы. Самое простое это решение №1. Возможно, вызываемая вами команда не установлена или установленный пакет использует другую команду для обращения. К примеру, вам необходим редактор nano, доустановим его:
sudo apt install nanoЕсли вы установили к примеру сервис ntp, но напрямую, когда его вызываете он не откликается – значит нужно найти описание пакета!
sudo apt show ntp 
Здесь можно увидеть основные теги, метаинформацию о пакете, а так же Homepage-ссылку на страницу, которая опишет основные команды для этого ПО. Перейдем и просмотрим список:

И уже с помощью них можно работать с сервисом, который предоставит, установившийся пакет. Но, что если эти два способа не подходят и мы скачали ПО вручную и сейчас исполняемый файл лежит в домашней директории? Есть два выхода, это переместиться в саму директорию и запускать из нее:
cd ваш_путь && ./файл_для_запуска В данном случае мы указываем путь для выполнения файла, который находится в данной директории! Либо можем дописать путь к переменной, обратите внимание, то на какую область вы хотите применить переменную – зависит от файла. К примеру, /etc/environment задаст переменную PATH всем пользователям, а если нужен конкретный, то в ~/.bashrc его домашней директории. Перейдем в домашний каталог и откроем файл:
sudo nano ~/.bashrc Добавим путь к строчке PATH, чтобы он начинался с двоеточия, так интерпретатор понимает, где какая директория:
export PATH=$PATH:/home/ваш_пользователь
Данная команда будет запущена, при открытии shell пользователем, будто при первом подключении или же открытие нового процесса. Export обозначает, что необходимо внести переменную, PATH само название переменной, $PATH вызовет предыдущее значение, а :/home/ваш_пользователь будет строкой, которая добавится к общему пути. После чего запустите еще один shell и просмотрите изменения! К примеру, до этого файл gg.sh без явного указания не запустился бы, но сейчас он это может:

При нехватке собственных мощностей можно воспользоваться облачными серверами от Serverspace, для этого перейдем к созданию сервера, на любой из двух платформ vStack cloud или же VMware cloud. Нажмем на кнопку Создать сервер и выберем конфигурацию, подходящую под наши задачи, затем нажмем кнопку Создать:
Скриншот №7 — Создание сервера
Иногда для запуска недостаточно прав, к примеру системные утилиты не будут работать, если не указать напрямую sudo. Это связано с тем, что интерпретатор ищет по пути PATH утилиту, а если она системная, то и доступа у обычного пользователя к папке нет. Поэтому необходимо добавить пользователя в sudoers:
usermod -aG sudo your-username Поле your-username необходимо заменить на логин пользака и выполнить команду повторно, после чего ПО должно запуститься. Больше проблем связанных с не найденной командой интерпретатором bash возникать не должно! В данном материале были рассмотрены практически все способы и варианты решения проблемы!