Linux как установить locate

Обновлено: 05.07.2024

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

Я уже писал о командах терминала Linux, но тогда затронул лишь несколько самых интересных, самых полезных команд, рассчитывая на то, что пользователь уже достаточно знаком с возможностями терминала. Но нужно сделать ещё одну статью, рассчитанную на новичков, тех, кто только делает свои первые шаги в освоении Linux.

И вот она. Её цель - собрать основные простые и сложные команды Linux, которые должен знать каждый пользователь, чтобы наиболее эффективно управлять своей системой. Для удобности запоминания опций команд я в скобках добавил слова, от которых они произошли - так намного проще, на себе проверено.

Это не значит, что я перечислю все команды, все перечислены тут - я постараюсь охватить всё самое полезное, то, что может пригодиться в повседневной жизни. Чтобы было удобнее читать, разделим этот список на категории команд по назначению. Большинство рассмотренных здесь утилит не требуют дополнительной установки, они будут предустановлены в любом дистрибутиве Linux, а если не будут, то их несложно найти в официальных репозиториях.

Команды Linux для управления файлами

Утилита для просмотра содержимого каталогов. По умолчанию показывает текущий каталог. Если в параметрах указать путь, то она перечислит содержимое конечного каталога. Полезные опции -l (List) и -a (All). Первая форматирует вывод в виде списка с более подробной информацией, а вторая включает показ скрытых файлов. Подробнее здесь.

2. cat

Позволяет перейти из текущего каталога в указанный. Если запустить без параметров - возвращает в домашний каталог. Вызов с двумя точками возвращает на уровень вверх относительно текущего каталога. Вызов с тире (cd -) возвращает к предыдущему каталогу. Более детально здесь.

4. pwd

Печатает на экран текущий каталог. Это может быть полезно, если ваша командная строка Linux не выводит такую информацию. Эта команда будет востребована в Bash программировании, где для получения ссылки на каталог выполняется скрипт. Более подробно в отдельной статье.

5. mkdir

Создание новых каталогов. Наиболее удобная опция -p (Parents), позволяет создать всю структуру подкаталогов одной командой, даже если они ещё не существуют. Подробнее о том как создать папку читайте в отдельной статье.

6. file

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

Копирование файлов и каталогов. Она не копирует каталоги по умолчанию рекурсивно (то есть все поддиректории и все файлы в поддиректориях), поэтому не забудьте добавить опцию -r (Recursive) или -a (Archive). Последняя включает режим сохранения атрибутов, владельца и временного штампа в дополнение к рекурсивному копированию.

Перемещение или переименование файлов и каталогов. Примечательно, что в Linux это одна и та же операция. Переименование - это перемещение файла в ту же папку с другим именем. Подробнее - здесь.

Удаляет файлы и папки. Очень полезная команда Linux: с её помощью вы можете убрать весь беспорядок. Если нужно рекурсивное удаление, используйте опцию -r. Однако будьте осторожны: конечно, для того чтобы повредить систему вам нужно будет серьёзно постараться, однако можно удалить собственные важные файлы. Rm удаляет файлы не в корзину, из которой потом всё можно будет восстановить, а полностью стирает. Действия оператора rm необратимы. Поверьте, ваши оправдания в духе "rm съела мою курсовую" никому не будут интересны. Подробнее в этой статье.

10. ln

Создает жёсткие или символические ссылки на файлы. Символические или программные ссылки - это что-то похожее на ярлыки в Windows. Они предоставляют удобный способ доступа к определённому файлу. Символические ссылки указывают на файл, но не имеют никаких метаданных. Жёсткие ссылки, в отличие от символических, указывают на физический адрес области диска, где хранятся данные файла.

11. chmod

Изменяет права доступа к файлу. Это чтение, запись и выполнение. Каждый пользователь может изменять права для своих файлов.

12. chown

Изменяет владельца файла. Только суперпользователь может изменять владельцев. Для рекурсивного изменения используйте опцию -R.

