Задать вопрос
  • Как заменить нижнее подчеркивание на пробел в имени файла?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    find . -type f -name '*_*' -exec sh -c 'x="{}";mv "$x" "${x//_/ }"' \;
    Ответ написан
    Комментировать
  • Как массово скачать файлы по списку?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    curl --remote-name-all --parallel $(<urls.txt)
    для использования куков в curl смотри
    -c, --cookie-jar
    -b, --cookie
    Ответ написан
    Комментировать
  • Как создать новый раздел на весь диск?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    echo -e "label:mbr\nstart=1M" | sfdisk /dev/sdb
    создаст таблицу разделов mbr на диске /dev/sdb с одним разделом на весь диск у которого начальное смещение составляет 1M

    другой пример
    echo -e "label:gpt\nsize=100M\nsize=+" | sfdisk /dev/sdb

    здесь мы создаём таблицу разделов gpt и два раздела, один на 100M а второй на всё оставшееся место.

    если нужно ресайзить уже готовые разделы то глянь здесь где всё доходчиво написанно
    но а вообще смотри ман
    и кстати у sfdisk, fdisk и cfdisk общая поддержка создания сценария что иногда бывает довольно удобно, смотри (s)fdisk scripts

    п.с.
    sfdisk довольно недооценённая утилита в которую если вникнуть позволяет творить чудеса

    Диск должен быть разбит на 4 раздела. 3 я создаю из дампа sfdisk. Нужно создать еще один. Последний. На все оставшееся место.

    всё очень просто:
    echo -e "size=+" | sfdisk -N 4 /dev/sdb

    вот небольшой пример
    $ truncate -s 1G disk.img
    $ echo -e "label:mbr\nsize=100M\nsize=200M\nsize=300M" | sfdisk disk.img
    $ sfdisk --dump disk.img
    label: dos
    label-id: 0x58b01c8a
    device: disk.img
    unit: sectors
    sector-size: 512
    
    disk.img1 : start=        2048, size=      204800, type=83
    disk.img2 : start=      206848, size=      409600, type=83
    disk.img3 : start=      616448, size=      614400, type=83
    
    $ echo -e "size=+" | sfdisk -N 4 disk.img
    $ sfdisk --dump disk.img
    label: dos
    label-id: 0x58b01c8a
    device: disk.img
    unit: sectors
    sector-size: 512
    
    disk.img1 : start=        2048, size=      204800, type=83
    disk.img2 : start=      206848, size=      409600, type=83
    disk.img3 : start=      616448, size=      614400, type=83
    disk.img4 : start=     1230848, size=      866304, type=83
    Ответ написан
    3 комментария
  • Как переименовать файлы в bash используя регулярные выражения?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    если в папке только картинки то можно сделать просто
    for i in `ls`;do mv "$i" $[x++].jpg ;done
    Ответ написан
    7 комментариев
  • Имею базу в формате txt размером 2gb, как отсортировать по количеству символов на строку?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    как-то так
    awk "{print length,\$0}" FILE_IN |sort -n |cut -d ' ' -f 2- > FILE_OUT

    {1} | {2} | {3}
    {1} -- добавляем количество символов в начало каждой строки (формируем первый столбец)
    {2} -- сортируем строки по первому столбцу
    {3} -- удаляем первый столбец
    Ответ написан
    2 комментария
  • Как определить, что текущая директория относится к примонтированному usb?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    немного магии:
    lsblk -dno TRAN /dev/$(lsblk -no PKNAME $(findmnt --df -no SOURCE --target $PWD))

    выведет устройство на котором расположенна текущая директория, как то usb, nvme, ssd ...
    Ответ написан
    1 комментарий
  • Как защитить SSD диск который я ношу с собой в кармане от магнитных бурь на солнце?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    Кле́тка Фараде́я — устройство, изобретённое английским физиком и химиком Майклом Фарадеем в 1836 году для экранирования аппаратуры от внешних электромагнитных полей. Обычно представляет собой клетку, выполненную из хорошо токопроводящего материала.

    вики
    немного примеров на ютубе
    также в нете можно поискать продажу всяких чехлов фарадея для телефонов, ключей и пр.
    Ответ написан
    Комментировать
  • Почему нет звука на Arch Linux?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    $ sudo pacman -S pipewire  pipewire-alsa pipewire-pulse
    $ systemctl --user start pipewire-pulse.service
    $ systemctl --user enable pipewire-pulse.service

    после смотри вывод команды:
    $ pactl info
    должна присутствовать такая строка:
    Server Name: PulseAudio (on PipeWire 0.3.56)
    детальнее смотри арчвики по PipeWire
    Ответ написан
    Комментировать
  • Как прописать одинарную ковычку в awk -F'?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    awk -F"'" '{print $2}' test1.txt >> test2.txt
    хотя тут можно просто удалить через tr
    cat test1.txt | tr -d "'" >> test2.txt
    Ответ написан
    Комментировать
  • Как отобразить JSON с кириллицей в bash?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    это escape-последовательность, а точнее символы юникода в шестнадцатеричном формате
    $ echo -e "\u0421\u0430\u043c\u0430\u0440\u0430"
    Самара
    Ответ написан
    1 комментарий
  • Как ввести пароль дополнительным параметром к команде?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    если вы просто хотите выполнить команду от суперпользователя с явным введением пароля
    echo ПАРОЛЬ | sudo --stdin КОМАНДА
    или
    sudo --stdin КОМАНДА <<< ПАРОЛЬ

    если же вам нужен именно su user но чтобы пароль можно было задать в строке явно то используйте утилиту expect:
    LANG=en_US.UTF-8 expect -c 'spawn su ЮЗЕР;expect Password:;send "ПАРОЛЬ\n";interact'
    Ответ написан
    Комментировать
  • Как сейчас можно установить Windows/Linux на MacOS c чипом M1?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    https://asahilinux.org/

    Также Линус упомянул, что использовал для формирования релиза ноутбук Apple на базе архитектуры ARM64 (Apple Silicon) с Linux-окружением на базе дистрибутива Asahi Linux.

    Релиз ядра Linux 5.19
    Ответ написан
    Комментировать
  • Где найти полное руководство пользователя по Линуксу?

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

    xotkot
    @xotkot
    ответы это убийцы вопросов
    sudo timedatectl set-time "2020-05-01 10:55:36"
    Ответ написан
  • Как обозначается "текущая директория" в линукс в терминале?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    Мне нужно с текущего каталога ( где я сейчас нахожусь) скопировать все содержимое в другой каталог.
    Делаю эту команду cp -r /. build/, но ничего не копируется.

    cp -r /. здесь вы пытаетесь скопировать весь корень(/) в папку build
    возможно вы имели в виду:
    cp -r . build/
    здесь попытка скопировать все файлы/папки текущей директории в папку build находящуюся там же, то есть возникает рекурсия копирования самого в себя, про что команда cp и выдаст предупреждение но всё же скопирует не допустив для данной папки рекурсии.
    и да, папка build должна уже существовать.

    полигон
    $ mkdir -p test/{1,2,build} && touch test/{1,2}/a.txt && touch test/.b.txt && cd test && tree -a
    .
    ├── 1
    │   └── a.txt
    ├── 2
    │   └── a.txt
    ├── .b.txt
    └── build


    поведение (для bash):
    $ cp -r . build/
    cp: невозможно скопировать каталог '.' в самого себя, 'build/.'
    $ tree -a
    .
    ├── 1
    │   └── a.txt
    ├── 2
    │   └── a.txt
    ├── .b.txt
    └── build
        ├── 1
        │   └── a.txt
        ├── 2
        │   └── a.txt
        └── build

    и заметите что здесь не скопировался скрытый файл .b.txt (те что начинаются с точки)

    чтобы избежать предупреждений можно "вырезать" папку в которую копируем из списка файлов/папок передаваемых для cp при копировании:
    $ cp -r `ls -A | grep -v build | xargs` build/
    $ tree -a
    .
    ├── 1
    │   └── a.txt
    ├── 2
    │   └── a.txt
    ├── .b.txt
    └── build
        ├── 1
        │   └── a.txt
        ├── 2
        │   └── a.txt
        └── .b.txt
    Ответ написан
    Комментировать
  • Как поменять число для прокрутки видео в smplayer с 10sec до 1sec?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    можно использовать mpv

    в input.conf добавляем
    LEFT            seek -1
    RIGHT           seek +1

    см. Keyboard Control

    для более точного позиционирования нужно еще указать hr-seek
    mpv --hr-seek=yes --hr-seek-framedrop=no /путь/к/видео

    или через конфиг mpv.conf
    hr-seek=yes
    hr-seek-framedrop=no

    см. hr-seek и hr-seek-framedrop
    Ответ написан
    4 комментария
  • Как заGREPовать сразу несколько параметров?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    Как сделать, что бы вывод был именно по 3м нужным параметрам?

    dmidecode -t memory | grep -P "Speed|Factor|Size"

    Как это можно форматнуть, что бы вывод был по каждой планке отдельно???

    dmidecode -t memory | awk '/\tSize/{print ""}/Speed|Factor|Size/'


    В идеале хотелось бы получить ... memory 1 ...

    dmidecode -t memory | awk '/\tSize/{i++;print "memory "i}/\tSpeed|Factor|\tSize/'


    Как структурировать вывод :
    A=`cat /proc/cpuinfo | grep "cpu MHz"`
    echo $A

    просто добавь воды, то есть кавычек при выводе:
    echo "$A"

    И как это сделать в несколько столбиков, потому что 104 строки не умещаются в терминал tmux????

    это уже третий вопрос, не нужно здесь устраивать марафон всевозможных вопросов, задавайте каждый вопрос отдельно
    Ответ написан
    1 комментарий
  • Почему bash скрипт не работает?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    во первых, судя по заголовку в https://hashkeys.club/92/
    total pages = 2475880078570760549798249 (1000 keys per page)

    у вас предыдущие 8 порядков куда-то делись
    24758800785707605
    2475880078570760549798249
    возможно так и задуманно, но мне кажется что всё же это не так

    во вторых, без параллельной закачки ловить здесь нечего, поэтому:
    rm -rf urls.txt
    for i in $(seq 1 1 1000000); do echo "url=https://hashkeys.club/92/page=$i" >> urls.txt;done
    curl --remote-name-all --parallel -K urls.txt

    здесь указан миллион, поставьте свой диапазон, но лучше разбить по миллиону или 10 миллионов
    seq 1 1 1000000
    seq 1000001 1 2000000
    ...


    но надеюсь вы осознаёте какое время и объёмы вы хотите скачать ?
    у меня для 100 страниц показало:
    $ curl --remote-name-all --parallel -K urls.txt
    DL% UL%  Dled  Uled  Xfers  Live   Qd Total     Current  Left    Speed
    --  --  10.2M     0   100     0     0 --:--:--  0:00:29 --:--:--  406k

    скорость походу режет сам сервер
    то есть, даже если взять ваш урезанный объём страниц в 24758800785707605 то выйдет

    по времени:
    24758800785707605 / (100 страниц /30 секунд) = 8252933595235868 секунд
    это порядка 261698807 лет

    по объёму:
    24758800785707605 / (100 страниц /10 мегабайт) = 2475880078570760 мегабайт
    а это порядка 2 зеттабайт !!!!!
    Ответ написан
    Комментировать
  • Как разделить csv файл на несколько файлов?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    пилим на четыре части:
    split -n 4 file.csv
    в итоге получим 4 файла: xaa xab xac xad

    после переноса склеиваем файлы в один:
    cat xaa xab xac xad > file.csv
    Ответ написан
    Комментировать
  • Как установить docker-compose?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    Но когда я пытаюсь установить пакет docker-compose появляеться следующая ошибка

    естественно, так как docker-compose из оф.реп и docker-desktop как отдельный пакет предоставляемый непосредственно Docker конфликтующие пакеты так как частично перекрываются. То есть, чтобы установить docker-compose из офреп нужно сначала удалить docker-desktop.

    Если я правильно понял, что когда я устанавливал Docker Desktop, то сразу и установился docker-compose.

    да, вам выше писало
    docker-compose: /usr/lib/docker/cli-plugins/docker-compose уже существует в файловой системе

    но тока не тот что предоставляет в офрепозитории Арча, а тот что идёт непосредственно в комплекте с docker-desktop.

    Но как сделать так, что бы терминал мог работать с docker-compose?

    похоже что в пакете docker-desktop забыли прописать чтобы при установке устанавливалась ссылка /usr/bin/docker-compose на /usr/lib/docker/cli-plugins/docker-compose
    придётся сделать это вручную, и можно даже подсмотреть как это сделали в PKGBUILD пакета docker-compose
    ln -sf /usr/lib/docker/cli-plugins/docker-compose /usr/bin/docker-compose

    выполните данное действие в терминале единожды
    Ответ написан
    Комментировать