Работа с командной строкой Linux. Полезные утилиты.

21 марта 2020 18:00
456
0

Работа с командной строкой Linux. Полезные утилиты.GNU/Linux, впрочем как и любая другая UNIX-подобная операционная система, славиться широкими возможностями командной строки. Часто набрать команду на перемещение файлов или очистку каталога значительно быстрее, чем производить аналогичные действия при помощи файлового менеджера. При этом и само действие выполнится быстрее. Иногда разница в скорости работы программ оказывается весьма существенной, чтобы не отдать предпочтение использованию терминала.

Использование конвейеров в Linux. Поиск самых больших директорий в системе.

Скорость это только одно из преимуществ управления системой при помощи ввода команд. Не менее важным есть прием общения между программами при помощи так называемого конвейера. Рассмотрим пример как можно найти какие директории имеют самый большой размер:

du -a / | sort -n -r | head -n 10

Вышеупомянутая команда вызывает поочередно целые 3 программы, причем результат каждой передается на выполнение следующей. Первой идет вызов программы du — которая отобразит все файлы и папки в системе + их размер в байтах. Вторая (sort) — отсортирует их в обратном порядке в. Ну и последняя обрежет вывод до 10 строк.

Вторым примером использования конвейеров можно привести поиск по истории команд. К примеру следующая строка введенная в консоли отобразит список последних комманд, где фигурировало слово ssh.

history | grep ssh

Конвейер в Linux очень мощное средство. Зачастую их использование позволяет сделать, казалось бы, нереальные операции с системой.

Перенаправление linux команд. Сохранение результатов работы программ в файл.

Второй полезной фишкой командной строки linux является перенаправление вывода программ в файл. Делается это довольно просто — достаточно после вызова программы поставить > [путь_к_файлу]. Примером может служить создание дампа mysql:

mysqldump -u root -p db_name > dump.sql

В результате выполнения данной комманды будет создан файл dump.sql, в который запишется дамп базы данных db_name.

Если файл dump.sql уже существует, он будет перезаписан. Для того чтобы реализовать добавление данных в конец файла, нужно указать символ > дважды. Пример:

echo $USER > info.log
uname -a » info.log

Первая команда создаст файл info.log и запишет в него имя текущего пользователя системы. Вторая — допишет всю информацию про операционную систему.

Автодополнение ввода.

Почти все оболочки позволяют использовать автодополнение ввода команды или пути к файлу или директории. Для этого достаточно начать ввод и нажать клавишу tab.

Создание загрузочной флешки linux. Снятие образа диска.

Часто возникает необходимость создания загрузочной флешки. В интернете можно найти множество программ с GUI, но я в своей практике использую стандартную утилиту dd.

dd if=/path/to/file.iso of=/dev/sdc bs=10M

в параметре if (Input File) указывается файл или устройство (что в Linux можно считать одним и тем же) с которого необходимо считать данные. Второй параметр of (Output File) указывает куда нужно записать данные, bs — какими порциями производить чтение/запись. Если предполагается чтение с файла или запись в него, путь можно указать относительный.

Для снятия образа с диска (например cd) также можно воспользоваться командой:

dd if=/dev/cdrom of=image.iso

Если диск поцарапан и при попытке создать образ выскакивают ошибка, стоит попробовать добавить аргумент параметр conv со значением noerror:

dd if=/dev/cdrom of=image.iso conv=noerror

Смонтировать iso-образ также можно прямо с командной строки, воспользовавшись стандартной программой mount:

mount -o loop file.iso /mnt/iso_drive

Если монтирование не удается, можно попробовать разбить процесс на 2 шага:

losetup -e /dev/loop0 file.iso
mount /dev/loop0 /mnt/iso_drive

Отдельного внимания заслуживают терминальные мультиплексоры. Они позволяют разбить окно консоли на несколько панелей. В рамках SSH сессий подобный функционал сильно облегчает работу. Самым популярным является tmux.

Как видно очень много операций в ОС GNU/Linux можно сделать воспользовавшись стандартными утилитами.

Похожие статьи