13. find

Поиск в файловой системе, файлах и папках. Это очень гибкая и мощная команда Linux не только из-за своих способностей ищейки, но и благодаря возможности выполнять произвольные команды для найденных файлов.

14. locate

В отличие от find, команда locate ведёт поиск в базе данных updatedb для шаблонов имён файлов. Эта база данных содержит снимок файловой системы, что позволяет искать очень быстро. Но этот поиск ненадёжен, потому что вы не можете быть уверены, что ничего не изменилось с момента последнего снимка. Подробнее - тут.

15. du

Показывает размер файла или каталога. Самые полезные опций: -h (Human), которая преобразует размеры файлов в легко читаемый формат, -s (Summarize), которая выводит минимум данных, и -d (Depth), устанавливающая глубину рекурсии по каталогам.

16. df

Анализатор дискового пространства. По умолчанию вывод достаточно подробный: перечислены все файловые системы, их размер, количество использованного и свободного пространства. Для удобства есть опция -h, делающая размеры легко читаемыми.

17. dd

Как сказано в официальном руководстве, это команда терминала для копирования и преобразования файлов. Не очень понятное описание, но это всё, что делает dd. Вы передаёте ей файл-источник, пункт назначения и пару дополнительных опций. Затем она делает копию одного файла в другой. Вы можете задать точный размер данных, которые нужно записать или скопировать. Работает утилита со всеми устройствами. Например, если вы хотите перезаписать жёсткий диск нулями из /dev/zero, можете сделать это. Также она часто используется для создания LiveUSB или гибридных ISO образов.

18 mount / umount

Это команды консоли Linux для подключения и отключения файловых систем Linux. Можно подключать всё: от USB накопителей, до ISO образов. И только у суперпользователя есть права для этого.

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

19. more / less

Это две простенькие команды терминала для просмотра длинных текстов, которые не вмещаются на одном экране. Представьте себе очень длинный вывод команды. Или вы вызвали cat для просмотра файла, и вашему эмулятору терминала потребовалось несколько секунд, чтобы прокрутить весь текст. Если ваш терминал не поддерживает прокрутки, вы можете сделать это с помощью less. Less новее, чем more и поддерживает больше опций, поэтому использовать more нет причин.

20. head / tail

Ещё одна пара, но здесь у каждой команды своя область применения. Утилита head выводит несколько первых строк из файла (голова), а tail выдает несколько последних строк (хвост). По умолчанию каждая утилита выводит десять строк. Но это можно изменить с помощью опции -n. Ещё один полезный параметр -f, это сокращение от follow (следовать). Утилита постоянно выводит изменения в файле на экран. Например, если вы хотите следить за лог файлом, вместо того, чтобы постоянно открывать и закрывать его, используйте команду tail -nf.

21. grep

Grep, как и другие инструменты Linux, делает одно действие, но делает его хорошо: она ищет текст по шаблону. По умолчанию она принимает стандартный ввод, но вы можете искать в файлах. Шаблон может быть строкой или регулярным выражением. Она может вывести как совпадающие, так и не совпадающие строки и их контекст. Каждый раз, когда вы выполняете команду, которая выдает очень много информации, не нужно анализировать всё вручную - пусть grep делает свою магию.

22. sort

Сортировка строк текста по различным критериям. Наиболее полезные опции: -n (Numeric), по числовому значению, и -r (Reverse), которая переворачивает вывод. Это может быть полезно для сортировки вывода du. Например, если хотите отсортировать файлы по размеру, просто соедините эти команды.

23. wc

Утилита командной строки Linux для подсчёта количества слов, строк, байт и символов. Подробнее тут.

24. diff

Показывает различия между двумя файлами в построчном сравнении. Причём выводятся только строки, в которых обнаружены отличия. Измененные строки отмечаются символом "с", удалнные - "d", а новые - "а". Подробнее - здесь.

