Команды поиска команд linux

Поиск команд Linux по ключевому слову и по названию

Каждый пользователь Linux может забыть или просто не знать название какой-нибудь команды, которая выполняет то или иное действие. В этой статье я расскажу, как найти команду по ключевому слову или фразе.

Предположим, что вы не знаете или забыли название команды, которая должна выполнять какое-нибудь действие. В этом случае команду можно найти с помощью ключевого слова. Для этого существует утилита apropos. Утилита apropos выполняет поиск ключевого слова в первых строчках man-страниц и выводит те стоки, которые содержат указанное ключевое слово. В качестве ключевого слова можно также задать регулярное выражение или шаблон.

Простой поиск

Например, мы хотим найти команды, которые включают в свое описание или название слово move. Тогда мы должны выполнить команду:

В результате на экран будет выведен список команд и их описания, в которых было найдено слово move:

Поиск с учетом раздела

На самом деле в нем будут присутствовать не только команды, но и, например, функции языка C, так как для них тоже существуют man страницы (кстати, apropos отлично подойдет для поиска C функций). Все man-страницы разделены на разделы (apropos выводит номер раздела в скобках после названия команды). Например, в первом разделе man-страниц расположены описания команд Linux. Для того, чтобы вывести информацию только из man-страниц определенного раздела, существует опция -s, за которой указывается номер man-страницы.

Выполним поиск по ключевому слову move только в разделе:

Для удобства можно отсортировать результаты, воспользовавшись командой sort:

Поиск по нескольким словам

Если вы вводите несколько слов через пробел, тогда apropos найдет все команды, содержащие любое из ключевых слов. Например, мы хотим найти команды, по ключевым словам move и empty:

В результате получим:

Поиск точного вхождения слов

Обратите внимание, что apropos по ключевому слову move найдет и строки со словами remove. Чтобы искать точное вхождение слов используется опция -e:

Теперь мы получим только те команды, которые содержат слова move и empty:

Поиск по фразе

Если вы хотите выполнить поиск по какой-нибудь фразе, содержащей пробелы, тогда ее нужно заключить в кавычки:

Использование регулярных выражений

Команда apropos поддерживает поиск с использованием регулярных выражений, для этого служит опция -r:

Я рассказал об основных возможностях утилиты apropos. Дополнительную информацию можно получить в помощи по этой команде (у меня в Ubuntu на русском языке, кстати, но к сожалению, без примеров):

Источник

ИТ База знаний

Курс по Asterisk

Полезно

— Узнать IP — адрес компьютера в интернете

— Онлайн генератор устойчивых паролей

— Онлайн калькулятор подсетей

— Калькулятор инсталляции IP — АТС Asterisk

— Руководство администратора FreePBX на русском языке

— Руководство администратора Cisco UCM/CME на русском языке

— Руководство администратора по Linux/Unix

Серверные решения

Телефония

FreePBX и Asterisk

Настройка программных телефонов

Корпоративные сети

Протоколы и стандарты

Поиск и расположение команд в Linux

В статье пойдет речь о расположении файлов и папок, как использовать поиск для нахождения нужной информации. Задача ознакомление с предназначение основных папок в операционной системе Linux и то, что в них находиться.

Читайте также:  Хороший стилус для планшета windows

Онлайн курс по Linux

Мы собрали концентрат самых востребованных знаний, которые позволят тебе начать карьеру администратора Linux, расширить текущие знания и сделать уверенный шаг к DevOps

Разберемся в структуре FHS и посмотрим, как искать файлы и команды. FHS (File System Hierarchy Standard) – это стандартная иерархия ОС. Согласно Hierarchy FHS — есть стандартные папки, которые должны располагаться в корне.

Вот классическое расположение файлов и папок в корневой папке ОС Linux. Стандарт FHS был изначально предназначен для того, чтобы во всех дистрибутивах ОС Linux могли понять и найти все, что нам нужно. Некоторые дистрибутивы Linux отклоняются от этого стандарта, но не сильно в целом данный стандарт соблюдается. Перечислим основные папки и их предназначение.

  • /bin – базовые исполняемые файлы
  • /boot – файлы loader
  • /dev – устройства
  • /etc – конфигурация ПК
  • /home – домашние директории
  • /lib – библиотеки ядра
  • /proc – информация о работающей системе
  • /media – монтирование носителей
  • /mnt – монтирование носителей
  • /opt – дополнительное программное обеспечение
  • /root – домашняя директория админа
  • /sbin – основные программы настройки системы
  • /srv – данные системных служб
  • /tmp – временные файлы
  • /usr – бинарные файлы пользователей
  • /var — переменные

