Настройка и работа в Linux
adb5321d

Средства навигации


Перейдем к делу. Приведу небольшой такой списочек этих самых инструментов, с краткими пояснениями, что к чему:

  • find - команда монстр, с ее помощью можно найти все что вы хотите, а иногда даже то чего и не хотите. Предназначена для поиска файлов в файловой системе по заданным критериям. Над найденными файлами возможно выполнение некоторых действий, заданных вами. К примеру, если перевести третью из вышеприведенных команд find, на русский язык, то получится нечто вроде „искать в каталоге /usr/man все файлы с расширением .gz, затем каждый из файлов вывести в распакованном виде, с помощью команды zcat, на стандартный вывод“, а там уже будет ждать wc который подсчитает количество символов во всех найденных файлах;
  • locate - поиск файлов по их имени или шаблону имени, в качестве шаблона, можно использовать как метасимволы применимые в командной строке( *, ? и т.п), так и регулярные выражения. Именно этой команде нужно отдавать предпочтение, перед find, в случае если вам нужно найти файл по его имени. Это связано с тем что данная команда ищет файлы не в самой файловой системе, как это делает find, а в предварительно сформированной базе, в которой хранится список всех файлов в системе, поэтому поиск осуществляется на несколько порядков быстрее, да и ваша система, не будет так сильно загружена, как в случае использования find. Однако, у утилиты есть недостаток, она не находит файлы, появившиеся уже после обновления базы, а база обновляется обычно по расписанию, командой locate -u;
  • man - справочник команд, наипервейший и наиглавнейший источник информации по командам и утилитам. За особые заслуги, я называю man, ласково-уменьшительно Маня или Манечка, видимо поэтому она делится со мной всеми своими секретами. Форма вызова man <команда>, в результате мы получаем на экране отформатированную страницу руководства по требуемой команде;
  • apropos - в моей системе это жесткая ссылка на сам man, и является эквивалентом вызову man с ключем -k, что означает поиск вхождения ключевого слова, как в именах команд, присутствующих в справочнике man, так и в заголовках страниц руководства;
  • whatis - опять таки жесткая ссылка на man, эквивалентная команде man -f, из названия ясно, что помогает определить для чего нужна та или иная команда, причем информация дается довольно краткая, в одну две строки;
  • ls - выдает список файлов в директории, плюс еще вагон разной информации о каждом из файлов. Кстати досовский dir, это как раз дальний родственник ls, который из за врожденного плоскостопия, слабоумия и близорукости практически издох в последних версиях ВЫНЬ ХХ( это кроме того связано с повсеместным внедрением так называемого „оконного интерхфейса“);
  • tree - продвинутый ls, который рисует дерево каталогов, или переводя на псевдонаучный язык „визуализирует обьекты файловой системы, их атрибуты, и структурные связи между ними“, о как сказал!. Умеет раскрашивать имена файлов и каталогов в зависимости от их типа. Моя любимая команда в этом плане tree -C | less -r, с помощью которой можно в цвете рассматривать, не какие нибудь каталоги-кустики, а настоящие баобабы( дерево такое большое. Из курса школьной ботаники помнится мне что на пенечке такого деревца легко умещается симфонический оркестр! Просьба не путать с бабами, которых кстати тоже довольно приятно рассматривать в цвете);
  • info - кладезь информации, чем то напоминает man, но с более продвинутыми средствами навигации по темам, под темам. Можно сказать что здесь мы имеем нечто похожее на гипертекст. Многие крупные пакеты, не имеют, или имеют очень краткую справочную информацию в man, но зато в info - имеется этой информации более чем достаточно. В частности именно с помощью info gcc и info libc, была найдена обширная документация по gcc и glibc, которую я по незнанию вначале скачал c другой стороны планеты, в виде запакованных html-файлов, а потом как оказалось они в виде info-файлов спокойно лежали на моем винте. Следует отметить что информация в man, это в некотором роде подмножество информации info, дело в том что если info не может найти в своей базе информацию по некоторому вопросу, то она без лишних раздумий выводит то, что говорит man по этому поводу.
  • grep - поиск информации в файлах по заданному шаблону, применяется в задачах подобным следующим: найти все файлы из заданного списка, в которых упоминается выражение „Windows Forever“( такой список может применяться для изничтожения таких файлов на вашей машине), или скажем такая задача найти все строки файла в которых встречается упоминание о Linux, и т.д. и т.п. Для совершенного владения этой утилитой нужно обязательно освоить регулярные выражения, причем они вам пригодятся не только здесь;
  • whereis - как можно догадаться из названия, утилита предлагает сервис под названием „где это?“, другими словами она пытается найти все что относится к введенной в качестве параметра команде и выводит список найденного. Поиск ведется среди выполняемых файлов, которые находятся в путях из переменной PATH, затем среди страниц руководства man плюс в исходных текстах;
  • which - производит поиск заданной в качестве параметра команды, во всех каталогах указанных в переменной PATH, а также в определениях алиасов. По умолчанию выводит первую найденную команду вместе с полным путевым именем. Может пригодится в случаях когда команда ведет себя не так как ожидалось, А все может обьясниться тем что у вас две версии данной программы, а по умолчанию выполняется первая найденная с помощью переменной PATH, команда. Или просто вам необходимо знать где лежит та или иная команда;
  • file - определить тип заданного в качестве параметра файла, утилита способная творить чудеса, для определения типа файла используется магический файл magic;
  • rpm - менеджер пакетов RedHat, к поиску имеет отдаленное отношение, но именно используя данную команду, ищется скажем тот пакет который содержит нужную вам программу. Кроме того не помешает знать как просмотреть ту или иную информацию по некоторому пакету;
  • tar - архиватор, вобщем-то приведен сюда по тем-же причинам что и rpm;
  • less - страничный пейджер, предназначен для просмотра текстовой информации, имеет удобные средства навигации;
  • tail - вывод конца файла;
  • head - вывод начала файла;
  • cd - смена текущей директории;
  • pushd - перейти в указанную директорию, а текущую запихнуть в стек;
  • popd - вынуть из стека директорию, и перейти в нее;
  • pwd - „И где я нахожусь?“ - на этот вопрос ответит вам pwd, просто печатающая текущую директорию;
  • ln - создает жесткую или символическую ссылку на файл или директорию;
  • rm - удаляет файл, файлы, директории. Будте бдительны, восстановлению удаленная информация, в большинстве случаев, не подлежит;
  • cp - копирование файлов, директорий;
  • mv - переименование и перемещение файлов и директорий;
  • регулярные выражения - один из мощнейших механизмов для поиска и редактирования текстовой информации. Поначалу вызывает трудности с пониманием, тем более что существуют несколько реализаций, это так называемые базовые и расширенные регулярные выражения. Судя по всему называются они „регулярными“ потому как при их изучении регулярно возникает желание применять несколько другие выражения из области ненормативной лексики. Кстати имеют много с ними общего, так с помощью ограниченного количества не нормативных слов, можно выразить неограниченное количество эмоций и чувств, а с помощью ограниченного количества символов используемых в регулярных выражениях можно задать неограниченное количество шаблонов для поиска. При этом у людей незнакомых с традициями как одних так и других выражений, обе эти разновидности выражений создают впечатление бессмысленного набора единиц информации. Надо отметить что практически все утилиты тем или иным образом позволяют использовать регулярные выражения;
  • ключи --help и --version - иногда полезно просмотреть краткую подсказку, чем листать огромный man, а также представляет некоторый интерес информация о версии той или иной программы;
  • strings - копается во внутренностях бинарных файлов и выводит на печать все найденные текстовые строки, игнорируя при этом двоичный бред.
Вот таков минимум, которым надо владеть для более или меннее свободного общения с системой.



Содержание раздела