Кстати, я подготовил ещё одну подробную статью, в которой описан именно просмотр содержимого текстового файла в Linux c помощью терминала.

Команды Linux для управления процессами

25. kill / xkill / pkill / killall

Служат для завершения процессов. Но они принимают различные параметры для идентификации процессов. Kill нужен PID процесса, xkill - достаточно кликнуть по окну, чтобы закрыть его, killall и pkill принимают имя процесса. Используйте ту, которая удобна в определенной ситуации.

26. ps / pgrep

Как уже говорилось, чтобы уничтожить процесс, нужен его идентификатор. Один из способов получить его, это утилита ps, которая печатает информацию о запущенных процессах. По умолчанию вывод очень длинный, поэтому используйте опцию -e, чтобы увидеть информацию об определённом процессе. Это только снимок состояния на момент вызова, и информация не будет обновляться. Команда ps с ключом aux выводит полную информацию о процессах. Pgrep работает следующим образом: вы задаете имя процесса, а утилита показывает его идентификатор. Подробнее о команде ps описано тут.

27. top / htop

Обе команды похожи, обе отображают процессы и могут быть использованы как консольные системные мониторы. Я рекомендую установить htop, если в вашем дистрибутиве он не поставляется по умолчанию, так как это улучшенная версия top. Вы сможете не только просматривать, но и контролировать процессы через его интерактивный интерфейс.

28. time

Время выполнения процесса. Это секундомер для выполнения программы. Полезно, если вам интересно, насколько сильно ваша реализация алгоритма отстает от стандартной. Но, несмотря на такое название, она не сообщит вам текущее время, используйте для этого команду date.

Команды Linux окружения пользователя

29. su / sudo

Su и sudo - это два способа выполнить одну и ту же задачу: запустить программу от имени другого пользователя. В зависимости от вашего дистрибутива вы, наверное, используете одну или другую. Но работают обе. Разница в том, что su переключает вас на другого пользователя, а sudo только выполняет команду от его имени. Поэтому использование sudo будет наиболее безопасным вариантом работы. Я писал про права суперпользователя в этой статье.

30. date

В отличие от time, делает именно то, чего вы от неё и ожидаете: выводит дату и время в стандартный вывод. Его можно форматировать в зависимости от ваших потребностей: вывести год, месяц, день, установить 12-ти или 24-ти часовой формат, получить наносекунды или номер недели. Например, date +"%j %V", выведет день в году и номер недели в формате ISO.

31. alias

Команда создаёт синонимы для других команд Linux. То есть вы можете делать новые команды или группы команд, а также переименовывать существующие. Это очень удобно для сокращения длинных команд, которые вы часто используете, или создания более понятных имен для команд, которые вы используете нечасто и не можете запомнить. Здесь собрано несколько полезных алиасов.

32. uname

Выводит некую основную информацию о системе. Без параметров она не покажет ничего полезного, кроме строчки Linux, но, если задать параметр -a (All), можно получить информацию о ядре, имени хоста и узнать архитектуру процессора.

33. uptime

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

34. sleep

Вам, наверное, интересно как же её можно использовать. Даже не учитывая Bash-скриптинг, у неё есть свои преимущества. Например, если вы хотите выключить компьютер через определенный промежуток времени или использовать в качестве импровизированной тревоги.

Команды Linux для управления пользователями

35. useradd / userdel / usermod

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

36. passwd

Эта команда позволяет изменить пароль учетной записи пользователя. Как суперпользователь вы можете сбросить пароли всех пользователей, даже несмотря на то, что не можете их увидеть. Хорошая практика безопасности - менять пароль почаще.

Linux команды для просмотра документации

37. man / whatis

Команда man открывает руководство по определённой команде. Для всех основных команд Linux есть man страницы. Whatis показывает, какие разделы руководств есть для данной команды.

38. whereis

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

Команды Linux для управления сетью

39. ip

