Архив рубрики: Публикации

Команда find в Linux: примеры использования программы find с параметром exec



























4.5/5 — (2 голоса)

Команда find в Linux – Это команда для поиска файлов и каталогов на основе специальных условий. Find – это одна из наиболее важных и часто используемых утилит системы Linux.

Основная информация о Find

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

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

Команда find имеет такой синтаксис:

find [папка] [параметры]критерийшаблон [действие]

Папка– каталог в котором будем искать

Параметры– дополнительные параметры, например, глубина поиска, и т д

Критерий– по какому критерию будем искать: имя, дата создания, права, владелец и т д.

Шаблон – непосредственно значение по которому будем отбирать файлы.

Основные параметры команды find

Я не буду перечислять здесь все параметры, рассмотрим только самые полезные.

  • -P никогда не открывать символические ссылки
  • -L – получает информацию о файлах по символическим ссылкам. Важно для дальнейшей обработки, чтобы обрабатывалась не ссылка, а сам файл.
  • -maxdepth – максимальная глубина поиска по подкаталогам, для поиска только в текущем каталоге установите 1.
  • -depth – искать сначала в текущем каталоге, а потом в подкаталогах
  • -mount искать файлы только в этой файловой системе.
  • -version – показать версию утилиты find
  • -print – выводить полные имена файлов
  • -type f – искать только файлы
  • -type d – поиск папки в Linux

Синтаксис и параметры команды Find

  • /v – Выводит все строки, не содержащие строку, заданную параметром строка.

  • /c – Подсчет строк, содержащих строку, указанную параметром строка, и отображение общего количества.

  • /n – Выводит номера строк перед самими строками.

  • /i – Задает поиск без различия строчных и заглавных букв.

  • “строка_поиска” – Обязательный параметр. Указывает группу символов, поиск которой будет производиться. Необходимо заключить параметр строка в кавычки (“строка”).

  • [диск:][путь] ИмяФайла – Задает местоположение и имя файла, в котором будет производиться поиск заданной строки символов.

  • /? – Отображение справки в командной строке.

Путь

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

Опции

Опции команды find указываются, начиная с символа «-», за которым следует название опции. Рассмотрим основные опции.








-depth (или -d)Поиск в подкаталогах перед поиском в самом каталоге.
-LПри поиске следовать по символическим ссылкам.
-maxdepth NПри поиске проверять не более чем N вложенных уровней каталогов.
-mindepth NНе проверять вложенные каталоги уровня N и меньше.
-mountНе искать в каталогах других файловых систем.

2.1.1. Опция -name

При работе с командой find чаще всего используется опция -name. После нее в кавычках должен быть указан шаблон имени файла.

Если необходимо найти все файлы с расширением .txt в вашем начальном каталоге, укажите символ в качестве путевого имени. Имя начального каталога будет извлечено из переменной $HOME.

$ find ~ -name «*.txt» -print

Чтобы найти все файлы с расширением .txt, находящиеся в текущем каталоге, следует воспользоваться такой командой:

$ find . -name «*.txt» -print

Для нахождения в текущем каталоге всех файлов, в именах которых встречается хотя бы один символ в верхнем регистре, введите следующую команду:

$ find . -name «[A-Z]*» -print

Найти в каталоге /etc файлы, имена которых начинаются с символов «host«, позволяет команда

$ find /etc -name «hoat*» -print

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

$ find ~ -name «*.txt» -print -о -name «.*» -print

Опция -о является обозначением операции логического ИЛИ. В случае ее применения помимо файлов с обычными именами будут найдены файлы, имена которых начинаются с точки.

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

$ find / -name «*» -print

Ниже показано, как найти все файлы, в именах которых сначала следуют символы нижнего регистра, а за ними — две цифры и расширение .txt (например, ах37.xt):

$ find . -name » [а-х] [а-х] [0—9] [0—9] . txt» -print

2.1.2. Опция -perm

Опция -perm позволяет находить файлы с заданным режимом доступа. Например, для поиска файлов с режимом доступа 755 (их может просматривать и выполнять любой пользователь, но только владелец имеет право осуществлять запись) следует воспользоваться такой командой:

$ find . -perm 755 -print

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

$ find . -perm -007 -print

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

2.1.3. Опция -prune

Когда вы не хотите вести поиск в том или ином каталоге, воспользуйтесь опцией -prune. Она служит указанием остановить поиск на текущем путевом имени. Если путевое имя указывает на каталог, команда find не будет заходить в него. При наличии опции -depth опция -prune игнорируется.

Следующая команда проводит поиск в текущем каталоге, не заходя в подкаталог /bin:

$ find . -name «bin» -prune -о -print

2.1.4. Опции -user и —nouser

Чтобы найти файлы, принадлежащие определенному пользователю, укажите в команде find опцию -user, а также имя пользователя. Например, поиск в начальном каталоге файлов, принадлежащих пользователю dave, осуществляется посредством такой команды:

$ find ~ -user dave -print

Поиск в каталоге /etc файлов, принадлежащих пользователю uucp, выполняет следующая команда:

$ find /etc -uaer uucp -print

Благодаря опции -nouser возможен поиск файлов, принадлежащих несуществующим пользователям. При ее использовании производится поиск файлов, для владельцев которых нет записи в файле /etc/passwd. Конкретное имя пользователя указывать не нужно: команда find выполняет всю необходимую работу сама. Чтобы найти все файлы, которые принадлежат несуществующим пользователям и находятся в каталоге /home, задайте вот такую команду:

$ find /home -nouaer -print

2.1.5. Опции -group и -nogroup

Опции -group и -nogroup аналогичны опциям -user-nouser/apps всех файлов, которыми владеют пользователи группы accts:

$ find /арра -group accta -print

Следующая команда ищет во всей системе файлы, принадлежащие несуществующим группам:

$ find / -nogroup -print

2.1.6. Опция -mtime

Опцию -mtime следует применять при поиске файлов, доступ к которым осуществлялся х дней назад. Если аргумент опции снабдить знаком ‘-‘, будут отобраны файлы, к которым не было доступа в течение х дней. Аргумент со знаком ‘+’ приводит к противоположному результату — производится отбор файлов, доступ к которым осуществлялся на протяжении последних х дней.

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

$ find / -mtime -5 -print

Ниже приведена команда, выполняющая поиск в каталоге /var/adm файлов, которые обновлялись в течение последних трех дней:

$ find /var/adm -mtime +3 -print

2.1.7. Опция -newer

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

-newer старый_файл ! -newer новый_файл

Знак ‘!‘ является оператором логического отрицания. Он означает: найти файлы, которые новее, чем старый_файл, но старее, чем новый_файл.

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

-rwxr-xr-x 1 root    root    92 Apr 18 11:18 age.awk

-rwxrwxr-x 1 root    root    1054 Apr 20 19:37 belts.awk

Для нахождения всех файлов, которые обновлялись позже, чем age.awk, но раньше, чем belts.awk, выполните следующую команду (применение опции -exec описано чуть ниже):

$ find . -newer age.awk ! -newer belts.awk -exec Is -1 {} ;

-rwxrwxr-x 1 root    root    62 Apr 18 11:32 ./who.awk

-rwxrwxr-x 1 root    root    49 Apr 18 12:05 ./group.awk

-rw-r—r— 1 root    root    201 Apr 20 19:30 ./grade2.txt

-rwxrwxr-x 1 root    root    1054 Apr 20 19:37 ./belts.awk

Но как быть, если необходимо найти файлы, созданные, скажем, в течение последних двух часов, а у вас нет файла, сформированного ровно два часа назад, с которым можно было бы сравнивать? Создайте такой файл! Для этой цели предназначена команда touch -t, которая создает файл с заданной временной меткой в формате ММДЦччмм (месяц-день-часы-минуты). Например:

$ touch -t 05042140 dstamp

$ ls -1 dstamp

-rw-r—r— 1 dave    admin    0 May 4 21:40 dstamp

В результате будет получен файл, дата создания которого — 4 мая, время создания —21:40 (предполагается, что текущее время — 23:40). Теперь можно применить команду find с опцией -newer для нахождения всех файлов, которые обновлялись в течение последних двух часов:

$ find . -newer datamp -print

2.1.8. Опция -type

Операционные системы UNIX и Linux поддерживают различные типы файлов. Поиск файлов нужного типа осуществляется посредством команды, find с опцией -type. Например, для нахождения всех подкаталогов в каталоге /etc воспользуйтесь такой командой:

$ find /etc -type d -print

Чтобы получить список всех файлов, но не каталогов, выполните следующую команду:

$ find . ! -type d -print

Ниже приведена команда, которая предназначена для поиска всех символических ссылок в каталоге /etc.

$ find /etc -type 1 -print

2.1.9. Опция -size

В процессе поиска размер файла указывается с помощью опции -size N, где N — размер файла в блоках по 512 байтов. Возможные аргументы имеют следующие значения: +N — поиск файлов, размер которых больше заданного, -N — меньше заданного, N — равен заданному. Если в аргументе дополнительно указан символ с, то размер считается заданным в байтах, а не в блоках, а если символ k — в килобайтах. Для поиска файлов, размер которых превышает 1 Мб, предназначена команда

$ find . -aize -flOOOk -print

Следующая команда выполняет поиск в каталоге /home/apache файлов, размер которых в точности равен 100 байтам:

$ find /home/apache -sixe 100с -print

Произвести поиск файлов, размер которых превышает 10 блоков (5120 байтов), позволяет приведенная ниже команда:

$ find . -size +10 -print

2.1.10. Опция Опция -depth

Опция -depth позволяет организовать поиск таким образом, что сначала проверяются все файлы текущего каталога (и рекурсивно все его подкаталоги) и только в конце — запись самого каталога. Эта опция широко применяется при создании списка файлов, помещаемых в архив на магнитной ленте с помощью команды cpio или tar, так как в этом случае сначала записывается на ленту образ каталога и лишь после этого задаются права доступа к нему. Это позволяет пользователю архивировать те каталоги, для которых у него нет разрешения на запись.

Следующая команда выводит список всех файлов и подкаталогов текущего каталога:

$ find . -name «*» -print -о -name «.*» -print -depth

Вот как могут выглядеть результаты ее работы:

./.Xdefaults ./.bash_logout ./.bash_profile ./.bashrc ./.bash_nistory ./file ./Dir/filel ./Dir/file2 ./Dir/file3 ./Dir/Subdir/file4 ./Dir/Subdir ./Dir

2.1.11. Опция -mount

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

$ find / -name «*.ХС» -mount -print

Критерии поиска

У команды find может быть несколько критериев поиска (их также называют tests). Каждый критерий представляет собой определенное условие проверки, которое возвращает либо true либо false. Это можно сравнить с условиями оператора if в программировании. В процессе обработки очередного файла команда find по очереди проверяет каждый критерий, и если очередной критерий возвращает false, тогда команда find переходит к следующему файлу. Критериев у команды find довольно много, мы рассмотрим только некоторые из них.










