Debian reboot команда не найдена

Обновлено: 29.06.2024

man - эта команда выводит справочную информация по нужной вам команде, такую как синтаксис, ключи, описание и т.д. Синоним info.
sudo - переход в режим суперпользователя (после первой команды sudo необходимо ввести пароль пользователя).
Для запуска в терминале команды с правами администратора просто наберите перед ней sudo. Пример: sudo reboot

Команды для работы с файлами

pwd – показать текущий каталог
cd - переход в заданную папку
ls - показывает список файлов текущей папки, с ключом -l показывает дополнительные сведения о файлах
cp - копирование файлов/папок
mv - перемещение файлов/папок
rm - удаление файлов/папок, с ключем -R удаляет и все вложенные папки
mkdir - создать папку
rmdir - удаление пустой папки
chmod - изменить права доступа к файлу.

Команды для работы с пакетами

Это одна команда (утилита) с разными ключами.
apt-get update - обновление информации о пакетах из репозиториев
apt-get upgrade - обновление всех пакетов
apt-get clean - очищает локальный репозиторий, т.е. удаляет всё, что вы ранее скачивали. Очень полезно иногда прогонять для очистки диска.
apt-get autoremove - удаление ранее скачаных, но более ненужных пакетов
apt-get remove - удаление пакета из системы, с сохранением его конфигурационных файлов
apt-get purge - удаление пакета со всеми зависимостями
apt-get install - установка пакета.

Управление процессами

ps - показывает текущие активные процессы
kill - команда отправляет сигнал прекращения работы тому или иному процессу, используется для прекращения работы зависшего приложения
killall - прекращение работы всех процессов, соответствующих заданным параметрам
top - интерактивный список текущих процессов, отсортированных по % использования центрального процессора.

Сетевые команды

ifconfig - выводит информацию о сетевых интерфейсах (в windows используется ipconfig)
pppoeconf - комманда настройки подключения к интернет
ping host – пропинговать host и вывести результат
whois domain – получить информацию whois для domain
route host - показать путь прохождения пакетов, от вас к host
wget file – скачать file
ssh user@host – подключится к host как user
ufw enable - включить фаервол
ufw disable - выключить фаервол.

bash не "признаёт" команды останова системы из под рядовых пользователей

На самом деле это единственный раздел про unix на этом форуме

Модератор: /dev/random

bash не "признаёт" команды останова системы из под рядовых пользователей

При вызове на Slackware 12.2 из под рядового пользователя (не root-а) halt, reboot, shutdown, poweroff bash ругается, что не знает таких команд. Попробовал добавить соответствующие алиасы в /etc/bashrc. Попутно не обнаружил файла bashrc ни в /etc, ни где бы то ни было ещё на машине. Создал его в /etc, прописал там алиас на reboot Проблема сохранилась.
Увидел, что у рядовых пользователей в отличие от root-а в $PATH нету пути до /sbin. Создал в /usr/bin символьный линк на /sbin/reboot (проверил, чтобы у рядового пользователя в $PATH был прописан /usr/bin). bash по прежнему отказался признавать reboot.
Предположил, что это последствия запрета по умолчанию на останов системы для рядовых пользователей. Прописал в sudoers алиас команд останова системы: Попутно добавил соответствующие алиасы в /etc/bashrc: Проблема осталась.
Дальше фантазия закончилась. В чём может быть проблема? дать команду через полный путь пробовали?
Что говорит /sbin/shutdown --help ? дать команду через полный путь пробовали?
Что говорит /sbin/shutdown --help ?
При команде с полным путём bash перестаёт ругатся, что не знает таких команд, и говорит, что нужно быть суперюзером. Т.е. корень моей проблемы не в правах, а именно в том, что bash не видит соответствующих программ в /sbin.
Кроме того, настораживает, что по умолчанию файла /etc/bashrc не существовало, пришлось его создавать самому. Подозреваю, что и после этого bash его не воспринял. Поэтому и прописанные там алиасы не сыграли. Может надо где-то какую-то опцию указать, чтобы bash его зохавал? Или в слаквари файл настроек баша лежит не там/называется по-другому?

