Ответ, который вы, вероятно, видите, указывает не на то, что команды не существуют, а на то, что они «не найдены»:
telemachus ~ $ ifconfig -a bash: ifconfig: command not found
Некоторые сообщения об ошибках бесполезны, но это на самом деле относительно полезно. Слова «не найдены» говорят вам, где проблема. Ваша оболочка (в моем случае это Bash, очевидно) ищет команды по своей $PATHпеременной. Это PATHнабор значений, разделенных двоеточиями. Каждое значение является каталогом, куда идут исполняемые (двоичные) программы, и оболочка ищет команды в порядке слева направо по этой цепочке каталогов. Вот как можно увидеть, каков ваш PATH:
telemachus ~ $ echo $PATH /home/telemachus/bin:/usr/local/bin:/usr/bin:/bin:/usr/games
(Обратите внимание, что регистр имеет значение, PATH все верхнее. Также $имеет значение.) Поэтому моя оболочка ищет команды в binкаталоге в моей домашней папке, затем в /usr/local/bin, затем в /usr/binи т. Д. Порядок имеет значение, потому что иногда у вас будет две версии одной программа, и вы хотите убедиться, что вы найдете конкретный в первую очередь. (У меня в $HOME/binкаталоге есть версия Ruby, отличная от общесистемной, и я хочу, чтобы она была найдена первой.)
Чтобы добавить каталог в PATH, вы обычно можете отредактировать профиль вашей оболочки. В зависимости от того, какой дистрибутив Linux вы используете, этот файл будет называться .profileили .bash_profile, и он будет находиться в вашем домашнем каталоге. Файлы, начинающиеся с .(часто называемые точечными файлами), по умолчанию скрыты. Они не будут отображаться в файловом менеджере GUI, и lsкоманда не увидит их (без помощи). Чтобы увидеть, что присутствует в вашем доме, откройте оболочку (в новой оболочке вы по умолчанию будете находиться в вашем домашнем каталоге) и введите ls -A . -A флаг указывает Ls команду, чтобы показать скрытые файлы. Вы должны увидеть либо .profileили .bash_profile, которые вы можете редактировать. Добавьте двоеточие и полный путь к нужному каталогу (полный путь должен начинаться с/указать свою позицию от корня вашего диска). Вы не хотите двоеточие после последнего значения. Поэтому, если у вас нормальный PATH, вы можете добавить /sbinэтот путь:
PATH=$PATH:/sbin
Тем не менее, все это говорит, что вы все еще не можете получить прямо /sbin/shutdownтаким образом:
telemachus ~ $ /sbin/shutdown -h now shutdown: you must be root to do that!
Дав полный путь к команде, я «нашел» команду, но все равно не смог ее запустить. Некоторые команды, например shutdown, требуют специальных привилегий. Чтобы получить разрешение на выпуск shutdownиз оболочки, вам нужно будет использовать suили в sudoзависимости от того, какую систему вы используете. Я уже написал роман, так что это история для другого дня.