-atime NПоследний раз к файлу обращались N дней назад.
-mtime NПоследнее изменение файла было N дней назад.
-name шаблонИмя файла (шаблон имени) без указания пути. Рекомендуется всегда заключать шаблон в кавычки.
-newer другой_файлФайл был изменен позже, чем другой_файл.
-size [±]N[cwbkMG]Размер файла равен N блокам, если указано +N, тогда размер файла больше N, -N — меньше. Символ после N означает размер блока. b — 512 байт, с — байт, w — 2 байта, k — килобайт, M — мегабайт, G — гигабайт.
-type CФайл типа C. Наиболее часто используемые значения для С: d — каталог, f — файл.
-user Имя_пользователяФайл принадлежит пользователю с именем Имя_пользователя.

Примеры использования команды find с использованием критериев

Найти в текущем каталоге обычные файлы (не каталоги), имя которых начинается с символа «~».

find . -type f -name “~*” -print

Найти в текущем каталоге файлы, измененные позже, чем файл file.bak.

find . -newer file.bak -type f -print

Операторы

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

Короткая форма оператораДлинная формаОписание






! критерий-notОтрицание (возвращает true, если критерийfalse)
критерий1-a критерий2-andОператор И (true, если критерий1 и критерий2true)
критерий1-o критерий2-orОператор ИЛИ (true, если критерий1 или критерий2true)

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

Примеры использования команды find с использованием операторов

Найти в текущем каталоге файлы, начинающиеся с символа «~» или c «temp» и являющиеся именно обычными файлами (-type f), а не каталогами.

find . ( -name “~*” -or -name “temp*” ) -type f -print

Найти в текущем каталоге (не обрабатывая подкаталоги — -maxdeph 1) обычные файлы (-file f) размером больше 600 мегабайт и менее 1 гигабайта (-size) или файлы имя которых заканчивающиется на «.mpeg» (-name).

find . -maxdepth 1 ( ( -size +600M -and -size -1G ) -or -name “*.mpeg” ) -and -type f

Действия над файлами

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









-exec команда ;Выполнить команду. Обратите внимание, что после команды ставится обратный слеш и точка с запятой.
-execdir команда ;То же самое что и exec, но команда вызывается из подкаталога, содержащего текущий файл.
-ok команда ;То же самое, что и exec, но перед обработкой очередного файла будет выводится запрос на выполнение команды.
-okdir команда ;То же что ok для execdir.
-printВывод имени файла на экран.
-lsВыполнение команды ls -dils над текущим файлом.

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

Примеры использования команды find с использованием действий

Найти в текущем каталоге обычные файлы размером больше 1000 байт и выполнить над ними команду ls -dils (действие ls).

find . -size +1000c -type f -ls

Найти в текущем каталоге обычные файлы, начинающиеся с символа тильда «~», и для каждого файла выдавать запрос на его удаление (на выполнение команды rm).

find . -name “~*” -type f -ok rm {} ;

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

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

Поиск всех файлов с расширением .old и их удаление: find / -name “*.old” -exec /bin/rm {} ; Поиск всех файлов, размер которых превышает 100 МБ и их удаление: find / -size +100M -exec /bin/rm {} ; Бывают и такие случаи, что программы “сходят с ума” и заполняют директории тысячами мелких файлов, при этом вы не сможете просто использовать команду rm * по той причине, что командная оболочка не в состоянии заменить символ * на имена всех этих файлов, зато в состоянии удалить эти файлы по очереди: find . -exec /bin/rm {} ; Помните, что вы не должны использовать эти примеры, поскольку для удаления файлов у GNU find есть параметр -delete, более безопасный, нежели “-exec /bin/rm {};”. Пример использования: find / -name “*.old” -delete

В старых системах Unix у вас не будет возможности использовать параметр -delete, поэтому альтернатив параметру -exec для удаления файлов в них не остается.

А теперь рассмотрим некоторые другие примеры использования программы find с параметром exec.

Рекурсивное изменение прав доступа для файлов, не затрагивающее директории.find ./ -type f -exec chmod 644 {} ;

При помощи параметра -type f вы можете вести поиск только файлов и просто изменять права доступа к каждому из них при помощи chmod.

Рекурсивное изменение владельца файлов с olduser на newuserfind / -user olduser -type f -exec chown newuser {} ;

В этом примере я использовал параметр -user как альтернативу параметру -uid.

Рекурсивное изменение прав доступа для всех директорийfind . -type d -exec chmod 755 {} ;

В этом примере я снова использовал параметр -type, но на этот раз с аргументом d для поиска директорий.

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

Для начала рассмотрим простой пример использования команды find для поиска на компьютере файлов с именем config. Мы будем искать файлы config, начиная с корневого каталога /. Для этого вам нужно выполнять команду от имени пользователя root, чтобы иметь достаточно прав доступа, иначе получите сообщения «Permission denied». Итак, выполним команду:

find / -name config -print

Команда означает следующее: искать файлы с именем config (-name config), начиная с каталога / (первый параметр команды find) и выводить имена файлов на экран (аргумент -print). Отмечу, что поиск рекурсивный, то есть при поиске просматриваются все вложенные директории. Как видите все просто. Теперь рассмотрим синтаксис команды и перейдем к обзору ее основных аргументов.

1)Выведите списки всех файлов текущей директории и ее подкаталогов

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

$ find

В качестве альтернативы, мы можем также использовать ‘find . ’, которая выдаст вам тот же результат.

2)Найдите все файлы и директории в вашей текущей рабочей директории

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

$ find . -type d

Чтобы найти только файлы, а не директории:

$ find . -type f

3)Выведите список всех файлов определенной директории

Для того чтобы найти файлы из определенной директории надо ввести:

$ find /root

This command will look for all the files in /root directory.

4)Найдите файл по имени в директории

Для поиска файла по имени в определенной директории введите:

$ find /root -name “linuxtechi.txt”

Эта команда будет искать файл linuxtechi.txt в директории /root. Так же мы найти все файлы с расширением .txt:

$ find /root -name “*.txt”

5)Найдите файл во множестве директорий

Для поиска файлов во множестве директорий введите:

$ find /root /etc -name “linuxtechi.txt”

With this command, we can look for linuxtechi.txt file in /root & /etc directories.

С помощью этой команды мы можем найти файл linuxtechi.txt в директориях /root и /etc.

6)Найдите файл по имени без учета регистра

Ищите файлы без учета регистра с помощью -iname:

$ find /root -iname “Linuxtechi.txt”

В результате вы получите все файлы с названием linuxtechi.txt. При этом файлов может быть несколько, так как linuxtechi.txt будет равняться LINUXTECHI.txt .

7)Найдите все типы файлов отличные от упомянутого

Давайте предположим, что нам необходимо найти все файлы отличные от определенного типа файлов. Чтобы этого добиться вводим:

$ find /root -not -name “*.txt”

8)Найдите файлы по множеству признаков

Мы можем совмещать более чем одно условие при поиске файлов. Предположим, что нам нужны файлы с расширениями .txt и .html:

$ find . -regex “.*.(txt|html)$”

9)Найдите файлы с использованием условия OR

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

$ find -name “*.txt” -o -name “linuxtechi*”

Заключение

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


[spoiler title=”Источники”]

  • https://losst.ru/komanda-find-v-linux
  • http://Cmd4Win.ru/administrirovanie-computera/upravlenie-failami/33-find
  • https://pingvinus.ru/note/command-find
  • https://rtfm.co.ua/komanda-find-i-eyo-opcii-v-primerax/
  • http://rus-linux.net/MyLDP/consol/exec-option-in-command-find.html
  • https://omgubuntu.ru/25-primierov-ispolzovaniia-komandy-find-dlia-nachinaiushchikh-znakomstvo-s-linux/


[/spoiler]


2020-12-22T10:34:30
Linux

Команда grep в Linux – полное руководство



























3/5 — (4 голоса)

Что такое grep? Команда grep (расшифровывается как global regular expression print) – одна из самых востребованных команд в терминале Linux, которая входит в состав проекта GNU. Секрет популярности – её мощь.

Команда grep в Linux и ее опции

Перед изучением команды grep, посмотрим на основной синтаксис ее.

Синтаксис для команды grep

  • -i: Используется для игнорирования соответствующего регистра.
  • -c: выводит количество совпадающих строк.
  • -l: отображает список имен файлов.
  • -n: количество совпавших строк и номера их строк.
  • -v: количество линий, которые не соответствуют шаблону.
  • -w: соответствовать всему слову

Обзор

