Линукс команда не найдена

Странности Debian

Здравствуйте. Я только что установил Debian на ноутбук. Всё хорошо, но.

Я не могу выключить ПК из консоли.

/home/user# shutdown -h now bash: shutdown: команда не найдена /home/user# reboot bash: reboot: команда не найдена /home/user# halt bash: halt: команда не найдена /home/user# poweroff bash: poweroff: команда не найдена /home/user# 

Иногда графика виснет. Я научился переходить в консоль и убивать процессы. Это Debian тоже не умеет, что за фигня?

/home/user# killall abiword bash: killall: команда не найдена /home/user# 

Или вместо su используй su —

Flotsky ★★ ( 23.06.20 13:25:58 MSK )
Последнее исправление: Flotsky 23.06.20 13:29:49 MSK (всего исправлений: 1)

reboot и прочее в systemd-sysv или в sysvinit , если древний дебиан.

Проверяй, установлены или нет.

И про путь /sbin/reboot уже написали, тоже надо проверить. Как и /usr/bin/killall .

vvn_black ★★★★★ ( 23.06.20 13:31:34 MSK )
Последнее исправление: vvn_black 23.06.20 13:34:22 MSK (всего исправлений: 2)

reboot и прочее в systemd-sysv или в sysvinit, если древний дебиан.

user@debian:~$ apt-cache search psmisc psmisc - утилиты, использующие файловую систему proc user@debian:~$ apt-cache search systemd-sysv systemd - загрузчик системы и служб systemd-sysv - загрузчик системы и служб — ссылки SysV user@debian:~$ 
~$ su - Пароль: ~# /sbin/reboot bash: /sbin/reboot: Нет такого файла или каталога ~# /usr/bin/killall bash: /usr/bin/killall: Нет такого файла или каталога ~# 
~# echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin ~# 
~# dpkg --status psmisc Package: psmisc Status: install ok installed Priority: optional Section: admin Installed-Size: 627 Maintainer: Craig Small Architecture: i386 Multi-Arch: foreign Version: 23.2-1 Replaces: procps (= 2.8), libselinux1 (>= 1.32), libtinfo6 (>= 6) Description: utilities that use the proc file system This package contains miscellaneous utilities that use the proc FS: . - fuser: identifies processes that are using files or sockets. - killall: kills processes by name (e.g. "killall -HUP named"). - peekfd: shows the data traveling over a file descriptor. - pstree: shows currently running processes as a tree. - prtstat: print the contents of /proc//stat Homepage: http://psmisc.sf.net/ ~# dpkg --search killall zsh-common: /usr/share/zsh/functions/Completion/Unix/_killall sysvinit-utils: /sbin/killall5 psmisc: /usr/bin/killall psmisc: /usr/share/man/man1/killall.1.gz bash-completion: /usr/share/bash-completion/completions/killall sysvinit-utils: /usr/share/man/man8/killall5.8.gz ~# 

Всё на месте. Ковыряйся с правами и с PATH.

# ls -l /usr/bin/killall -rwxr-xr-x 1 root root 24248 авг 17 2015 /usr/bin/killall 

vvn_black ★★★★★ ( 23.06.20 13:46:31 MSK )
Последнее исправление: vvn_black 23.06.20 13:56:03 MSK (всего исправлений: 2)

Читайте также:  Powershell from linux to windows

А вот действительно. Почему нельзя PATH уже готовый по дефолту поставлять, а не заставлять пользователей самому его править?

Точно также и с sudo. 99,99% его всё равно сами поставят.

Artamudo ★★★★ ( 23.06.20 13:58:23 MSK )
Последнее исправление: Artamudo 23.06.20 14:00:37 MSK (всего исправлений: 1)

А в какие группы добавлен пользователь?

Debian – это конструктор, а не готовый для использования дистрибутив Linux’а.

При установке Debian’а нужно иметь опыт администрирования Linux-дистрибутивов.

Возможно вам нужно попробовать какой-нибудь уже готовый DEB-based или RPM-based дистрибутив: Ubuntu, Mint, Fedora и пр.

Источник

Ошибка ifconfig команда не найдена

В очень многих инструкциях из интернета советуется использовать команду ifconfig для настройки сети или просмотра информации о ней. Это очень давняя, но удобная утилита, которая имеет простой синтаксис и выводит информацию в простом и правильном виде.

Но когда вы попытаетесь использовать эту команду, то иногда можете получить ошибку ifconfig команда не найдена. Здесь все понятно, команда не найдена, но это довольно популярная утилита, и странно, что она не поставляется по умолчанию. В этой статье мы рассмотрим что делать если вы сталкиваетесь с такой ошибкой и почему так происходит.

Ошибка ifconfig команда не найдена

Первая причина почему вы можете получать эту ошибку, очень проста. Скорее всего, утилита установлена в вашей системе, но интерпретатор bash не может ее найти. Дело в том, что в Linux существует несколько папок для хранения исполняемых файлов. Все утилиты, которые может выполнять только суперпользователь расположены в каталоге /sbin или /usr/sbin.

Соответственно, обычному пользователю не нужно давать доступ к этим файлам, поэтому эти каталоги доступны только root, а в переменную среды PATH, из которой bash берет каталоги для поиска программ для пользователя они даже не добавлены. Проще говоря, вам достаточно только запустить программу от имени суперпользователя:

Если даже после этого вы получаете эту ошибку, то это означает, что программа таки не установлена. Дело в том, что утилита довольно давняя, и некоторым разработчикам показалось, что нужно разработать что-то более совершенное, поэтому была разработана утилита ip. Она имеет больше возможностей и лучше. Но она непривычна и имеет сложный синтаксис. Теперь команда ip используется по умолчанию во многих дистрибутивах, а ifconfig удалена.

Читайте также:  Gcc linux include directories

Таким образом, чтобы исправить ошибку ifconfig команда не найдена вам понадобиться установить пакет ней. Утилита находится в пакете net-tools. Для установки в Ubuntu выполните:

sudo apt install net-tools

sudo dnf install net-tools

sudo yum install net-tools

После завершения установки пакета, а это будет выполнено очень быстро, вы можете пользоваться утилитой и ошибки ifconfig command not found больше не будет. Только запускайте ее с помощью sudo. Если вы решили больше не использовать ifconfig смотрите статью про утилиту ip linux.

Выводы

В этой статье мы рассмотрели что делать если вы встречаете ошибку bash ifconfig команда не найдена, а также почему она возникает. Это одна из самых простых ошибок, исправить ее очень просто. Надеюсь, эта информация была вам полезной.

Обнаружили ошибку в тексте? Сообщите мне об этом. Выделите текст с ошибкой и нажмите Ctrl+Enter.

Источник

Как исправить ошибку “команда не найдена” в Linux

Существуют различные причины, по которым оболочка Linux выдает ошибку «команда не найдена». Вот как это исправить.

Если вы являетесь пользователем Linux, вы, скорее всего, сталкивались с ошибкой “команда не найдена” в терминале Linux.

Часто, когда вы сталкиваетесь с этой ошибкой, вы получаете предложение установить программу, однако существует несколько потенциальных причин ошибки «команда не найдена».

Понимание переменных среды и чувствительности к регистру

Прежде чем мы приступим к устранению распространенных причин ошибки, важно оценить несколько важных свойств команд Linux.

В отличие от Windows, все команды, имена файлов и каталогов в системах Linux и Unix чувствительны к регистру. Это означает, что все команды и их соответствующие аргументы или параметры должны отображаться точно так, как они обозначены. Конечно, большинство команд написаны строчными буквами.

Переменные среды играют важную роль в Linux. Они содержат ценную информацию о вашем сеансе входа в систему и другие важные детали.

Когда вы запускаете команду в Linux, ваша система будет искать в ваших текущих переменных, в частности в переменной PATH, чтобы найти команду или программу, которую вы хотите запустить. Если команда не найдена, вы получите сообщение об ошибке, что она не найдена.

Читайте также:  Tlauncher linux нет звука

1. Проверьте наличие синтаксических ошибок

Вы должны запускать все команды Linux точно так, как они отображаются в регистре. Например, оболочка обрабатывает “ls” и “LS” как разные команды в Linux.

Кроме того, если ваша команда содержит аргументы, убедитесь, что вы используете правильный регистр. Команда ssh для переадресации портов принимает формат:

Аргументы “L” и “N” в этом случае должны быть прописными, иначе вы получите сообщение об ошибке.

В некоторых случаях для параметров или аргументов может потребоваться предшествующий дефис (-) или двойной дефис (—), а некоторые аргументы, возможно, потребуется заключить в кавычки или скобки.

Убедитесь, что вы используете правильную команду. Дважды проверьте написание команды, которую вы пытаетесь использовать, и убедитесь, что вы используете правильный регистр.

2. Укажите путь к вашему исполняемому файлу

Скрипты играют жизненно важную роль в Linux, поскольку они позволяют автоматизировать рутинные задачи. Если вы пишете свою собственную программу Bash или используете некоторые сторонние программы, вам нужно будет указать полный путь к программе для ее успешного выполнения.

Например, когда вы загружаете Open Virtualization Format Tool, вы можете установить его в любой каталог по своему вкусу. Теперь, когда вы пытаетесь запустить команду ovftool из каталога, отличного от того, в котором она была установлена, вы получите сообщение об ошибке “команда не найдена”.

Чтобы выполнить команду правильно, вам необходимо указать полный путь к исполняемому файлу программы. Если, например, вы установили ovftool в каталог / opt / ovf , то для запуска ovftool вам нужно будет использовать следующую команду:

Кроме того, обратите внимание на косые черты. В отличие от Windows, которая использует обратные косые черты, Linux использует прямые косые черты. Используйте функцию автозаполнения вкладок вашего терминала, чтобы избежать опечаток в именах каталогов.

3. Используйте переменные среды

Если вы обнаружите, что указывать целый каталог для команды утомительно, подумайте о добавлении исполняемого файла программы в переменную среды PATH.

Чтобы добавить исполняемый файл программы в PATH, просто запустите команду в следующем формате:

Переменные среды записываются в файл ~/.bashrc в Bash или в файл ~/.zshrc , если вы используете оболочку Z.

Чтобы обновить и применить внесенные изменения к файлу ~/.bashrc без выхода из системы, выполните исходную команду следующим образом:

Вы можете проверить, успешно ли добавлен путь к вашей программе в переменную PATH с помощью команды:

Источник

Оцените статью
Adblock
detector