Если список команд Linux для управления сетью вам кажется слишком коротким, скорее всего вы не знакомы с утилитой ip. В пакете net-tools содержится множество других утилит: ipconfig, netstat и прочие устаревшие, вроде iproute2. Всё это заменяет одна утилита - ip. Вы можете рассматривать её как швейцарский армейский нож для работы с сетью или как непонятную массу, но в любом случае за ней будущее. Просто смиритесь с этим.

40. ping

Ping - это ICMP ECHO_REQUEST дейтаграммы, но на самом деле это неважно. Важно то, что утилита ping может быть очень полезным диагностическим инструментом. Она поможет быстро проверить, подключены ли вы к маршрутизатору или к интернету, и дает кое-какое представление о качестве этой связи.

41. nethogs

Если у вас медленный интернет, то вам, наверное, было бы интересно знать, сколько трафика использует какая-либо программа в Linux или какая программа потребляет всю скорость. Теперь это можно сделать с помощью утилиты nethogs. Для того чтобы задать сетевой интерфейс используйте опцию -i.

42. traceroute

Это усовершенствованная версия ping. Мы можем увидеть не только полный маршрут сетевых пакетов, но и доступность узла, а также время доставки этих пакетов на каждый из узлов. Подробнее - тут.

Выводы

Мы рассмотрели основные команды Linux, которые могут пригодиться вам при повседневном использовании системы. Если вы считаете, что есть другие команды, которые нужно добавить в этот список, напишите в комментариях!

Команда locate Linux используется для поиска файлов, расположенных на машине пользователя или на сервере. Фактически она выполняет ту же работу, что и команда find, однако, ведёт поиск в собственной базе данных. Find же шаг за шагом проходит через всю иерархию директорий.

Обновление базы данных locate происходит автоматически, как правило, раз в сутки. Настроить желаемый интервал между сканированиями системы можно с помощью планировщика задач Cron.

Синтаксис и опции locate

В эмуляторе терминала команда locate записывается в таком формате:

locate опции шаблон_для_поиска

Примеры использования locate

Если нужно найти файлы, соответствующие сразу нескольким шаблонам, используется опция -A. Шаблоны разделяются пробелом:

locate -A zima 64

Опция -w включена по умолчанию, поэтому locate проверяет на соответствие шаблону не только имена файлов, но и названия папок, в которых эти файлы расположены. Например, если Документ1.ods находится по адресу Компьютер/БухалтерияДоки/ВсеДокументы/, он будет выведен командой при использовании шаблонов «Док», «Бух» и «Все». Для того, чтобы в результатах отображались только файлы с именами, в которых присутствует шаблон, применяется опция -b.


На скриншоте видно, как команда обрабатывает запросы с каждой из упомянутых опций.

Команда locate чувствительна к регистру. Если, к примеру, шаблон имеет вид «GrEEn», файлы с именами green и GREEN в процессе поиска будут игнорироваться. Для того, чтобы найти все документы, независимо от наличия строчных и заглавных букв в их названиях, используется опция -i.

Порой в названиях файлов встречаются буквы с диакритическими знаками (умлаутами, акутами, тремами и прочими). Эти документы не будут найдены, если в команде используется шаблон, состоящий из обычных букв. И наоборот, если в шаблоне есть буквы с диакритическими знаками, команда проигнорирует файлы, в названиях которых отсутствуют аналогичные символы. «Стереть» разницу между буквами с диакритическими знаками и без них можно при помощи опции -t.


По умолчанию команда locate осуществляет поиск в собственной базе данных mlocate.db, однако, умеет работать и с пользовательскими БД. Для этого предусмотрена следующая опция: --database.

locate --database main-user-tor-database1.db bin/raw

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

locate --database main-user-tor-database1.db:main-user-tor-database2.db bin/raw

Результаты будут выведены отдельно для каждой базы данных, в той же очерёдности, с которой базы данных были перечислены в запросе.


