• Как узнать на каком жестком диске стоит Линукс?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    информацию можно посмотреть через lsblk где вывод дополнить VENDOR и MODEL для лучшей идентификации нужного диска
    lsblk -po "NAME,SIZE,TYPE,TRAN,MOUNTPOINTS,VENDOR,MODEL"

    смотрим имя раздела где в MOUNTPOINTS примонтирован корень(/) системы, а зная раздел можно увидеть и диск которому он принадлежит

    имя раздела(в /dev/...) куда примонтирован корень системы можно еще посмотреть командой
    findmnt -o SOURCE -n /
    Ответ написан
    Комментировать
  • Как удалить все строки до n через sed?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    awk "NR>3" FILE
    вывести строки что больше 3

    awk -i inplace "NR>3" FILE
    где -i inplace перезаписывает файл, то есть по итогу в файле останутся строки начиная с четвертой

    N=3
    awk -i inplace "NR>$N"

    то же что и предыдущее, но с указанием номера строки через внешнюю переменную
    Ответ написан
    Комментировать
  • Где находится каталог iso в archlinux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Начал по гайду, сразу проблемы:

    по какому гайду ? у Арча основной гайд это арчвики, а там в разделе Installation guide: Проверка подписи немного другое написанно, а именно
    На системах с установленным GnuPG вы можете сделать это, скачав ISO PGP signature (ссылка на него есть на странице загрузок в разделе Checksums) в каталог с образом и выполнив команду:

    $ gpg --keyserver-options auto-key-retrieve --verify archlinux-версия-x86_64.iso.sig

    то есть там ни про какой "каталог iso" речи не идёт, а говорится про каталог куда был скачан образ.

    хотя как по мне проще качать через официальный torrent, смотри https://archlinux.org/releng/releases/
    что в принципе позволяет пропустить проверку если не параноить.
    а так, качаете образ и sig для него в одну папку
    archlinux-2022.12.01-x86_64.iso
    archlinux-2022.12.01-x86_64.iso.sig

    после чего там же проделываете
    gpg --keyserver-options auto-key-retrieve --verify archlinux-2022.12.01-x86_64.iso.sig

    можно вместо этого проверить через тот же sha256
    $ sha256sum archlinux-2022.12.01-x86_64.iso
    de301b9f18973e5902b47bb00380732af38d8ca70084b573ae7cf36a818eb84c  archlinux-2022.12.01-x86_64.iso

    после чего сверить полученную контрольную сумму с контрольной суммой что указанна на офсайте

    а можно даже так (предварительно указав контрольную сумму для проверки образа)
    $ echo -n "de301b9f18973e5902b47bb00380732af38d8ca70084b573ae7cf36a818eb84c archlinux-2022.12.01-x86_64.iso" |sha256sum --check
    archlinux-2022.12.01-x86_64.iso: ЦЕЛ


    я ставлю на VB

    для виртуальных машин можно использовать облегченные официальные образы
    Ответ написан
    2 комментария
  • Как отловить пропажу интернета?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Единственное ли решение запускать bash скрипт через n количество времени, который пингует гугл и в зависимости от результата совершает действие?

    если интернет это обязательное наличие гугла то стучимся в их dns
    fping -r1 -q 8.8.8.8 && echo OK || echo NO
    ну и закинуть это в планировщик

    можно вместо гугла подобрать какой-то другой глобально доступный и более быстрый dns
    $ fping -e -r 1 -a -q 1.1.1.1 8.8.8.8 77.88.8.8 208.67.220.220
    1.1.1.1 (1.31 ms)
    8.8.8.8 (14.3 ms)
    208.67.220.220 (16.9 ms)
    77.88.8.8 (51.5 ms)

    которые соотвецтвуют
    CloudflareDNS
    GoogleDNS
    OpenDNS
    YandexDNS

    при желании можно простучать сразу по нескольким ресурсам
    fping -r1 -q 1.1.1.1 8.8.8.8 77.88.8.8 208.67.220.220 && echo OK || echo NO
    Ответ написан
    Комментировать
  • Почему не работает node js в manjaro после перезапуска терминала?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    для фиксации нужно делать через default, это подробно показанно в nvm --help в примерах.

    в данном случае нужно сделать так
    nvm alias default 14.22.1

    п.с.
    Установил nvm таким способом ...

    с огнём играете )) не нужно использовать древние инструкции при работе с Арчем, а то может быть чревато. В большинстве случаев достаточно того что написанно в арчвики и/или в прикреплённых комментах к данному пакету в АУР, здесь это nvm#comment-764001, да и при установке данного пакета также выводилась информация что нужно сделать


    paru -S nvm
    ...
    You need to source nvm before you can use it. Do one of the following
    or similar depending on your shell (and then restart your shell):

    echo 'source /usr/share/nvm/init-nvm.sh' >> ~/.bashrc
    echo 'source /usr/share/nvm/init-nvm.sh' >> ~/.zshrc

    You can now install node.js versions (e.g. nvm install 10) and
    activate them (e.g. nvm use 10).

    init-nvm.sh is a convenience script which does the following:

    [ -z "$NVM_DIR" ] && export NVM_DIR="$HOME/.nvm"
    source /usr/share/nvm/nvm.sh
    source /usr/share/nvm/bash_completion
    source /usr/share/nvm/install-nvm-exec

    You may wish to customize and put these lines directly in your
    .bashrc (or similar) if, for example, you would like an NVM_DIR
    other than ~/.nvm or you don't want bash completion.
    Ответ написан
    1 комментарий
  • Какой дистрибутив Arch Linux выбрать?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Какой дистрибутив Arch Linux выбрать?
    Я нашёл вот этот сайт...

    если подходить к вопросу основательно то лучше искать информацию у первоисточников
    например, те же дистрибутивы основанные на Archlinux можно посмотреть на офсайте Арча
    https://wiki.archlinux.org/title/Arch-based_distri...
    там их порядка 30 которые боле менее активны и для каждого из них даны ссылки на офстраницу, изучив информацию с которых можно понять с какой целью был создан тот или иной дистрибутив.

    вопросов 2:
    1. Смогу ли я изменить внешний вид под macOS где всё сверху, анимашки красивые и прочее
    2. Какая основная разницы между всеми этими дистрибутивами?


    сам Arch это конструктор, в том же основном гайде по инсталяции Installation guide после установки у вас будет только рабочая голая консоль, а далее уже поверх всего этого вы при желании накатываете WM или DE, ну и под конец запиливаете это всё под себя добавляя нужный функционал и рюшечки.
    Дистрибутивы на основе Арча это по большей части просто собранный за вас конструктор со своим стилем и направлением, например тот же BlackArch это своеобразный аналог всем известной Kali
    Ответ написан
    1 комментарий
  • Как сравнить вывод скрипта с файлом?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    cmp -s <(./test.sh) test && echo 1||echo 0
    Ответ написан
    Комментировать
  • Почему не заменяет перенос строки на пробел?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    speedtest --simple |awk 'BEGIN{RS="";FS="\n"}{print $2" "$3}'

    где
    RS - разделитель строк
    FS - разделитель полей
    Ответ написан
    Комментировать
  • Как обновить Gnome?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    судя по этой ссылке где показан текущий статус основного пакета gnome-shell входящего в метапакет gnome , на сегодня имеем такую ситуацию:
    stable1:42.5-1
    testing1:43.1-1
    unstable1:43.1-1

    то есть, есть несколько вариантов, это либо просто подождать какое-то время пока обновление не докатится до stable или же самому переключится на ветку testing или unstable

    чтобы переключится на ветку testing выполните:
    sudo pacman-mirrors --api --set-branch testing
    sudo pacman-mirrors --fasttrack 5 && sudo pacman -Syyu

    подробнее про смену веток смотри Switching_Branches
    Ответ написан
    1 комментарий
  • Что использовать для сравнения двух CSV файлов?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    допустим у нас есть файлы file1.csv и file2.csv
    $ cat file1.csv
    kpi1,kpi2,kpi3,kpi4,kpi5
    1.23,5.67,2.21,3.45,4.44
    
    $ cat file2.csv
    kpi1,kpi2,kpi3,kpi4,kpi5
    0.23,5.67,2.22,3.45,2.44

    где согласно условию: "Заголовки одинаковые, возможны вариации в значениях."

    cat file1.csv | head -1 | tr ',' '\n' > file3_1.csv
    cat file1.csv | tail -1 | tr ',' '\n' | paste file3_1.csv - > file3_2.csv
    cat file2.csv | tail -1 | tr ',' '\n' | paste file3_2.csv - > file3_3.csv

    в итоге получим
    $ cat file3_3.csv
    kpi1	1.23	0.23
    kpi2	5.67	5.67
    kpi3	2.21	2.22
    kpi4	3.45	3.45
    kpi5	4.24	2.44

    для удобства можно ввести 4-й столбец где укажем разницу между вторым и третим
    cat file3_3.csv | awk '{print $0"\t"$2-$3}' > file3_4.csv

    $ cat file3_4.csv
    kpi1	1.23	0.23	1
    kpi2	5.67	5.67	0
    kpi3	2.21	2.22	-0.01
    kpi4	3.45	3.45	0
    kpi5	4.24	2.44	1.8

    а заодно добавим заголовки
    echo -e 'name\t$2\t$3\t$2-$3' | cat - file3_4.csv > file3_5.csv

    $ cat file3_5.csv
    name	$2	$3	$2-$3
    kpi1	1.23	0.23	1
    kpi2	5.67	5.67	0
    kpi3	2.21	2.22	-0.01
    kpi4	3.45	3.45	0
    kpi5	4.44	2.44	2

    пример того как в консоли выделить красным цветом строки где разница между вторым и третим столбцом больше нуля:
    cat file3_5.csv | awk '$4>0{print "\033[41m"$0"\033[0m"}$4<=0{print}'


    для красивого оформления в консоли можно использовать утилиту csview
    $ csview -t file3_5.csv
    ┌──────┬──────┬──────┬───────┐
    │ name │ $2   │ $3   │ $2-$3 │
    ├──────┼──────┼──────┼───────┤
    │ kpi1 │ 1.23 │ 0.23 │ 1     │
    │ kpi2 │ 5.67 │ 5.67 │ 0     │
    │ kpi3 │ 2.21 │ 2.22 │ -0.01 │
    │ kpi4 │ 3.45 │ 3.45 │ 0     │
    │ kpi5 │ 4.44 │ 2.44 │ 2     │
    └──────┴──────┴──────┴───────┘

    пример покраски значения в таблице:
    csview -t file3_5.csv | awk '$8>0{print "\033[41m"$0"\033[0m"}$8<=0{print}'

    636a486564c22703960926.png

    для перекидывания в markdown используем ключ -s, --style
    $ csview -t -s Markdown file3_5.csv
    | name | $2   | $3   | $2-$3 |
    |------|------|------|-------|
    | kpi1 | 1.23 | 0.23 | 1     |
    | kpi2 | 5.67 | 5.67 | 0     |
    | kpi3 | 2.21 | 2.22 | -0.01 |
    | kpi4 | 3.45 | 3.45 | 0     |
    | kpi5 | 4.44 | 2.44 | 2     |
    Ответ написан
    1 комментарий
  • Как отфильтровать URLв и скачать файлы по ним?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    допустим есть большой файл(urls1.txt) где находятся только ссылки с расчетом один URL на строку
    awk '/\.pdf$|\.xls$|\.xml$/ {print "url="$0}' urls1.txt > urls2.txt

    отбираем нужные url-адреса и формируем список urls2.txt для последующего скармливания curl

    curl --remote-name-all --parallel -K urls2.txt
    закачиваем файлы параллельно из списка urls2.txt

    п.с.
    для удобства сам список можно разбить на несколько, например по 1000 ссылок на файл
    mkdir urls
    split --lines=1000 --numeric-suffixes=1 urls2.txt urls/list_

    в папке urls появятся файлы по типу list_xxxx
    после чего можно по очереди их скармливать curl
    curl --remote-name-all --parallel -K list_xxxx
    ну и обернуть всё это в цикл при желании
    Ответ написан
    Комментировать
  • Как найти имя процесса НЕ содержащее в названии заданную строку при помощи bash?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    ps -ef |grep '^user1' |tr -s ' ' |cut -d ' ' -f 8- |grep -v user1

    а так как нам нужна тока первая и последняя колонки то
    ps -eo user,cmd |grep '^user1' |tr -s ' ' |cut -d ' ' -f 2- |grep -v user1

    хотя тут может возникнуть проблема c tr -s ' ' которая сокращает последовательность пробельных символов до одного пробела, а вдруг кто-то в имени додумается использовать больше одного пробела идущего в подряд или даже табуляцию ? хотя это визуально может и не важно, но всё же

    ps -eo user,cmd |grep '^user1' |cut -d ' ' -f 2- |sed 's/^[ \t]*//' |grep -v user1
    Ответ написан
    Комментировать
  • Rdsffffffffffffffffffffffffffffffffffff?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    используйте лучше yt-dlp это
    A youtube-dl fork with additional features and fixes


    скачать можно там же в releases, а вот конкретная ссылка для винды - yt-dlp.exe
    Ответ написан
  • Есть ли нормальный переводчик для Firefox?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    есть несколько вариантов

    первый
    использовать один из внешних облачных сервисов перевода, как-то Bing, Google или Yandex
    но, для доступа к этим сервисам(api) естественно нужен соответствующий ключ.
    Подключается примерно следующим образом (пример для yandex)
    на странице about:config
    browser.translation.detectLanguage=true
    browser.translation.ui.show=true
    browser.translation.engine=Yandex
    browser.translation.yandex.apiKeyOverride=КЛЮЧ


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

    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 комментария