- unixforum.org
- Почему не выполняются некоторые команды? (bash, не срабатывание команд)
- Почему не выполняются некоторые команды?
- Re: Почему не выполняются некоторые команды?
- Re: Почему не выполняются некоторые команды?
- Re: Почему не выполняются некоторые команды?
- Re: Почему не выполняются некоторые команды?
- Re: Почему не выполняются некоторые команды?
- Re: Почему не выполняются некоторые команды?
- Re: Почему не выполняются некоторые команды?
- Переводы страниц руководства
- Страницы руководства —
- НАЗВАНИЕ
- ОБЗОР
- ОПИСАНИЕ
- ОПЦИИ
- ОБРАТНАЯ СОВМЕСТИМОСТЬ
- АВТОРСКОЕ ПРАВО
- АВТОР ПЕРЕВОДА
- Команда modinfo: опции, ключи и примеры использования
- modprobe
- Как установить PostgreSQL на Linux и создать базу и пользователя
- Как скопировать вывод команды из терминала в буфер обмена Linux и MacOS
- Как создать неизменяемый файл в Linux / MacOS / FreeBSD
- Как удалить все Docker образы и контейнеры
- Bash вывода && управляющие конструкции || коротко о главном
- Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable
- Microsoft открывает исходники, а её IDE супер-популярна
- Пример своей консольной команды в Django проекте
- Как на Bash посчитать число строк в проекте (директории)
- Как на Bash получить файлы, изменённые за сегодняшний день
- Как установить часовой пояс в Linux
- Как найти самые большие папки и файлы в Linux
- Команда grep – полезные ключи и примеры использования
unixforum.org
Форум для пользователей UNIX-подобных систем
- Темы без ответов
- Активные темы
- Поиск
- Статус форума
Почему не выполняются некоторые команды? (bash, не срабатывание команд)
Модератор: /dev/random
Почему не выполняются некоторые команды?
Сообщение Jurg-Jurg » 16.02.2016 01:06
Почему не выполняются некоторые команды в косольной строке?
В ответ на команду пишет «Команда не найдена».
Re: Почему не выполняются некоторые команды?
Сообщение Olej » 16.02.2016 01:08
Почему не выполняются некоторые команды в косольной строке?
В ответ на команду пишет «Команда не найдена».
Элементарно, Ватсон!
Просто в вашей системе эти приложения / программы / файлы не установлены.
Сделайте и убедитесь:
Re: Почему не выполняются некоторые команды?
Сообщение bormant » 16.02.2016 07:57
Re: Почему не выполняются некоторые команды?
Сообщение olecya » 16.02.2016 11:48
Re: Почему не выполняются некоторые команды?
Сообщение Olej » 16.02.2016 15:21
Re: Почему не выполняются некоторые команды?
Сообщение Jurg-Jurg » 24.02.2016 21:53
Почему не выполняются некоторые команды в косольной строке?
В ответ на команду пишет «Команда не найдена».
Элементарно, Ватсон!
Просто в вашей системе эти приложения / программы / файлы не установлены.
Сделайте и убедитесь:
На это то же ни чего
А как же сделать так что бы все заработало?
как все включить?
Re: Почему не выполняются некоторые команды?
Сообщение Olej » 24.02.2016 22:41
1. Найти (руками, глазами, . ) файл с именем команды, которая у вас не выполняется (какая команда?).
2. Включить путь, где вы её нашли, в список переменной PATH.
Например, если это каталог /sbin (как был там где-то разговор), то:
Re: Почему не выполняются некоторые команды?
Сообщение Jurg-Jurg » 28.02.2016 01:28
1. Найти (руками, глазами, . ) файл с именем команды, которая у вас не выполняется (какая команда?).
2. Включить путь, где вы её нашли, в список переменной PATH.
Например, если это каталог /sbin (как был там где-то разговор), то:
Да выключить не могу, shutdown не воспринимает! А что нет единого средства что бы включил его один раз и все команды запахали? У Вас какой линь? Може знаете такой что бы в нем все работало по умолчанию? А так я выбрал Puppy потому что быстрый и удобный, но две проблемы в нем 1-ая с командами, 2-ая с раскладкой клавы, не бьют знаки с кнопками А вообще нужно азы шуршать что бы умным быть и все знать основы ос и баш
Источник
Переводы страниц руководства
Страницы руководства —
НАЗВАНИЕ
modinfo — программа для просмотра информации о модуле ядра Linux
ОБЗОР
ОПИСАНИЕ
modinfo извлекает информацию из модулей ядра Linux , заданных в командной строке. Если имя модуля не является именем файла, то будет выполнен поиск в каталоге /lib/modules/версия, как это делает modprobe(8).
По умолчанию modinfo выводит каждый атрибут модуля для наглядности в виде имя_поля:значение. Имя файла выводится таким же образом (хотя на самом деле это не атрибут).
Эта версия modinfo умеет понимать модули ядра Linux любой архитектуры.
ОПЦИИ
-V —version Вывести версию modinfo. Замечания о нижеследующем разделе ОБРАТНАЯ СОВМЕСТИМОСТЬ: можно вывести версию modinfo.old. -F —field Вывести только значение этого поля, по одному в строке. Чаще всего эта возможность используется в сценариях. Общеупотребительными полями (могут отсутствовать в некоторых модулях) являются author (автор), description (описание), license (лицензия), param (параметры), depends (зависимости) и alias (псевдонимы). Полей param, alias и depends может быть несколько. В специальном поле filename выводится имя файла модуля. -k kernel Предоставить информацию о другом ядре, а не о используемом в настоящее время. Эта возможность может потребоваться для извлечения информации из недавно установленного набора модулей (которые пока не используются). Например, может понадобиться найти файлы прошивок, необходимых модулям ядра, которые вы собираетесь добавить в образ initrd перед загрузкой. -0 —null Использовать для разделения значений полей вместо символа новой строки ASCII-символ с нулевым кодом. Эта возможность полезна в сценариях, поскольку символ новой строки теоретически может встретиться внутри поля. -a -d -l -p -n Это сокращения для полей author, desription, license, param и filename соответственно, добавленные для легкости перехода с утилиты modinfo из старого пакета modutils.
ОБРАТНАЯ СОВМЕСТИМОСТЬ
Эта версия modinfo предназначена для ядер версий 2.5.48 и выше. Если обнаружено ядро, поддерживающее модули в старом стиле, программа попытается запустить modinfo.old, что приводит к полной прозрачности поведения программы для пользователя.
Отметим, что версия выводимая modinfo более предсказуема, чем в более старых версиях: сценарии, пытающиеся воспользоваться выводом по умолчанию могут неправильно обработать сложные поля.
Вы можете установить переменную окружения NEW_MODINFO, чтобы всегда принудительно использовать новую утилиту modinfo.
АВТОРСКОЕ ПРАВО
Эта страница руководства: Copyright 2003, Расти Рассел (Rusty Russell), корпорация IBM.
АВТОР ПЕРЕВОДА
Перевод на русский язык выполнил Владимир Ступин .
Источник
Команда modinfo: опции, ключи и примеры использования
Extract information about a Linux kernel module.
- List the specified attribute only:
Music on Console (MOC) audio player. More information: https://manned.org/mocp. Launch…
modprobe
Add or remove modules from the Linux kernel. Pretend to…
Как установить PostgreSQL на Linux и создать базу и пользователя
PostgreSQL — система управления базой данных общего назначения. Одна из самых распространённых баз данных, используемая на многих коммерческих и некоммерческих проектах.
Как скопировать вывод команды из терминала в буфер обмена Linux и MacOS
Скорее приятный, чем необходимы «трюк», но возможность использовать возможность скопировать вывод в буфер обмена – действительно круто иной раз выручает.
Как создать неизменяемый файл в Linux / MacOS / FreeBSD
Само собой, root может всё (если введёт пару команд), однако, это вполне легальный способ запретить изменение файла.
Как удалить все Docker образы и контейнеры
Не всегда нужно удалять всё, но объяснение данного «рецепта» объяснит как в целом удалять образы и контейнеры.
Bash вывода && управляющие конструкции || коротко о главном
Небольшая заметка о конструкциях Bash, в которых путается большинство новичков. А именно: >,
Так ли безопасен Linux? Несколько коммитов с уязвимосятми в stable
Исследователи сумели пройти code-review с реквестами в ядро Linux, заведомо содержащими добавление уязвимостей.
Microsoft открывает исходники, а её IDE супер-популярна
Решил сложить пару фактов и немного над этим поразмыслить. Реально ли Microsoft «переобулись»?
Пример своей консольной команды в Django проекте
Если вы работали с Django проектом, то, скорее всего, запускали команды из консоли (manage.py). В Django есть простой способ писать свои команды для управления проектом.
Как на Bash посчитать число строк в проекте (директории)
Ниже будет представлен однострочник, решающий данную задачу на Bash + пошаговое описание его работы.
Как на Bash получить файлы, изменённые за сегодняшний день
Bash имеет огромные возможности по программированию/скриптованию и администрированию операционной системы. Не важно: Linux это, FreeBSD, или MacOS – на Bash можно сделать многое.
Как установить часовой пояс в Linux
В рамках первичной настройки Операционной Системы важно установить и по какому времени вы живёте, ведь при следующем обновлении времени через Интернет ваше время слетит.
Как найти самые большие папки и файлы в Linux
Когда кончается место на жестком диске, возникает закономерный вопрос: на что же оно было потрачено, какие файлы разрослись больше положенного?
Команда grep – полезные ключи и примеры использования
У команды «grep» довольно много различных особенностей. особенно, если учесть, что с английского это «решето» – а что может войти в решето , не факт что выйдет!
Источник
Ядро — это та часть операционной системы, работа которой полностью скрыта от пользователя, т. к. пользователь с ним не работает напрямую: пользователь работает с программами. Но, тем не менее, без ядра невозможна работа ни одной программы, т.е. они без ядра бесполезны.
В современных ядрах при подключении оборудования модули подключаются автоматически, а это событие обрабатывается демоном udev, который создает соответствующий файл устройства в каталоге «/dev». Все это выполняется в том случае, если соответствующий модуль корректно установлен в дерево модулей. В случае с файловыми системами ситуация та же: при попытке монтирования файловой системы ядро подгружает необходимый модуль автоматически, и выполняет монтирование.
Если необходимость в модуле не на столько очевидна, ядро его не загружает самостоятельно. Например, для поддержки функции шифрования на loop устройстве нужно вручную подгрузить модуль «cryptoloop», а для непосредственного шифрования — модуль алгоритма шифрования, например «blowfish».
Поиск необходимого модуля
Модули хранятся в каталоге «/lib/modules/ » в виде файлов с расширением «ko». Для получения списка всех модулей из дерева можно выполнить команду поиска всех файлов с расширением «ko» в каталоге с модулями текущего ядра:
find /lib/modules/`uname -r` -name ‘*.ko’
Полученный список даст некоторое представление о доступных модулях, их назначении и именах. Например, путь « kernel/drivers/net/wireless/rt2x00/rt73usb.ko » явно указывает на то, что этот модуль — драйвер устройства беспроводной связи на базе чипа rt73. Более детальную информацию о модуле можно получить при помощи команды modinfo:
# modinfo rt73usb
filename: /lib/modules/2.6.38-gentoo-r1/kernel/drivers/net/wireless/rt2x00/rt73usb.ko
license: GPL
firmware: rt73.bin
description: Ralink RT73 USB Wireless LAN driver.
version: 2.3.0
author: rt2x00.serialmonkey.com
depends: rt2x00lib,rt2x00usb,crc-itu-t
vermagic: 2.6.38-gentoo-r1 SMP preempt mod_unload modversions CORE2
parm: nohwcrypt:Disable hardware encryption. (bool)
Поле «firmware» указывает на то, что этот модуль сам по себе не работает, ему нужна бинарная микропрограмма устройства в специальном файле «rt73.bin». Необходимость в файле микропрограммы появилась в связи с тем, что интерфейс взаимодействия с устройством закрыт, и эти функции возложены на файл прошивки (firmware). Взять firmware можно с сайта разработчика, установочного диска, поставляемого вместе с устройством, или где-нибудь в репозиториях дистрибутива, затем нужно его скопировать в каталог «/lib/firmware», при чем имя файла должно совпадать с тем, что указано в модуле.
Следующее поле, на которое нужно обратить внимание — это поле «depends». Здесь перечислены модули, от которых зависит данный. Логично предположить, что модули друг от друга зависят, например модуль поддержки USB накопителей зависит от модуля поддержки USB контроллера. Эти зависимости просчитываются автоматически, и будут описаны ниже.
Последнее важное поле — «param». Здесь описаны все параметры, которые может принимать модуль при загрузке, и их описания. В данном случае возможен только один: «nohwcrypt», который, судя по описанию, отключает аппаратное шифрование. В скобках указан тип значения параметра.
Более подробную информацию о модуле можно прочитать в документации к исходным кодам ядра (каталог Documentation) в дереве исходных кодов. Например, найти код нужного видеорежима драйвера «vesafb» можно в файле документации «Documentation/fb/vesafb.txt» относительно корня дерева исходных кодов.
Загрузка и выгрузка модулей
Загрузить модуль в ядро можно при помощи двух команд: «insmod» и «modprobe», отличающихся друг от друга возможностью просчета и удовлетворения зависимостей. Команда «insmod» загружает конкретный файл с расширением «ko», при этом, если модуль зависит от других модулей, еще не загруженных в ядро, команда выдаст ошибку, и не загрузит модуль. Команда «modprobe» работает только с деревом модулей, и возможна загрузка только оттуда по имени модуля, а не по имени файла. Отсюда следует область применения этих команд: при помощи «insmod» подгружается файл модуля из произвольного места файловой системы (например, пользователь скомпилировал модули и перед переносом в дерево ядра решил проверить его работоспособность), а «modprobe» — для подгрузки уже готовых модулей, включенных в дерево модулей текущей версии ядра. Например, для загрузки модуля ядра «rt73usb» из дерева ядра, включая все зависимости, и отключив аппаратное шифрование, нужно выполнить команду:
# modprobe rt73usb nohwcrypt=0
Загрузка этого модуля командой «insmod» произойдет следующим образом:
# insmod /lib/modules/2.6.38-gentoo-r1/kernel/drivers/net/wireless/rt2x00/rt73usb.ko nohwcrypt=0
Но нужно помнить, что при использовании «insmod» все зависимости придется подгружать вручную. Поэтому эта команда постепенно вытесняется командой «modprobe».
После загрузки модуля можно проверить его наличие в списке загруженных в ядро модулей при помощи команды «lsmod»:
# lsmod | grep rt73usb
Module Size Used by rt73usb 17305 0 crc_itu_t 999 1 rt73usb rt2x00usb 5749 1 rt73usb rt2x00lib 19484 2 rt73usb,rt2x00usb
Из вывода команды ясно, что модуль подгружен, а так же в своей работе использует другие модули.
Чтобы его выгрузить, можно воспользоваться командой «rmmod» или той же командой «modprobe» с ключем «-r». В качестве параметра обоим командам нужно передать только имя модуля. Если модуль не используется, то он будет выгружен, а если используется — будет выдана ошибка, и придется выгружать все модули, которые от него зависят:
# rmmod rt2x00usb
ERROR: Module rt2x00usb is in use by rt73usb
# rmmod rt73usb
# rmmod rt2x00usb
После выгрузки модуля все возможности, которые он предоставлял, будут удалены из таблицы ядра.
Для автоматической загрузки модулей в разных дистрибутивах предусмотрены разные механизмы. Я не буду вдаваться здесь в подробности, они для каждого дистрибутива свои, но один метод загрузки всегда действенен и удобен: при помощи стартовых скриптов. В тех же RedHat системах можно записать команды загрузки модуля прямо в «/etc/rc.d/rc.local» со всеми опциями.
Файлы конфигурация модулей находится в каталоге «/etc/modprobe.d/» и имеют расширение «conf». В этих файлах преимущественно перечисляются альтернативные имена модулей, их параметры, применяемые при их загрузке, а так же черные списки, запрещенные для загрузки. Например, чтобы вышеупомянутый модуль сразу загружался с опцией «nohwcrypt=1» нужно создать файл, в котором записать строку:
options rt73usb nohwcrypt=1
Черный список модулей хранится преимущественно в файле «/etc/modules.d/blacklist.conf» в формате «blacklist ». Используется эта функция для запрета загрузки глючных или конфликтных модулей.
Сборка модуля и добавление его в дерево
Иногда нужного драйвера в ядре нет, поэтому приходится его компилировать вручную. Это так же тот случай, если дополнительное ПО требует добавление своего модуля в ядро, типа vmware, virtualbox или пакет поддержки карт Nvidia. Сам процесс компиляции не отличается от процесса сборки программы, но определенные требования все же есть.
Во первых, нужен компилятор. Обычно установка «gcc» устанавливает все, что нужно для сборки модуля. Если чего-то не хватает — программа сборки об этом скажет, и нужно будет доустановить недостающие пакеты.
Во вторых, нужны заголовочные файлы ядра. Дело в том, что модули ядра всегда собираются вместе с ядром, используя его заголовочные файлы, т.к. любое отклонение и несоответствие версий модуля и загруженного ядра ведет к невозможности загрузить этот модуль в ядро.
Если система работает на базе ядра дистрибутива, то нужно установить пакеты с заголовочными файлами ядра. В большинстве дистрибутивов это пакеты «kernel-headers» и/или «kernel-devel». Для сборки модулей этого будет достаточно. Если ядро собиралось вручную, то эти пакеты не нужны: достаточно сделать символическую ссылку «/usr/src/linux», ссылающуюся на дерево сконфигурированных исходных кодов текущего ядра.
После компиляции модуля на выходе будет получен один или несколько файлов с расширением «ko». Можно попробовать их загрузить при помощи команды «insmod» и протестировать их работу.
Если модули загрузились и работают (или лень вручную подгружать зависимости), нужно их скопировать в дерево модулей текущего ядра, после чего обязательно обновить зависимости модулей командой «depmod». Она пройдется рекурсивно по дереву модулей и запишет все зависимости в файл «modules.dep», который, в последствие, будет анализироваться командой «modprobe». Теперь модули готовы к загрузке командой modprobe и могут загружаться по имени со всеми зависимостями.
Стоит отметить, что при обновлении ядра этот модуль работать не будет. Нужны будут новые заголовочные файлы и потребуется заново пересобрать модуль.
«Слушаем» что говорит ядро
При появлении малейших неполадок с модулем, нужно смотреть сообщения ядра. Они выводятся по команде «dmesg» и, в зависимости от настроек syslog, в файл «/var/log/messages». Сообщения ядра могут быть информативными или отладочными, что поможет определить проблему в процессе работы модуля, а могут сообщать об ошибке работы с модулем, например недостаточности символов и зависимостей, некорректных переданных параметрах. Например, выше рассмотренный модуль «rt73usb» требует параметр типа bool, что говорит о том, что параметр может принимать либо «0», либо «1». Если попробовать передать «2», то система выдаст ошибку:
# modprobe rt73usb nohwcrypt=2
FATAL: Error inserting rt73usb (/lib/modules/2.6.38-gentoo-r1/kernel/drivers/net/wireless/rt2x00/rt73usb.ko): Invalid argument
Ошибка «Invalid argument» может говорить о чем угодно, саму ошибку ядро на консоль написать не может, только при помощи функции «printk» записать в системный лог. Посмотрев логи можно уже узнать в чем ошибка:
# dmesg | tail -n1
rt73usb: `2′ invalid for parameter `nohwcrypt’
В этом примере выведена только последняя строка с ошибкой, чтобы не загромаждать статью. Модуль может написать и несколько строк, поэтому лучше выводить полный лог, или хотя бы последние строк десять.
Ошибку уже легко найти: значение «2» неприемлемо для параметра «nohwcrypt». После исправления, модуль корректно загрузится в ядро.
Из всего сказанного можно сделать один вывод: ядро Linux играет по своим правилам и занимается серьезными вещами. Тем не менее — это всего лишь программа, оно, по сути, не сильно отличается от других обычных программ. Понимание того, что ядро не так уж страшно, как кажется, может стать первым шагом к пониманию внутреннего устройства системы и, как результат, поможет быстро и эффективно решать задачи, с которыми сталкивается любой администратор Linux в повседневной работе.
| Комментарии |
| Поиск |
| Пользователи | ||
| Последний пользователь: Кто онлайн: Источник | ||