Задать вопрос
  • На какой диск лучше ставить вторую oc?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    любую ОС всегда лучше ставить на ssd, но у вас их тут две и какая будет в приоритете вы не упоминаете.
    Вариант двух ОС на ssd где предполагается поделить его на две части примерно по 60 гиг, так себе затея, и дело тут не в том что две системы на одном диске плохо, нет, дело в том что 60 гиг я бы сказал это в притык, и то всё равно придется постоянно следить чтобы место вдруг не закончилось, то есть, постоянно следить и чистить от лишнего. Но и это даже не всё, так как свободного места предполагается быть мало это само собой скажется на довольно быстром исчерпании физического ресурса ssd которому придется чаще перезаписывать ячейки свободной памяти у которых ротация будет довольно слабая.
    Если это стационарник и есть возможность докупить диск то проще всего взять еще один ssd на 120+ гиг под одну систему, если же это ноут то прикупить ssd на 250+ гиг и поделить уже его между системами.
    Если покупка в данный момент невозможна и нужен именно натив то уже в крайнем случае можно установить linux на hdd, но учтите если ставите систему на hdd то всегда ставьте раздел с системой в начале диска, так как известно что скорость чтения у hdd падает почти в два раза от начала к концу диска.
    Ответ написан
    8 комментариев
  • Как отличить внутренние команды от внешних в Astra Linux?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ type --help
    ~
    -t  output a single word which is one of `alias', `keyword',
      `function', `builtin', `file' or `', if NAME is an alias,
      shell reserved word, shell function, shell builtin, disk file,
      or not found, respectively
    ~


    $ type -t cp dir bg dmesg
    file
    file
    builtin
    file

    из вывода видно что cp, dir и dmesg это внешние(file) команды, а bg это внутренняя(builtin) или точнее встроенная команда.
    Ответ написан
    Комментировать
  • Как узнать курс валюты в командной строке терминала?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    у ЦБР есть официальная страничка где можно узнать как получить нужные данные

    если коротко, то будет примерно так:
    $ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Value'
    USD 74,7087
    EUR 79,5716


    с помощью curl качаем нужные данные в формате xml
    далее переводим с помощью утилиты enconv в обще нормальную кодировку
    затем с помощью утилиты xq разбираем полученные данные
    xq входит в пакет yq которая по сути является надстройкой над jq, то есть здесь xml транслируется в json а после обрабатывается утилитой jq

    вот пример вывода всех доступных курсов валют в отформатированном виде с помощью утилиты csview
    curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | .CharCode + " " + .Nominal + " " + .Value' | sort | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '

    вывод:
    ┌──────┬─────────┬─────────┐
    │ Code │ Nominal │ Value   │
    ├──────┼─────────┼─────────┤
    │ AED  │ 1       │ 20,3400 │
    │ AMD  │ 100     │ 19,1325 │
    │ AUD  │ 1       │ 51,0933 │
    │ AZN  │ 1       │ 43,9463 │
    │ BGN  │ 1       │ 40,7332 │
    │ BRL  │ 1       │ 14,3646 │
    │ BYN  │ 1       │ 26,6998 │
    │ CAD  │ 1       │ 55,2743 │
    │ CHF  │ 1       │ 80,5485 │
    │ CNY  │ 1       │ 10,8398 │
    │ CZK  │ 10      │ 33,5739 │
    │ DKK  │ 1       │ 10,7002 │
    │ EGP  │ 10      │ 24,4263 │
    │ EUR  │ 1       │ 79,5716 │
    │ GBP  │ 1       │ 90,6889 │
    │ GEL  │ 1       │ 28,3363 │
    │ HKD  │ 10      │ 95,3890 │
    │ HUF  │ 100     │ 20,7001 │
    │ IDR  │ 10000   │ 49,2185 │
    │ INR  │ 100     │ 90,1603 │
    │ JPY  │ 100     │ 55,4219 │
    │ KGS  │ 100     │ 85,4595 │
    │ KRW  │ 1000    │ 57,2524 │
    │ KZT  │ 100     │ 16,7640 │
    │ MDL  │ 10      │ 39,8181 │
    │ NOK  │ 10      │ 72,3823 │
    │ NZD  │ 1       │ 46,5734 │
    │ PLN  │ 1       │ 16,7565 │
    │ QAR  │ 1       │ 20,5244 │
    │ RON  │ 1       │ 16,1333 │
    │ RSD  │ 100     │ 67,8622 │
    │ SEK  │ 10      │ 72,2507 │
    │ SGD  │ 1       │ 55,7819 │
    │ THB  │ 10      │ 21,5775 │
    │ TJS  │ 10      │ 69,2908 │
    │ TMT  │ 1       │ 21,3453 │
    │ TRY  │ 10      │ 39,6051 │
    │ UAH  │ 10      │ 20,2313 │
    │ USD  │ 1       │ 74,7087 │
    │ UZS  │ 10000   │ 66,0995 │
    │ VND  │ 10000   │ 31,6013 │
    │ XDR  │ 1       │ 99,6569 │
    │ ZAR  │ 10      │ 40,6808 │
    └──────┴─────────┴─────────┘


    ну или конкретно для указанных валют
    $ curl -s "http://www.cbr.ru/scripts/XML_daily.asp" | enconv -x UTF-8 | xq -r '.ValCurs.Valute[] | select(.CharCode == "USD" or .CharCode == "EUR") |.CharCode + " " + .Nominal + " " + .Value' | awk 'BEGIN{print "Code Nominal Value"}{print}' | csview -d' '
    ┌──────┬─────────┬─────────┐
    │ Code │ Nominal │ Value   │
    ├──────┼─────────┼─────────┤
    │ EUR  │ 1       │ 79,5716 │
    │ USD  │ 1       │ 74,7087 │
    └──────┴─────────┴─────────┘
    Ответ написан
    3 комментария
  • Как получить название видео youtube?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    yt-dlp --print "%(title)s" URL
    Ответ написан
    Комментировать
  • Как разобраться в выводе lsusb?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    в usbutils помимо lsusb есть еще lsusb.py которая показывает информацию в более человекопонятном виде, но в убунту почему-то её вырезают. При желании её можно себе скачать и запустить напрямую:
    curl "https://git.kernel.org/pub/scm/linux/kernel/git/gregkh/usbutils.git/plain/lsusb.py.in" > lsusb.py && chmod +x lsusb.py

    а после запустить
    ./lsusb.py
    Ответ написан
    4 комментария
  • Как в bash добавить строку в конце файла но перед определенной строке?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    если упростить, то нужно перед одной строкой вставить другую
    если делать через sed то
    STR1="echo get_template_part('template-parts/$1/$2')"
    STR2="<?php get_footer(); ?>"
    sed -i "/$STR2/i $STR1" FILE
    Ответ написан
    3 комментария
  • Как записать вводимые данные в определенном формате?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    while [[ $(wc -c <<< $MAC_IN) != 13 ]]; do
    	read -p "Please input MAC address : " # XX_XX:XX  XX-XX/XX
    	MAC_IN=$(echo -n "$REPLY"|sed 's/[^0-9a-fA-F]//g')
    done
    
    MAC=$(echo -n "$MAC_IN"|fold -w2 |tr '\n' ':')
    echo $MAC  # XX:XX:XX:XX:XX:XX:XX
    Ответ написан
    Комментировать
  • После каждого обновления программ в Pamac, места на диске становится меньше, как это остановить?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    просто почистите кеш
    pacman -Scc
    Ответ написан
    Комментировать
  • Как записывать в файл до тех пор пока есть место в нем?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Он как видно на 100049 байт.

    Мне нужно записывать в него строки ew=`cat /dev/urandom | tr -dc 'A-Za-z0-9' | head -c 76` до тех пор пока он не заполнится полностью.

    то есть, у нас есть символы от A-Z a-z 0-9 каждый из которых занимает 1 байт
    нужно записывать строки с 76 символами + 1 символ перевода строки
    по итогу получим

    100049/77 = 1299 полных строк и немного хвоста
    размер хвоста
    100049-1299*77 = 26 символов

    если всё это перевести в bash-код то получим следующее
    #!/usr/bin/env bash
    
    #вводные
    FILE=file.txt
    S=100049 # общий размер в байтах
    s=76   # максимальное количество однобайтовых символов на строку
    
    N=$[S/(s+1)]
    n=$[S-N*(s+1)]
    
    echo "Cтрок + хвост = $N + $n"
    
    rm -rf $FILE
    for (( i = 0; i < $N; i++ )); do
    	cat /dev/urandom | tr -dc 'A-Za-z0-9' | head -c $s >> $FILE
    	echo >> $FILE
    done
    cat /dev/urandom | tr -dc 'A-Za-z0-9' | head -c $n >> $FILE
    
    echo "Файл записан"
    echo "Размер файла $FILE = $(stat -c %s $FILE) байт"

    по итогу получим файл с необходимым объёмом данных
    Ответ написан
    Комментировать
  • Как объединить скрипты и сделать вывод таблицей?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    вы конечно мастер путанных вопросов, но в принципе понятно чего вы добиваетесь, поэтому просто приведу маленький пример, а там уже переделаете под свои нужды
    допустим у нас есть несколько файлов с результатами в виде одной строки
    как пример
    echo "ОК" > {biosinfo,meminfo,cpuinfo}.result
    создадим три файла которые содержат значение "OK"

    там же создадим скрипт results_table.sh
    #!/usr/bin/env bash
    
    FILEPATH_BIOSINFO_RESULT="biosinfo.result"
    FILEPATH_MEMINFO_RESULT="meminfo.result"
    FILEPATH_CPUINFO_RESULT="cpuinfo.result"
    
    BIOSINFO_RESULT=$(cat "$FILEPATH_BIOSINFO_RESULT")
    MEMINFO_RESULT=$(cat "$FILEPATH_MEMINFO_RESULT")
    CPUINFO_RESULT=$(cat "$FILEPATH_CPUINFO_RESULT")
    
    TABLE="TEST;RESULTS
    BIOS ver;$BIOSINFO_RESULT
    Memory;$MEMINFO_RESULT
    CPU;$CPUINFO_RESULT"
    
    echo "$TABLE" | csview -d";"

    здесь мы прописываем в переменную TABLE нужную нам информацию в виде текстового CSV формата, а затем с помощью утилиты csview выводим в виде таблицы

    результат работы скрипта
    ┌──────────┬─────────┐
    │ TEST     │ RESULTS │
    ├──────────┼─────────┤
    │ BIOS ver │ ОК      │
    │ Memory   │ ОК      │
    │ CPU      │ ОК      │
    └──────────┴─────────┘
    Ответ написан
    Комментировать
  • Как узнать на каком жестком диске стоит Линукс?

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