делайте выводы, либо пропишите задание переменной окружающей среды PATH непосредственно в .bash_profile

Ещё один вариант:
пропишите значения PATH прямо в /etc/profile

Таки советую осилить sudo, или выключать машину из под root'a.

делайте выводы, либо пропишите задание переменной окружающей среды PATH непосредственно в .bash_profile

Ещё один вариант:
пропишите значения PATH прямо в /etc/profile

Ну это относится, я так понимаю, к .bashrc, который свой у каждого пользователя и лежит у каждого пользователя в домашней папке. Я же хотел создать через bashrc алиасы для всех пользователей через редактирование bashrc, который в /etc/ лежит. Точнее должен лежать, но в моём случае его почему то там не оказалось. Аналогично насчёт .bash_profile. Менять каждому пользователю персональные настройки в данном случае ИМХО не кошерно. Кошерно ИМХО поменять общие настройки. Вот только никак не соображу, как это сделать. Писать в $PATH путь до /sbin/ тоже не хочется, ибо тогда всем станут доступны все программы, которые там лежат (какая-никакая, а защита от дурака). Оптимальный вариант в данном случае ИМХО алиас. Осталось только сообразить куда его написать

Таки советую осилить sudo, или выключать машину из под root'a.
Причём тут sudo? Как может сыграть sudo, если bash не знает какую команду через него выполнять? Я ещё раз повторяю: проблема не в недостатке прав - при этом bash сообщает, что для выполнения команды необходимо быть суперюзером. В моём же случае bash ругается, что не знает таких команд, как reboot, poweroff и т.д. И sudo никак не может помочь bash-у "узнать" эти команды. Оно может помочь разве что выполнить эти команды, когда bash их уже "знает". Причём тут sudo? Как может сыграть sudo, если bash не знает какую команду через него выполнять? Я ещё раз повторяю: проблема не в недостатке прав - при этом bash сообщает, что для выполнения команды необходимо быть суперюзером. В моём же случае bash ругается, что не знает таких команд, как reboot, poweroff и т.д. И sudo никак не может помочь bash-у "узнать" эти команды. Оно может помочь разве что выполнить эти команды, когда bash их уже "знает".
Щито? P_P осильте таки man sudo, или хотя бы погуглите, чтоб не нести такую чушь.
По порядку. Когда вы пытаетесь запустить программу , лежающюю в /sbin, баш естественно о ней не знает, потому что не ищет ее там. Но вот вы догадались запустить программу через полный путь, но тут опять загвоздка - большинство программ лежащих в /sbin проверяют euid (эффективный идентификатор пользователя), который у вас равняется реальному (uid). Это можно обойти либо поставив suid бит на файл программы, либо запустив через sudo из под рута. Щито? P_P осильте таки man sudo, или хотя бы погуглите, чтоб не нести такую чушь.
По порядку. Когда вы пытаетесь запустить программу , лежающюю в /sbin, баш естественно о ней не знает, потому что не ищет ее там. Но вот вы догадались запустить программу через полный путь, но тут опять загвоздка - большинство программ лежащих в /sbin проверяют euid (эффективный идентификатор пользователя), который у вас равняется реальному (uid). Это можно обойти либо поставив suid бит на файл программы, либо запустив через sudo из под рута.
Вы хотя бы для разнообразия читаете, что вам пишут? Ну хотя бы каждый второй пост? man sudo я читал. И судя по всему получше вашего, раз понимаю, что sudo не спасёт от того, что баш естественно о ней не знает, потому что не ищет ее там
  • bash не знает про команды останова, т.к. не знает про программы лежащие в /sbin/
  • у обычного пользователя нету прав на выполнение этих программ

По теме
Раскурка стартовых скриптов баша показала, что алиасы в /etc/bashrc не помогают по одной простой причине - они не создаются. А не создаются они потому что /etc/bashrc нигде в ходе запуска bash-а не вызывается. Соотетственно проблему решил следующим образом: создал скрипт, создающий соответствующие алиасы и положил его в /etc/profile.d/. Алиасы естественно делал с вызовом через sudo:

В sudoers оставил разрешения на выполнение этих команд для членов группы power, как указано в первом посте.
Проблема решена. Тему можно закрывать. 1. bash не знает про команды останова, т.к. не знает про программы лежащие в /sbin/
2. у обычного пользователя нету прав на выполнение этих программ

$ ifconfig bash: ifconfig: команда не найдена [16:55]note:

$ sudo ifconfig lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:38 errors:0 dropped:0 overruns:0 frame:0 TX packets:38 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2984 (2.9 KiB) TX bytes:2984 (2.9 KiB) wlan0 Link encap:Ethernet HWaddr 00:1c:bf:54:ae:66 inet addr:192.168.1.63 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::21c:bfff:fe54:ae66/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:777933 errors:0 dropped:0 overruns:0 frame:0 TX packets:472017 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1140888116 (1.0 GiB) TX bytes:42762823 (40.7 MiB) [17:02]note:

$ sudo ifconfig eth1 up [17:02]note:

$ sudo ifconfig eth1 Link encap:Ethernet HWaddr 00:1e:33:07:9c:c7 UP BROADCAST MULTICAST MTU:1500 Metric:1 RX packets:0 errors:0 dropped:0 overruns:0 frame:0 TX packets:0 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:0 (0.0 B) TX bytes:0 (0.0 B) Interrupt:17 lo Link encap:Local Loopback inet addr:127.0.0.1 Mask:255.0.0.0 inet6 addr: ::1/128 Scope:Host UP LOOPBACK RUNNING MTU:16436 Metric:1 RX packets:38 errors:0 dropped:0 overruns:0 frame:0 TX packets:38 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:2984 (2.9 KiB) TX bytes:2984 (2.9 KiB) wlan0 Link encap:Ethernet HWaddr 00:1c:bf:54:ae:66 inet addr:192.168.1.63 Bcast:192.168.1.255 Mask:255.255.255.0 inet6 addr: fe80::21c:bfff:fe54:ae66/64 Scope:Link UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1 RX packets:840010 errors:0 dropped:0 overruns:0 frame:0 TX packets:510451 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:1233716735 (1.1 GiB) TX bytes:46237874 (44.0 MiB) [17:03]note:

каждый раз, когда я запускаю скрипт с помощью bash scriptname.sh из командной строки в Debian, я получаю Command Not found и затем результат сценария. Таким образом, скрипт работает, но всегда есть Command Not Found заявление печатается на экране.

я запускаю скрипт из /var папка.

вот этот скрипт:

я запускаю его, набрав следующее:

UPDATE-проблема появляется в пустых строках. Каждая пустая строка приводит к команда не найдена. Почему это произошло?

убедитесь, что первая строка:

введите путь к bash, если это не /bin/bash

это Wil конвертировать окончания строк и т. д. Из Windows в формат unix. т. е. он удаляет \r (CR) из окончаний строк, чтобы изменить их с \r\n (CR+LF) to \n (LF) .

другой способ узнать, находится ли ваш файл в dos/Win формат:

результат будет выглядеть примерно так:

это выведет весь текст файла с <CR> отображается для каждого \r символ в файл.

можно использовать bash -x scriptname.sh проследить.

Я также столкнулся с аналогичной проблемой. Проблема, похоже, в разрешениях. Если вы сделаете ls -l , вы можете определить, что ваш файл может не иметь бит выполнения включен. Это не позволит выполнить сценарий. :)

Как @artooro добавил в комментарий:

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

один из способов-это поставить set -x в верхней части скрипта или запустите его с помощью bash -x вместо bash - это выход на линии перед их выполнением и, как правило, просто нужно посмотреть на вывод команды непосредственно перед ошибкой, чтобы увидеть что вызывает проблему

если, как вы говорите, это пустые строки, вызывающие проблемы, вы можете проверить, что actaully на них. Беги:

и убедитесь, что нет" невидимых " смешных персонажей, таких как CTRL-M (возврат каретки) вы можете получить с помощью редактора типа Windows.

использовать dos2unix в файле сценария.

