Заметки на полях — различия между версиями

Материал из Rosalab Wiki
Перейти к: навигация, поиск
(Добавлены новые заметки)
(Провел сортировку заметок.)
Строка 1: Строка 1:
 
= 1 =
 
= 1 =
  
 +
<!-- A -->
  
 
== aria2c ==
 
== aria2c ==
Строка 11: Строка 12:
 
     --max-overall-download-limit
 
     --max-overall-download-limit
  
 +
 +
<!-- B -->
  
 
== btrfs ==
 
== btrfs ==
Строка 37: Строка 40:
 
     # btrfs balance start /mnt
 
     # btrfs balance start /mnt
  
== uuencode/uudecode, xxd ==
 
Преобразовать двоичный файл в текстовую форму
 
 
    uuencode -m input-file set-file-name >output-file
 
    xxd -p input-file >output-file
 
 
Преобразовать текст в двоичный файл
 
 
    uudecode -o output-file input-file
 
    xxd -p -r input-file >output-file
 
 
чтобы преобразовать stdin нужно использовать параметр xxd с параметром -ps
 
  
 +
<!-- C -->
  
 
== cdemu ==
 
== cdemu ==
Строка 66: Строка 58:
 
атрибут '''+i''' запрещает любое изменение, переименование и удаление файла/каталога, '''-i''' - разрешает.
 
атрибут '''+i''' запрещает любое изменение, переименование и удаление файла/каталога, '''-i''' - разрешает.
  
 +
 +
<!-- D -->
  
 
== dmsetup ==
 
== dmsetup ==
Строка 75: Строка 69:
 
     $ sudo dmsetup remove_all    - чтобы удалить их
 
     $ sudo dmsetup remove_all    - чтобы удалить их
  
 +
 +
<!-- E -->
  
 
== exiftool ==
 
== exiftool ==
Строка 93: Строка 89:
 
     $ sudo tune2fs -m 0.1 /dev/sda1
 
     $ sudo tune2fs -m 0.1 /dev/sda1
  
 +
 +
<!-- F -->
  
 
== find ==
 
== find ==
Строка 156: Строка 154:
 
     $ rsync -avn --delete --exclude-from=<(find . -type d -printf "%P\n") . ../output_dir/
 
     $ rsync -avn --delete --exclude-from=<(find . -type d -printf "%P\n") . ../output_dir/
  
 +
 +
<!-- G -->
 +
<!-- H -->
 +
<!-- I -->
 +
<!-- J -->
 +
<!-- K -->
 +
<!-- L -->
 +
<!-- M -->
  
 
== minidlna ==
 
== minidlna ==
Строка 169: Строка 175:
 
       $ sudo systemctl start minidlna.service
 
       $ sudo systemctl start minidlna.service
  
 +
 +
<!-- N -->
 +
<!-- O -->
 +
<!-- P -->
 +
<!-- Q -->
 +
 +
== qemu ==
 +
Установка
 +
 +
    $ sudo dnf install qemu qemu-kvm
 +
 +
Проверить загрузочную флешку в qemu
 +
 +
    $ sudo qemu-system-x86_64 -enable-kvm -m 1024 -usb /dev/sdb
 +
 +
=== virt-manager ===
 +
Virt-Manager не может подключиться к QEMU/KVM
 +
 +
    Не удалось подключить сокет к «/var/run/libvirt/virtqemud-sock»: Нет такого файла или каталога 
 +
 +
Чтобы решить эту проблему нужно запустить libvirtd:
 +
 +
    $ sudo systemctl start libvirtd
 +
 +
 +
<!-- R -->
  
 
== rsync и ssh ==
 
== rsync и ssh ==
Строка 193: Строка 225:
 
rsync работает быстрее, чем scp.
 
rsync работает быстрее, чем scp.
  
 +
 +
<!-- S -->
 +
<!-- T -->
  
 
== tput ==
 
== tput ==
Строка 206: Строка 241:
  
  
== virtualbox ==
+
<!-- U -->
Для подключения в виртуальной машине портов USB необходимо добавить пользователя хост-системы в группу vboxusers. Это можно сделать либо через графический интерфейс системы, либо в терминале командой:
+
  
    $ sudo usermod -a -G vboxusers $USER
+
== uuencode/uudecode, xxd ==
 +
Преобразовать двоичный файл в текстовую форму
  