Первая папка bin в ней находятся базовые исполняемые файлы команд, т.е все команды которые может использовать пользователь они находятся здесь в данной папке. Папка boot – в данной папке находятся файлы загрузчика. Обычно это отдельный диск примонтированный в котором находиться ядро Linux. В папке dev – находятся файлы всех устройств в операционной системе Linux все и даже устройства представляют собой файлы. Папка etc – здесь находиться конфигурация нашего конкретного ПК, в ней много подпапок и в ней лежит конфигурация. В директории home находятся домашние папки всех пользователей, кроме пользователя root. В данной папке находятся документы, рабочий стол и т.д все что относится к пользователю. Папка lib здесь находятся общие библиотеки и модули ядра. Папка proc – здесь находятся вся информация о запущенных в данный момент процессах. В данную папку монтируется виртуальная файловая система procfs . Папка media создана для монтирования съемных накопителей типа USB или CD-ROM. В старых версиях Linux и до сих пор осталась, есть папка mnt . Раньше в нее монтировались съемные носители, теперь же данную папку обычно используют для монтирования дополнительных файловых систем. Папка opt — для установки дополнительного программного обеспечения. Папка root – говорит сама за себя. Папка sbin в данной папке лежат настройки серьезных таких компонент, как файрвол iptables , например, или процесс инициализации init . Папка srv в ней лежат данные для всех системных служб. Папка tmp – понятно, что в ней хранятся временные файлы. Причем данные файлы там хранятся до перезагрузки операционной системы, во время нее они удаляются. В папке usr хранятся двоичные файлы, которые относятся непосредственно к пользователю, например, игры или программы, т.е то что пользователь самостоятельно установил. Папка var – папка переменные, здесь обычно размещается почта или логи программ. Понятно, что это стандарт во многих дистрибутивах могут быть отклонения, но в том или ином виде все эти папки присутствуют в различных дистрибутивах.

Подробнее про структуру FHS можно прочитать здесь

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

Читайте также:  Как переключить язык linux клавиатура

Команды, используемые для поиска:

  • Grep – Утилита поиска по содержимому в том числе и внутри файла
  • Find — Утилита поиска файлов по свойствам. Серьезная утилита, которая начинает поиск файлов по файловой системе в реальном времени, у данной утилиты есть множество ключей и параметров
  • Locate – Это быстрый поиск файлов.
  • Which – Поиск команды. Выводит минимальное количество информации
  • Type – Вывод точной команды
  • Whereis – Поиск команды, исходников и мануалов. Серьезный глубокий инструмент

Начнем с find / -name mail . Данная команда начнет искать в корневой папке / все файлы с именем mail .

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

Есть другая команда — locate mail .

Данная команда отрабатывает практически мгновенно. Команда find искала именно по синтаксису, плюс можно добавлять сложные конструкции поиска. Команда locate делает проще показывает все где находится сочетание символов.

Запустим поиск с помощью команды find / -user siadmin , поиск будет искать все что касается данного пользователя. Поиск опять идет дольше, чем поиск командой locate siadmin .

Дело в том, что данная команда по умолчанию ищет не везде и у нее есть конфигурационный файл cat /etc/updatedb.conf .

В данном конфигурационном файле мы можем увидеть, что данная утилита не ищет в примонтированных файловых системах. Даная строчка # PRUNENAMES=».git .bzr .hg .svn» , говорит о том , что в данных форматы в поиске не выдаются. Поиск не производится в папках PRUNEPATHS=»/tmp /var/spool /media /var/lib/os-prober /var/lib/ceph /home/.ecryptfs /var/lib/schroot» . И не ищет в перечисленных файловых системах в файле. Данный файл можно конфигурировать и будут манятся параметры поиска.

Создадим файл текстовый touch Vadim.txt . И попробуем найти — locate Vadim.txt . Ничего не нашел. find Vadim.txt — поиск успешен.

locate работает с индексной локацией. Данный механизм напоминает индексацию файлов в MS Windows. Проходит индексация файлов и папок и после этого windows знает, что и где лежит. А если индексация не была проведена, то операционная система Windows или говорит, что ничего не найдено или поиск происходит длительное время. Аналогично утилита locate работает в Linux. Раз в день, команда locate запускает команду find . Команда find пробегает по всей файловой системе, а команда locate создает некую Базу данных и запоминает где и что находиться. Именно поэтому команда find работает долго, а команда locate работает практически моментально. Locate знает, где и что лежит в тот момент когда find искал. Но есть большой минус, данная функция происходит раз в день и изменения могут быть не актуальны. Для обновления базы данных команды locate , необходимо ее запустить вручную updatedb . Т.е ест конфигурация /etc/updatedb.conf и мы запускаем обновление Базы данных команды. После обновления, команда будет практически мгновенно находить.

