diff --git a/pages.ru/common/find.md b/pages.ru/common/find.md new file mode 100644 index 00000000000000..c73497aa184d04 --- /dev/null +++ b/pages.ru/common/find.md @@ -0,0 +1,37 @@ +# find + +> Рекурсивно искать файлы или каталоги в дереве каталогов. +> Смотрите также: `fd`. +> Больше информации: . + +- Найти файлы по расширению: + +`find {{путь/к/каталогу}} -name '{{*.ext}}'` + +- Найти файлы, соответствующие нескольким шаблонам пути/имени: + +`find {{путь/к/каталогу}} -path '{{*/путь/*/*.ext}}' -or -name '{{*шаблон*}}'` + +- Найти каталоги по имени без учёта регистра: + +`find {{путь/к/каталогу}} -type d -iname '{{*lib*}}'` + +- Найти файлы по шаблону, исключив определённые пути: + +`find {{путь/к/каталогу}} -name '{{*.py}}' -not -path '{{*/site-packages/*}}'` + +- Найти файлы в заданном диапазоне размеров, ограничив глубину рекурсии до "1": + +`find {{путь/к/каталогу}} -maxdepth 1 -size {{+500k}} -size {{-10M}}` + +- Выполнить команду для каждого файла (используйте `{}` для подстановки имени файла): + +`find {{путь/к/каталогу}} -name '{{*.ext}}' -exec {{wc -l}} {} \;` + +- Найти все файлы, изменённые сегодня, и передать результаты одной команде как аргументы: + +`find {{путь/к/каталогу}} -daystart -mtime {{-1}} -exec {{tar -cvf archive.tar}} {} \+` + +- Найти пустые файлы или каталоги и удалить их с выводом: + +`find {{путь/к/каталогу}} -type {{f|d}} -empty -delete -print` diff --git a/pages.ru/common/less.md b/pages.ru/common/less.md new file mode 100644 index 00000000000000..3410fa201fdaf3 --- /dev/null +++ b/pages.ru/common/less.md @@ -0,0 +1,36 @@ +# less + +> Открывать файл для интерактивного чтения с возможностью прокрутки и поиска. +> Больше информации: . + +- Открыть файл: + +`less {{исходный_файл}}` + +- Прокрутить страницу вниз/вверх: + +`{{|}}` + +- Перейти в конец/начало файла: + +`{{|}}` + +- Найти строку вперёд (нажать ``/`` для перехода к следующему/предыдущему совпадению): + +`{{строка}}` + +- Найти строку назад (нажать ``/`` для перехода к следующему/предыдущему совпадению): + +`{{строка}}` + +- Включить слежение за выводом текущего открытого файла: + +`` + +- Открыть текущий файл в редакторе: + +`` + +- Выйти: + +`` diff --git a/pages.ru/common/scp.md b/pages.ru/common/scp.md new file mode 100644 index 00000000000000..a6a727533d3c80 --- /dev/null +++ b/pages.ru/common/scp.md @@ -0,0 +1,37 @@ +# scp + +> Безопасное копирование. +> Копировать файлы между хостами по протоколу Secure Copy через SSH. +> Больше информации: . + +- Скопировать локальный файл на удалённый хост: + +`scp {{путь/к/локальному_файлу}} {{удалённый_хост}}:{{путь/к/удалённому_файлу}}` + +- Указать порт для подключения к удалённому хосту: + +`scp -P {{порт}} {{путь/к/локальному_файлу}} {{удалённый_хост}}:{{путь/к/удалённому_файлу}}` + +- Скопировать файл с удалённого хоста в локальный каталог: + +`scp {{удалённый_хост}}:{{путь/к/удалённому_файлу}} {{путь/к/локальному_каталогу}}` + +- Рекурсивно скопировать содержимое каталога с удалённого хоста в локальный каталог: + +`scp -r {{удалённый_хост}}:{{путь/к/удалённому_каталогу}} {{путь/к/локальному_каталогу}}` + +- Скопировать файл между двумя удалёнными хостами через локальный: + +`scp -3 {{хост1}}:{{путь/к/удалённому_файлу}} {{хост2}}:{{путь/к/удалённому_каталогу}}` + +- Указать имя пользователя при подключении к удалённому хосту: + +`scp {{путь/к/локальному_файлу}} {{имя_пользователя}}@{{удалённый_хост}}:{{путь/к/удалённому_каталогу}}` + +- Указать закрытый SSH-ключ для аутентификации на удалённом хосте: + +`scp -i {{~/.ssh/закрытый_ключ}} {{путь/к/локальному_файлу}} {{удалённый_хост}}:{{путь/к/удалённому_файлу}}` + +- Использовать прокси при подключении к удалённому хосту: + +`scp -J {{имя_пользователя_прокси}}@{{хост_прокси}} {{путь/к/локальному_файлу}} {{удалённый_хост}}:{{путь/к/удалённому_файлу}}` diff --git a/pages.ru/common/sed.md b/pages.ru/common/sed.md new file mode 100644 index 00000000000000..781a5896a5f007 --- /dev/null +++ b/pages.ru/common/sed.md @@ -0,0 +1,17 @@ +# sed + +> Редактировать текст в скриптовом режиме. +> Смотрите также: `awk`, `ed`. +> Больше информации: . + +- Заменить все вхождения `apple` (базовый `regex`) на `mango` (базовый `regex`) во всех строках ввода и вывести результат в `stdout`: + +`{{команда}} | sed 's/apple/mango/g'` + +- Выполнить определённый файл ([f]ile) скрипта и вывести результат в `stdout`: + +`{{команда}} | sed -f {{путь/к/скрипту.sed}}` + +- Вывести только первую строку в `stdout`: + +`{{команда}} | sed -n '1p'` diff --git a/pages.ru/common/ssh-keygen.md b/pages.ru/common/ssh-keygen.md new file mode 100644 index 00000000000000..186bbefcb60546 --- /dev/null +++ b/pages.ru/common/ssh-keygen.md @@ -0,0 +1,37 @@ +# ssh-keygen + +> Генерировать ключи SSH для аутентификации, беспарольного входа и других целей. +> Смотрите также: `ssh-copy-id`. +> Больше информации: . + +- Сгенерировать ключ в интерактивном режиме: + +`ssh-keygen` + +- Сгенерировать ключ ed25519 с 32 раундами функции деривации и сохранить в определённый файл: + +`ssh-keygen -t {{ed25519}} -a {{32}} -f {{~/.ssh/имя_файла}}` + +- Сгенерировать ключ RSA 4096 бит с email в качестве комментария: + +`ssh-keygen -t {{rsa}} -b {{4096}} -C "{{комментарий|email}}"` + +- Удалить ключи хоста из файла known_hosts (полезно, когда у известного хоста новый ключ): + +`ssh-keygen -R {{удалённый_хост}}` + +- Получить отпечаток ключа в формате MD5 Hex: + +`ssh-keygen -l -E {{md5}} -f {{~/.ssh/имя_файла}}` + +- Изменить пароль ключа: + +`ssh-keygen -p -f {{~/.ssh/имя_файла}}` + +- Изменить формат ключа (например, из OPENSSH в PEM), файл будет перезаписан: + +`ssh-keygen -p -N "" -m {{PEM}} -f {{~/.ssh/закрытый_ключ_OpenSSH}}` + +- Извлечь открытый ключ из закрытого: + +`ssh-keygen -y -f {{~/.ssh/закрытый_ключ_OpenSSH}}`