Задать вопрос
  • Bash, как преобразовать формат даты?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    $ echo "091220" |jq -rR 'strptime("%d%m%y")|strftime("%Y-%m-%d")'
    2020-12-09

    мне нравится для подобных преобразований использовать утилиту jq
    Ответ написан
    Комментировать
  • Как правильно выбрать переменные из json в bash скрипте?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    $ cat example.json |jq -r '.server | .name,.public_net.ipv4.ip'
    my-server
    142.132.235.187


    если нужно сразу в переменные загнать то
    $ cat example.json| jq -r '.server | "name=\(.name)","ip=\(.public_net.ipv4.ip)"'
    name=my-server
    ip=142.132.235.187

    обернуть в eval и всё

    $ eval $(jq -r '.server | "name=\(.name)","ip=\(.public_net.ipv4.ip)"' example.json)
    
    $ echo $ip
    142.132.235.187
    Ответ написан
    Комментировать
  • Что делать, если бесконечно работает команда sort -u в bash?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    $ sort --help
    Использование: sort [ПАРАМЕТР]… [ФАЙЛ]…
    или: sort [ПАРАМЕТР]… --files0-from=Ф
    Печатает сортированное слияние всех ФАЙЛ(ов) на стандартный вывод.

    Если ФАЙЛ не задан или задан как -, читает стандартный ввод.
    ...

    если вы про консоль, то
    $ sort -u
    d
    a
    g
    t
    aa
      нажать <Ctrl+D> для сортировки
    a
    aa
    d
    g
    t


    если вам нужно просто прекратить работу данной команды то используйте стандартное сочетание Ctrl+C

    п.с.
    ни в коем случае не запускайте vi ))
    Ответ написан
    2 комментария
  • Как оптимизировать параметры монтирования?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    раньше много чего перепробовал но в итоге для домашнего использования остановился на этих трёх простых опциях:
    $ findmnt /
    TARGET SOURCE         FSTYPE OPTIONS
    /      /dev/nvme0n1p2 ext4   rw,noatime,commit=120

    noatime и commit довольно эффективны как для ssd так и для hdd
    если с noatime боле менее понятно, то вот commit
    из man
    commit=nrsec
        Start a journal commit every nrsec seconds. The default value is 5 seconds. Zero means default.

    единственный минус больших значений commit в том что при неправильном выключении компьютера потеряется не до 5-и секунд, что идут по умолчанию, а значительно больше. То есть, при commit=120, мы можем потерять данные что не успели записаться на диск за эти последнии две(или меньше) минуты до выключения компа, но зато без всяких каш после использования того же nobarrier.
    Ответ написан
    Комментировать
  • Bash не видит переменную после выхода из цикла. В чем может быть проблема?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    а ведь можно проще:
    awk '{system("sed -i s/"$1"/"$2"/g file.txt")}' name.txt
    Ответ написан
  • Что такое максимальная и базовая частота процессора Процессор Intel® Core™ i7-1065G7. Как это работает?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    инфа с офсайта интел
    Процессор Intel® Core™ i7-1065G7
    Процессор Intel® Core™ i5-1135G7

    там же если нажать на вопросики под интересующими вас параметрами ядра, выдаст следующее:
    Базовая частота процессора — это скорость открытия/закрытия транзисторов процессора. Базовая частота процессора является рабочей точкой, где задается расчетная мощность (TDP). Частота измеряется в гигагерцах (ГГц) или миллиардах вычислительных циклов в секунду.

    Максимальная тактовая частота в режиме Turbo — это максимальная тактовая частота при нагрузке на одно ядро процессора, которую можно достичь с помощью поддерживаемых им технологий Intel® Turbo Boost и Intel® Thermal Velocity Boost. Частота измеряется в гигагерцах (ГГц) или миллиардах вычислительных циклов в секунду.

    если выбирать то Core i5-1135G7 будет немного получше (даже встроенное в проц видео-ядро будет пошустрее 1.1 vs 1.3 GHz)

    За такие же деньги есть

    справедливости ради нужно заметить что ценовая разница приведённых вами ноутбуков составляет почти 12% а это всё же довольно существенно.
    Ответ написан
    4 комментария
  • Как получить дату -3 дня?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    как вариант взять левую утилиту и использовать ее, например jq:
    jq -nr 'now-3*24*60*60|strftime("%d.%m.%Y")'
    выдаст дату на три дня отстоящую от текущей даты

    если нужно от конкретно указанной даты:
    echo "25.04.2022" | jq -rR 'strptime("%d.%m.%Y")|mktime-3*24*60*60|strftime("%d.%m.%Y")'


    заворачиваете всё это в переменную и пользуетесь
    Ответ написан
    Комментировать
  • Как отключить логи в ubuntu?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    можно в конфиг /etc/systemd/journald.conf заведующего журналированием systemd раскомментировать/добавить/изменить несколько значений:
    Storage=volatile
    RuntimeMaxUse=100M

    Storage - где будет храниться журнал, значение volatile хранит журнал в оперативную память(ОЗУ), а точнее в /run/log/journal , а при желании можно вообще отключить хранение логов указав none
    RuntimeMaxUse - максимальный общий размер хранения записей журнала в /run/log/journal

    после перезагрузки системы или перезапуска журнала можно будет почистить старые залежи:
    rm /var/log/journal/*

    вышеизложенное позволит немного повысить отзывчивость* системы и сэкономить ресурс** диска, но приведёт к утрате логов после каждой перезагрузки системы что в принципе для домашнего использования вполне приемлемо.

    отзывчивость* - скорость записи в озу намного больше чем в ssd, также сам диск меньше отвлекается от более насущных для пользователя задач.
    ресурс** - имеется в виду не тока циклы перезаписи ячеек в диске но и размер самого журнала, который если его не ограничивать может достигать 10% от размера файловой системы где он расположен но не больше 4гиг.
    Ответ написан
    Комментировать
  • Как убрать перенос строки при копировании в буфер обмена (echo, cut, xclip)?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    как вариант, попробуйте
    cut -c1-64
    заменить на
    awk '{printf $1}'

    п.с
    хотя можно просто добавить для cut ключ -z чтобы он после обработки данных не переводил строку
    cut -c1-64 -z

    -z, --zero-terminated
    line delimiter is NUL, not newline
    Ответ написан
    1 комментарий
  • Существует более мощный, чем nano текстовый редактор из командной строки?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    dte
    а вообще смотри и выбирай по вкусу - Text_editors
    Ответ написан
    4 комментария
  • Что означает данная конструкция в bash?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    если проделать в консоли
    $ echo ${0}
    /usr/bin/zsh
    $ echo ${0##*/}
    zsh

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

    а по поводу ${STR##*/} смотри parameter-expansions, если кратко то конкретно здесь он служит для выделения имени(краткого) из пути
    Ответ написан
    Комментировать
  • Pacman выдает ошибку "error: failed rerrieving file "code.db" from mirror.osbeck.com", что делать?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    error: failed rerrieving file «code.db» from mirror.osbeck.com


    вы бы проверяли на ошибки, там походу должно звучать примерно так
    error: failed retrieving file core.db from mirror.osbeck.com

    невозможно скачать файл базы дынных core.db (репа core) c сервера mirror.osbeck.com
    то есть, на момент обновления репозиториев с сервера у вас небыло связи с указанным сервером, а это либо проблемы с интернетом либо проблема в доступе к конкретно этому серверу

    сам сервер mirror.osbeck.com расположен в Швеции, список доступных серверов можете глянуть на оф сайте https://archlinux.org/mirrors/status/#successful
    а при желании даже сгенерировать https://archlinux.org/mirrorlist/
    подберите тот к которому есть беспроблемный доступ и внесите его в файл /etc/pacman.d/mirrorlist
    (не забудте раскомментировать нужный если генерировали через сайт)
    после чего обновите базу
    sudo pacman -Syy
    ну или сразу с обновлением базы обновить и сами установленные пакеты в системе:
    sudo pacman -Syyu
    Ответ написан
  • Как с помощью sed перенести ip и подставить перед запятой?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    $ awk '!/,$/{x=x$0}x!=""{print x;x=""}/,$/{x=$0}' 1.txt
    mail.yandex.net,
    mail.mail.ru,88.88.88.88
    mail.mail1.ru,
    mail.asdl2.ru,
    mail.asd.ru,77.77.88.88
    Ответ написан
    Комментировать
  • Замена с sed/awk только второго вхождения в определенной колонке csv. Как?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    awk 'BEGIN{FS=OFS=";"} {if($3 ~ /^[0-9]/) {$3=";"$3};print}'

    пример:
    a='4535;First Name Last Name;9995554443;0;0;0;9998887744
    4523;First Name Last Name;Some Comment //with numbers [etc];9995554443;0;0;0;9998887744'
    
    echo "$a" |awk 'BEGIN{FS=OFS=";"} {if($3 ~ /^[0-9]/) {$3=";"$3};print}' |csview -d';'
    ┌──────┬──────────────────────┬───────────────────────────────────┬────────────┬───┬───┬───┬─────────────┐
    │ 4535 │ First Name Last Name │                                   │ 9995554443 │ 0 │ 0 │ 0 │ 9998887744  │
    ├──────┼──────────────────────┼───────────────────────────────────┼────────────┼───┼───┼───┼─────────────┤
    │ 4523 │ First Name Last Name │ Some Comment //with numbers [etc] │ 9995554443 │ 0 │ 0 │ 0 │ 9998887744  │
    └──────┴──────────────────────┴───────────────────────────────────┴────────────┴───┴───┴───┴─────────────┘

    здесь используется простенькое условие что если третий($3) столбец начинается на цифру( ^[0-9]) то мы просто добавляем в начале данного столбца точку с запятой (;)
    Ответ написан
  • Как сделать, чтобы скрипт прекращался при сочетании клавиш, в GNU/Linux?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    можно сделать так:
    в самом скрипте в начале добавьте строку:
    echo $$ > /tmp/myscript.pid

    теперь зная PID процесса запущенного скрипта можно легко его прибить командой:
    kill -9 $(cat /tmp/myscript.pid)
    данную команду легко повесить на сочетании клавиш воспользовавшись инструментами графической оболочки которую используете.
    Ответ написан
    Комментировать
  • Можно ли посмотреть логи FileZilla?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    можно, но тока если предварительно была включена запись в лог-файл
    Логирование
    Начиная с версии 3.2.0-rc1 FileZilla способен записывать лог в файл. В отличии от экранного лога, по умолчанию логирование в файл отключено.
    Ответ написан
    Комментировать
  • Как написать команду на bash, переименующую все файлы в каталоге в 0.bmp 1.bmp 2.bmp...?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    eval $(ls |awk '{i++;print "mv "$0" "i".bmp;"}')

    для подстраховки, если в именах есть пробелы то предварительно нужно взять их в кавычки ' (\x27)
    eval $(ls |awk '{i++;print "mv \x27"$0"\x27 "i".bmp;"}')
    Ответ написан
    Комментировать
  • Как найти определенный символ в строке файла и выполнить над этой строкой действие (sh)?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    вариант 1
    awk '/:0$/' file1 > file2

    вариант 2
    awk -F: '$NF==0' file1 > file2
    Ответ написан
    Комментировать
  • Где найти подписи к пакету?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    там ниже в коментах под данным пакетом в АУРе закреплен пост сопровождающего данный пакет:
    --> ALWAYS DO A CLEAN BUILD <--
    This package will verify the signature of the git tag / commit. Developer keys are available here and instructions are here. See the PKGBUILD to determine which developer key you need.

    то есть, смотрите PKGBUILD данного пакета
    а именно вот эту конкретную переменную:
    validpgpkeys=('EA0A77BF9E115615FC3BD8BC7653B940E494FE87'
                  # Linus Färnstrand (code signing key) <linus@mullvad.net>
                  '8339C7D2942EB854E3F27CE5AEE9DECFD582E984'
                  # David Lönnhager (code signing) <david.l@mullvad.net>
                  )

    нам нужны ключи:
    Linus Färnstrand
    David Lönnhager
    идем сюда и качаем их
    а потом сюда и смотрим как их установить
    если конкретно то
    gpg2 --import xxxx.asc
    чистим кеши от прошлых установок пакетов:
    sudo pacman -Scc
    ну а дальше пробуйте уже установить данный пакет
    Ответ написан
    Комментировать