Команды Linux · 2 min read · Jan 11, 2026
Учебник по команде Linux shuf для начинающих (с примерами)

Если вы когда-либо играли в карты, вы, вероятно, знакомы с термином перетасовка. Немного сложно представить, но существует инструмент командной строки Linux, который именно это и делает с строками в файлах. В этом учебнике мы обсудим основы команды ‘shuf’, используя несколько простых для понимания примеров.
Но прежде чем мы это сделаем, стоит упомянуть, что все примеры здесь были протестированы на машине с Ubuntu 18.04 LTS.
Команда shuf в Linux
Команда shuf в Linux позволяет вам генерировать случайные перестановки. Вот её синтаксис:
shuf [OPTION]... [FILE]А вот как страница man инструмента объясняет это:
Запишите случайную перестановку входных строк в стандартный вывод.Следуют некоторые примеры в формате вопросов и ответов, которые должны дать вам лучшее представление о том, как работает команда shuf.
Вопрос 1. Как использовать команду shuf?
Основное использование очень простое. Просто передайте имя файла в качестве входных данных. Вот пример:
shuf test.txtТеперь файл test.txt содержит следующие строки:
1
2
3
4
5
6
7
8
9Но команда shuf выше выдала следующий вывод:
3
4
6
5
1
8
2
7
9Таким образом, вы можете видеть, что строки были перемешаны.
Вопрос 2. Как ограничить количество строк в выводе?
Если вы хотите ограничить количество строк в выводе shuf, используйте параметр командной строки -n, который требует от вас передать число, представляющее максимальное количество строк, которое вы хотите в выводе.
Например:
shuf -n 3 test.txtВышеуказанная команда выдала следующий вывод:
6
4
9Вопрос 3. Как разрешить повторение строк в выводе?
Предположим, что входной файл содержит 9 строк, но вы хотите, чтобы shuf выдал больше строк, чем это (используя параметр -n, обсужденный выше). Это можно сделать с помощью параметра -r.
-r, --repeat
выходные строки могут повторятьсяИтак, если вы хотите, чтобы shuf выдал 25 строк в выводе, выполните следующую команду:
shuf -r -n 25 test.txtВот вывод, который выдала эта команда:
6
8
4
5
9
3
3
1
2
5
7
5
9
5
8
5
2
8
8
7
4
4
8
5
3Вопрос 4. Как заставить shuf рассматривать входные аргументы как строки?
Для этого используйте параметр командной строки -e. Вот пример:
shuf -e 1 2 3 4 5 6 7 8 9Вот вывод, который выдала эта команда:
9
1
7
8
6
2
3
5
4Заключение
Согласен, shuf не тот инструмент, который вам нужен каждый день, но нет ничего плохого в том, чтобы узнать об этом утилите, особенно поскольку его кривая обучения не так уж и крута. Как только вы закончите практиковаться в том, что мы обсудили здесь, перейдите на страницу man инструмента, чтобы узнать о нем больше.
Get new posts in your inbox
No spam. Unsubscribe anytime.