grep выполняет поиск соответствий регулярному выражению (ШАБЛОН) по тексту в файле, нескольких файлах или потоке ввода (если имя не указано или вместо него указан один минус («-»). Найденные совпадения выводятся на терминал.

Используем команду grep в Linux

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

1. Простой поиск в файле

Давайте рассмотрим пример в файле “/etc/passwd” для поиска строки в файле. Чтобы найти слово “system” при помощи команды grep, используйте команду:


[root@destroyer ~]# cat /etc/passwd|grep system

Пример вывода:

systemd-bus-proxy:x:899:897:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:898:896:systemd Network Management:/:/sbin/nologin

2. Подсчет появления слов.

В приведенном выше примере мы имеем в системе поиск слов в файл

е “/etc/passwd”. Если мы хотим знать количество или число появлений слова в файле, то используйте опцию ниже:


[root@destroyer ~]# cat /etc/passwd|grep -c system 2 [root@destroyer ~]#

Выше указанно, что слово появилось два раза в файле “/etc/passwd”.

3. Игнорировать регистрозависимые слова

Команда grep чувствительна к регистру, это означает, что он будет искать только данное слово в файле. Чтобы проверить эту функцию, создайте один файл с именем «test.txt» и с содержанием, как показано ниже:


[root@destroyer tmp]# cat test.txt AndreyEx andreyex ANDREYEX Andreyex [root@destroyer tmp]#

Теперь, если вы попытаетесь найти строку «andreyex», то команда не будет перечислять все слова «andreyex» с разными вариантами, как показано ниже:


[root@destroyer tmp]# grep andreyex test.txt andreyex [root@destroyer tmp]#

Этот результат подтверждает, что только один вариант будет показан, игнорируя остальную часть слова «andreyex» с разными вариантами. И если вы хотите игнорировать этот случай, вам нужно использовать параметр «-i» с grep, как показано ниже:


[root@destroyer tmp]# grep -i andreyex test.txt AndreyEx andreyex ANDREYEX Andreyex

4. Две разные строки внутри файла с командой grep

Теперь, если вы хотите найти два слова или строки с помощью команды grep, то вы должны задать расширенные. В следующей команде мы находим две строки «system» и «nobody» в файле /etc/passwd.


[root@destroyer ~]# grep ‘system|nobody’ /etc/passwd nobody:x:89:89:Nobody:/:/sbin/nologin systemd-bus-proxy:x:899:897:systemd Bus Proxy:/:/sbin/nologin systemd-network:x:898:896:systemd Network Management:/:/sbin/nologin [root@destroyer ~]#

5. Рекурсивный поиск

Для поиска заданной строки во всех файлах внутри каталога -rиспользуется опция -recursive.

В приведенном ниже примере строка «Linuxvsem» будет найдена во всех файлах внутри каталога linux:

grep -r Linuxvsem / Documents/ linux

Рекурсивный поиск Grep linux

Используя опцию, -R вы также можете искать файлы символьных ссылок внутри каталогов:

grep -R Linuxvsem / Документы / linux

Для поиска строки во всех каталогах вы можете запустить следующую команду:

grep -r » Linuxvsem » *

6. Вывод команды grep.

Если вы хотите найти строку или слово в любом выводе команды, то вы должны использовать оператор «|», а затем <строка> в grep. Допустим, вы хотите найти в памяти, связанные слова вывода команды dmesg, то используйте следующую команду.


[root@destroyer ~]# dmesg |grep memory [ 0.000000] Base memory trampoline at [ffff880000098000] 98000 size 19456 [ 0.000000] init_memory_mapping: [mem 0x00000000-0x000fffff] [ 0.000000] init_memory_mapping: [mem 0x3fe00000-0x4fffffff] [ 0.000000] init_memory_mapping: [mem 0x3c000000-0x4fdfffff] [ 0.000000] init_memory_mapping: [mem 0x00100000-0x4bffffff] [ 0.000000] kexec: crashkernel=auto resulted in zero bytes of reserved memory. [ 0.000000] Early memory node ranges [ 0.000000] PM: Registered nosave memory: [mem 0x0003e000-0x0003ffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000a0000-0x000dffff] [ 0.000000] PM: Registered nosave memory: [mem 0x000e0000-0x000fffff] [ 0.000000] please try ‘cgroup_disable=memory’ option if you don’t want memory cgroups [ 0.030181] Initializing cgroup subsys memory [ 0.862358] Freeing initrd memory: 23532k freed [ 1.064599] Non-volatile memory driver v1.3 [ 1.069351] crash memory driver: version 1.1 [ 1.186673] Freeing unused kernel memory: 1430k freed [ 5.567780] [TTM] Zone kernel: Available graphics memory: 480345 kiB [root@destroyer ~]#

7. Инвертирование совпадений в команде Grep

Параметр Invert match ( -v) используется для инвертирования вывода grep. Команда отобразит строки, которые не соответствуют заданному шаблону.

Чтобы отобразить строки, которые не совпадают со строкой Linuxvsem в файле names.txt, выполните следующую команду.

grep -v Linuxvsem name.txtИнвертирование совпадений в команде Grep

8. Точное совпадение слова

В соответствии с примером, приведенным в пункте 7, если мы ищем Andreyex, то он будет печатать все вхождение Andreyex как «Andreyex12», «Andreyex454», «Andreyex34343», а также «Andreyex», как показано ниже:


[root@destroyer tmp]# grep Andreyex test.txt Andreyex12 Andreyex454 Andreyex34343 Andreyex [root@destroyer tmp]#

тогда, если мы хотим найти точное слово «Andreyex» вместо этого, чтобы перечислить весь вывод выше, то используйте опцию «-w», как показано ниже:


[root@destroyer tmp]# grep -w Andreyex test.txt Andreyex [root@destroyer tmp]#

Количество совпадающих линий

Вы можете отобразить количество совпадающих строк, используя команду grep с -. В итоге, выполнив следующую команду, вы найдете количество строк Linuxvsem в names.txt файле:

grep -c Linuxvsem name.txtКоличество совпадающих линий Grep linux

Выделение цветом

При использовании опции –color найденные совпадения будут выделены цветом:

$ grep –-color “bla bla” listing.txt You will find that all of bla bla are impeccably designed and meet the highest manufacturing standards available $

Просмотр номеров строк, содержащих совпадения

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

$ grep –-color -n “bla bla” listing.txt 18:You will find that all of bla bla are impeccably designed and meet the highest manufacturing standards available

Перед содержащей соответствие строкой выведено «18:», что соответствует 18-й строке.

Строка поиска в стандартном выводе

Если необходимо найти строку в выводе команды — это можно сделать, комбинируя команду grep с другой командой.

Например, чтобы найти строку inet6 в выводе команды, ifconfig выполните следующую команду:

ifconfig | grep inet6Строка поиска в стандартном выводе Grep linux

Выполнение поиска без учета регистра

Допустим, фраза «string search» расположена в начале предложения или набрана в верхнем регистре. Для поиска без учета регистра можно указать опцию –i:

$ grep –-color –n -i “string search” listing.txt 18:

You will find that all of string search are impeccably designed and meet the highest manufacturing standards available anywhere.

23:

String search are manufactured using only the finest top-grain leather.

$

С опцией -i grep находит также совпадение в строке 23.

Полезные примеры Grep

Давайте разберём несколько практических примеров команды grep.

Использование egrep в Linux

Egrep или grep -E — это другая версия grep или Extended grep. Эта версия grep превосходна и быстра, когда дело доходит до поиска шаблона регулярных выражений, поскольку она обрабатывает метасимволы как есть и не заменяет их как строки. Egrep использует ERE или Extended Extended Expression.

egrep — это урезанный вызов grep c ключом -E Отличие от grep заключается в возможности использовать расширенные непрерывные выражения с использованием символьных классов POSIX. Часто возникает задача поиска словечек или представлений, принадлежащих к одному типу, но с возможными вариациями в написании, такие как даты, фамилии файлов с некоторым расширением и стандартным названием, e-mail адреса. С другой стороны, имеется задачи по пребыванию вполне определенных слов, которые могут иметь различное начертание, либо розыск, исключающий отдельные символы или классы символов.

Для этих целей истины созданы некоторые системы, основанные на описании текста при помощи шаблонов. К таким системам причисляются и постоянные выражения. Два очень полезные спецсимвола — это ^ и $, которые обозначают начало и конец строки. Например, мы хотим получить всех пользователей, зарегистрированных в нашей системе, имя которых начинается на s. Тогда можно применить регулярное выражение «^s». Вы можете использовать бригаду egrep:

egrep “^s” /etc/passwd

Есть возможность поиска по нескольким файлам и в подобном случае перед строкой выводится имя файла.

egrep -i Hello ./example.cpp ./example2.cpp

А следующий запрос выводит весь код, исключая строки, содержащие только комментарии:

egrep -v ^/[/*] ./example.cpp

В виде egrep, даже если вы не избегаете метасимволы, команда будет относиться к ним как к специальным символам и заменять их своим особым значением вместо того, чтобы рассматривать их как часть строки

Использование fgrep в Linux

Fgrep или Fixed grep или grep -F — это еще одна версия grep, какой-никакая необходима, когда дело доходит до поиска всей строки вместо регулярного понятия, поскольку оно не распознает ни регулярные выражения, ни метасимволы. Для поиска любой строки напрямую выбирайте эту версия grep.

Fgrep ищет полную строку и не распознает специальные символы как часть непрерывного выражения, несмотря на то экранированы символы или нет.

fgrep -C 0 ‘(f|g)ile’ check_filefgrep -C 0 ‘(f|g)ile’ check_file

Использование sed в Linux

sed (от англ. Stream EDitor) — потоковый текстовый редактор (а также язычок программирования), использующий различные предопределённые текстовые преобразования к последовательному потоку текстовых этих. Sed можно утилизировать как grep, выводя строки по шаблону базового регулярного выражения:

sed -n /Hello/p ./example.cpp

Может быть использовать его для удаления строк (удаление всех пустых строк):

sed /^$/d ./example.cpp

Основным инструментом работы с sed является выражение типа:

sed s/искомое_выражение/чем_заменить/имя_файла

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

sed s/int/long/ ./example.cpp

Выше рассмотрены различия меж «grep», «egrep» и «fgrep». Невзирая на различия в наборе используемых регулярных представлений и скорости выполнения, параметры командной строчки остаются одинаковыми для всех трех версий grep.

Переключатель ПКУЗ

Применение

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

Классификации

Классифицируются переключатели по:

  • способу установки и крепления;
  • способу фиксации;
  • электрическим схемам.

Типы:

  • ПКУ3-11
  • ПКУ3-12
  • ПКУ3-16
  • ПКУ3-54
  • ПКУ3-38
  • ПКУ3-58
  • ПКУ3-64М
  • ПКУ3-154
  • ПКУ3-211
  • ПКУ3-113102
  • ПКУ3-116045

Условия эксплуатации

  • Рабочая температура окружающей среды от -40 до +40°С;
  • Предельная температура окружающей среды от -50 до +45°С;
  • Высота над уровнем моря не более 2000 м.

Добавить ОтзывYou must have JavaScript enabled to use this form.Ваше имяКомментарий <текстареа class=”js-text-full text-ful

Технические характеристики









Номинальное напряжение переменного тока частоты 50, 60 и 400 Гц, В380
Номинальный ток, А16
Коммутационная износостойкостьот 50 до 1500 в зависимости от модели
Коммутационная способностьот 50 до 300 в зависимости от модели
Срок службы, лет10
Гарантийный срок, лет3


[spoiler title=”Источники”]

  • https://andreyex.ru/operacionnaya-sistema-linux/polnoe-rukovodstvo-komanda-grep-v-linux/
  • https://linuxvsem.ru/commands/grep-linux
  • https://ITProffi.ru/utilita-grep-v-os-linux/
  • https://lumpics.ru/linux-grep-command-examples/
  • https://www.hostinger.ru/rukovodstva/komanda-grep-v-linux/
  • https://www.linux16.ru/articles/regulyarnye-vyrazheniya-grep-egrep-sed-v-linux.html
  • https://ross.com.ru/pereklyuchatel-pku3


[/spoiler]


2020-12-22T10:34:30
Linux

Команда LS в Linux. Описание и примеры



























5/5 — (2 голоса)

Команда ls – Одна из основных команд в терминальном режиме для просмотра содержимого каталога. Команда ls — вероятно наиболее используемая команда в любой UNIX-системе. Её предназначение — вывод информации о файлах и каталогах. Дополнительные опции команды позволяют получить более подробную информацию и сортировать её определённым образом.

Команда ls linux

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

$ ls опции/путь/к/папке

Опции команды указывают как именно и в каком виде нужно выводить информацию на экран, а путь, это та папка, которую нужно отобразить. Рассмотрим основные опции утилиты:

  • -a – отображать все файлы, включая скрытые, это те, перед именем которых стоит точка;
  • -A – не отображать ссылку на текущую папку и корневую папку . и ..;
  • –author – выводить создателя файла в режиме подробного списка;
  • -b – выводить Escape последовательности вместо непечатаемых символов;
  • –block-size – выводить размер каталога или файла в определенной единице измерения, например, мегабайтах, гигабайтах или килобайтах;
  • -B – не выводить резервные копии, их имена начинаются с ~;
  • -c – сортировать файлы по времени модификации или создания, сначала будут выведены новые файлы;
  • -C – выводить колонками;
  • –color – включить цветной режим вывода, автоматически активирована во многих дистрибутивах;
  • -d – выводить только директории, без их содержимого, полезно при рекурсивном выводе;
  • -D – использовать режим вывода, совместимый с Emacs;
  • -f – не сортировать;
  • -F – показывать тип объекта, к каждому объекту будет добавлен один из специализированных символов */=>@|;
  • –full-time – показывать подробную информацию, плюс вся информация о времени в формате ISO;
  • -g – показывать подробную информацию, но кроме владельца файла;
  • –group-directories-first – сначала отображать директории, а уже потом файлы;
  • -G – не выводить имена групп;
  • -h – выводить размеры папок в удобном для чтения формате;
  • -H – открывать символические ссылки при рекурсивном использовании;
  • –hide – не отображать файлы, которые начинаются с указанного символа;
  • -i – отображать номер индекса inode, в которой хранится этот файл;
  • -l – выводить подробный список, в котором будет отображаться владелец, группа, дата создания, размер и другие параметры;
  • -L – для символических ссылок отображать информацию о файле, на который они ссылаются;
  • -m – разделять элементы списка запятой;
  • -n – выводить UID и GID вместо имени и группы пользователя;
  • -N – выводить имена как есть, не обрабатывать контролирующие последовательности;
  • -Q – брать имена папок и файлов в кавычки;
  • -r – обратный порядок сортировки;
  • -R – рекурсивно отображать содержимое поддиректорий;
  • -s – выводить размер файла в блоках;
  • -S – сортировать по размеру, сначала большие;
  • -t – сортировать по времени последней модификации;
  • -u – сортировать по времени последнего доступа;
  • -U – не сортировать;
  • -X – сортировать по алфавиту;
  • -Z – отображать информацию о расширениях SELinux;
  • -1 – отображать один файл на одну строку.

Это были все основные параметры команды ls, которые нам может когда-либо понадобиться использовать. Их очень много, но на деле будут нужны только некоторые из них, вы их быстро запомните, а все остальные сможете всегда найти в этой статье или на странице справки man ls. А теперь давайте рассмотрим несколько примеров использования команды ls linux.

Синтаксис команды ls

Основные параметры:

  • -a. Показывает все файлы, в том числе скрытые с точкой.
  • -A. Опция показывает скрытые файлы и скрывает ссылку на текущий каталог.
  • -l. Отображает подробный список, в котором показываются права доступа.
  • -o. Подробный список, только без группы.
  • -d. Отображает только каталоги, без содержимого, не переходить по символьным ссылкам.
  • -D.  Режим “Emacs dired”. Здесь стоит отметить что же такое режим Emacs? Это текстовый программируемый текстовый редактор.
  • -f. Аргумент отключит сортировку и покажет скрытые документы.
  • -r. Сортировка в обратном порядке.
  • -X. Сортировка по алфавиту.
  • -S. Сортировка по размеру документов. Сначала идут файлы и каталоги большего размера, потом маленькие.
  • -t. Сортировка по времени изменения. Сначала идут более новые.
  • -h. Переводит информацию о размерах директорий и файлов в удобной вид для человека. В конце цифр добавляется буква “K” – килобайты, “M” – мегабайты. Данная опция обычно используется с “-l”, так как необходимо вывести информация о размерах, а потом перевести размеры в удобный формат.
  • –hide. Скрыть документы, которые полностью совпадают с указанными символами. Например нужно скрыть “kurica”, указываем –hide kurica.
  • -I ‘шаблон’. Скрыть файлы согласно шаблону. Например нужно скрыть все документы, которые начинаются на букву f. Тогда пишем ls -I’f*’.
  • -1. Список документов в один столбец.
  • –V. Показывает версию программы.
  • –help. Справка.

Путь к каталогу может принимать один из трех значений:

  1. полный путь директории (/etc/network/);
  2. относительный путь (network);
  3. пустой значение. Означает, что команда будет выполняться в текущей директории. По умолчанию это домашний каталог.

Как правильно интерпретировать вывод команды ls?

Первое, что может ввести в заблуждение при изучении вывода команды ls -l, так это первая секция данных. Состоящая из набора десяти символов и показывающая режимы доступа к файлу. Для вышеприведённого примера первый символ «-» указывает, что это файл. А в случае с каталогом вместо него выводится символ «d». Следующие девять символов представляют собой три группы, отражающих режимы доступа к файлу. Первая группа (первые три символа «rwx») показывают, какие права доступа выставлены на данный файл для его владельца. Следующая группа символов — «r-x» — показывает режим доступа для группы, к которой принадлежит файл. Ну а третья («r-x») — права доступа для всех остальных пользователей.

В полях, отображающих владельца и группу вместо символьных имён могут быть также и цифровые идентификаторы. Такое бывает, когда соответствующие записи были удалены из файлов /etc/passwd или /etc/group. Также это может быть признаком возникновения ошибки в базах данных LDAP или NIS. Конечно, если таковые используются.

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

Особенности использования команды ls

Когда команда ls обрабатывает не «обычные» файлы, а специальные файлы устройств (хотя это тоже самые обычные файлы). То для них она выводит несколько иную информацию:

$ ls -l /dev/tty0 cr–w—- 1 root tty 4,0 фев 28 14:27 /dev/tty0

Вместо размера файла выводится старший и младший номера (4, 0) устройства tty0 – это первая виртуальная консоль, управляемая драйвером устройства 4, который является драйвером терминала.

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

$ ls -li ‘Рабочий стол’ 3276880 ‘Рабочий стол’

Номер индексного дескриптора — это индекс той самой таблицы, в которой содержатся записи всех файловых систем. В свою очередь, на дескрипторы ссылаются файловые записи каталогов. Таким образом, у жёстких ссылок, ссылающихся на один и тот же файл, будут одинаковые номера. Зная номер индексного дескриптора определённого файла, можно найти в системе все ссылающиеся на него жесткие ссылки, используя команду find:

$ find точка_монтирования -xdev -inum индексный_дескриптор

Данный пример — лишь одно из важных практических применений команды ls. Следует также отметить некоторые особенно полезные опции команды ls:

-a – отображает все файлы и каталоги. Включая скрытые (имена которых начинаются с точки), а также «всевдокаталоги» с именами «.» и «. .»;

-t – отображает результаты в отсортированном (по времени изменения файлов) порядке. А опция -tr то же, но в обратном порядке;

-F – выделяет каталоги и исполняемые файлы в общем выводе;

-h – отображает размеры файлов и каталогов в «человекопонятных» единицах, к примеру 4k или 10M;

-R – рекурсивный вывод, выполнение которого прерывается нажатием сочетания клавиш .

Иногда возникает путаница в использовании опций -l и —d. Дело в том, что опция -d предназначена для дополнения работы опции -l (которая выводит подробную информацию об атрибутах). Когда необходимо получить атрибуты именно конкретного каталога:

$ ls -ld ~/htdocs drwxrwxr-x 12 john john 4096 фев 11 12:56 /home/john/htdocs

Использование ls в Linux

Как вы уже поняли, ls – это сокращение от list, эта команда представляет из себя аналог команды dir для Linux. Самый простой способ использовать команду, запустить ее без параметров и посмотреть содержимое текущей папки:

Чтобы посмотреть список файлов в папке linux для точно заданной папки, вам нужно указать путь к ней. Например, смотрим содержимое корневой папки:

ls /

Или папки /bin:

ls /bin/

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

ls -l

Тут вывод уже разделен на отдельные колонки, в первой колонке указаны права доступа к файлу в формате владелец группа остальные. Следующая колонка – это тип файла или папки, дальше владелец и группа, затем размер, дата создания и последний параметр – имя. Если вы еще хотите знать кто создал файл, можно использовать опцию author:

ls -l –author

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

ls -lh

Для папок размер выводится не сумой всех размеров всех файлов, а всего лишь то место, которое занимает сама папка, поэтому давайте посмотрим пример с файлами:

ls -l Фото

ls -lh Фото

Если вы хотите видеть скрытые файлы, а в домашней папке их просто море, то используйте опцию -a:

ls -a

Или смотрим скрытые файлы без ссылок на текущую и родительскую папку:

ls -A

Теперь нас будет интересовать сортировка. Сначала отсортируем файлы по размеру:

ls -lSh Фото

Обратите внимание, что файлы расположены от большего к меньшему. Теперь мы можем включить обратный порядок:

ls -lShr

С помощью опции -r мы вывели файлы в обратном порядке. Теперь отсортируем по алфавиту:

ls -lX

Или сортируем по времени последней модификации:

ls -lt

Обратите внимание на колонку времени, действительно, самые новые файлы будут вверху списка. Если вы хотите посмотреть какие метки SELinux присвоены файлу, необходимо использовать опцию -Z:

ls -lZ

Но это возможно только в системах, где установлена надстройка SELinux. Если вы хотите рекурсивно вывести содержимое всех папок, используйте опцию -R:

ls -lR /usr/

Если же вам нужно список папок и файлов в директории через запятую, что можно использовать -m:

ls -m

Знакомство с ls

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

$ cd /usr

$ ls

X11R6 doc i686-pc-linux-gnu lib man sbin ssl bin gentoo-x86 include libexec portage share tmp distfiles i686-linux info local portage.old src

Указав опцию -a, вы можете увидеть полный список, включая скрытые файлы и директории, начинающиеся с “.”. Как видно в следующем примере, ls -a выводит также особые связывающие директории “.” и “..”:

$ ls -a

. bin gentoo-x86 include libexec portage share tmp .. distfiles i686-linux info local portage.old src X11R6 doc i686-pc-linux-gnu lib man sbin ssl

1. ls без параметров

ls без опций отображает список файлов и каталогов в чистом формате, где мы не сможем просматривать такие детали, как типы файлов, размер, дата и время изменения, разрешения и ссылки и т. д.

# ls 001.pcap Desktop Downloads index.html install.log.syslog Pictures Template anaconda-ks.cfg Documents fbcmd_update.php install.log Music Public Videos

2. ls с параметром -l

Здесь, ls -l (l — символ, а не единица) показывает файл или каталог вместе с его размером, а также дату и время изменения, права и владельца.

# ls -l total 176 -rw-r–r–. 1 root root 683 Aug 19 09:59 0001.pcap -rw——-. 1 root root 1586 Jul 31 02:17 anaconda-ks.cfg drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Desktop drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Documents drwxr-xr-x. 4 root root 4096 Aug 16 02:55 Downloads -rw-r–r–. 1 root root 21262 Aug 12 12:42 fbcmd_update.php -rw-r–r–. 1 root root 46701 Jul 31 09:58 index.html -rw-r–r–. 1 root root 48867 Jul 31 02:17 install.log -rw-r–r–. 1 root root 11439 Jul 31 02:13 install.log.syslog drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Music drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Pictures drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Public drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Templates drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Videos

Подробный список файлов ls

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

ls -l

Команда ls. Список файлов

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

ls -l /var/log

Команда ls - Список файлов в директории

Показать скрытые файлы ls -a

По умолчанию команда ls не показывает скрытые файлы. Что их показать, используется опция -a: ls -a

 

Определение расположения определенной папки ls

Сперва следует обязательно разобраться с процедурой перехода к необходимому расположению через «Терминал». Если вы будете осуществлять сканирование нескольких папок, находящихся в одной директории, проще это делать сразу из нужного места, чтобы избежать надобности ввода полного пути к объекту. Определяется место и выполняется переход так:

    1. Откройте файловый менеджер и перейдите в требуемую директорию.

Переход к необходимой директории через файловый менеджер Linux

    1. Щелкните по любому элементу в ней ПКМ и выберите «Свойства».

Свойства объекта в операционной системе Linux

    1. Во вкладке «Основные» обратите внимание на пункт «Родительская папка». Именно его и нужно запомнить для дальнейшего перехода.

Узнать родительскую папку объекта в Linux

    1. Осталось только запустить консоль удобным методом, например, зажатием горячей клавиши Ctrl + Alt + T либо нажав на соответствующий значок в меню.

Запустить терминал через значок в меню Linux

    1. Здесь введите cd /home/user/folder, чтобы перейти в интересующее расположение. User в данном случае — имя пользователя, а folder — название конечной папки.

Перейти по нужному пути через встроенную консоль в Linux

Теперь можно смело переходить к использованию рассматриваемой сегодня команды ls с применением различных аргументов и опций. Мы предлагаем ознакомиться с основными примерами более детально далее.

Понятный размер файлов

Вывести размер файлов в понятном формате (опция -h):

ls -lh

Просмотр содержимого текущей папки ls

Написав в консоли ls без каких-либо дополнительных опций, вы получите информацию о текущем расположении. Если после запуска консоли не было осуществлено никаких переходов через cd, отобразится список файлов и папок домашней директории.

Применение команды ls без аргументов в Linux

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

Ознакомиться с выводом информации командой ls без аргументов в Linux

Обозначить директории ls

У команды ls есть очень полезная опция -F, про которую не все знают. Она добавляет к именам файлов дополнительные обозначения, по которым сразу понятно что это за файл. Например, для директорий она добавляет символ /, и в списке файлов сразу видно где директории а где обычные файлы.

ls -lF

Список файлов в одну колонку

Вывести список в одну колонку:

ls -1

Вывести только файлы с определенным расширением

Выведем файлы только с расширением .txt:

ls *.txt

Выведем файлы с определенными расширениями (.html, .php и .txt):

ls *.{html,php,txt}

Файлы, начинающиеся на определенную букву

Показать только файлы, имена которых начинаются на одну из букв указанного множества (a, d, u и x):

ls [adux]*

Определение создателя папки

Синтаксис команды ls построен так же, как и у большинства других стандартных утилит, поэтому даже начинающий пользователь не найдет в этом ничего нового или незнакомого. Разберем первый пример при надобности просмотра автора папки и даты изменения. Для этого введите ls -l –author folder, где folder — название директории либо полный путь к ней. После активации вы увидите искомую информацию.

Узнать автора папки через команду ls в Linux

Список файлов с сортировкой по времени

Выведем список файлов с сортировкой по времени последнего изменения файла. Более свежие файлы располагаются сверху.

ls -lt

Сортировка по времени, но в обратном порядке:

ls -ltr

Вывод скрытых файлов

В ОС Linux присутствует достаточно большое количество скрытых элементов, особенно когда речь идет о системных файлах. Отобразить их вместе со всем остальным содержимым директории можно, применив определенную опцию. Тогда команда выглядит так: ls -a + название или путь к папке.

Отображение скрытых папок с помощью команды ls в Linux

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

Обратный порядок вывода

С помощью комбинации -ltr список будет сортироваться по дате последнего изменения от старых к новым.

# ls -ltr total 176 -rw-r–r–. 1 root root 11439 Jul 31 02:13 install.log.syslog -rw-r–r–. 1 root root 48867 Jul 31 02:17 install.log -rw——-. 1 root root 1586 Jul 31 02:17 anaconda-ks.cfg drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Desktop drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Videos drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Templates drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Public drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Pictures drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Music drwxr-xr-x. 2 root root 4096 Jul 31 02:48 Documents -rw-r–r–. 1 root root 46701 Jul 31 09:58 index.html -rw-r–r–. 1 root root 21262 Aug 12 12:42 fbcmd_update.php drwxr-xr-x. 4 root root 4096 Aug 16 02:55 Downloads -rw-r–r–. 1 root root 683 Aug 19 09:59 0001.pcap

Рекурсивный и инодный списки

Так вы можете использовать -d чтобы смотреть на директорию, но также можно использовать -R для противоположного: не только лишь глянуть внутрь директории, но и рекурсивно посмотреть все директории с файлами внутри нее! Мы не включим в руководство никакого примера вывода для этой опции (поскольку обычно он очень объемный), но возможно вы захотите попробовать несколько команд ls -R и ls -Rl, чтобы почувствовать как это работает.

Наконец, опция -i может использоваться для отображения числа инодов для объектов в списке файловой системы

$ ls -i /usr

1409 X11R6 314258 i686-linux 43090 libexec 13394 sbin 1417 bin 1513 i686-pc-linux-gnu 5120 local 13408 share 8316 distfiles 1517 include 776 man 23779 src 43 doc 1386 info 93892 portage 36737 ssl 70744 gentoo-x86 1585 lib 5132 portage.old 784 tmp

Понятие инода

Каждому объекту файловой системы назначен уникальный индекс, называемый номером инода. Это может показаться банальным, но понятие инодов очень важно для понимания большинства операций в файловой системе. Рассмотрим например ссылки “.” и “..”, которые появляются в каждой директории. Чтобы полностью понять, чем на самом деле является директория “..”, мы сперва взглянем на номер инода у /usr/local

$ ls -id /usr/local

5120 /usr/local

У директории /usr/local номер инода равен 5120. А теперь посмотрим номер инода у /usr/local/bin/..:

$ ls -id /usr/local/bin/..

5120 /usr/local/bin/..

Как видно, директория /usr/local/bin/.. имеет такой же номер, как у /usr/local! Посмотрим, как можно справиться с этим шокирующим откровением. В прошлом мы полагали, что /usr/local сама является директорией. Теперь же, мы обнаружили, что фактически директория — это инод с номером 5120, и нашли, по меньшей мере, два элемента (называемых «ссылками»), которые указывают на данный инод. И /usr/local, и /usr/local/bin/.. — ссылки на 5120-ый инод. Хотя этот инод и существует только в одном месте на диске, тем не менее на него может быть множество ссылок

На самом деле, мы даже можем увидеть общее количество ссылок ведущих на этот, 5120 инод, используя команду ls -dl:

$ ls -dl /usr/local

drwxr-xr-x 8 root root 240 Dec 22 20:57 /usr/local

Если взглянуть на вторую колонку слева, то видно, что на директорию /usr/local (инод 5120) ссылаются восемь раз. На моей системе на этот инод ведут следующие пути:

/usr/local

/usr/local/.

/usr/local/bin/..

/usr/local/games/..

/usr/local/lib/..

/usr/local/sbin/..

/usr/local/share/..

/usr/local/src/..

mkdir

Давайте быстренько пройдемся по команде mkdir, которая используется для создания новых директорий. Следующий пример создает три новых директории, tic, tac, и toe, все внутри /tmp:

$ cd /tmp

$ mkdir tic tac toe

По умолчанию, команда mkdir не создает для вас родительские директории; весь путь вплоть до последнего (создаваемого) элемента должен существовать. Так, если вы захотите создать вложенные директории won/der/ful, вам придется выполнить три отдельные команды mkdir:

$ mkdir won/der/ful

mkdir: cannot create directory `won/der/ful’: No such file or directory

$ mkdir won

$ mkdir won/der

$ mkdir won/der/ful

Однако, у mkdir есть очень удобная опция -p, которая говорит mkdir создавать любые отсутствующие родительские директории, как можете увидеть тут:

$ mkdir -p easy/as/pie

В целом очень просто. Чтобы узнать больше о команде mkdir наберите man mkdir и прочитайте инструкцию. Это же касается почти всех команд, рассмотренных здесь (например man ls), исключая cd, которая встроена в bash.

touch

Сейчас мы собираемся окинуть взглядом команды cp и mv, используемые для копирования, переименования и перемещения файлов и директорий. Но начнем обзор воспользовавшись командой touch, чтобы создать файл в /tmp:

$ cd /tmp

$ touch copyme

Команда touch обновляет «mtime» (время последней модификации — прим. пер.) файла, если тот существует (вспомните шестую колонку в выводе ls -l). Если файл не существует, то новый, пустой файл будет создан. Сейчас у вас должен быть файл /tmp/copyme с нулевым размером.

echo

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

$ echo “firstfile”

firstfile

А сейчас, та же команда echo, но с перенаправлением вывода:

$ echo “firstfile” > copyme

Знак «больше» сообщает оболочке записывать вывод echo в файл по имени copyme. Этот файл будет создан, если не существовал, или перезаписан, если существует. Набрав ls -l, увидим, что файл copyme имеет размер в 10 байт, так как содержит слово firstfile и символ новой строки:

$ ls -l copyme

-rw-r–r– 1 root root 10 Dec 28 14:13 copyme

cat и cp

Чтобы вывести содержимое файла на терминал, используйте команду cat:

$ cat copyme

firstfile

Сейчас, мы можем воспользоваться основным вызовом команды cp для создания файла copiedme из оригинального copyme:

$ cp copyme copiedme

Ниже проверим, что это действительно разные файлы; у них отличаются номера инодов:

$ ls -i copyme copiedme

648284 copiedme 650704 copyme

mv

А сейчас давайте воспользуемся командой mv для переименования copiedme в movedme. Номер иноды останется прежний; однако, имя файла, указывающее на инод, изменится.

$ mv copiedme movedme

$ ls -i movedme

648284 movedme

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

Пока мы рассказываем об mv, давайте посмотрим, как еще можно использовать эту команду. mv, помимо возможности переименовать файлы, позволяет перемещать один или более файлов в другое место в иерархии директорий. Например, чтобы переместить /var/tmp/myfile.txt в директорию /home/drobbins (которая является моей домашней), я наберу (а мог бы воспользоваться ~ — прим. пер.):

$ mv /var/tmp/myfile.txt /home/drobbins

После этого myfile.txt будет перемещен в /home/drobbins/myfile.txt. И если /home/drobbins располагается в другой файловой системе, нежели /var/tmp, команда mv скопирует myfile.txt в новую файловую систему и удалит его из старой. Как вы уже могли догадаться, когда myfile.txt перемещается между файловыми системами, то myfile.txt на новом месте получает новый номер инода. Это все потому, что у каждой файловой системы свой независимый набор номеров инодов.

Мы также можем воспользоваться mv для перемещения нескольких файлов в одну директорию. К примеру, чтобы переместить myfile1.txt и myarticle3.txt в /home/drobbins, потребуется набрать:

$ mv /var/tmp/myfile1.txt /var/tmp/myarticle3.txt /home/drobbins

Список ключей для команды ls.

Для повседневной работы, одни из самых используемых ключей для команды ls:

  • -l — вывод подробной информации о содержимом каталога в виде списка;
  • -a (—all) — вывод информации о всех имеющихся объектах явных и скрытых;
  • -A (—allmost-all) — вывод информации о всех имеющихся явных и скрытых объектах (за исключением объектов «.» и «..»);
  • -d (—directory) — вывод информации о директории без вывода его содержимого;
  • -F — к объектам являющимся каталогами добавит в конце символ слеш «/», к объектам являющимися исполняемыми файлами добавляется «*», к объектам являющимися символьными ссылками — «@»;
  • -r (—reverse) — данные ключи меняют сортировку на обратную;
  • -i — отображение номера индексных дескрипторов объектов;
  • -S — сортировка объектов по размеру от большого к меньшему;
  • -Sr — сортировка объектов по размеру от меньшего;
  • -t — сортировка объектов по времени модификации файлов;
  • -R (—recursive) — вывод информации об имеющихся объектах в том числе и объектах во вложенных каталогах.

Способы работы с командой ls и ее ключи, упоминаемые в статье это далеко не весь список. Если вы желаете использовать всю мощь этой на первый взгляд простой команды, то как уже упоминалось ранее, более подробную информацию можно получить при вызове встроенного мануала $ man ls .

Заключение

В заключении нужно отметить, что несмотря на кажущуюся незатейливость команды ls, она является базовым инструментом системного администратора для «исследования» паутины ФС. И если можно так выразиться, средством для понимания её скрытого порядка и принципов работы.


[spoiler title=”Источники”]

  • https://losst.ru/komanda-ls-linux
  • https://www.vseprolinux.ru/komanda-ls
  • https://ITProffi.ru/komanda-ls-prosmotr-atributov-fajlov/
  • https://habr.com/ru/post/99291/
  • https://mordeniuss.ru/15-basic-ls-command-examples-in-linux/
  • https://pingvinus.ru/note/cmd-ls
  • https://lumpics.ru/linux-ls-command-examples/
  • https://world-hello.ru/linux/bash/commands/ls.html


[/spoiler]


2020-12-22T10:34:30
Linux

Команда Tail в Linux – что делает и как работает



























4/5 — (3 голоса)

tail — утилита в UNIX, выводящая несколько (по умолчанию 10) последних строк из файла. Команда tail позволяет выводить заданное количество строк с конца файла, а также выводить новые строки в интерактивном режиме.

Что такое команда tail?

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

Синтаксис команды tail:

tail [options] [files]

Синтаксис команды tail

По умолчанию утилита печатает десять последних строк каждого файла стандартным способом вывода. Если указать более одного документа, то к каждому набору выходных данных будет добавлен заголовок с его именем. Если файл не указан или является одним тире (“-“), то tail читает из стандартного input.

Рассмотрим синтаксис команды:

tail [параметры] файл

Основные параметры команды tail:

  • -c – показывает указанное количество байт с конца файла. Также можно использовать знак плюс после “-с” для вывода любой информации, начиная с байта. Например, -c +1 напечатает все. После числа можно использовать суффикс множителя, чтобы указать единицы измерения: b (512), kB (1000), K (1024), MB (1000*1000), M (1024*1024), GB (1000*1000*1000), G (1024*1024*1024), and so on for T (terabyte), P (petabyte), E (exabyte), Z (zettabyte), Y (yottabyte).
  • -f – этот параметр приводит к тому, что tail будет зацикливаться вечно, проверяя наличие новых данных. Когда появляются новые данные, они будут напечатаны. Если вы следите более, чем за одним файлом, то будет напечатан заголовок каждого, чтобы указать, какие данные файла печатаются. Если файл уменьшается, а не увеличивается, утилита сообщит вам об этом. Если вы укажете название, то за файлом с таким заголовком будет слежка, вне зависимости от его файлового дескриптора. Если вы укажете дескриптор, то будет слежка за тем же файлом, даже если он переименован. Это поведение команды по умолчанию.
  • -n – выводит последние n строк, вместо значения по умолчанию, которое составляет 10.
  • –max-unchanged-stats=num. Если отслеживаете документ с аргументом -f , утилита постоянно проверяет его, чтобы увидеть, изменился ли размер. Если размер изменился, он снова открывает файл и ищет новые данные для печати. Опция –max-unchanged-stats повторно открывает файл, даже если его размер не изменился, после каждой проверки num. Эта опция полезна, если файл может быть самопроизвольно отключен или переименован, например, когда файлы журнала автоматически чередуются.
  • –pid – используется с аргументов “-f”, позволяет завершить процесс.
  • -q – никогда не выводить заголовки.
  • –retry – продолжает пытаться открыть файл, даже если он временно недоступен;
  • -s – если производить слежение посредством -f примерно num секунд между проверками файлов. С помощью –pid проверяется процессный pid не реже, чем один раз в несколько секунд.
  • -v -всегда печатать заголовки.
  • –help – получение информационной помощи по синтаксису.
  • –version – способ узнать версию.

Примеры команды tail

Запустим утилиту без параметров, тем самым узнаем 10 последних строк в dokument.

tail dokument

Покажем на экране пять последних строк. Для этого будем использовать аргумент “-n”.

tail -n 5 dokument

Рассмотрим пример опции “-f”. Которая делает стандартный вывод в десять пунктов и следит за обновлением документа, кроме того утилита продолжает выводит все новые изменения, которые добавляются в файл.

tail -f dokument

ВАЖНО!: tail будет отслеживать файл постоянно по умолчанию. Чтобы остановить этот процесс, необходимо набрать комбинацию CTRL + C.

Откроем несколько файлов одновременно.

tail -f dokument fil

Выше были приведены примеры использования tail для выборочного мониторинга файлов журнала в режиме реального времени. Это весьма полезная функция, разобраться в которой сможет каждый специалист, чей уровень подготовки выше начального.

Использование tail

Теперь, когда вы знаете основные опции, рассмотрим приемы работы с утилитой. Самый простой пример – выводим последние десять строк файла:

tail /var/log/syslog

tail /var/log/syslog

Если вам недостаточно 10 строк и нужно намного больше, то вы можете увеличить этот параметр с помощью опции -n:

tail -n 100 /var/log/syslog

tail -n 100 /var/log/syslog

Когда вы хотите отслеживать появление новых строк в файле, добавьте опцию -f:

tail -f /var/log/syslog

tail -f /var/log/syslog

Вы можете открыть несколько файлов одновременно, просто перечислив их в параметрах:

tail /var/log/syslog /var/log/Xorg.0.log

tail /var/log/syslog /var/log/Xorg.0.log

С помощью опции -s вы можете задать частоту обновления файла. По умолчанию данные обновляются раз в секунду, но вы можете настроить, например, обновление раз в пять секунд:

tail -f -s 5 /var/log/syslog

tail -f -s 5 /var/log/syslog

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

tail -q var/log/syslog /var/log/Xorg.0.log

tail -f -s 5 /var/log/syslog

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

tail -c 500 /var/log/syslog

Для удобства, вы можете выбирать не все строки, а отфильтровать интересующие вас:

tail -f /var/log/syslog | grep err

Особенно, это полезно при анализе логов веб сервера или поиске ошибок в реальном времени. Если файл не открывается, вы можете использовать опцию retry чтобы повторять попытки:

tail -f –retry /var/log/syslog | grep err

Как я говорил в начале статьи, по умолчанию опция -f или –follow отслеживает файл по его имени, но вы можете включить режим отслеживания по дескриптору файла, тогда даже если имя измениться, вы будете получать всю информацию:

tail –follow=descriptor /var/log/syslog | grep err

Как Ограничить Количество Выводимых Строк?

Tale предоставляет возможность посмотреть то количество срок, которое вам нужно. Для этого просто используйте опцию –n.

Самый простой способ выполнить это действие:

Tail –n* путь_к_файлу

Вместо * укажите необходимое количество строк.

Например, если мы хотим просмотреть две строки из файла, мы будем использовать следующую команду:

tail -n2 devisers.txt

2 — количество строк, devisers.txt — имя файла.

Как Посмотреть Последнее Количество Байтов Данных?

Чтобы просмотреть последнее или N-нное количество байтов очень большого файла, используйте параметр -c.

tail –c* путь_к_файлу

Замените * на количество байтов, которое необходимо вывести.

Как Отслеживать Изменения в Файле?

Чтобы проверить файл на наличие новой информации, используйте команду tail вместе с опцией -f. Эта команда будет полезна при просмотре последних десяти строк файла. Опция обычно используется для отслеживания файлов логов в реальном времени. Для нашего файла devisers.txt команда будет выглядеть так:

tail -f devisers.txt

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

Как Использовать Команду Tail с Другими Командами Linux?

Команды tail могут использоваться вместе с другими функциями командной строки Linux. Например:

Команда Tail с -r (Обратный Порядок)

Например, мы хотим просмотреть вывод команды tail в обратном порядке.

tail –n* имя_файла | sort -r

Первая часть команды такая же, как и раньше, затем мы разделяем её с помощью | для обозначения последующего действия — sort -r, которое, как следует из названия, сортирует вывод в обратном порядке.

Использование Команды Tail с ls (Самый Старый Файл или Папка)

С помощью следующего примера мы просмотрим семь файлов или папок, которые были изменены наиболее давно.

Чтобы сделать это, пропишем ls перед командой tail. Вот, как это будет выглядеть:

ls -l | tail -n8

Как уже упоминалось раньше, в tail части команды -n8 вы можете указать любое число.

5 практических примеров команды Tail в Linux

Давайте узнаем, как использовать команду tail в Linux с некоторыми практическими примерами. Мы будем использовать этот текстовый файл в этой статье:

Загадочное происшествие на Брайтон Бич Тайный Противник Убийство по ссылкам Человек в коричневом костюме Секрет дымовых труб Погода в Кацапетовке Большая четверка Странный пассажир полуночного экспресса Гарри Поттер Все на Матч Морские дьяволы Статьи о Linux Искусственный интеллект SQL для начинающих Дистрибутив Linux Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках

Если вы используете команду tail без какой-либо опции, она будет печатать последние 10 строк. Это поведение по умолчанию команды tail.

tail agatha.txt Морские дьяволы Статьи о Linux Искусственный интеллект SQL для начинающих Дистрибутив Linux Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках

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

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

1. Распечатайте последние N строк с помощью команды tail

Чтобы просмотреть последние N строк, вместо 10 по умолчанию вы можете использовать команду tail следующим образом:

tail -n N

Например, если вы хотите увидеть последние 5 строк с командой tail в нашем файле примера, вы можете использовать его следующим образом:

tail -n 5 agatha.txt Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках

Совет

Вы также можете просто использовать tail -N вместо tail -n N для отображения последних N строк файла.

2. Распечатайте все строки, начиная с номера строки N

Если вы хотите просмотреть все строки, начинающиеся с номера строки N, вы можете использовать здесь опцию +.

tail -n +N

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

tail -n +7 agatha.txt Большая четверка Странный пассажир полуночного экспресса Гарри Поттер Все на Матч Морские дьяволы Статьи о Linux Искусственный интеллект SQL для начинающих Дистрибутив Linux Убийство в восточном экспрессе Незаконченный Портрет Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках

3. Использование нескольких файлов с командой tail

Команда tail позволяет вам одновременно использовать несколько файлов. Все стандартные опции команды tail применимы к нескольким файлам.

tail -n N

Результат объединяется для всех файлов, и по умолчанию имя файла отображается в строках, начинающихся с «==>».

Например, если вы хотите увидеть последние три строки файлов sherlock.txt и agatha.txt, это будет выглядеть так:

tail -n3 sherlock.txt agatha.txt ==> sherlock.txt <== Приключение благородного холостяка Приключение Берилл Коронет Приключение Алисы в стране чудес ==> agatha.txt <== Почему они не спросили Эванса? Три Акта Трагедии Смерть в облаках

Совет

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

4. Мониторинг файлов в реальном времени с помощью команды tail [Очень полезно для мониторинга журналов]

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

Для этого вы можете использовать опцию -f.

tail -f

Команда сначала отобразит последние 10 строк файлов, а затем обновит вывод, когда новые строки будут добавлены в файл.

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

СоветЕсли вы используете -F вместо опции -f, команда tail будет ждать создания входного файла (если он еще не существует), а затем отображает содержимое файла в режиме реального времени.

5. Использование команды tail с pipes

Команда tail может использоваться в сопряжении с другими командами с использованием pipes.

Например, если у вас слишком много файлов в каталоге, и вы хотите видеть только последние 3 измененных файла, вы можете использовать его следующим образом:

ls -ltr | tail -n3

В приведенной выше команде ls -lrt перечисляет все файлы в обратном хронологическом порядке. И тогда команда tail дополнительно анализирует этот вывод и отображает только последние три строки вывода команды ls, и поэтому мы получаем список из трех последних измененных файлов.

Особенность Tails

Что делает Tails безопаснее других операционных систем?

Поскольку дистрибутив изначально был разработан для обеспечения конфиденциальности и анонимности, он отличается от других операционных систем в нескольких областях:

Tails заставляет все интернет-соединения проходить через сеть Tor. Tor — это всемирная распределенная сеть, которая не позволяет людям, наблюдающим за вашим сетевым подключением, знать, какие веб-сайты вы посещаете. Кроме того, не позволяет этим сайтам узнать ваше физическое местоположение. Для получения более подробной информации о Tor в статье.

Дистрибутив подключается к оборудованию компьютера, но не использует операционную систему или дисководы. Это означает, что на вашем компьютере нет постоянной записи о вашей деятельности. После того, как вы извлечете USB-накопитель Tails или перезагрузите компьютер, вы не сможете сказать, что дистрибутив использовался там.

Tails поставляется с современной технологией шифрования. За счет чего ПО обеспечивает нам безопасность?

Во-первых, дистрибутив обеспечит вас надежной защитой от PGP и OTR для безопасной связи. Во-вторых, автоматическим использованием HTTPS при посещении веб-сайтов. В-третьих, возможностью шифровать файлы на USB-накопителе или DVD-диске. И наконец, со всеми этими функциями конфиденциальности и анонимности вы можете буквально носить его в кармане.

Вот почему фанаты конфиденциальности любят Tails.

Одна из замечательных особенностей дистрибутива заключается в том, что вы можете создать собственную USB-флешку или DVD-диск Tails. А поскольку это бесплатное программное обеспечение, вам нужно иметь в наличии USB-накопитель или DVD-диск, на который вы его установите.

Обеспечение безопасности

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

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

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

Преимущества и недостатки

Преимущества

  • Позволяет хранить зашифрованные данные на USB-накопителе Tails
  • Вы можете установить дополнительные приложения
  • Можно изменить конфигурацию приложений
  • Вы можете открыть постоянное хранилище из других операционных систем

Недостатки

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

Управление паролями

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

Для решения этой проблемы дистрибутив поставляется с KeePassX , менеджером паролей открытого качества.

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

Установка Tails

Скачать образ Tails можно перейдя по данной ссылке.

Когда вы запускаете дистрибутив, вы видите экран.

Когда вы запускаете Tails, вы видите экран

После нажатия Enter появляется экран Tails. Здесь выбирайте язык, раскладку клавиатуры, время.

Tails Здесь выбирайте язык, раскладку клавиатуры, время

Кроме того, вы можете активировать набор предлагаемых параметров.

Tails Кроме того, вы можете активировать набор предлагаемых параметров

Настроив все параметры нажмите кнопку Запуск Tails.

В нашем случае, подключение к интернету произошло автоматически.

Tails В нашем случае, подключение к интернету произошло автоматически.

Начало работы

После загрузки с рабочей флешки нам потребуется создать постоянный (persistent) защищенный раздел, своеобразный «жесткий диск на флешке». Это делается через Application → Tails → Configure Persistence.

Перезагружаем компьютер и на загрузочном экране выбираем Use Persistence и More Options, после чего вводим пароль для нашего хранилища.

Из меню внизу экрана выбираем регион. Это важно, поскольку от региона зависят входные узлы Tor. Здесь следует поэкспериментировать. В моем случае лучшим выбором оказалась Дания.

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

Имей в виду, что загрузка занимает некоторое время, а потом Tails еще несколько минут будет подключаться к Tor. Отслеживать процесс можно, щелкнув по иконке Onion Circuits — луковичке в верхнем правом углу экрана.

Спустя некоторое время Tails проинформирует об успешном подключении к Tor. По умолчанию сеть сконфигурирована так, что весь трафик будет проходить через него. Теперь можно скачать все, что нам нужно для работы.

Дистрибутив Tails

Tails — live-дистрибутив Linux, основанный на Debian, и созданный для конфиденциального и анонимного использования сети (шифрование, анонимизация и безопасность перехвата/прослушки трафика).

Tails содержит набор программ и утилит, которые позволяют полностью анонимно выходить в интернет и пользоваться другими сервисами и службами (почта, im-сообщения и прочее). Для достижения приватности дистрибутив использует Tor-сеть.

Интересный факт

Дистрибутив Tails использовал Эдвард Сноуден, также он призвал некоторых журналистов использовать Tails.

Среда рабочего стола Gnome

Tails использует рабочее окружение Gnome.

При запуске дистрибутива есть интересная опция — «Активировать маскировку под Windows XP». Данная опция позволяет сделать так, чтобы система выглядела очень похожей внешне на Windows XP, чтобы, например, в публичных местах никто не заподозрил вас в использовании «подозрительного» дистрибутива.

Дополнительное ПО, сохранение файлов и настроек

По умолчанию Tails не рассчитана на сохранение установленного ПО, настроек и файлов после выключения компьютера. Однако создатели предусмотрели возможность хранить некоторые данные в персистентном разделе. Настроить, что именно будет храниться, можно в разделе Settings → Persistent.

Большинство пунктов меню очевидны, поэтому я остановлюсь на последних трех. Второй и третий с конца отвечают за хранение APT-пакетов. Tails основана на Debian, поэтому большинство нужного нам ПО можно установить при помощи apt-get. И хотя сами программы при отключении компьютера не сохранятся, пакеты APT при соответствующих настройках останутся в персистентном разделе. Это позволяет развертывать все нужное ПО в процессе загрузки системы.

Последний пункт меню Dotfiles позволяет создать в персистентном разделе папку с файлами, ссылки на которые будут создаваться в домашней папке Tails при загрузке. Выглядит это следующим образом.

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

/live/persistence/TailsData_unlocked/dotfiles ├── file_a ├── folder │ ├── file_b │ └── subfolder │ └── file_c └── emptyfolder

В домашней папке при таком раскладе будет следующая структура ссылок:

/home/amnesia ├── file_a → /live/persistence/TailsData_unlocked/dotfiles/file_a └── folder ├── file_b → /live/persistence/TailsData_unlocked/dotfiles/folder/file_b └── subfolder └── file_c → /live/persistence/TailsData_unlocked/dotfiles/folder/subfolder/file_c

Защищаем данные, отбрасываем хвост

Сам по себе наш персистентный раздел уже зашифрован. Однако у него есть существенный недостаток: он не обеспечивает правдоподобное отрицание наличия зашифрованных данных. Чтобы обеспечить правдоподобное отрицание, я предложу решение, которое отличается от рекомендаций создателей Tails. Как поступить тебе — решай сам.

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

Такой скрытый раздел лично меня не устраивает. Поэтому я решил использовать старый добрый TrueCrypt версии 7.1а. Заголовок скрытого раздела TrueCrypt неотличим от случайных данных, и, насколько мне известно, обнаружить его невозможно. Двоичный файл программы TrueCrypt лучше хранить здесь же, в персистентном разделе.

Детально описывать процесс создания двойного криптоконтейнера я не стану, отмечу лишь важный нюанс. Поскольку скрытый раздел TrueCrypt по-настоящему скрытый, о его существовании не догадывается даже сама программа, пока ты не введешь нужный пароль. Из-за этого при записи файлов в ложный раздел скрытый раздел может быть поврежден. Чтобы этого не произошло, при монтировании ложного раздела для записи на него картинок котиков нужно выбрать Mount Options → Protect hidden volume when mounting outer volume.

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

Общение

Теперь, когда мы обезопасили нашу информацию, можно приступить к ее передаче, то есть к общению. Начнем с Pidgin. Он отлично годится в качестве клиента IRC, а в Tails его еще и немного усилили. В состав ОС включен Pidgin с установленным плагином для протокола OTR. Именно он нам интересен больше всего. Избегая сложной математики, можно сказать, что этот протокол обеспечивает защищенную передачу данных с возможностью отречения, то есть доказать, что конкретное сообщение написано конкретным человеком, невозможно.

Прежде чем начать общаться с кем-то по протоколу OTR, нужно подключиться к серверу IRC. При этом очень важно удостовериться в использовании SSL. Tor шифрует трафик при передаче его между узлами, но, если ты не будешь использовать SSL, твой трафик будет передаваться в открытом виде до входного узла Tor и от выходного узла адресату. Некоторые узлы Tor забанены на серверах IRC, поэтому может потребоваться перезапуск Tor. Сделать это можно командой /etc/init.d/tor restart.

После того как соединение с сервером установлено, выбираем Buddies → New Instant Message.

В открывшемся окне диалога выбираем Not Private → Start Private Conversation.

Будет предложено три варианта для аутентификации: ввести ответ на секретный вопрос, который вы обсудили с собеседником заранее (в этом случае необходимо ввести один и тот же ответ, пробелы и регистр считаются); ввести общую «секретную» фразу; проверить fingerprint — это сорокасимвольная последовательность, идентифицирующая пользователя OTR.

Теперь можно переписываться по OTR. Но как насчет голосового общения? Тут, увы, не все гладко. Поскольку Tails направляет весь трафик через Tor, возникает ряд проблем для голосового общения. Во-первых, большинство VoIP-программ используют UDP, в то время как через Tor возможна передача только пакетов TCP. Во-вторых, Tor не отличается скоростью и пакеты иногда приходят с сильной задержкой. Так что возможны задержки и разрывы связи.

Тем не менее существует OnionPhone, специальный плагин для TorChat. Неплохо справляется и Mumble, хотя этот вариант и менее безопасен. Чтобы Mumble работал через Tor, необходимо запускать его командой torify mumble, а также выбрать пункт Force TCP в сетевых настройках программы.

Электронная почта

Почту в Tails можно использовать точно так же, как и в других ОС. В стандартную сборку входит почтовый клиент Icedove, его настройки и ключи можно хранить в персистентном разделе. Важный нюанс, который следует иметь в виду при отправке писем, состоит в том, что заголовки (subject) не шифруются. Это не ошибка, а особенность реализации протокола, о которой нужно просто знать. Кроме того, файлы, передаваемые по электронной почте, рекомендуется шифровать.

Выводы

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


[spoiler title=”Источники”]

  • https://andreyex.ru/linux/komandy-linux-i-komandy-shell/5-prakticheskih-primerov-komandy-tail-v-linux/
  • https://www.vseprolinux.ru/linux-tail
  • https://losst.ru/komanda-tail-linux
  • https://www.hostinger.ru/rukovodstva/komanda-tail-v-linux/
  • https://linuxvsem.ru/distributions/tails-linux
  • https://xakep.ru/2016/11/01/tails-live-flash/
  • https://pingvinus.ru/distribution/tails


[/spoiler]


2020-12-22T10:34:30
Linux

Как вывести список установленных пакетов в Linux

Вы могли установить много приложений в вашей системе Linux. Это краткое руководство объясняет, как вывести список всех установленных пакетов в Linux из командной строки с примерами.

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

1. Вывести список установленных пакетов в Arch Linux с помощью команды pacman

Pacman — это менеджер пакетов по умолчанию для Arch Linux и его производных, таких как Manjaro Linux.

Чтобы вывести список всех установленных пакетов, используемых pacman в Arch Linux и его вариантах, запустите:

$ pacman -Q

Пример вывода:

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

$ pacman -Q | more

Чтобы перечислить только явно установленные пакеты и версии:

$ pacman -Qe

Чтобы перечислить только общее количество установленных пакетов в Arch Linux, направьте вывод pacman в команду wc:

$ pacman -Q | wc -l

134

Как видно из вышеприведенного вывода, я установил 134 пакета в свою систему Arch Linux.

2. Список установленных пакетов в Alpine Linux с помощью команды apk

Apk, сокращение от Alpine Package Manager, является менеджером пакетов по умолчанию для Alpine Linux.

Команда для просмотра списка установленных пакетов в Alpine Linux:

$ apk info

Если вы хотите просмотреть список установленных пакетов, а также номер версии и описание пакета, используйте флаг -vv, как показано ниже:

$ apk info -vv

Пример вывода:

lm_sensors-3.4.0-r6 - Collection of user space tools for general SMBus access and hardware monitoring.

man-1.14.3-r0 - dummy package for upgrade compatibility. this can safely be removed

libcrypto1.1-1.1.1i-r0 - Crypto library from openssl

libssl1.1-1.1.1i-r0 - SSL shared libraries

[...]

Чтобы перечислить только общее количество всех установленных пакетов в Alpine Linux, передайте вывод apk info в команду wc, как показано ниже:

$ apk info | wc -l

86

3. Перечислите установленные пакеты в Debian, Ubuntu с помощью команды apt

Apt предоставляет интерфейс командной строки высокого уровня для системы управления пакетами в Debian, Ubuntu и других системах на основе Debian.

Чтобы отобразить список установленных пакетов в Debian, Ubuntu, Linux Mint и других системах на основе DEB, запустите:

$ apt list —installed

Пример вывода:

Отобразите общее количество установленных пакетов в системах на основе Debian, направьте вывод команды apt команде wc, как показано ниже:

$ apt list --installed | wc -l

2575

4. Перечислите установленные пакеты в Debian, Ubuntu с помощью команды dpkg.

Dpkg — это инструмент командной строки для установки, сборки, удаления пакетов Debian и управления ими.

Чтобы вывести список всех установленных пакетов с версиями и подробностями с помощью команды dpkg, запустите:

$ dpkg -l

Кроме того, вы можете использовать команду dpkg-query для вывода списка всех установленных пакетов Debian.

$ dpkg-query -l

Укажите только общее количество установленных пакетов в системах на основе Debian:

$ dpkg -l | wc -l

2668

$ dpkg-query -l | wc -l

2668

5. Перечислите установленные пакеты в RHEL, Fedora, CentOS с помощью команды yum.

Yum, расшифровывается как Yellowdog Updater, Modified, — это утилита управления из командной строки для установки и управления пакетами в системах на основе Red Hat. Теперь он заменен на dnf в последних версиях RHEL и CentOS.

Чтобы найти список установленных пакетов в Fedora, RHEL и его клонах, таких как CentOS, запустите:

$ yum list installed

Список только общее количество установленных пакетов с использованием команд yum и wc:

$ yum list installed | wc -l

347

6. Перечислите установленные пакеты в RHEL, Fedora, CentOS с помощью команды dnf

DNF — это версия YUM следующего поколения, и он был менеджером пакетов по умолчанию, начиная с Fedora 22, RHEL 8 и CentOS 8. Использование DNF такое же, как и в Yum.

Чтобы найти список установленных пакетов в RHEL, Fedora, CentOS с помощью dnf, выполните:

$ dnf list installed

Если вы хотите отобразить только общее количество пакетов с помощью команды dnf, запустите:

$ dnf list installed | wc -l

7. Список установленных пакетов в openSUSE с помощью команды zypper

Zypper — это менеджер пакетов командной строки по умолчанию для установки и управления пакетами в SUSE и openSUSE.

Чтобы просмотреть список установленных пакетов в openSUSE zypper, запустите:

$ zypper se --installed-only

8. Вывести список установленных пакетов в Linux с помощью команды rpm

RPM команда, означает Red Hat Package Manager, используется для установки и управления приложениями из командной строки в системах Redhat основе.

Чтобы вывести список всех пакетов RPM, установленных в вашей системе, выполните:

$ rpm -qa

Чтобы просмотреть вывод страницы за страницей, направьте вывод по конвейеру в moreкоманду:

$ rpm -qa | more

Вы также можете все установленные пакеты, самые свежие из которых находятся вверху, используя флаг --last, как показано ниже:

$ rpm -qa --last

Следующие два метода являются универсальными. Вы можете использовать эти команды в любых системах, в которых установлены инструменты snapили flatpak.

9. Список пакетов, установленных с помощью оснастки в Linux

Snap — это система развертывания программного обеспечения и управления пакетами, разработанная Canonical.

Чтобы вывести список всех приложений Snap, установленных в вашей системе, запустите:

$ snap list

Пример вывода:

Name Version Rev Tracking Publisher Notes

chromium 87.0.4280.88 1424 latest/stable canonical* -

core 16-2.48 10444 latest/stable canonical* core

core18 20201210 1944 latest/stable canonical* base

gnome-3-26-1604 3.26.0.20200529 100 latest/stable/… canonical* -

gnome-3-28-1804 3.28.0-19-g98f9e67.98f9e67 145 latest/stable canonical* -

gnome-3-34-1804 0+git.3556cb3 60 latest/stable canonical* -

gnome-system-monitor 3.36.0-12-g35f88a56d7 148 latest/stable/… canonical* -

gtk-common-themes 0.1-50-gf7627e4 1514 latest/stable/… canonical* -

multipass 1.5.0 2907 latest/stable canonical* -

10. Вывести список пакетов, установленных с помощью Flatpak в Linux

Flatpak — это независимая от платформы система управления пакетами для создания, установки и запуска изолированных настольных приложений и сред выполнения в Linux.

Чтобы вывести список всех установленных приложений Flatpak в Linux, запустите:

$ flatpak list --app

Пример вывода:

Name Application ID Version Branch Installation

Fondo com.github.calo001.fondo 1.5.1 stable system

Flatseal com.github.tchx84.Flatseal 1.6.5 stable system

FontFinder io.github.mmstick.FontFinder 2.0.0 stable system

Giara org.gabmus.giara 0.3 stable system

Solanum org.gnome.Solanum 1.1.0 stable system

Обратите внимание, что в приведенной выше команде будут перечислены только пакеты, которые установлены исключительно с приложением flatpak.

Для получения дополнительных сведений смотрите справочные страницы соответствующих команд.



2020-12-22T10:24:42
Вопросы читателей

Wine для нескольких пользователей.

Сегодня в статье поговорим о том, как можно настроить wine для использования его несколькими пользователями в вашей системе Linux.






Для примера я буду использовать легковесный дистрибутив XUbuntu, для всех производных операционок, таких как Ubuntu, Debian и т.д. инструкция будет идентичной.




Для начала установим wine на Вашу систему. Как это сделать я описывал в данной статье.




Будем считать что wine у вас установлен, для первого запуска достаточно набрать следующую команду:




wineboot




Программе потребуется некоторое время, а также недостающие зависимости, такие как mono и geckoo. Соглашаемся со всеми установками. После установки всех недостающих программ в директории пользователя появится директория ~/.wine. Если вы ее не видите, то нажмите сочетание клавиш ctrl+h.




Настройка многопользовательского wine




Давайте перенесем нашу только, что созданную директорию в директорию /etc.




sudo mv ~/.wine /etc/wine




Создадим общую группу для всех наших существующих и будущих пользователей.




sudo groupadd samba




Добавим нашего пользователя в данную группу.




sudo usermod -a -G samba myuser




Назначим группу и пользователя на нашу директорию /etc/wine




sudo chown -R myuser:samba /etc/wine




Теперь создадим символическую ссылку на директорию из /etc/wine в директорию нашего пользователя.




ln -s /etc/wine /home/myuser/.wine




А также изменим права на директорию и файлы, чтобы только наш пользователь и группа могли читать и изменять файлы :




chmod -R 6770  /etc/wine




Давайте теперь запустим нашу программу с помощью wine например regedit.exe




wine regedit.exe




Да! Все запускается, но что если создать нового пользователя и не проходить заново установку и настройку wine, а использовать уже установленный и настроенный, со всеми программами которые нам нужны.




Если Вы попробуете просто создать символическую ссылку на директорию /etc/wine, то программы установленные для пользователя myuser не запуститься под новым пользователем . Потому-что wine требует права юзера на некоторые фалы в своей директории.




Например файлы system.reg и user.reg должны принадлежать только тому пользователю, от которого вы собираетесь работать с wine. А в нашем случае владельцем является myuser




Для того чтобы обойти данное ограничение не достаточно присвоить SGIT и SUID (6770) – права на запуск файлов и директорий от пользователя владельцем которого он является. Необходимо, как я уже сказал, быть владельцем файла. Сейчас данные файлы должны принадлежать пользователю myuser. Но как же сделать multiuser wine (многопользовательский wine) спросите вы. Да все очень просто. Надо всего лишь переместить файлы system.reg и user.reg в директорию юзера, того пользователя, которому хотите установить wine и назначить владельцем этих файлов данного пользователя. Давайте проделаем эти шаги.




Этапы настройки многопользовательского wine




  • Создаем пользователя в системе:




adduser myuser2




  • Добавим нашего пользователя в группу samba.




sudo usermod -a -G samba myuser2




  • Создаем директорию wine в директории нового пользователя.




sudo mkdir /home/myuser2/.wine




  • Ограничим права на чтение директории данного юзера:




sudo chmod -R 6770 /home/myuser2




  • Ограничим доступ к директории пользователя:




sudo chown -R myuser2:myuser2 /home/myuser2




  • Создаем символические ссылки на директории /etc/wine/drive_c и /etc/wine/dosdiveces в директорию wine нового пользователя




ln -s /etc/wine/drive_c /home/myuser2/.wine/




ln -s /etc/wine/dosdiveces /home/myuser2/.wine




  • Перемещаем файлы system.reg и user.reg и назначим права на них




cp /etc/wine/{system.reg,user.reg} /home/myuser2/.wine/




chown myuser2:myuser2 /home/myuser2/.wine/{system.reg,user.reg}




После давайте попробуем запустить программу regedit от нашего нового пользователя myuser2. Для этого залогинемся под пользователем и выполним программу:




wine regedit.exe




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







Ошибки wine




Если при попытке запуска программы wine ругается и выдает следующее сообщение:




wine: /home/myuser2/.wine is not owned by you




В этом случае необходимо назначить правильные права на директорию ~/.wine данного пользователя.




Заключение




Подведем итог: Пользователь myuser2 может запустить все программы установленные нашим myuser пользователем. Также работа wine теперь осуществляется от всех пользователей в системе. Мы не создаем дубликаты директорий wine для каждого пользователя.



[endtxt]




RSS



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


2020-12-21T15:02:58
Wine