Файлы, добавленные в систему до обновления стандартной базы данных, не обнаруживаются командой locate. Также в результатах могут появляться уже несуществующие (удалённые) документы. Для того, чтобы актуализировать выдачу, используется опция -e.

Глядя на скриншот, легко сравнить результаты поиска с опцией -е и без неё.


Кроме того, можно обновить базу данных вручную, выполнив в терминале команду:


Выводы

Команда locate linux позволяет быстро и легко найти файлы, затерявшиеся в недрах системы. Если какие-то аспекты её работы остались для вас непонятными, задавайте вопросы в комментариях.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.


Чтобы установить их, выполните шаги что приведены ниже.

Установка locate и updatedb в Unix/Linux

Установка locate и updatedb в Debian/Ubuntu/Mint:

Установка locate и updatedb в CentOS/Fedora/RedHat:

Установка locate и updatedb в Mac OS X:

Или создаем алиас в .bashrc или .zshrc:

Использование locate и updatedb в Unix/Linux

Обновляем список файлов:

И после чего можно пользоваться, например мне нужно найти расположение файла datedetector.py (для добавление конфигурации fail2ban), то для этого нужно выполнить:

Данное руководство документирует версию GNU о updatedb, которая обновляет базы данных всех имен для файлов, используемые GNU locate. Базы данных имен всех файлов содержат списки файлов, которые были найдены в ходе сканирования данной утилиты. Имя файла базы данных по умолчанию определяется при установке и настройке locate и updatedb. Частота, с которой выполняется обновление баз и каталогов, для которых они содержат записи зависит от того, как часто updatedb запускается и так же от аргументов которые переданы в конфиге.

В сетевых средах, часто имеет смысл создать базу данных в корне каждой файловой системы, содержащий записи для этой файловой системы. Запустите updatedb для каждой файловой системы на файловом сервере, где это файловая система находится на локальном диске. Пользователи могут выбрать, какие базы данных нужно искать с помощью переменной среды или параметра командной строки. Базы данных не могут быть объединены вместе.

Новый GNU locate можно прочитать и старые, и новые форматы баз данных.

Опции для updatedb.

-u
Создать slocate базу данных, начиная с корневого каталога. Это происходит по умолчанию, если вызывается updatedb.

-U path
Создать slocate базу данных, начиная с указанного пути.

-e dirs
Исключить каталоги разделенными запятыми из базы данных slocate.

-f fstypes
Исключить файловые системы, разделенные запятыми из базы данных slocate.

-l <num>
Уровень безопасности. -l 0 означает что проверки безопасности выключены, что сделает поиск быстрее. -l 1 означает что проверки безопасности включены. Это по умолчанию.

-v
Подробный режим; Показать файлы которые индексируются при создании базы данных.

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

Опции для locate.

-u
Создать slocate базу данных, начиная с пути /.

-U dir
Создать slocate базу данных, начиная с пути.

-e
Исключить каталоги из базы данных slocate.

-f
Исключить файлы на конкретной файловой системы из базы данных slocate.

-l
Уровень безопасности. 0 означает что проверки безопасности выключена. Это сделает Осуществляет поиск быстрее. 1 означает что проверки безопасности включены. Это по умолчанию.

-i
Делает поиск без учета регистра.

-n
Ограничьте количество результатов.

Один из многих способов установки программного обеспечения в Ubuntu – команда apt-get или apt. Установка пакетов с помощью пакетного менеджера намного удобнее и безопаснее, чем поиск и загрузка программ в интернете. Открыв терминал, вы должны вызвать утилиту apt с параметром install написать название программы, чтобы установить ее.


Ошибка Unable to locate package error в Ubuntu

Дальше пошагово рассмотрим процесс устранения ошибки.

1. Проверьте имя пакета

Это первое, что вы должны сделать. Может, в названии пакета опечатка? Если вы пытаетесь установить vlc и написали vcl, то непременно ничего не получится. Опечатки – распространенная проблема, так что убедитесь в том, что вы не допустили ошибок во время ввода имени пакета.

2. Обновите кэш репозиториев

Если вы в первый раз запустили систему после установки, следует написать команду update:

sudo apt update


Данная команда не обновит Ubuntu полностью. На деле, команда apt update составляет локальный список доступных для установки пакетов.

При использовании команды install, менеджер пакетов apt просматривает кэш, чтобы получить информацию о пакете и его версии, а затем скачать его из репозиториев в сети. Если пакета в кэше нет, система не сможет его установить.

Кэш в только что установленной системе изначально пуст. Именно поэтому вам стоит запустить команду apt update сразу после установки Ubuntu или других дистрибутивов, основанных на Ubuntu (например, Linux Mint).

Даже если система не новая, кэш apt вполне может оказаться устаревшим. В любой момент не лишним будет его обновить.

3. Убедитесь, что пакет доступен в вашей версии Ubuntu

Отлично! Вы проверили название пакета, и оно верно. Вы запустили команду update, чтобы обновить состояние кэша, но все ошибка unable to locate package все еще присутствует. Вполне возможно, что пакет попросту недоступен. Но вы следуете инструкции с какого-то сайта, и у всех получается установить его указанным образом. В чем может заключаться проблема?

Есть два варианта. Либо пакет доступен в репозитории Universe, который в вашей системе не включен, либо пакета вовсе не существует для вашей версии Ubuntu.

Первый шаг – проверьте, какая версия Ubuntu у вас запущена. Откройте терминал и введите следующую команду:


В результате вы увидите версию Ubuntu и ее кодовое название. Именно кодовое название нам важно больше всего. Как видите, мы используем Ubuntu 18.04 с кодовым именем bionic. У вас может быть иначе, но суть должна быть понятна. Как только вы получили сведения о версии и названии, откройте сайт Ubuntu Packages.

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


Вам будет показано, доступен ли пакет для вашей версии Ubuntu, и если это так, то вместе с этим отобразится репозиторий, в котором он находится. Мы искали средство создания скриншотов Shutter и вот, что вышло для Ubuntu 18.04 Bionic:


В нашем случае, название пакета точно совпало. Это значит, что пакет shutter существует для Ubuntu 18.04 Bionic, но в репозитории Universe.

Если необходимый пакет доступен для вашей версии Ubuntu, но в Universe или Multiverse, эти репозитории необходимо включить:

sudo add-apt-repository universe multiverse



Также нужно обновить кэш для того, чтобы система узнала о новых пакетах, находящихся в подключенных репозиториях:

sudo apt update

Теперь установка пакета должна пройти гладко.

Ничего не работает, что делать?

Если сайте Ubuntu Packages показывает, что пакета для вашей версии системы нет, то придется найти обходные пути его установки.

Возьмем в качестве примера Shutter. Это отличное средство создания скриншотов для Linux, но его несколько лет не обновляли, поэтому в Ubuntu 18.10 и более новых версиях оно не поддерживается. Как же его установить? К счастью, один сторонний разработчик создал собственный репозиторий (PPA) и установить программу можно с помощью него. Искать пакеты и PPA, в которых они находятся, можно на сайте Launchpad для Ubuntu.

Учтите, что не стоит подключать неофициальные PPA к списку репозиториев. Лучше пользоваться теми, которые есть в вашем дистрибутиве.

Если нет даже PPA, зайдите на официальный сайт программы и проверьте, нет ли там описания альтернативных способов установки. У некоторых проектов есть .deb или AppImage файлы. Другие перешли на Snap пакеты.

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

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

В заключение…

Надеемся, что это руководство помогло решить проблему с пакетами в Ubuntu. Если у вас есть вопросы или предложения, можно оставить их в комментариях.

Нет похожих записей


Статья распространяется под лицензией Creative Commons ShareAlike 4.0 при копировании материала ссылка на источник обязательна.

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