Задать вопрос
Ответы пользователя по тегу Linux
  • Как увеличить место под раздел linux?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    если кратко то в вашем случае будет примерно так:
    lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/sda
    echo ", +" | sudo sfdisk --no-reread -N 4 /dev/sda
    echo ", +" | sudo sfdisk --no-reread -N 5 /dev/sda
    sudo partx --update /dev/sda
    lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/sda
    sudo resize2fs -f /dev/sda5
    lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/sda

    с помощью lsblk контролируем состояния
    первый sfdisk максимально раздвигает расширенный раздел, а второй sfdisk раздвигает уже сам раздел /dev/sda5
    sfdisk работает тока с таблицей разделов
    partx обновляет для ядра информацию по разделам на указанном диске
    ну и под конец с помощью resize2fs расширяем файловую систему до значений в таблице разделов.

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

    $ truncate -s 1G test.img
    $ echo -e "label:dos\nsize=100M,bootable,type=L\nsize=200M,type=L\nsize=300M,type=L\ntype=Ex\nsize=+" | sfdisk test.img
    Проверяется, чтобы сейчас никто не использовал этот диск... ОК
    Диск test.img: 1 GiB, 1073741824 байт, 2097152 секторов
    Единицы: секторов по 1 * 512 = 512 байт
    Размер сектора (логический/физический): 512 байт / 512 байт
    Размер I/O (минимальный/оптимальный): 512 байт / 512 байт
    
    >>> Заголовок скрипта принят.
    >>> Создана новая метка DOS с идентификатором 0xa605c035.
    test.img1: Создан новый раздел 1 с типом 'Linux' и размером 100 MiB.
    test.img2: Создан новый раздел 2 с типом 'Linux' и размером 200 MiB.
    test.img3: Создан новый раздел 3 с типом 'Linux' и размером 300 MiB.
    test.img4: Создан новый раздел 4 с типом 'Extended' и размером 423 MiB.
    test.img5: Создан новый раздел 5 с типом 'Linux' и размером 422 MiB.
    test.img6: Done.
    
    Новая ситуация:
    Тип метки диска: dos
    Идентификатор диска: 0xa605c035
    
    Устр-во    Загрузочный  начало   Конец Секторы Размер Идентификатор Тип
    test.img1  *              2048  206847  204800   100M            83 Linux
    test.img2               206848  616447  409600   200M            83 Linux
    test.img3               616448 1230847  614400   300M            83 Linux
    test.img4              1230848 2097151  866304   423M             5 Расширенный
    test.img5              1232896 2097151  864256   422M            83 Linux
    
    Таблица разделов была изменена
    Синхронизируются диски.
    
    $ losetup --partscan --show --find test.img
    /dev/loop0
    
    $ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
    NAME           TYPE FSTYPE  SIZE FSSIZE MOUNTPOINT
    /dev/loop0     loop           1G
    ├─/dev/loop0p1 part         100M
    ├─/dev/loop0p2 part         200M
    ├─/dev/loop0p3 part         300M
    ├─/dev/loop0p4 part           1K
    └─/dev/loop0p5 part         422M
    
    $ mkfs.ext4 /dev/loop0p5
    $ mkdir /tmp/mnt
    $ sudo mount /dev/loop0p5 /tmp/mnt
    
    $ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
    NAME           TYPE FSTYPE  SIZE FSSIZE MOUNTPOINT
    /dev/loop0     loop           1G
    ├─/dev/loop0p1 part         100M
    ├─/dev/loop0p2 part         200M
    ├─/dev/loop0p3 part         300M
    ├─/dev/loop0p4 part           1K
    └─/dev/loop0p5 part ext4    422M 385,2M /tmp/mnt
    
    
    $ truncate -s +1G test.img
    $ sudo losetup --verbose --set-capacity /dev/loop0
    
    $ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
    NAME           TYPE FSTYPE  SIZE FSSIZE MOUNTPOINT
    /dev/loop0     loop           2G
    ├─/dev/loop0p1 part         100M
    ├─/dev/loop0p2 part         200M
    ├─/dev/loop0p3 part         300M
    ├─/dev/loop0p4 part           1K
    └─/dev/loop0p5 part ext4    422M 385,2M /tmp/mnt
    
    
    $ echo ", +" | sudo sfdisk --no-reread -N 4 /dev/loop0
    $ sfdisk --dump /tmp/test.img
    label: dos
    label-id: 0xa605c035
    device: /tmp/test.img
    unit: sectors
    sector-size: 512
    
    /tmp/test.img1 : start=        2048, size=      204800, type=83, bootable
    /tmp/test.img2 : start=      206848, size=      409600, type=83
    /tmp/test.img3 : start=      616448, size=      614400, type=83
    /tmp/test.img4 : start=     1230848, size=     2963456, type=5
    /tmp/test.img5 : start=     1232896, size=      864256, type=83
    
    $ echo ", +" | sudo sfdisk --no-reread -N 5 /dev/loop0
    $ sfdisk --dump /tmp/test.img
    label: dos
    label-id: 0xa605c035
    device: /tmp/test.img
    unit: sectors
    sector-size: 512
    
    /tmp/test.img1 : start=        2048, size=      204800, type=83, bootable
    /tmp/test.img2 : start=      206848, size=      409600, type=83
    /tmp/test.img3 : start=      616448, size=      614400, type=83
    /tmp/test.img4 : start=     1230848, size=     2963456, type=5
    /tmp/test.img5 : start=     1232896, size=     2961408, type=83
    
    $ sudo partx --update /dev/loop0
    $ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
    NAME           TYPE FSTYPE  SIZE FSSIZE MOUNTPOINT
    /dev/loop0     loop           2G
    ├─/dev/loop0p1 part         100M
    ├─/dev/loop0p2 part         200M
    ├─/dev/loop0p3 part         300M
    ├─/dev/loop0p4 part           1K
    └─/dev/loop0p5 part ext4    1,4G 385,2M /tmp/mnt
    
    $ sudo resize2fs /dev/loop0p5
    $ lsblk -p -o NAME,TYPE,FSTYPE,SIZE,FSSIZE,MOUNTPOINT /dev/loop0
    NAME           TYPE FSTYPE  SIZE FSSIZE MOUNTPOINT
    /dev/loop0     loop           2G
    ├─/dev/loop0p1 part         100M
    ├─/dev/loop0p2 part         200M
    ├─/dev/loop0p3 part         300M
    ├─/dev/loop0p4 part           1K
    └─/dev/loop0p5 part ext4    1,4G   1,3G /tmp/mnt
    
    $ sudo umount /tmp/mnt
    $ losetup -d /dev/loop0
    Ответ написан
    5 комментариев
  • Как настроить визуализацию процессов в linux под sway с помощью pscircle?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    установите из аура pscircle (кстати, у разрабов почему то указанно pscircle-git которого нету в аур)
    yay -S pscircle
    вместо yay можно использовать любой другой аурхелпер
    также установите из офреп пакет swaybg если еще не установлен.

    Далее создадим скрипт с именем background и положим его например здесь $HOME/.local/bin/background

    (вариант 1)
    #!/usr/bin/env bash
    
    PICTURE_PATH=/tmp/pscircle.png
    TIME_UPDATE=5 # ставить >= 2
    
    # борьба с дублями программы
    PID_PATH=/tmp/background.pid
    [[ -e $PID_PATH ]] && kill $(cat $PID_PATH)
    echo $$ > $PID_PATH
    
    [[ -n "$(pgrep swaybg)" ]] && pkill swaybg
    
    while :; do
    	pscircle 	--output=$PICTURE_PATH \
    				--max-children=50 \
    				--output-width=1920 \
    				--output-height=1080 \
    				--tree-radius-increment=150 \
    				--dot-radius=3 \
    				--link-width=1.3 \
    				--tree-font-size=13 \
    				--toplists-font-size=20 \
    				--tree-center=-300:0 \
    				--cpulist-center=600.0:-120.0 \
    				--memlist-center=600.0:120.0
    
    	swaybg 	--image $PICTURE_PATH \
    			--mode center \
    			--color "#000000" \
    			--output "*" &
    
    	# время на установку нового изображения перед тем как убрать старое
    	# убирает мерцание при смене обоев
    	sleep 1
    
    	[[ -n $pid ]] && kill $pid
    	pid=$(pgrep swaybg)
    
    	sleep $[TIME_UPDATE-1]
    done


    скрипт (вариант 2)
    #!/usr/bin/env bash
    
    PICTURE_PATH=/tmp/pscircle.png
    TIME_UPDATE=5
    
    # борьба с дублями программы
    PID_PATH=/tmp/background.pid
    [[ -e $PID_PATH ]] && kill $(cat $PID_PATH)
    echo $$ > $PID_PATH
    
    [[ -n "$(pgrep swaybg)" ]] && pkill swaybg
    
    while :; do
     	pscircle --output=$PICTURE_PATH
     	swaymsg "output * background $PICTURE_PATH fill #000000"
     	sleep $TIME_UPDATE
    done


    второй вариант проще, но у меня почему то вызывает мерцание при смени картинки.
    Правим параметры под себя и сделаем скрипт исполняемым:
    chmod +x $HOME/.local/bin/background

    затем уже в самом конфиге sway $HOME/.config/sway/config добавляем строчку
    exec_always $HOME/.local/bin/background
    где exec_always позволит перезагружать наш конфиг через перезагрузку файла конфигурации sway, по умолчанию установлена комбинация
    bindsym $mod+Shift+c reload
    то есть, при подборе параметров для pscircle в нашем скрипте достаточно будет нажать вышеуказанную комбинацию клавиш чтобы изменения вступили в силу.
    ps.
    Также не забудьте в конфиге sway закомментировать строку где указанно старое использование обоев рабочего стола.
    Ответ написан
    1 комментарий
  • Програма для синхронизации ГуглДрайв (Линукс), есть такое?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    Ответ написан
    Комментировать
  • Как изменить вывод баш скирпта?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    если у вас там команды с многострочным выводом, по типу файлов, то для того чтобы это вывести обычно нужно пройти два этапа:
    первый, это построчное объединение файлов/переменных с нужным разделителем
    второе, это уже непосредственный отформатированный вывод по указанному выше разделителю.
    рассмотрим ваш пример с командой hostnamectl
    для построчного объединения можно использовать стандартную утилиту paste
    paste file1 file2
    где вместо файлов подставим вывод наших команд
    paste <(hostnamectl) <(hostnamectl)
    но в таком виде оно просто сольёт строки, а нам их нужно как-то различать в одной строке, если внутри вывода команд не используется символ ';' то возьмём его в качестве разделителя, то есть нам нужно в конец file1(ну или вывода команды) добавить окончание в виде точки с запятой ';'
    делается это просто с помощью того же awk
    hostnamectl |awk '{print $0";"}'
    в общем виде будет выглядеть так:
    paste <(hostnamectl |awk '{print $0";"}') <(hostnamectl)


    то есть, по сути, мы получили структурированный текстовый формат по типу CSV/TSV с разделителем в виде ';'
    а вывести подобное довольно просто, так как для этого есть много разных консольных утилит, начиная от стандартной линуксовой column
    paste <(hostnamectl |awk '{print $0";"}') <(hostnamectl) | column -t -s';'

    и заканчивая внешней утилитой csview с рамочками и блэкджеком:
    paste <(hostnamectl |awk '{print $0";"}') <(hostnamectl) | csview -H -d';'

    хотя в последнем варианте можно сократить до
    paste <(hostnamectl) <(hostnamectl) | csview -H --tsv

    так как paste добавляет еще табуляцию как разделитель
    Ответ написан
    1 комментарий
  • Как в через терминал linux найти файлы с одним расширением и только в папках которые заканчиваются на строку?

    xotkot
    @xotkot
    ответы это убийцы вопросов
    найти нужные файлы и заменить в них подстроку
    sed -i "s/stroka1/stroka2/g" $(find -type f -iname "*.html" | grep \\-blr\/ )
    Ответ написан
    Комментировать
  • На какой диск лучше ставить вторую oc?

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

    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
    ответы это убийцы вопросов
    информацию можно посмотреть через 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"

    то же что и предыдущее, но с указанием номера строки через внешнюю переменную
    Ответ написан
    Комментировать
  • Почему не работает 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 комментарий
  • Как обновить 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 комментарий
  • Как заменить нижнее подчеркивание на пробел в имени файла?

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

    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 комментария
  • Имею базу в формате 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 комментарий
  • Как отобразить JSON с кириллицей в bash?

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

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

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

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

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