• Может ли деградировать CPU/другое железо?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    попробуйте отключить защиту от всяких спектров, мельдаунов и тому подобного; для локального пользователя это не страшно, но вот производительность на некоторых процессорах порой урезает значительно. Как раз в последние несколько лет, за которые вы наблюдаете падение производительности, эти заплатки и были введены.
    Под линем параметр mitigations=off нужно скормить ядру, под виндой вроде в реестре нужно что-то подкручивать.
    Ответ написан
    Комментировать
  • Что делать если средство разметки дисков показывает разделы неправильно?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    когда задаёте вопросы старайтесь не урезать информацию там где это не нужно. Если бы вы сразу показали картинку полностью то в информации о диске многие бы обратили внимание на запись того что диск динамический, а так мало кто может вспомнить или задаться вопросом, а почему разделы на картинке серо-зелённого цвета. Преобразуйте диск в базовый, а после уже устанавливайте туда linux.
    Ответ написан
    Комментировать
  • Как отформатировать вывод из json?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ echo '{ "exitcode" : 0, "exited" : 1, "out-data" : "Filesystem Size Used Avail Use% Mounted on\nudev 2.3G 0 2.3G 0% /dev\ntmpfs 479M 672K 478M 1% /run\n/dev/mapper/pmg-root 28G 2.7G 24G 11% /\ntmpfs 2.4G 1.1M 2.4G 1% /dev/shm\ntmpfs 5.0M 0 5.0M 0% /run/lock\n" }' | jq -r '."out-data"' | column -t
    
    Filesystem            Size  Used  Avail  Use%  Mounted    on
    udev                  2.3G  0     2.3G   0%    /dev       
    tmpfs                 479M  672K  478M   1%    /run       
    /dev/mapper/pmg-root  28G   2.7G  24G    11%   /          
    tmpfs                 2.4G  1.1M  2.4G   1%    /dev/shm   
    tmpfs                 5.0M  0     5.0M   0%    /run/lock
    Ответ написан
    Комментировать
  • Поможет ли замена SSD на NVME ускорить работу с браузером Firefox?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    да, по идее должно немного ускориться если вы разместите ваш хомяк($HOME) на NVME так как профиль и кэш от firefox хранятся там. (это при стандартном размещении, а насчет всяких флатпаков и им подобных невкурсе). Но если нужно выжать максимум то лучше переместить кэш и профиль в ОЗМ(RAM) где доступ будет самым быстрым.
    По теме можно глянуть статью на archwiki - Firefox/Profile on RAM

    п.с.
    тут вспомнилось что при долгом использовании sqlite баз в firefox они могут малость засираться, по этому поводу есть даже древняя но всё еще актуальная статья на хабре - Ускоряем запуск браузера FireFox
    Ответ написан
    Комментировать
  • Как создать свой образ Arch Linux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    смотри статью на арчвики - Archiso, там всё подробно расписано, по нему также и официальный образ создаётся.
    Ответ написан
    Комментировать
  • Какую информацию могут собирать программы\приложения в linux системе?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    любой код(программа) может собирать ту или иную информацию независимо от ОС, но я так понимаю вы имеете в виду чувствительно-важную информацию без согласия на то, то есть скрытно. Если рассматривать использования программ с закрытым и открытым исходным кодом, то второе будет иметь явное преимущество в плане доверия и некоторых гарантий безопасности.
    С закрытым кодом всё просто - вы либо верите что в черном ящике под названием программа нету закладок либо не верите, некоторой гарантией конечно может выступать известный бренд либо лицо которое эту программу производит, и если у вас закрались подозрения то вам нужно либо смириться либо искать альтернативу, другого варианта нету.
    С открытым кодом интереснее - понятное дело что даже если код открыт, то при достаточно большом его объёме трудно найти лазейку, но аудит кода всё же возможен хоть и трудозатратен и не гарантирует 100% чистоты, но ведь постепенно развиваются и автоматизированные средства проверки кода что при первом варианте в принципе невозможно. Далее, сейчас для открытого кода популярно также держать и доступный git репозиторий что позволяет отслеживать историю изменений, то есть при желании можно получить информацию о том кто и когда внёс изменения, что также мотивирует разработчиков не косячить.

    В общем, если брать боле менее популярные программные продукты то у закрытого кода есть тока один сдерживающий фактор - репутация, пошатнуть которую к сожалению довольно сложно без прямых доказательств, а для косвенных нужно приложить довольно много времени и сил что по времени порой становится просто неактуально. У открытого кода в противовесе также идёт репутация, но потерять её довольно легко при открытом коде и истории изменений, поэтому отбор добропорядочных здесь идёт намного жестче.
    Ответ написан
    Комментировать
  • Как увидеть список и типы разделов на вставленной, но неподмонтированной флешке?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    как пример можете взять вывод утилиты lsblk за основу
    $ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
    NAME        RM TRAN     SIZE TYPE PTTYPE FSTYPE  PARTTYPENAME       MOUNTPOINTS                  MODEL
    sda          1 usb     14,7G disk dos    iso9660                                                 Transcend 16GB
    ├─sda1       1          789M part dos    iso9660 Empty              /run/media/admin/ARCH_202309 
    └─sda2       1           15M part dos    vfat    EFI (FAT-12/16/32)

    где RM это флаг съёмного устройства, 1 съёмное а 0 не съёмное, TRAN device transport type в общем тип устройства usb, ssd, nvme ..., с остальными параметрами думаю боле-мене ясно, их можно убавить по желанию.
    С помощью `awk` мы отфильтруем(`$2 == 1`) тока съёмные устройства, ну и заодно оставим шапку(`NR==1`) для информативности.
    При желании это можно вывести более кратко
    $ lsblk -o NAME,RM,FSTYPE,MOUNTPOINTS | awk '$2==1{$2="";print}'
    sda  iso9660
    ├─sda1  iso9660 /run/media/admin/ARCH_202312
    └─sda2  vfat

    где наличие третьего столбца у раздела говорит о его смонтированности

    п.с.
    тег CentOS тут думаю лишний, такая информация получается с помощью стандартных линукс утилит

    п.с.2
    может быть такая ситуация когда файловая система записана напрямую на весь диск без таблицы разделов, тогда вывод будет выглядеть примерно так:
    $ lsblk -o NAME,RM,TRAN,SIZE,TYPE,PTTYPE,FSTYPE,PARTTYPENAME,MOUNTPOINTS,MODEL | awk 'NR==1 || $2 == 1'
    NAME        RM TRAN     SIZE TYPE PTTYPE FSTYPE PARTTYPENAME     MOUNTPOINTS MODEL
    sda          1 usb     14,7G disk        ext4                                Transcend 16GB

    значение в PTTYPE будет отсутствовать

    п.с.3

    можно даже так с отфильтрованным и отформатированным выводом через json
    $ lsblk -Jpo PKNAME,NAME,RM,FSTYPE,MOUNTPOINTS | jq -r '.blockdevices[] | select(.rm == true) | .children[] |select(.mountpoints[] == null) | "Съёмное устройство \(.pkname) имеет не смонтированный раздел \(.name) с файловой системой \(.fstype)"'
    Съёмное устройство /dev/sda имеет не смонтированный раздел /dev/sda2 с файловой системой vfat

    для учета файловой системы которая записана на весь диск без таблицы разделов необходимо в команду выше добавить некоторые условия, но это уже будет вашей разминкой.
    Ответ написан
    4 комментария
  • Как вывести общий объем свободного и занятого дискового пространства?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    есть замечательная утилита lsblk
    например, вывести информацию по всем смонтированным FS(файловым системам) в виде - имя, доступный размер, используемый размер и процент от использования
    $ lsblk -lo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
    NAME      FSAVAIL FSUSED FSUSE%
    nvme1n1p1    423M    88M    17%
    nvme1n1p2  423,2G    29G     6%
    nvme0n1p2  360,2G  73,3G    16%

    awk здесь используется для отсечения не смонтированных ФС и самих дисков у которых естественно будет отсутствовать доступный размер.
    Если нужен общий размер файловой системы то добавьте параметр FSSIZE

    если нужно без шапки то используй ключ -n
    $ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% | awk 'NF>1'
    nvme1n1p1    423M    88M    17%
    nvme1n1p2  423,2G    29G     6%
    nvme0n1p2  360,2G  73,3G    16%

    если нужно по конкретной ФС то просто указываем её
    $ lsblk -nlo NAME,FSAVAIL,FSUSED,FSUSE\% /dev/nvme1n1p2
    nvme1n1p2  423,2G    29G     6%

    если нужна конкретная цифра то оставляем тока нужный параметр
    $ lsblk -no FSUSED /dev/nvme1n1p2
       29G

    при желании можно получить данные через json и после нужным образом обработать, например:
    $ lsblk -Jo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
    29G

    если нужно в байтах, то используйте ключ -b
    $ lsblk -Jbo FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[].fsused'
    31178240000


    еще как пример, для файловой системы nvme1n1p2 отобразим в форматированном виде информацию по свободному и занятому пространству:
    $ lsblk -Jo FSAVAIL,FSUSED /dev/nvme1n1p2 | jq -r '.blockdevices[] | "Всего занято:\t\(.fsused)\nВсего свободно
    :\t\(.fsavail)"'
    Всего занято:	29G
    Всего свободно:	423,2G


    п.с.
    если нужна обобщённая информация сразу по всему диску то наверное проще будет использовать smartctl
    sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято:\t\(.utilization.bytes)\nВсего свободно:\t\(.capacity.bytes - .utilization.bytes)"'
    Всего занято:	88322768896
    Всего свободно:	411785093120

    правда это скорее всего будет с учетом размера метаданных самих файловых систем расположенных на диске, что будет не так интересно, хотя для быстрой оценки диска сойдёт.
    (здесь вывод json под nvme, для других видов дисков скорее всего нужно будет подправить)

    и да, для преобразования размеров довольно удобно использовать утилиту numfmt
    $ sudo smartctl -ja /dev/nvme0n1 | jq -r '.nvme_namespaces[] | "Всего занято: \(.utilization.bytes)\nВсего свободно: \(.capacity.bytes - .utilization.bytes)"' | numfmt --to=iec --field 3 --padding=1 --format %.1f
    Всего занято: 82,3G
    Всего свободно: 383,6G
    Ответ написан
    1 комментарий
  • Как читать PDF в «темном режиме»?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    например MuPDF с ключом -I или переключение комбинацией Shift+i
    Ответ написан
    Комментировать
  • Как в bash создать динамический select?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    можно как вариант использовать jless, там тебе и json-меню и копирование данных, хотя с копированием там у некоторых наблюдаются проблемы.

    другой вариант, это вместо баш-партянки взять тот же fzf и скормить ему одноранговое меню доступных вариантов что позволит легко отсортировать и выделить необходимое
    cat sites.json | jq -r '.sites[] | "\(.title)\tadmin\t\(.admin[])\n\(.title)\tfront\t\(.front[])"' | sort -u | fzf -m --delimiter "\t" --nth 1,2 | awk '{print $3}'

    мультивыделение срабатывает по табу
    довольно удобно для небольших меню
    в целом это будет выглядеть примерно так
    zDboUomqo5lzjUJrHf2Lcsaqr.svg
    Ответ написан
    1 комментарий
  • Не могу скачать Windows 10 в россии, как скачать?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    если нужен именно оригинальный образ windows10 и нет возможности скачать с офсайта, то можно поступить по другому, узнать хешсуму нужного iso-образа и уже по этой хешсуме найти в интернете образ.
    Для последней доступной на офсайте Windows 10 Русский SHA-256 будет:
    Русский 64-bit	2A7C440C984EB018F513901E8ED96405213D237938C410C5089C0FAC7BA01898
    Русский 32-bit	7B339135C62CB06C8EB8748922659FC36FBE1DB08C2749B036C00676455A5D00

    взято с офсайта
    Windows-10-ISO.png

    сами хеши легко яндексяца и гуглятся

    после скачивания еще раз проверяем, например:
    $ sha256sum Win10_22H2_Russian_x64v1.iso 
    2a7c440c984eb018f513901e8ed96405213d237938c410c5089c0fac7ba01898  Win10_22H2_Russian_x64v1.iso
    Ответ написан
    Комментировать
  • Скрипт который прерывается если в директории есть 2 файла с похожим названием?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Пример, в /home/user лежат файлы test14 test12 test123 test1234. Необходимо чтобы скрипт проверил директорию, и в случае если в ней лежит только один файл test14 завершился успешно, а если в ней находятся файлы указанные выше, то прерывался.


    случайный набор цифр после слова test


    скрипт, строчка, вставить
    (( $(ls /home/user |grep -c ^test) > 1 )) && exit
    Ответ написан
    Комментировать
  • Как выключить компьютер при пропадании подключения?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    например для linux
    fping -r 1 -a -q 1.1.1.1 || systemctl poweroff
    ну а затем запускать команду например раз в минуту, с помощью того же cron или написать systemd юнит с таймером

    п.с.
    как верно заменил rPman , ниже в комментариях, для удалённых серверов одной попытку может не хватить, поэтому параметр -r ставим побольше, например
    fping -r 5 -a -q 1.1.1.1 || systemctl poweroff
    Ответ написан
    2 комментария
  • Не запускается GUI на Manjaro KDE. Как это исправить?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    попробуйте вручную запустить кеды под вяленым в tty (Ctrl + alt + F2 [F3,F4,...]) ?
    startplasma-wayland
    или так
    dbus-run-session startplasma-wayland

    п.с.
    по поводу startx, точнее ошибки startplasma-11: ... указанной на вышеприведённой картинке где говорится что версия GLIBXX_3.4.32 в библиотеке /usr/lib/libstdc++.so.6(от которой зависит библиотека /usr/lib/libKF5CoreAddons.so.5) не найдена.

    нужно для начала посмотреть какие GLIBCXX присутствуют в вашей libstdc++.so.6 командой:
    strings /usr/lib/libstdc++.so.6 | grep ^GLIBCXX_ | sort --sort=version --unique

    у Арча последней версии данный GLIBCXX_3.4.32 точно присутствует:
    ...
    GLIBCXX_3.4.28
    GLIBCXX_3.4.29
    GLIBCXX_3.4.30
    GLIBCXX_3.4.31
    GLIBCXX_3.4.32


    пакет и его текущую версию на сервере(откуда качаются пакеты) для файла/библиотеки /usr/lib/libstdc++.so.6 можно узнать с помощью команды:
    # pacman -Fy /usr/lib/libstdc++.so.6
    ...
    usr/lib/libstdc++.so.6 принадлежит core/gcc-libs 13.2.1-3

    где -Fy скачает полную базу с сервера, полная означает что там присутствует информация по файлам входящие в пакеты, используется для удобного поиска оных

    локальную(та что установлена) же версию для указанного пакета можно узнать командой:
    $ pacman -Q gcc-libs
    gcc-libs 13.2.1-3


    напрямую посмотреть версию пакета на сервере(без скачивания базы) можно командой:
    $ pacman -Si gcc-libs
    ...
    Версия               : 13.2.1-3


    как видим, в данном случае, версия на сервере(-S), версия в базе скачанной с сервера (-Fy) и базе локально установленных пакетов(-Q) для пакета gcc-libs совпадают 13.2.1-3

    в общем, в текущем пакете gcc-libs есть наличие GLIBCXX_3.4.32, то есть вышеописанной(на фото) проблемы для версии 13.2.1-3 быть точно не должно.

    возможно у вас пакет gcc-libs не был обновлён из за частичного обновления, либо по какой-то причине запоздало обновление на сервере, что маловероятно хотя исключать тоже нельзя.
    Для решения проблемы нужно просто полностью обновить систему
    sudo pacman -Syu
    и убедится что GLIBCXX_3.4.32 присутствует в /usr/lib/libstdc++.so.6 (см. выше)
    Ответ написан
    Комментировать
  • Зеркала Arch linux почему то всегда выдают 404 что делать?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    перед установкой чего либо всегда желательно обновить систему(-Syu) чтобы не встречать подобных казусов о чем в принципе и написал выше в комментариях к вопросу Василий Дёмин .
    В локальной базе версия пакета, судя по выхлопу, у вас edk2-ovmf-202308-2 (модификация 2), которую pacman и пытается запросить у внешнего сервера, НО на серверах она уже другая edk2-ovmf-202308-3 (модификация 3) что можно видеть если запросить информацию с сервера по данному пакету
    pacman -Si edk2-ovmf
    или даже посмотреть на оффсайте арча edk2-ovmf

    чтобы pacman увидел новую версию нужно синхронизировать локальный репозиторий с удалённым, для этого служит команда
    pacman -Sy
    информацию по ключу можно глянуть в хелпе(-h, --help)
    pacman -Sh
    ...
      -y, --refresh        загрузить обновленные базы данных с серверов
                           (-yy принудительно обновить даже если обновленные)


    после чего pacman уже сможет скачать и установить нужный пакет с сервера, но если система давно не обновлялась то такая установка будет считаться как частичное обновление системы что для дистрибутивов с ролинг-релизом настоятельно рекомендуется этого не делать, поэтому перед установкой необходимо обновить все пакеты в системе добавив ключ -u, --sysupgrade
    в целом команда будет выглядеть так:
    pacman -Syu edk2-ovmf
    Ответ написан
    Комментировать
  • Есть ли необходимость или очевидные плюсы перехода на linux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    наткнулся на повторяющиеся заметки о том, что "тру кодеру" необходимо работать в линуксе.

    думаю тут многое зависит от того что вкладывать в понятие "тру кодер"
    у одних это просто кодить от звонка до звонка за хорошие деньги.
    у других это интерес или даже зуд постоянно разбираться(учится) в чем-то и/или разрабатывать что-то новое.

    Понятное дело что это крайности и все мы находимся где-то между ними, хотя внутренние приоритеты чаще всё же будут довлеть к одному из полюсов.

    много ли людей которые хорошо знают linux хотят перейти на windows ??
    много ли людей которые хорошо знают windows хотят перейти на linux ??

    если допустить то что обе платформы покрывают основные базово-программные потребности обычного пользователя то ответ будет очевиден, большинство останется на том к чему привыкли и тока внешние обстоятельства могут побудить к миграции.
    Что касается "тру кодеров" то тут будет немного другая история, если брать двухполюсную модель выше, то у одних как и у обычных пользователей мотивация будет внешней, а ось для них это тока инструмент/станок для решения внешних задач, подобно секретарше использующей компьютер для печати документов.
    Для других же ОСь это по сути программа как и все остальные которые он использует, гибкость которой измеряется лишь уровнем овладения ею, а так как кроличья нора у линукс на порядки глубже чем у винды то выбор становится очевидным.
    Кстати по поводу перехода программистов на Linux в прошлом году вышла статья в основу которой легли данные Stack Overflow полученные путём опроса среди программистов.
    Ответ написан
    Комментировать
  • Какой язык или направление подойдет для программирования на компе с 4гб оперативы?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    вы бы еще добавили в описание какая материнка, количество плашек памяти и ОСь.
    Информация даст понять есть ли свободные слоты под ОЗУ и какого она типа DDR/DDR2/DDR3
    судя по инфе проца с сайта интел, у вас проц 2008 года, и скорее всего у вас там DDR2 распространяемость которой приходится на 2004-2010 года.
    Если есть свободные слоты под ОЗУ то однозначно докупить еще совместимой б/у памяти, это не должно быть сильно дорого.

    У меня браузер хром вообще перестал работать, а мозила жестко тормозит, если открыто несколько вкладок

    здесь слабое звено это недостаток ОЗУ, современные браузеры это лангольеры оперативной памяти.
    Современный веб это современный браузер, а современный браузер это боле-менее современная ось. Я так понимаю у вас там скорее всего win7/8 ? если да, то у меня для вас плохая новость, последние версии как фокса так и хромого перестали официально её поддерживать.
    Хотя на firefox 115 ESR еще можно будет перекантоваться с годик.
    Понятное дело что на старое железо ставить win10/11 смысла нету да и скорее всего не получится, по крайней мере нормально работать оно точно не будет.
    То есть, если в ближайший год кардинального апгрейда железа не предвидеться, то миграция под linux это уже будет необходимость, и чем раньше тем лучше.

    Конечно же надо учитывать что популярные дистрибутивы линукса напичканы как бройлерные утки поэтому скорее всего тормозить всё будет также а порой и хуже, но линукс на то и линукс что можно его собрать под свои хотелки из тех же конструкторов на подобии арча, ну или для новичков просто хорошенько поискать из уже имеющихся дистров. Конечно браузер под линукс будет так же прожорлив как и под виндой, но на каждый хитрый болт... к примеру, тот же zram очень хорошо жмёт память особенно если большая часть занята страницами браузера
    (ну и еще не забыть отключать все эти новомодные заплатки на ядро делающие процессор неторопливым, гуглить mitigations=off)
    Ответ написан
    Комментировать
  • Как исправить ошибку useradd?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    useradd: user 'arch' already exists

    здесь говорится что пользователь с именем arch уже существует в системе.
    Если это вы его создали раньше, но по каким-то причинам желаете пересоздать, то просто удалите его и создайте снова
    userdel -r имя_пользователя
    ключ -r удалит также и домашнюю директории указанного пользователя

    useradd group 'users' does not exist useradd the GROUP configuration in /etc/default/useradd will be ignored

    говорит о том что вы пытаетесь добавить пользователя в группу которой не существует, в данном случае не существует группы users
    все доступные группы перечислены в файле /etc/group
    чтобы вручную создать группу нужно использовать команду
    groupadd группа
    на сколько я помню в арче при создании пользователя с помощью useradd по умолчанию создаётся группа, название которой совпадает с именем пользователя и в которую затем автоматом и добавляется создаваемый пользователь у которого она будет основная. Естественно с помощью ключей поведение можно изменить. В других дистрах в основную группу пользователя часто ставят группу users

    Подробнее смотри информацию на арчвики - Управление пользователями
    Ответ написан
    Комментировать
  • Как передать опции fdisk?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    fdisk(диалоговый) is a dialog-driven program for creation and manipulation of partition tables.(man)
    cfdisk(псевдографический) is a curses-based program for partitioning any block device.(man)
    sfdisk(скрипто-ориентированный) is a script-oriented tool for partitioning any block device.(man)

    fdisk, cfdisk и sfdisk это связные утилиты входящие в util-linux
    с вашей задачей легко справится sfdisk который хорошо подходит для указания не интерактивных команд работы с разделами:
    echo -e "label:gpt\nstart=1M" | sudo sfdisk /dev/sdb

    создаст таблицу разделов gpt на диске /dev/sdb с одним разделом на весь диск у которого начальное смещение составляет 1M
    Ответ написан
    Комментировать
  • Как заставить работать горячие клавиши утилиты Fzf?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    там же в archwiki всё расписано какие сорсы нужно подключать для своего шела
    https://wiki.archlinux.org/title/Fzf

    например, для zsh нужно добавить в конец файла $HOME/.zshrc такие строки:
    source /usr/share/fzf/key-bindings.zsh
    source /usr/share/fzf/completion.zsh
    Ответ написан
    Комментировать