Ответы пользователя по тегу Ubuntu
  • Не могу скачать 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
    Ответ написан
    Комментировать
  • Как при помощи awk или sed вытащить первую и последнюю строку вывода?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    первая и последняя строка с помощью awk
    ... |awk 'NR==1;END{print}'

    а чтобы два раза не вставать то можно сразу с нужными столбцами:
    awk '{x=$2" "$3" "$6" "$7" "$11}NR==1{print x}END{print x}' FILE
    Ответ написан
    Комментировать
  • Как добавить параметр OK/NOTOK в конце вывода?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    Есть команда показывающая кол-во подключенных ЮСБ к серверу и их наименование

    у вас лишь немного модифицированная команда lsusb, а она выводит
    lsusb is a utility for displaying information about USB buses in the system and the devices connected to them.

    то есть помимо самих подключенных usb-устройств выводит и шины на которых они висят.
    Не знаю по какому принципу вы будете определять где ставить OK а где NO в выводе lsusb, но если вам нужно в цвете плюс вставить внешний параметр в awk то будет выглядеть примерно так:
    RED='\033[0;31m'
    GREEN='\033[0;32m'
    NORMAL='\033[0m'
    
    OK="${GREEN}OK${NORMAL}"
    NO="${RED}NO${NORMAL}"
    
    lsusb |awk -v ok="$OK" -v no="$NO" '{print $3" "$4" - "$7" "$8" "$9" "no}'
    Ответ написан
    Комментировать
  • Как разобраться в выводе 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 комментария
  • Как отфильтровать 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
    ну и обернуть всё это в цикл при желании
    Ответ написан
    Комментировать
  • Как поменять число для прокрутки видео в 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 комментарий
  • Как правильно настроить оповещение о подключении пользователя root?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    статья по которой вы делаете 10-тилетней давности и за это время возможно уже что-то изменилось в механике взаимодействия.
    у меня, например, не работает от рута не то что воспроизведение музыки, а и сам notify-send что пришлось изголятся по типу такого:
    sudo -u \#$(id -u ЮЗЕР) DISPLAY=:0 DBUS_SESSION_BUS_ADDRESS=unix:path=/run/user/$(id -u ЮЗЕР)/bus notify-send 'Hello world!' 'This is an example notification.'

    где за основу взята информация с арчвики

    чтобы получить аналогичную возможность описанную в статье пришлось немного переработать взаимодействие для большей универсальности.
    /etc/ssh/sshrc
    pathfifo=/tmp/sshd_alarm/fifo; [[ -p $pathfifo ]] && echo $USER $SSH_TTY $SSH_CONNECTION > $pathfifo &

    при коннекте по ssh проверяется существует ли именованный канал (FIFO) и если да то стучит в него полезную для нас информацию о том кто, как и куда.

    pathfifo=/tmp/sshd_alarm/fifo; [[ ! -p $pathfifo ]] && mkdir -p -m o=x $(dirname $pathfifo) && mkfifo -m o=rw $pathfifo; tail -f $pathfifo | while read OUTPUT; do notify-send -u critical "Предупреждение безопасности" "$(echo "$OUTPUT"|awk '{print $1" [ "$2" ] инициировал SSH-соединение\n"$3":"$4"  "$5":"$6}')";ffplay -loglevel 24 -nodisp -autoexit /путь/к/аудиофайлу.mp3 &! ;done

    данный код можно запустить в консоли для теста, поэтому для удобства сделал его в виде однострочника, при желании его можно запихнуть в systemd сервис либо общий либо для конкретного пользователя который сработает при старте системы.
    Так вот, данный код создаст если нету FIFO файл куда будет прилетать для нас уведомления от нашего стукача, с помощью awk разбираем строку и шлем notify-send уведомление, а после в фоне запускаем указанный аудиофайл.
    Ответ написан
    Комментировать
  • Можно ли менять файлы etc в filezilla?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    можно, для этого нужно подключится под рутом (root)

    === сервер ubuntu 20.04 ===
    должен быть установлен и запущен sshd сервер
    а также в файле /etc/ssh/sshd_config
    найти и установить значение
    PermitRootLogin yes
    после чего перезапустить sshd.service
    sudo systemctl restart sshd.service

    === filezilla ===
    протокол: SFTP
    Пользователь: root
    Ответ написан
  • Как получить путь до рабочего стола пользователя Ubuntu?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    for user in /home/* #поиск домашнего каталога

    а с чего вы взяли что домашний каталог пользователя обязательно должен находится в /home ?
    $ man useradd
    ...
    -b, --base-dir BASE_DIR
    The default base directory for the system if -d HOME_DIR is not specified. BASE_DIR is concatenated with the account name to define the home directory. If the -m option is not used, BASE_DIR must exist.
    
    If this option is not specified, useradd will use the base directory specified by the HOME variable in /etc/default/useradd, or /home by default.


    то есть, при сотворении пользователя его домашний каталог находится в домашнем БАЗОВОМ каталоге для пользователей который указывается либо через переменную --base-dir либо берётся из /etc/default/useradd (где он по умолчанию /home)

    Как получить путь до рабочего стола пользователя Ubuntu?

    если нужен путь до рабочего стола текущего пользователя то проще некуда:
    systemd-path user-desktop
    если для другого(не тока текущего) пользователя то можно так:
    su - YOUR_USER -c "systemd-path user-desktop"
    или лучше так:
    runuser -l YOUR_USER -c "systemd-path user-desktop"


    если нужно узнать имена всех несистемных пользователей, то
    $ man useradd
    ...
    UID_MAX (number), UID_MIN (number)
    Range of user IDs used for the creation of regular users by useradd or newusers.
    
    The default value for UID_MIN (resp. UID_MAX) is 1000 (resp. 60000).

    но для верности можно глянуть в /etc/login.defs и оттуда узнать UID_MIN и UID_MAX
    eval $(awk '/^UID_/{print $1"="$2}' /etc/login.defs)

    ну а затем отфильтровать файл /etc/passwd по этим параметрам
    awk -v MIN=$UID_MIN -v MAX=$UID_MAX -F: '$3>MIN && $3<MAX {print $1}' /etc/passwd

    в итоге получим список несистемных пользователей на данной системе

    Есть sh скрипт который должен создать 2 desktop файла на рабочем столе и разрешить их выполнение, попробовал этот код:

    если нужно для текущего пользователя то проще простого:
    DESKTOP=$(systemd-path user-desktop)
    cp sources/update.desktop $DESKTOP && chmod ugo+rwx $DESKTOP/update.desktop
    cp sources/shutdown.desktop $DESKTOP && chmod ugo+rwx $DESKTOP/shutdown.desktop

    если для всех пользователей то просто закинуть нужные действия в функцию и запускать её от указанных пользователей в цикле
    Ответ написан
    Комментировать
  • Как на Убунте добавить в файл host через bash?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    echo "127.0.0.1 site.com" | sudo tee -a /etc/hosts

    А если надо удалить строчку?

    если она последняя то можно так:
    sudo awk -i inplace 'NR>1{print i}{i=$0}' /etc/hosts
    Ответ написан
  • Как отключить логи в 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гиг.
    Ответ написан
    Комментировать
  • Можно ли посмотреть логи FileZilla?

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

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ cd $HOME/Videos
    $ mv !(filters) filters

    если не сработает значит нужно включить расширение регулярных выражений
    $ shopt -s extglob
    включено или нет можно глянуть командой
    $ shopt
    ...
    extglob        	on
    ...
    Ответ написан
    Комментировать
  • Как увеличить место на диске после резервного копирования?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    клонируем диск:
    dd if=/dev/sda of=/dev/nvme0n1 bs=100M conv=fsync oflag=direct status=progress

    где размер /dev/sda меньше или равно размеру диска(не раздела) /dev/nvme0n1

    смотрите какие разделы у вас на диске nvme0n1
    lsblk /dev/nvme0n1
    допустим у вас там два раздела nvme0n1p1 и nvme0n1p2
    и нужно расширить последний nvme0n1p2, то есть второй

    максимально увеличим последний(2) раздел в таблице разделов
    echo ", +" | sudo sfdisk /dev/nvme0n1 -N 2
    -N 2 здесь это второй раздел

    после чего на всякий случай перечитаем таблицу разделов данного диска:
    blockdev --rereadpt /dev/nvme0n1
    и проверим файловую систему nvme0n1p2 (перед увеличением)
    e2fsck -f /dev/nvme0n1p2
    теперь увеличиваем непосредственно размер самой файловой системы второго раздела:
    resize2fs /dev/nvme0n1p2
    и на последок еще раз проверяем:
    e2fsck -f /dev/nvme0n1p2

    п.с.
    если у вас GPT разметка диска то еще не помешает продублировать запись таблицы разделов с начала диска в конец
    sfdisk --relocate gpt-bak-std /dev/nvme0n1
    Ответ написан
    Комментировать
  • У меня на ноуте два порта: USB 2 и 3 - как узнать какой из них 3.0 не полагаясь на якобы "синюю" окраску (я тупо не вижу синий он или зеленый)?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    у usbutils помимо утилиты lsusb есть еще lsusb.py для вывода более человеко понятной информации по usb
    но данного скрипта я к сожалению не наблюдаю на загрузочном диске убунты, хотя при желании его можно легко достать загрузив нужный архив с usbutils v12 (данная версия стоит в убунте 20)
    после чего распаковать и достать от туда файл lsusb.py.in, переименовав в lsusb.py и сделать его исполняемым
    chmod +x lsusb.py
    ну а после там же и запускаете
    ./lsusb.py
    Ответ написан
    Комментировать
  • В убунту можно сделать какое то уведомление, что то вроде "заканчивается оперативная память", и начинается использование свапа?

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

    ну так в чем проблема то ?
    чтобы посмотреть память есть команда free или даже напрямую через cat /proc/meminfo
    для вывода уведомлений можно использовать, к примеру, notify-send
    чтобы всё это зациклить в баше есть while

    while :;do if [[ "$(free | awk '$1=="Mem:"{print $2-$3}')" < $[1*1024*1024] ]];then notify-send 'Палундра' "Приближается пушистый северный зверёк";fi;sleep 1;done

    вот простенький пример однострочника, где мы проверяем каждую секунду(sleep 1) память с помощью утилиты free и если(if) разница($2-$3) между total и used памятью(по умолчанию измеряется килобайтах) меньше чем 1 Гиг ( $[1*1024*1024] k) то мы начинаем бить тревогу выводя сообщение через утилиту notify-send

    Но время от времени браузеры слишком зажираются, и чтоб все не висло наглухо приходится страховать файлом подкачки.

    zram спасёт отца русской демократии
    Ответ написан
    Комментировать
  • Изменение названия русских названий файлов при распаковке zip архива?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    $ convmv --unescape --notest %D0%BF1%D0%BF.jpg
    mv "./%D0%BF1%D0%BF.jpg"	"./п1п.jpg"
    Ready! I converted 1 files in 0 seconds.
    Ответ написан
    2 комментария
  • Перенос Ubuntu с SSD на NVMe, проверить NVMe?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    решение в комментариях к вопросу
    Ответ написан
    Комментировать
  • Как управлять браузером параллельно другим приложениям?

    xotkot
    @xotkot
    хорошо есть и хорошо весьма
    устанавливаем mpv и yotube-dl
    далее, запускаем в консоли IPC-сервер и видео с нужным роликом (пример):
    mpv --input-ipc-server=/tmp/mpvsocket "https://www.youtube.com/watch?v=GYE2P7BWBAs"

    (при желании можно еще дополнительно установить браузерное расширение для запуска команды(видео) чтобы каждый раз не лезть в консоль)
    в другой консоли набираем команды (пример):
    echo '{ "command": ["set_property", "pause", true] }' | socat - /tmp/mpvsocket

    поставить на паузу

    echo '{ "command": ["set_property", "pause", false] }' | socat - /tmp/mpvsocket

    продолжить воспроизведение

    (детальнее смотри mpv:JSON IPC )
    в общем, вешаем данные команды на горячие клавиши и вуаля

    п.с.
    последние две команды пауза и воспроизведение можно записать немного проще и в одной команде:
    echo "cycle pause" | socat - /tmp/mpvsocket
    если пауза то начнёт воспроизведение, а если воспроизводится то ставит на паузу.
    Ответ написан
    Комментировать