1 |
- [{"id":0,"href":"/tags/linux/","title":"Linux","parent":"Tags","content":"","description":""},{"id":1,"href":"/tags/shell/","title":"Shell","parent":"Tags","content":"","description":""},{"id":2,"href":"/tags/","title":"Tags","parent":"Тут всё начинается","content":"","description":""},{"id":3,"href":"/administration/linux/useful-commands/","title":"Очень полезные команды Linux на одном листе","parent":"Linux","content":" Системная информация Остановка системы Файлы и директории Поиск файлов Монтирование файловых систем Дисковое пространство Пользователи и группы Выставление/изменение полномочий на файлы Специальные атрибуты файлов Архивирование и сжатие файлов RPM пакеты (Fedora, Red Hat и тому подобное) YUM - средство обновления пакетов(Fedora, RedHat и тому подобное) DEB пакеты (Debian, Ubuntu и тому подобное) APT - средство управление пакетами (Debian, Ubuntu и тому подобное) Просмотр содержимого файлов Манипуляции с текстом Преобразование наборов символов и файловых форматов Анализ файловых систем Форматирование файловых систем swap-пространство Создание резервных копий (backup) CDROM Сеть (LAN и WiFi) Microsoft Windows networks(SAMBA) IPTABLES (firewall) Мониторинг и отладка Другие полезные команды Системная информация Команда Описание arch отобразить архитектуру компьютера uname -m \u0026ndash; // \u0026ndash; uname -r отобразить используемую версию ядра dmidecode -q показать аппаратные системные компоненты - (SMBIOS / DMI) hdparm -i /dev/hda вывести характеристики жесткого диска hdparm -tT /dev/sda протестировать производительность чтения данных с жесткого диска cat /proc/cpuinfo отобразить информацию о процессоре cat /proc/interrupts показать прерывания cat /proc/meminfo проверить использование памяти cat /proc/swaps показать файл(ы) подкачки cat /proc/version вывести версию ядра cat /proc/net/dev показать сетевые интерфейсы и статистику по ним cat /proc/mounts отобразить смонтированные файловые системы lspci -tv показать в виде дерева PCI устройства lsusb -tv показать в виде дерева USB устройства date вывести системную дату cal 2007 вывести таблицу-календарь 2007-го года date 041217002007.00 установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды) clock -w сохранить системное время в BIOS Остановка системы | Команда | Описание |\nshutdown -h now Остановить систему init 0 \u0026ndash; // \u0026ndash; telinit 0 \u0026ndash; // \u0026ndash; shutdown -h hours:minutes \u0026amp; запланировать остановку системы на указанное время shutdown -c отменить запланированную по расписанию остановку системы shutdown -r now перегрузить систему reboot \u0026ndash; // \u0026ndash; logout выйти из системы Файлы и директории Команда Описание cd /home перейти в директорию \u0026lsquo;/home\u0026rsquo; cd .. перейти в директорию уровнем выше cd ../.. перейти в директорию двумя уровнями выше cd перейти в домашнюю директорию cd ~user перейти в домашнюю директорию пользователя user cd - перейти в директорию, в которой находились до перехода в текущую директорию pwd показать текущую директорию ls отобразить содержимое текущей директории ls -F отобразить содержимое текущей директории с добавлением к именам символов, характеризующих тип ls -l показать детализированное представление файлов и директорий в текущей директории ls -a показать скрытые файлы и директории в текущей директории ls *[0-9]* показать файлы и директории содержащие в имени цифры tree показать дерево файлов и директорий, начиная от корня (/) lstree mkdir dir1 создать директорию с именем \u0026lsquo;dir1\u0026rsquo; mkdir dir1 dir2 создать две директории одновременно mkdir -p /tmp/dir1/dir2 создать дерево директорий rm -f file1 удалить файл с именем \u0026lsquo;file1\u0026rsquo; rmdir dir1 удалить директорию с именем \u0026lsquo;dir1\u0026rsquo; rm -rf dir1 удалить директорию с именем \u0026lsquo;dir1\u0026rsquo; и рекурсивно всё её содержимое rm -rf dir1 dir2 удалить две директории и рекурсивно их содержимое mv dir1 new_dir переименовать или переместить файл или директорию cp file1 file2 скопировать файл file1 в файл file2 cp dir/* . копировать все файлы директории dir в текущую директорию cp -a /tmp/dir1 . копировать директорию dir1 со всем содержимым в текущую директорию cp -a dir1 dir2 копировать директорию dir1 в директорию dir2 ln -s file1 lnk1 создать символическую ссылку на файл или директорию ln file1 lnk1 создать \u0026ldquo;жёсткую\u0026rdquo; (физическую) ссылку на файл или директорию touch -t 0712250000 fileditest модифицировать дату и время создания файла, при его отсутствии, создать файл с указанными датой и временем (YYMMDDhhmm) Поиск файлов Команда Описание find / -name file1 найти файлы и директории с именем file1. Поиск начать с корня (/) find / -user user1 найти файл и директорию принадлежащие пользователю user1. Поиск начать с корня (/) find /home/user1 -name \u0026ldquo;*.bin\u0026rdquo; Найти все файлы и директории, имена которых оканчиваются на \u0026lsquo;. bin\u0026rsquo;. Поиск начать с \u0026lsquo;/ home/user1\u0026rsquo; find /usr/bin -type f -atime +100 найти все файлы в \u0026lsquo;/usr/bin\u0026rsquo;, время последнего обращения к которым более 100 дней find /usr/bin -type f -mtime -10 найти все файлы в \u0026lsquo;/usr/bin\u0026rsquo;, созданные или изменённые в течении последних 10 дней find / -name *.rpm -exec chmod 755 \u0026lsquo;{}\u0026rsquo; \\; найти все файлы и директории, имена которых оканчиваются на \u0026lsquo;.rpm\u0026rsquo;, и изменить права доступа к ним find / -xdev -name \u0026ldquo;*.rpm\u0026rdquo; найти все файлы и директории, имена которых оканчиваются на \u0026lsquo;.rpm\u0026rsquo;, игнорируя съёмные носители, такие как cdrom, floppy и т.п. locate \u0026ldquo;*.ps\u0026rdquo; найти все файлы, содержащие в имени \u0026lsquo;.ps\u0026rsquo;. Предварительно рекомендуется выполнить команду \u0026lsquo;updatedb\u0026rsquo; whereis halt показывает размещение бинарных файлов, исходных кодов и руководств, относящихся к файлу \u0026lsquo;halt\u0026rsquo; which halt отображает полный путь к файлу \u0026lsquo;halt\u0026rsquo; Монтирование файловых систем Команда Описание mount /dev/hda2 /mnt/hda2 монтирует раздел \u0026lsquo;hda2\u0026rsquo; в точку монтирования \u0026lsquo;/mnt/hda2\u0026rsquo;. Убедитесь в наличии директории-точки монтирования \u0026lsquo;/mnt/hda2\u0026rsquo; umount /dev/hda2 размонтирует раздел \u0026lsquo;hda2\u0026rsquo;. Перед выполнением, покиньте \u0026lsquo;/mnt/hda2\u0026rsquo; fuser -km /mnt/hda2 принудительное размонтирование раздела. Применяется в случае, когда раздел занят каким-либо пользователем umount -n /mnt/hda2 выполнить размонитрование без занесения информации в /etc/mtab. Полезно когда файл имеет атрибуты \u0026ldquo;только чтение\u0026rdquo; или недостаточно места на диске mount /dev/fd0 /mnt/floppy монтировать флоппи-диск mount /dev/cdrom /mnt/cdrom монтировать CD или DVD mount /dev/hdc /mnt/cdrecorder монтировать CD-R/CD-RW или DVD-R/DVD-RW(+-) mount -o loop file.iso /mnt/cdrom смонтировать ISO-образ mount -t vfat /dev/hda5 /mnt/hda5 монтировать файловую систему Windows FAT32 mount -t smbfs -o username=user,password=pass / /winclient/share /mnt/share монтировать сетевую файловую систему Windows (SMB/CIFS) mount -o bind /home/user/prg /var/ftp/user \u0026ldquo;монтирует\u0026rdquo; директорию в директорию (binding). Доступна с версии ядра 2.4.0. Полезна, например, для предоставления содержимого пользовательской директории через ftp при работе ftp-сервера в \u0026ldquo;песочнице\u0026rdquo; (chroot), когда симлинки сделать невозможно. Дисковое пространство Команда Описание df -h отображает информацию о смонтированных разделах с отображением общего, доступного и используемого пространства (Прим.переводчика. ключ -h работает не во всех *nix системах) ls -lSr |more выдаёт список файлов и директорий рекурсивно с сортировкой по возрастанию размера и позволяет осуществлять постраничный просмотр du -sh dir1 подсчитывает и выводит размер, занимаемый директорией \u0026lsquo;dir1\u0026rsquo; (Прим.переводчика. ключ -h работает не во всех *nix системах) du -sk * | sort -rn отображает размер и имена файлов и директорий, с сортировкой по размеру rpm -q -a \u0026ndash;qf \u0026lsquo;%10{SIZE}\\t%{NAME}\\n\u0026rsquo; | sort -k1,1n показывает размер используемого дискового пространства, занимаемое файлами rpm-пакета, с сортировкой по размеру (fedora, redhat и т.п.) dpkg-query -W -f=\u0026rsquo;${Installed-Size;10}\\t${Package}\\n\u0026rsquo; | sort -k1,1n показывает размер используемого дискового пространства, занимаемое файлами deb-пакета, с сортировкой по размеру (ubuntu, debian т.п.) Пользователи и группы Команда Описание groupadd group_name создать новую группу с именем group_name groupdel group_name удалить группу group_name groupmod -n new_group_name old_group_name переименовать группу old_group_name в new_group_name useradd -c \u0026ldquo;Nome Cognome\u0026rdquo; -g admin -d /home/user1 -s /bin/bash user1 создать пользователя user1, назначить ему в качестве домашнего каталога /home/user1, в качестве shell\u0026rsquo;а /bin/bash, включить его в группу admin и добавить комментарий Nome Cognome useradd user1 создать пользователя user1 userdel -r user1 удалить пользователя user1 и его домашний каталог usermod -c \u0026ldquo;User FTP\u0026rdquo; -g system -d /ftp/user1 -s /bin/nologin user1 изменить атрибуты пользователя passwd сменить пароль passwd user1 сменить пароль пользователя user1 (только root) chage -E 2005-12-31 user1 установить дату окончания действия учётной записи пользователя user1 pwck проверить корректность системных файлов учётных записей. Проверяются файлы /etc/passwd и /etc/shadow grpck проверяет корректность системных файлов учётных записей. Проверяется файл/etc/group newgrp [-] group_name изменяет первичную группу текущего пользователя. Если указать \u0026ldquo;-\u0026rdquo;, ситуация будет идентичной той, в которой пользователь вышил из системы и снова вошёл. Если не указывать группу, первичная группа будет назначена из /etc/passwd Выставление/изменение полномочий на файлы Команда Описание ls -lh просмотр полномочий на файлы и директории в текущей директории ls /tmp | pr -T5 -W$COLUMNS вывести содержимое директории /tmp и разделить вывод на пять колонок chmod ugo+rwx directory1 добавить полномочия на директорию directory1 ugo(User Group Other)+rwx(Read Write eXecute) - всем полные права. Аналогичное можно сделать таким образом \u0026ldquo;chmod 777 directory1\u0026rdquo; chmod go-rwx directory1 отобрать у группы и всех остальных все полномочия на директорию directory1. chown user1 file1 назначить владельцем файла file1 пользователя user1 chown -R user1 directory1 назначить рекурсивно владельцем директории directory1 пользователя user1 chgrp group1 file1 сменить группу-владельца файла file1 на group1 chown user1:group1 file1 сменить владельца и группу владельца файла file1 find / -perm -u+s найти, начиная от корня, все файлы с выставленным SUID chmod u+s /bin/binary_file назначить SUID-бит файлу /bin/binary_file. Это даёт возможность любому пользователю запускать на выполнение файл с полномочиями владельца файла. chmod u-s /bin/binary_file снять SUID-бит с файла /bin/binary_file. chmod g+s /home/public назначить SGID-бит директории /home/public. chmod g-s /home/public снять SGID-бит с директории /home/public. chmod o+t /home/public назначить STIKY-бит директории /home/public. Позволяет удалять файлы только владельцам chmod o-t /home/public снять STIKY-бит с директории /home/public Специальные атрибуты файлов Команда Описание chattr +a file1 позволить открывать файл на запись только в режиме добавления chattr +c file1 позволяет ядру автоматически сжимать/разжимать содержимое файла. chattr +d file1 указавет утилите dump игнорировать данный файл во время выполнения backup\u0026rsquo;а chattr +i file1 делает файл недоступным для любых изменений: редактирование, удаление, перемещение, создание линков на него. chattr +s file1 позволяет сделать удаление файла безопасным, т.е. выставленный атрибут s говорит о том, что при удалении файла, место, занимаемое файлом на диске заполняется нулями, что предотвращяет возможность восстановления данных. chattr +S file1 указывает, что, при сохранении изменений, будет произведена синхронизация, как при выполнении команды sync chattr +u file1 данный атрибут указывает, что при удалении файла содержимое его будет сохранено и при необходимости пользователь сможет его восстановить lsattr показать атрибуты файлов Архивирование и сжатие файлов Команда Описание bunzip2 file1.bz2 разжимает файл \u0026ldquo;file1.gz\u0026rdquo; gunzip file1.gz gzip file1 сжимает файл \u0026ldquo;file1\u0026rdquo; bzip2 file1 gzip -9 file1 сжать файл file1 с максимальным сжатием rar a file1.rar test_file создать rar-архив \u0026ldquo;file1.rar\u0026rdquo; и включить в него файл test_file rar a file1.rar file1 file2 dir1 создать rar-архив \u0026ldquo;file1.rar\u0026rdquo; и включить в него file1, file2 и dir1 unrar x file1.rar распаковать rar-архив tar -cvf archive.tar file1 создать tar-архив archive.tar, содержащий файл file1 tar -cvf archive.tar file1 file2 dir1 создать tar-архив archive.tar, содержащий файл file1, file2 и dir1 tar -tf archive.tar показать содержимое архива tar -xvf archive.tar распаковать архив tar -xvf archive.tar -C /tmp распаковать архив в /tmp tar -cvfj archive.tar.bz2 dir1 создать архив и сжать его с помощью bzip2(Прим.переводчика. ключ -j работает не во всех *nix системах) tar -xvfj archive.tar.bz2 разжать архив и распаковать его(Прим.переводчика. ключ -j работает не во всех *nix системах) tar -cvfz archive.tar.gz dir1 создать архив и сжать его с помощью gzip tar -xvfz archive.tar.gz разжать архив и распаковать его zip file1.zip file1 создать сжатый zip-архив zip -r file1.zip file1 file2 dir1 создать сжатый zip-архив и со включением в него нескольких файлов и/или директорий unzip file1.zip разжать и распаковать zip-архив RPM пакеты (Fedora, Red Hat и тому подобное) Команда Описание rpm -ivh package.rpm установить пакет с выводом сообщений и прогресс-бара rpm -ivh \u0026ndash;nodeps package.rpm установить пакет с выводом сообщений и прогресс-бара без контроля зависимостей rpm -U package.rpm обновить пакет без изменений конфигурационных файлов, в случае отсутствия пакета, он будет установлен rpm -F package.rpm обновить пакет только если он установлен rpm -e package_name.rpm удалить пакет rpm -qa отобразить список всех пакетов, установленных в системе rpm -qa | grep httpd среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени \u0026ldquo;httpd\u0026rdquo; rpm -qi package_name вывести информацию о конкретном пакете rpm -qg \u0026ldquo;System Environment/Daemons\u0026rdquo; отобразить пакеты входящие в группу пакетов rpm -ql package_name вывести список файлов, входящих в пакет rpm -qc package_name вывести список конфигурационных файлов, входящих в пакет rpm -q package_name \u0026ndash;whatrequires вывести список пакетов, необходимых для установки конкретного пакета по зависимостям rpm -q package_name \u0026ndash;whatprovides show capability provided by a rpm package rpm -q package_name \u0026ndash;scripts отобразит скрипты, запускаемые при установке/удалении пакета rpm -q package_name \u0026ndash;changelog вывести историю ревизий пакета rpm -qf /etc/httpd/conf/httpd.conf проверить какому пакету принадлежит указанный файл. Указывать следует полный путь и имя файла. rpm -qp package.rpm -l отображает список файлов, входящих в пакет, но ещё не установленных в систему rpm \u0026ndash;import /media/cdrom/RPM-GPG-KEY импортировать публичный ключ цифровой подписи rpm \u0026ndash;checksig package.rpm проверит подпись пакета rpm -qa gpg-pubkey проверить целостность установленного содержимого пакета rpm -V package_name проверить размер, полномочия, тип, владельца, группу, MD5-сумму и дату последнего изменения пакета rpm -Va проверить содержимое всех пакеты установленные в систему. Выполняйте с осторожностью! rpm -Vp package.rpm проверить пакет, который ещё не установлен в систему rpm2cpio package.rpm | cpio \u0026ndash;extract \u0026ndash;make-directories *bin* извлечь из пакета файлы содержащие в своём имени \u0026ldquo;bin\u0026rdquo; rpm -ivh /usr/src/redhat/RPMS/`arch`/package.rpm установить пакет, собранный из исходных кодов rpmbuild \u0026ndash;rebuild package_name.src.rpm собрать пакет из исходных кодов YUM - средство обновления пакетов(Fedora, RedHat и тому подобное) Команда Описание yum install package_name закачать и установить пакет yum update обновить все пакеты, установленные в систему yum update package_name обновить пакет yum remove package_name удалить пакет yum list вывести список всех пакетов, установленных в систему yum search package_name найти пакет в репозитории yum clean packages очисть rpm-кэш, удалив закачанные пакеты yum clean headers удалить все заголовки файлов, которые система использует для разрешения зависимостей yum clean all очисть rpm-кэш, удалив закачанные пакеты и заголовки DEB пакеты (Debian, Ubuntu и тому подобное) Команда Описание dpkg -i package.deb установить / обновить пакет dpkg -r package_name удалить пакет из системы dpkg -l показать все пакеты, установленные в систему dpkg -l | grep httpd среди всех пакетов, установленных в системе, найти пакет содержащий в своём имени \u0026ldquo;httpd\u0026rdquo; dpkg -s package_name отобразить информацию о конкретном пакете dpkg -L package_name вывести список файлов, входящих в пакет, установленный в систему dpkg \u0026ndash;contents package.deb отобразить список файлов, входящих в пакет, который ешё не установлен в систему dpkg -S /bin/ping найти пакет, в который входит указанный файл. APT - средство управление пакетами (Debian, Ubuntu и тому подобное) Команда Описание apt-get install package_name установить / обновить пакет apt-cdrom install package_name установить / обновить пакет с cdrom\u0026rsquo;а apt-get update получить обновлённые списки пакетов apt-get upgrade обновить пакеты, установленные в систему apt-get remove package_name удалить пакет, установленный в систему с сохранением файлов конфигурации apt-get purge package_name удалить пакет, установленный в систему с удалением файлов конфигурации apt-get check проверить целостность зависимостей apt-get clean удалить загруженные архивные файлы пакетов apt-get autoclean удалить старые загруженные архивные файлы пакетов Просмотр содержимого файлов Команда Описание cat file1 вывести содержимое файла \u0026ldquo;file1\u0026rdquo; на стандартное устройство вывода tac file1 вывести содержимое файла \u0026ldquo;file1\u0026rdquo; на стандартное устройство вывода в обратном порядке (последняя строка становиться первой и т.д.) more file1 постраничный вывод содержимого файла \u0026ldquo;file1\u0026rdquo; на стандартное устройство вывода less file1 постраничный вывод содержимого файла \u0026ldquo;file1\u0026rdquo; на стандартное устройство вывода, но с возможностью пролистывания в обе стороны (вверх-вниз), поиска по содержимому и т.п. head -2 file1 вывести первые две строки файла \u0026ldquo;file1\u0026rdquo; на стандартное устройство вывода. По-умолчанию выводится десять строк tail -2 file1 вывести последние две строки файла \u0026ldquo;file1\u0026rdquo; на стандартное устройство вывода. По-умолчанию выводится десять строк tail -f /var/log/messages выводить содержимое файла \u0026ldquo;/var/log/messages\u0026rdquo; на стандартное устройство вывода по мере появления в нём текста. Манипуляции с текстом Команда Описание cat file | grep -i \u0026ldquo;Criteria\u0026rdquo; \u0026gt; result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в новый cat file | grep -i \u0026ldquo;Criteria\u0026rdquo; \u0026raquo; result.txt общий синтаксис выполнения действий по обработке содержимого файла и вывода результата в существующий файл. Если файл не существует, он будет создан grep Aug /var/log/messages из файла \u0026ldquo;/var/log/messages\u0026rdquo; отобрать и вывести на стандартное устройство вывода строки, содержащие \u0026ldquo;Aug\u0026rdquo; grep ^Aug /var/log/messages из файла \u0026ldquo;/var/log/messages\u0026rdquo; отобрать и вывести на стандартное устройство вывода строки, начинающиеся на \u0026ldquo;Aug\u0026rdquo; grep [0-9] /var/log/messages из файла \u0026ldquo;/var/log/messages\u0026rdquo; отобрать и вывести на стандартное устройство вывода строки, содержащие цифры grep Aug -R /var/log/* отобрать и вывести на стандартное устройство вывода строки, содержащие \u0026ldquo;Aug\u0026rdquo;, во всех файлах, находящихся в директории /var/log и ниже sed \u0026rsquo;s/stringa1/stringa2/g\u0026rsquo; example.txt в файле \u0026ldquo;example.txt\u0026rdquo; заменить \u0026ldquo;string1\u0026rdquo; на \u0026ldquo;string2\u0026rdquo;, результат вывести на стандартное устройство вывода. sed \u0026lsquo;/^$/d\u0026rsquo; example.txt удалить пустые строки из файла \u0026ldquo;example.txt\u0026rdquo; sed \u0026lsquo;/ *#/d; /^$/d\u0026rsquo; example.txt удалить пустые строки и комментарии из \u0026ldquo;файла example.txt\u0026rdquo; echo \u0026rsquo;test\u0026rsquo; | tr \u0026lsquo;[:lower:]\u0026rsquo; \u0026lsquo;[:upper:]\u0026rsquo; преобразовать символы из нижнего регистра в верхний sed -e \u0026lsquo;1d\u0026rsquo; result.txt удалить первую строку из файла \u0026ldquo;example.txt\u0026rdquo; sed -n \u0026lsquo;/string1/p\u0026rsquo; отобразить только строки содержащие \u0026ldquo;string1\u0026rdquo; sed -e \u0026rsquo;s/ *$/ /\u0026rsquo; example.txt удалить пустые символы в в конце каждой строки sed -e \u0026rsquo;s/string1/ /g\u0026rsquo; example.txt удалить строку \u0026ldquo;string1\u0026rdquo; из текста не изменяя всего остального sed -n \u0026lsquo;1,8p;5q\u0026rsquo; example.txt взять из файла с первой по восьмую строки и из них вывести первые пять sed -n \u0026lsquo;5p;5q\u0026rsquo; example.txt вывести пятую строку sed -e \u0026rsquo;s/0*/0/g\u0026rsquo; example.txt заменить последовательность из любого количества нулей одним нулём cat -n file1 пронумеровать строки при выводе содержимого файла cat example.txt | awk \u0026lsquo;NR%2==1\u0026rsquo; при выводе содержимого файла, не выводить чётные строки файла echo a b c | awk \u0026lsquo;{print $1}\u0026rsquo; вывести первую колонку. Разделение, по-умолчанию, по пробелу/пробелам или символу/символам табуляции echo a b c | awk \u0026lsquo;{print $1,$3}\u0026rsquo; вывести первую и третью колонки. Разделение, по-умолчанию, по пробелу/пробелам или символу/символам табуляции paste file1 file2 объединить содержимое \u0026ldquo;file1\u0026rdquo; и \u0026ldquo;file2\u0026rdquo; в виде таблицы: строка 1 из file1 = строка 1 колонка 1-n, строка 1 из file2 = строка 1 колонка n+1-m paste -d \u0026lsquo;+\u0026rsquo; file1 file2 объединить содержимое \u0026ldquo;file1\u0026rdquo; и \u0026ldquo;file2\u0026rdquo; в виде таблицы с разделителем \u0026ldquo;+\u0026rdquo; sort file1 file2 отсортировать содержимое двух файлов sort file1 file2 | uniq отсортировать содержимое двух файлов, не отображая повторов sort file1 file2 | uniq -u отсортировать содержимое двух файлов, отображая только уникальные строки (строки, встречающиеся в обоих файлах, не выводятся на стандартное устройство вывода) sort file1 file2 | uniq -d отсортировать содержимое двух файлов, отображая только повторяющиеся строки comm -1 file1 file2 сравнить содержимое двух файлов, не отображая строки принадлежащие файлу \u0026ldquo;file1\u0026rdquo; comm -2 file1 file2 сравнить содержимое двух файлов, не отображая строки принадлежащие файлу \u0026ldquo;file2\u0026rdquo; comm -3 file1 file2 сравнить содержимое двух файлов, удаляя строки встречающиеся в обоих файлах Преобразование наборов символов и файловых форматов Команда Описание dos2unix filedos.txt fileunix.txt конвертировать файл текстового формата из MSDOS в UNIX (разница в символах возврата каретки) unix2dos fileunix.txt filedos.txt конвертировать файл текстового формата из UNIX в MSDOS (разница в символах возврата каретки) recode ..HTML \u0026lt; page.txt \u0026gt; page.html конвертировать содержимое тестового файла page.txt в html-файл page.html recode -l | more вывести список доступных форматов Анализ файловых систем Команда Описание badblocks -v /dev/hda1 проверить раздел hda1 на наличие bad-блоков fsck /dev/hda1 проверить/восстановить целостность linux-файловой системы раздела hda1 fsck.ext2 /dev/hda1 проверить/восстановить целостность файловой системы ext2 раздела hda1 e2fsck /dev/hda1 e2fsck -j /dev/hda1 проверить/восстановить целостность файловой системы ext3 раздела hda1 с указанием, что журнал расположен там же fsck.ext3 /dev/hda1 проверить/восстановить целостность файловой системы ext3 раздела hda1 fsck.vfat /dev/hda1 проверить/восстановить целостность файловой системы fat раздела hda1 fsck.msdos /dev/hda1 dosfsck /dev/hda1 Форматирование файловых систем Команда Описание mkfs /dev/hda1 создать linux-файловую систему на разделе hda1 mke2fs /dev/hda1 создать файловую систему ext2 на разделе hda1 mke2fs -j /dev/hda1 создать журналирующую файловую систему ext3 на разделе hda1 mkfs -t vfat 32 -F /dev/hda1 создать файловую систему FAT32 на разделе hda1 fdformat -n /dev/fd0 форматирование флоппи-диска без проверки mkswap /dev/hda3 создание swap-пространства на разделе hda3 swap-пространство Команда Описание mkswap /dev/hda3 создание swap-пространства на разделе hda3 swapon /dev/hda3 активировать swap-пространство, расположенное на разделе hda3 swapon /dev/hda2 /dev/hdb3 активировать swap-пространства, расположенные на разделах hda2 и hdb3 Создание резервных копий (backup) Команда Описание dump -0aj -f /tmp/home0.bak /home создать полную резервную копию директории \u0026ldquo;/home\u0026rdquo; в файл \u0026ldquo;/tmp/home0.bak\u0026rdquo; dump -1aj -f /tmp/home0.bak /home создать инкрементальную резервную копию директории \u0026ldquo;/home\u0026rdquo; в файл \u0026ldquo;/tmp/home0.bak\u0026rdquo; restore -if /tmp/home0.bak восстановить из резервной копии \u0026ldquo;/tmp/home0.bak\u0026rdquo; rsync -rogpav \u0026ndash;delete /home /tmp синхронизировать /tmp с /home rsync -rogpav -e ssh \u0026ndash;delete /home ip_address:/tmp синхронизировать через SSH-туннель rsync -az -e ssh \u0026ndash;delete ip_addr:/home/public /home/local синхронизировать локальную директорию с удалённой директорией через ssh-туннель со сжатием rsync -az -e ssh \u0026ndash;delete /home/local ip_addr:/home/public синхронизировать удалённую директорию с локальной директорией через ssh-туннель со сжатием dd bs=1M if=/dev/hda | gzip | ssh user@ip_addr \u0026lsquo;dd of=hda.gz\u0026rsquo; сделать \u0026ldquo;слепок\u0026rdquo; локального диска в файл на удалённом компьютере через ssh-туннель tar -Puf backup.tar /home/user создать инкрементальную резервную копию директории \u0026ldquo;/home/user\u0026rdquo; в файл \u0026ldquo;backup.tar\u0026rdquo; с сохранением полномочий ( cd /tmp/local/ \u0026amp;\u0026amp; tar c . ) | ssh -C user@ip_addr \u0026lsquo;cd /home/share/ \u0026amp;\u0026amp; tar x -p\u0026rsquo; копирование содержимого \u0026ldquo;/tmp/local\u0026rdquo; на удалённый компьютер через ssh-туннель в \u0026ldquo;/home/share/\u0026rdquo; ( tar c /home ) | ssh -C user@ip_addr \u0026lsquo;cd /home/backup-home \u0026amp;\u0026amp; tar x -p\u0026rsquo; копирование содержимого \u0026ldquo;/home\u0026rdquo; на удалённый компьютер через ssh-туннель в \u0026ldquo;/home/backup-home\u0026rdquo; tar cf - . | (cd /tmp/backup ; tar xf - ) копирование одной директории в другую с сохранением полномочий и линков find /home/user1 -name \u0026lsquo;*.txt\u0026rsquo; | \\ xargs cp -av \u0026ndash;target-directory=/home/backup/ \u0026ndash;parents поиск в \u0026ldquo;/home/user1\u0026rdquo; всех файлов, имена которых оканчиваются на \u0026ldquo;.txt\u0026rdquo;, и копирование их в другую директорию find /var/log -name \u0026lsquo;*.log\u0026rsquo; | tar cv \u0026ndash;files-from=- | bzip2 \u0026gt; log.tar.bz2 поиск в \u0026ldquo;/var/log\u0026rdquo; всех файлов, имена которых оканчиваются на \u0026ldquo;.log\u0026rdquo;, и создание bzip-архива из них dd if=/dev/hda of=/dev/fd0 bs=512 count=1 создать копию MBR (Master Boot Record) с /dev/hda на флоппи-диск dd if=/dev/fd0 of=/dev/hda bs=512 count=1 восстановить MBR с флоппи-диска на /dev/hda CDROM Команда Описание cdrecord -v gracetime=2 dev=/dev/cdrom -eject blank=fast -force Очистить перезаписываемый cdrom mkisofs /dev/cdrom \u0026gt; cd.iso Создать ISO-образ CDROM mkisofs /dev/cdrom | gzip \u0026gt; cd_iso.gz Создать ISO-образ CDROM со сжатием mkisofs -J -allow-leading-dots -R -V \u0026ldquo;Label CD\u0026rdquo; -iso-level 4 -o ./cd.iso data_cd Создать ISO-образ директории cdrecord -v dev=/dev/cdrom cd.iso Записать образ на болванку gzip -dc cd_iso.gz | cdrecord dev=/dev/cdrom - Записать сжатый образ на болванку mount -o loop cd.iso /mnt/iso Примонтировать ISO-образ cd-paranoia -B Сграбить треки с CD-диска в файлы WAV-формата cd-paranoia \u0026ndash; \u0026ldquo;-3\u0026rdquo; Сграбить три первые дорожки в файлы WAV-формата cdrecord \u0026ndash;scanbus Просканировать шину для обределения канала SCSI Сеть (LAN и WiFi) Команда Описание ifconfig eth0 показать конфигурацию сетевого интерфейса eth0 ifup eth0 активировать (поднять) интерфейс eth0 ifdown eth0 деактивировать (опустить) интерфейс eth0 ifconfig eth0 192.168.1.1 netmask 255.255.255.0 выставить интерфейсу eth0 ip-адрес и маску подсети ifconfig eth0 promisc перевести интерфейс eth0 в promiscuous-режим для \u0026ldquo;отлова\u0026rdquo; пакетов (sniffing) ifconfig eth0 -promisc отключить promiscuous-режим на интерфейсе eth0 dhclient eth0 активировать интерфейс eth0 в dhcp-режиме. route -n вывести локальную таблицу маршрутизации netstat -rn route add -net 0/0 gw IP_Gateway задать ip-адрес шлюза по умолчанию (default gateway) route add -net 192.168.0.0 netmask 255.255.0.0 gw 192.168.1.1 добавить статический маршрут в сеть 192.168.0.0/16 через шлюз с ip-адресом 192.168.1.1 route del 0/0 gw IP_gateway удалить ip-адрес шлюза по умолчанию (default gateway) echo \u0026ldquo;1\u0026rdquo; \u0026gt; /proc/sys/net/ipv4/ip_forward разрешить пересылку пакетов (forwarding) hostname отобразить имя компьютера host www.yandex.ru разрешить имя \u0026ldquo;www.yandex.ru\u0026rdquo; хоста в ip-адрес и наоборот host 93.158.134.3 ip link show отобразить состояние всех интерфейсов mii-tool eth0 отобразить статус и тип соединения для интерфейса eth0 ethtool eth0 отображает статистику интерфеса eth0 с выводом такой информации, как поддерживаемые и текущие режимы соединения netstat -tupn отображает все установленные сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID\u0026rsquo;ы и имена процессов, обеспечивающих эти соединения netstat -tupln отображает все сетевые соединения по протоколам TCP и UDP без разрешения имён в ip-адреса и PID\u0026rsquo;ы и имена процессов, слушающих порты tcpdump tcp port 80 отобразить весь трафик на TCP-порт 80 (обычно - HTTP) iwlist scan просканировать эфир на предмет, доступности беспроводных точек доступа iwconfig eth1 показать конфигурацию беспроводного сетевого интерфейса eth1 traceroute www.ya.ru Трассировка маршрута до указанного хоста (www.ya.ru), аналог tracert в Windows. В некоторых дистрибутивах установлен по-умолчанию только traceroute6 и придётся доустанавливать вручную. Microsoft Windows networks(SAMBA) Команда Описание nbtscan ip_addr разрешить netbios-имя nbtscan не во всех системах ставится по-умолчанию, возможно, придётся доустанавливать вручную. nmblookup включен в пакет samba. nmblookup -A ip_addr smbclient -L ip_addr/hostname отобразить ресурсы, предоставленные в общий доступ на windows-машине smbget -Rr smb:/ /ip_addr/share подобно wget может получить файлы с windows-машин через smb-протокол mount -t smbfs -o username=user,password=pass / /winclient/share /mnt/share смонтировать smb-ресурс, предоставленный на windows-машине, в локальную файловую систему IPTABLES (firewall) Команда Описание iptables -t filter -nL отобразить все цепочки правил iptables -nL iptables -t nat -L отобразить все цепочки правил в NAT-таблице iptables -t filter -F очистить все цепочки правил в filter-таблице iptables -F iptables -t nat -F очистить все цепочки правил в NAT-таблице iptables -t filter -X удалить все пользовательские цепочки правил в filter-таблице iptables -t filter -A INPUT -p tcp \u0026ndash;dport telnet -j ACCEPT позволить входящее подключение telnet\u0026rsquo;ом iptables -t filter -A OUTPUT -p tcp \u0026ndash;dport http -j DROP блокировать исходящие HTTP-соединения iptables -t filter -A FORWARD -p tcp \u0026ndash;dport pop3 -j ACCEPT позволить \u0026ldquo;прокидывать\u0026rdquo; (forward) POP3-соединения iptables -t filter -A INPUT -j LOG \u0026ndash;log-prefix \u0026ldquo;DROP INPUT\u0026rdquo; включить журналирование ядром пакетов, проходящих через цепочку INPUT, и добавлением к сообщению префикса \u0026ldquo;DROP INPUT\u0026rdquo; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE включить NAT (Network Address Translate) исходящих пакетов на интерфейс eth0. Допустимо при использовании с динамически выделяемыми ip-адресами. iptables -t nat -A PREROUTING -d 192.168.0.1 -p tcp -m tcp \u0026ndash;dport 22 \\ -j DNAT \u0026ndash;to-destination 10.0.0.2:22 перенаправление пакетов, адресованных одному хосту, на другой хост Мониторинг и отладка Команда Описание top отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (с автоматическим обновлением данных) ps -eafw отобразить запущенные процессы, используемые ими ресурсы и другую полезную информацию (единожды) ps -e -o pid,args \u0026ndash;forest вывести PID\u0026rsquo;ы и процессы в виде дерева pstree отобразить дерево процессов kill -9 98989 \u0026ldquo;убить\u0026rdquo; процесс с PID 98989 \u0026ldquo;насмерть\u0026rdquo; (без соблюдения целостности данных) kill -KILL 98989 kill -TERM 98989 Корректно завершить процесс с PID 98989 kill -1 98989 заставить процесс с PID 98989 перепрочитать файл конфигурации kill -HUP 98989 lsof -p 98989 отобразить список файлов, открытых процессом с PID 98989 lsof /home/user1 отобразить список открытых файлов из директории \u0026ldquo;/home/user1\u0026rdquo; lsof -iTCP:59302 показать приложение, которое использует TCP-порт 59302 (не обязательно слушает) strace -c ls \u0026gt; /dev/null вывести список системных вызовов, созданных и полученных процессом ls strace -f -e open ls \u0026gt; /dev/null вывести вызовы бибилотек watch -n1 \u0026lsquo;cat /proc/interrupts\u0026rsquo; отображать прерывания в режиме реального времени last reboot отобразить историю перезагрузок системы last user1 отобразить историю регистрации пользователя \u0026ldquo;user1\u0026rdquo; в системе и время его нахождения в ней lsmod вывести загруженные модули ядра free -m показать состояние оперативной памяти в мегабайтах smartctl -A /dev/hda контроль состояния жёсткого диска /dev/hda через SMART smartctl -i /dev/hda проверить доступность SMART на жёстком диске /dev/hda tail /var/log/dmesg вывести десять последних записей из журнала загрузки ядра tail /var/log/messages вывести десять последних записей из системного журнала Другие полезные команды Команда Описание apropos …keyword выводит список комманд, которые так или иначе относятся к ключевым словам. Полезно, когда вы знаете что делает программа, но не помните команду man ping вызов руководства по работе с программой, в данном случае, - ping whatis …keyword отображает описание действий указанной программы mkbootdisk \u0026ndash;device /dev/fd0 `uname -r` создаёт загрузочный флоппи-диск gpg -c file1 шифрует файл file1 с помощью GNU Privacy Guard gpg file1.gpg дешифрует файл file1 с помощью GNU Privacy Guard wget -r www.example.com загружает рекурсивно содержимое сайта www.example.com wget -c www.example.com/file.iso загрузить файл www.example.com/file.iso с возможностью останова и продолжения в последствии echo \u0026lsquo;wget -c www.example.com/files.iso' | at 09:00 начать закачку в указанное время ldd /usr/bin/ssh вывести список библиотек, необходимых для работы ssh alias hh=\u0026lsquo;history\u0026rsquo; назначить алиас hh команде history ","description":" Системная информация Остановка системы Файлы и директории Поиск файлов Монтирование файловых систем Дисковое пространство Пользователи и группы Выставление/изменение полномочий на файлы Специальные атрибуты файлов Архивирование и сжатие файлов RPM пакеты (Fedora, Red Hat и тому подобное) YUM - средство обновления пакетов(Fedora, RedHat и тому подобное) DEB пакеты (Debian, Ubuntu и тому подобное) APT - средство управление пакетами (Debian, Ubuntu и тому подобное) Просмотр содержимого файлов Манипуляции с текстом Преобразование наборов символов и файловых форматов Анализ файловых систем Форматирование файловых систем swap-пространство Создание резервных копий (backup) CDROM Сеть (LAN и WiFi) Microsoft Windows networks(SAMBA) IPTABLES (firewall) Мониторинг и отладка Другие полезные команды Системная информация Команда Описание arch отобразить архитектуру компьютера uname -m \u0026ndash; // \u0026ndash; uname -r отобразить используемую версию ядра dmidecode -q показать аппаратные системные компоненты - (SMBIOS / DMI) hdparm -i /dev/hda вывести характеристики жесткого диска hdparm -tT /dev/sda протестировать производительность чтения данных с жесткого диска cat /proc/cpuinfo отобразить информацию о процессоре cat /proc/interrupts показать прерывания cat /proc/meminfo проверить использование памяти cat /proc/swaps показать файл(ы) подкачки cat /proc/version вывести версию ядра cat /proc/net/dev показать сетевые интерфейсы и статистику по ним cat /proc/mounts отобразить смонтированные файловые системы lspci -tv показать в виде дерева PCI устройства lsusb -tv показать в виде дерева USB устройства date вывести системную дату cal 2007 вывести таблицу-календарь 2007-го года date 041217002007.00 установить системные дату и время ММДДЧЧммГГГГ.СС (МесяцДеньЧасМинутыГод.Секунды) clock -w сохранить системное время в BIOS Остановка системы | Команда | Описание |\n"},{"id":4,"href":"/games/godot/","title":"Godot","parent":"Игры","content":" Полезная информация по свободному игровому движку Godot GdScript ","description":" Полезная информация по свободному игровому движку Godot GdScript "},{"id":5,"href":"/tags/%D0%B8%D0%B3%D1%80%D0%BE%D0%B2%D1%8B%D0%B5-%D0%B4%D0%B2%D0%B8%D0%B6%D0%BA%D0%B8/","title":"Игровые Движки","parent":"Tags","content":"","description":""},{"id":6,"href":"/tags/%D0%B8%D0%B3%D1%80%D1%8B/","title":"Игры","parent":"Tags","content":"","description":""},{"id":7,"href":"/games/godot/gdscript/","title":"GdScript","parent":"Godot","content":" Информация по языку программирования GdScript Простейший контроллер для управления камерой от первого лица Этот код можно прицепить прямо к камере. В нём реализован поворот мышкой и перемещение вперёд, назад, влево, вправо.\nextends Camera # accumulators var rot_x = 0 # сохраняет текущее вращение по оси X. var rot_y = 0 # сохраняет текущее вращение по оси Y. export var LOOKAROUND_SPEED = 0.01 # Скорости обзора. export var MOVE_SPEED = 0.1 # Скорость перемещения. func _physics_process(delta) -\u0026gt; void: if Input.is_action_pressed(\u0026#34;ui_left\u0026#34;): translate_object_local(Vector3.LEFT * MOVE_SPEED) if Input.is_action_pressed(\u0026#34;ui_right\u0026#34;): translate_object_local(Vector3.RIGHT * MOVE_SPEED) if Input.is_action_pressed(\u0026#34;ui_up\u0026#34;): translate_object_local(Vector3(0, 0, -MOVE_SPEED)) if Input.is_action_pressed(\u0026#34;ui_down\u0026#34;): translate_object_local(Vector3(0, 0, MOVE_SPEED)) func _input(event) -\u0026gt; void: if event is InputEventMouseMotion and event.button_mask \u0026amp; 1: # modify accumulated mouse rotation rot_x += event.relative.x * LOOKAROUND_SPEED rot_y += event.relative.y * LOOKAROUND_SPEED transform.basis = Basis() # reset rotation rotate_object_local(Vector3(0, -1, 0), rot_x) # first rotate in Y rotate_object_local(Vector3(-1, 0, 0), rot_y) # then rotate in X Можно взять готовый скрипт под godot 4 от adamviola.\n","description":" Информация по языку программирования GdScript Простейший контроллер для управления камерой от первого лица Этот код можно прицепить прямо к камере. В нём реализован поворот мышкой и перемещение вперёд, назад, влево, вправо.\n"},{"id":8,"href":"/administration/linux/iptables/","title":"iptables","parent":"Linux","content":"Различные настройки iptables\nMASQUERADE Разрешить подключения к нужным портам Все входящие запрещены Разрешить уже установленные соединения Разрешить ping Сохранение настроек между запусками Полезные примеры. MASQUERADE iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE Разрешить подключения к нужным портам iptables -A INPUT -p tcp --dport 22 -j ACCEPT где 22 - это порт, который надо открыть\nВсе входящие запрещены iptables -P INPUT DROP Для того, чтобы при этом работали локальные подключения надо добавить следующее правило:\niptables -A INPUT -i lo -j ACCEPT Разрешить уже установленные соединения iptables -A INPUT -m state --state RELATED,ESTABLISHED -j ACCEPT Разрешить ping iptables -A INPUT -p icmp --icmp-type echo-request -j ACCEPT iptables -A OUTPUT -p icmp --icmp-type echo-reply -j ACCEPT Информация взята отсюда.\nСохранение настроек между запусками Удобно использовать пакет iptables-persistent.\nДля Debian-based дистрибутивов:\nsudo apt install iptables-persistent После установки автоматически будут сохранены текущие настройки в файлах:\n/etc/iptables/rules.v4 /etc/iptables/rules.v6 В дальнейшем, в случае сохранения новых правил надо выполнить команду:\nsudo iptables-save \u0026gt; /etc/iptables/rules.v4 или\nsudo ip6tables-save \u0026gt; /etc/iptables/rules.v6 ","description":"Различные настройки iptables\nMASQUERADE Разрешить подключения к нужным портам Все входящие запрещены Разрешить уже установленные соединения Разрешить ping Сохранение настроек между запусками Полезные примеры. MASQUERADE iptables -t nat -A POSTROUTING -o eth0 -s 192.168.0.0/24 -j MASQUERADE Разрешить подключения к нужным портам iptables -A INPUT -p tcp --dport 22 -j ACCEPT где 22 - это порт, который надо открыть\n"},{"id":9,"href":"/tags/windows/","title":"Windows","parent":"Tags","content":"","description":""},{"id":10,"href":"/tags/%D0%B0%D0%B4%D0%BC%D0%B8%D0%BD%D0%B8%D1%81%D1%82%D1%80%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/","title":"Администрирование","parent":"Tags","content":"","description":""},{"id":11,"href":"/administration/windows/useful-programs/","title":"Полезные программы","parent":"Windows","content":"Список программ, полезных для администрирования Windows.\nСистемные утилиты Hayabusa - утилита для анализа Windows Events. ","description":"Список программ, полезных для администрирования Windows.\nСистемные утилиты Hayabusa - утилита для анализа Windows Events. "},{"id":12,"href":"/testing/libraries/","title":"Библиотеки для автоматизации","parent":"Тестирование","content":"Библиотеки для автоматизированного тестирования\nJava REST WEB HTTP Генерация данных JSON Прочие Kotlin .Net Specflow Golang Groovy Java REST rest-assured.io Документация retrofit - одна из популярных библиотек. WEB Severenity - это фреймворк с открытым исходным кодом для написания функциональных тестов, в который из коробки встроена система генерации отчетов о выполненных тестах. HTTP mock-server - настраиваемый mock-сервер. GitHub.\nГенерация данных java-faker - генерация разных данных. JavaDoc.\nJSON JsonUnit - проверка json. Позволяет интегрироваться с AssertJ, поддерживает Kotlin. Прочие Graphwalker - автоматические построение графа обхода тестовых случаев. GitHub. QVisual (https://github.com/TinkoffCreditSystems/QVisual). Библиотека для сравнения отображаемой страницы в браузере с эталоном. Kotlin Kotlintest. Документация. dynatest. kotest GitHub. Kaspresso - автоматизация UI от Касперского. kirl - типа аналог Geb. .Net Specflow Официальный сайт.\nCreateDynamicInstance – SpecFlow Assist Dynamic Примеры получения различных типов данных из таблицы.\nGolang Dockertest позволяет запускать, опускать образы в докере из кода. Groovy webtau - dsl на groovy для web-тестирования. Возможно на замену Geb. GitHub. ","description":"Библиотеки для автоматизированного тестирования\nJava REST WEB HTTP Генерация данных JSON Прочие Kotlin .Net Specflow Golang Groovy Java REST rest-assured.io Документация retrofit - одна из популярных библиотек. WEB Severenity - это фреймворк с открытым исходным кодом для написания функциональных тестов, в который из коробки встроена система генерации отчетов о выполненных тестах. HTTP mock-server - настраиваемый mock-сервер. GitHub.\n"},{"id":13,"href":"/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/","title":"Программирование","parent":"Tags","content":"","description":""},{"id":14,"href":"/tags/%D1%82%D0%B5%D1%81%D1%82%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5/","title":"Тестирование","parent":"Tags","content":"","description":""},{"id":15,"href":"/other/","title":"Разная информация","parent":"Тут всё начинается","content":"Здесь хранятся ссылка на разные разности в сети.\nИдеальный тестировщик\nProject Oberon (New Edition 2013) Project Oberon Процессор и операционная система от Никлауса Вирта. Эмулятор оберона для x86.\n12 общедоступных web-архивов Информация взята отсюда.\n180 000+ сканов и фотографий от Нью-Йоркской публичной библиотеки. 12 000+ книг и документов от Мировой цифровой библиотеки. 4 500 изображений от Британского музея Old Book Illustrations - более 1000 книжных иллюстраций XVIII–XX вв. 230+ редких документальных фильмов 1926-2008 гг. Редкие издания русской эмигрантской прессы. 65 000 оцифрованных картин от Музея современного искусства в Нью-Йорке Большой архив советских учебников. Коллекции Гарвардской библиотеки 1 000 000+ изображений от Британской библиотеки Сайт, посвященный личным дневникам ХХ века Огромная база исторических изображений ","description":"Здесь хранятся ссылка на разные разности в сети.\nИдеальный тестировщик\nProject Oberon (New Edition 2013) Project Oberon Процессор и операционная система от Никлауса Вирта. Эмулятор оберона для x86.\n12 общедоступных web-архивов Информация взята отсюда.\n"},{"id":16,"href":"/tags/%D1%80%D0%B0%D0%B7%D0%BD%D0%BE%D0%B5/","title":"Разное","parent":"Tags","content":"","description":""},{"id":17,"href":"/tags/%D1%81%D1%81%D1%8B%D0%BB%D0%BA%D0%B8/","title":"Ссылки","parent":"Tags","content":"","description":""},{"id":18,"href":"/tags/%D0%BC%D0%BE%D0%BD%D0%B8%D1%82%D0%BE%D1%80%D0%B8%D0%BD%D0%B3/","title":"Мониторинг","parent":"Tags","content":"","description":""},{"id":19,"href":"/programming/monitoring/","title":"Мониторинг","parent":"Программирование","content":" Prometheus Вычисление процентов загрузки CPU на основании времени использования Checkup Pyroscope Prometheus Сайт\nОфициальная документация. Информация по запросам.\nБлог создателей Prometheus со всякой полезной информацией.\nВычисление процентов загрузки CPU на основании времени использования Информация взята из understanding-machine-cpu-usage блога разработчиков Prometheus.\nПри использовании node_exporter:\n100 - (avg by (instance) (irate(node_cpu_seconds_total{job=\u0026#34;node\u0026#34;,mode=\u0026#34;idle\u0026#34;}[5m])) * 100) где node - имя node_exporter, заданное в настройках Prometheus.\nДля метрик, взятых из прочих экспортёров, где подсчитывается только время затраченное экспортером в секундах:\n(avg by (job) (irate(process_cpu_seconds_total[5m])) * 100) Checkup Официальный сайт.\nSimple uptime monitoring. Исходники на Github.\nPyroscope Официальный сайт. Github\nOnline мониторинг программ на GO, Python и Ruby. В дальнейшем планируется Node и linux eBPF.\n","description":" Prometheus Вычисление процентов загрузки CPU на основании времени использования Checkup Pyroscope Prometheus Сайт\nОфициальная документация. Информация по запросам.\nБлог создателей Prometheus со всякой полезной информацией.\nВычисление процентов загрузки CPU на основании времени использования Информация взята из understanding-machine-cpu-usage блога разработчиков Prometheus.\n"},{"id":20,"href":"/tags/%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D1%8B/","title":"Программы","parent":"Tags","content":"","description":""},{"id":21,"href":"/administration/useful-programs/","title":"Полезные программы","parent":"Администрирование","content":"Описание разных, программ, используемых в администрировании.\nOAuth2 oauth2_proxy - программа поддерживает несколько способов авторизации, включая, через Azure. Vpn и прочее Global Socket - позволяет общаться компьютерам прозрачно между собой. Работает, в том числе и через VPN. Мониторинг и информация по системе (Windows) HWInfo - бесплатная утилита для получения разнообразной информации о системе. ","description":"Описание разных, программ, используемых в администрировании.\nOAuth2 oauth2_proxy - программа поддерживает несколько способов авторизации, включая, через Azure. Vpn и прочее Global Socket - позволяет общаться компьютерам прозрачно между собой. Работает, в том числе и через VPN. Мониторинг и информация по системе (Windows) HWInfo - бесплатная утилита для получения разнообразной информации о системе. "},{"id":22,"href":"/administration/windows/","title":"Windows","parent":"Администрирование","content":"Различная информация по Windows.\nПросмотр IP с которого было подключение по RDP Просмотр доменных групп, в которых состоит пользователь Как собрать дампы памяти Просмотр IP с которого было подключение по RDP Открыть системную оснастку Просмотр событий/Event viewer. Далее открыть Журналы приложений и служб/Microsoft/TerminalServices-RemoteConnectionManager/Operational (Applications and Services Logs/Microsoft/TerminalServices-RemoteConnectionManager/Operational). В списке нужно найти запись с EventID=1149 за требуемое время. В этом событие будет информация типа:\nRemote Desktop Services: User authentication succeeded: User: \u0026lt;user\u0026gt; Domain: \u0026lt;domain\u0026gt; Source Network Address: 50.24.123.168 Просмотр доменных групп, в которых состоит пользователь gpresult /USER \u0026lt;domen\u0026gt;\\\u0026lt;user\u0026gt; /V Как собрать дампы памяти TODO: добавить небольшое описание со страницы WER Settings\nРазличные способы собрать дампы памяти в Windows\n","description":"Различная информация по Windows.\nПросмотр IP с которого было подключение по RDP Просмотр доменных групп, в которых состоит пользователь Как собрать дампы памяти Просмотр IP с которого было подключение по RDP Открыть системную оснастку Просмотр событий/Event viewer. Далее открыть Журналы приложений и служб/Microsoft/TerminalServices-RemoteConnectionManager/Operational (Applications and Services Logs/Microsoft/TerminalServices-RemoteConnectionManager/Operational). В списке нужно найти запись с EventID=1149 за требуемое время. В этом событие будет информация типа:\n"},{"id":23,"href":"/tags/web/","title":"Web","parent":"Tags","content":"","description":""},{"id":24,"href":"/programming/web/","title":"Web","parent":"Программирование","content":"Здесь указаны разные frameworks для написания web-приложений\nVue.js. Перспективный Framework Документация на русском. Gui Framework для него. Ещё один - Material Design. AngularJs. Framework, поддерживаемый Google. Документация. React. Framework от Facebook. Документация. Flutter - SDK от Google для написания мобильных и Web-приложений. Документация. WYSIWYG trix-editor. Github. Bulma - позволяет создавать странички только через CSS. Hugo. Документация. Framework для создания статического сайта на основе markdown. ","description":"Здесь указаны разные frameworks для написания web-приложений\nVue.js. Перспективный Framework Документация на русском. Gui Framework для него. Ещё один - Material Design. AngularJs. Framework, поддерживаемый Google. Документация. React. Framework от Facebook. Документация. Flutter - SDK от Google для написания мобильных и Web-приложений. Документация. WYSIWYG trix-editor. Github. Bulma - позволяет создавать странички только через CSS. Hugo. Документация. Framework для создания статического сайта на основе markdown. "},{"id":25,"href":"/tags/%D0%B3%D1%80%D0%B0%D1%84%D0%B8%D0%BA%D0%B0/","title":"Графика","parent":"Tags","content":"","description":""},{"id":26,"href":"/tags/%D0%BC%D0%B0%D1%82%D0%B5%D1%80%D0%B8%D0%B0%D0%BB%D1%8B/","title":"Материалы","parent":"Tags","content":"","description":""},{"id":27,"href":"/tags/%D1%82%D0%B5%D0%BA%D1%81%D1%82%D1%83%D1%80%D1%8B/","title":"Текстуры","parent":"Tags","content":"","description":""},{"id":28,"href":"/3d-vfx-video/textures-and-materials/","title":"Текстуры и материалы","parent":"3D, VFX, Видео","content":"Ссылки на архивы тестур и программы для их создания\nТекстуры BlendFab - библиотека, в том числе, бесплатных текстур, материалов и моделей. Можно скачать сразу .blender-файлы. Текстура Луны от NASA. Включает карту основного цвета и displacement. Текстуры от 3d Wolf. Планеты, листва. Poliigon - есть бесплатные текстуры. Quixel. Была куплена Epic Games, теперь бесплатна при использовании в unrealEngine. в остальных проектах - по подписке. SharedTextures - 500 бесплатных текстур. Public Domain Textures - от Frederic Hoffmann. texturebox.com - бесплатные текстуры от группы товарищей. cc0textures.com - набор бесплатных текстур. FreePBR - набор беслатных PBR текстур. Textures.com - один из старейших ресурсов. Но нет бесплатных. Gametextures - заточка под игровые движки, но может пригодится. Есть бесплатные. 3DJungle - набор бесплатных текстур. Free 42k Earth Displacement Map. 3dassets.one - поиск текстур. Текстуры на PolyHeaven. Материалы от AMD в формате materialX. Можно руками настроить в Blender. cgbookcase.com - бесплатные текстуры, плюс полезная информация. textureninja - много текстур. Но без карт нормальей и прочих. HDRI hdrmaps - большой набор текстур. Чтобы скачать бесплатно надо после выбора текстуры выбрать Free 2K sample Download. LocationTextures - бесплатно можно скачать в разрешении 4k. HDRIHeaven - куча HDRI-карт и текстур. От Элвиса Поса. HDRI на Poly Heaven. Программы для создания текстур Armorpaint - свободный аналог substance Painter. GitHub. Material Maker - генератор текстур на базе игрового движка Godot. MIXER - бесплатный софт для создания текстур. Для подписчиков Unreal Engine ещё и куча материалов. Декали Набор декалей от Sanctus. Видео как их можно использовать в Blender. Наборы от Chuck CG Разные наборы CG-студия Kaiserbold Деревья. Люди. Небо. Деревья Материалы Бесплатные материалы от Julio Sillet. Материал леса от Gabriel de Laubier. ","description":"Ссылки на архивы тестур и программы для их создания\nТекстуры BlendFab - библиотека, в том числе, бесплатных текстур, материалов и моделей. Можно скачать сразу .blender-файлы. Текстура Луны от NASA. Включает карту основного цвета и displacement. Текстуры от 3d Wolf. Планеты, листва. Poliigon - есть бесплатные текстуры. Quixel. Была куплена Epic Games, теперь бесплатна при использовании в unrealEngine. в остальных проектах - по подписке. SharedTextures - 500 бесплатных текстур. Public Domain Textures - от Frederic Hoffmann. texturebox.com - бесплатные текстуры от группы товарищей. cc0textures.com - набор бесплатных текстур. FreePBR - набор беслатных PBR текстур. Textures.com - один из старейших ресурсов. Но нет бесплатных. Gametextures - заточка под игровые движки, но может пригодится. Есть бесплатные. 3DJungle - набор бесплатных текстур. Free 42k Earth Displacement Map. 3dassets.one - поиск текстур. Текстуры на PolyHeaven. Материалы от AMD в формате materialX. Можно руками настроить в Blender. cgbookcase.com - бесплатные текстуры, плюс полезная информация. textureninja - много текстур. Но без карт нормальей и прочих. HDRI hdrmaps - большой набор текстур. Чтобы скачать бесплатно надо после выбора текстуры выбрать Free 2K sample Download. LocationTextures - бесплатно можно скачать в разрешении 4k. HDRIHeaven - куча HDRI-карт и текстур. От Элвиса Поса. HDRI на Poly Heaven. Программы для создания текстур Armorpaint - свободный аналог substance Painter. GitHub. Material Maker - генератор текстур на базе игрового движка Godot. MIXER - бесплатный софт для создания текстур. Для подписчиков Unreal Engine ещё и куча материалов. Декали Набор декалей от Sanctus. Видео как их можно использовать в Blender. Наборы от Chuck CG Разные наборы CG-студия Kaiserbold Деревья. Люди. Небо. Деревья Материалы Бесплатные материалы от Julio Sillet. Материал леса от Gabriel de Laubier. "},{"id":29,"href":"/3d-vfx-video/video/kdenlive/","title":"Kdenlive","parent":"Видео","content":"Всякие разности редактора нелинейного монтажа Kdenlive.\nОфициальный сайт.\nРешение проблемы с невозможностью управлять курсором на монтажном столе Краткое описание эффектов в видеоредакторе kdenlive Решение проблемы с невозможностью управлять курсором на монтажном столе Если:\nКурсором на монтажном столе невозможно управлять мышкой. Не работают клавиши стрелок для перехода на один кадр. То, скорее всего, проблема в настройке MLT. А точнее - в количестве потоков обработки. Значения больше единицы поддерживаются пока в экспериментальном режиме. Поэтому лучше поставить единицу:\nКраткое описание эффектов в видеоредакторе kdenlive Страница с описание на официальном сайте.\nБалтан - призрачные движения из нескольких кадров Динамический текст. По-умолчанию выводит тайм-код. Также позволяет выводить кучу других данных: Номер кадра. Имя файла. Время создание И кучу других. Нервозность. Эффект дёргания. Хорошо ложится под динамическую музыку. Световое граффити. Как будто рисуешь светом. Флиппо - переворот по оси X и Y. BurningTV - как будто активный объект горит. Random - как-то случайно меняет то ли кадры, то ли скорость. ","description":"Всякие разности редактора нелинейного монтажа Kdenlive.\nОфициальный сайт.\nРешение проблемы с невозможностью управлять курсором на монтажном столе Краткое описание эффектов в видеоредакторе kdenlive Решение проблемы с невозможностью управлять курсором на монтажном столе Если:\nКурсором на монтажном столе невозможно управлять мышкой. Не работают клавиши стрелок для перехода на один кадр. То, скорее всего, проблема в настройке MLT. А точнее - в количестве потоков обработки. Значения больше единицы поддерживаются пока в экспериментальном режиме. Поэтому лучше поставить единицу:\n"},{"id":30,"href":"/tags/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE/","title":"Видео","parent":"Tags","content":"","description":""},{"id":31,"href":"/tags/%D0%B2%D0%B8%D0%B4%D0%B5%D0%BE%D0%BC%D0%BE%D0%BD%D1%82%D0%B0%D0%B6/","title":"Видеомонтаж","parent":"Tags","content":"","description":""},{"id":32,"href":"/3d-vfx-video/video/","title":"Видео","parent":"3D, VFX, Видео","content":"В этом разделе собрана информация по видемонтажу и прочей работой с видео.\nKdenlive Параметры ffmpeg\nПолезные программы Handbrake - конвертер видео. ","description":"В этом разделе собрана информация по видемонтажу и прочей работой с видео.\nKdenlive Параметры ffmpeg\nПолезные программы Handbrake - конвертер видео. "},{"id":33,"href":"/3d-vfx-video/","title":"3D, VFX, Видео","parent":"Тут всё начинается","content":"В разделе собрана различная информация по работе с видеомонтажом, компьютерной графикой и тому подобное.\nBlender Addons Как избавиться от светлячков Полезные команды и клавиатурные сокращения Blender Полезные ссылки Разные вопросы по renderman Видео Kdenlive Текстуры и материалы remove.bg - cервис удаления фона фотографий. ","description":"В разделе собрана различная информация по работе с видеомонтажом, компьютерной графикой и тому подобное.\nBlender Addons Как избавиться от светлячков Полезные команды и клавиатурные сокращения Blender Полезные ссылки Разные вопросы по renderman Видео Kdenlive Текстуры и материалы remove.bg - cервис удаления фона фотографий. "},{"id":34,"href":"/tags/%D1%80%D0%B5%D1%88%D0%B5%D0%BD%D0%B8%D0%B5-%D0%BF%D1%80%D0%BE%D0%B1%D0%BB%D0%B5%D0%BC/","title":"Решение Проблем","parent":"Tags","content":"","description":""},{"id":35,"href":"/administration/linux/troubleshooting/","title":"Решение разных проблем","parent":"Linux","content":" NetworkManager не управляет сетью по различным причинам NetworkManager не управляет сетью по различным причинам В случае, если интерфейсов немного. Например, как на обычном компьютере то быстро исправить проблему можно следующим образом. В файл /etc/network/interfaces добавить следующие настройки для нужного проводного интерфейса:\nauto eth0 iface eth0 inet dhcp Таким образом будет инициализировать интерфейс eth0 без участия NetworkManager.\n","description":" NetworkManager не управляет сетью по различным причинам NetworkManager не управляет сетью по различным причинам В случае, если интерфейсов немного. Например, как на обычном компьютере то быстро исправить проблему можно следующим образом. В файл /etc/network/interfaces добавить следующие настройки для нужного проводного интерфейса:\nauto eth0 iface eth0 inet dhcp Таким образом будет инициализировать интерфейс eth0 без участия NetworkManager.\n"},{"id":36,"href":"/other/useful-programs/","title":"Разные полезные программы","parent":"Разная информация","content":" Форум Discourse. На нём работает automated-testing.info и forum.golangbridge.org. Система развёртывания pulumi. Исходный код на GitHub. Общение Аналог Slack, который можно развернуть локально mattermost.com. Исходный код на github. Чат tinode. Есть клиент на Android, web. Запись с экрана (Screencast) OBSProject - кросс-платформенный пакет для записи с экрана и/или трансляции.\nРисование Pencil - рисование GUI, диаграмм действия.\nЗаметки Outwiker. Zettlr. Документация. GitHub. Работа со звуком Musicbrainz Picard - программа для автоматического заполнения тегов файлов. Загрузка обложек и т.д. Конвертеры Pandoc - конвертер различных текстовых форматов. ","description":" Форум Discourse. На нём работает automated-testing.info и forum.golangbridge.org. Система развёртывания pulumi. Исходный код на GitHub. Общение Аналог Slack, который можно развернуть локально mattermost.com. Исходный код на github. Чат tinode. Есть клиент на Android, web. Запись с экрана (Screencast) OBSProject - кросс-платформенный пакет для записи с экрана и/или трансляции.\n"},{"id":37,"href":"/programming/useful-links/","title":"Полезные ссылки","parent":"Программирование","content":"Ссылки на разные проекты.\nБиблиотеки для раскрашивания синтаксиса Список ресурсов для поднятия навыков программирования Markdown Разное Библиотеки для раскрашивания синтаксиса Информация взята отсюда.\nHighlight.js Prism. Rainbow. Syntax Highlighter. Google Prettify. Список ресурсов для поднятия навыков программирования hackerrank.com exercism.io projecteuler.net codewars.com leetcode.com codefights.com codingame.com codeforces.com Markdown Описание классического синтаксиса от создателя.\nOnline редактор.\nОписание на-русском.\nОписание на Github. И его перевод на русский.\nРазное Transform - как CopyAsJson. Позволяет преобразовывать json в DTO на языке программирования. ","description":"Ссылки на разные проекты.\nБиблиотеки для раскрашивания синтаксиса Список ресурсов для поднятия навыков программирования Markdown Разное Библиотеки для раскрашивания синтаксиса Информация взята отсюда.\nHighlight.js Prism. Rainbow. Syntax Highlighter. Google Prettify. Список ресурсов для поднятия навыков программирования hackerrank.com exercism.io projecteuler.net codewars.com leetcode.com codefights.com codingame.com codeforces.com Markdown Описание классического синтаксиса от создателя.\n"},{"id":38,"href":"/tags/docker/","title":"Docker","parent":"Tags","content":"","description":""},{"id":39,"href":"/programming/docker/","title":"Docker","parent":"Программирование","content":"Полезная информация по Docker\nКак полностью удалить образы вместе с контейнерами Чтобы посмотреть все контейнеры нужно выполнить команду:\ndocker container ls -a Ключ -a указывает, что надо показывать все существующие контейнеры.\nПосле того, как мы получим список образов выбираем нужный и удаляем его следующей командой:\ndocker container rm -v \u0026lt;image_name\u0026gt; где:\n-v - ключ удаления связанного контейнера на диске, \u0026lt;image_name\u0026gt; - имя образа полученного, предыдущей командой. Теперь удаляем образы. Для получения всех образов выполняем команду:\ndocker images -a где -a - ключ для показа всех образов.\nНайдя нужный образ в списке удаляем его командой:\ndocker rmi \u0026lt;repository\u0026gt; где \u0026lt;repository\u0026gt; - имя удаляемого образа.\nУдалить все остановленные контейнеры docker container prune Полная документация\nУдалить старые контейнеры В данном примере больше недели:\ndocker ps --filter \u0026#34;status=exited\u0026#34; | grep \u0026#39;weeks ago\u0026#39; | awk \u0026#39;{print $1}\u0026#39; | xargs --no-run-if-empty docker rm ","description":"Полезная информация по Docker\nКак полностью удалить образы вместе с контейнерами Чтобы посмотреть все контейнеры нужно выполнить команду:\ndocker container ls -a Ключ -a указывает, что надо показывать все существующие контейнеры.\nПосле того, как мы получим список образов выбираем нужный и удаляем его следующей командой:\n"},{"id":40,"href":"/tags/go/","title":"Go","parent":"Tags","content":"","description":""},{"id":41,"href":"/programming/go/useful-programs/","title":"Полезные программы на Go","parent":"Go","content":"Различные программы, написанные на Go.\nРазное Консольные приложения Работа с файлами Хранение и версионирование кода Нагрузочное тестирование WEB Web-приложения Рисование графиков Обработка и трансформация данных Сеть Мониторинг Служебные Работа с графикой Работа с JSON Работа с картами, координатами и т.д. Общение Соцсети, fediverse Безопасность Базы данных и прочее Разное Простой Web Framework Echo Лёгкая wiki. Ketchup CMS, github. matterbridge. Мост для объединения различных средств общения (slack, tegeram, mattermost и т.д.). Hermes - сервер для обмена файлами. Croc - клиент-сервер для посылки файлов. Go из Shell neugram. Различные утилиты для проверки сетей (сканеры, парсеры сертификатов и т.д.) Zmap Github Вывод дерева зависимостей depth. Блог. В графическом виде go-callvis. qrcp - передача файлов с компа на мобилку, например, по QRCode. mage - замена make на Go. Исходники на GitHub. Консольные приложения wego - показ погоды в консоли. Работа с файлами godu - позволяет быстро просматривать каталоги с большим количеством файлов. lf - консольный менеджер файлов на Go. wzd - веб-сервер для работы с огромным количеством файлов. duf - отображение информации про диски. Работает только под Unix. fsql - поиск файлов в виде SQL. Хранение и версионирование кода Система хранения и версионирования кода - Gogs. Github. Gitea - склонированная и расширенная версия Gogs. Разворачивается локально. Исходники на GitHub. Lazygit (https://github.com/jesseduffield/lazygit). Консольный клиент для работы с git. Gitness - opensource проект. Разворачивается локально. GitHub. Нагрузочное тестирование K6. Документация. vegeta (https://github.com/tsenart/vegeta) - подключается, либо как библиотека, либо используется из командной строки. WEB Caddy - лёгкий и быстрый http-сервер как Nginx или Apache. Документация. Исходники на github. FRP - reverse-proxy. Casbin forum - реализация форума на Go и ReactJS. sftpgo - сервер, поддерживающий различные протоколы: SFTP, HTTP, FTP/S and WebDAV. И также различные системы хранения: local filesystem, encrypted local filesystem, S3 (compatible) Object Storage, Google Cloud Storage, Azure Blob Storage. Web-приложения wasmVision - wasm-приложения, использующее openCv для работы с камерой. Накладывает эффекты, типа размытия. Рисование графиков Chart - рисует график на основании данных из стандартного потока ввода. Примеры отображения. Статья об использовании.\nОбработка и трансформация данных Benthos (https://github.com/Jeffail/benthos). Документация. GoDoc. Watermill - получение/отправка собщений из/в различные источники данных и их обработка. Документация. Github. NATS - полноценный сервер для обмена сообщениями. Документация. GitHub. Сеть Termshark - анализатор дампов как WireShark только в консоли. sftpgo - полноценный sftp сервер. Ethr - измерение пропускной способности сети. sx - анализатор открытых портов по типу nmap. Собирать, правда надо самому. Есть зависимость на libpcap. Мониторинг Sampler. Статья на хабре. Github. gops - позволяет выводить диагностическую информацию в консоль о запущеных GO приложениях. Для полноценной работы используется в качестве библиотеки. Но может показывать информацию о занимаемой памяти, использования процессора и другое даже без внедрения. devdash - позволяет мониторить разные системы и отображать в терминале. Исходники на GitHub. SigNoz - какой-то ещё один офигенный мониторинг. Сайт. Служебные certigo - просмотр сертификатов из командной строки. duf - утилита для просмотра занятости дисков. Типа юниксовой {{df}}, только посимпатичнее и кроссплатформенная. Работа с графикой Gosaic - создание мозаичного панно из фотографий. Работа с JSON Gron (https://github.com/tomnomnom/gron) - парсит JSON и выводит пути элементов. Возможна и обратная операция. Работа с картами, координатами и т.д. tile38 (https://github.com/tidwall/tile38) - позволяет в реальном времени, вроде как, строить маршруты, отслеживать пересечения с областями и кучу чего ещё. Официальный сайт. Общение ion - распределённая система общения. Документация. Соцсети, fediverse GoToSocial - реализация сервера ActivityPub. Поддерживает mastodon. Официальная документация. Безопасность gitleaks (https://github.com/zricethezav/gitleaks) - сканирует репозитории кода на всякие утечки типа паролей. Базы данных и прочее CocroachDB. Высоконадёжная база данных. Распределённое хранилище файлов (Роб Пайк). GitHub. Minio Cloud Storage хранилище файлов. github. Документация. Godown(https://github.com/namreg/godown) - распределённое хранилище данных, типа Redis и Hazelcast. GoDoc. Может использоваться как отдельное приложения, так и из кода на Go. rqlite - распределённая база данных на Go. Под капотом sqllite. GoDoc. immudb - база данных на основе Block-chain. Обеспечивает целостность данных. Можно использовать как библиотеку в программах на Go. Документация. GitHub. usql - утилита для работы с разными БД. GoDoc. Vault - хранение паролей и прочей чувствительной информации. GitHub. Dolt - база данных с версионированием. Наподобие git. ","description":"Различные программы, написанные на Go.\nРазное Консольные приложения Работа с файлами Хранение и версионирование кода Нагрузочное тестирование WEB Web-приложения Рисование графиков Обработка и трансформация данных Сеть Мониторинг Служебные Работа с графикой Работа с JSON Работа с картами, координатами и т.д. Общение Соцсети, fediverse Безопасность Базы данных и прочее Разное Простой Web Framework Echo Лёгкая wiki. Ketchup CMS, github. matterbridge. Мост для объединения различных средств общения (slack, tegeram, mattermost и т.д.). Hermes - сервер для обмена файлами. Croc - клиент-сервер для посылки файлов. Go из Shell neugram. Различные утилиты для проверки сетей (сканеры, парсеры сертификатов и т.д.) Zmap Github Вывод дерева зависимостей depth. Блог. В графическом виде go-callvis. qrcp - передача файлов с компа на мобилку, например, по QRCode. mage - замена make на Go. Исходники на GitHub. Консольные приложения wego - показ погоды в консоли. Работа с файлами godu - позволяет быстро просматривать каталоги с большим количеством файлов. lf - консольный менеджер файлов на Go. wzd - веб-сервер для работы с огромным количеством файлов. duf - отображение информации про диски. Работает только под Unix. fsql - поиск файлов в виде SQL. Хранение и версионирование кода Система хранения и версионирования кода - Gogs. Github. Gitea - склонированная и расширенная версия Gogs. Разворачивается локально. Исходники на GitHub. Lazygit (https://github.com/jesseduffield/lazygit). Консольный клиент для работы с git. Gitness - opensource проект. Разворачивается локально. GitHub. Нагрузочное тестирование K6. Документация. vegeta (https://github.com/tsenart/vegeta) - подключается, либо как библиотека, либо используется из командной строки. WEB Caddy - лёгкий и быстрый http-сервер как Nginx или Apache. Документация. Исходники на github. FRP - reverse-proxy. Casbin forum - реализация форума на Go и ReactJS. sftpgo - сервер, поддерживающий различные протоколы: SFTP, HTTP, FTP/S and WebDAV. И также различные системы хранения: local filesystem, encrypted local filesystem, S3 (compatible) Object Storage, Google Cloud Storage, Azure Blob Storage. Web-приложения wasmVision - wasm-приложения, использующее openCv для работы с камерой. Накладывает эффекты, типа размытия. Рисование графиков Chart - рисует график на основании данных из стандартного потока ввода. Примеры отображения. Статья об использовании.\n"},{"id":42,"href":"/tags/rust/","title":"Rust","parent":"Tags","content":"","description":""},{"id":43,"href":"/programming/rust/useful-programs/","title":"Полезные программы на Rust","parent":"Rust","content":" Анализ данных Xsv - анализ csv файлов в консоли. ","description":" Анализ данных Xsv - анализ csv файлов в консоли. "},{"id":44,"href":"/tags/Rapberry-Pi/","title":"Rapberry Pi","parent":"Tags","content":"","description":""},{"id":45,"href":"/administration/rapberry-pi/raspbian/","title":"Raspbian","parent":"Rapberry Pi","content":"Различная информация об операционной системе Raspbian для Raspberry Pi\nНастройки Включение ssh Официальная документация.\nНастройки Некоторые критичные настройки делаются при помощи утилиты raspi-config. Она предоставляет графический консольный интерфейс для удобной настройки.\nВключение ssh После установки операционной системы Raspbian по-умолчанию демон ssh отключен. Чтобы его включить надо выполнить следующие действия (информация взята с официального сайта):\nЗапустить raspi-config в терминале: {{sudo raspi-config}}. Выбрать Interfacing Options. Выбрать SSH. Потом Yes. Нажать Ok. И, наконец - Finish. ","description":"Различная информация об операционной системе Raspbian для Raspberry Pi\nНастройки Включение ssh Официальная документация.\nНастройки Некоторые критичные настройки делаются при помощи утилиты raspi-config. Она предоставляет графический консольный интерфейс для удобной настройки.\nВключение ssh После установки операционной системы Raspbian по-умолчанию демон ssh отключен. Чтобы его включить надо выполнить следующие действия (информация взята с официального сайта):\n"},{"id":46,"href":"/administration/rapberry-pi/","title":"Rapberry Pi","parent":"Администрирование","content":"Различная информация по Raspberry PI\nGPIO последних моделей Общая информация по GPIO. Схема контактов. Pinout for GPIO connectors. Интерактивная распиновка. Обучалка на Python. ","description":"Различная информация по Raspberry PI\nGPIO последних моделей Общая информация по GPIO. Схема контактов. Pinout for GPIO connectors. Интерактивная распиновка. Обучалка на Python. "},{"id":47,"href":"/tags/firefox/","title":"Firefox","parent":"Tags","content":"","description":""},{"id":48,"href":"/administration/firefox/","title":"Firefox","parent":"Администрирование","content":"В этом разделе собраны разные настройки Mozilla Firefox.\nЧтобы новые вкладки открывались в конце Отключение прокрутки вкладок Проблемы при воспроизведении видео Чтобы закладки всегда открывались в новой вкладке Указание директории для кеша Чтобы грузились локальные ресурсы Чтобы новые вкладки открывались в конце Открываем Firefox В адресной строке пишем: about:config Соглашаемся, что будем осторожны. Вводим в строке поиска: browser.tabs.insertRelatedAfterCurrent Устанавливаем false. Отключение прокрутки вкладок Чтобы отключить прокрутку, для начала необходимо найти, где находится профайл пользователя.\nВ Windows: %APPDATA%\\Mozilla\\Firefox\\Profiles\\\u0026lt;user_profile\u0026gt;. В Linux: ~/.mozilla/firefox/\u0026lt;user_profile\u0026gt;. Более подробная информация: Profile_folder. В каталоге профайла пользователя создать каталог chrome, если он не существует. В нём создать файл userChrome.css (для linux регистр важен!) со следующим содержимым:\n@namespace url(http://www.mozilla.org/keymaster/gatekeeper/there.is.only.xul); .tabbrowser-tab[fadein]:not([pinned]) { min-width: 16px !important; } Перезапустить firefox, если запущен. Дополнительная информация: userChrome.css. В версиях, начиная с 69 возможно надо будет установить toolkit.legacyUserProfileCustomizations.stylesheets в true.\nПроблемы при воспроизведении видео Иногда, вместо видео, может появляться сообщение \u0026ldquo;видео в поддерживаемом формате и типе mime не найдено\u0026rdquo;. В таком случае нужно обратить на параметр media.mediasource.enabled в настройках Firefox. Открываем about:config и там ищем параметр media.mediasource.enabled. В новых версиях Firefox (на момент написания этой заметки была актуальна версия 53.0.3) значение параметра равно true. Возможно нужно поменять его на false.\nЧтобы закладки всегда открывались в новой вкладке В about:config найти настройку browser.tabs.loadBookmarksInTabs и установить у неё значение true.\nУказание директории для кеша В about:config создать свойство browser.cache.disk.parent_directory и в нём указать путь до директории, где должен находится кеш страниц.\nЧтобы грузились локальные ресурсы В about:config свойство privacy.file_unique_origin выставить в true.\n","description":"В этом разделе собраны разные настройки Mozilla Firefox.\nЧтобы новые вкладки открывались в конце Отключение прокрутки вкладок Проблемы при воспроизведении видео Чтобы закладки всегда открывались в новой вкладке Указание директории для кеша Чтобы грузились локальные ресурсы Чтобы новые вкладки открывались в конце Открываем Firefox В адресной строке пишем: about:config Соглашаемся, что будем осторожны. Вводим в строке поиска: browser.tabs.insertRelatedAfterCurrent Устанавливаем false. Отключение прокрутки вкладок Чтобы отключить прокрутку, для начала необходимо найти, где находится профайл пользователя.\n"},{"id":49,"href":"/tags/regexp/","title":"Regexp","parent":"Tags","content":"","description":""},{"id":50,"href":"/programming/regexp/","title":"Регулярные выражения","parent":"Программирование","content":" Исключение строк, содержащих определённое значение Время с обязательным ведущим нулём в часе Время без обязательного ведущего нуля в часе Полный путь файла в Windows Просто название файла в Windows e-mail URL Исключение строк, содержащих определённое значение Например есть список файлов:\nMaxFullResult.txt 8fd88cjjd88cjjjbbj simple.txt resultSimple.txt 8fd88cjjd88cjjjbbj full.txt Чтобы исключить все файлы, содержащие \u0026ldquo;result\u0026rdquo; можно использовать следующее выражение:\n^((?i)(?!result).)*\\.txt$ Время с обязательным ведущим нулём в часе ([0-2]\\d):([0-5]\\d):([0-5]\\d) Время без обязательного ведущего нуля в часе ((|[0-2])\\d):([0-5]\\d):([0-5]\\d) Полный путь файла в Windows ([(?-i)a-z):.*\\.[(?-i)a-z]{3,4} Просто название файла в Windows \\w*\\.[(?-i)a-z]{3,4} e-mail [\\w-.]{1,64}@[A-Za-z0-9-]+\\.+[A-Za-z0-9\\.-]+[^\\.] URL http[s]?://[a-z0-9]+\\.[a-z0-9\\._/-]+[^\\.] ","description":" Исключение строк, содержащих определённое значение Время с обязательным ведущим нулём в часе Время без обязательного ведущего нуля в часе Полный путь файла в Windows Просто название файла в Windows e-mail URL Исключение строк, содержащих определённое значение Например есть список файлов:\nMaxFullResult.txt 8fd88cjjd88cjjjbbj simple.txt resultSimple.txt 8fd88cjjd88cjjjbbj full.txt Чтобы исключить все файлы, содержащие \u0026ldquo;result\u0026rdquo; можно использовать следующее выражение:\n"},{"id":51,"href":"/programming/rust/","title":"Rust","parent":"Программирование","content":" Официальный сайт Документация, известная, как \u0026ldquo;Книга\u0026rdquo; на русском.\n","description":" Официальный сайт Документация, известная, как \u0026ldquo;Книга\u0026rdquo; на русском.\n"},{"id":52,"href":"/testing/","title":"Тестирование","parent":"Тут всё начинается","content":"Всё, что связано с тестированием и автоматизацией тестирования\nКниги по тестированию Списки полезных программ GUI WEB-GUI WEB Сеть Нагрузочное тестирование Тестирование баз Средства управления Разное Книги по тестированию A Friendly Introduction to Software Testing - opensource книга. Можно собрать самому. Собранная автором версия. Google Code Coverage Best Practices\nСписки полезных программ Список разных ресурсов и средств тестирования Список средств для тестирования UI GUI Winium от 2GIS. Позволяет тестировать Desktop и Mobile приложения. katalon - позволяет тестировать как Web, так и GUI приложения. Статья на Хабре. TestFX - тестирование JavaFX приложений. WEB-GUI testcafe - работает без Seleniun. WEB Управляемый через REST BrowserMob Proxy. На GitHub. _ Позволяет перенаправлять трафик, ограничивать пропускную способность и ещё кучу всего. Очень хорошо интегрируется с Selenium. JDI от EPAM. Проект на Github. Тестовый framework позволяющий абстрагироваться от приложения и работать с типовыми элементами. Список property-based testing tools. Galen - позволяет проверять вёрстку страницы. GitHub. Документация. Сеть toxyproxy - прокси, позволяет ограничивать скорость соединения. Есть обёртки для нескольких языков. Также позволяет запускаться как самостоятельное приложение. Нагрузочное тестирование SuperBenchmarker - утилита для нагрузочного тестирования на C#. Рисует графики. Отчёты. Vegeta - нагрузка на Go. Также рисует графики. Документация. slow_cooker - также, написанный, на Go пакет для тестирования под заданной нагрузкой. k6 - тесты пишутся на JavaScript. Сам фреймоворк написан на Go. Документация. Predator - распределённая нагрузка в докере. Документация. GitHub. Wrk Нагрузочная утилита для Linux. Тестирование баз Описание OpenSource инструментов для тестирования баз.\nСредства управления QuAck - свободная система написания тест-кейсов. Есть возможность написания плагинов. TestProject - запуск тестов в облаке, хранение, совместная работа. Разное ClusterFuzz от Google. Github (https://github.com/google/clusterfuzz). Чит-лист функционального тестирования, памятка тестировщику. ","description":"Всё, что связано с тестированием и автоматизацией тестирования\nКниги по тестированию Списки полезных программ GUI WEB-GUI WEB Сеть Нагрузочное тестирование Тестирование баз Средства управления Разное Книги по тестированию A Friendly Introduction to Software Testing - opensource книга. Можно собрать самому. Собранная автором версия. Google Code Coverage Best Practices\n"},{"id":53,"href":"/administration/first-10-min/","title":"Первые 10 минут на сервере","parent":"Администрирование","content":"Исходная статься на Хабрахабре.\nАзбука безопасности Ubuntu В первую очередь Добавляем пользователя Аутентификация по ключу ssh Тестирование пользователя deploy и установка sudo Активируем вход по ключу ssh Установка файрвола Автоматические обновления безопасности Fail2ban Двухфакторная аутентификация Logwatch Всё готово Азбука безопасности Ubuntu «Мои первые 5 минут на сервере» Брайана Кеннеди — отличное введение, как быстро обезопасить сервер от большинства атак. У нас есть несколько исправлений для этой инструкции, чтобы дополнить ею наше полное руководство. Также хочется подробнее объяснить некоторые вещи для более юных инженеров.\nКаждое утро я проверяю почтовые уведомления logwatch и получаю основательное удовольствие, наблюдая несколько сотен (иногда тысяч) безуспешных попыток получить доступ. (Многие довольно прозаичны — попытки авторизоваться как root с паролем 1234 снова и снова). Приведённая здесь общая методика подходит для серверов Debian/Ubuntu, которые лично мы предпочитаем всем остальным. Они обычно служат только хостами для контейнеров Docker, но принципы те же.\nНа больших масштабах лучше использовать полностью автоматические установки с инструментами вроде Ansible или Shipyard, но иногда вы просто поднимаете единственный сервер или подбираете задачи для Ansible — для таких ситуаций предназначена инструкция.\nПримечание: Эта справка создана как базовая азбука. Её следует расширить и дополнить в соответствие с вашими потребностями.\nВ первую очередь У нас ещё даже нет пароля для рута. Хотелось бы выбрать что-нибудь случайное и сложное. Используем генератор менеджера паролей с настройками максимальной сложности. Менеджер паролей сохраняет пароль и шифрует его, доступ к нему возможен только по длинному мастер-паролю. Здесь предусмотрена пара избыточных мер защиты (длинный, сложный случайный пароль + защита пароля шифрованием и другим длинным паролем). Используете вы парольный менеджер или другие инструменты, сохраняйте пароль в безопасности, применяя какую-нибудь форму шифрования. Вам понадобится только этот рутовый пароль в случае потери пароля sudo.\n# passwd На HN и Reddit развернулась интересная дискуссия о рутовых паролях. Её стоит почитать. Теперь следует обновить репозитории и накатить последние патчи. Далее будет отдельный раздел по автоматизации установки обновлений безопасности.\napt-get update apt-get upgrade Добавляем пользователя Вам никогда не следует заходить на сервер как рут. Мы следуем тем же правилам при создании пользователей, которые установил Брайан Кеннеди, но вы можете использовать собственные. У нашей маленькой команды не было проблем с использованием единственного пользователя для авторизации, но в больших командах лучше создать разных пользователей с разными уровнями привилегий, где только избранные получают привилегии sudo.\nuseradd deploy mkdir /home/deploy mkdir /home/deploy/.ssh chmod 700 /home/deploy/.ssh Устанавливаем предчтительную оболочку для пользователя deploy, мы используем bash:\nusermod -s /bin/bash deploy Помните: chmod 700 означает, что владелец аккаунта обладает правами на чтение, запись и запуск программ. Мы всё ещё находимся с правами рута, но через минуту мы запустим команду chown рекурсивно на этой папке для пользователя deploy и группы deploy. Только этот пользователь должен иметь право работать с папкой .ssh.\nАутентификация по ключу ssh Мы стараемся не использовать пароли для входа на сервер. Насчёт этого было много споров после того как вышла инструкция Брайана, но я тоже склонен согласиться с такой позицией. Вот несколько замечаний на этот счёт:\nКлючи ssh лучше паролей только потому, что они содержат и требуют больше информации. Пароли можно подобрать брутфорсом. Гадать по публичному ключу по существу невозможно, так что их можно считать полностью безопасными. Что насчёт кражи компьютера? Да, там ваши секретные ключи, но отозвать ssh-key легко, достаточно просто удалить открытый ключ из authorized_keys. Вам следует также защитить секретный ключ безопасной и длинной парольной фразой. См. следующий пункт. Всё это работает ТОЛЬКО ПРИ УСЛОВИИ БЕЗОПАСНОЙ И ДЛИННОЙ ПАРОЛЬНОЙ ФРАЗЫ, ЗАЩИЩАЮЩЕЙ КЛЮЧ. Повторяем второй раз, потому что это критически важно. Итак, оставим в прошлом аутентификацию по паролю. Скопируйте содержимое id_rsa.pub1 со своей локальной машины на серверы в файл authorized_keys.\nvim /home/deploy/.ssh/authorized_keys Установим правильные привилегии, руководствуясь принципом безопасности Linux, известным как принцип минимальных привилегий:\nchmod 400 /home/deploy/.ssh/authorized_keys chown deploy:deploy /home/deploy -R chmod 400 устанавливает разрешения, так что файл может прочитать только владелец. Другая команда chown делает пользователя deploy и группу deploy владельцами (рекурсивно) их домашней директории. Мы упоминали об этом ранее, когда устанавливали разрешения на чтение, запись и исполнение для владельца этой директории.\nВернёмся к этому чуть позже, когда правильно протестируем нашего пользователя deploy и sudo для отключения авторизации рута и установки авторизации только по ключу ssh.\nТестирование пользователя deploy и установка sudo Мы собираемся проверить, как происходит авторизация пользователя deploy, в то же время сохраняя открытым соединение по ssh для рута на всякий случай. Если всё работает нормально, мы используем наше открытое подключение рута, чтобы установить пароль для deploy. Поскольку мы отключаем авторизацию по паролю, то этот пароль будет использован при применении sudo. Снова мы запускаем парольный менеджер для генерации сложного и случайного пароля, сохраняем его в зашифрованном виде и сообщаем коллегам (синхронизация зашифрованного файла с паролем).\npasswd deploy Установка sudo простая. Открываем файл sudo:\nvisudo Добавляем группу %sudo под рутовым пользователем, как показано ниже. Убедитесь, что все остальные пользователи и группы отбиты комментариями с символом # (у пользователей нет префиксов, а группы начинаются с %). На большинстве свежих установок там ничего нет, но на всякий случай.\nroot ALL=(ALL) ALL %sudo ALL=(ALL:ALL) ALL Теперь добавим пользователя deploy в группу sudo.\nusermod -a -G sudo deploy Это предоставит пользователю deploy доступ к sudo после введения пароля, который мы только что создали.\nСпасибо пользователю ackackacksyn на Reddit за верное замечание, что не следует добавлять пользователей напрямую в список sudo. Активируем вход по ключу ssh Конфигурация ssh для этой машины хранится здесь:\nvim /etc/ssh/sshd_config Вы захотите добавить туда несколько строк. Мне кажется, они довольно понятны сами по себе. Это IP-адрес, который вы используете для подключения. У нас в компании используется VPN-конфигурация с OpenVPN и криптографической аутентификацией, так что для подключения к серверу нужно также пройти аутентификацию и быть подключённым к VPN.\nPermitRootLogin no PasswordAuthentication no AllowUsers deploy@(your-VPN-or-static-IP) Активируйте все эти правила, перезапустив службы ssh. Вероятно, придётся переподключиться (делайте это через пользователя deploy!).\nservice ssh restart Установка файрвола Обычно здесь два лагеря. Одни используют IPtables напрямую, а другие применяют удобный интерфейс под названием ufw, который представляет собой слой над IPtables для упрощения процесса настройки. Более простой вариант обычно предпочтительнее с точки зрения безопасности. ufw от DigitalOcean действительно неплох и помогает в основных вещах.\nufw установлен по умолчанию на Ubuntu, а на Debian достаточно запустить команду apt-get install ufw.\nПо умолчанию ufw должен отказывать во всех входящих подключениях и разрешать все исходящие, однако, он не будет запущен (потому что иначе как бы вы подключились?). Мы пройдёмся и явно разрешим соединения, которые считаются нормальными.\nВо-первых, следует убедиться в поддержке IPv6. Откройте конфигурационный файл.\nsudo vim /etc/default/ufw Установите IPv6 в значение yes.\nIPV6=yes Для остальных портов, которые мы собираемся открыть, можно просто использовать инструмент ufw из командной строки, что очень удобно.\nsudo ufw allow from {your-ip} to any port 22 sudo ufw allow 80 sudo ufw allow 443 sudo ufw disable sudo ufw enable Первое — это избыточная мера, которая гарантирует, что только соединения с нашего IP-адреса могут соединяться по SSH (стандартный порт SSH)2 Вторая и третья команда открывают трафик http и https.\nСпасибо chrisfosterelli за замечание, что если вы собираетесь установить первое правило (а вам следует это сделать), то убедитесь, что у вас статичный IP-адрес или безопасный VPN, к которому вы подключаетесь. Динамический IP-адрес оставит вас без доступа к серверу когда-нибудь в будущем. Автоматические обновления безопасности Мне они нравятся. Они не идеальны, но это лучше, чем пропустить патчи после их выхода.\nsudo apt-get install unattended-upgrades vim /etc/apt/apt.conf.d/10periodic Обновите этот файл следующим образом:\nAPT::Periodic::Update-Package-Lists \u0026#34;1\u0026#34;; APT::Periodic::Download-Upgradeable-Packages \u0026#34;1\u0026#34;; APT::Periodic::AutocleanInterval \u0026#34;7\u0026#34;; APT::Periodic::Unattended-Upgrade \u0026#34;1\u0026#34;; Я в целом согласен с Брайаном, что лучше отключить обычные обновления, а оставить только обновления безопасности. Идея в том, что будет не очень хорошо, если приложение внезапно перестанет работать из-за обновления какого-то пакета с зависимостями, в то время как обновления безопасности очень редко создают проблемы с зависимостями на уровне приложения.\nsudo vim /etc/apt/apt.conf.d/50unattended-upgrades Отредактируйте файл следующим образом:\nUnattended-Upgrade::Allowed-Origins { \u0026#34;Ubuntu lucid-security\u0026#34;; //\u0026#34;Ubuntu lucid-updates\u0026#34;; }; Всё готово.\nFail2ban fail2ban — отличный пакет, который проактивно блокирует подозрительную активность, как только она обнаружена. В их вики сказано, что fail2ban сканирует файлы логов (например, /var/log/apache/error_log) и банит IP-адреса, которые проявляют подозрительные признаки — слишком много попыток ввода неправильного пароля, поиск эксплоитов и проч… Сразу после установки Fail2Ban оснащён фильтрами для различных сервисов (apache, courier, ssh и др.).\nsudo apt-get install fail2ban Двухфакторная аутентификация Двухфакторная аутентификация обязательна, если мы проектируем систему, которая соответствует нормам безопасности. Теоретически, если вы активируете двухфакторную аутентификацию поверх всех остальных защитных мер, то тогда для получения доступа к серверу (через вскрытие уязвимостей в приложениях), нападающим придётся также иметь:\nДоступ к вашему сертификату и ключу для доступа к VPN. Доступ к вашему компьютеру, чтобы получить секретный ключ. Доступ к вашей парольной фразе для секретного ключа. Доступ к вашему телефону для двухфакторной аутентификации. Это немало барьеров (четыре), которые придётся преодолеть. Даже если они получат рутовый доступ через sudo, им придётся найти пароль deploy, который защищён шифрованием AES (пятый барьер).\nУстанавливаем пакет.\nsudo apt-get install libpam-google-authenticator Для установки запускаем команду и следуем инструкциям:\nsu deploy google-authenticator Двухфакторная аутентификация устанавливается очень легко и добавляет хороший дополнительный уровень безопасности.\nLogwatch Этот инструмент скорее для удовольствия и мониторинга постфактум. Logwatch отслеживает логи и в соответствии с настройками высылает по почте ежедневную красиво структурированную сводку. Это довольно занимательные данные, и вы удивитесь, как много попыток доступа к серверу происходит каждый день. Я установил его только для того, чтобы продемонстрировать коллегам, насколько важно иметь хорошую безопасность.\nУ DigitalOcean есть отличное описание установки и настройки Logwatch, но если мы хотим уложиться в 10 минут, то просто установим его и сделаем задание cron для ежедневного запуска и отправки письма по электронной почте.\nsudo apt-get install logwatch Добавляем задание cron.\nsudo vim /etc/cron.daily/00logwatch Добавьте следующую строку в файл cron:\nsudo /usr/sbin/logwatch --output mail --mailto you@example.com --detail high Всё готово Ну вот. После завершения всего вышеперечисленного вашей основной заботой и точкой сбоя станет ваше приложение и сервисы. Это совершенно другая область.\nМы пытаемся максимально формализовать и описать наши лучшие практики и процессы, если хотите узнать больше, изучите наш репозиторий. Всё в открытом доступе, и мы продолжаем пополнять его.\nУбедитесь, что указан именно .pub. Это кажется очень простым, но я встречал двух товарищей (оба не работают в нашей компании — они бы быстро прекратили здесь работать) за свою карьеру, которые прислали мне свои секретные ключи (id_rsa без расширения .pub), когда я попросил прислать открытый ключ.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\nМнения расходятся, назначать ли для соединений SSH стандартный или нестандартный порт. См. здесь и здесь аргументы обеих сторон.\u0026#160;\u0026#x21a9;\u0026#xfe0e;\n","description":"Исходная статься на Хабрахабре.\nАзбука безопасности Ubuntu В первую очередь Добавляем пользователя Аутентификация по ключу ssh Тестирование пользователя deploy и установка sudo Активируем вход по ключу ssh Установка файрвола Автоматические обновления безопасности Fail2ban Двухфакторная аутентификация Logwatch Всё готово Азбука безопасности Ubuntu «Мои первые 5 минут на сервере» Брайана Кеннеди — отличное введение, как быстро обезопасить сервер от большинства атак. У нас есть несколько исправлений для этой инструкции, чтобы дополнить ею наше полное руководство. Также хочется подробнее объяснить некоторые вещи для более юных инженеров.\n"},{"id":54,"href":"/games/","title":"Игры","parent":"Тут всё начинается","content":"Информация об играх, их настройки, сайтах и прочем.\nИгровые движки Решение проблем с играми Запуск crisis под новой версией windows Проблемы с запуском Destiny 2 Игровые движки Urho3d. Исходный код. Armory3d - игровая платформа на основе blender. Пилится тем же автором, что и Armorpaint. UPBGE - старый игровой движок Blender как отдельный проект. Вроде как с полной интеграцией с новым Blender. Godot - свободный игровой движок. Вроде как третий по популярности после Unreal и Unity. Unigine - отечественный движок. Open 3D Engine - движок на базе Амазоновского. В основе CryEngine. Решение проблем с играми Запуск crisis под новой версией windows Чтобы игра не вылетала через некоторое время после запуска нужно установить ей режим совместимости с Windows XP.\nПроблемы с запуском Destiny 2 Если возникает проблема marionberry, то помогает отключение AdGuard.\n","description":"Информация об играх, их настройки, сайтах и прочем.\nИгровые движки Решение проблем с играми Запуск crisis под новой версией windows Проблемы с запуском Destiny 2 Игровые движки Urho3d. Исходный код. Armory3d - игровая платформа на основе blender. Пилится тем же автором, что и Armorpaint. UPBGE - старый игровой движок Blender как отдельный проект. Вроде как с полной интеграцией с новым Blender. Godot - свободный игровой движок. Вроде как третий по популярности после Unreal и Unity. Unigine - отечественный движок. Open 3D Engine - движок на базе Амазоновского. В основе CryEngine. Решение проблем с играми Запуск crisis под новой версией windows Чтобы игра не вылетала через некоторое время после запуска нужно установить ей режим совместимости с Windows XP.\n"},{"id":55,"href":"/administration/linux/commands/","title":"Список команд POSIX и их описание","parent":"Linux","content":" Название Краткое описание type Выводит тип команды (внутренняя, внешняя, alias) set +x - включение расширенного логирования для команд _ -x - выключение логирования для команд whatis Краткое описание команды apropos описание команд по поиску who am i Информация о текущем пользователе w Информация о подключённых пользователях mkdir -p Создание вложенных директорий stat Информация из inode ls -i Показ inodes в списке lsof Список открытых файлов df -i Показывает использование inodes touch Изменение даты создания файла file Информация о файле strings Показывает все читаемые символы (разные операции со строками) profile В текущем каталоге пользователя env _ export Показ переменных окружения (и задания для последующей команды) set bash и системные переменные unset Очистка переменной source Выполнение из файла tee Перенаправление потока вывода в файл и дальше в поток вывода по pipe wc Подсчёт слов, строк, символов strace Трассировка вызова команд sort Сортировка строк: -n сортировка как чисел (-t - разделитель) -u вывод только уникальных значений h сортировка значений, представляенных в удобном для человека виде. Например, вывод команды ls -lh tr Замена символов sed Изменение символов на потоке awk Мощный редактор обработки строк. Например: -F: разделитель paste Объединение файлов в виде колонок split Разделение файлов на отдельные comm Сравнение сортированных файлов diff Сравнение файлов построчно ps Просмотр запущенных процессов -L - количество запущенных потоков ulimit Ограничения процессов пользователя nice Задание приоритета renice Установка приоритета для запущенного процесса vmstat Информацияо памяти fuser Процессы, использующие указанную директорию pkill ldd Показывает какие библиотеки использует программа LD_LIBRARY_PATH Переменная указывающая пути, в которых ищутся библиотеки find Поиск файлов -iname - регистронезависимый поиск -exec - выполнить команду с результатами поиска в качестве результатов tar Архиватор, разорхиватор slevipt??? Запись терминала УТОЧНИТЬ! dd disk dump - Утилита для работы с диском run level telinit Изменение уровня загрузки (/etc/rc.d/init.d) chkconfig Статус сервисов sysctl Настройка ядра (/etc/sysctl.config) systemctl Управление systemd journalctl Чтение журнала операционной системы cron Демон расписания af Отложенное выполнение по времени vimtutor Обучение Vi Ctrl+z Остановка процесса bg Перевод процесса в фоновый режим fg Перевод процесса обратно на консоль nohup Отвязка процесса от консоли nstat Сетевая информация -r - показ таблицы маршрутизации nslookup Определение IP по имени хоста dig Получение информации по домену host Как nslookup, только сокращённая информация /etc/resolv.conf - настройка DNS.\n","description":" Название Краткое описание type Выводит тип команды (внутренняя, внешняя, alias) set +x - включение расширенного логирования для команд _ -x - выключение логирования для команд whatis Краткое описание команды apropos описание команд по поиску who am i Информация о текущем пользователе w Информация о подключённых пользователях mkdir -p Создание вложенных директорий stat Информация из inode ls -i Показ inodes в списке lsof Список открытых файлов df -i Показывает использование inodes touch Изменение даты создания файла file Информация о файле strings Показывает все читаемые символы (разные операции со строками) profile В текущем каталоге пользователя env _ export Показ переменных окружения (и задания для последующей команды) set bash и системные переменные unset Очистка переменной source Выполнение из файла tee Перенаправление потока вывода в файл и дальше в поток вывода по pipe wc Подсчёт слов, строк, символов strace Трассировка вызова команд sort Сортировка строк: -n сортировка как чисел (-t - разделитель) -u вывод только уникальных значений h сортировка значений, представляенных в удобном для человека виде. Например, вывод команды ls -lh tr Замена символов sed Изменение символов на потоке awk Мощный редактор обработки строк. Например: -F: разделитель paste Объединение файлов в виде колонок split Разделение файлов на отдельные comm Сравнение сортированных файлов diff Сравнение файлов построчно ps Просмотр запущенных процессов -L - количество запущенных потоков ulimit Ограничения процессов пользователя nice Задание приоритета renice Установка приоритета для запущенного процесса vmstat Информацияо памяти fuser Процессы, использующие указанную директорию pkill ldd Показывает какие библиотеки использует программа LD_LIBRARY_PATH Переменная указывающая пути, в которых ищутся библиотеки find Поиск файлов -iname - регистронезависимый поиск -exec - выполнить команду с результатами поиска в качестве результатов tar Архиватор, разорхиватор slevipt??? Запись терминала УТОЧНИТЬ! dd disk dump - Утилита для работы с диском run level telinit Изменение уровня загрузки (/etc/rc.d/init.d) chkconfig Статус сервисов sysctl Настройка ядра (/etc/sysctl.config) systemctl Управление systemd journalctl Чтение журнала операционной системы cron Демон расписания af Отложенное выполнение по времени vimtutor Обучение Vi Ctrl+z Остановка процесса bg Перевод процесса в фоновый режим fg Перевод процесса обратно на консоль nohup Отвязка процесса от консоли nstat Сетевая информация -r - показ таблицы маршрутизации nslookup Определение IP по имени хоста dig Получение информации по домену host Как nslookup, только сокращённая информация /etc/resolv.conf - настройка DNS.\n"},{"id":56,"href":"/tags/sql/","title":"Sql","parent":"Tags","content":"","description":""},{"id":57,"href":"/programming/sql/","title":"SQL","parent":"Программирование","content":"Разные аспекты SQL\nJoin Отличное описание разных Join.\n","description":"Разные аспекты SQL\nJoin Отличное описание разных Join.\n"},{"id":58,"href":"/tags/nvidia/","title":"Nvidia","parent":"Tags","content":"","description":""},{"id":59,"href":"/administration/linux/install-nvidia/","title":"Установка проприетарных драйверов NVidia","parent":"Linux","content":" Добавить этот репозиторий.\nsudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update Поставить родные драйверы от NVIDIA:\nsudo apt-get install nvidia-\u0026lt;actual_number\u0026gt; Удалить свободные драйвера для NVIDIA:\nsudo apt-get purge nouveau Перегрузиться. Проверить, что в меню настроек появились настройки NVIDIA. Открыть, проверить, что видеокарта определилась нормально.\nЕсли после этого blender не определил видеокарту, нужно будет доставить nvidia-cuda-toolkit:\nsudo apt-get install nvidia-cuda-toolkit После этого должно всё заработать.\n","description":" Добавить этот репозиторий.\nsudo add-apt-repository ppa:graphics-drivers/ppa sudo apt-get update Поставить родные драйверы от NVIDIA:\nsudo apt-get install nvidia-\u0026lt;actual_number\u0026gt; Удалить свободные драйвера для NVIDIA:\nsudo apt-get purge nouveau Перегрузиться. Проверить, что в меню настроек появились настройки NVIDIA. Открыть, проверить, что видеокарта определилась нормально.\nЕсли после этого blender не определил видеокарту, нужно будет доставить nvidia-cuda-toolkit:\nsudo apt-get install nvidia-cuda-toolkit После этого должно всё заработать.\n"},{"id":60,"href":"/tags/swap/","title":"Swap","parent":"Tags","content":"","description":""},{"id":61,"href":"/administration/linux/swap/","title":"Настройка swap","parent":"Linux","content":" Процент, при котором информация из памяти скидывается в swap Как задать нужный размер Swap-файла Процент, при котором информация из памяти скидывается в swap Информация взята отсюда\nОбычно рано или поздно у всех возникает вопрос: \u0026ldquo;Почему начинает заполнятся swap, когда у меня ещё много свободной оперативной памяти?\u0026rdquo;. И вот тут нам приходит в помощь такой параметр, как vm.swappiness. Для начала в консоли выполним команду:\ncat /proc/sys/vm/swappiness По-умолчанию результат будет 60.\nЭто параметр, который контролирует количество свободной памяти, при какой загруженности у нас начнётся сброс страниц в swap. Ну, а дальше простая формула: \\(100\\%-60\\%=40\\%\\), т.е. уже при 40% загруженной ОЗУ данные начинают активно сливаться на жёсткий диск, что, как мне кажется, не есть хорошо. Чтобы сделать так, чтобы слив начался, хотя бы, при 90% занятой памяти нужно выполнить следующее. Сначала в конфиг /etc/sysctl.conf добавим запись:\nvm.swappiness=10 Затем, дабы не перезагружать комп, выполним с правами суперпользователя команду:\nsysctl -p Всё. На этом настройка закончена.\nКак задать нужный размер Swap-файла Информация взята отсюда.\nПроверяем текущий файл\nsudo swapon --show Будет что-то типа этого:\nNAME TYPE SIZE USED PRIO /swapfile file 8G 2M -2 Также можно посмотреть следующей командой:\nfree -h Вывод:\ntotal used free shared buff/cache available Mem: 981Mi 122Mi 647Mi 0.0Ki 211Mi 714Mi Swap: 8,0Gi 2,0Mi 8,0Gi Отключаем использования файла подкачки /swapfile\nsudo swapoff /swapfile Создаём файл нужного размера\nsudo fallocate -l 8G /swapfile После ключа -l задаём нужный размер файла подкачки.\nДаём права только для пользователя root\nsudo chmod 600 /swapfile Проверяем командой ls -lh /swapfile. Должно быть следующее:\n-rw------- 1 root root 8,0G авг 27 15:37 /swapfile Активировать подкачки\nsudo mkswap /swapfile примерный вывод:\nSetting up swapspace version 1, size = 8 GiB (8589934592 bytes) no label, UUID=6e965805-2ab9-450f-aed6-577e74089db Включить подкачку\nsudo swapon /swapfile Проверяем, что всё успешно\nsudo swapon --show Должно быть как-то так:\nNAME TYPE SIZE USED PRIO /swapfile file 8G 2,8M -2 Проверка, что файл подкачки активирован постоянно\nВ файле /etc/fstab должны быть следующая строка:\n/swapfile none swap sw 0 0 Если нет - добавляем:\necho \u0026#39;/swapfile none swap sw 0 0\u0026#39; | sudo tee -a /etc/fstab ","description":" Процент, при котором информация из памяти скидывается в swap Как задать нужный размер Swap-файла Процент, при котором информация из памяти скидывается в swap Информация взята отсюда\nОбычно рано или поздно у всех возникает вопрос: \u0026ldquo;Почему начинает заполнятся swap, когда у меня ещё много свободной оперативной памяти?\u0026rdquo;. И вот тут нам приходит в помощь такой параметр, как vm.swappiness. Для начала в консоли выполним команду:\n"},{"id":62,"href":"/tags/blender/","title":"Blender","parent":"Tags","content":"","description":""},{"id":63,"href":"/tags/renderman/","title":"Renderman","parent":"Tags","content":"","description":""},{"id":64,"href":"/3d-vfx-video/blender/renderman/","title":"Разные вопросы по renderman","parent":"Blender","content":" Установка в ubuntu Решение проблем с лицензией в windows Установка в ubuntu Скачать установщик.\nПреобразовать в deb формат командой\nalien -c renderman-installer...rpm На выходе получится .deb файл. Дальше его установить как обычно:\nsudo dpkg -i renderman-installer...deb Если в процессе не запустится установщик сервера:\ncd /opt/pixar/RenderMan-Installer-ncr-\u0026lt;version\u0026gt;/bin sudo ./RenderManInstaller Решение проблем с лицензией в windows Скачать установщик RenderMan.\nВ случае, если установка производится не в каталог c:\\Program File\\Pixar могут возникнуть проблема с запуском движка RenderMan.\nЕсли в Blender возникает ошибка PRMan: Exited необходимо сделать следующее. Данная ошибка возникает из-за того, что сам движок установщик всё равно ставит в Program files, но не копирует туда файл лицензии.\nДопустим, установщик находится в каталоге d:\\pixar\\RenderMan-Installer-ncr-21.2.\nЧтобы ошибка пропала, необходимо скопировать файл лицензии pixar.license из каталога d:\\pixar, где находится установщик, в каталог c:\\Program File\\Pixar.\n","description":" Установка в ubuntu Решение проблем с лицензией в windows Установка в ubuntu Скачать установщик.\nПреобразовать в deb формат командой\nalien -c renderman-installer...rpm На выходе получится .deb файл. Дальше его установить как обычно:\nsudo dpkg -i renderman-installer...deb Если в процессе не запустится установщик сервера:\ncd /opt/pixar/RenderMan-Installer-ncr-\u0026lt;version\u0026gt;/bin sudo ./RenderManInstaller Решение проблем с лицензией в windows Скачать установщик RenderMan.\n"},{"id":65,"href":"/tags/python/","title":"Python","parent":"Tags","content":"","description":""},{"id":66,"href":"/programming/python/","title":"Python","parent":"Программирование","content":"Различная информация о Python\nПолезные библиотеки Библиотека для построения графиков matplotlib.\n","description":"Различная информация о Python\nПолезные библиотеки Библиотека для построения графиков matplotlib.\n"},{"id":67,"href":"/3d-vfx-video/blender/keys/","title":"Полезные команды и клавиатурные сокращения Blender","parent":"Blender","content":" Выравнивание одного объекта относительно другого Клавиши: ctrl+alt+space.\nНеобходимо выбрать, например, грань объекта, относительно какого нужно выравнивать, затем нажать ctrl+alt+space. В списке transform orientation появится новая привязка. Затем выбираем второй объект и его координаты перемещения будут рассчитываться относительно этого объекта.\nСдвинуть вершины относительно координат Команда: Shear.\nКлавиши: Shift+Ctrl+Alt+S.\nВыделяем точки, которые хотим сдвинуть линейно, как будто вращением. Нажимаем Shift+Ctrl+Alt+S или ищем команду через поиск (Space). Выбираем ось, относительно которой поворачивать (x или y). Двигаем мышку до тех пор, пока точки не повернуться на нужный угол.\n\u0026ldquo;Проткнуть\u0026rdquo; грань Команда: Poke.\nКлавиши: alt+p\nВыделяем грань, которую хотим подразделить. Нажимаем alt+p.\nВыбор связанного объекта, который является частью другого Клавиша: ctrl+L.\nДопустим в режиме редактирования к одному объекту был добавлен другой. Чтобы выделить все вершины данного объекта, нужно выделить вершину, грань, петлю данного объекта и нажать ctrl+L. Также можно несколько раз нажимать просто L.\nОтделить часть объекта в качестве нового объекта Клавиша: P.\nВ режиме редактирования выбрать необходимую часть объекта и нажать P. В открывшемся меню выбрать нужный режим (например, by selection).\nПериодическое выделение Клавиша: Ctrl+Shift+Num+.\nВ режиме редактирования выбрать одну вершину, например. Потом выбрать вторую через необходимый интервал.\nВыделение по кратчайшему пути Клавиша: Ctrl+Click.\nВыделить одну вершину(ребро, грань). Кликнуть по второй вершине (ребру, грани). Произойдёт автоматическое выделение между двумя этими сущностями по кратчайшему пути.\nСоздание ребра между двумя вершинами Клавиша: J.\nВыделить две вершины и нажать J.\n","description":" Выравнивание одного объекта относительно другого Клавиши: ctrl+alt+space.\nНеобходимо выбрать, например, грань объекта, относительно какого нужно выравнивать, затем нажать ctrl+alt+space. В списке transform orientation появится новая привязка. Затем выбираем второй объект и его координаты перемещения будут рассчитываться относительно этого объекта.\nСдвинуть вершины относительно координат Команда: Shear.\n"},{"id":68,"href":"/tags/kotlin/","title":"Kotlin","parent":"Tags","content":"","description":""},{"id":69,"href":"/programming/kotlin/useful-libs/","title":"Полезные библиотеки","parent":"Kotlin","content":" WEB БД Конфигурация Математика и статистика Логирование Кросплатформенная разработка WEB Fuel - библиотека для работы с HTTP. Документация. Правда, кажется заброшенной\u0026hellip; Ktor - framework для написания web-приложений. БД Exposed - DSL для SQL от Jetbrains. Краткое описание от кого-то. Конфигурация konf - работа с конфигурацией из различных источников. hoplite - очень похожа на konf. Математика и статистика Kotlin Statistics. Логирование kotlin-logging - удобная библиотека для Kotlin. Пока, пожалуй, самая лучшая. Кросплатформенная разработка Compose Multiplatform - разработка мультиплатформенных GUI-приложений. ","description":" WEB БД Конфигурация Математика и статистика Логирование Кросплатформенная разработка WEB Fuel - библиотека для работы с HTTP. Документация. Правда, кажется заброшенной\u0026hellip; Ktor - framework для написания web-приложений. БД Exposed - DSL для SQL от Jetbrains. Краткое описание от кого-то. Конфигурация konf - работа с конфигурацией из различных источников. hoplite - очень похожа на konf. Математика и статистика Kotlin Statistics. Логирование kotlin-logging - удобная библиотека для Kotlin. Пока, пожалуй, самая лучшая. Кросплатформенная разработка Compose Multiplatform - разработка мультиплатформенных GUI-приложений. "},{"id":70,"href":"/tags/java/","title":"Java","parent":"Tags","content":"","description":""},{"id":71,"href":"/programming/java/useful-libs/","title":"Полезные библиотеки","parent":"Java","content":"На странице собрана информация о различных Java-библиотеках\nJson Библиотека от Google Gson. UserGuide. Прочее Ожидание разных событий awaitility (https://github.com/awaitility/awaitility). Документация. disruptor - быстрый кольцевой буфер. Генераторы данных Java-faker (https://github.com/DiUS/java-faker) - генерация всяких случайных данных разных типов. JavaDocs. Data Faker - ещё один генератор, но активно развивается. GitHub. Работа с географическими и навигационными данными geotools.org. Документация. REST Unirest-Java. GitHub. Retrofit. GitHub. Асинхронное программирование VERT.X - реактивные приложения в JVM. Используются события, вроде. Статья на Хабре. ","description":"На странице собрана информация о различных Java-библиотеках\nJson Библиотека от Google Gson. UserGuide. Прочее Ожидание разных событий awaitility (https://github.com/awaitility/awaitility). Документация. disruptor - быстрый кольцевой буфер. Генераторы данных Java-faker (https://github.com/DiUS/java-faker) - генерация всяких случайных данных разных типов. JavaDocs. Data Faker - ещё один генератор, но активно развивается. GitHub. Работа с географическими и навигационными данными geotools.org. Документация. REST Unirest-Java. GitHub. Retrofit. GitHub. Асинхронное программирование VERT.X - реактивные приложения в JVM. Используются события, вроде. Статья на Хабре. "},{"id":72,"href":"/administration/linux/kde/","title":"Оптимизация KDE5","parent":"Linux","content":" Решение проблем кривой табуляции в консоли Отключение Akonadi Настройка горячих клавиш Отключение Alt+F2 для быстрого доступа Оптимизация KDE 5\nРешение проблем кривой табуляции в консоли Если в приложении Konsole съехала табуляция (например расстояние между курсором и последним символом увеличивается по мере набора), то, скорее всего проблема в шрифте. Чтобы исправить ситуацию нужно поменять шрифт. Для этого в меню открываем Настройка/Настроить профиль\u0026hellip;. Далее:\nОткрыть вкладку \u0026ldquo;Внешний вид\u0026rdquo;. Внизу нажимаем кнопку \u0026ldquo;Выбор шрифта\u0026hellip;\u0026rdquo; Меняем шрифт и его размер на любой понравившийся. Нажимаем Ok и закрываем диалог настроек также, нажатием Ok. После этого проблема должна быть решена.\nОтключение Akonadi В настоящее время Akonadi, вроде, не поддерживатеся. Открываем файл ~/.config/akonadi/aconadiserverrc и меняем значение в строчке StartServer= с true на false.\nStartServer=false Настройка горячих клавиш Все настройки находятся в Параметры системы/Комбинации клавиш/Глобальные комбинации клавиш.\nОтключение Alt+F2 для быстрого доступа Компонент KDE: krunner.\nДействие: Выполнить команду.\n","description":" Решение проблем кривой табуляции в консоли Отключение Akonadi Настройка горячих клавиш Отключение Alt+F2 для быстрого доступа Оптимизация KDE 5\nРешение проблем кривой табуляции в консоли Если в приложении Konsole съехала табуляция (например расстояние между курсором и последним символом увеличивается по мере набора), то, скорее всего проблема в шрифте. Чтобы исправить ситуацию нужно поменять шрифт. Для этого в меню открываем Настройка/Настроить профиль\u0026hellip;. Далее:\n"},{"id":73,"href":"/administration/linux/settings-after-installing/","title":"Полезные установки","parent":"Linux","content":" Установка Oracle Java Добавить переменную окружения в систему Настройка GRUB Чтобы отключить заставку при загрузке надо оставить Чтобы подправить иконку в меню KDE Сброс мыши Microsoft после рестарта Хранитель экрана Установка Oracle Java Про разные способы установки написано здесь. Чтобы установить родную Oracle Java необходимо добавить репозиторий ppa:webupd8team/java со скриптом установки:\nsudo add-apt-repository ppa:webupd8team/java sudo apt-get update sudo apt-get install oracle-java8-installer Во время установки потребуется принять лиценизию Oracle.\nДобавить переменную окружения в систему Необходимо отредактировать файл {{/etc/profile}}.\nJAVA_HOME=/usr/lib/jvm/jdk1.7.0_21 PATH=$PATH:$HOME/bin:$JAVA_HOME/bin export JAVA_HOME export JAVA_BIN export PATH Пользовательские программы копируются в {{/usr/local}}.\nНастройка GRUB Grub2-выбор OS по-умолчанию\nЧтобы отключить заставку при загрузке надо оставить GRUB_CMDLINE_LINUX_DEFAULT=\u0026quot;quiet\u0026quot; в файле /usr/share/grub/default/grub.\nУстановка пакета разрешения зависимостей Автоматическое разрешение зависимостей в Ubuntu\nЧтобы подправить иконку в меню KDE необходимо подправить соответствующий файл .desktop в ~/.local/share/applications.\nСброс мыши Microsoft после рестарта Можно использовать утилиту resetmsmice.\nХранитель экрана Установить следующей командой:\nsudo apt install xscreensaver ","description":" Установка Oracle Java Добавить переменную окружения в систему Настройка GRUB Чтобы отключить заставку при загрузке надо оставить Чтобы подправить иконку в меню KDE Сброс мыши Microsoft после рестарта Хранитель экрана Установка Oracle Java Про разные способы установки написано здесь. Чтобы установить родную Oracle Java необходимо добавить репозиторий ppa:webupd8team/java со скриптом установки:\n"},{"id":74,"href":"/3d-vfx-video/blender/links/","title":"Полезные ссылки","parent":"Blender","content":"На странице представлены всякие полезные ссылки по изучению Blender, архивы моделей и прочего.\nАвторские сайты Witold Jaworski Пишет о моделировании самолётов. Также можно скачать некоторые бесплатные модели.\nНа сайте представлена книга по разработке плагинов для Blender.\n","description":"На странице представлены всякие полезные ссылки по изучению Blender, архивы моделей и прочего.\nАвторские сайты Witold Jaworski Пишет о моделировании самолётов. Также можно скачать некоторые бесплатные модели.\nНа сайте представлена книга по разработке плагинов для Blender.\n"},{"id":75,"href":"/tags/csharp/","title":"Csharp","parent":"Tags","content":"","description":""},{"id":76,"href":"/programming/csharp/useful-func/","title":"Полезные функции","parent":"C#","content":" Преобразование числа в IP-адрес Преобразование IP-адреса в число в прямом порядке (BE) Преобразование числа в IP-адрес new System.Net.IPAddress(36546)).ToString(); Преобразование IP-адреса в число в прямом порядке (BE) { byte[] ipNums = ip.Split(\u0026#39;.\u0026#39;).Select(s =\u0026gt; byte.Parse(s)).ToArray(); uint res = 0; res = res + ipNums[0] \u0026lt;\u0026lt; 8; res = res + ipNums[1] \u0026lt;\u0026lt; 8; res = res + ipNums[2] \u0026lt;\u0026lt; 8; res = res + ipNums[3]; return res; } ","description":" Преобразование числа в IP-адрес Преобразование IP-адреса в число в прямом порядке (BE) Преобразование числа в IP-адрес new System.Net.IPAddress(36546)).ToString(); Преобразование IP-адреса в число в прямом порядке (BE) { byte[] ipNums = ip.Split(\u0026#39;.\u0026#39;).Select(s =\u0026gt; byte.Parse(s)).ToArray(); uint res = 0; res = res + ipNums[0] \u0026lt;\u0026lt; 8; res = res + ipNums[1] \u0026lt;\u0026lt; 8; res = res + ipNums[2] \u0026lt;\u0026lt; 8; res = res + ipNums[3]; return res; } "},{"id":77,"href":"/programming/go/useful-func/","title":"Полезные функции","parent":"Go","content":" Перехват Ctrl+C Более простой вариант Как правильно реализовать Singletone Ожидание нажатия Enter в консоли Логирование из тестов Создание собственного типа аргумента командной строки Удаление элемента из slice Подключение к Microsoft IIS по SSL Вычисление абсолютного значения целых чисел Перехват Ctrl+C Информация взята из блога Mat Ryer.\nfunc main() { ctx := context.Background() // trap Ctrl#C and call cancel on the context ctx, cancel := context.WithCancel(ctx) c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) defer func() { signal.Stop(c) cancel() }() go func() { select { case \u0026lt;-c: cancel() case \u0026lt;-ctx.Done(): } }() doSomethingAwesome(ctx) } Более простой вариант func main() { c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) // Wait for Ctrl#C \u0026lt;-c } Как правильно реализовать Singletone Вариант взят отсюда singleton-pattern-in-go.\npackage singleton import ( \u0026#34;sync\u0026#34; ) type singleton struct { } var instance *singleton var once sync.Once func GetInstance() *singleton { once.Do(func() { instance = \u0026amp;singleton{} }) return instance } Ожидание нажатия Enter в консоли func main() { fmt.Println(\u0026#34;Press Enter...\u0026#34;) bufio.NewReader(os.Stdin).ReadLine() fmt.Println(\u0026#34;Exit\u0026#34;) } Логирование из тестов Чтобы вывести произвольную информацию из теста Go можно использовать метод testing.T.Logf(). Чтобы информация из него выводилась в консоль при запуске теста необходимо запускать тесты с ключом -v:\ngo test -v Создание собственного типа аргумента командной строки Допустим, хотим заполнить тип time.Time на основании значения, принятого из командной строки. Чтобы создать свой флаг необходимо имплементировать интерфейс time.Value имеющий следующий вид:\ntype Value interface { String() string Set(string) error } Соответственно, нужно имплементировать эти два метода на нашей структуре. Создаём следующую структуру.\n// DateTimeFlag представляет аргумент командной строки для даты. type DateTimeFlag struct { time.Time } func (dtf *DateTimeFlag) String() string { return fmt.Sprint(*dtf) } // Set вызывается в момент разбора аргумента командной строки. func (dtf *DateTimeFlag) Set(value string) (err error) { dtf.Time, err = time.Parse(\u0026#34;2006.01.02\u0026#34;, value) return } В данном конкретно случае, так как у нас в структуре анонимный тип time.Time уже имплементирует метод String(), то его можно пропустить.\nЧтобы добавить в свою программу возможность использования данного типа делаем следующее:\nОбъявить переменные созданного типа Добавить в секцию init() регистрацию этих переменных в качестве флагов. var date DateTimeFlag func init() { flag.Var(\u0026amp;date, \u0026#34;date\u0026#34;, \u0026#34;date from command line\u0026#34;) } Дальнейшее использование как обычно:\nflag.Parse() после чего, в случае корректно переданного параметра переменная проинициализируется соответствующим значением. Единственное отличие в использовании от встроенных типов данных в том, что обращаться к переменной надо напрямую, а не по ссылке.\n// Правильно fmt.Println(date) // Неправильно fmt.Println(*date) Удаление элемента из slice Информация взята из SliceTricks.\na = append(a[:i], a[i+1:]...) Подключение к Microsoft IIS по SSL В случае ошибки подключения по ssl local error: tls: no renegotiation. Необходимо настроить транспорт следующим образом:\ntransport := \u0026amp;http.Transport{ TLSClientConfig: \u0026amp;tls.Config{ Certificates: []tls.Certificate{cert}, RootCAs: caCertPool, // Если надо. Инициализацию смотри ниже. Renegotiation: tls.RenegotiateFreelyAsClient, // Собственно этот параметр и включает совместимость. }} И затем использовать его в HTTP-клиенте:\nclient := http.Client{Transport: transport} При этом загрузка корневых сертификатов (при необходимости) происходит следующим образом:\ncaCert, err := ioutil.ReadFile(\u0026#34;\u0026lt;path_to_ca.pem\u0026gt;\u0026#34;) if err != nil { log.Fatalf(\u0026#34;Error read ca certs: %v\u0026#34;, err) } caCertPool := x509.NewCertPool() caCertPool.AppendCertsFromPEM(caCert) Вычисление абсолютного значения целых чисел func absInt32(n int32) int32 { y := n \u0026gt;\u0026gt; 31 return (n ^ y) - y } func absInt64(n int64) int64 { y := n \u0026gt;\u0026gt; 63 return (n ^ y) - y } ","description":" Перехват Ctrl+C Более простой вариант Как правильно реализовать Singletone Ожидание нажатия Enter в консоли Логирование из тестов Создание собственного типа аргумента командной строки Удаление элемента из slice Подключение к Microsoft IIS по SSL Вычисление абсолютного значения целых чисел Перехват Ctrl+C Информация взята из блога Mat Ryer.\nfunc main() { ctx := context.Background() // trap Ctrl#C and call cancel on the context ctx, cancel := context.WithCancel(ctx) c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) defer func() { signal.Stop(c) cancel() }() go func() { select { case \u0026lt;-c: cancel() case \u0026lt;-ctx.Done(): } }() doSomethingAwesome(ctx) } Более простой вариант func main() { c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt) // Wait for Ctrl#C \u0026lt;-c } Как правильно реализовать Singletone Вариант взят отсюда singleton-pattern-in-go.\n"},{"id":78,"href":"/programming/csharp/useful-libs/","title":"Полезные библиотеки","parent":"C#","content":" Работа с базой Dapper Работа с SSH SSH.NET. Некоторые примеры. ","description":" Работа с базой Dapper Работа с SSH SSH.NET. Некоторые примеры. "},{"id":79,"href":"/programming/go/useful-libs/","title":"Полезные библиотеки","parent":"Go","content":" Конфигурация и всё такое Логгирование UI Пользовательский интерфейс в терминале GUI Консоль Работа с БД Работа с json, XML HTML, парсинг сайтов Работа с файлами Тестирование Генерация данных Шаблоны HTTP WEB-приложения OpenAPI Работа с сетью Работа со строками Работа со временем Генерация различных ID Работа с hardware Сетевые framework Списки и наборы Игры Графика Видео Статистика и математика Обработка данных на потоке и прочее Парсеры Коллекции Встраивание ресурсов (теперь не актуально, так как с версии 1.6 есть встроенный механизм) Вспомогательные утилиты Работа со звуком Мониторинг OpenCV Офис goroutines Шифровние События Интеграция с другими ЯП Разное Конфигурация и всё такое viper Чтение и сохранение конфигурации в различных форматах. Работа с командной строкой: создание флагов командной строки в POSIX формате, автоматическая генерация \u0026ldquo;как использовать\u0026rdquo;. Kingpin - ещё одна реализация работы с флагами. Godoc. Flaggy. Также работа с командной, возможность создания подкоманд. Godoc. Go-Config. Позволяет собирать конфигурацию из различных источников (файлы, командная строка и т.д.). Godoc. Описание в блоге. Gonfig - позволяет читать конфигурацию из json и переменных окружения. Venom. Также позволяет конфигурировать из различных источников. GoDoc. Реализация формата HOCON configuration. GoDoc. Yaml - работа с YAML от Canonical. API. Blog. promptui - позволяет запрашивать у пользователя информацию в процессе работает. Интегрируется, например с cobra и другими подобными библиотеками. GoDoc. cli - ещё одна библиотека для расширения флагов командной строки. GoDoc. koanf - позиционируется как более легковесный конкурент viper. Логгирование Библиотека от Google Glog. Документация. Библиотека от juju Loggo. Документация. Библиотека от Uber Zap. Документация. Logrus. Наверное наиболее популярный. Используется в Docker. API. Вроде как самая маленькая библиотека go-logging. API. zerolog - логирование в формате json. GoDoc. Также может логировать в нормальном виде. go-spew - красивый вывод в консоль данных для отладки. GoDoc. httpretty - удобное логирование в консоль http запросов как на сервере, так и на клиенте. GoDoc. zlog - логер позволяет скрывать чувствительную информацию из логирования. GoDoc. Log - простенький логер с подсветкой вывода от создателей Bubble Tea. GoDoc. UI Пользовательский интерфейс в терминале Отличная статья с обзором разных библиотек для написания text-based GUI.\nПользовательский интерфейс в терминале (https://github.com/nsf/termbox-go). Ещё одна реализация (https://github.com/gdamore/tcell). Почти полностью совместима с termbox-go. gocui. Godoc. TermUI. Документация. Bubble Tea - от создателей Glow. Box CLI Maker - позволяет создавать приветственные окна. GUI Реализация node.js socket (https://github.com/googollee/go-socket.io). Полезно при использовании electron в качестве UI. Библиотека для написания GUI на Electron (https://github.com/asticode/go-astilectron). Walk. Библиотека позволяет писать GUI под Windows. Является обёрткой над win32 API. duit. Развивающаяся библиотека. Кроссплатформенная. Вводная информация. WebView - вызов встроенного в GUI операционки просмотрщика HTML. Кросплатформенный. GoDoc. QT(https://github.com/therecipe/qt) - биндинг QT для Go. Wiki. WUI(https://github.com/gonutz/wui) - позволяет создавать простые GUI в Windows. GoDoc. Systray - позволяет выводить информацию в tray. Gio - пилит чувак из Google. Надо следить. Основной сайт gioui. Gi - ещё один framework, но зависит от cgo. fyne - кроссплатформенная библиотека. Под виндой собралась. GoDoc. Документация на сайте разработчика. giu - обёртка над Dear ImGui. Поддерживает lua. GoDoc. govcl(https://github.com/ying32/govcl) - биндинг над графической библиотекой lazurus. Мне кажется очень перспективная. README. pix - какая-то минималистическая библиотека. GoDoc. Консоль go-pretty - упрощает вывод текста, таблиц, списков в консоль. Progressbar. GoDoc gchalk - позволяет выводить в консоль разноцветный текст. GoDoc. PTerm - ещё одна реализация цветного терминала. Очень прикольный. GitHub. lipgloss - ещё одна библиотека для создания интерфсов в терминале. Анимация в командной строке Wow. progressbar от автора croc. GoDoc. color - позволяет раскрашивать вывод в консоль. GoDoc. ishell - библиотека позволяет создавать интерактивные консольные приложения. Работа с БД sqlx. Работа с данными как со структурами. sqlboiler. Ещё одна библиотека для генерации данных на основании схемы. Документация. Драйвер для MS SQL (https://github.com/denisenkom/go-mssqldb). Bolt (embeded key/value база данных) (https://github.com/boltdb/bolt) (например, используется в InfluxDB). Список проектов, использующих bolt. Среди них много интересных. Budger. Драйвер для sqllite (https://github.com/mattn/go-sqlite3) ql - embedded SQL database. GoDoc. Gorm - ORM для Go. Github. GoDoc. Docs. go-sqlbuilder - постритель запросов к базе. GoDoc. squirrel - sql генератор. GoDoc. go-memdb - база в памяти, близка к Redis. поддерживает транзакции. sqlite - реализация sqlite на чистом Go. GoDoc. Работа с json, XML jsoniter. Проекты Tidwall gjson. Библиотека для работы с json. Можно получать значение по пути. sjson. Библиотека, противоположная gjson. Позволяет устанавливать значения по пути. jj - обработка json на потоке. fastjson. Библиотека от создателя fasthttp. API. gojsonq A simple Go package to Query over JSON/YAML/XML/CSV Data. GoDoc. easyjson - серилизатор без reflection от mail.ru. hujson - HumanJson - позволяет парсить json с комментариями и запятыми после последнего элемента. GoDoc. go-json - очередной быстрый заменитель стандартной библиотеки. sonic - библиотека от создателей Tik-Tok. Используют ассемблер. GoDoc. HTML, парсинг сайтов goquery - позволяет работать со страницой как Jquery только на GO. Удобно для разбора. GoDoc. Работа с файлами fslock - блокировка файлов. Godoc. fsnotify - отслеживание изменений ФС. GoDoc. Тестирование Bdd test framework ginkgo. GitHub. gomega - библиотека для сравнения, интегрируется с ginkgo. goblin - ещё один BDD. Godoc. Пакет для создание и запуска тестов на Cucumber в Go. Как использовать godoc для создания заглушек на основании feature-файлов Gherkin parser Go. Testify - библиотека по принципу *unit. Добавляет методы assert. GoConvey. Github. RobotGo - позволяет управлять GUI из Go.GoDoc. ApiDoc. Rapid - property-based тестирование. GoDoc. go-cmp - библиотека для сравнения значений двух структур. GoDoc. quicktest - набор удобных методов. chromedr - реализация Chrome driver API на Go. GoDoc. gocheck - конкурент testify. Генерация данных Fake. Библиотека для генерации различных данных на русском и английском языках. GoDoc. Faker - ещё одна библиотека. GoDoc. gofakeit - тоже для генерации данных. Шаблоны templ - написание html шаблонов на Go. Документация. HTTP fasthttp - на сегодняшний момент самая быстрая реализация http сервера на Go. API resty - rest-client, позволяющий удобно делать запросы и разбирать ответы. Автоматически измеряет время ответа от сервера. GoDoc. quic-go - реализация протокола quic на Go. WEB-приложения Gorilla web toolkit. Небольшая вводная. Revel. Framework типа Grails для Go. Компилятор Go в JS GopherJs. GoWebApp - MVC web application на Go. Blue Jay - Blueprint - Более продвинутая реализация. Framework macaron. Документация. Github. hutplate - надстройка над http для облегчения авторизации, сессионностии прочее. Bufallo - ещё один web-framewrok. Документация. Github. Beego web-framework. Github. Godoc. quicktemplate - замена работы с шаблонами в Go. Похожа на работу с Jsp в Java. API. gramework - от создателя fasthttp. chi - простой легковесный роутер как Gorilla, только легче и идеоматичней. Godoc. echo - легковесный web-framework. Gin - вроде как шустрый web-framework. Офицальный сайт. GoDoc. authboss - библиотека для аутентификации, авторизации. GoDoc. sessionup - позволяет управлять сессиями. GoDoc Secure - прослойка позволяет настраивать некоторую безопасность для web-приложений. GoDoc. nosurf - помогает осущесвлять проверку безопасности для web-серверов. GoDoc. go-kit - набор для создания микросервисов. GitHub. webrtc - реализация WebRTC на GO. goa - библиотека позволяет быстро создавать api и микросервисы. Имеет свой DSL для описания. GitHub. go-app - ещё один интересный проект написания progressive web apps (PWA). С декларативным синтаксисом. GitHub. ldpap - реализация LDAP 3 на GO. Zepto - обещают легковесный framework в Go-стиле. GopherJS - компилятор из go в JS. GoDoc. flogo - framework для создания микро-сервисов. GitHub. bud - очередной мощный фреймворк для создания сайтов. Пока требует node.js. Будем наблюдать. OpenAPI ogen. Официальный сайт. Работа с сетью Evio - работа с сетью, основанная на событиях. Noise. Библиотека, позволяющая писать децентрализованные P2P приложения. Godoc. limiter - библиотека для разных ограничений в сети, типа количества запросов в секунду. GoPacket - библиотека для работы с сетевыми пакетами от Google. GoDoc. Работа со строками Dateparse - библиотека для парсинга строк, представляющих из себя различные форматы дат. Документация. GoAWK - реализация парсера языка AWK на Go. Есть возможность использовать прямо внутри Go. GoDoc. Работа со временем Now - библиотека расширяет некоторые методы для работы с датой. Документация. cron - реализация cron на GO. GoDoc. when - парсер времени с натурального языка. Генерация различных ID Информация взята отсюда.\nПакет Пример Описание формата ksuid 0pPKHjWprnVxGH7dEsAoXX2YQvU 4 bytes of time (seconds) # 16 random bytes xid b50vl5e54p1000fo3gh0 4 bytes of time (seconds) # 3 byte machine id # 2 byte process id # 3 bytes random betterguid -Kmdih_fs4ZZccpx2Hl1 8 bytes of time (milliseconds) # 9 random bytes sonyflake 20f8707d6000108 ~6 bytes of time (10 ms) # 1 byte sequence # 2 bytes machine id ulid 01BJMVNPBBZC3E36FJTGVF0C4S 6 bytes of time (milliseconds) # 8 bytes random sid 1JADkqpWxPx-4qaWY47~FqI 8 bytes of time (ns) # 8 random bytes go.uuid 5b52d72c-82b3-4f8e-beb5-437a974842c UUIDv4 from RFC 4112 for comparison uuid UUIDs based on RFC 4122 Работа с hardware Gobot\nБиблиотека позволяет программировать различные устройства. Репозиторий на Guthub. Документация. Emgo\nПозволяет писать микропрограммы для ARM Cortex-M based MCUs. Репозиторий на Github. Блог как это всё работает. Periph от команды google GitHub. GoDoc. Tinygo GitHub. TamaGo - bare metal Go for ARM SoCs . Позволяет писать на GO для голых чипов AMD. ghw - Golang HardWare discovery/inspection library. Позволяет получать информацию о конфигурации оборудовании, текущем состоянии. Сетевые framework TarsGo. Реализация tars протокола для Go. GoDoc. Списки и наборы Go-Set - набор разных типов коллекций и операций с ними. GoDoc. Enumer - генератор для enum. concurrent-map - конкурентная мапа. Игры Ebiten. Позволяет писать двухмерные игры. Godoc. Краткая справка. GitHub. Prototype. Простая библиотека для работы с канвой. GoDoc. Библиотека для написания игр pixel. Графика Draw2d - библиотека для вывода графики. Godoc. Gg - визуализация двухмерной графики. Godoc. colorgrad - позволяет делать градиенты, шкалы цветов и всё такое. GoDoc. generativeart - позволяет создавать абстрактные рисунки. imaging - изменение изображений - изменение масштаба, поворот и т.д. Видео Go Fluent FFmpeg - wrapper для ffmpeg. Позволяет работать с видеофайлами из программы на Go. GoDoc. Статистика и математика Tachymeter - подсчёт статистики с выводом в виде json, histogram и в консоль. GoDoc. Gonum - мощная библиотека для различной математики и статистики. Github. GoDoc. decimal - работа с числами с заданной точностью. GoDoc. Обработка данных на потоке и прочее Machinery обработка сообщений. Работа с различными источниками. Godoc. Bigslice - аналог Spark на Go. GitHub. GoDoc. watermill - работа с сообщениями. Возможность интегрироваться с Kafka, RabbitMQ. Парсеры Интерпретатор GO Yaegi. Введение. GoDoc. Работает как библиотека, так и как приложение командной строки. Позволяет парсить и запускать код на Go. Коллекции ristretto - конкурентный кеш. Описание в блоге. Godoc. olric - распределённый in-memory кеш, ключ-значение. GoDoc. Встраивание ресурсов (теперь не актуально, так как с версии 1.6 есть встроенный механизм) esc - встраивает файлы в бинарник, при этом их сжимая. GoDoc. Rice - упаковка ресурсов в исполняемый файл. GoDoc. packr -создан на основе rice, но улучшен. GoDoc. statik - чем-то похож на esc. GoDoc. broccoli - встраивает и сжимает ресурсы в бинарник. GoDoc. binclude - тоже умеет сжимать. Обращение к ерсурсам практически также, как и к ресурсам системы. GoDoc. Вспомогательные утилиты Goweight - анализ размера используемых пакетов. go-mod-outdated (go-mod-outdated) - анализ устаревших пакетов в зависимостях. Spaghetti - анализ зависимостей в браузере. Go binary size SVG treemap - рисует SVG карту библиотек в бинарнике. Примерно как Goweight. Работа со звуком beep - работа со звуком в форматах WAV, MP3, OGG, and FLAC. GoDoc. Мониторинг ExpvarMon - библиотека позволяет мониторить в консоли программу на Go. fgprof - мониторинг загрузки процессора. Достаточно простой и наглядный. GoDoc. statviz - рисует разные графики в runtime. OpenCV gocv - библиотека для работы с OpenCv из Go. GitHub. Работа с открытой библиотека OpenCV - wrapper для OpenCv на Go. GoCV - ещё один wrapper. Поддерживает cuda. Офис excelize - работа с excel файлами из Go. Документация. GoDoc. goroutines Runner для goroutines. Позволяет легко управлять запущенными goroutines. ants. Позволяет создавать с пулом goroutings. GoDoc. Управление gouroutines Run. Godoc. tunny - создание пулов gorouting. Похоже как в джаве сделаны Executors. GoDoc. goleak - поиск утечек в рутинах. Conc - ещё одна реализация часто встречающихся операций с потоками. Пулы, параллельная работа с мапами и т.д. Шифровние age -библиотека для семмитричного и ассиметриченого шифрования. Может использоватся как отдельная утилита GoDoc. События Колокол - простая библиотека для работы с событиями. Статья от авторов на Хабре. RxGo - одна из самых популярных библиотек для работы на событиях. Интеграция с другими ЯП py - интеграция с Python. GoDoc. Разное Распознавание естественных языков. Фильтрация строк из ридера как в Groovy и Unix. Документация. linq, как в C# в Go. Документация. Множество библиотек для web. Etree. Библиотека для работы с XML. Рисование графиков go-chart. Glot. Документация. Список проектов для работы с железом. Reducemap на Go gleam. Анализ данных. Паук для web Colly. Документация. Работа с клавиатурой keyboard. Глобальных перехват Ctrl+C и прочих прерываний Goodbye. Статья от автора. Работа с изображениями govips. Клиент для elasticsearch. Запись в блоге. Gosec. Библиотека для сканирования исходного кода на Go и выявление проблем с безопасностью. Detective - мониторинг распределённых систем. GoDoc. Charlatan позволяет автоматически создавать заглушки для программных интерфейсов. Tablewriter - вывод таблиц в текстовом форматре. Chroma - подсветка синтаксиса. Godoc. Prototool от Uber. Альтернативная работа с protobuf. Godoc. BigMachine - библиотека для развертывания кластера. Например, работает в связке с Bigslice. g-locale - определение установленной локали пользователя. GoDoc. ASCIIGraph - вывод графиков в консоли при помощи ASCII символов. GoDoc. validator - проверка значений в структурах. GoDoc. go-humanize - позволяет переводить числа в байты, удобное время и прочее. GoDoc. error - набор обёрток для обработки ошибок. dagger - реализация графов. script - работа из Go c командами консоли. Возможно написание shell скриптов. Описание. ","description":" Конфигурация и всё такое Логгирование UI Пользовательский интерфейс в терминале GUI Консоль Работа с БД Работа с json, XML HTML, парсинг сайтов Работа с файлами Тестирование Генерация данных Шаблоны HTTP WEB-приложения OpenAPI Работа с сетью Работа со строками Работа со временем Генерация различных ID Работа с hardware Сетевые framework Списки и наборы Игры Графика Видео Статистика и математика Обработка данных на потоке и прочее Парсеры Коллекции Встраивание ресурсов (теперь не актуально, так как с версии 1.6 есть встроенный механизм) Вспомогательные утилиты Работа со звуком Мониторинг OpenCV Офис goroutines Шифровние События Интеграция с другими ЯП Разное Конфигурация и всё такое viper Чтение и сохранение конфигурации в различных форматах. Работа с командной строкой: создание флагов командной строки в POSIX формате, автоматическая генерация \u0026ldquo;как использовать\u0026rdquo;. Kingpin - ещё одна реализация работы с флагами. Godoc. Flaggy. Также работа с командной, возможность создания подкоманд. Godoc. Go-Config. Позволяет собирать конфигурацию из различных источников (файлы, командная строка и т.д.). Godoc. Описание в блоге. Gonfig - позволяет читать конфигурацию из json и переменных окружения. Venom. Также позволяет конфигурировать из различных источников. GoDoc. Реализация формата HOCON configuration. GoDoc. Yaml - работа с YAML от Canonical. API. Blog. promptui - позволяет запрашивать у пользователя информацию в процессе работает. Интегрируется, например с cobra и другими подобными библиотеками. GoDoc. cli - ещё одна библиотека для расширения флагов командной строки. GoDoc. koanf - позиционируется как более легковесный конкурент viper. Логгирование Библиотека от Google Glog. Документация. Библиотека от juju Loggo. Документация. Библиотека от Uber Zap. Документация. Logrus. Наверное наиболее популярный. Используется в Docker. API. Вроде как самая маленькая библиотека go-logging. API. zerolog - логирование в формате json. GoDoc. Также может логировать в нормальном виде. go-spew - красивый вывод в консоль данных для отладки. GoDoc. httpretty - удобное логирование в консоль http запросов как на сервере, так и на клиенте. GoDoc. zlog - логер позволяет скрывать чувствительную информацию из логирования. GoDoc. Log - простенький логер с подсветкой вывода от создателей Bubble Tea. GoDoc. UI Пользовательский интерфейс в терминале Отличная статья с обзором разных библиотек для написания text-based GUI.\n"},{"id":80,"href":"/tags/git/","title":"Git","parent":"Tags","content":"","description":""},{"id":81,"href":"/tags/github/","title":"Github","parent":"Tags","content":"","description":""},{"id":82,"href":"/programming/useful-git/","title":"Полезная информация по git","parent":"Программирование","content":" Общая информация Как удалять ветки Удаление всех локальных изменений Настройка работы ssh с несколькими репозиториями Разная информация по работе с GitHub.com Влить исходный репозиторий в свой форканый Общая информация Официальная книга по Git.\nКак содержать репозиторий в чистоте\nЕщё полезная статья на Habrahabr.\nКак удалять ветки Локальные:\ngit branch -d the_local_branch Удалённые:\ngit push origin :the_remote_branch Удаление всех локальных изменений git clean -xdf Настройка работы ssh с несколькими репозиториями Создать файл config в директории .ssh. Со следующим содержимым:\n# GitLab.com Host gitlab.com Preferredauthentications publickey IdentityFile ~/.ssh/gitlab Host github.com Preferredauthentications publickey IdentityFile ~/.ssh/github при этом github и gitlab файлы с приватными ключами соответствующих сервисов.\nРазная информация по работе с GitHub.com Влить исходный репозиторий в свой форканый Информация взята из официальной документации github.\nОткрыть консоль и перейти в директорию со своим репозиторием.\nПереключится, если надо на нужную ветку (обычно master)\ngit checkout master Выкачать изменения из оригинального репозитория:\ngit pull https://github.com/ORIGINAL_OWNER/ORIGINAL_REPOSITORY.git BRANCH_NAME Если есть конфликты исправить их.\nЗакоммитить изменения с результатом слияния\nЗакачать изменения в свой репозиторий\ngit push origin master ","description":" Общая информация Как удалять ветки Удаление всех локальных изменений Настройка работы ssh с несколькими репозиториями Разная информация по работе с GitHub.com Влить исходный репозиторий в свой форканый Общая информация Официальная книга по Git.\nКак содержать репозиторий в чистоте\nЕщё полезная статья на Habrahabr.\nКак удалять ветки Локальные:\n"},{"id":83,"href":"/programming/csharp/","title":"C#","parent":"Программирование","content":"Заметки по .NET\nВызов асинхронного метода из синхронного Вызов асинхронного метода из синхронного var task = Task.Run(async () =\u0026gt; await MyAsyncFunction()) task.Wait(); var asyncFunctionResult = task.Result; ","description":"Заметки по .NET\nВызов асинхронного метода из синхронного Вызов асинхронного метода из синхронного var task = Task.Run(async () =\u0026gt; await MyAsyncFunction()) task.Wait(); var asyncFunctionResult = task.Result; "},{"id":84,"href":"/tags/mikrotik/","title":"Mikrotik","parent":"Tags","content":"","description":""},{"id":85,"href":"/administration/mikrotik/","title":"Mikrotik","parent":"Администрирование","content":" Полезная информация по настройке RouterOs от Mikrotik Настройка фильтрации трафика на Mikrotik. Часть 1. Настройка фильтрации трафика на Mikrotik. Часть 2. Настройка фильтрации трафика на Mikrotik. Часть 3. Настройка фильтрации трафика на Mikrotik. Часть 4. Блог интернет магазина ASP24.ru Общий раздел по настройке Mikrotik\n","description":" Полезная информация по настройке RouterOs от Mikrotik Настройка фильтрации трафика на Mikrotik. Часть 1. Настройка фильтрации трафика на Mikrotik. Часть 2. Настройка фильтрации трафика на Mikrotik. Часть 3. Настройка фильтрации трафика на Mikrotik. Часть 4. Блог интернет магазина ASP24.ru Общий раздел по настройке Mikrotik\n"},{"id":86,"href":"/3d-vfx-video/blender/remove-fireflies/","title":"Как избавиться от светлячков","parent":"Blender","content":"Если при рендеринге тёмных сцен появляются светлячки, как на показанном изображении:\nТо необходимо установить параметр \u0026ldquo;Clamp Indirect\u0026rdquo; равным единице как на скриншоте:\nПосле этого \u0026ldquo;светлячки\u0026rdquo; должны пропасть:\nТестовое изображение с habrastorage:\n","description":"Если при рендеринге тёмных сцен появляются светлячки, как на показанном изображении:\nТо необходимо установить параметр \u0026ldquo;Clamp Indirect\u0026rdquo; равным единице как на скриншоте:\nПосле этого \u0026ldquo;светлячки\u0026rdquo; должны пропасть:\nТестовое изображение с habrastorage:\n"},{"id":87,"href":"/administration/linux/hibernate/","title":"Настройка hibernate на linux без использования swap раздела","parent":"Linux","content":"Взято отсюда.\nДля начала надо проверить поддержку спящего режима:\nsystemctl hibernate Если выдаётся ошибка типа Failed to hibernate system via logind: Sleep verb “hibernate” not supported”, то, скорее всего, в BIOS включён secure boot. Необходимо его отключить.\nСовременные дистрибутивы, как правило, используют swap файл, а не swap раздел.\nНастройка файла swap 1. Создать файл нужного раздела sudo dd if=/dev/zero of=/swapfile count=16384 bs=1MiB где:\nbs - размер блока. count - размер файла в количестве размера блока. В данном примере размер файла будет равен 16 Гигабайт.\n2. Дать нужные разрешения sudo chmod 600 /swapfile 3. Указываем файл как swap sudo mkswap /swapfile 4. Активировать swap sudo swapon /swapfile 5. Добавить запись в fstab Или проверить, что она там уже есть.\necho \u0026#39;/swapfile none swap sw 0 0\u0026#39; | sudo tee -a /etc/fstab Находим UUID диска и offset файла подкачки Чтобы найти раздел root выполняем команду:\ndf -h находим на какой раздел примонтирован корневой каталог. Например:\nmax@max-dell:~$ df -h Файл.система Размер Использовано Дост Использовано% Cмонтировано в tmpfs 1,6G 1,8M 1,6G 1% /run /dev/sda2 468G 33G 412G 8% / tmpfs 7,8G 32M 7,8G 1% /dev/shm tmpfs 5,0M 4,0K 5,0M 1% /run/lock /dev/sda1 511M 39M 473M 8% /boot/efi tmpfs 1,6G 60K 1,6G 1% /run/user/1000 Видим, что корень примонтирован к разделу /dev/sda2.\nНаходим UUID диска командой blkid. Например:\nmax@max-dell:~$ blkid /dev/sda2: UUID=\u0026#34;9964c46d-d6d7-43c7-b9a9-5fb5844436aa\u0026#34; BLOCK_SIZE=\u0026#34;4096\u0026#34; TYPE=\u0026#34;ext4\u0026#34; PARTUUID=\u0026#34;2ded6755-e0f2-4e2f-94b5-2273fc31f526\u0026#34; Сохраняем в \u0026ldquo;блокноте\u0026rdquo; значение UUID.\nКомандой sudo filefrag -v /swapfile находим физическое смещение swap файла на диске:\nmax@max-dell:~$ sudo filefrag -v /swapfile Filesystem type is: ef53 File size of /swapfile is 17179869184 (4194304 blocks of 4096 bytes) ext: logical_offset: physical_offset: length: expected: flags: 0: 0.. 4095: 1916928.. 1921023: 4096: 1: 4096.. 8191: 1925120.. 1929215: 4096: 1921024: Нужно сохранить значение 1916928 - это физическое смешение файла.\nНастраиваем восстановление из файла подкачки в параметрах ядра sudo vim /etc/default/grub В параметр GRUB_CMDLINE_LINUX_DEFAULT добавляем следующую строку: resume=UUID=xxx resume_offset=xxx, где меняем соответствующие xxx на ранее сохранённые UUID диска и физическое смещение. Например:\nGRUB_CMDLINE_LINUX_DEFAULT=\u0026#34;quiet splash resume=UUID=9964c46d-d6d7-43c7-b9a9-5fb5844436aa resume_offset=1916928\u0026#34; Обновляем конфигурацию grub:\nsudo update-grub После этого должно гибернация должна заработать, если нет, смотри дальше\u0026hellip;\nПересоздаём файлы initramfs Создаём или открываем файл /etc/initramfs-tools/conf.d/resume:\nsudo vim /etc/initramfs-tools/conf.d/resume Вставляем в него такую же строчку:\nRESUME=UUID=9964c46d-d6d7-43c7-b9a9-5fb5844436aa resume_offset=1916928 После сохранения файла пересоздадим initramfs:\nsudo update-initramfs -c -k all Включение пункта \u0026ldquo;Спящий режим\u0026rdquo; в меню Открываем или создаём следующий файл:\nsudo vim /etc/polkit-1/localauthority/50-local.d/com.ubuntu.enable-hibernate.pkla Вставляем в него следующее содержимое:\n[Re-enable hibernate by default in upower] Identity=unix-user:* Action=org.freedesktop.upower.hibernate ResultActive=yes [Re-enable hibernate by default in logind] Identity=unix-user:* Action=org.freedesktop.login1.hibernate;org.freedesktop.login1.handle-hibernate-key;org.freedesktop.login1;org.freedesktop.login1.hibernate-multiple-sessions;org.freedesktop.login1.hibernate-ignore-inhibit ResultActive=yes После перезагрузки или перелогинивания должен появится пункт \u0026ldquo;Спящий режим\u0026rdquo;.\n","description":"Взято отсюда.\nДля начала надо проверить поддержку спящего режима:\nsystemctl hibernate Если выдаётся ошибка типа Failed to hibernate system via logind: Sleep verb “hibernate” not supported”, то, скорее всего, в BIOS включён secure boot. Необходимо его отключить.\nСовременные дистрибутивы, как правило, используют swap файл, а не swap раздел.\nНастройка файла swap 1. Создать файл нужного раздела sudo dd if=/dev/zero of=/swapfile count=16384 bs=1MiB где:\n"},{"id":88,"href":"/administration/linux/install-firefox-from-rep/","title":"Установка Firefox из репозитория","parent":"Linux","content":" От самой Mozilla Установка других языков в Firefox с помощью .deb-файлов Вариант с beta-версиями От самой Mozilla Установка .deb-пакета Firefox для основанных на Debian дистрибутивов\nЧтобы установить пакет .deb из репозитория APT, сделайте следующее:\nСоздайте директорию для хранения ключей репозитория APT, если её ещё нет:\nsudo install -d -m 0755 /etc/apt/keyrings Импортируйте подписанные ключи APT-репозитория Mozilla:\nwget -q https://packages.mozilla.org/apt/repo-signing-key.gpg -O- | sudo tee /etc/apt/keyrings/packages.mozilla.org.asc \u0026gt; /dev/null Отпечаток должен быть таким: 35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3. Вы можете проверить это с помощью следующей команды:\ngpg -n -q --import --import-options import-show /etc/apt/keyrings/packages.mozilla.org.asc | awk \u0026#39;/pub/{getline; gsub(/^ +| +$/,\u0026#34;\u0026#34;); if($0 == \u0026#34;35BAA0B33E9EB396F59CA838C0BA5CE6DC6315A3\u0026#34;) print \u0026#34;\\nThe key fingerprint matches (\u0026#34;$0\u0026#34;).\\n\u0026#34;; else print \u0026#34;\\nVerification failed: the fingerprint (\u0026#34;$0\u0026#34;) does not match the expected one.\\n\u0026#34;}\u0026#39; Далее добавьте APT-репозиторий Mozilla к списку своих исходников:\necho \u0026#34;deb [signed-by=/etc/apt/keyrings/packages.mozilla.org.asc] https://packages.mozilla.org/apt mozilla main\u0026#34; | sudo tee -a /etc/apt/sources.list.d/mozilla.list \u0026gt; /dev/null Сконфигурируйте APT, чтобы приоритизировать пакеты из репозитория Mozilla:\necho \u0026#39; Package: * Pin: origin packages.mozilla.org Pin-Priority: 1000 \u0026#39; | sudo tee /etc/apt/preferences.d/mozilla Обновите список пакетов и установите .deb-пакет Firefox:\nsudo apt-get update \u0026amp;\u0026amp; sudo apt-get install firefox Установка других языков в Firefox с помощью .deb-файлов sudo apt-get install firefox-l10n-ru Чтобы просмотреть список доступных языковых пакетов, вы можете использовать эту команду после добавления APT-репозитория Mozilla и запуска sudo apt-get update:\napt-cache search firefox-l10n Вариант с beta-версиями Удалите Firefox Snap, выполнив следующую команду в новом окне терминала:\nsudo snap remove firefox Добавить PPA команды (Ubuntu) Mozilla в список источников программного обеспечения, выполнив следующую команду в том же окне терминала\nsudo add-apt-repository ppa:mozillateam/ppa Изменить приоритет пакета Firefox, чтобы предпочтительнее использовать версию Firefox PPA/deb/apt. Это можно сделать с помощью фрагмента кода из FosTips (скопируйте и вставьте его целиком, а не построчно)\necho \u0026#39; Package: * Pin: release o=LP-PPA-mozillateam Pin-Priority: 1001 \u0026#39; | sudo tee /etc/apt/preferences.d/mozilla-firefox Поскольку вы (надеюсь) хотите, чтобы будущие обновления Firefox устанавливались автоматически, Балинт Речей поделился в своем блоге краткой командой, которая гарантирует, что это произойдет:\necho \u0026#39;Unattended-Upgrade::Allowed-Origins:: \u0026#34;LP-PPA-mozillateam:${distro_codename}\u0026#34;;\u0026#39; | sudo tee /etc/apt/apt.conf.d/51unattended-upgrades-firefox Наконец, установите Firefox через apt, выполнив эту команду:\nsudo apt install firefox ","description":" От самой Mozilla Установка других языков в Firefox с помощью .deb-файлов Вариант с beta-версиями От самой Mozilla Установка .deb-пакета Firefox для основанных на Debian дистрибутивов\nЧтобы установить пакет .deb из репозитория APT, сделайте следующее:\nСоздайте директорию для хранения ключей репозитория APT, если её ещё нет:\nsudo install -d -m 0755 /etc/apt/keyrings Импортируйте подписанные ключи APT-репозитория Mozilla:\n"},{"id":89,"href":"/administration/curl/","title":"Curl","parent":"Администрирование","content":"Полезная информация по работе с curl.\nИспользование клиентского сертификата для скачивания Ограничение скорости закачки Расширенное логирование Вывод произвольной информации о загрузке Использование клиентского сертификата для скачивания curl -O https://url --cert cert.pem --key client.key --cacert ca.pem Ограничение скорости закачки Ключ --limit-rate \u0026lt;speed\u0026gt; Могут быть следующие суффиксы:\n\u0026ldquo;k\u0026rdquo;, \u0026ldquo;K\u0026rdquo; - килобайты. \u0026ldquo;m\u0026rdquo;, \u0026ldquo;M\u0026rdquo; - мегабайты. \u0026ldquo;g\u0026rdquo;, \u0026ldquo;G\u0026rdquo; - гигабайты. Например: 200K, 3m или 1G.\nРасширенное логирование Для расширенного логирования необходимо добавить ключ --trace. После ключа необходимо указать файл в который сохранять trace. Если вместо имени файла указать - то информация будет выводится в консоль.\nВывод произвольной информации о загрузке Для вывода произвольно информации применяется ключ -w. Применяется следующим образом: -w \u0026quot;Download time: %{time_total}, file size: %{size_download}, speed: %{speed_download}\\n\u0026quot;. Могут использоваться следующие параметры:\nПараметр Значение content_type the Content-Type value of the file http_code HTTP(S) code in the page http_connect HTTP code in the proxy response num_connects number of new connections made in the transfer num_redirects number of redirection operations that were made size_download total size of downloaded data size_header total size of the headers size_request total size of the request size_upload total size of uploaded data speed_download average download speed speed_upload average upload speed time_connect time from the start until the remote host connection was made time_namelookup time from the start of the command until name resolution was finished time_pretransfer time from the start until the file transfer was about to begin time_redirect time for all redirection operations time_starttransfer all pretransfer time plus the time needed to calculate the result time_total time for the complete operation (to the millisecond) url_effective the last URL fetched ","description":"Полезная информация по работе с curl.\nИспользование клиентского сертификата для скачивания Ограничение скорости закачки Расширенное логирование Вывод произвольной информации о загрузке Использование клиентского сертификата для скачивания curl -O https://url --cert cert.pem --key client.key --cacert ca.pem Ограничение скорости закачки Ключ --limit-rate \u0026lt;speed\u0026gt; Могут быть следующие суффиксы:\n"},{"id":90,"href":"/programming/kotlin/","title":"Kotlin","parent":"Программирование","content":" Информация по Kotlin Официальный сайт.\nДобавление поддержки Kotlin в gradle kotlinlang.ru - сайт, посвящённый Kotlin на-русском. ","description":" Информация по Kotlin Официальный сайт.\nДобавление поддержки Kotlin в gradle kotlinlang.ru - сайт, посвящённый Kotlin на-русском. "},{"id":91,"href":"/programming/java/","title":"Java","parent":"Программирование","content":"Информация о Java, примеры использования и библиотеки\nJVM Быстрая памятка по настройке логирования в Java JVM Liberica - сборка openjdk от BellSoft. Принимают участие в развитии openjdk и вообще всячески лицензированы oracle. GraalVM - позволяет запускать не только java, но и JavaScript, Python, Ruby, R, C, C++. AdoptOpenJDK - ещё одна сборка openjdk. Также есть реализация Openj9 вирутальной машины. Быстрая памятка по настройке логирования в Java Для добавления логирования в проект надо добавить следующие зависимости:\nimplementation(\u0026#34;org.slf4j:slf4j-api:1.7.32\u0026#34;) //Поменять на актуальную версию implementation(\u0026#34;ch.qos.logback:logback-classic:1.2.6\u0026#34;) //Поменять на актуальную версию В classpath (например в src/main/resources) надо добавить файл logback.xml со следующим содержимым:\n\u0026lt;?xml version=\u0026#34;1.0\u0026#34; encoding=\u0026#34;UTF-8\u0026#34;?\u0026gt; \u0026lt;configuration\u0026gt; \u0026lt;appender name=\u0026#34;STDOUT\u0026#34; class=\u0026#34;ch.qos.logback.core.ConsoleAppender\u0026#34;\u0026gt; \u0026lt;encoder\u0026gt; \u0026lt;pattern\u0026gt;%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n\u0026lt;/pattern\u0026gt; \u0026lt;/encoder\u0026gt; \u0026lt;/appender\u0026gt; \u0026lt;root level=\u0026#34;DEBUG\u0026#34;\u0026gt; \u0026lt;appender-ref ref=\u0026#34;STDOUT\u0026#34;/\u0026gt; \u0026lt;/root\u0026gt; \u0026lt;!-- Следующий логер нужен для исключения сообщений от этого класса в лог --\u0026gt; \u0026lt;logger name=\u0026#34;org.needed.class\u0026#34; level=\u0026#34;OFF\u0026#34;/\u0026gt; \u0026lt;/configuration\u0026gt; В Java используется следующий код для получения logger:\nLogger logger = LoggerFactory.getLogger(\u0026#34;\u0026lt;Нужный класс\u0026gt;\u0026#34;); ","description":"Информация о Java, примеры использования и библиотеки\nJVM Быстрая памятка по настройке логирования в Java JVM Liberica - сборка openjdk от BellSoft. Принимают участие в развитии openjdk и вообще всячески лицензированы oracle. GraalVM - позволяет запускать не только java, но и JavaScript, Python, Ruby, R, C, C++. AdoptOpenJDK - ещё одна сборка openjdk. Также есть реализация Openj9 вирутальной машины. Быстрая памятка по настройке логирования в Java Для добавления логирования в проект надо добавить следующие зависимости:\n"},{"id":92,"href":"/programming/go/i18n-i10n/","title":"Internationalization (i18n) и Localization (l10n) в Go","parent":"Go","content":"Информация взята отсюда\nАльтернативный пакет (https://github.com/nicksnyder/go-i18n).\nInternationalization (i18n) Localization (l10n) Internationalization (i18n) Для форматирования вывода информации в национальном формате (например, чисел) используются следующие пакеты:\ngolang.org/x/text/language golang.org/x/text/message По-умолчанию, они не установлены. Необходимо их скачать:\ngo get -u golang.org/x/text/language go get -u golang.org/x/text/message Для вывода информации на основании языка используется тип message.Printer. Используется он следующий образом:\npackage main import ( \u0026#34;fmt\u0026#34; \u0026#34;golang.org/x/text/language\u0026#34; \u0026#34;golang.org/x/text/message\u0026#34; ) func main() { p = message.NewPrinter(language.Russian) p.Printf(\u0026#34;Вы получили %.2f монет.\\n\u0026#34;, 16521.56) } Localization (l10n) Для локализации используются те же пакеты. Чтобы выводить сообщение в зависимости от языка необходимо задать шаблоны используя метод message.SetString().\nПример кода:\npackage main import ( \u0026#34;fmt\u0026#34; \u0026#34;golang.org/x/text/language\u0026#34; \u0026#34;golang.org/x/text/message\u0026#34; ) func init() { message.SetString(language.Russian, \u0026#34;You\u0026#39;ve got %.2f coins.\u0026#34;, \u0026#34;Вы получили %.2f монет.\u0026#34;) message.SetString(language.English, \u0026#34;You\u0026#39;ve got %.2f coins.\u0026#34;, \u0026#34;You\u0026#39;ve got %.2f coins.\u0026#34;) } func main() { p := message.NewPrinter(language.English) p.Printf(\u0026#34;You\u0026#39;ve got %.2f coins.\u0026#34;, 16521.56) fmt.Println() p = message.NewPrinter(language.Russian) p.Printf(\u0026#34;You\u0026#39;ve got %.2f coins.\u0026#34;, 16521.56) fmt.Println() } ","description":"Информация взята отсюда\nАльтернативный пакет (https://github.com/nicksnyder/go-i18n).\nInternationalization (i18n) Localization (l10n) Internationalization (i18n) Для форматирования вывода информации в национальном формате (например, чисел) используются следующие пакеты:\ngolang.org/x/text/language golang.org/x/text/message По-умолчанию, они не установлены. Необходимо их скачать:\ngo get -u golang.org/x/text/language go get -u golang.org/x/text/message Для вывода информации на основании языка используется тип message.Printer. Используется он следующий образом:\n"},{"id":93,"href":"/programming/go/time-formatting/","title":"Форматирование даты/времени","parent":"Go","content":" Простейший пример Информация взята Format/parse a time or date\nПростейший пример Go, в отличие от других языков, использует свою нотацию для времени не yyyy-MM-dd. Go использует мнемоническую нотацию:\nMon Jan 2 15:04:05 MST 2006.\nЕё надо переписать в виде, котором надо. Проще всего это запомнить, если переписать её как 01/02 03:04:05PM ‘06 -0700.\nНапример:\nconst ( layoutISO = \u0026#34;2006-01-02\u0026#34; layoutUS = \u0026#34;January 2, 2006\u0026#34; ) date := \u0026#34;1999-12-31\u0026#34; t, _ := time.Parse(layoutISO, date) fmt.Println(t) // 1999-12-31 00:00:00 +0000 UTC fmt.Println(t.Format(layoutUS)) // December 31, 1999 Для форматировании времени применяются следующие методы из пакета time.Time:\nМетод Format для форматирования строки из времени. Функция time.Parse для получения даты из строки. func (t Time) Format(layout string) string func Parse(layout, value string) (Time, error) Стандартные форматы:\nРаскладка Замечание January 2, 2006 Дата 01/02/06 Jan-02-06 15:04:05 Время 3:04:05 PM Jan _2 15:04:05 Timestamp Jan _2 15:04:05.000000 с микросекундами 2006-01-02T15:04:05-0700 ISO 8601 (RFC 3339) 2006-01-02 15:04:05 02 Jan 06 15:04 MST RFC 822 02 Jan 06 15:04 -0700 с временной зоной Mon, 02 Jan 2006 15:04:05 MST RFC 1123 Mon, 02 Jan 2006 15:04:05 -0700 с временной зоной Также в пакете представлены следующие константы:\nANSIC = \u0026#34;Mon Jan _2 15:04:05 2006\u0026#34; UnixDate = \u0026#34;Mon Jan _2 15:04:05 MST 2006\u0026#34; RubyDate = \u0026#34;Mon Jan 02 15:04:05 -0700 2006\u0026#34; RFC822 = \u0026#34;02 Jan 06 15:04 MST\u0026#34; RFC822Z = \u0026#34;02 Jan 06 15:04 -0700\u0026#34; RFC850 = \u0026#34;Monday, 02-Jan-06 15:04:05 MST\u0026#34; RFC1123 = \u0026#34;Mon, 02 Jan 2006 15:04:05 MST\u0026#34; RFC1123Z = \u0026#34;Mon, 02 Jan 2006 15:04:05 -0700\u0026#34; RFC3339 = \u0026#34;2006-01-02T15:04:05Z07:00\u0026#34; RFC3339Nano = \u0026#34;2006-01-02T15:04:05.999999999Z07:00\u0026#34; Kitchen = \u0026#34;3:04PM\u0026#34; // Handy time stamps. Stamp = \u0026#34;Jan _2 15:04:05\u0026#34; StampMilli = \u0026#34;Jan _2 15:04:05.000\u0026#34; StampMicro = \u0026#34;Jan _2 15:04:05.000000\u0026#34; StampNano = \u0026#34;Jan _2 15:04:05.000000000\u0026#34; Опции форматирования:\nТип Опции Год 06 2006 Месяц 01 1 Jan January День 02 2 _2 (width two, right justified) День недели Mon Monday Часы 03 3 15 Минуты 04 4 Секунды 05 5 мс мс нс .000 .000000 .000000000 мс мс нс .999 .999999 .999999999 (trailing zeros removed) am/pm PM pm Часовая зона MST Сдвиг часовой зоны -0700 -07 -07:00 Z0700 Z07:00 ","description":" Простейший пример Информация взята Format/parse a time or date\nПростейший пример Go, в отличие от других языков, использует свою нотацию для времени не yyyy-MM-dd. Go использует мнемоническую нотацию:\nMon Jan 2 15:04:05 MST 2006.\nЕё надо переписать в виде, котором надо. Проще всего это запомнить, если переписать её как 01/02 03:04:05PM ‘06 -0700.\n"},{"id":94,"href":"/programming/go/","title":"Go","parent":"Программирование","content":" Различная информация по языку Go Сайт.\nРазличная информация по языку Go Получение пакетов с зависимостями Полезные статьи и книги Списки проектов Поиск библиотек Полезные команды Разное Основной репозиторий, Зеркало на github.com. Документация по разным библиотекам (GoDoc). Новый сайт с документацией (go.dev). Описание параметров утилиты Go. Gopm Registry реестр разных пакетов go. Можно скачать, если на компьютере не установлены программы версионного контроля. Список архитектур и операционок в которые можно компилировать. Форум. Альтернатива Play Golang. Go Report Card. Сервис проверяющий Go репозиторий на соответствие стандартам. Введение в программирование на Go - перевод книги An introduction to programming in Go Получение пакетов с зависимостями go get package/... Получение пакетов, необходимых для текущего приложения:\ngo get . Полезные статьи и книги Building Web Apps with Go. Writing Web Applications. Блог-дайджест по основным моментам Go. Essential Очень много полезной информации по использованию различных функций и пакетов. Множество примеров. Сайт какого-то энтузиаста. Есть основы по написанию web-приложений. go101.org интересные примеры по правильному написанию кода. Go by example - список типовых примеров. Go в примерах - то же самое по-русски. Работа с SQL в Go. Описание go tools - краткое описание возможностей и команд. Памятка по модулям. Списки проектов Ссылки на полезные проекты Go. awesome-go. Non-trivial Golang projects Список Arl Поиск библиотек libraries.io go-search.org golanglibs.com Полезные команды Просмотр, что убеагает в heap.\ngo build -gcflags=\u0026#34;-m -m\u0026#34; Разное On-demand Golang binaries - проект, позволяющий автоматически собирать бинарники Go под разные системы. Например через Github CI. Blog автора. gox ещё популярное решение. Запись в блоге. ","description":" Различная информация по языку Go Сайт.\nРазличная информация по языку Go Получение пакетов с зависимостями Полезные статьи и книги Списки проектов Поиск библиотек Полезные команды Разное Основной репозиторий, Зеркало на github.com. Документация по разным библиотекам (GoDoc). Новый сайт с документацией (go.dev). Описание параметров утилиты Go. Gopm Registry реестр разных пакетов go. Можно скачать, если на компьютере не установлены программы версионного контроля. Список архитектур и операционок в которые можно компилировать. Форум. Альтернатива Play Golang. Go Report Card. Сервис проверяющий Go репозиторий на соответствие стандартам. Введение в программирование на Go - перевод книги An introduction to programming in Go Получение пакетов с зависимостями go get package/... Получение пакетов, необходимых для текущего приложения:\n"},{"id":95,"href":"/3d-vfx-video/blender/addons/","title":"Addons","parent":"Blender","content":" Animation nodes. Документация. Форум. Позволяет анимировать различные сущности Blender. Сейчас уже не очень актуально, так как добавили геометрические ноды в Blender. Pose Thumbnails - вроде тоже уже не актуально, так как имеется встроенная библиотека. Font Selector - дополнение позволяет сразу применять шрифт, который показывается в виде списка, к объекту. А не лазить по директориям в поисках нужного. EasyAlign - позволяет выравнивать объекты относительно друг друга. BlenderArtist.org. Writinganimation - позволяет автоматически делать анимацию написания. BlenderArtist. Fspy привязка фотографий к 3d миру. Сам плагин. mesh_tiny_cad - несколько инструментов в стиле CAD. Очень полезная вещь. GitHub. D-Noise - удаление шума с использованием GPU NVIDIA. Работает только под виндой. GitHub. Сейчас, опять же, есть встроенный шумодав. Screencast-Keys - показ нажатых клавиш для скринкастов. blender-photogrammetry - плагин для фотограмметрии. Видео как использовать. Interactive Tools for Blender - позволяет автоматизировать множество рутиных операций. Sequenser для видео. Облегчает работу при видеомонтаже. Документация. optiloops - позволяет оптимизировать сетку с сохранением приемлемого качества. atomic - плагин позволяющий облегчить ведение проекта. Поиск, пропавших файлов и тому подобное. Welder - плагин позволяет делать сварные швы. Mira Tools - плагин для ретопологии и прочее. BlenderArtist. ","description":" Animation nodes. Документация. Форум. Позволяет анимировать различные сущности Blender. Сейчас уже не очень актуально, так как добавили геометрические ноды в Blender. Pose Thumbnails - вроде тоже уже не актуально, так как имеется встроенная библиотека. Font Selector - дополнение позволяет сразу применять шрифт, который показывается в виде списка, к объекту. А не лазить по директориям в поисках нужного. EasyAlign - позволяет выравнивать объекты относительно друг друга. BlenderArtist.org. Writinganimation - позволяет автоматически делать анимацию написания. BlenderArtist. Fspy привязка фотографий к 3d миру. Сам плагин. mesh_tiny_cad - несколько инструментов в стиле CAD. Очень полезная вещь. GitHub. D-Noise - удаление шума с использованием GPU NVIDIA. Работает только под виндой. GitHub. Сейчас, опять же, есть встроенный шумодав. Screencast-Keys - показ нажатых клавиш для скринкастов. blender-photogrammetry - плагин для фотограмметрии. Видео как использовать. Interactive Tools for Blender - позволяет автоматизировать множество рутиных операций. Sequenser для видео. Облегчает работу при видеомонтаже. Документация. optiloops - позволяет оптимизировать сетку с сохранением приемлемого качества. atomic - плагин позволяющий облегчить ведение проекта. Поиск, пропавших файлов и тому подобное. Welder - плагин позволяет делать сварные швы. Mira Tools - плагин для ретопологии и прочее. BlenderArtist. "},{"id":96,"href":"/3d-vfx-video/blender/","title":"Blender","parent":"3D, VFX, Видео","content":" В этом разделе будут собираться всякие заметки касательно свободного программного пакета Официальный сайт.\nAddons Как избавиться от светлячков Полезные команды и клавиатурные сокращения Blender Полезные ссылки Разные вопросы по renderman Блог Ивана Вострикова с полезными советами по 3d.\n","description":" В этом разделе будут собираться всякие заметки касательно свободного программного пакета Официальный сайт.\nAddons Как избавиться от светлячков Полезные команды и клавиатурные сокращения Blender Полезные ссылки Разные вопросы по renderman Блог Ивана Вострикова с полезными советами по 3d.\n"},{"id":97,"href":"/administration/linux/autostart/","title":"Автозагрузка","parent":"Linux","content":" Описание для новичков Процесс загрузки ","description":" Описание для новичков Процесс загрузки "},{"id":98,"href":"/administration/common/","title":"Общие вопросы","parent":"Администрирование","content":" Сети Конвертация сертификата из cer формата в pem Сохранение клиентского ключа Сохранение корневого ключа Сохранение в один файл, который содержит и ключ и сертификат Сохранение информации в отдельные файлы Сохранение частного ключа Сохранение только сертификата Удаление пароля из файла с ключом Сохранение доверенных сертификатов из цепочки Сети Сети для самых маленьких.\nКонвертация сертификата из cer формата в pem Сохранение клиентского ключа openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts Сохранение корневого ключа openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts Сохранение в один файл, который содержит и ключ и сертификат openssl pkcs12 -in source.pfx -out dest.pem -nodes Сохранение информации в отдельные файлы Сохранение частного ключа openssl pkcs12 -in source.pfx -nocerts -out key.pem Сохранение только сертификата openssl pkcs12 -in source.pfx -clcerts -nokeys -out cert.pem Удаление пароля из файла с ключом openssl rsa -in key.pem -out client.key Сохранение доверенных сертификатов из цепочки openssl pkcs12 -in source.pfx -out ca.pem -cacerts -nokeys ","description":" Сети Конвертация сертификата из cer формата в pem Сохранение клиентского ключа Сохранение корневого ключа Сохранение в один файл, который содержит и ключ и сертификат Сохранение информации в отдельные файлы Сохранение частного ключа Сохранение только сертификата Удаление пароля из файла с ключом Сохранение доверенных сертификатов из цепочки Сети Сети для самых маленьких.\nКонвертация сертификата из cer формата в pem Сохранение клиентского ключа openssl pkcs12 -in client_ssl.pfx -out client_ssl.pem -clcerts Сохранение корневого ключа openssl pkcs12 -in client_ssl.pfx -out root.pem -cacerts Сохранение в один файл, который содержит и ключ и сертификат openssl pkcs12 -in source.pfx -out dest.pem -nodes Сохранение информации в отдельные файлы Сохранение частного ключа openssl pkcs12 -in source.pfx -nocerts -out key.pem Сохранение только сертификата openssl pkcs12 -in source.pfx -clcerts -nokeys -out cert.pem Удаление пароля из файла с ключом openssl rsa -in key.pem -out client.key Сохранение доверенных сертификатов из цепочки openssl pkcs12 -in source.pfx -out ca.pem -cacerts -nokeys "},{"id":99,"href":"/administration/","title":"Администрирование","parent":"Тут всё начинается","content":" Разная информация по администрированию Curl Firefox Linux iptables Автозагрузка Настройка hibernate на linux без использования swap раздела Настройка swap Оптимизация KDE5 Очень полезные команды Linux на одном листе Полезная информация по разным командам Linux Полезные установки Решение разных проблем Список команд POSIX и их описание Установка Firefox из репозитория Установка проприетарных драйверов NVidia Mikrotik Rapberry Pi Raspbian Windows Полезные программы Общие вопросы Первые 10 минут на сервере Полезные программы ","description":" Разная информация по администрированию Curl Firefox Linux iptables Автозагрузка Настройка hibernate на linux без использования swap раздела Настройка swap Оптимизация KDE5 Очень полезные команды Linux на одном листе Полезная информация по разным командам Linux Полезные установки Решение разных проблем Список команд POSIX и их описание Установка Firefox из репозитория Установка проприетарных драйверов NVidia Mikrotik Rapberry Pi Raspbian Windows Полезные программы Общие вопросы Первые 10 минут на сервере Полезные программы "},{"id":100,"href":"/programming/","title":"Программирование","parent":"Тут всё начинается","content":"Тут собрана всяческая информация связанная с программированием на различных языках.\nСтили форматирования на разных языках Трейс Разные проекты и библиотеки Базы данных Continious integration Репозитории на github Анализ и доступ к данным Удобный поиск библиотек на разных языках libhunt.com.\nКниги по JS на GitHub.\nСтили форматирования на разных языках Информация взята отсюда.\nAndroid C#: Framework Design Guidelines, C# Programming Guide C++ Haskell Java JavaScript Groovy Go Objective C Perl PHP Python Ruby Scala Swift TypeScript Трейс Трейс событий через разные системы Zipkin. Ещё один стандарт OpenTracing. Opencensus - распределённый мониторинг и трейсинг. jaegertracing tracing в Kubernetes Документация. Список популярных библиотек от пользователя Arl.\nOpenSource от Google.\nРазные проекты и библиотеки GraalVM - универсальная виртуальная машина для разных языков (JVM, Python и прочее). Cloud Native Computing Foundation twirp - RPC протокол от Twitch. На основе protobuf, но через http/1.1 Roaring Bitmaps - реализация разреженной матрицы на разных языках. Репозиторий на GitHub. Базы данных KeyDB - keydb. :) GitHub. goose - утилита для миграции баз данных. Наката изменений в БД. Также может использоваться как Go-бибилиотека. Continious integration CDS - CI с возможностью настройки через GUI. GitHub. Репозитории на github Piblic APIs - список открытых API разной направленности.\nAPI для public-api. :) GitHub. Анализ и доступ к данным Pilosa - работа с большим объёмом данных. Анализ данных. ","description":"Тут собрана всяческая информация связанная с программированием на различных языках.\nСтили форматирования на разных языках Трейс Разные проекты и библиотеки Базы данных Continious integration Репозитории на github Анализ и доступ к данным Удобный поиск библиотек на разных языках libhunt.com.\nКниги по JS на GitHub.\nСтили форматирования на разных языках Информация взята отсюда.\n"},{"id":101,"href":"/administration/linux/","title":"Linux","parent":"Администрирование","content":"Здесь собирается полезная информация касательно настройки Linux.\niptables Автозагрузка Настройка hibernate на linux без использования swap раздела Настройка swap Оптимизация KDE5 Очень полезные команды Linux на одном листе Полезная информация по разным командам Linux Полезные установки Решение разных проблем Список команд POSIX и их описание Установка Firefox из репозитория Установка проприетарных драйверов NVidia Сервис по расшифровке команд shell (https://explainshell.com/). Полезная статься Linux-insides на русском. Примеры различных POSIX команд (AWK, GREP и прочее). Fishshell - новая командная оболочка. Исходники на GitHub. Документация. Обучалка. CookBook. Работа с атрибутами файлов. Cheat - подсказки по разным командам linux в консоли. Дистрибутивы Pop - интересный новый дистрибутив на базе Ubuntu. Kodachi - дистрибутив, ориентированный на безопасность. Tails - тоже нацелен на безопасность. Забывают всю информацию при перезагрузке. Manjaro - набирающий популярность. Надо следить. Clearlinux - интересная концепция при поддержке Intel. Описание. Мультимедиа Kodi - мультимедийный комбайн. Libreelec - дистрибутив с kodi. Семейство Ubuntu Ubuntu Kubuntu - основан на Ubuntu. В качестве рабочей среды используется KDE. Lubuntu - лёгкий дистрибутив, основанный на Ubuntu. В качестве рабочей среды используется LXQt. Резервное копирование системы Здесь описана программа Systemback.\n","description":"Здесь собирается полезная информация касательно настройки Linux.\niptables Автозагрузка Настройка hibernate на linux без использования swap раздела Настройка swap Оптимизация KDE5 Очень полезные команды Linux на одном листе Полезная информация по разным командам Linux Полезные установки Решение разных проблем Список команд POSIX и их описание Установка Firefox из репозитория Установка проприетарных драйверов NVidia Сервис по расшифровке команд shell (https://explainshell.com/). Полезная статься Linux-insides на русском. Примеры различных POSIX команд (AWK, GREP и прочее). Fishshell - новая командная оболочка. Исходники на GitHub. Документация. Обучалка. CookBook. Работа с атрибутами файлов. Cheat - подсказки по разным командам linux в консоли. Дистрибутивы Pop - интересный новый дистрибутив на базе Ubuntu. Kodachi - дистрибутив, ориентированный на безопасность. Tails - тоже нацелен на безопасность. Забывают всю информацию при перезагрузке. Manjaro - набирающий популярность. Надо следить. Clearlinux - интересная концепция при поддержке Intel. Описание. Мультимедиа Kodi - мультимедийный комбайн. Libreelec - дистрибутив с kodi. Семейство Ubuntu Ubuntu Kubuntu - основан на Ubuntu. В качестве рабочей среды используется KDE. Lubuntu - лёгкий дистрибутив, основанный на Ubuntu. В качестве рабочей среды используется LXQt. Резервное копирование системы Здесь описана программа Systemback.\n"},{"id":102,"href":"/administration/linux/useful-information/","title":"Полезная информация по разным командам Linux","parent":"Linux","content":" Просмотр журнала Описание NetworkManager Необновляемые пакеты Просмотр версии дистрибутива (только для LSB дистрибутивов) Команда удаления всех старых версий ядра Автоматическое подтверждение перезаписи файлов при копировании Снятие сетевого дампа Разрешение приложению слушать порты ниже 1024 Увеличение используемого диапазона портов Запуск процесса в фоне с перенаправлением вывода в указанный файл Проверка DNS Дефрагментация Копирование/перемещение заданного количества файлов из одного каталога в другой Перемещение Копирование** Можно использовать find Чтобы не пыталось копировать файл \u0026ldquo;.\u0026rdquo; лучше задать фильтр файлов Также можно использовать параметр -exec Изменение временной зоны из консоли Создание архива zip Настройка максимального количества открытых файлов Просмотр журнала journalctl -b -xe -u NetworkManager где:\nb - просмотр последней загрузки. Если указать индекс, начиная с нуля, то можно будет смотреть журнал предыдущих загрузок (0 - текущая, 1 - предыдущая и т.д.); x - вывод расширенной информации (по возможности); e - показ последних записей (перемотка в конец журнала); u - вывод информации от указанного модуля (в данном примере NetworkManager). Описание NetworkManager У него есть, также, интерфейс командной строки nmcli.\nНеобновляемые пакеты Если в результате выполнения команды sudo apt-get update в консоли появляется следующее сообщение:\nПакеты, которые будут оставлены в неизменном виде: \u0026lt;перечисление_пакетов\u0026gt; То необходимо выполнить следующую команду:\nsudo apt-get dist-upgrade Просмотр версии дистрибутива (только для LSB дистрибутивов) lsb_release -a Команда удаления всех старых версий ядра Взято отсюда\nsudo apt-get purge $(dpkg -l \u0026#39;linux-*\u0026#39; | sed \u0026#39;/^ii/!d;/\u0026#39;\u0026#34;$(uname -r | sed \u0026#34;s/\\(.*\\)-\\([^0-9]\\+\\)/\\1/\u0026#34;)\u0026#34;\u0026#39;/d;s/^[^ ]* [^ ]* \\([^ ]*\\).*/\\1/;/[0-9]/!d\u0026#39; | head -n -1) --assume-yes Автоматическое подтверждение перезаписи файлов при копировании yes | cp -rf xxx yyy Снятие сетевого дампа tcpdump -i eth0 -w dump host \u0026#34;hostname.ru\u0026#34; где:\n-i - название сетевого интерфейса с которого снимать dump; -w - имя файла, куда сохранять дамп; host - имя хоста трафик с которого снимать. Разрешение приложению слушать порты ниже 1024 sudo setcap cap_net_bind_service=+ep \u0026lt;app_path\u0026gt; Увеличение используемого диапазона портов sysctl net.ipv4.ip_local_port_range=\u0026#34;15000 61000\u0026#34; Без части \u0026ldquo;=\u0026rdquo; и дальше покажет текущую установку.\nЧтобы прописать настройку в системе постоянно нужно добавить в файл /etc/sysctl.conf следующую строку:\nnet.ipv4.ip_local_port_range = 1024 65535 Запуск процесса в фоне с перенаправлением вывода в указанный файл nohup some_command \u0026amp;\u0026gt; nohup2.out\u0026amp; Проверка DNS systemd-resolve --status Дефрагментация Для проверки фрагментации и дефрагментации разделов (если, вдруг, такое понадобится) используется утилита e4defrag. Проверить фрагментацию можно следующей командой:\nsudo e4defrag -c /dev/sdd1 Где /dev/sdd1 - раздел, который проверяется.\nБудет выведена примерно следующая информация:\nTotal/best extents 792579/758250 Average size per extent 226 KB Fragmentation score 1 [0-30 no problem: 31-55 a little bit fragmented: 56- needs defrag] This device (/dev/sdd1) does not need defragmentation. Done. Нужно смотреть на Fragmentation score. Если он в диапазоне 0-30 - дефрагментация не требуется.\nДля выполнения дефрагментации нужно выполнить следующую команду:\nsudo e4defrag -v /dev/sdd1 где v - вывод расширенной информации (можно не указывать).\nКопирование/перемещение заданного количества файлов из одного каталога в другой Допустим, хотим переместить/скопировать 10 файлов. Команда выполняется в каталоге из которого надо копировать/переместить файлы.\nПеремещение ls . | head -10 | xargs mv -t \u0026#34;$dst_dir\u0026#34; Копирование** ls . | head -10 | xargs cp -t \u0026#34;$dst_dir\u0026#34; Можно использовать find find ./ -printf \u0026#34;%f\\n\u0026#34; | head -n 10 | xargs -I {} mv {} dst_dir Чтобы не пыталось копировать файл \u0026ldquo;.\u0026rdquo; лучше задать фильтр файлов Например:\nfind ./ -name \u0026#34;*.json\u0026#34; | head -n 10 | xargs -I {} mv {} dst_dir Также можно использовать параметр -exec find . -name \u0026#34;*.json\u0026#34; -exec cp {} ../dst-dir/ \\; Изменение временной зоны из консоли sudo dpkg-reconfigure tzdata Создание архива zip zip -r output_file.zip file1 folder1 Настройка максимального количества открытых файлов Для настройки на время сеанса выполнить команду: ulimit -n 999999. Чтобы задать постоянно, нужно в файле /etc/sysctl.conf прописать:\nfs.file-max = 999999 ","description":" Просмотр журнала Описание NetworkManager Необновляемые пакеты Просмотр версии дистрибутива (только для LSB дистрибутивов) Команда удаления всех старых версий ядра Автоматическое подтверждение перезаписи файлов при копировании Снятие сетевого дампа Разрешение приложению слушать порты ниже 1024 Увеличение используемого диапазона портов Запуск процесса в фоне с перенаправлением вывода в указанный файл Проверка DNS Дефрагментация Копирование/перемещение заданного количества файлов из одного каталога в другой Перемещение Копирование** Можно использовать find Чтобы не пыталось копировать файл \u0026ldquo;.\u0026rdquo; лучше задать фильтр файлов Также можно использовать параметр -exec Изменение временной зоны из консоли Создание архива zip Настройка максимального количества открытых файлов Просмотр журнала journalctl -b -xe -u NetworkManager где:\n"},{"id":103,"href":"/","title":"Тут всё начинается","parent":"","content":" 3D, VFX, Видео Blender Addons Как избавиться от светлячков Полезные команды и клавиатурные сокращения Blender Полезные ссылки Разные вопросы по renderman Видео Kdenlive Текстуры и материалы Администрирование Curl Firefox Linux iptables Автозагрузка Настройка hibernate на linux без использования swap раздела Настройка swap Оптимизация KDE5 Очень полезные команды Linux на одном листе Полезная информация по разным командам Linux Полезные установки Решение разных проблем Список команд POSIX и их описание Установка Firefox из репозитория Установка проприетарных драйверов NVidia Mikrotik Rapberry Pi Raspbian Windows Полезные программы Общие вопросы Первые 10 минут на сервере Полезные программы Игры Godot GdScript Программирование C# Полезные библиотеки Полезные функции Docker Go Internationalization (i18n) и Localization (l10n) в Go Полезные библиотеки Полезные программы на Go Полезные функции Форматирование даты/времени Java Полезные библиотеки Kotlin Полезные библиотеки Python Rust Полезные программы на Rust SQL Web Мониторинг Полезная информация по git Полезные ссылки Регулярные выражения Разная информация Разные полезные программы Тестирование Библиотеки для автоматизации ","description":" 3D, VFX, Видео Blender Addons Как избавиться от светлячков Полезные команды и клавиатурные сокращения Blender Полезные ссылки Разные вопросы по renderman Видео Kdenlive Текстуры и материалы Администрирование Curl Firefox Linux iptables Автозагрузка Настройка hibernate на linux без использования swap раздела Настройка swap Оптимизация KDE5 Очень полезные команды Linux на одном листе Полезная информация по разным командам Linux Полезные установки Решение разных проблем Список команд POSIX и их описание Установка Firefox из репозитория Установка проприетарных драйверов NVidia Mikrotik Rapberry Pi Raspbian Windows Полезные программы Общие вопросы Первые 10 минут на сервере Полезные программы Игры Godot GdScript Программирование C# Полезные библиотеки Полезные функции Docker Go Internationalization (i18n) и Localization (l10n) в Go Полезные библиотеки Полезные программы на Go Полезные функции Форматирование даты/времени Java Полезные библиотеки Kotlin Полезные библиотеки Python Rust Полезные программы на Rust SQL Web Мониторинг Полезная информация по git Полезные ссылки Регулярные выражения Разная информация Разные полезные программы Тестирование Библиотеки для автоматизации "}]
|