Общий синтаксис
find <где искать> <опции>
<где искать> — путь к корневому каталогу, откуда начинать поиск. Например, find /home/user — искать в соответствующем каталоге. Для текущего каталога нужно использовать точку «.».
<опции> — набор правил, по которым выполнять поиск.
* по умолчанию, поиск рекурсивный. Для поиска в конкретном каталоге можно использовать опцию maxdepth.
Описание опций
Опция | Описание |
---|---|
-name | Поиск по имени. |
-iname | Регистронезависимый поиск по имени. |
-type |
Тип объекта поиска. Возможные варианты:
|
-size | Размер объекта. Задается в блоках по 512 байт или просто в байтах (с символом «c»). |
-mtime | Время изменения файла. Указывается в днях. |
-mmin | Время изменения в минутах. |
-atime | Время последнего обращения к объекту в днях. |
-amin | Время последнего обращения в минутах. |
-ctime | Последнее изменение владельца или прав на объект в днях. |
-cmin | Последнее изменение владельца или прав в минутах. |
-user | Поиск по владельцу. |
-group | По группе. |
-perm | С определенными правами доступа. |
-depth | Поиск должен начаться не с корня, а с самого глубоко вложенного каталога. |
-maxdepth | Максимальная глубина поиска по каталогам. -maxdepth 0 — поиск только в текущем каталоге. По умолчанию, поиск рекурсивный. |
-prune | Исключение перечисленных каталогов. |
-mount | Не переходить в другие файловые системы. |
-regex | По имени с регулярным выражением. |
-regextype <тип> | Тип регулярного выражения. |
-L или -follow | Показывает содержимое символьных ссылок (симлинк). |
-empty | Искать пустые каталоги. |
-delete | Удалить найденное. |
-ls | Вывод как ls -dgils |
Показать найденное. | |
-print0 | Путь к найденным объектам. |
-exec <команда> {} \; | Выполнить команду над найденным. |
-ok | Выдать запрос перед выполнением -exec. |
Также доступны логические операторы:
Оператор | Описание |
---|---|
-a | Логическое И. Объединяем несколько критериев поиска. |
-o | Логическое ИЛИ. Позволяем команде find выполнить поиск на основе одного из критериев поиска. |
-not или ! | Логическое НЕ. Инвертирует критерий поиска. |
Полный набор актуальных опций можно получить командой man find.
Linux урок 6. Поиск файлов/директорий/ссылок. Команда find
655
19
1
00:12:36
07.09.2020
Поиск файлов/директорий/ссылок. Команда find
Прежде чем выполнить поиск мы задаемся вопросами:
-где искать? (Например в текущей директории)
-что искать? (файлы или директории или ссылки)
-свойство/значение искомого? (дата_создания, размер_файлов, расширение и т.п.)
Утилита/команда find — позволяет производить гибкую настройку поиска.
Команда find в стандартном исполнении производит поиск по имени ссылки в ТЕКУЩЕЙ ДИРЕКТОРИИ. Выводит на экран все доступные файлы, директории, ссылки с указанным именем.
ПОИСК С ПОМОЩЬЮ КЛЮЧЕЙ -type, -name
Ключ -type — поиск файлов, папок, символьных ссылок по типу. Выведет все доступные файлы/директории/ссылки:
Значения:
f-файл
d-директория
l-ссылка (В ДАННОМ УРОКЕ ССЫЛКИ МЫ НЕ РАССМАТРИВАЕМ, ТАК КАК НЕ КОСНУЛИСЬ ТЕМЫ ССЫЛОК!)
Поиск в текущей директории:
Синтаксис:
find -type f,d,l
Пример:
find -type d
Поиск с указанием директории поиска.
Синтаксис:
find директория_поиска -type f,d,l
Пример:
find /home/hitruk -type f
Ключ -name — поиск файлов, папок, символьных ссылок по имени.
Поиск в текущей директории:
Синтаксис:
find -name ‘имя_искомого_файла’
Пример:
find -name ‘readme’
Поиск с указанием директории поиска:
Синтаксис:
find имя_директория_поиска -name’имя_искомого_файла’
Пример:
find /home/hitruk -name ‘readme’
ПОИСК С ПОМОЩЬЮ КОМБИНАЦИИ КЛЮЧЕЙ -name, -type.
Возможно использовать как с указанием директории поиска, так поиском в текущей директории.
* — «подстановочный» знак последовательности символов. Использует любую из указанной последовательности символов, включая отсутствие символов.
Пример:
‘*readme.’
‘*.txt’
Найти все файлы, которые заканчиваются на .conf:
Синтаксис:
find имя_директории -type f -name «*.conf»
Пример:
find /home -type f -name «*.conf»
Для ознакомления.
Дополнительные значения, например ключ -size, -mtime
Найти все файлы с именем readme*, размер которых больше 5 Килобайт.
Пример:
find /home -type f -name ‘readme*’ -size -5k
Найти все файлы с именем readme*, которые были изменены за последние 10 дней.
Пример:
find /home -type f -name ‘readme*’ -mtime -10
LS
Команда , одна из самых простых и самых нужных команд.
С помощью данной команды можно просматривать содержимое каталогов, кому принадлежит каталог/файл, права доступа к файлу/каталогу и многое другое.
Стандартный вывод программы выглядит так:
Это стандартный вывод команды, мы видим все каталоги и файлы в директории где мы находимся.
Каталоги отмечены синим цветом, файлы белым.
Помимо такого вывода, может предоставлять нам информацию в других разных форматах.
Делается это при помощи специальных ключей или как их еще называют — флаги.
— выводит содержимое текущего каталога и если есть вложенные каталоги, то и содержимое этих каталогов — длинный формат вывода — выводит содержимое каталога через запятые — показывает все файлы и папки включая скрытые — реверсивный вывод информации — сортировка вывода в алфавитном порядке — сортировка по времени создания/последнего изменения файла
— сортировка по размеру файла
Все ключи вводятся сразу после команды и команда приобретает следующий вид
ls -l
Теперь посмотрим на примеры выполнения команды с ключами.
ls -l
Вывод разбит на столбцы, каждый столбец отображает определенную информацию.
Слева направо — Права доступа, Количество ссылок, Владелец, Группа владельца, Размер в байтах, Время последнего изменения, Название файла.
В первом столбце отображаются права доступа к файлу, однако что первый символ в текущем выводе иногда «-», а иногда «d».
Этот первый символ указывает на тип файла.
— обычный файл — директория
Есть еще и другие типы файлов.
При выполнении команды с этим ключом, выводится путь к каталогу, а после двоеточия список файлов и подкаталогов.
ls -m
А тут мы видим вывод содержимого каталога, разделённое запятыми.
Также флаги можно комбинировать, таким образом получая удобный формат вывода. Например очень удобно использовать , и так далее.
Так же помним, что linux чувствителен к регистру, команда и разные. Каталоги и тоже разные.
Не забываем об этом.
05 мая 2015, 22:07
Александр
Linux
4172
Из этой категории
- Opera не показывает некоторые видео в linuxАвтоматическая смена MAC-адреса в LinuxНастройка принтера HP LaserJet 1018 в Debian 10Установка LAMP-сервера и phpMyAdmin в Debian 10Установка XAMPP в Debian 10 (Ubuntu) LinuxОтключить пароль SUDO в LinuxBash-команды для экономии времениУстанавливаем Brackets в Debian 10Работа с пакетами при помощи dpkgНастройка Linux Debian 10
Управление процессами в Linux.
ps
ps —help Список всех процессов, запущенных в системе:ps -e — выдаст список процессов с идентификаторами
( PID ) и их именами
или:ps -eF — выдаст тот же список процессов, но с полной строкой запуска
список задач, порожденных пользователем user:ps -U user
список задач, связанных с текущим терминалом:ps -T
список задач, связанных с терминалом N:ps t ttyN
Если список задач большой, а нас интересует состояние одной или нескольких
задач, можно воспользоваться grep:ps -U root | grep ppp — выдать список задач, содержащих «ppp» в имени
Для получения сведений об использовании ресурсов компьютера можно
воспользоваться командой top
В верхней части окна выводятся суммарные данные о состоянии системы —
текущее время,
время с момента загрузки системы, число пользователей в системе,
число процессов в разных состояниях,
данные об использовании процессора и памяти.
Ниже выводится таблица, характеризующая отдельные процессы.
Число строк, отображаемых в этой таблице, определяется размером окна.
Содержимое окна обновляется каждые 3 секунды. Нажатие клавиши h
выводит справку по командам, которые позволяют изменить формат отображаемых данных
и управлять некоторыми параметрами процессов в системе:
s или d — изменить
интервал обновления окна.
z — цветное/черно-белое отображение
n или # — количество отображаемых
процессов
Можно отсортировать список процессов по использованию ресурсов процессора
(P), памяти (M),
времени выполнения (T) и т.п.
В среде утилиты top также существуют подкоманды, которые позволяют управлять процессами в интерактивном режиме:
k — снять ( kill ) задачу. По этой команде будет
запрошен идентификатор процесса ( PID ), после ввода которого, процесс будет
завершен.
r — изменить текущий приоритет задачи (renice).
Как и при выполнении предыдущей команды, будет запрошен PID, и затем, новое значение
приоритета (отображается в колонке NI). Диапазон значений приоритетов — от минус 20
(наивысший) до плюс 19. Отрицательные значения и 0 может устанавливать только
пользователь root.
Для выхода из top нажмите q
Эти же действия (принудительное завершение процесса и изменение его приоритета)
можно выполнить и без команды top.
Процессы в Linux имеют возможность обмениваться
так называемыми «сигналами» с ядром и другими процессами. При получении сигнала
процессом, управление передается подпрограмме его обработки или ядру, если такой подпрограммы не существует. В Linux имеется команда kill, которая позволяет послать заданному процессу любой сигнал. Список сигналов можно получить по команде:kill -l
В результате выполнения этой команды вы увидите список номеров и названий сигналов.
Для того, чтобы послать определенный сигнал выбранному процессу, нужно ввести:kill номер PID выбранного процесса
Например, нам нужно завершить работу приложения Midnight Commander (mc).
Определим идентификатор процесса mc:ps -e | grep mc
Пусть PID= 11597.
Linux Команды LS и LL используют методы и основные различия
Команда linux. ls с участием ll Как использовать:
ll:СписокТекущийПодробности файла или каталога, со временем, разрешения на чтение / запись, размер, время и т. Д., Подробная информация отображается как Windows. Л. Л. псевдоним «LS -L». Совсем в ярлыках в окнах. Может понять ll с участием ls -l Функция одинакова, ll да ls -l изПсевдоним。
ls:Только ЛУО перечисленыТекущийИмя файла или имя каталога похоже на список файлов в Windows.
Один,ll Да ls -l Способ просмотра псевдонима, используйте :(alias) Просмотр псевдонима.
два,ls Можно сказать, что команда находится под LinuxНаиболее используемоеОдна из команд.
Ls
-a Перечислите все файлы в каталоге, включая запуск скрытых файлов.-A Все файлы, кроме «». «И» и «..» отображаются.-k Представляет размер файла в виде K bytes.-l Перечислите детали файла.-s Выведите размер файла после каждого имени файла.-t Сортировать по времени.-u Сортировать к тому времени, доступ к в прошлый раз.-S Сортировать по размеру файла.-R Перечислите файлы во всех подкаталоге.-p -F К каждому имени файла прикреплено символ, чтобы объяснить тип файла.»*»:Представляет исполняемый нормальный файл;»/»:Каталог;“@”:Указывает на символическую ссылку;“|”:FIFOS;“=”:Указывает на розетки.-X Сортировать по расширению файла (последний.).-m Имя горизонтального выходного файла — «», нажмите.—color=no Цветное имя файла 1. синий-> Каталог 2. зеленый-> Исполняемый документ 3. красный-> Сжатый файл 4. Светло-синий-> файл ссылки 5. серый-> Другие файлы -b перечислены символы, в которых имя файла не выводится с обратной ячейкой (как на языке C).-c Собирается время модификации I узел выходного файла.-d отображает файл значка каталога, а не отображать файл под ним.Вся информация о выходном времени, а не извлекающаяся информация.-F -U не сортирует выходные файлы.-G бесполезно.Индекс информации I узема выходного файла.-n заменяет имя с количеством UID, GID.-O Отображает подробную информацию о групповой информации файла.-Q вместо неотъемлемого вывода.-R Сортировать по обратному каталогу.-x списки горизонтально, сбоку.-B не выводит резервный файл, заканчивающийся с помощью «~».-C Выход отсортирован в вертикальном выходе.-G информация группы выходных файлов.-L Перечисляет имя файла ссылки вместо файла, который связан.-N не ограничивает длину файла.-Q помещает выходное имя файла двойным цитатам.-1 линия только выводит файл.- Справка отображает справочную информацию о стандартном выходе.—Version выводы информации о версии на стандартном выходе и выходах.
В-третьих, экземпляр
-F Тип файла (тип файла). Добавьте символ после каждого элемента списка. Эти символы включают в себя:
/ :Указывает, что это каталог;@ :Указывает, что это символическая ссылка на другие файлы;* :Указывает, что это исполняемый файл.
1. Запрос под текущей папкойФайл каталога
$ ls -f | grep «/ $» # Запрос папки в текущем каталоге
$ ls -f | greep «/» # Запрос папки в текущем каталоге
$ ls -al | grep «^ d» # Запрос папки в текущем каталоге
2, запрос под текущей папкойфайл
$ ls -al | grep «^ -» # Запрос файлов в текущем каталоге
3, запросить текущую папкуСимволическая ссылка Файл
$ LS -F | GREP «@» # Запрос символический файл ссылок в текущем каталоге
4, запрос под текущей папкойзапускаемый файл
$ ls -f | grep «*» # Запрос исполняемого файла текущего каталога
5, запрос под текущей папкойКоличество файлов
$ LS -AL | GREP «^ -» | wc -l # queries Количество файлов в текущем каталоге
Linux Commune RSS Адрес: https://www.linuxIdc.com/rssfeed.aspxЭта статья постоянно обновляет адрес ссылки:https://www.linuxidc.com/Linux/2018-07/153131.htm
Использование тоннелей
Можно работать не только с файлами, но и перенаправлять вывод одной команды в качестве ввода другой. Это очень полезно для выполнения сложных операций. Например, выведем пять недавно измененных файлов:
ls -lt | head -n 5
С помощью утилиты xargs вы можете комбинировать команды таким образом, чтобы стандартный ввод передавался в параметры. Например, скопируем один файл в несколько папок:
echo test/ tmp/ | xargs -n 1 cp -v testfile.sh
Здесь параметр -n 1 задает, что для одной команды нужно подставлять только один параметр, а опция -v в cp позволяет выводить подробную информацию о перемещениях. Еще одна, полезная в таких случаях команда — это tee. Она читает данные из стандартного ввода и записывает в стандартный вывод или файлы. Например:
echo «Тест работы tee» | tee file1
В сочетании с другими командами все это может использоваться для создания сложных инструкций из нескольких команд.
Управление аккаунтами пользователей
Обычные и системные аккаунты
Имя пользователя (Username)Пароль:UID:GID:Поле комментариев (Comment field):Каталог (Directory):Оболочка (Shell):/sbin/nologinПример содержимого /etc/shadow.
Следующие поля определены в /etc/shadow:Имя для входа:Зашифрованный пароль:Дни с 1 января 1970 года, когда пароль последний раз изменялся:За несколько дней до того, как пароль может быть изменен:Дни, после которых пароль должен быть изменен:За несколько дней до истечения срока действия пароля пользователь получает предупреждение:Через несколько дней после истечения срока действия пароля эта учетная запись отключена:Дни с 1 января 1970 года эта учетная запись отключена:Зарезервированное поле, которое когда-то было добавлено «для будущего использования»:passwd chage
Изменение файлов конфигурации
vipwvipw -svigrПриятно знать, что vipw и vigr существуют, но лучше не использовать эти утилиты или что-либо еще, что напрямую открывает файлы конфигурации пользователя и группы. Вместо этого используйте такие инструменты, как useradd и groupmod.
Файлы конфигурации для управления пользователями по умолчанию
Список некоторых наиболее важных свойств, которые можно установить в /etc/login.defs:MOTD_FILE:ENV_PATH:PASS_MAX_DAYSPASS_MIN_DAYSPASS_WARN_AGEUID_MIN:CREATE_HOME:USERGROUPS_ENAB:
Создание пользовательской среды
Для создания пользовательской среды несколько файлов играют роль:
- /etc/profile: используется для настроек по умолчанию для всех пользователей при запуске оболочки входа;
- /etc/bashrc: используется для определения значений по умолчанию для всех пользователей при запуске подоболочки;
- ~/.profile: специальные настройки для одного пользователя, применяемые при запуске оболочки входа;
- ~/.bashrc: специальные настройки для одного пользователя, применяемые при запуске подоболочки.
В этом примере вы применяете общие решения для создания учетных записей пользователей.vim /etc/login.defsCREATE_HOMEUSERGROUPS_ENABcd /etc/skelmkdir Picturesmkdir Documentsexport EDITOR=/usr/bin/vimuseradd lindaid lindapasswd lindapasswd -n 30 -w 3 -x 90 linda-x 90-w 3-n 30for i in lisa lori bob; do useradd $i; donegrep lori /etc/passwd /etc/shadow/ etc/group
Каналы
Каналы используются для перенаправления потока из одной программы в другую. Стандартный вывод данных после выполнения одной команды перенаправляется в другую через канал. Данные первой программы, которые получает вторая программа, не будут отображаться. На дисплей терминала будут выведены только отфильтрованные данные, возвращаемые второй командой.
Пример
В результате каждый файл текущего каталога будет размещен на новой строке:
Перенаправлять данные с помощью каналов можно как из одной команды в другую, так и из одного файла к другому, а перенаправление с помощью > и >> возможно только для перенаправления данных в файлах.
Пример
Для сохранения имен файлов, содержащих строку «LOG», используется следующая команда:
Вывод команды dir отсылается в команду-фильтр find. Имена файлов, содержащие строку «LOG», хранятся в файле loglist в виде списка (например, Config.log, Logdat.svd и Mylog.bat).
При использовании нескольких фильтров в одной команде рекомендуется разделять их с помощью знака канала |.
Перенаправить вывод в файл
Все очень просто. Вы можете перенаправить вывод в файл с помощью символа >. Например, сохраним вывод команды top:
top -bn 5 > top.log
Опция -b заставляет программу работать в не интерактивном пакетном режиме, а n — повторяет операцию пять раз, чтобы получить информацию обо всех процессах. Теперь смотрим что получилось с помощью cat:
Символ «>» перезаписывает информацию из файла, если там уже что-то есть. Для добавления данных в конец используйте «>>». Например, перенаправить вывод в файл linux еще для top:
top -bn 5 >> top.log
По умолчанию для перенаправления используется дескриптор файла стандартного вывода. Но вы можете указать это явно. Эта команда даст тот же результат:
top -bn 5 1>top.log
Стандартный вывод
Стандартный вывод записывает данные, сгенерированные программой. Когда стандартный выходной поток не перенаправляется в какой-либо файл, он выводит текст на дисплей терминала.
При использовании без каких-либо дополнительных опций, команда echo выводит на экран любой аргумент, который передается ему в командной строке:
Аргументом является то, что получено программой, в результате на дисплей терминала будет выведено:
При выполнении echo без каких-либо аргументов, возвращается пустая строка.
Пример
Команда объединяет три файла: file1, file2 и file3 в один файл bigfile:
Команда cat по очереди выводит содержимое файлов, перечисленных в качестве параметров на стандартный поток вывода. Стандартный поток вывода перенаправлен в файл bigfile.
Выводы
Стандартные потоки ввода и вывода в Linux являются одним из наиболее распространенных средств для обмена информацией процессов, а перенаправление >, >> и | является одной из самых популярных конструкций командного интерпретатора.
В данной статье мы ознакомимся с возможностями перенаправления потоков ввода/вывода, используемых при работе файлами и командами.
Linux система, например, Ubuntu 16.04
Стандартный ввод при работе пользователя в терминале передается через клавиатуру.
Стандартный вывод и стандартная ошибка отображаются на дисплее терминала пользователя в виде текста.
Ввод и вывод распределяется между тремя стандартными потоками:
- stdin — стандартный ввод (клавиатура)
- stdout — стандартный вывод (экран)
- stderr — стандартная ошибка (вывод ошибок на экран)
Потоки также пронумерованы:
Из стандартного ввода команда может только считывать данные, а два других потока могут использоваться только для записи. Данные выводятся на экран и считываются с клавиатуры, так как стандартные потоки по умолчанию ассоциированы с терминалом пользователя. Потоки можно подключать к чему угодно: к файлам, программам и даже устройствам. В командном интерпретаторе bash такая операция называется перенаправлением:
- file — Направить стандартный поток вывода в файл. Если файл не существует, он будет создан, если существует — перезаписан сверху
- 2> file — Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан, если существует — перезаписан сверху
- >>file — Направить стандартный поток вывода в файл. Если файл не существует, он будет создан, если существует — данные будут дописаны к нему в конец
- 2>>file — Направить стандартный поток ошибок в файл. Если файл не существует, он будет создан, если существует — данные будут дописаны к нему в конец
- &>file или >&file — Направить стандартный поток вывода и стандартный поток ошибок в файл. Другая форма записи: >file 2>&1