Разница между locate и find Линукс
Многие новички часто спрашивают, почему в операционной системе Линукс есть две одинаковые команды: locate и find, ведь выполняют они одни и те же действия. Зачем использовать одну, если есть другая, и наоборот.
На самом деле, различия есть, и они весьма существенные. Цель команд одна – найти файл по заданным характеристикам или имени, а вот работают они по-разному. В случае с find поиск выполняется в реально существующей системе. Он более медленный, но его результаты всегда актуальны. К тому же, у find больше опций.
Команда locate делает все то же самое, но использует для поиска базу данных, которая была создана ранее (командой updatebd). Процедура нахождения файла или папки выполняется быстрее, но системе приходится пользоваться «старой» базой данных и искать имена или их части.
Для поиска по имени в Linux используют find name
Простой пример использования команды find
Для начала рассмотрим простой пример использования команды find для поиска на компьютере файлов с именем config. Мы будем искать файлы config, начиная с корневого каталога . Для этого вам нужно выполнять команду от имени пользователя root, чтобы иметь достаточно прав доступа, иначе получите сообщения «Permission denied». Итак, выполним команду:
Команда означает следующее: искать файлы с именем config (-name config), начиная с каталога (первый параметр команды find) и выводить имена файлов на экран (аргумент -print). Отмечу, что поиск рекурсивный, то есть при поиске просматриваются все вложенные директории. Как видите все просто. Теперь рассмотрим синтаксис команды и перейдем к обзору ее основных аргументов.
2.2, набор метасимволов регулярных выражений grep (базовый набор)
Режим | Описание | пример |
---|---|---|
Начало якорной линии | Такие как:Сопоставить всеНачало строки. | |
Конец якорной линии | Такие как:Сопоставить всеКонечная строка. | |
Соответствует не-символу новой строки | Такие как:соответствиеЗатем следует произвольный символ, а затем。 | |
Совпадение нуля или более предыдущих символов | Такие как:Сопоставляет все строки с одним или несколькими пробелами, за которыми следует grep.Используется вместе для обозначения любого персонажа. | |
Совпадение символа в указанном диапазоне | Такие как:соответствиес участием。 | |
Совпадение с символом не в указанном диапазоне | Такие как:Совпадение не содержитс участиемНачиная с буквыЛиния. | |
Пометить совпадающие символы | Такие как:,Быть отмеченным как。 | |
Прикрепить начало слова | Такие как:Матч содержитСтрока начального слова. | |
Закрепить конец слова | Такие как:Матч содержитСтрока конечного слова. | |
Повторяйте символы последовательно,раз | Такие как:Матчи включают 5 подрядЛиния. | |
Повторяйте символы последовательно,по крайней мерераз | Такие как:Не менее 5 матчей подрядЛиния. | |
Повторяйте символы последовательно,по крайней мереРаз, не болеераз | Такие как:Матч 5-10 подрядЛиния. | |
Соответствует буквенному и числовому символу, то есть | Такие как:Совпадать сЗатем следует ноль или более текстовых или числовых символов, затем。 | |
Перевернутая форма соответствует несловесному символу | Таких как: период, период и т. Д.Вы можете сопоставить несколько. | |
Блокировка слова | Такие как: Только матчКоторый может быть толькоЭто слово имеет пробелы с обеих сторон. |
Составные части операционной системы
- Загрузчик: Программное обеспечение , которое управляет процессом загрузки компьютера. Для большинства пользователей это будет просто заставка , которая всплывает при загрузке операционной системы.
- Ядро: Это одна часть целого, на самом деле называется «Linux». Ядро управляет CPU (central processing unit), памятью и периферийными устройствами.
- Демоны: Это справочные услуги (печать, звук, планирование и т.д.), либо запуск во время загрузки или после входа в рабочий стол.
- Shell: Командная строка Linux. Это оболочка — процесс команды , которая позволяет управлять компьютером с помощью команд, введенных в текстовый интерфейс.
- Графический сервер: Это подсистема, которая отображает графику на мониторе. Обычно называют как X — сервер или просто «X».
- Desktop Environment: Это разновидность графических интерфейсов пользователя, основанная на метафоре рабочего стола.
- Область применения: Среда рабочего стола не предлагают полный спектр приложений. Так же , как и Windows , Mac, Linux предлагает тысячи и тысячи наименований программного обеспечения высокого качества, которые могут быть легко найдены и установлены. Большинство современных дистрибутивов Linux включают в App Store, как инструменты, которые упрощают установку приложений. Например: Ubuntu Linux имеет Ubuntu Software Center, который позволяет быстро выполнять поиск среди тысяч приложений и установить их из одного централизованного места .
Шаг 1 – Как изменить права доступа в Linux через командную строку
chmod – эта команда используется для изменения прав доступа к файлу или папке. Каждый файл имеет типы пользователей, которые могут с ним взаимодействовать:
Тип | Объяснение |
---|---|
Владелец (owner) | Пользователь, создавший и владеющий данным файлом или папкой. |
Группа (group) | Все пользователи, члены одной группы. |
Другие (other) | Все другие пользователи в системе, не являющиеся ни владельцами, ни членами группы. |
Команда ls -l, может быть использована для отображения прав доступа и владельца. К примеру, команда ls -l file1.txt отобразит:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
“-rwxr–rw-“ – эта часть строки показывает права доступа
Здесь 4 главные буквы на которые вам надо обратить внимание: r,w,x,d. d означает, что тип файла — это каталог
В нашем примере, такой буквы нет (она стояла бы первой в строке), здесь вместо нее стоит символ “-“ (который в основном означает “нет”). Буква x означает разрешение на выполнение файла или папки (это разрешение необходимо для входа в папку). Буква w означает разрешение на запись файла или папки (редактирование, удаление и т.д.) И наконец последняя буква r, которая означает чтение. Если у вас есть права на чтение файла, вы можете прочесть содержимое файла, но не сможете предпринять другие действия (к примеру, вы можете прочитать код скрипта, но не сможете выполнить его).
1 – число хард связи. Проще говоря, хард связь это дополнительное имя для существующего файла.
user user – это значение показывает владельца файла и его группу.
– это значение показывает размер файла.
Jan 19 12:59 – отображает дату последнего изменения.
file1.txt – предоставляет имя файла или папки.
Хорошо, теперь давайте вернемся к команде chmod. Это команда позволяет нам изменить права доступа к файлу или папке. Мы научим вас, как это сделать просто складывая номера. Каждое из прав доступа имеет свой собственный номер:
- r (чтение) – 4
- w (запись) – 2
- x (выполнение) – 1
К примеру, если мы хотим изменить права доступа к файлу file1.txt на эти:
-rwxr–rw- 1 user user 0 Jan 19 12:59 file1.txt
Мы должны написать следующую команду
chmod 746 file1.txt
Каждый номер в этой команде представляет собой права для одного из типов пользователей (владелец, группа и другие). Первый номер 7. Теперь, используя объяснение числовых значений выше, единственный вариант для получения числа 7 — сложение чисел 4, 2 и 1, получаем 4+2+1=7. Проще говоря, это означает ВСЕ права доступа (чтение, запись, выполнение — rwx). Первый номер устанавливает права доступа для владельца файла. Второй номер 4, который означает права доступа -r (чтение), устанавливает права доступа для группы владельца. Третий номер 6, используя тот же способ, что и с первым номером, 4+2=6, дает группе другие, права на чтение (4) и запись (2) файла. Третья часть в команде (file1.txt) – это имя файла для которого мы изменяем права доступа.
Еще один пример:
chmod 777 file2.txt
эта команда даст все права для каждого типа пользователей (владелец, группа и другие).
Вот список самых наиболее распространённых прав доступа для файлов:
Значение | Цифровое значение | Объяснение |
---|---|---|
-rw——- | 600 | Владелец может читать и записывать файл. |
-rw-r–r– | 644 | Владелец может читать и записывать файл, группа и другие могут только читать. |
-rw-rw-rw- | 666 | Владелец, группа и другие могут читать и записывать. |
-rwx—— | 700 | Владелец может читать, записывать и выполнять, группа и другие не имеют никаких прав доступа. |
-rwx–x–x | 711 | Владелец может читать, записывать и выполнять, группа и другие могут только выполнять. |
-rwxr-xr-x | 755 | Владелец может читать, записывать и выполнять, группа и другие могут читать и выполнять. |
-rwxrwxrwx | 777 | Все типы пользователей могут читать, записывать и выполнять. |
Наиболее распространенные права доступа для каталогов:
Значение | Цифровое значение | Объяснение |
---|---|---|
drwx—— | 700 | Только владелец может читать и записывать в этом каталоге. |
drwxr-xr-x | 755 | Владелец, группа и другие могут читать каталог, но только владелец может изменять содержимое. |
Существуют и другие способы изменения прав доступа в Linux, используя команду chmod. Но нашей персональной рекомендацией станет, изучение одной из этих команд и её использование (в этом случае способ с номерами). Если вы хотите узнать больше о других путях изменения прав доступа, вы можете прочитать об этом здесь.
Команды Linux связанные с установкой пакета
Эти команды используются для управления пакетами Linux.
78. rpm
RPM (менеджер пакетов) — это утилита управления пакетами, используемая для установки, удаления, обновления, запроса и проверки пакетов программного обеспечения.
80. yum
Yum (измененное средство обновления Yellowdog) — это утилита, предоставляется в системах RHEL для установки, удаления и поиска пакетов. Например, Yum автоматически устанавливает зависимости пакетов. , установит сервер «apache».
81. Apt
Apt — это инструмент командной строки для установки, обновления и удаления пакетов deb в Ubuntu, Debian и подобных дистрибутивах Linux.
Манипуляции с текстом
cat file_originale | > result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый |
cat file_originale | » result.txt | общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан |
grep Aug /var/log/messages из файла ‘/var/log/messages’ | отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug» |
grep ^Aug /var/log/messages из файла ‘/var/log/messages’ | отобрать и вывести на стандартное устройство вывода строки, начинающиеся на «Aug» |
grep /var/log/messages из файла ‘/var/log/messages’ | отобрать и вывести на стандартное устройство вывода строки, содержащие цифры |
grep Aug -R /var/log/* | отобрать и вывести на стандартное устройство вывода строки, содержащие «Aug», во всех файлах, находящихся в директории /var/log и ниже |
sed ‘s/stringa1/stringa2/g’ example.txt | в файле example.txt заменить «string1» на «string2», результат вывести на стандартное устройство вывода |
sed ‘/^$/d’ example.txt | удалить пустые строки из файла example.txt |
sed ‘/ *#/d; /^$/d’ example.txt | удалить пустые строки и комментарии из файла example.txt |
echo ‘esempio’ | tr ‘’ ‘’ | преобразовать символы из нижнего регистра в верхний |
sed -e ‘1d’ result.txt | удалить первую строку из файла example.txt |
sed -n ‘/string1/p’ | отобразить только строки содержашие «string1» |
sed -e ‘s/ *$‘ example.txt |удалить пустые символы в в конце каждой строки | |sed -e ‘s/string1g’ example.txt | удалить строку «string1» из текста не изменяя всего остального |
sed -n ‘1,8p;5q’ example.txt | взять из файла с первой по восьмую строки и из них вывести первые пять |
sed -n ‘5p;5q’ example.txt | вывести пятую строку |
sed -e ‘s/0*/0/g’ example.txt | заменить последовательность из любого количества нулей одним нулём |
cat -n file1 | пронумеровать строки при выводе содержимого файла |
cat example.txt | awk ‘NR%2==1’ | при выводе содержимого файла, не выводить чётные строки файла |
echo a b c | awk ‘{print $1}’ | вывести первую колонку. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции |
echo a b c | awk ‘{print $1,$3}’ | вывести первую и треью колонки. Разделение, по-умолчанию, по проблелу/пробелам или символу/символам табуляции |
paste file1 file2 | объединить содержимое file1 и file2 в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n 1-m |
paste -d ‘ ‘ file1 file2 | объединить содержимое file1 и file2 в виде таблицы с разделителем « » |
sort file1 file2 | отсортировать содержимое двух файлов |
sort file1 file2 | uniq | отсортировать содержимое двух файлов, не отображая повторов |
sort file1 file2 | uniq -u | отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода) |
sort file1 file2 | uniq -d | отсортировать содержимое двух файлов, отображая только повторяющиеся строки |
comm -1 file1 file2 | сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file1’ |
comm -2 file1 file2 | сравнить содержимое двух файлов, не отображая строки принадлежащие файлу ‘file2’ |
comm -3 file1 file2 | сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах |
Find largest directory or file
If you would like to quickly determine what files or directories on your system are taking up the most room, you can use find to search recursively and output a sorted list of files and/or directories by their size.
How to show the biggest file in a directory:
$ find /path/to/search -type f -printf "%s\t%p\n" | sort -n | tail -1
Notice that the find command was sorted to two other handy Linux utilities: sort and tail. Sort command will put the list of files in order by their size, and the tail command will output only the last file in the list, which is also the largest.
You can adjust the tail command if you’d like to output, for example, the top 5 largest files:
$ find /path/to/search -type f -printf "%s\t%p\n" | sort -n | tail -5
Alternatively, you could use the head command to determine the smallest file(s):
$ find /path/to/search -type f -printf "%s\t%p\n" | sort -n | head -5
If you’d like to search for directories instead of files, just specify “d” in the type option. How to show the biggest directory:
$ find /path/to/search -type d -printf "%s\t%p\n" | sort -n | tail -1
Почти неограниченный поиск
Все операционные системы имеют инструмент для поиска файлов. В отличие от большинства таких инструментов команда в UNIX может автоматически выполнять различные операции над найденными ею файлами.
Стандартные инструменты , интегрированные в графический интерфейс пользователя (GUI), позволяют выполнять несколько общих задач с найденными файлами: их можно выбрать для вырезания, вставки, копирования; эти файлы можно переместить в новый каталог; можно открыть их программой, при помощи которой эти файлы были созданы. Эти операции состоят из двух и более шагов и не являются автоматическими – сначала выполняется поиск файлов, затем, с использованием GUI-интерфейса, эти файлы помечаются для выполнения следующей операции. Этот подход хорошо подходит для многих пользователей, но исследователь хочет большего.
Команда может удалять, копировать, перемещать и выполнять найденные файлы. Дополнительно, с параметром , find может автоматически прогонять файлы через любую нужную последовательность команд UNIX. find может даже запросить подтверждение перед выполнением подобных операций с любым файлом.
Suppressing error messages
You may receive the error message «Permission denied» when performing a search. For instance, if you search the root directory as a normal user:
find /
find: `/var/lib/sudo/ts': Permission denied find: `/var/lib/sudo/lectured': Permission denied find: `/var/lib/polkit-1': Permission denied find: `/var/lib/container': Permission denied find: `/var/lib/gdm3/.dbus': Permission denied find: `/var/lib/gdm3/.config/ibus': Permission denied ...
You will receive that error message if find tries to access a file your user account doesn’t have permission to read. You may be able to perform the search as the superuser (root), which has complete access to every file on the system. But it’s not recommended to do things as root, unless there are no other options.
If all you need to do is hide the «Permission denied» messages, you can add 2&>1 | grep -v «Permission denied» to the end of your command, like this:
find / 2>&1 | grep -v "Permission denied"
The above example filters out the «Permission denied» messages from your search. How?
2>&1 is a special redirect that sends error messages to the standard output to pipe the combined lines of output to the grep command. grep -v then performs an inverse match on «Permission denied», displaying only lines which do not contain that string.
Redirecting and using grep to filter the error messages is a useful technique when «Permission denied» is cluttering your search results and you can’t perform the search as root.
Set the maxdepth
The find command will search recursively by default. This means that it will search the specified directory for the pattern you specified, as well as any and all subdirectories within the directory you told it to search.
For example, if you tell find to search the root directory of Linux (/), it will search the entire hard drive, no matter how many subdirectories of subdirectories exist. You can circumvent this behavior with the -maxdepth option.
Specify a number after -maxdepth to instruct find on how many subdirectories it should recursively search.
Search for files only in the current directory and don’t search recursively:
$ find . -maxdepth 0 -name "myfile.txt"
Search for files only in the current directory and one subdirectory deeper:
$ find . -maxdepth 1 -name "myfile.txt"
Примеры использования find
Поиск файла по имени
1. Простой поиск по имени:
find / -name «file.txt»
* в данном примере будет выполнен поиск файла с именем file.txt по всей файловой системе, начинающейся с корня .
2. Поиск файла по части имени:
find / -name «*.tmp»
* данной командой будет выполнен поиск всех папок или файлов в корневой директории /, заканчивающихся на .tmp
3. Несколько условий.
а) Логическое И. Например, файлы, которые начинаются на sess_ и заканчиваются на cd:
find . -name «sess_*» -a -name «*cd»
б) Логическое ИЛИ. Например, файлы, которые начинаются на sess_ или заканчиваются на cd:
find . -name «sess_*» -o -name «*cd»
в) Более компактный вид имеют регулярные выражения, например:
find . -regex ‘.*/\(sess_.*cd\)’
find . -regex ‘.*/\(sess_.*\|.*cd\)’
* где в первом поиске применяется выражение, аналогичное примеру а), а во втором — б).
4. Найти все файлы, кроме .log:
find . ! -name «*.log»
* в данном примере мы воспользовались логическим оператором !.
Поиск по дате
1. Поиск файлов, которые менялись определенное количество дней назад:
find . -type f -mtime +60
* данная команда найдет файлы, которые менялись более 60 дней назад.
Или в промужутке:
find . -mmin -20 -mmin +10 -type f
* найти все файлы, которые менялись более 10 минут, но не более 20-и.
2. Поиск файлов с помощью newer. Данная опция доступна с версии 4.3.3 (посмотреть можно командой find —version).
а) дате изменения:
find . -type f -newermt «2019-11-02 00:00»
* покажет все файлы, которые менялись, начиная с 02.11.2019 00:00.
find . -type f -newermt 2019-10-31 ! -newermt 2019-11-02
* найдет все файлы, которые менялись в промежутке между 31.10.2019 и 01.11.2019 (включительно).
б) дате обращения:
find . -type f -newerat 2019-10-08
* все файлы, к которым обращались с 08.10.2019.
find . -type f -newerat 2019-10-01 ! -newerat 2019-11-01
* все файлы, к которым обращались в октябре.
в) дате создания:
find . -type f -newerct 2019-09-07
* все файлы, созданные с 07 сентября 2019 года.
find . -type f -newerct 2019-09-07 ! -newerct «2019-09-09 07:50:00»
* файлы, созданные с 07.09.2019 00:00:00 по 09.09.2019 07:50
Искать в текущей директории и всех ее подпапках только файлы:
find . -type f
* f — искать только файлы.
Поиск по правам доступа
1. Ищем все справами на чтение и запись:
find / -perm 0666
2. Находим файлы, доступ к которым имеет только владелец:
find / -perm 0600
Поиск файла по содержимому
find / -type f -exec grep -i -H «content» {} \;
* в данном примере выполнен рекурсивный поиск всех файлов в директории и выведен список тех, в которых содержится строка content.
С сортировкой по дате модификации
find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r
* команда найдет все файлы в каталоге /data, добавит к имени дату модификации и отсортирует данные по имени. В итоге получаем, что файлы будут идти в порядке их изменения.
Лимит на количество выводимых результатов
Самый распространенный пример — вывести один файл, который последний раз был модифицирован. Берем пример с сортировкой и добавляем следующее:
find /data -type f -printf ‘%TY-%Tm-%Td %TT %p\n’ | sort -r | head -n 1
Поиск с действием (exec)
1. Найти только файлы, которые начинаются на sess_ и удалить их:
find . -name «sess_*» -type f -print -exec rm {} \;
* -print использовать не обязательно, но он покажет все, что будет удаляться, поэтому данную опцию удобно использовать, когда команда выполняется вручную.
2. Переименовать найденные файлы:
find . -name «sess_*» -type f -exec mv {} new_name \;
или:
find . -name «sess_*» -type f | xargs -I ‘{}’ mv {} new_name
3. Переместить найденные файлы:
find . -name «sess_*» -type f -exec mv {} /new/path/ \;
* в данном примере мы переместим все найденные файлы в каталог /new/path/.
4. Вывести на экран количество найденных файлов и папок, которые заканчиваются на .tmp:
find . -name «*.tmp» | wc -l
5. Изменить права:
find /home/user/* -type d -exec chmod 2700 {} \;
* в данном примере мы ищем все каталоги (type d) в директории /home/user и ставим для них права 2700.
6. Передать найденные файлы конвееру (pipe):
find /etc -name ‘*.conf’ -follow -type f -exec cat {} \; | grep ‘test’
* в данном примере мы использовали find для поиска строки test в файлах, которые находятся в каталоге /etc, и название которых заканчивается на .conf. Для этого мы передали список найденных файлов команде grep, которая уже и выполнила поиск по содержимому данных файлов.
7. Произвести замену в файлах с помощью команды sed:
find /opt/project -type f -exec sed -i -e «s/test/production/g» {} \;
* находим все файлы в каталоге /opt/project и меняем их содержимое с test на production.
Процесс init
В момент загрузки ядра создаётся особый процесс с PID=1, который должен существовать до перезагрузки ОС. Все остальные процессы в системе являются его дочерними процессами (или дочерними от дочерних и т.д.). Обычно, в первом процессе исполняется программа init поэтому в дальнейшем я буду называть его «процесс init».
В Linux процесс init защищен от вмешательства других процессов. К нему нельзя подключиться отладчиком, к его памяти нельзя получить доступ через интерфейс procfs, ему не доставляются сигналы, приводящие к завершению процесса. — не сработает. Если же процесс init всё таки завершится, то ядро также завершает работу с соответствующим сообщением.
В современных дистрибутивах классическая программа init заменена на systemd, но сущности процесса с PID=1 это не меняет.
При загрузке Linux ядро сначала монтирует корневую файловую систему на образ диска в оперативной памяти — initrd, затем создаётся процесс с PID=1 и загружает в него программу из файла /init. В initrd из дистрибутива CentOS начальный /init — это скрипт для /bin/bash. Скрипт загружает необходимые драйверы, после чего делает две вещи, необходимые для полноценного запуска Linux:
- Перемонтирует корневую файловую систему на основной носитель
- Загружает командой exec в свою память основную программу init
Для того, чтобы выполнить эти два пункта через загрузчик в начального init два параметра:
- основной носитель корневой ФС. Например: root=/dev/sda1
- имя файла с программой init. Например: init=/bin/bash
Если второй параметр опущен то ищется имя зашитое в начальный init по умолчанию.
Если вы загрузите вместо init /bin/bash, как в моём примере, то сможете завершить первый и единственный процесс командой exit и пронаблюдать сообщение:
Этот пример так же показывает, как получить права администратора при физическом доступе к компьютеру.
Особенности ядра Linux
Обычно конечные пользователи имеют дело с дистрибутивами Linux, которые незначительно отличаются между собой, в том числе по компонентам ядра (например, наличию/отсутствию определенных драйверов). Однако ядро в своей основе все-равно остается ядром Linux, его исходники предоставляет проект https://www.kernel.org/. Это совместный проект, к нему может присоединится каждый программист. Основным руководителем остается Линус Торвальдс.
С технической точки зрения, Linux – это ядро, а не операционная система. Linux + программы из проекта GNU рождают операционную систему GNU/Linux. Однако ее тоже не существует в чистом виде. Разработчики дистрибутивов дорабатывают на свой лад GNU/Linux, после чего получаются различные операционные системы-дистрибутивы. У каждого дистрибутива есть собственное имя (Ubuntu, Fedora и т. п.). Однако в основе всех этих систем лежит ядро Linux, поэтому все они принадлежат одному семейству Linux-систем.
Ядро Linux начал разрабатывать в 1991 году Линус Торвальдс. В дальнейшем оно развивалось и совершенствовалось многими людьми. Ядро Linux выпускается под лицензией GNU GPL.
Ядро Linux Unix-подобно, так как заимствовало идеи, заложенные в Unix, соответствует стандартам POSIX, а также по большей части написано на языке С.
У Linux монолитное ядро. Однако некоторые идеи микроядерной архитектуры тут также используются. Так драйверы устройств могут быть представлены в виде модулей и загружаться по требованию, а не при загрузки всего ядра.
Ядро выпускается в виде стабильных и разрабатываемых версий. В стабильных обычно исправлены ошибки, добавлены новые драйверы устройств. До недавнего времени четное второе число в названии ядра, говорило, что оно стабильно. Нечетное число обозначало разрабатываемую нестабильную версию. В 2011 году от такого подхода к нумерации версий отказались.
Опытные пользователи дистрибутивов Linux нередко сами скачивают и устанавливают себе новое ядро. Для этого они сначала распаковывают исходные коды, затем выполняют конфигурацию, потом компилируют, размещают в загрузочном каталоге и изменяют настройки загрузчика.
Конфигурируют ядро с целью включения, отключения или компиляции в виде модуля какого-либо драйвера или функции. Другими словами, «ядро под себя» не будет содержать лишних драйверов для оборудования, которого нет.
CPU load of find command
When searching through loads of directories, the find command can be resource-intensive. It should inherently allow more important system processes to have priority, but if you need to ensure that the find command takes up fewer resources on a production server, you can use the ionice or nice command.
Monitor CPU usage of the find command:
$ top
Reduce the Input/Output priority of find command:
$ ionice -c3 -n7 find /path/to/search -name "myfile.txt"
Reduce the CPU priority of find command:
$ nice -n 19 find /path/to/search -name "myfile.txt"
Or combine both utilities to really ensure low I/O and low CPU priority:
$ nice -n 19 ionice -c2 -n7 find /path/to/search -name "myfile.txt"
I hope you find the tutorial useful. Keep coming back.