Полезные команды Linux: различия между версиями
Comminux (обсуждение | вклад) мНет описания правки |
Comminux (обсуждение | вклад) Описание теперь над командой |
||
| Строка 2: | Строка 2: | ||
== Базовые команды == | == Базовые команды == | ||
Включение возможности изменения раскладки клавиатуры через Alt + Shift. | |||
<code>setxkbmap -layout us,ru -option grp:alt_shift_toggle</code> | <code>setxkbmap -layout us,ru -option grp:alt_shift_toggle</code> | ||
Установить DPI для подключенного дисплея/монитора ([https://www.sven.de/dpi/ Подсчитать DPI можно тут]). | |||
<code>xrandr --output eDP1 --dpi 135.09</code> | <code>xrandr --output eDP1 --dpi 135.09</code> | ||
Удаленно запустить приложение на основном дисплее (X11). | |||
<code>DISPLAY=:0 anydesk</code> | <code>DISPLAY=:0 anydesk</code> | ||
== Файловые операции == | == Файловые операции == | ||
=== Общие команды === | === Общие команды === | ||
Запустить команду pwd -P в текущем каталоге и в поддиректориях. | |||
<code>find . -type d -exec sh -c 'cd -P -- "{}" && pwd -P' \;</code> | <code>find . -type d -exec sh -c 'cd -P -- "{}" && pwd -P' \;</code> | ||
Переименовать кириллические файлы в каталоге | |||
<code>find -mindepth 1 -exec sh -c 'mv "$1" "$(echo "$1" | iconv -f cp1252 -t cp850 | iconv -f cp866 )"' sh {} \;</code> | <code>find -mindepth 1 -exec sh -c 'mv "$1" "$(echo "$1" | iconv -f cp1252 -t cp850 | iconv -f cp866 )"' sh {} \;</code> | ||
=== Права доступа === | === Права доступа === | ||
Изменить владельца и группу для файла. | |||
<code>chown username:usergroup file.txt</code> | <code>chown username:usergroup file.txt</code> | ||
Показать режима доступа файла или папки в восьмеричной системе счисления Октал. | |||
<code>stat -c %a file.txt</code> | <code>stat -c %a file.txt</code> | ||
=== Оценка использования пространства накопителя === | |||
Общий отчёт об использовании пространства файловой системы. | |||
<code>df -h /</code> | <code>df -h /</code> | ||
Информация об использовании файлами и директориями пространства файловой системы. | |||
<code>du -h file.bin</code> | <code>du -h file.bin</code> | ||
Поиск 10 наибольших файлов и директорий с сортировкой по убыванию их размера. | |||
<code>du -ahx . | sort -rh | head -10</code> | <code>du -ahx . | sort -rh | head -10</code> | ||
=== Форматирование накопителя === | |||
Низкоуровневое форматирование накопителя. | |||
<code>sudo dd if=/dev/zero of=/dev/sdb bs=1M</code> | <code>sudo dd if=/dev/zero of=/dev/sdb bs=1M</code> | ||
Принудительно обновить таблицу разделов. | |||
<code>sudo partprobe</code> | <code>sudo partprobe</code> | ||
=== Архивы === | |||
==== Создание ==== | |||
Создать tar архив. | |||
<code>tar -cf archive.tar file1 file2</code> | |||
Создать tar архив с Gzip сжатием. | |||
<code>tar -czf archive.tar.gz file1 file2</code> | |||
Создать tar архив с Bz2 сжатием. | |||
<code>tar -cjf archive.tar.bz2 file1 file2</code> | |||
==== Просмотр содержимого ==== | |||
Посмотреть содержимое tar архива. | |||
<code>tar -tf archive.tar</code> | |||
Посмотреть содержимое Zip архива | |||
<code>unzip -l Архив.zip</code> | |||
Посмотреть содержимое Zip архива с кириллическими именами в названии файлов. | |||
<code>unzip -l Архив.zip | grep -aEv '^Archive:' | iconv -f iso8859-1 -t cp850 | iconv -f cp866</code> | <code>unzip -l Архив.zip | grep -aEv '^Archive:' | iconv -f iso8859-1 -t cp850 | iconv -f cp866</code> | ||
==== Распаковка ==== | |||
Распаковать tar архив в текущую директорию. | |||
<code>tar -xf archive.tar</code> | |||
Распаковать tar архив в требуемую директорию. | |||
<code>tar -xf archive.tar -C ~/folder</code> | |||
=== Portable Document Format (PDF) === | === Portable Document Format (PDF) === | ||
Склеить несколько pdf файлов в один. | |||
<code>pdftk A=1.pdf B=2.pdf cat A1 B2-4 output Result.pdf</code> | <code>pdftk A=1.pdf B=2.pdf cat A1 B2-4 output Result.pdf</code> | ||
Разрезать pdf по листам. | |||
<code>pdftoppm Input.pdf outputname -png</code> | <code>pdftoppm Input.pdf outputname -png</code> | ||
=== Изображения === | === Изображения === | ||
==== ExifTool ==== | ==== ExifTool ==== | ||
Прочитать EXIF атрибуты. | |||
<code>exiftool 1.jpg</code> | <code>exiftool 1.jpg</code> | ||
Удалить все EXIF атрибуты. | |||
<code>exiftool -all= 2.jpg</code> | <code>exiftool -all= 2.jpg</code> | ||
==== ImageMagick ==== | |||
Изменить размер изображения | |||
<code>convert 3.jpg -resize 128x128 1.png</code> | <code>convert 3.jpg -resize 128x128 1.png</code> | ||
Перевернуть изображение | |||
<code>convert 4.jpg -rotate 90 2.jpg</code> | <code>convert 4.jpg -rotate 90 2.jpg</code> | ||
Конвертировать изображение в pdf файл | |||
<code>convert 5.jpg Result.pdf</code> | <code>convert 5.jpg Result.pdf</code> | ||
Конвертировать изображение в pdf файл | Конвертировать изображение в pdf файл с параметрами формата листа и заполнения заднего фона. | ||
<code>convert 6.jpg -background white -page a4 Output.pdf</code> | <code>convert 6.jpg -background white -page a4 Output.pdf</code> | ||
==== SANE ==== | ==== SANE ==== | ||
Получить изображение со сканера или МФУ. | |||
<code>scanimage --format=png --output-file test.png --progress</code> | <code>scanimage --format=png --output-file test.png --progress</code> | ||
=== Видео === | === Видео === | ||
==== FFmpeg ==== | ==== FFmpeg ==== | ||
Кодировать видео с наложением субтитров (Создание хардсаба). | |||
<code>ffmpeg -i "Made_in_Abyss_Retsujitsu_no_Ougonkyou_[02]_[AniLibria_TV]_[WEBRip_1080p].mkv" -vf subtitles="02.ass" -c:v libx264 -crf 23 -c:a aac -b:a 192k output-02.mp4</code> | <code>ffmpeg -i "Made_in_Abyss_Retsujitsu_no_Ougonkyou_[02]_[AniLibria_TV]_[WEBRip_1080p].mkv" -vf subtitles="02.ass" -c:v libx264 -crf 23 -c:a aac -b:a 192k output-02.mp4</code> | ||
Кодировать видео с наложением субтитров | Кодировать видео с наложением субтитров и сделать 2-ую аудио-дорожку основной. | ||
<code>ffmpeg -i "Made_in_Abyss_Retsujitsu_no_Ougonkyou_[03]_[AniLibria_TV]_[WEBRip_1080p].mkv" -vf subtitles="03.ass" -map 0:0 -map 0:2 -c:v libx264 -crf 23 -c:a:2 aac -b:a 192k output-03.mp4</code> | <code>ffmpeg -i "Made_in_Abyss_Retsujitsu_no_Ougonkyou_[03]_[AniLibria_TV]_[WEBRip_1080p].mkv" -vf subtitles="03.ass" -map 0:0 -map 0:2 -c:v libx264 -crf 23 -c:a:2 aac -b:a 192k output-03.mp4</code> | ||
==== MKVToolNix ==== | |||
Извлечь 4-ую дорожку (счёт ведётся с нуля) содержащую встроенные субтитры. | |||
<code>mkvextract tracks Made_in_Abyss_Retsujitsu_no_Ougonkyou_\[03\]_\[AniLibria_TV\]_\[WEBRip_1080p\].mkv 4:AniLibria_TV-03.ass</code> | <code>mkvextract tracks Made_in_Abyss_Retsujitsu_no_Ougonkyou_\[03\]_\[AniLibria_TV\]_\[WEBRip_1080p\].mkv 4:AniLibria_TV-03.ass</code> | ||
== Сетевые команды == | == Сетевые команды == | ||
Отобразить информацию о сетевых соединениях. | Отобразить информацию о сетевых соединениях. | ||
<code> | <code>netstat -na</code> | ||
Импорт OpenVPN профиля в NetworkManager. | Импорт OpenVPN профиля в NetworkManager. | ||
<code> | <code>nmcli connection import type openvpn file ~/VPNs/name.ovpn</code> | ||
Послать Wake-on-LAN пакет на удаленную машину. | Послать Wake-on-LAN пакет на удаленную машину. | ||
<code> | <code>wol 00:00:00:00:00:00 -h example.com -p 9</code> | ||
Оптимизированная передача изображения с удаленного X сервера. | Оптимизированная передача изображения с удаленного X сервера. | ||
<code> | <code>ssh -X comminux@example.com -c chacha20-poly1305@openssh.com -C</code> | ||
Найти GET запросы в директории логов сервера Nginx, которые характерны DoS-атакам. | Найти GET запросы в директории логов сервера Nginx, которые характерны DoS-атакам. | ||
<code> | <code>sudo grep -r '"-" "-"' /var/log/nginx</code> | ||
Загрузить копию веб-сайта и другие страницы посредством рекурсивного прохода по найденным веб-ссылкам. | Загрузить копию веб-сайта и другие страницы посредством рекурсивного прохода по найденным веб-ссылкам. | ||
Полное описание параметров команды: https://pingvinus.ru/note/wget-download-sites | Полное описание параметров команды: https://pingvinus.ru/note/wget-download-sites | ||
<code>wget -r -k -l 2 -p -E -nc http://site.com/</code> | |||
=== Настройка файрвола === | === Настройка файрвола === | ||
==== UFW - Uncomplicated Firewall ==== | ==== UFW - Uncomplicated Firewall ==== | ||
Используется по умолчанию в Ubuntu. | Используется по умолчанию в Ubuntu. | ||
Отобразить список активных правил в файрволе UFW. | |||
<code>sudo ufw status numbered</code> | <code>sudo ufw status numbered</code> | ||
Удалить 7-е правило. | |||
<code>sudo ufw delete 7</code> | <code>sudo ufw delete 7</code> | ||
Создать новое правило блокировки IP и поместить его в начало списка. Если не соблюдать порядок блокирующих (DENY) и разрешающих правил (ALLOW), то добавленные правила могут не исполняться. | |||
<code>sudo ufw insert 1 deny from 52.185.71.28 to any</code> | <code>sudo ufw insert 1 deny from 52.185.71.28 to any</code> | ||
== Виртуализация == | == Виртуализация == | ||
=== Контейнеры === | === Контейнеры === | ||
==== Docker ==== | ==== Docker ==== | ||
Собрать новый образ из Dockerfile, расположенного в текущей директории. | |||
<code>sudo docker buildx build --platform=linux/amd64 .</code> | <code>sudo docker buildx build --platform=linux/amd64 .</code> | ||
Отобразить список всех контейнеров. | |||
<code>sudo docker ps -a</code> | <code>sudo docker ps -a</code> | ||
Отобразить список | Отобразить список загруженных или собранных образов. | ||
<code>sudo docker images</code> | <code>sudo docker images</code> | ||
Открыть bash сессию в запущенном контейнере | |||
<code>sudo docker exec -it container_id bash</code> | <code>sudo docker exec -it container_id bash</code> | ||
Создать контейнер и запустить в нём bash-сессию. Параметр image_id является хэш указателем или тэгом уникального образа. | |||
<code>sudo docker run -it image_id bash</code> | <code>sudo docker run -it image_id bash</code> | ||
Удалить контейнер с данными. | |||
<code>sudo docker container rm container_id</code> | <code>sudo docker container rm container_id</code> | ||
Удалить | Удалить образ. | ||
<code>sudo docker rmi image_id</code> | <code>sudo docker rmi image_id</code> | ||
== Менеджер загрузки EFI == | == Менеджер загрузки EFI == | ||
=== efibootmgr === | === efibootmgr === | ||
==== Восстановление загрузочной записи ==== | |||
Обычно восстановление загрузочной записи загрузчика '''systemd-boot''' требуется после обновления прошивки (BIOS) материнской платы. | |||
<code>efibootmgr -c -d /dev/sdX -p Y -l "\EFI\systemd\systemd-bootx64.efi" -L "Linux Boot Manager"</code> | <code>efibootmgr -c -d /dev/sdX -p Y -l "\EFI\systemd\systemd-bootx64.efi" -L "Linux Boot Manager"</code> | ||
==== Очистка и сортировка загрузочных записей ==== | ==== Очистка и сортировка загрузочных записей ==== | ||
Отобразить очередь загрузки. | |||
<code>efibootmgr</code> | <code>efibootmgr</code> | ||
Удалить 4-ую запись из очереди загрузки. | |||
<code>efibootmgr -b 4 -B</code> | <code>efibootmgr -b 4 -B</code> | ||
Изменить порядок загрузки. | |||
<code>efibootmgr -o 0,1,2</code> | <code>efibootmgr -o 0,1,2</code> | ||
== Android == | == Android == | ||
=== Android Debug Bridge (adb) === | === Android Debug Bridge (adb) === | ||
Создать резервную копию данных выбранного приложения. После ввода команды потребуется выполнить подтверждение операции на самом устройстве. Некоторые приложения могут иметь флаг запрещающий создание подобных резервных копий. | |||
<code>adb backup -noapk com.unciv.app -f unciv-data.ab</code> | <code>adb backup -noapk com.unciv.app -f unciv-data.ab</code> | ||
[[Категория:Руководства]] | [[Категория:Руководства]] | ||
Версия от 08:50, 16 июля 2024
В данном руководстве перечислен список команд к различным Linux приложениям. Некоторые из этих команд могут быть применены и к Windows версиям программ.
Базовые команды
Включение возможности изменения раскладки клавиатуры через Alt + Shift.
setxkbmap -layout us,ru -option grp:alt_shift_toggle
Установить DPI для подключенного дисплея/монитора (Подсчитать DPI можно тут).
xrandr --output eDP1 --dpi 135.09
Удаленно запустить приложение на основном дисплее (X11).
DISPLAY=:0 anydesk
Файловые операции
Общие команды
Запустить команду pwd -P в текущем каталоге и в поддиректориях.
find . -type d -exec sh -c 'cd -P -- "{}" && pwd -P' \;
Переименовать кириллические файлы в каталоге
find -mindepth 1 -exec sh -c 'mv "$1" "$(echo "$1" | iconv -f cp1252 -t cp850 | iconv -f cp866 )"' sh {} \;
Права доступа
Изменить владельца и группу для файла.
chown username:usergroup file.txt
Показать режима доступа файла или папки в восьмеричной системе счисления Октал.
stat -c %a file.txt
Оценка использования пространства накопителя
Общий отчёт об использовании пространства файловой системы.
df -h /
Информация об использовании файлами и директориями пространства файловой системы.
du -h file.bin
Поиск 10 наибольших файлов и директорий с сортировкой по убыванию их размера.
du -ahx . | sort -rh | head -10
Форматирование накопителя
Низкоуровневое форматирование накопителя.
sudo dd if=/dev/zero of=/dev/sdb bs=1M
Принудительно обновить таблицу разделов.
sudo partprobe
Архивы
Создание
Создать tar архив.
tar -cf archive.tar file1 file2
Создать tar архив с Gzip сжатием.
tar -czf archive.tar.gz file1 file2
Создать tar архив с Bz2 сжатием.
tar -cjf archive.tar.bz2 file1 file2
Просмотр содержимого
Посмотреть содержимое tar архива.
tar -tf archive.tar
Посмотреть содержимое Zip архива
unzip -l Архив.zip
Посмотреть содержимое Zip архива с кириллическими именами в названии файлов.
unzip -l Архив.zip | grep -aEv '^Archive:' | iconv -f iso8859-1 -t cp850 | iconv -f cp866
Распаковка
Распаковать tar архив в текущую директорию.
tar -xf archive.tar
Распаковать tar архив в требуемую директорию.
tar -xf archive.tar -C ~/folder
Portable Document Format (PDF)
Склеить несколько pdf файлов в один.
pdftk A=1.pdf B=2.pdf cat A1 B2-4 output Result.pdf
Разрезать pdf по листам.
pdftoppm Input.pdf outputname -png
Изображения
ExifTool
Прочитать EXIF атрибуты.
exiftool 1.jpg
Удалить все EXIF атрибуты.
exiftool -all= 2.jpg
ImageMagick
Изменить размер изображения
convert 3.jpg -resize 128x128 1.png
Перевернуть изображение
convert 4.jpg -rotate 90 2.jpg
Конвертировать изображение в pdf файл
convert 5.jpg Result.pdf
Конвертировать изображение в pdf файл с параметрами формата листа и заполнения заднего фона.
convert 6.jpg -background white -page a4 Output.pdf
SANE
Получить изображение со сканера или МФУ.
scanimage --format=png --output-file test.png --progress
Видео
FFmpeg
Кодировать видео с наложением субтитров (Создание хардсаба).
ffmpeg -i "Made_in_Abyss_Retsujitsu_no_Ougonkyou_[02]_[AniLibria_TV]_[WEBRip_1080p].mkv" -vf subtitles="02.ass" -c:v libx264 -crf 23 -c:a aac -b:a 192k output-02.mp4
Кодировать видео с наложением субтитров и сделать 2-ую аудио-дорожку основной.
ffmpeg -i "Made_in_Abyss_Retsujitsu_no_Ougonkyou_[03]_[AniLibria_TV]_[WEBRip_1080p].mkv" -vf subtitles="03.ass" -map 0:0 -map 0:2 -c:v libx264 -crf 23 -c:a:2 aac -b:a 192k output-03.mp4
MKVToolNix
Извлечь 4-ую дорожку (счёт ведётся с нуля) содержащую встроенные субтитры.
mkvextract tracks Made_in_Abyss_Retsujitsu_no_Ougonkyou_\[03\]_\[AniLibria_TV\]_\[WEBRip_1080p\].mkv 4:AniLibria_TV-03.ass
Сетевые команды
Отобразить информацию о сетевых соединениях.
netstat -na
Импорт OpenVPN профиля в NetworkManager.
nmcli connection import type openvpn file ~/VPNs/name.ovpn
Послать Wake-on-LAN пакет на удаленную машину.
wol 00:00:00:00:00:00 -h example.com -p 9
Оптимизированная передача изображения с удаленного X сервера.
ssh -X comminux@example.com -c chacha20-poly1305@openssh.com -C
Найти GET запросы в директории логов сервера Nginx, которые характерны DoS-атакам.
sudo grep -r '"-" "-"' /var/log/nginx
Загрузить копию веб-сайта и другие страницы посредством рекурсивного прохода по найденным веб-ссылкам.
Полное описание параметров команды: https://pingvinus.ru/note/wget-download-sites
wget -r -k -l 2 -p -E -nc http://site.com/
Настройка файрвола
UFW - Uncomplicated Firewall
Используется по умолчанию в Ubuntu.
Отобразить список активных правил в файрволе UFW.
sudo ufw status numbered
Удалить 7-е правило.
sudo ufw delete 7
Создать новое правило блокировки IP и поместить его в начало списка. Если не соблюдать порядок блокирующих (DENY) и разрешающих правил (ALLOW), то добавленные правила могут не исполняться.
sudo ufw insert 1 deny from 52.185.71.28 to any
Виртуализация
Контейнеры
Docker
Собрать новый образ из Dockerfile, расположенного в текущей директории.
sudo docker buildx build --platform=linux/amd64 .
Отобразить список всех контейнеров.
sudo docker ps -a
Отобразить список загруженных или собранных образов.
sudo docker images
Открыть bash сессию в запущенном контейнере
sudo docker exec -it container_id bash
Создать контейнер и запустить в нём bash-сессию. Параметр image_id является хэш указателем или тэгом уникального образа.
sudo docker run -it image_id bash
Удалить контейнер с данными.
sudo docker container rm container_id
Удалить образ.
sudo docker rmi image_id
Менеджер загрузки EFI
efibootmgr
Восстановление загрузочной записи
Обычно восстановление загрузочной записи загрузчика systemd-boot требуется после обновления прошивки (BIOS) материнской платы.
efibootmgr -c -d /dev/sdX -p Y -l "\EFI\systemd\systemd-bootx64.efi" -L "Linux Boot Manager"
Очистка и сортировка загрузочных записей
Отобразить очередь загрузки.
efibootmgr
Удалить 4-ую запись из очереди загрузки.
efibootmgr -b 4 -B
Изменить порядок загрузки.
efibootmgr -o 0,1,2
Android
Android Debug Bridge (adb)
Создать резервную копию данных выбранного приложения. После ввода команды потребуется выполнить подтверждение операции на самом устройстве. Некоторые приложения могут иметь флаг запрещающий создание подобных резервных копий.
adb backup -noapk com.unciv.app -f unciv-data.ab