И последняя часть статьи, в которой необходимо рассмотреть поиск по командам. Тут достаточно просто, есть команда ls – она показывает содержимое папки. Мы можем найти где находиться данная команда which ls и получим, что она находиться /bin/ls . Т.е. команда ls хранится в папке bin – где хранятся бинарники тех команд, которые могут быть вызваны пользователями. По сути когда мы набираем команду ls , мы вводим /bin/ls .

У нас есть команда type . Обратите внимание, когда мы вызываем команду ls срабатывает подсветка файлов и так далее, т.е. настройки оболочки. Когда мы запускаем напрямую /bin/ls то вызывается непосредственно команда и игнорируются настройки оболочки. Причина заключается в том, что когда мы запускаем просто команду ls , то она запускается с некоторыми ключами.

Читайте также:  Внешний hdd только чтение mac os

Чтобы узнать, что за ключи используются необходимо набрать type ls .

Обратите внимание, что команда ls – это алиас\псевдоним. Т.е запуская в таком режиме, фактически мы вводим /bin/ls –color=auto . И получаем красивый вывод. Type позволяет выводить псевдоним.

Есть еще одна команда, которая более детальную информацию выводит whereis ls . Для ls там не много информации.

Показывает, где лежит и к какому пакету относится.

Мини — курс по виртуализации

Знакомство с VMware vSphere 7 и технологией виртуализации в авторском мини — курсе от Михаила Якобсена

Источник

Запускаем и ищем предыдущие команды в Linux

Работу в командной строке можно сделать немного эффективнее и быстрее, если знать несколько простых хитростей. Рассмотрим, как быстро запускать предыдущие команды, как выполнять поиск по истории команд.

Повторный запуск команды без указания аргументов. Используем «!»

!команда — используется для выполнения команды с аргументами, которые использовались при последнем запуске.

Предположим, мы выполняем какие-нибудь команды и дополняем их аргументами. Например, мы решили отредактировать файл myfile.txt в текстовом редакторе nano. Для этого мы выполняем:

Далее мы можем выполнять еще какие-нибудь команды, затем снова хотим выполнить nano, чтобы открыть в нем файл myfile.txt. Мы можем воспользоваться волшебным «!». Для этого достаточно написать восклицательный знак и без пробела название команды:

В результате будет вызвана команда nano с теми аргументами, с которыми она вызвалась последний раз, то есть в нашем случае !nano будет аналогично вызову nano /home/pingvinus/path/to/file/myfile.txt.

Выполнение предыдущей команды. Используем «!!»

!! — используется, чтобы выполнить предыдущую команду. Можно использовать в тексте другой команды.

Про два восклицательных знака я уже рассказывал. Например, вы вызвали команду:

И забыли написать в начале sudo. Чтобы не перепечатывать всю команду, можно выполнить:

Отмечу, что !! можно использовать прямо внутри текста команды. Например, мы перейдем в домашнюю директорию пользователя pingvinus:

А теперь войдем в папку /home/pingvinus/Downloads вот таким образом:

Поиск по истории команд. Команда history

history — поиск по истории команд — предназначена для вывода истории команд, поиска по ним и быстрого запуска предыдущих команд.

Если мы выполним history, то на экран будет выведен список последних введенных вами команд:

Каждая команда пронумерована. Чтобы вызвать какую-нибудь команду из списка достаточно выполнить в командной строке: !номер. Например выполним команду под номером 139:

Можно указать номер с минусом. Например, выполнив !-2 мы выполним пред-предыдущую команду. Выполнив, !-1 мы выполним предыдущую команду, это эквивалентно команде !!, описанной выше.

Для поиска по истории можно воспользоваться утилитой grep:

У команды history есть еще несколько дополнительных возможностей. Почитать руководство по history можно, выполнив man history.

Поиск по истории. Сочетание клавиш Ctrl+R

Ctrl+R — сочетание клавиш, которое используется для вызова «интерактивного» поиска по истории команд.

Нажмите Ctrl+R, находясь в командной строке. В результате на экране отобразится приглашение к поиску команды:

Начинайте вводить начальную часть или середину команды, которую вы ищете. То, что вы вводите будет заключено в кавычки, а после значка двоеточия вам будет предложена команда, найденная в истории команд, которая максимально удовлетворяет поиску. Например, я нажал Ctrl+R и начал вводить id-, и нашлась команда, содержащая символы id-:

Источник

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