Для включения режима USB 2.0 и USB 3.0 необходимо установить VirtualBox Extension Pack с сайта [https://www.virtualbox.org/]
+
    uuencode -m input-file set-file-name >output-file
 +
    xxd -p input-file >output-file
  
Для работы с общими папками необходимо внести пользователя гостевой системы в группу vboxsf
+
Преобразовать текст в двоичный файл
  
     $ sudo usermod -a -G vboxsf $USER
+
     uudecode -o output-file input-file
 +
    xxd -p -r input-file >output-file
  
 +
чтобы преобразовать stdin нужно использовать параметр xxd с параметром -ps
  
== qemu ==
 
Установка
 
  
    $ sudo dnf install qemu qemu-kvm
+
<!-- V -->
  
Проверить загрузочную флешку в qemu
+
== virtualbox ==
 +
Для подключения в виртуальной машине портов USB необходимо добавить пользователя хост-системы в группу vboxusers. Это можно сделать либо через графический интерфейс системы, либо в терминале командой:
  
     $ sudo qemu-system-x86_64 -enable-kvm -m 1024 -usb /dev/sdb
+
     $ sudo usermod -a -G vboxusers $USER
  
=== virt-manager ===
+
Для включения режима USB 2.0 и USB 3.0 необходимо установить VirtualBox Extension Pack с сайта [https://www.virtualbox.org/]
Virt-Manager не может подключиться к QEMU/KVM
+
  
    Не удалось подключить сокет к «/var/run/libvirt/virtqemud-sock»: Нет такого файла или каталога 
+
Для работы с общими папками необходимо внести пользователя гостевой системы в группу vboxsf
  
Чтобы решить эту проблему нужно запустить libvirtd:
+
    $ sudo usermod -a -G vboxsf $USER
  
    $ sudo systemctl start libvirtd
 
  
 +
<!-- W -->
 +
<!-- X -->
 +
<!-- Y -->
  
 
== yakuake ==
 
== yakuake ==
Строка 256: Строка 294:
 
     $ qdbus org.kde.yakuake /yakuake/sessions runCommand htop # запуск команды htop в добавленной сессии
 
     $ qdbus org.kde.yakuake /yakuake/sessions runCommand htop # запуск команды htop в добавленной сессии
  
 +
 +
<!-- Z -->
  
 
== zsh ==
 
== zsh ==
Строка 276: Строка 316:
  
 
     $ 7z a -mhe=on -p test.7z /directory/file
 
     $ 7z a -mhe=on -p test.7z /directory/file
 +
 +
 +
  
  
 
= 2 =
 
= 2 =
 +
 +
<!-- А -->
 +
<!-- Б -->
 +
<!-- В -->
 +
 +
== Видеть результат выполнения команды на экране, и одновременно писать его в файл ==
 +
Для этого необходимо воспользоваться командой tee:
 +
 +
    $ some_command parameters | tee -a /tmp/logfile.txt
 +
 +
Или
 +
 +
    $ script /tmp/logfile.txt
 +
 +
 +
<!-- Г -->
 +
<!-- Д -->
 +
<!-- Е -->
 +
<!-- Ё -->
 +
<!-- Ж -->
 +
<!-- З -->
 +
 +
== Запись свободного места нулями ==
 +
    $ cat /dev/zero >/path/file
 +
    $ dd if=/dev/zero of=/path/file bs=4M  #или bs=4M-20M
 +
 +
 +
<!-- И -->
 +
 +
== Изменить разрешение экрана ==
 +
    $ xrandr -s 1366x768
 +
    $ xrandr -s 800x600
 +
 +
 +
== Информация по пользовательским скриптам ==
 +
Если нужно чтобы скрипты были доступны сразу нескольким пользователям их нужно раскладывать по: 
 +
* сами скрипты класть в '''/usr/local/bin/'''
 +
* иконки (если необходимы) в '''/usr/local/share/icons/name-script/'''
 +
* desktop файлы в '''/usr/local/share/applications/name-script'''
 +
Если для одного то в: 
 +
* скрипты в '''~/bin''' или в path добавить '''~/.local/bin'''
 +
* иконки в '''~/.local/share/icons/'''
 +
* desktop файлы в '''~/.local/share/applications/'''
 +
 +
 +
<!-- Й -->
 +
<!-- К -->
  
 
== Комбинации клавиш в терминале ==
 
== Комбинации клавиш в терминале ==
Строка 299: Строка 389:
  
  
== Посмотреть открытые порты ==
+
== Коды завершения программ ==
     $ sudo lsof -Pni | grep LISTEN
+
Нулевой код свидетельствует об успешном завершении, а ненулевой указывает на наличие ошибки<br />
 +
В большинстве интерпретаторов команд код завершения последней выполненной программы содержится в специальной переменной:<br />
 +
     $?
  
  
== Управление сервисами ==
+
== Конвертировать все .odt в директории в .pdf ==
 +
    $ libreoffice --headless --convert-to pdf *.odt
  
==== Rosa ====
 
    # systemctl {enable|disable|start|stop|restart|status} name_service
 
  
==== Ubuntu ====
+
<!-- Л -->
    # service name_service {start|stop|restart|reload|force-reload|status}
+
<!-- М -->
    # systemctl {enable|disable} name_service
+
<!-- Н -->
  
 +
== Настройка swappiness ==
 +
==== Временные изменения: ====
 +
    $ cat /proc/sys/vm/swappiness
 +
    $ sudo sysctl vm.swappiness=25
 +
    $ sudo sysctl vm.vfs_cache_pressure=1000
  
== Узнать DE ==
+
==== Постоянные в /etc/sysctl.conf: ====
     $ echo $XDG_CURRENT_DESKTOP
+
     vm.swappiness=25
     $ echo $DESKTOP_SESSION
+
     vm.vfs_cache_pressure=1000
    $ wmctrl -m
+
  
 +
    Параметр vm.vfs_cache_pressure указывает размер используемого дискового кэша.
 +
    Если Вы обладатель компьютера с SSD-накопителем, то для Вас будет актуально значение 50
 +
    Если HDD, то наибольшую отзывчивость можно получить при установке 1000
  
== Показать смонтированные ФС ==
 
    $ findmnt --all
 
  
 +
<!-- О -->
  
== Сделать снимок с веб-камеры из терминала ==
+
== Отправить весь вывод команды в /dev/null ==
    $ sudo ffmpeg -f video4linux2 -s 1024x768 -i /dev/video0 -vframes 3 -f image2 'img%d.jpg'
+
     $ command >/dev/null 2>&1
     $ sudo ffmpeg -f video4linux2 -s 1024x768 -i /dev/video0 -vframes 1 -f image2 img-$(date +%s).jpg
+
  
  
== Посмотреть информацию о релизе дистрибутива ==
+
== Отключение темы Plymouth в Росе ==
    $ cat /etc/os-release
+
==== <=2016.1 ====
  
 +
Чтобы отключить использование графической заставки при старте системы, необходимо удалить в файле '''/etc/default/grub''' в '''GRUB_CMDLINE_LINUX_DEFAULT''' параметры '''quiet''' и '''splash=silent'''.<br />
  
== Отправить весь вывод команды в /dev/null ==
+
==== 2021.1 ====
    $ command >/dev/null 2>&1
+
Нужно в '''/etc/default/grub''' '''quiet''' и '''splash=silent''' заменить на '''plymouth.enable=0'''. Если хочется видеть строки загрузки, то '''splash=silent''' надо удалить, а вместо '''quiet''' поставить '''verbose'''.
  
  
== Управление группами в линукс ==
+
<!-- П -->
'''drakuser''' -- Гуй в kde (может и в других de)<br />
+
'''usermod''' -- инструмент в терминале
+
  
 +
== Показать смонтированные ФС ==
 +
    $ findmnt --all
  
== Коды завершения программ ==
+
 
Нулевой код свидетельствует об успешном завершении, а ненулевой указывает на наличие ошибки<br />
+
== Посмотреть открытые порты ==
В большинстве интерпретаторов команд код завершения последней выполненной программы содержится в специальной переменной:<br />
+
    $ sudo lsof -Pni | grep LISTEN
     $?
+
 
 +
 
 +
== Посмотреть информацию о релизе дистрибутива ==
 +
     $ cat /etc/os-release
  
  
Строка 361: Строка 461:
  
  
== Настройка swappiness ==
+
== Получить прогресс выполнения dd ==
==== Временные изменения: ====
+
     $ dd if=/dev/urandom of=/dev/null status=progress
     $ cat /proc/sys/vm/swappiness
+
     $ watch -n 5 pkill -x -USR1 dd
     $ sudo sysctl vm.swappiness=25
+
     $ watch -n 5 'sudo kill -USR1 $(pgrep ^dd)'    # где -n 5 = 5 сек.
     $ sudo sysctl vm.vfs_cache_pressure=1000
+
  
==== Постоянные в /etc/sysctl.conf: ====
 
    vm.swappiness=25
 
    vm.vfs_cache_pressure=1000
 
  
    Параметр vm.vfs_cache_pressure указывает размер используемого дискового кэша.
+
<!-- Р -->
    Если Вы обладатель компьютера с SSD-накопителем, то для Вас будет актуально значение 50
+
    Если HDD, то наибольшую отзывчивость можно получить при установке 1000
+
  
 +
== Распаковать rpm-пакет в терминале ==
 +
    rpm2cpio packege-name.rpm | cpio -idm
  
== Видеть результат выполнения команды на экране, и одновременно писать его в файл ==
 
Для этого необходимо воспользоваться командой tee:
 
  
    $ some_command parameters | tee -a /tmp/logfile.txt
+
<!-- С -->
  
Или
+
== Сделать снимок с веб-камеры из терминала ==
 +
    $ sudo ffmpeg -f video4linux2 -s 1024x768 -i /dev/video0 -vframes 3 -f image2 'img%d.jpg'
 +
    $ sudo ffmpeg -f video4linux2 -s 1024x768 -i /dev/video0 -vframes 1 -f image2 img-$(date +%s).jpg
  
    $ script /tmp/logfile.txt
 
  
 +
== Создание снимков экрана из терминала ==
  
== Запись свободного места нулями ==
+
Снимок экрана
     $ cat /dev/zero >/path/file
+
     $ import -window root "/files/Pictures/Screenshots/$(date +%F_%s-%N).png"
    $ dd if=/dev/zero of=/path/file bs=4M  #или bs=4M-20M
+
  
 +
Снимок области
 +
    $ import "/files/Pictures/Screenshots/$(date +%F_%s-%N).png"
  
== Получить прогресс выполнения dd ==
 
    $ dd if=/dev/urandom of=/dev/null status=progress
 
    $ watch -n 5 pkill -x -USR1 dd
 
    $ watch -n 5 'sudo kill -USR1 $(pgrep ^dd)'    # где -n 5 = 5 сек.
 
  
 +
== Собрать расширение из исходного кода для firefox ==
 +
    $ 7z a ../extension-name.xpi * -r
  
== Отключение темы Plymouth в Росе ==
+
Если нужно пересобрать расширение с тем же названием необходимо удалить перед этим действием старое.
==== <=2016.1 ====
+
  
Чтобы отключить использование графической заставки при старте системы, необходимо удалить в файле '''/etc/default/grub''' в '''GRUB_CMDLINE_LINUX_DEFAULT''' параметры '''quiet''' и '''splash=silent'''.<br />
+
Ссылка где можно подписать расширение для работы в ff: https://addons.mozilla.org/ru/developers/
  
==== 2021.1 ====
 
Нужно в '''/etc/default/grub''' '''quiet''' и '''splash=silent''' заменить на '''plymouth.enable=0'''. Если хочется видеть строки загрузки, то '''splash=silent''' надо удалить, а вместо '''quiet''' поставить '''verbose'''.
 
  
 +
== Смена редактора по умолчанию в терминале ==
 +
Установить редактор по умолчанию в терминале для всех пользователей
 +
    $ echo "EDITOR=vim" | tee -a /etc/environment
  
== Удаление пароля пользователя ==
+
Если после перезагрузки сеанса нет изменений, то нужно искать в /etc/ файлы с переменной EDITOR
     $ sudo passwd -d user
+
     $ find /etc/ -type f -exec grep -H "EDITOR" '{}' \;
  
 +
В Росе 2021.1 есть два файла которые мешают сменить редактор:
 +
    /etc/profile.d/10-nano-as-default-editor.sh
 +
    /etc/profile.d/10-nano-as-default-editor.csh
  
== Изменить разрешение экрана ==
+
их нужно удалить.
    $ xrandr -s 1366x768
+
    $ xrandr -s 800x600
+
  
  
== Создание снимков экрана из терминала ==
+
<!-- Т -->
 +
<!-- У -->
  
Снимок экрана
+
== Управление сервисами ==
    $ import -window root "/files/Pictures/Screenshots/$(date +%F_%s-%N).png"
+
  
Снимок области
+
==== Rosa ====
     $ import "/files/Pictures/Screenshots/$(date +%F_%s-%N).png"
+
     # systemctl {enable|disable|start|stop|restart|status} name_service
  
 +
==== Ubuntu ====
 +
    # service name_service {start|stop|restart|reload|force-reload|status}
 +
    # systemctl {enable|disable} name_service
  
== Узнать дату создания или изменения файла ==
 
    $ stat -c %y file  --- время модификации
 
    $ stat -c %w file  --- время создания, если поддерживается ФС
 
  
 +
== Узнать DE ==
 +
    $ echo $XDG_CURRENT_DESKTOP
 +
    $ echo $DESKTOP_SESSION
 +
    $ wmctrl -m
  
== Удалить запись из истории в zsh ==
 
    $ LC_ALL=C sed -i '/$1/d' $HISTFILE
 
  
 +
== Управление группами в линукс ==
 +
'''drakuser''' -- Гуй в kde (может и в других de)<br />
 +
'''usermod''' -- инструмент в терминале
  
== Распаковать rpm-пакет в терминале ==
 
    rpm2cpio packege-name.rpm | cpio -idm
 
  
 +
== Удаление пароля пользователя ==
 +
    $ sudo passwd -d user
  
== Собрать расширение из исходного кода для firefox ==
 
    $ 7z a ../extension-name.xpi * -r
 
  
Если нужно пересобрать расширение с тем же названием необходимо удалить перед этим действием старое.  
+
== Узнать дату создания или изменения файла ==
 +
    $ stat -c %y file --- время модификации
 +
    $ stat -c %w file  --- время создания, если поддерживается ФС
  
Ссылка где можно подписать расширение для работы в ff: https://addons.mozilla.org/ru/developers/
+
 
 +
== Удалить запись из истории в zsh ==
 +
    $ LC_ALL=C sed -i '/$1/d' $HISTFILE
  
  
Строка 448: Строка 551:
 
     $ pgrep -u $USER | xargs kill -9
 
     $ pgrep -u $USER | xargs kill -9
 
     $ pkill -9 -u $USER
 
     $ pkill -9 -u $USER
 
 
== Конвертировать все .odt в директории в .pdf ==
 
    $ libreoffice --headless --convert-to pdf *.odt
 
  
  
Строка 458: Строка 557:
  
  
== Смена редактора по умолчанию в терминале ==
+
== Узнать точную версию sata диска ==
Установить редактор по умолчанию в терминале для всех пользователей
+
     $ sudo smartctl -a /dev/sda | grep SATA
     $ echo "EDITOR=vim" | tee -a /etc/environment
+
  
Если после перезагрузки сеанса нет изменений, то нужно искать в /etc/ файлы с переменной EDITOR
 
    $ find /etc/ -type f -exec grep -H "EDITOR" '{}' \;
 
  
В Росе 2021.1 есть два файла которые мешают сменить редактор:
+
<!-- Ф -->
    /etc/profile.d/10-nano-as-default-editor.sh
+
<!-- Х -->
    /etc/profile.d/10-nano-as-default-editor.csh
+
<!-- Ц -->
 
+
<!-- Ч -->
их нужно удалить.
+
<!-- Ш -->
 +
<!-- Щ -->
 +
<!-- Ы -->
 +
<!-- Э -->
 +
<!-- Ю -->
 +
<!-- Я -->
  
 +
<!-- A -->
 +
<!-- B -->
  
 
== backups (резервные копии) ==
 
== backups (резервные копии) ==
Строка 482: Строка 585:
  
  
== Узнать точную версию sata диска ==
+
<!-- C -->
    $ sudo smartctl -a /dev/sda | grep SATA
+
<!-- D -->
 
+
<!-- E -->
== Информация по пользовательским скриптам ==
+
<!-- F -->
Если нужно чтобы скрипты были доступны сразу нескольким пользователям их нужно раскладывать по: 
+
<!-- G -->
* сами скрипты класть в '''/usr/local/bin/'''
+
<!-- H -->
* иконки (если необходимы) в '''/usr/local/share/icons/name-script/'''
+
<!-- I -->
* desktop файлы в '''/usr/local/share/applications/name-script'''
+
<!-- J -->
Если для одного то в: 
+
<!-- K -->
* скрипты в '''~/bin''' или в path добавить '''~/.local/bin'''
+
<!-- L -->
* иконки в '''~/.local/share/icons/'''
+
<!-- M -->
* desktop файлы в '''~/.local/share/applications/'''
+
<!-- N -->
 +
<!-- O -->
 +
<!-- P -->
 +
<!-- Q -->
 +
<!-- R -->
 +
<!-- S -->
 +
<!-- T -->
 +
<!-- U -->
 +
<!-- V -->
 +
<!-- W -->
 +
<!-- X -->
 +
<!-- Y -->
 +
<!-- Z -->

Версия 00:01, 26 октября 2022

Содержание

1

aria2c

Задать интервал в секундах до вывода сообщения о прогрессе загрузки. Установка 0 запрещает вывод. По умолчанию: 60

   --summary-interval=<SEC>

Задать максимальную общую скорость загрузки в байтах/сек. 0 значит неограниченно. Вы можете добавить K или M (1K = 1024, 1M = 1024K).

   --max-overall-download-limit


btrfs

Создание резервной копии снимка btrfs

Создаем read-only снимок - send требует, чтобы отправляемый снимок был read-only

   # btrfs subvolume snapshot -r /mnt/@ /mnt/ss/@-ss-date-main
   # sync
   # btrfs send /mnt/ss/@-ss-date-main | zstd -16 -T0 -vv -o /files/.backups/root-distr-date-main.btrfs.zst

Восстановление из снимка будет производиться как-то так:

   # zstd -d /files/.backups/root-distr-date-main.btrfs.zst | btrfs receive /path
   # sync

ubuntu-wiki: btrfs#снимки

Дефрагментация

   # btrfs fi defrag -r /mnt

Перебалансировка системы

   # btrfs balance start /mnt


cdemu

удалить виртуальное cd/dvd-rom устройство

   $ cdemu remove-device

добавить виртуальное cd/dvd-rom устройство

   $ cdemu add-device


chattr - изменение атрибутов файлов

   # chattr +i /path/to/file
   # chattr -i /path/to/file

атрибут +i запрещает любое изменение, переименование и удаление файла/каталога, -i - разрешает.


dmsetup

После локальной сборки iso Росы (rosa2016.1) все не смонтированные носители дублируются в ФМ. В выводе команды lsblk эти носители имеют тип dm и имя osprober-linux-sda1. Чтобы все вернуть, как было, нужно выполнить:

   $ sudo dmsetup ls             - чтобы увидеть список таких носителей
   $ sudo dmsetup remove_all     - чтобы удалить их


exiftool

Удалить метаданные фото

   $ exiftool -all= *
   В росе нужно установить пакет perl-Image-ExifTool


ext4

Дефрагментация

   $ sudo e4defrag -c /    # анализ корневого раздела
   $ sudo e4defrag /       # дефрагментация корневого раздела

Уменьшить размер зарезервированного места

   $ sudo tune2fs -m 0.1 /dev/sda1


find

найти исполняемые файлы с шаблоном *.zip

   $ find /path -type f -perm /a=x -name '*.zip'

найти исполняемые файлы и напечатать

   $ find /path -type f -perm /a=x

найти исполняемые файлы и сделать неисполняемыми

   $ find /path -type f -perm /a=x -exec chmod -x '{}' \;

найти все файлы и напечатать

   $ find /path -type f -print

найти все файлы и вывести их кол-во

   $ find /path -type f -print | wc -l

найти файлы по шаблону и показать их суммарный размер

   $ find /path -type f -name "Dana*" -print0 | xargs -0 du -ch | tail -n 1 | awk '{print $1}'

найти все файлы, подсчитать хеш-сумму и записать результат в файл

   $ find /path -type f -print0 | xargs --null md5sum > /tmp/listsums

найти файлы по шаблону и удалить их

   $ find /path -type f -name "*.directory" -exec rm {} \;

найти все файлы в текущем каталоге и получить все доступные ссылки из расширенных аттрибутов (необходимо установить пакет attr)

   $ find . -maxdepth 1 -type f -print0 | xargs -0 getfattr -d | grep -e 'origin.url' | awk -F "\"" '{print $2}'

не учитывать регистр при поиске

   $ find /path -type f -iname '*name-file*' 

рекурсивный расчет контрольных сумм файлов каталога

   $ find /path -type f -print0 | xargs --null md5sum

исключить из поиска определенную директорию

   $ find . -type f -not -path './dir/*' -iname name

найти все файлы и каталоги принадлежащие указанному uid и изменить uid и gid

   # find /path -uid 500 -print0 | xargs -0 sudo chown -h 1000:1000
   # find /path -uid 500 -exec sudo chown -h 1000:1000 '{}' \;

find и rsync

   $ find . -type d -printf "%P\n" | rsync -avn --delete --exclude-from=- . ../output_dir/

т.к. параметр **--delete** не работает с **--no-recursive** исключать директории нужно с помощью программы **find** и параметра **--exclude-from**

   $ rsync -avn --delete --exclude-from=<(find . -type d -printf "%P\n") . ../output_dir/


minidlna

1. Сначала необходимо установить пакет minidlna.
2. Потом нужно добавить в файл **/etc/minidlna.conf** под **#media_dir=/opt**:

      media_dir=A,/home/username/Музыка
      media_dir=V,/home/username/Видео
      media_dir=P,/home/username/Изображения

3. А после выполнить команду

      $ sudo systemctl start minidlna.service


qemu

Установка

   $ sudo dnf install qemu qemu-kvm

Проверить загрузочную флешку в qemu

   $ sudo qemu-system-x86_64 -enable-kvm -m 1024 -usb /dev/sdb

virt-manager

Virt-Manager не может подключиться к QEMU/KVM

   Не удалось подключить сокет к «/var/run/libvirt/virtqemud-sock»: Нет такого файла или каталога  

Чтобы решить эту проблему нужно запустить libvirtd:

   $ sudo systemctl start libvirtd


rsync и ssh

Загрузка на удаленную машину

   $ rsync -av -zz -e "ssh -p 123" --progress --dry-run /local/folder/ user@host:/remote/forlder/
  • -a – Режим архивирования
  • -v – Выводить подробную информацию о процессе копирования
  • -zz – Сжимать файлы перед передачей
  • -e – Использовать другой транспорт
  • --bwlimit – Ограничение скорости KBytes в секунду
  • --progress – Выводить прогресс передачи файла
  • --dry-run – Показать, что скопируется
  • -c – Проверка контрольных сумм для файлов
  • -b – Создание резервной копии
  • -u – Не перезаписывать более новые файлы
  • --delete – Удалять файлы которых нет в источнике
  • --exclude – Исключить файлы по шаблону
  • --include – Не исключать файлы по шаблону
  • -P – эквивалент для --partial --progress

Загрузка с удаленной машины

   $ rsync -avP -zz -e "ssh -p 123" user@host:/remote/forlder/file /local/folder/file

rsync работает быстрее, чем scp.


tput

   tput bold            # Включить жирность
   tput dim             # Затемнить текст
   tput smul            # Включить подчеркивание
   tput rmul            # Отключить подчеркивание
   tput rev             # Поменять цвет текста на цвет фона
   tput setaf 1-255     # Установить цвет текста
   tput setab 1-255     # Установить фон текста
   tput sgr0            # Вернуть к значениям по умолчанию
   tput blink           # мигающий текст


uuencode/uudecode, xxd

Преобразовать двоичный файл в текстовую форму

   uuencode -m input-file set-file-name >output-file
   xxd -p input-file >output-file

Преобразовать текст в двоичный файл

   uudecode -o output-file input-file
   xxd -p -r input-file >output-file

чтобы преобразовать stdin нужно использовать параметр xxd с параметром -ps


virtualbox

Для подключения в виртуальной машине портов USB необходимо добавить пользователя хост-системы в группу vboxusers. Это можно сделать либо через графический интерфейс системы, либо в терминале командой:

   $ sudo usermod -a -G vboxusers $USER

Для включения режима USB 2.0 и USB 3.0 необходимо установить VirtualBox Extension Pack с сайта [1]

Для работы с общими папками необходимо внести пользователя гостевой системы в группу vboxsf

   $ sudo usermod -a -G vboxsf $USER


yakuake

Добавить действия в дельфине

Чтобы в дельфине в контекстное меню добавить действия "Запустить в Yakuake" и "Открыть Yakuake в этой папке" надо сделать следующее:

   $ git clone https://github.com/aplatanado/yakuake-session.git
   $ sudo cp yakuake-session /usr/bin
   $ cp ServiceMenus/yakuakehere.desktop ServiceMenus/yakuakerun.desktop ~/.local/share/kservices5/ServiceMenus/

Удалить из yakuake кнопку закрытия программы

Нужно закомментировать в файле title.skin выбранной темы блок QuitButton. В ConfigButton значению x присвоить 30, а в FocusButton - 53. Скины yakuake в Росе находятся в каталоге /usr/share/yakuake/skins

Запуск программ в Yakuake при старте KDE

   $ qdbus org.kde.yakuake /yakuake/sessions runCommand rtorrent # запуск команды rtorrent в текущей сессии
   $ qdbus org.kde.yakuake /yakuake/sessions addSession # добавление новой сессии
   $ qdbus org.kde.yakuake /yakuake/sessions runCommand htop # запуск команды htop в добавленной сессии


zsh

Установка

   $ sudo dnf install zsh

Установка oh-my-zsh

   $ sh -c "$(curl -fsSL https://raw.githubusercontent.com/robbyrussell/oh-my-zsh/master/tools/install.sh)"

Чтобы сделать zsh шеллом по умолчанию нужно выполнить:

   $ sudo usermod -s /bin/zsh $USER (Роса)
   $ sudo usermod -s /usr/bin/zsh $USER (ubuntu)


7z

Создание архива с паролелем и скрытым содержимым (содержимое можно увидить только после ввода пароля)

   $ 7z a -mhe=on -p test.7z /directory/file



2

Видеть результат выполнения команды на экране, и одновременно писать его в файл

Для этого необходимо воспользоваться командой tee:

   $ some_command parameters | tee -a /tmp/logfile.txt

Или

   $ script /tmp/logfile.txt


Запись свободного места нулями

   $ cat /dev/zero >/path/file
   $ dd if=/dev/zero of=/path/file bs=4M  #или bs=4M-20M


Изменить разрешение экрана

   $ xrandr -s 1366x768
   $ xrandr -s 800x600


Информация по пользовательским скриптам

Если нужно чтобы скрипты были доступны сразу нескольким пользователям их нужно раскладывать по:

  • сами скрипты класть в /usr/local/bin/
  • иконки (если необходимы) в /usr/local/share/icons/name-script/
  • desktop файлы в /usr/local/share/applications/name-script

Если для одного то в:

  • скрипты в ~/bin или в path добавить ~/.local/bin
  • иконки в ~/.local/share/icons/
  • desktop файлы в ~/.local/share/applications/


Комбинации клавиш в терминале

  • ctrl+l -- очистить экран (bash, zsh)
  • ctrl+a -- перейти в начало строки (bash, zsh)
  • ctrl+e -- перейти в конец строки (bash, zsh)
  • ctrl+u -- вырезать все слева от курсора (bash, zsh удаляет всю строку)
  • ctrl+k -- вырезать все справа от курсора ((bash, zsh))
  • ctrl+w -- вырезать слово слева от курсора (bash, zsh)
  • ctrl+y -- вставить вырезанный текст
  • ctrl+d -- если строка пуста - завершить текущий сеанс в терминале, иначе - удалить символ справа от курсора (bash, zsh)
  • ctrl+r -- поиск по ранее запущенным командам (bash, zsh)
  • ctrl+shift+- -- отменить последнее действие (bash, zsh)
  • ctrl+x+e -- открыть текстовый редактор для изменения введенной строки
  • alt+u -- перевести текст после курсора в верхний регистр (bash, zsh)
  • alt+d -- удалить слово после курсора
  • alt+backspace -- удалить слово перед курсором
  • alt+. -- вставить последний аргумент из предыдущей команды


Коды завершения программ

Нулевой код свидетельствует об успешном завершении, а ненулевой указывает на наличие ошибки
В большинстве интерпретаторов команд код завершения последней выполненной программы содержится в специальной переменной:

   $?


Конвертировать все .odt в директории в .pdf

   $ libreoffice --headless --convert-to pdf *.odt


Настройка swappiness

Временные изменения:

   $ cat /proc/sys/vm/swappiness
   $ sudo sysctl vm.swappiness=25
   $ sudo sysctl vm.vfs_cache_pressure=1000

Постоянные в /etc/sysctl.conf:

   vm.swappiness=25
   vm.vfs_cache_pressure=1000
   Параметр vm.vfs_cache_pressure указывает размер используемого дискового кэша.
   Если Вы обладатель компьютера с SSD-накопителем, то для Вас будет актуально значение 50
   Если HDD, то наибольшую отзывчивость можно получить при установке 1000


Отправить весь вывод команды в /dev/null

   $ command >/dev/null 2>&1


Отключение темы Plymouth в Росе

<=2016.1

Чтобы отключить использование графической заставки при старте системы, необходимо удалить в файле /etc/default/grub в GRUB_CMDLINE_LINUX_DEFAULT параметры quiet и splash=silent.

2021.1

Нужно в /etc/default/grub quiet и splash=silent заменить на plymouth.enable=0. Если хочется видеть строки загрузки, то splash=silent надо удалить, а вместо quiet поставить verbose.


Показать смонтированные ФС

   $ findmnt --all


Посмотреть открытые порты

   $ sudo lsof -Pni | grep LISTEN


Посмотреть информацию о релизе дистрибутива

   $ cat /etc/os-release


Приостановка выполнения команды в терминале

Приостановка делается сочетанием клавиш Ctrl+Z
Продолжить выполнение можно следующим образом:

   $ jobs

смотрим номер приостановленной задачи

   $ fg N

вместо N номер нужной задачи


Получить прогресс выполнения dd

   $ dd if=/dev/urandom of=/dev/null status=progress
   $ watch -n 5 pkill -x -USR1 dd
   $ watch -n 5 'sudo kill -USR1 $(pgrep ^dd)'    # где -n 5 = 5 сек.


Распаковать rpm-пакет в терминале

   rpm2cpio packege-name.rpm | cpio -idm


Сделать снимок с веб-камеры из терминала

   $ sudo ffmpeg -f video4linux2 -s 1024x768 -i /dev/video0 -vframes 3 -f image2 'img%d.jpg'
   $ sudo ffmpeg -f video4linux2 -s 1024x768 -i /dev/video0 -vframes 1 -f image2 img-$(date +%s).jpg


Создание снимков экрана из терминала

Снимок экрана

   $ import -window root "/files/Pictures/Screenshots/$(date +%F_%s-%N).png"

Снимок области

   $ import "/files/Pictures/Screenshots/$(date +%F_%s-%N).png"


Собрать расширение из исходного кода для firefox

   $ 7z a ../extension-name.xpi * -r

Если нужно пересобрать расширение с тем же названием необходимо удалить перед этим действием старое.

Ссылка где можно подписать расширение для работы в ff: https://addons.mozilla.org/ru/developers/


Смена редактора по умолчанию в терминале

Установить редактор по умолчанию в терминале для всех пользователей

   $ echo "EDITOR=vim" | tee -a /etc/environment

Если после перезагрузки сеанса нет изменений, то нужно искать в /etc/ файлы с переменной EDITOR

   $ find /etc/ -type f -exec grep -H "EDITOR" '{}' \;

В Росе 2021.1 есть два файла которые мешают сменить редактор:

   /etc/profile.d/10-nano-as-default-editor.sh
   /etc/profile.d/10-nano-as-default-editor.csh

их нужно удалить.


Управление сервисами

Rosa

   # systemctl {enable|disable|start|stop|restart|status} name_service

Ubuntu

   # service name_service {start|stop|restart|reload|force-reload|status}
   # systemctl {enable|disable} name_service


Узнать DE

   $ echo $XDG_CURRENT_DESKTOP
   $ echo $DESKTOP_SESSION
   $ wmctrl -m


Управление группами в линукс

drakuser -- Гуй в kde (может и в других de)
usermod -- инструмент в терминале


Удаление пароля пользователя

   $ sudo passwd -d user


Узнать дату создания или изменения файла

   $ stat -c %y file  --- время модификации
   $ stat -c %w file  --- время создания, если поддерживается ФС


Удалить запись из истории в zsh

   $ LC_ALL=C sed -i '/$1/d' $HISTFILE


Убить все процессы пользователя

   $ pgrep -u $USER | xargs kill -9
   $ pkill -9 -u $USER


Узнать дату установки ОС Linux из свойств файловой системы (ext4)

   $ sudo tune2fs -l $(df / | tail -1 | cut -f1 -d' ') | grep created


Узнать точную версию sata диска

   $ sudo smartctl -a /dev/sda | grep SATA



backups (резервные копии)

Создание рез. копии с помощью squashfs

Делаем бэкап раздела sdd1

   $ sudo mount /dev/sdd1 /mnt/sdd1
   $ sudo mksquashfs /mnt/sdd1 /home/user/name.squashfs

Распаковываем на другой носитель

   $ sudo unsquashfs -f -d /mnt/sdс1 /home/user/name.squashfs