в блокноте++ перейдите в редактировать ->преобразование EOL затем проверить Macinthos (CR). Это изменит ваши файлы. Я также рекомендую проверить все файлы с помощью этой команды, потому что скоро такая ошибка произойдет.

попробовать chmod u+x testscript.sh

для выполнения этого необходимо указать полный путь например

была такая же проблема. К сожалению

Так что я сделал это, чтобы преобразовать.

проблемы с запуском скриптов также могут быть связаны с плохим форматированием многострочных команд, например, если у вас есть пробел после разрыва строки "\". Е. Г. это:

(обратите внимание, что дополнительное пространство после"\") вызовет проблемы, но когда вы удалите это пространство, оно будет работать отлично.

Это может быть тривиально и не связано с вопросом OP, но я часто ошибался в начале, когда я изучал сценарии

это вызовет ответ "команда не найдена". Правильный способ-устранить пробелы

я тоже не из Cannot execute command . Все выглядело правильно, но на самом деле у меня был неразрывный пробел &nbsp; прямо перед моей командой, которую, конечно, невозможно было заметить невооруженным глазом:

, который, в Vim, выглядел так:

только после запуска bash script checker shellcheck Я нашел проблему.

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

я столкнулся с этим сегодня, рассеянно копируя командную строку доллара $ (перед командной строкой) в скрипт.

на Bash для Windows я попытался неправильно запустить

без ./ в начале и получил ту же ошибку.

для людей с фоном Windows правильная форма выглядит избыточной:

вы можете обновить вас .bashrc и и .файлы bash_profile с псевдонимами для распознавания вводимой команды.

.bashrc и и .файлы bash_profile-это скрытые файлы, вероятно, расположенные на вашем диске C:, где вы сохраняете свои программные файлы.

Программа бесконечно просит ввести числа
Написал код, вроде запускается, только заставляет бесконечно вводить цифры и всё. Program.


Почему программа просит что-то ввести?
Народ,помогите нубику .После заполнения массива программа требует что-то ввести ,а я не могу понять.

Яндекс и Google просит ввести номер
&quot;Мы зарегистрировали подозрительный трафик, исходящий из вашей сети. С помощью этой страницы мы.

Отлично! Это обычный интерфейс для линуксов.
Давайте разбираться что у вас там к чему.

$
Это нормальное приглашение ввода команд в Bash. Все приложения, выполняемые в линуксах в конечном итоге обращаются к данному интерфейсу. Только под графикой (под иксами) польователю этого обычно не показывается.
Итак, для начала, разберём, что же значит эта строка.
1. username имя пользователя, который в данный момент работает в системе и от чьего имени выполняются те или иные действия.
2. @ разделитель. Имеет ровно ту же функцию, как и в почтовом адресе - разделяет имя пользователя и сервер, на котором хостится ваша почта. В данном случае - тот хост, на котором в данный момент работает юзер, указанный до разделителя.
3. hostname имя хоста, на котором вы работаете. Линуксы изначально многопользовательские сетевые системы. То бишь, изначально архитектура построена так, что вы сидите за терминалом - той машинкой, которая только предоставляет доступ к выбираемому пользователем серверу. Серверов может быть сразу несколько, машинка с терминалом - не обязательно является и сервером. Таким образом, у вас всегда есть выбор к которому из линукс-серверов коннектиться при запуске терминальной сессии и этот выбор ограничен только наличием терминальных серверов в данной сети.
4. : ещё один разделитель. Этот разделитель отделяет собственно имя хоста от пути, в котором находится и работает пользователь.
5.

путь в файловой системе на хосте, в котором находится и работает пользователь. Во время запуска терминальной сессии при авторизации система авторизованного пользователя изначально помещает в некоторую папку, внутри которой он работает. Вообще, пользователь всегда находится в какой-либо из локальных папок хоста, на котором он работает. Обычно, это домашний каталог пользователя /home/username , а знак

Итак, теперь вы знаете, что из данного приглашения можно узнать сразу при взгляде на экран.
Теперь перейдём к самым элементарным командам, которые обязан знать любой линуховод.
Первая простая команда, это cd - change directory - сменить директорию, в которой мы находимся.
Выполняется она просто:

Читайте также: