Команды ввода-вывода, общие принципы командной оболочки
Командная оболочка (shell) в Linux/Unix — это интерфейс, который позволяет пользователю взаимодействовать с операционной системой с помощью текстовых команд. Важной частью работы с командной оболочкой является использование команд ввода-вывода для обработки данных и файлов.
Общие принципы работы с командной оболочкой
Командная оболочка выполняет следующие основные функции:
Прием команд от пользователя.
Запуск программ.
Обработка и управление потоками ввода-вывода.
Интерпретация специальных символов и конструкций (например, подстановки и перенаправления).
Основные команды ввода-вывода
Команды ввода-вывода позволяют управлять файлами, текстом и потоками данных. Рассмотрим основные команды и их использование.
Команды для работы с файлами и директориями:
cat
(concatenate)Выводит содержимое файла на экран.
Пример:
less
иmore
Постраничный просмотр содержимого файлов.
less
более функционален, чемmore
.Пример:
head
иtail
head
выводит первые строки файла (по умолчанию 10), аtail
— последние строки.Пример:
cp
(copy)Копирует файлы или директории.
Пример:
mv
(move)Перемещает или переименовывает файлы или директории.
Пример:
rm
(remove)Удаляет файлы или директории.
Пример:
mkdir
иrmdir
mkdir
создаёт директорию, аrmdir
удаляет пустую директорию.Пример:
find
Ищет файлы и директории по критериям (имя, размер, дата и т.д.).
Пример:
touch
Создает пустой файл или обновляет временные метки существующего файла.
Пример:
Команды для работы с текстом:
echo
Выводит строку текста в терминал.
Пример:
grep
Ищет строки, соответствующие шаблону, в файлах или выводе других команд.
Пример:
awk
Мощный инструмент для обработки и анализа текстовых файлов. Часто используется для обработки данных в виде таблиц.
Пример:
sed
(stream editor)Используется для текстовой замены в файлах или выводе команд.
Пример:
sort
Сортирует строки файла или вывода по алфавиту или численно.
Пример:
uniq
Убирает дубликаты строк (обычно после сортировки).
Пример:
wc
(word count)Считает количество строк, слов и символов в файле.
Пример:
Перенаправление ввода-вывода
Перенаправление позволяет направлять стандартный ввод, вывод и вывод ошибок в файлы или другие команды.
>
— перенаправление стандартного вывода в файл (создает или перезаписывает файл).Пример:
>>
— перенаправление стандартного вывода в файл (добавляет к существующему содержимому).Пример:
<
— перенаправление стандартного ввода из файла.Пример:
2>
— перенаправление вывода ошибок в файл.Пример:
|
— пайп (pipe), перенаправляет вывод одной команды на вход другой.Пример:
Использование подстановок
Командная оболочка поддерживает несколько типов подстановок:
Подстановка команд — выполняет команду и подставляет результат на место команды:
Подстановка переменных — подставляет значение переменной:
Подстановка файлов — подставляет имена файлов, соответствующих шаблону:
Управление процессами
Командная оболочка позволяет управлять процессами (например, запущенными программами) напрямую из терминала.
Запуск в фоне — команда, запущенная с
&
в конце, будет выполняться в фоновом режиме:Остановка процесса — процесс можно остановить, нажав
Ctrl + Z
.Возобновление процесса — можно возобновить процесс в фоне с помощью команды
bg
или на переднем плане с помощьюfg
.
Скрипты оболочки (shell scripts)
Команды оболочки можно записывать в файл и запускать как скрипт.
Простой пример скрипта:
Чтобы запустить скрипт:
Сделайте его исполняемым:
Запустите:
Заключение
Командная оболочка в Linux/Unix — это мощный инструмент для управления системой и автоматизации задач. Знание базовых команд ввода-вывода, перенаправления потоков и принципов работы оболочки позволяет эффективно работать с файлами, текстом и процессами.
Last updated