Bash Days | Linux | DevOps
Авторский блог от действующего девопса Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу. Автор: Роман Шубин Реклама: @maxgrue MAX: https://max.ru/bashdays Курс: @tormozilla_bot Блог: https://bashdays.ru
Показати більше📈 Аналітичний огляд Telegram-каналу Bash Days | Linux | DevOps
Канал Bash Days | Linux | DevOps (@bashdays) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 23 782 підписників, посідаючи 5 701 місце в категорії Технології та додатки та 28 083 місце у регіоні Росія.
📊 Показники аудиторії та динаміка
З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 23 782 підписників.
За останніми даними від 22 червня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -224, а за останні 24 години на -6, загальне охоплення залишається високим.
- Статус верифікації: Не верифікований
- Рівень залученості (ER): Середній показник залученості аудиторії становить 26.21%. Протягом перших 24 годин після публікації контент зазвичай збирає 13.65% реакцій від загальної кількості підписників.
- Охоплення публікацій: В середньому кожен допис отримує 6 233 переглядів. Протягом першої доби публікація в середньому набирає 3 246 переглядів.
- Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 24.
- Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як bashdays, linux, bash, docker, скрипт.
📝 Опис та контентна політика
Автор описує ресурс як майданчик для висловлення суб'єктивної думки:
“Авторский блог от действующего девопса
Самобытно про разработку, devops, linux, скрипты, сисадминство, техдирство и за айтишную жизу.
Автор: Роман Шубин
Реклама: @maxgrue
MAX: https://max.ru/bashdays
Курс: @tormozilla_bot
Блог: https://bashdays.r...”
Завдяки високій частоті оновлень (останні дані отримано 23 червня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.
ls -l /tmp/box
-rw---x---
-rw----r--
-rwx--xr--
-rw-r-----
-rw--w----
-rw----r--
-rwxr--r--
-rwx--xr--
Пока ничего не понятно, а если я сделаю так:
./mode2char /tmp/box
-rw---x--- (610)
1100010 (98) ('b')
-rw----r-- (604)
1100001 (97) ('a')
-rwx--xr-- (714)
1110011 (115) ('s')
-rw-r----- (640)
1101000 (104) ('h')
-rw--w---- (620)
1100100 (100) ('d')
-rw----r-- (604)
1100001 (97) ('a')
-rwxr--r-- (744)
1111001 (121) ('y')
-rwx--xr-- (714)
1110011 (115) ('s')
bashdays
Сечешь фишку? Это и называется стеганография. Я спрятал в правах файлов скрытое сообщение «bashdays». Вот тут нам и пригодилась тема с правами доступа и всякими этими системами счислений. Давай разбираться как это работает.
Сами bash скрипты mode2char и char2mode закину в конце поста на гитхаб.
В примере выше у меня сопоставляются права доступа с диапазоном символов 32..126 (ASCII). Если номер 7ми битной кодировки ASCII сдвинуть на два бита, то получаем как раз те самые 9 бит прав доступа.
Давай подвигаем!
Распечатаем диапазон ACSII символов 32..126 в восьмеричном формате:
for i in 10 {32..126} ; do printf '%03o\n' $(( i << 2 )) ; done
На экран вывалится куча всего, что-то похожее на права доступа:
372 376 380Чтобы преобразовать в обратную сторону делаем так:
for i in 440 524 545 ; do echo $(( 8#$i >> 2 )) ; done
То есть сдвигаем вправо на 2 бита. Из цифр 440, 524, 545 - получили 72, 85, 89.
Ну а теперь всю эту херню ненаглядную, преобразуем в читаемые символы.
for i in 440 524 545 ; do printf -v hex '\\x%x' $(( 8#$i >> 2 )) ; echo -e "$hex" ; done
Вот это поворот! Странно что на такую строчку антивирус не триггернулся. В общем теперь на экране красуется всем известное слово.
Помнишь я сегодня писал, что единицы двоичного представления прав доступа, соответствуют символам rwx, а нули символу «-». Таким образом можно легко получить закодированный символ вручную подставляя 0 и 1 в нужных местах.
А вот и сам скрипт, который разбивает строку и генерирует кучку файлов с нужными правами доступа. В скрипте не используются сдвиги, работает всё через ассоциативные массивы для декодирования.
Запускается так:
./char2mode /tmp/box 'Welcome to bashdays'
Указываешь директорию, где создаем структуру файлов и саму строчку, которую нужно спрятать в правах доступа.
Конечно есть нюансы. Скрипт будет орать если что-то не так. Существующие файлы не перезаписываются. Именование файлов соответствуют лексикографическому порядку сортировки. Это нужно для того, чтобы получить ту же последовательность файлов, что и при создании. Скрипт декодирования получает имена используя globbing, который сортирует именно так.
Сам скрипт декодирования лежит тут, запускается аналогично:
./mode2char /tmp/box
При использовании скрипта декодирования, можно привязать какие угодно права к конкретному символу без какой-либо логики.
Выбор велик:
printf '%s\n' {0..7}{0..7}{0..7}
printf '%s\n' {r,-}{w,-}{x,-}{r,-}{w,-}{x,-}{r,-}{w,-}{x,-}
А еще же есть имена файлов, временные метки с наносекундами. Ну или вообще упороться и упаковывать более одного числа в атрибуты файла используя уникальную сортировку имен файлов.
Сложно? Конечно! Но думаю общую идею ты понял. Изучай! Увидимся совсем скоро.
tags: #linux #bash
—
💩 @bashdays4 2 1 # восьмеричная система r-- -w- --x # символьное представление 100 010 001 # двоичная системаСразу обрати внимание на разряды с единицей (1) в двоичной системе счисления. Они соответствуют позициям прав доступа в символьном представлении из вывода команды ls -l. Наглядная табличка соответствий:
- 0: 000 / — - 1: 001 / –x - 2: 010 / -w- - 3: 011 / -wx - 4: 100 / r– - 5: 101 / r-x - 6: 110 / rw- - 7: 111 / rwxЕсли требуется определенный набор прав, то складываем 4, 2, 1. Первая строка это, права, которые получаются при сложении.
3 5 6 7 1+2 1+4 2+4 1+2+4 -wx r-x rw- rwx 011 101 110 111Если на пальцах, у нас есть 3 базовых цифры 1, 2, 4 которые означают такое:
4 = r 2 = w 1 = xБерем эти цифры, складываем как угодно и получаем например 7, что равно 1+2+4 = rwx (читаем, пишем, исполняем). Ладно, большинству из вас оно нахрен не вперлось, но я продолжу. У меня коллега например всегда всем ставит 777 даже не задумываясь. Мол всё работает и никогда нет проблем с доступом к файлам и папкам. Ну ок, возможно однажды встретит своего черношляпа и пересмотрит свои практики. Работает кстати в крупном банке. Только представь какой 3.14здец на серверах у него творится где наши денюжки лежат. Давай по теме. Создаем массив:
arr=({0..1}{0..1}{0..1})
Получаем права в двоичной системе счисления:
echo ${arr[1]}
echo ${arr[2]}
echo ${arr[3]}
echo ${arr[4]}
echo ${arr[5]}
echo ${arr[6]}
echo ${arr[7]}
На экран выведется:
000 001 010 011 100 101 110В bash при указании индекса массива можно применять арифметические операции. Давай воспользуемся и наглядно посмотрим как суммируются права доступа.
echo ${arr[1+2]}
echo ${arr[1+4]}
echo ${arr[2+4]}
echo ${arr[1+2+4]}
Получаем:
010 100 101 110То есть когда мы делали arr[1] у нас было 000, а когда применили сложение arr[1+2], 000+001 = 010. В общем математика и кишочки. Голову сильно не забивай, в повседневных задачах достаточно восьмеричной и символичной системы счислений. Из полезного: теперь ты знаешь как создавать массивы и складывать их. Ну и на закуску команда, которая выведет права в восьмеричной системе:
stat -c'%a %n' /tmp/*
Получим такое:
700 snap-private-tmp 700 ssh-XXXXXX5Fyxmr 700 ssh-XXXXXXENecCm 700 ssh-XXXXXXkPO9QF 700 systemd-logind.tkfPcb 700 systemd-r1KRzA 777 test.txtНе забываем что у всей этой ерунды есть еще дополнительные биты, это когда права указываются четырьмя цифрами. Короче базу рассмотрели, если ничо не понял, забей. Это как Джаз, чтобы от него блевать не хотелось, нужно стать старым пердуном. Но мы же с вами еще так молоды! Увидимся вечером. Хорошего понедельника! tags: #linux #bash — 💩 @bashdays
Ctrl+A переместить курсор в начало строки Ctrl+E переместить курсор в конец строки Ctrl+F переместить курсор на один символ вправо Ctrl+B переместить курсор на один символ влево Alt+B / Esc+B переместить курсор влево на одно словоХм… фигня какая-то, я пользуюсь ctrl+стрелочки, хватает. Редактирование
Ctrl+U удалить все и вернуться в начала строки Ctrl+K удалить все после курсора Ctrl+W удалить слово перед курсором Alt+D удалить слово после курсора Ctrl+Y вернуть удаленное Ctrl+D удалить символ под курсором Ctrl+H аналогично backspace Alt+T смена позиции текущего слова на предыдущее Ctrl+T замена местами двух символа перед курсором Alt+U перевод слова в заглавные после курсора Alt+L перевод слова в строчные после курсора Ctrl+_ отмена последнего вводаТут уже поинтереснее. Мне зашло преобразование в заглавные и строчные символы, не знал. Ну и откат порадовал по Ctrl+Y. Bash History
Ctrl+R режим обратного поиска Ctrl+P переход к предыдущей команде Ctrl+N переход к следующей команде Ctrl+O выполнить найденную команду Ctrl+G выход из режима поиска !! выполнить предыдущую команду !vim выполнить последнюю команду, которая начиналась на vim !vim:p вывести последнюю команду, которая начиналась на vim !n запустить n команду из historyИзбыточно. Максимум оставляем Ctrl+R, остальное ну такое. Общие хоткеи
Ctrl+C завершить команду Ctrl+L очистить экран Ctrl+S приостановить вывод, остановить прокрутку Ctrl+Q возобновить прокрутку Ctrl+D закрыть оболочку Ctrl+Z приостановить процессБольшинство из них мы с вами знаем. Из интересного это остановка прокрутки, например когда нужно приостановить вывод информации на экран и прочитать ее. Как видим никаких киллер-фич нет. За исключением пары-тройки хоткеев. Разогнать workflow особо не получится, но для ознакомления вполне сойдет. Если знаешь какие-нибудь еще вкусные сочетания или хаки, велком в комментарии. tags: #linux #bash — 💩 @bashdays
apt install «делатьжопу» (или какой там у тебя пакетный менеджер) и погнали смотреть на эти булки поближе.
Так как doas не входит по умолчанию в коробочные версии linux, утилита требует немного бОльших настроек, в отличие от sudo. Но конфигурация намного проще для понимания чем sudo. Настраивается все это через файл /etc/doas.conf. Если файла нет, создай!
Цель doas - решить сложность sudo.
Давай эмитируем поведение sudo и позволим пользователю выполнять любые команды от пользователя root. Добавляем в конфиг такую херабору:
permit persist user as root
Теперь пользователь user сможет выполнять команды от root + пользователь получает льготный период, когда не нужно вводить пароль в течение нескольких минут после последовательных команд doas.
Допустим мне нужно сделать подобное, но для определенной группы, добавляем в конфиг строчку:
permit persist :wheel as root
Теперь все кто заключен в группу wheel смогут побыть рутом. Также и с белым списком команд, которые можно выдать для запуска без пароля:
permit persist user as root
permit nopass :user as root cmd apt
Да, конфиг более читабельный чем у sudo. И в обозримом будущем есть очень большая вероятность того, что sudo закинут в деприкейтед, а doas сделают основным рабочим инструментом. Так как sudo уже непроходимое гавно болото в плане поддержки кода, который трудно понимать и использовать.
Возьмем даже валидатор конфига visudo. Который проверяет синтаксис конфига. А это говорит о том, что синтаксис файла sudoers ну совсем фу и воняет. Требует проверки. Да и 99% пользователей используют sudo исключительно для установки софта.
Разница налицо (попахивает порнохабом):
Конфиг sudo
%wheel ALL=(ALL) NOPASSWD: ALLКонфиг «делать жопу»
permit nopass :wheel as rootНу и с помощью doas можно запустить root shell такой командой:
doas -s
Кстати был казус с портированием под FreeBSD, спустя несколько часов после публикации doas, в ней нашли критическую уязвимость. Которая позволяла выполнить привилегированные операции даже если был указан неверный пароль пользователя. Как обычно накосячил разработчик, который раздеплоился в прод без тестирования. Ну либо специально заложил бекдор, история умалчивает.
Вот такие пироги. Увидимся совсем скоро и сделаем что-нибудь полезное, например сломаем прод, ну или ногу...
tags: #linux #utils
—
💩 @bashdaysuser@dev:/$ su ivan
Будет запрошен пароль, нужно ввести пароль именно от учетной записи ivan, а не от user.
А вот пример с sudo:
user@dev:/$ sudo -u ivan whoami
А здесь нужно ввести пароль от учетной записи user, а не от Ивана или рута. Но для этого случая сперва необходимо добавить пермишены для пользователя user в файл /etc/sudoers.
user ALL=(ALL:ALL) ALL
Редактировать этот файл можно по средствам команды visudo. А свалидировать конфиг можно командой visudo -c. Редактирование этого файла через visodu хорошо тем, что если ты накосячишь, то при сохранении, оно скажет — лось ты дырявый, тут ошибочка!
Вообще предпочтительнее использовать sudo, но если ты не криворукий можно и под su нормально работать. Ты сейчас меня конечно же осудишь, но я предпочитаю работать исключительно под root, за 20 лет пока не факапил. Ну не люблю я всякие эти судо-мудо-рыба-конь и ущемление своих серверных прав.
Окей. А для чего нужен этот странный дефис после su?
А чтобы очищать переменные и пользоваться чистой оболочкой при переключении на другого пользователя. Ща покажу на котиках.
Авторизуемся под пользователем user и экспортируем переменную:
ssh user@dev
export a="test"
Теперь у пользователя user есть переменная «a» которая = test.
Переключаемся на пользователя ivan и смотрим переменную «a»
su ivan
echo $a
Опа! Вывелась строчка test. То есть получается все что ты задал под user, перекочевало в оболочку ivan. Нормально! А теперь давай добавим дефис:
su - ivan
echo $a
И пустота! Переменная $a больше не выводится. Чистая оболочка! Кстати с этим дефисом часто косячат и потом долго не могут понять в чем причина. Переменные вроде были заданы, а потом куда-то пропали. Все потому, что азов не знаем и бездумно суём этот дефис где нужно и не нужно.
Теперь ты знаешь азы и будешь с умом к этим судо-мудо подходить. По крайней мере у тебя добавится дополнительный кейс для дебага.
su (с дефисом) = сначала переключается пользователь, а затем запускается shell, зачищаются все переменные.
su (без дефиса) = переключает пользователя, оставляя переменные окружения старого пользователя.
У sudo есть подобные ключи -s -i
user@dev:/$ sudo -s
Запустится оболочка с правами root
user@dev:/$ sudo -i
Запустится оболочка, но уже с чтением файлов root/.profile/.bashrc и т.п. Можешь попробовать добавить экспорт переменной в .profile, сделать sudo -s/-i и увидишь что с ключом -i переменная выведется на экран.
По сути sudo -i = команде sudo su -. Но обычно за sudo su - в приличных местах выгоняют ссаными тряпками. Это плохая практика! Так как это порождает дополнительный процесс и больше гемора с набором самой команды.
Фуф… пардон за простыню, но мне нужно было тебе это рассказать. Изучай и ставь лайк. Хороших выходных. Увидимся!
upd: если я что-то упустил, докидывайте в комментарии, всем будет полезно.
tags: #linux
—
💩 @bashdayslog_format nginx_json escape=json '{"time_local":"$time_local", "cloud_ip":"$http_x_real_ip", "ip":"$http_cf_connecting_ip", "connection":"$connection", "request_completion":"$request_completion", "status":"$status", "rtime":"$request_time", "rlenght":"$request_length", "content_type":"$content_type", "content_length":"$content_length", "bytes_sent":"$bytes_sent", "body_bytes_sent":"$body_bytes_sent", "raddr":"$remote_addr", "ruser":"$remote_user","upstream_addr":"$upstream_addr", "upstr_resp_time":"$upstream_response_time", "upstr_cache_status":"$upstream_cache_status", "upst_status":"$upstream_status", "gzip_ratio":"$gzip_ratio", "http_x_forwarded_for":"$http_x_forwarded_for", "proxy":"$proxy_host:$proxy_port", "proxy_int_body_length":"$proxy_internal_body_length", "server_proto":"$server_protocol", "rmethod":"$request_method", "uri":"$uri", "args":"$args", "http_referer":"$http_referer", "uag":"$http_user_agent"}';
access_log /var/log/nginx/access.log nginx_json;
error_log /var/log/nginx/error.log;
Получаем максимальную информацию о клиенте в json формате, которую пробиваем средствами nginx. И теперь все это можно легко скармливать всяким эластикам и т.п. без парсинга и гроков. Так сказать — избавляемся от костылей.
Но хранить логи в файлах, такое себе. Поэтому мастхэв запихать логи непременно в system journal.
Забиваем пару строк в nginx.conf и всё логирование будет перенаправлено в system journal.
error_log syslog:server=unix:/dev/log;
access_log syslog:server=unix:/dev/log nginx_json;
А можно комбинировать, писать одновременно логи в файл в дефолтном шаблоне nginx’а и параллельно писать в system journal в json. Я иногда такое проворачиваю для дебага, где в логах требуется вывести лишь время, айпишник и ури-ури. Типа такого:
log_format nginx_json ...
log_format nginx_default ...
access_log /var/log/nginx/access_json.log nginx_json;
access_log /var/log/nginx/access_default.log nginx_default;
Но конечно если есть Kibana, дела с отладкой в разы становятся лучше. Ну а чтобы посмотреть логи в system journal, воспользуйся такой командой: journalctl -f
Сегодня если руки дойдут, обсудим судо-мудо или другие линукс кишочки. Давай, хорошей тебе пятницы, увидимся!
tags: #nginx
—
💩 @bashdaysCONFIG_ZSWAP_DEFAULT_ON=N
Но чтобы применить эту опцию, нужно пересобрать ядро. А оно нам нафиг не всралось. Поэтому пойдем легким путем и задизейблим zswap через загрузчик grub.
Редактируем файл /etc/default/grub
GRUB_CMDLINE_LINUX_DEFAULT="zswap.enabled=0" loglevel=3 quiet "
Не забываем перегенирировать конфиг grub:
grub-mkconfig -o /boot/grub/grub.cfg
Перезагружаем машину и проверяем отключение zswap:
cat /sys/module/zswap/parameters/enabled
Если вывелась буква N значит ты все сделал правильно.
Кстати можешь изначально проверить, возможно zswap у тебя по умолчанию выключен. У меня в Selectel сразу выводит букву N, возможно по причине, что у меня вообще swap отсутствует.
Ну и наконец включаем zram. Для этого пишем bash скрипт и кидаем его в автозагрузку:
#!/bin/bash
modprobe zram
mkdir /sys/block/zram0
echo lz4 > /sys/block/zram0/comp_algorithm
echo 1G > /sys/block/zram0/disksize
echo 2 > /sys/block/zram0/max_comp_streams
mkswap --label zram0 /dev/zram0
swapon --priority 100 /dev/zram0
1. Загружаем модуль zram
2. Выбираем алгоритм сжатия lz4 (либо zstd)
3. Объем zram, у меня 1гиг физической оперативки
4. 2 это количество потоков сжатия (потоки процессора)
5. Создаем блочное устройство и включаем его
Запускаем скрипт и проверяем включение командой: zramctl. Если на экран что-то вывелось, значит всё ок и сжатие начало работать.
Если заморачиваться с bash скриптами не хочется, ставим утилиту которая будет работать через systemd.
apt install systemd-zram-generator
Правим конфиг /etc/systemd/zram-generator.conf
[zram0]
zram-size = ram
compression-algorithm = lz4
Активируем и запускаем:
systemctl daemon-reload
systemctl start /dev/zram0
Всё! Теперь оно само будет запускаться без лишних движений.
Ну и не забываем про минус использования zram. При включении ты теряешь возможность использовать нативный swap раздел. По крайней мере так написано в мануале. Но это не точно.
Надо будет ради интереса бенчмарки снять. Хотя тут наверное проще гуглануть, всяко кто-то уже снимал.
Ладно пойду дальше кубернейтсы шатать. Увидимся!
tags: #linux
—
💩 @bashdaysELF Magic: 7f 45 4c 46 02 01 01 00 00 00 00 00 00 00 00 00
Если система видит последовательность этих байтов, она по умолчанию делает вывод, что этот файл является ELF по первым 4м байтам. 45=E, 4c=L, 46=F, перед ними стоит значение 7f.
Посмотреть эту сигнатуру можно командой readelf:
readelf -h /bin/at
Окей, с этим разобрались. Ну дак каким боком эти магические числа вообще связаны с командой reboot? А самым прямым!
С помощью этих чисел система определяет повреждения файловой системы. На случай если ты после ребута не сможешь загрузить сервак или свою пекарню. То есть, предостерегает и умоляет пофиксить проблему, а потом уже перезагружаться.
Во время процесса перезагрузки или завершения работы, система должна убедиться, что все данные записаны на диск и файловая система находится в согласованном состоянии.
Работает это проверка путем согласованности суперблока файловой системы.
Суперблок это структура данных, которая содержит информацию о файловой системе (размер, расположение блоков данных и журнала файловой системы).
Проверяя магическое число в суперблоке, система определяет, соответствует ли файловая система ожидаемому формату. Если магическое число похерено, значит жопа и пиши пропало, коруптед, нидхелп.
Отсюда и растут ноги, когда система предлагает запустить тебе fsck.
Вот и при reboot система все это проверяет. Кусок исходника kernel/reboot.c:
/* We only trust the superuser with rebooting the system. */
if (!capable(CAP_SYS_BOOT))
return -EPERM;
/* For safety, we require "magic" arguments. */
if (magic1 != LINUX_REBOOT_MAGIC1 ||
(magic2 != LINUX_REBOOT_MAGIC2 &&
magic2 != LINUX_REBOOT_MAGIC2A &&
magic2 != LINUX_REBOOT_MAGIC2B &&
magic2 != LINUX_REBOOT_MAGIC2C))
return -EINVAL;
Как видим magic1 и imagic2 присваиваются магические числа. А сами эти магические числа зашиты в файле reboot.h. При НЕ выполнении данных условий будет возвращена ошибка.
/* * Magic values required to use _reboot() system call. */
#define LINUX_REBOOT_MAGIC1 0xfee1dead
#define LINUX_REBOOT_MAGIC2 672274793
#define LINUX_REBOOT_MAGIC2A 85072278
#define LINUX_REBOOT_MAGIC2B 369367448
#define LINUX_REBOOT_MAGIC2C 537993216
Первая строчка 0xfee1dead звучит забавно - чувствую себя дохлым или мне пезда! Именно эта константа и отвечает за перезагрузку системы.
Остальные числа:
672274793 зашифрован ДР Линуса Торвальдса
85072278 ДР дочки Линус Патрисия Миранда
369367448 ДР дочки Линус Даниел Юланда
537993216 ДР дочки Линус Целеста Аманда
Нормальная пасхалочка! Чтобы расшифровать эти числа и получить человечные даты ДР можно воспользоваться командой:
printf -v d '%x' 672274793 ; echo "Linus ${d:0:2}-${d:2:2}-${d:4}"
Вот такие пироги под капотом этого нашего Linux.
Кстати команда file извлекает данные о файле как раз из магических чисел и заголовков.
Ладно, всем хороших предстоящих выходных и берегите себя! Кстати про суперблоки отдельно попозже разбор сделаю.
tags: #linux
—
💩 @bashdaysvar='hello world'
echo ${var%world}
На экран выведется слово hello. То есть произошло удаление короткого суффикса. Вариантов масса. Вот еще пример:
var='hello world'
echo ${var%o*} # hello w
echo ${var%%o*} # hell
Более подробно про расширенные параметры можно почитать на официально ГНУТой странице, с переводчиком норм заходит.Кстати у этого товарища здесь полно всяких полезностей и документашек на все случаи жизни. Видимо отсеивает всякий шлак и собирает для себя только мастхев штуки. Поглядите на досуге, может что-то к себе переместите. Всех с пятницей, вечером еще увидимся! tags: #linux #bash #sheets — 💩 @bashdays
"command":
{
"action": "globalSummon",
"desktop": "toCurrent",
"dropdownDuration": 5,
"monitor": "any",
"name": "_quake",
"toggleVisibility": true
},
"keys": "f1"
},
Сохраняем. И теперь по нажатию F1 у меня выезжает терминал, поверх всех окон, с любого рабочего пространства. А кнопку F1 можешь заменить на любое удобное тебе сочетание.
Так, но радость была не долгая. Терминал то выезжает, но нет TABов и чо мне делать с одним гавном окном? Мне то надо 10 серверов открыть и бегать по вкладкам.
Тут решение тоже неочевидное. Создаешь вкладку сочетанием CTRL+SHIFT+T. Открывается новый терминал, НО предыдущий куда-то исчезает! Да ёбтвоюмать! Короче утро вечера мудренее и с утра я это тему победил.
Для переключения вкладок нужно нажать CTRL+TAB, выпадет список всех открытых вкладок, между которыми можно переключаться. Уже хорошо, НО!!!! Как без этих контролтабов визуально видеть какие вкладки у меня открыты? Утро вечера мудренее...
Пофиксил и это! Нажимаем в терминале CTRL+SHIFT+P, открывается хрен пойми какая-то менюшка. Набираем Toggle focus mode и активируем. Опа! Вкладочки появились! Теперь можно мышкой по ним кликать. Уверен что можно в settings.json этот focus включить по умолчанию.
Ура! Зона комфорта возвращена! Еще был дискомфорт, что терминал выезжает лишь до середины экрана, но я сильно не стал заморачиваться и растянул его мышкой. Но всяко есть способ через конфиг сделать чтобы он на весь экран открывался. Если знаешь, маякни в комментах.
Вообще quake mode охренительно разгоняет продуктивность, а эффективность повышается. Терминал на расстоянии вытянутого пальца. Всем рекомендую подсесть на это иглу, потом слезть с нее просто так не получится. Ну удобно чо. А почему я променял макось на винду, расскажу в следующих постах.
Пока пока и хорошего вечера!
tags: #рабочиебудни
—
💩 @bashdays
Вже доступно! Дослідження Telegram за 2025 — головні інсайти року 
