GNU/Linux всё что нужно знать про bash. Часть 3

Апрель 14, 2018

Продолжаем забивать голову командами Линукс. Надеюсь вы ещё не забросили это гиблое дело и уверенно идёте к своей цели!

Цикл статей:
wc sort uniq cut tee tr split sed rename export alias
man pwd ls du cd touch mkdir ln rm rmdir history
cp scp mv dd diff diff3 md5sum
echo cat tac head tail more less ed nano vim
tar gzip gunzip bzip2 bunzip2 zip unzip
grep find locate which whereis file

cp scp mv dd diff diff3 md5sum

cp опции файл_или_каталог куда/ — Синтаксис копирования
cp file1 file2 file3 folder/ — копировать много файлов в каталог.
cp -i /home/adam/image.mpg /media/adam/folder/ — копируем image.mpg в каталог folder.
-r Копировать папку Linux рекурсивно, для папок с подпапками
-u Скопировать файл, только если он был изменён
-b Если файл уже существует сделать бекап и перезаписать (бекап будет иметь тоже имя с добавленной ~)
-p Сохранять владельца, временные метки и флаги доступа при копировании
-v Подробно показать что куда копируется

-f Перезаписывать существующие файлы
-i Спрашивать, нужно ли перезаписывать каждый файл
-n Не перезаписывать существующие файлы
-L Копировать не символические ссылки, а то, на что они указывают
-P Не следовать символическим ссылкам
-s Не выполнять копирование файлов в Linux, а создавать символические ссылки
-t Считать файл-приемник директорией и копировать файл-источник в эту директорию.

Поддерживает специальные символы замены * и ?. Для упрощения копирования можно использовать синтаксис фигурных скобок.
cp file{,2} — будет создан файл file2.
cp —attributes-only —preserve=all file1 file3 — скопирует только атрибуты file1 в file3.

scp — secure copy protocol.
scp опции пользователь1@хост1:файл пользователь2@хост2:файл — копируем с одного сервера на другой.
scp /home/user/file root@192.168.0.101:/root/file — копируем со своего пк на удалённый сервер.
scp root@192.168.0.101:/root/folder /home/user/ — копируем с удалённого сервера на свой пк.

-r Рекурсивное копирование директорий
-P Задать порт для копирования
-B Пакетный режим для передачи нескольких файлов
-C Включить сжатие

-1 Использовать протокол SSH1
-2 Использовать протокол SSH2
-l Установить ограничение скорости в кбит/сек
-o Задать нужную опцию SSH
-p Сохранять время модификации
-v Более подробный режим

mv — Перемещение (move), команда идентична cp и имеет аналогичные ключи (переименования в Linux нет, поэтому используя mv мы перемещаем файл и меняем его название).
-u Скопировать файл, только если он был изменён
-v Подробно показать что куда копируется
-b Если файл уже существует сделать бекап и перезаписать (бекап будет иметь тоже имя с добавленной ~)

-f Перезаписывать существующие файлы
-i Спрашивать, нужно ли перезаписывать каждый файл
-n Не перезаписывать существующие файлы
-t Считать файл-приемник директорией и копировать файл-источник в эту директорию
mv файл1 файл2 — Переименовывает файл1 в файл2.
mv директория1/* директория2 — Переместит всё содержимое из одной директории в другую.

dd утилита для копирования данных из одного файла в другой (if = input file, of = output file).
bs — Величина буфера, по умолчанию 512 байт (указывать не обязательно)
count — Количество блоков

dd if=/dev/zero of=file1 bs=1M count=1 — Создать 1 мб файл file1 и забить его нулями.
dd if=/dev/hdc of=/tmp/mycd.iso bs=2048 conv=notrunc — Создание ISO образов с диска CD-ROM.
dd if=/dev/cdrom of=image.iso conv=noerror — Создание ISO образов игнорируя ошибки чтения.
mount -o loop image.iso /mnt/image — Монтировать созданный образ.
dd if=dev/sdc of=/dev/sdd bs=4096 — Клонирование диска на другой диск
dd if=/dev/zero of=/dev/sdc — Забить диск нулями чтобы ничего нельзя было восстановить данные.
dd if=/dev/DEVICE | ssh user@host «dd of=/home/user/DEVICE.img» — Бекап раздела по сети.

diff file1 file2 — Сравнение двух файлов
-q Сообщить если файлы отличаются (если нет, ничего не выведет)
-s Выводить только совпадающие части
-y Выводить в две колонки
-a Сравнивать файлы как текстовые, даже если они не текстовые
-r Рекурсивное сравнение папок (сравнивать и подкаталоги)
-b Не учитывать пробелы
-B Не учитывать пустые строки
-i Игнорировать регистр
-с Выводить нужное количество строк при нахождении отличий (по умолчанию по 3 сверху и снизу).
Синтаксис вывода будет следующим:
‘!’ Строка, не совпадающая в двух файлах.
‘+’ Строка, которой нет соответствия в первом файле.
‘-‘ Строка, которой нет соответствия во втором файле.
a — добавлена (added)
d — удалена (delete)
c — изменена (changed)
Линии, которые отличаются, будут помечаться символом <, а те, которые совпадают — символом >.

diff3 file1 file2 file3 — Сравнение трёх файлов

md5sum file1 — Считаем контрольную сумму для файла file1 (не считает не имён, не атрибутов)
-c Выполнить проверку по файлу контрольных сумм;
-b Работать в двоичном формате;
-t Работать в текстовом формате;
-w Выводить предупреждения о неверно отформатированном файле сумм;
md5sum file1 > file1.md5 — сохранить результат в файл
md5sum -с file1.md5 — Выполнить проверку контрольной суммы на файл (при проверке будет искать файлы в текущем каталоге, также даст ошибку если файл переименован)

Теги статьи:
· ·
Категории статьи
Linux

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *