Core utilities (Русский)

From ArchWiki
Состояние перевода: На этой странице представлен перевод статьи Core utilities. Дата последней синхронизации: 10 июля 2021. Вы можете помочь синхронизировать перевод, если в английской версии произошли изменения.

Основные утилиты (core utilities) — набор базовых, фундаментальных инструментов операционной системы GNU/Linux. В статье дан неполный обзор этих утилит, приведены ссылки на документацию и перечислены полезные альтернативы. В основном (но не только) в статье рассматривается набор GNU coreutils. Большинство основных утилит являются традиционными инструментами Unix (см. Heirloom); многие из них были стандартизированы POSIX, но продолжили развиваться, расширяя свою функциональность.

Большинство интерфейсов командной строки задокументировано в man-страницах. Утилиты GNU Project используют для этой цели Info-мануалы, а в некоторых оболочках для справки по встроенным командам предусмотрена команда help. Кроме того, большинство утилит выводит краткую справочную информацию о себе при запуске с флагом --help.

Основные

Некоторые важные утилиты, с которыми должен быть знаком пользователь 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, mawkAUR
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-gitAUR и ubase-gitAUR.

Альтернативы 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

См. также List of applications/Utilities#Comparison, diff, merge.

Альтернативы 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-all

Поиск кода

Следующие три инструмента предназначены для замены grep при поиске кода. По умолчанию используют рекурсивный поиск, пропускают двоичные файлы и учитывают .gitignore.

  • ack — Написанная на Perl замена grep для программистов с большим деревом разнородных файлов с исходным кодом.
https://beyondgrep.com/ || ack
  • ripgrep (rg) — Инструмент поиска, который соединил в себе удобство ag и скорость grep.
https://github.com/BurntSushi/ripgrep || ripgrep
  • The Silver Searcher (ag) — Инструмент поиска кода, схожий с Ack, но более быстрый.
https://github.com/ggreer/the_silver_searcher || the_silver_searcher

Интерактивные фильтры

  • fzf — Универсальный fuzzy-поисковик на основе find для работы в командной строке.
https://github.com/junegunn/fzf || fzf, fzf-gitAUR
  • fzy — Быстрый, простой поисковик текста с хорошим алгоритмом поиска.
https://github.com/jhawthorn/fzy || fzy, fzy-gitAUR
  • peco — Упрощённый инструмент для интерактивной фильтрации.
https://github.com/peco/peco || peco, peco-gitAUR
  • percol — Добавляет интерактивную фильтрацию к традиционной концепции конвейера UNIX-оболочки.
https://github.com/mooz/percol || percolAUR, percol-gitAUR
  • skim — Написанный на Rust fuzzy-поисковик, похожий на fzf.
https://github.com/lotabout/skim || skim, skim-gitAUR

Смотрите также