# Core utilities (Русский)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.

Ссылки по теме

- Командная оболочка
- Пользователи и группы
- systemd (Русский)
- pacman (Русский)
- Основные рекомендации

Состояние перевода: На этой странице представлен перевод статьи 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 || zoxideAUR

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

#### Поиск кода

Следующие три инструмента предназначены для замены 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 || percol, percol-gitAUR

- skim — Написанный на Rust fuzzy-поисковик, похожий на fzf.

  https://github.com/lotabout/skim || skim, skim-gitAUR

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

- Документация GNU Coreutils
- Утилиты POSIX

Categories:

- Command-line (Русский)
- Lists of software (Русский)