- Core utilities (Русский)
- Contents
- Основные
- Предотвращение потери данных
- Второстепенные
- Альтернативы
- Альтернативы cd
- Альтернативы cp
- Альтернативы ls
- Альтернативы find
- Альтернативы diff
- Альтернативы grep
- Поиск кода
- find command in Linux with examples
- Команда find в Linux – мощный инструмент сисадмина
- Поиск по имени
- Поиск по типу файла
- Поиск по размеру файла
- Единицы измерения файлов:
- Поиск пустых файлов и каталогов
- Поиск времени изменения
- Поиск по времени доступа
- Поиск по имени пользователя
- Поиск по набору разрешений
- Операторы
- Действия
- -delete
- Заключение
Core utilities (Русский)
Основные утилиты (core utilities) — набор базовых, фундаментальных инструментов операционной системы GNU/Linux. В статье дан неполный обзор этих утилит, приведены ссылки на документацию и перечислены полезные альтернативы. В основном (но не только) в статье рассматривается набор GNU coreutils. Большинство основных утилит являются традиционными инструментами Unix (см. Heirloom); многие из них были стандартизированы POSIX, но продолжили развиваться, расширяя свою функциональность.
Большинство интерфейсов командной строки задокументировано в man-страницах. Утилиты GNU Project используют для этой цели Info-мануалы, а в некоторых оболочках для справки по встроенным командам предусмотрена команда help . Кроме того, большинство утилит выводит краткую справочную информацию о себе при запуске с флагом —help .
Contents
Основные
Некоторые важные утилиты, с которыми должен быть знаком пользователь Arch Linux. См. также intro(1) .
Пакет | Утилита | Описание | Документация | Альтернативы |
---|---|---|---|---|
встроенные команды | cd | смена каталога | cd(1p) | #Альтернативы cd |
GNU coreutils | ls | вывод содержимого каталога | ls(1) , info | tree , #Альтернативы ls |
cat | вывод содержимого файлов в stdout | cat(1) , info | tac(1) , bat | |
mkdir | создание каталога | mkdir(1) , info | ||
rmdir | удаление пустого каталога | rmdir(1) , info | ||
rm | удаление файлов и каталогов | rm(1) , info | shred | |
cp | копирование файлов и каталогов | cp(1) , info | #Альтернативы cp | |
mv | перемещение файлов и каталогов | mv(1) , info | ||
ln | создание жёстких и символических ссылок | ln(1) , info | ||
chown | изменение владельца и группы файла | chown(1) , info | chgrp(1) | |
chmod | изменение прав доступа к файлу | chmod(1) , info | ||
dd | преобразование и копирование файла | dd(1) , info | ||
df | вывод информации об использовании файловой системой дискового пространства | df(1) , info | ||
GNU tar | tar | архиватор tar | tar(1) , info | архиваторы |
GNU less | less | постраничный просмотр в терминале | less(1) | программы постраничного просмотра |
GNU findutils | find | поиск файлов и каталогов | find(1) , info, GregsWiki | #Альтернативы find |
GNU diffutils | diff | построчное сравнение файлов | diff(1) , info | #Альтернативы diff |
GNU grep | grep | вывод строк, совпадающих с шаблоном | grep(1) , info | #Альтернативы grep |
GNU sed | sed | потоковый редактор | sed(1) , info, one-liners | |
GNU gawk | awk | язык поиска и обработки шаблонов | gawk(1) , info | nawk , mawk AUR |
util-linux | dmesg | вывод содержимого буфера ядра и управление им | dmesg(1) | журнал systemd |
lsblk | вывод информации о блочных устройствах | lsblk(8) | ||
mount | монтирование файловой системы | mount(8) | ||
umount | размонтирование файловой системы | umount(8) | ||
su | замена пользователя | su(1) | sudo, opendoas | |
kill | завершение процесса | kill(1) | pkill(1) , killall(1) | |
procps-ng | pgrep | поиск процесса по имени или атрибутам | pgrep(1) | pidof(1) |
ps | вывод информации о процессах | ps(1) | top(1) , htop | |
free | вывод информации о свободной/используемой памяти | free(1) |
Предотвращение потери данных
rm , mv , cp и перенаправления ввода/вывода в оболочке удаляют или перезаписывают файлы молча, не уведомляя пользователя. С флагом -i команды rm , mv и cp будут запрашивать разрешение перед каждым удалением/перезаписью. Некоторые предпочитают использовать этот флаг по умолчанию, создав соответствующий псевдоним. Тем не менее, такой подход чреват потенциальными проблемами, если в какой-то момент вы будете работать на другой системе или от другого пользователя, в которых подобный псевдоним отсутствует. Лучший способ защитить данные от случайного удаления — регулярно создавать резервные копии.
Второстепенные
Утилиты, которые также могут быть полезны.
Пакет | Утилита | Описание | Документация | Альтернативы |
---|---|---|---|---|
встроенные команды | alias | создание или вывод списка псевдонимов | alias(1p) | |
type | определение типа команды | type(1p) | which(1) | |
time | вывод времени выполнения команды | time(1p) | ||
GNU coreutils | tee | считывание stdin и запись в stdout и файлы | tee(1) , info | |
mktemp | создание временного файла или каталога | mktemp(1) , info | ||
cut | вывод отдельных частей строк | cut(1) , info | ||
tr | замена или удаление символов | tr(1) , info | ||
od | отображение файлов в восьмеричном и других форматах | od(1) , info | hexdump(1) , xxd(1) в vim | |
sort | сортировка строк | sort(1) , info | ||
uniq | поиск или исключение повторяющихся строк | uniq(1) , info | ||
comm | построчное сравнение двух отсортированных файлов | comm(1) , info | ||
head | вывод первых строк файла | head(1) , info | ||
tail | вывод последних строк файла или отслеживание изменений в файле | tail(1) , info | ||
wc | вывод количества строк, слов и байтов | wc(1) , info | ||
GNU binutils | strings | вывод содержащихся в двоичном файле текстовых строк | strings(1) , info | |
GNU glibc | iconv | конвертация кодировок символов | iconv(1) | recode |
file | file | определение типа файла | file(1) |
Пакет moreutils содержит другие полезные инструменты вроде sponge(1) , которые не вошли в GNU coreutils.
Альтернативы
Альтернативные основные утилиты предоставляются следующими пакетами: BusyBox, Heirloom Toolchest, 9base , sbase-git AUR и ubase-git AUR .
Альтернативы cd
- zoxide — Умная команда cd, которая изучает ваши привычки и позволяет перемещаться повсюду буквально несколькими нажатиями клавиш.
https://github.com/ajeetdsouza/zoxide || zoxide
Альтернативы cp
rsync#Как альтернатива cp/mv позволяет продолжить прерванную передачу файла, выводить состояние передачи, пропускать уже существующие файлы и проверять целостность итоговых файлов по контрольным суммам.
Альтернативы ls
- broot — Новый способ просмотра дерева каталогов и перемещения по нему.
https://github.com/Canop/broot || broot
- exa — Замена ls с поддержкой цветности, отображением дерева каталогов, интеграцией с git и другими возможностями.
https://github.com/ogham/exa || exa
- lsd — Современный ls с большим набором цветов и замечательными иконками.
https://github.com/Peltoche/lsd || lsd
Альтернативы find
- fd — Простая, быстрая и удобная альтернатива find. По умолчанию игнорирует скрытые файлы и файлы, указанные в .gitignore .
https://github.com/sharkdp/fd || fd
- fuzzy-find — Fuzzy-завершение имён файлов при поиске.
https://github.com/silentbicycle/ff || ff-gitAUR
- mlocate — Объединение locate и updatedb.
https://pagure.io/mlocate || mlocate
- plocate — Намного более быстрый locate.
https://plocate.sesse.net/ || plocate
Графические программы для поиска файлов перечислены в List of applications/Utilities#File searching.
Альтернативы diff
Некоторые программы предоставляют сравнение по словам, которого нет в diffutils :
- git diff выполняет сравнение по словам с флагом —color-words ; с флагом —no-index работает также и с файлами вне рабочего дерева Git.
- dwdiff — Фронт-енд для diff со сравнением по словам; поддержка цветности.
https://os.ghalkes.nl/dwdiff.html || dwdiff
- GNU wdiff — Реализация GNU diff со сравнением по словам; нет поддержки цветности.
https://www.gnu.org/software/wdiff/ || wdiff
- cwdiff — Обёртка для GNU wdiff с поддержкой цветности.
https://github.com/junghans/cwdiff || cwdiffAUR , cwdiff-gitAUR
- icdiff — diff с поддержкой цветности, написанный на Python. Название расшифровывается как «Improved color diff»; обычный режим работы diff также доступен.
https://github.com/jeffkaufman/icdiff || icdiffAUR , icdiff-gitAUR
Альтернативы grep
- mgrep — grep с многострочным поиском.
https://sourceforge.net/projects/multiline-grep/ || mgrepAUR
- pdfgrep — Инструмент для поиска текста в PDF-файлах.
https://pdfgrep.org/ || pdfgrep
- ripgrep-all — Поиск в текстовых файлах, а также в PDF, E-Book, документах Office, архивах zip и tar.gz.
https://github.com/phiresky/ripgrep-all || ripgrep-allAUR
Поиск кода
Следующие три инструмента предназначены для замены grep при поиске кода. По умолчанию используют рекурсивный поиск, пропускают двоичные файлы и учитывают .gitignore .
Источник
find command in Linux with examples
The find command in UNIX is a command line utility for walking a file hierarchy. It can be used to find files and directories and perform subsequent operations on them. It supports searching by file, folder, name, creation date, modification date, owner and permissions. By using the ‘-exec’ other UNIX commands can be executed on files or folders found.
Syntax :
Options :
- -exec CMD: The file being searched which meets the above criteria and returns 0 for as its exit status for successful command execution.
- -ok CMD : It works same as -exec except the user is prompted first.
- -inum N : Search for files with inode number ‘N’.
- -links N : Search for files with ‘N’ links.
- -name demo : Search for files that are specified by ‘demo’.
- -newer file : Search for files that were modified/created after ‘file’.
- -perm octal : Search for the file if permission is ‘octal’.
- -print : Display the path name of the files found by using the rest of the criteria.
- -empty : Search for empty files and directories.
- -size +N/-N : Search for files of ‘N’ blocks; ‘N’ followed by ‘c’can be used to measure size in characters; ‘+N’ means size > ‘N’ blocks and ‘-N’ means size My Personal Notes arrow_drop_up
Источник
Команда find в Linux – мощный инструмент сисадмина
Иногда критически важно быстро найти нужный файл или информацию в системе. Порой можно ограничиться стандартами функциями поиска, которыми сейчас обладает любой файловый менеджер, но с возможностями терминала им не сравниться.
Команда find – это невероятно мощный инструмент, позволяющий искать файлы не только по названию, но и по:
- Дате добавления.
- Содержимому.
- Регулярным выражениям.
Данная команда будет очень полезна системным администраторам для:
- Управления дисковым пространством.
- Бэкапа.
- Различных операций с файлами.
Команда find в Linux производит поиск файлов и папок на основе заданных вами критериев и позволяет выполнять действия с результатами поиска.
Синтаксис команды find:
- directory-to-search (каталог поиска) – это отправной каталог, с которой find начинает поиск файлов по всем подкаталогам, которые находятся внутри. Если не указать путь, тогда поиск начнется в текущем каталоге;
- criteria (критерий) – критерий, по которым нужно искать файлы;
- action (действие) – что делать с каждым найденным файлом, соответствующим критериям.
Поиск по имени
Следующая команда ищет файл s.txt в текущем каталоге:
- . (точка) – файл относится к нынешнему каталогу
- -name – критерии по которым осуществляется поиск. В данном случае поиск по названию файла.
В данном случае критерий -name учитывает только символы нижнего регистра и файл S.txt не появиться в результатах поиска. Чтобы убрать чувствительность к регистру необходимо использовать –iname.
Для поиска всех изображений c расширением .png нужно использовать шаблон подстановки *.png:
Можно использовать название каталога для поиска. Например, чтобы с помощью команды find найти все png изображения в каталоге home:
Если выдает слишком много ошибок в отказе разрешения, тогда можно добавить в конец команды – 2> /dev/null. Таким образом сообщения об ошибках будут перенаправляться по пути dev/null, что обеспечит более чистую выдачу.
Поиск по типу файла
Критерий -type позволяет искать файлы по типу, которые бывают следующих видов:
- f – простые файлы;
- d – каталоги;
- l – символические ссылки;
- b – блочные устройства (dev);
- c – символьные устройства (dev);
- p – именованные каналы;
- s – сокеты;
Например, указав критерий -type d будут перечислены только каталоги:
Поиск по размеру файла
Допустим, что вам необходимо найти все большие файлы. Для таких ситуаций подойдет критерий -size.
- «+» — Поиск файлов больше заданного размера
- «-» — Поиск файлов меньше заданного размера
- Отсутствие знака означает, что размер файлов в поиске должен полностью совпадать.
В данном случае поиск выведет все файлы более 1 Гб (+1G).
Единицы измерения файлов:
Поиск пустых файлов и каталогов
Критерий -empty позволяет найти пустые файлы и каталоги.
Поиск времени изменения
Критерий -cmin позволяет искать файлы и каталоги по времени изменения. Для поиска всех файлов, измененных за последний час (менее 60 мин), нужно использовать -60:
Таким образом можно найти все файлы в текущем каталоге, которые были созданы или изменены в течение часа (менее 60 минут).
Для поиска файлов, которые наоборот были изменены в любое время кроме последнего часа необходимо использовать +60.
Поиск по времени доступа
Критерий -atime позволяет искать файлы по времени последнего доступа.
Таким образом можно найти файлы, к которым не обращались последние полгода (180 дней).
Поиск по имени пользователя
Опция –user username дает возможность поиска всех файлов и каталогов, принадлежащих конкретному пользователю:
Таким образом можно найти все файлы пользователя tisha в каталоге home, а 2>/dev/null сделает выдачу чистой без ошибок в отказе доступа.
Поиск по набору разрешений
Критерий -perm – ищет файлы по определенному набору разрешений.
Поиск файлов с разрешениями 777.
Операторы
Для объединения нескольких критериев в одну команду поиска можно применять операторы:
Например, чтобы найти файлы размером более 1 Гбайта пользователя tisha необходимо ввести следующую команду:
Если файлы могут принадлежать не только пользователю tisha, но и пользователю pokeristo, а также быть размером более 1 Гбайта.
Перед скобками нужно поставить обратный слеш «\».
Действия
К команде find можно добавить действия, которые будут произведены с результатами поиска.
- -delete — Удаляет соответствующие результатам поиска файлы
- -ls — Вывод более подробных результатов поиска с:
- Размерами файлов.
- Количеством inode.
- -print Стоит по умолчанию, если не указать другое действие. Показывает полный путь к найденным файлам.
- -exec Выполняет указанную команду в каждой строке результатов поиска.
-delete
Полезен, когда необходимо найти и удалить все пустые файлы, например:
Перед удалением лучше лишний раз себя подстраховать. Для этого можно запустить команду с действием по умолчанию -print.
Данное действие является особенным и позволяет выполнить команду по вашему усмотрению в результатах поиска.
- command – это команда, которую вы желаете выполнить для результатов поиска. Например:
- rm
- mv
- cp
- <> – является результатами поиска.
- \; — Команда заканчивается точкой с запятой после обратного слеша.
С помощью –exec можно написать альтернативу команде –delete и применить ее к результатам поиска:
Другой пример использования действия -exec:
Таким образом можно скопировать все .jpg изображения в каталог backups/fotos
Заключение
Команду find можно использовать для поиска:
- Файлов по имени.
- Дате последнего доступа.
- Дате последнего изменения.
- Имени пользователя (владельца файла).
- Имени группы.
- Размеру.
- Разрешению.
- Другим критериям.
С полученными результатами можно сразу выполнять различные действия, такие как:
- Удаление.
- Копирование.
- Перемещение в другой каталог.
Команда find может сильно облегчить жизнь системному администратору, а лучший способ овладеть ей – больше практиковаться.
Источник