🛠 Инструмент дня: ripgrep
Если ты до сих пор ищешь по проекту через grep -R, попробуй rg.
Пример:
rg "TODO|FIXME"
ripgrep быстрый, по умолчанию уважает .gitignore и удобно показывает контекст. Для больших репозиториев разница чувствуется сразу.
Полезные варианты:
rg -n "pattern" — с номерами строк
rg --files — список файлов проекта
rg -t py "async def" — искать только в Python-файлах
Один из тех инструментов, после которых назад возвращаться не хочется.
📍 Подпишись на создателей: https://t.me/linuxexex
Если ты до сих пор ищешь по проекту через grep -R, попробуй rg.
Пример:
rg "TODO|FIXME"
ripgrep быстрый, по умолчанию уважает .gitignore и удобно показывает контекст. Для больших репозиториев разница чувствуется сразу.
Полезные варианты:
rg -n "pattern" — с номерами строк
rg --files — список файлов проекта
rg -t py "async def" — искать только в Python-файлах
Один из тех инструментов, после которых назад возвращаться не хочется.
📍 Подпишись на создателей: https://t.me/linuxexex
Лайфхак для терминала, который реально экономит время ⚡
Если ты до сих пор набираешь длинные команды целиком или листаешь историю стрелочками — держи трюк, который меняет подход к работе в терминале.
Ctrl + R — поиск по истории команд в реальном времени.
Нажал, начал вводить кусок команды — и bash (или zsh) сразу показывает совпадение из истории. Нашёл нужное — Enter, и готово. Не нужно помнить точный синтаксис длинного rsync или docker run с кучей флагов.
Но это ещё не всё. По умолчанию история часто слишком короткая и не сохраняет дубли. Исправляется парой строк в ~/.bashrc:
HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
После этого история перестаёт затираться между сессиями и хранит десятки тысяч команд. Ctrl + R становится настоящей машиной времени по твоим действиям в терминале.
Хочешь ещё удобнее? Поставь fzf — это fuzzy-поиск, который превращает Ctrl + R в интерактивный фильтр с мгновенным откликом. Ставится одной командой:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install
После установки поиск по истории становится таким, каким он и должен быть изначально. Видишь сразу несколько совпадений, можешь выбрать нужное стрелками.
Звучит мелко, но когда работаешь в терминале каждый день — это десятки минут в неделю, которые перестают уходить в никуда. 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex
Если ты до сих пор набираешь длинные команды целиком или листаешь историю стрелочками — держи трюк, который меняет подход к работе в терминале.
Ctrl + R — поиск по истории команд в реальном времени.
Нажал, начал вводить кусок команды — и bash (или zsh) сразу показывает совпадение из истории. Нашёл нужное — Enter, и готово. Не нужно помнить точный синтаксис длинного rsync или docker run с кучей флагов.
Но это ещё не всё. По умолчанию история часто слишком короткая и не сохраняет дубли. Исправляется парой строк в ~/.bashrc:
HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
shopt -s histappend
После этого история перестаёт затираться между сессиями и хранит десятки тысяч команд. Ctrl + R становится настоящей машиной времени по твоим действиям в терминале.
Хочешь ещё удобнее? Поставь fzf — это fuzzy-поиск, который превращает Ctrl + R в интерактивный фильтр с мгновенным откликом. Ставится одной командой:
git clone --depth 1 https://github.com/junegunn/fzf.git ~/.fzf && ~/.fzf/install
После установки поиск по истории становится таким, каким он и должен быть изначально. Видишь сразу несколько совпадений, можешь выбрать нужное стрелками.
Звучит мелко, но когда работаешь в терминале каждый день — это десятки минут в неделю, которые перестают уходить в никуда. 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex
меня крайне заебали эти максы похуяксы так что сделаем свой месенджер
🧠 Linux tip: namei
Есть команда, о которой часто забывают: namei.
Она раскладывает путь по компонентам и показывает права на каждом уровне:
namei -l /var/www/site/index.html
Это удобно, когда файл существует, права на нём нормальные, но nginx или приложение всё равно получает Permission denied. Проблема часто не в самом файле, а в одной из родительских папок.
Если дебажишь доступы в Linux, namei экономит много времени.
📍 Подпишись на создателей: https://t.me/linuxexex
Есть команда, о которой часто забывают: namei.
Она раскладывает путь по компонентам и показывает права на каждом уровне:
namei -l /var/www/site/index.html
Это удобно, когда файл существует, права на нём нормальные, но nginx или приложение всё равно получает Permission denied. Проблема часто не в самом файле, а в одной из родительских папок.
Если дебажишь доступы в Linux, namei экономит много времени.
📍 Подпишись на создателей: https://t.me/linuxexex
🔐 Linux security: проверь SSH-доступ
Минимальный чек-лист для сервера:
1. Отключить вход root по SSH:
PermitRootLogin no
2. Отключить парольный вход, если используешь ключи:
PasswordAuthentication no
3. Проверить, кто вообще может логиниться:
AllowUsers your_user
После изменения конфига не закрывай текущую SSH-сессию сразу. Сначала открой вторую и проверь вход.
Так ты не заблокируешь сам себя из-за опечатки.
📍 Подпишись на создателей: https://t.me/linuxexex
Минимальный чек-лист для сервера:
1. Отключить вход root по SSH:
PermitRootLogin no
2. Отключить парольный вход, если используешь ключи:
PasswordAuthentication no
3. Проверить, кто вообще может логиниться:
AllowUsers your_user
После изменения конфига не закрывай текущую SSH-сессию сразу. Сначала открой вторую и проверь вход.
Так ты не заблокируешь сам себя из-за опечатки.
📍 Подпишись на создателей: https://t.me/linuxexex
📰 Ешь салат. С салатом всё в порядке.
FDA Трампа делает вид, что проводит серьёзное расследование — уже после того, как Трамп получил взятку от Taylor Farms.
Вокруг продолжающейся вспышки циклоспороза в понедельник возникла путаница: поставщик продуктов питания, связанный с заболеванием, вступил в конфликт с Управлением по санитарному надзору за качеством пищевых продуктов и медикаментов (FDA).
Чиновники FDA заявили на пресс-конференции в понедельник, что расследование по-прежнему указывает на листовой салат айсберг компании Taylor Farms как на источник вспышки. Это несмотря на то, что компания утверждает: агентство принесло ей официальные извинения за объявление ложноположительного результата теста на циклоспору в их салате.
«Мы не приносили официальных извинений, но фактически разъяснили возникшие вопросы», — заявил представитель FDA.
Taylor Farms — многонациональный гигант по поставкам продуктов питания — оказался в центре истории со вспышкой паразита, вызывающего диарею, после того как Центры по контролю и профилактике заболеваний (CDC) отследили сообщения о болезни до салата-айсберга Taylor Farms de Mexico, который подавали в заведениях Taco Bell в пяти штатах. В пятницу поставщик объявил добровольный отзыв айсберга из центральной Мексики, включая фасованные салатные миксы из продуктовых магазинов.
В выходные FDA сначала объявило, а затем отозвало новость о том, что образец салата Taylor Farms дал положительный результат на циклоспору. Этот тест оказался ложноположительным — то есть агентство так и не обнаружило никаких «подтверждённых положительных результатов при тестировании продуктов на циклоспору», говорится в заявлении FDA.
Источник (4chan /news/): https://boards.4chan.org/news/thread/1524686
📍 Подпишись на создателей: https://t.me/linuxexex
FDA Трампа делает вид, что проводит серьёзное расследование — уже после того, как Трамп получил взятку от Taylor Farms.
Вокруг продолжающейся вспышки циклоспороза в понедельник возникла путаница: поставщик продуктов питания, связанный с заболеванием, вступил в конфликт с Управлением по санитарному надзору за качеством пищевых продуктов и медикаментов (FDA).
Чиновники FDA заявили на пресс-конференции в понедельник, что расследование по-прежнему указывает на листовой салат айсберг компании Taylor Farms как на источник вспышки. Это несмотря на то, что компания утверждает: агентство принесло ей официальные извинения за объявление ложноположительного результата теста на циклоспору в их салате.
«Мы не приносили официальных извинений, но фактически разъяснили возникшие вопросы», — заявил представитель FDA.
Taylor Farms — многонациональный гигант по поставкам продуктов питания — оказался в центре истории со вспышкой паразита, вызывающего диарею, после того как Центры по контролю и профилактике заболеваний (CDC) отследили сообщения о болезни до салата-айсберга Taylor Farms de Mexico, который подавали в заведениях Taco Bell в пяти штатах. В пятницу поставщик объявил добровольный отзыв айсберга из центральной Мексики, включая фасованные салатные миксы из продуктовых магазинов.
В выходные FDA сначала объявило, а затем отозвало новость о том, что образец салата Taylor Farms дал положительный результат на циклоспору. Этот тест оказался ложноположительным — то есть агентство так и не обнаружило никаких «подтверждённых положительных результатов при тестировании продуктов на циклоспору», говорится в заявлении FDA.
Источник (4chan /news/): https://boards.4chan.org/news/thread/1524686
📍 Подпишись на создателей: https://t.me/linuxexex
boards.4chan.org
/news/ - Eat the Lettuce. The Lettuce is Fine. - Current News - 4chan
Eat the Lettuce. The Lettuce is Fine. - "/news/ - Current News; is 4chan's board for current news.
Лайфхак для терминала, который реально экономит время ⚡
Многие знают про Ctrl+R — обратный поиск по истории. Но есть кое-что помощнее, и большинство про это не знает.
Называется fzf — fuzzy finder для командной строки. Устанавливается за секунду:
# Debian/Ubuntu
apt install fzf
# Arch
pacman -S fzf
# macOS
brew install fzf
После установки жмёшь Ctrl+R — и вместо стандартного поиска получаешь интерактивный список всей истории с нечётким поиском. Начинаешь набирать любую часть команды — список фильтруется на лету. Не надо помнить точное начало команды, достаточно вспомнить любое слово из неё.
Но это только начало. Вот где начинается магия:
Ctrl+T — вставить путь к файлу прямо в текущую команду. Набираешь vim, жмёшь Ctrl+T, выбираешь файл из интерактивного дерева — готово.
Alt+C — моментально перейти в любую папку. Не надо помнить полный путь, просто набираешь кусок названия.
Можно использовать fzf в пайпах. Например выбрать процесс для kill:
kill -9 $(ps aux | fzf | awk '{print $2}')
Или выбрать ветку git для переключения:
git checkout $(git branch | fzf)
Или открыть любой файл в проекте:
vim $(find . -type f | fzf)
Последнее вообще убивает необходимость помнить структуру проекта целиком.
Ещё одна вещь, про которую забывают — двойные восклицательные знаки !! в bash. Это псевдоним для последней команды. Забыл написать sudo? Не надо стрелку вверх давить и идти в начало строки:
sudo !!
Просто выполнит предыдущую команду с sudo. Работает везде без установки чего-либо.
И совсем простое, но удивительно полезное — Ctrl+W удаляет одно слово назад. Если написал длинную команду с ошибкой в последнем аргументе, не надо держать Backspace — одно нажатие и слово стёрто.
Терминал это не про скорость печати, это про то чтобы не делать лишних движений 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex
Многие знают про Ctrl+R — обратный поиск по истории. Но есть кое-что помощнее, и большинство про это не знает.
Называется fzf — fuzzy finder для командной строки. Устанавливается за секунду:
# Debian/Ubuntu
apt install fzf
# Arch
pacman -S fzf
# macOS
brew install fzf
После установки жмёшь Ctrl+R — и вместо стандартного поиска получаешь интерактивный список всей истории с нечётким поиском. Начинаешь набирать любую часть команды — список фильтруется на лету. Не надо помнить точное начало команды, достаточно вспомнить любое слово из неё.
Но это только начало. Вот где начинается магия:
Ctrl+T — вставить путь к файлу прямо в текущую команду. Набираешь vim, жмёшь Ctrl+T, выбираешь файл из интерактивного дерева — готово.
Alt+C — моментально перейти в любую папку. Не надо помнить полный путь, просто набираешь кусок названия.
Можно использовать fzf в пайпах. Например выбрать процесс для kill:
kill -9 $(ps aux | fzf | awk '{print $2}')
Или выбрать ветку git для переключения:
git checkout $(git branch | fzf)
Или открыть любой файл в проекте:
vim $(find . -type f | fzf)
Последнее вообще убивает необходимость помнить структуру проекта целиком.
Ещё одна вещь, про которую забывают — двойные восклицательные знаки !! в bash. Это псевдоним для последней команды. Забыл написать sudo? Не надо стрелку вверх давить и идти в начало строки:
sudo !!
Просто выполнит предыдущую команду с sudo. Работает везде без установки чего-либо.
И совсем простое, но удивительно полезное — Ctrl+W удаляет одно слово назад. Если написал длинную команду с ошибкой в последнем аргументе, не надо держать Backspace — одно нажатие и слово стёрто.
Терминал это не про скорость печати, это про то чтобы не делать лишних движений 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex
📰 Биде — экологично и нежно для попы?
Биде лучше для экологии и для прямой кишки, чем туалетная бумага?
Обычная туалетная бумага — это трата ресурсов. Плюс она раздражает мой анус.
Источник (4chan /sci/): https://boards.4chan.org/sci/thread/17009533
📍 Подпишись на создателей: https://t.me/linuxexex
Биде лучше для экологии и для прямой кишки, чем туалетная бумага?
Обычная туалетная бумага — это трата ресурсов. Плюс она раздражает мой анус.
Источник (4chan /sci/): https://boards.4chan.org/sci/thread/17009533
📍 Подпишись на создателей: https://t.me/linuxexex
boards.4chan.org
/sci/ - Bidet - Science & Math - 4chan
Bidet - "/sci/ - Science & Math" is 4chan's board for the discussion of science and math.
Please open Telegram to view this post
VIEW IN TELEGRAM
Как Linux решает, кому дать процессор прямо сейчас
Представь: у тебя 8 ядер и 300 процессов. Кто работает, а кто ждёт? Этим занимается планировщик задач — одна из самых интересных подсистем ядра.
С 2007 года в Linux живёт CFS — Completely Fair Scheduler. Название говорит само за себя: он пытается быть честным. Но как именно?
Главная идея — виртуальное время
CFS не думает категориями «дай процессу 10 миллисекунд». Вместо этого он ведёт для каждого процесса счётчик vruntime — виртуальное время выполнения. Чем дольше процесс уже работал, тем больше его vruntime.
Логика простая: всегда запускай того, у кого vruntime наименьший. То есть того, кто меньше всего получил процессорного времени.
Красно-чёрное дерево вместо очереди
Все запущенные процессы хранятся в красно-чёрном дереве — это самобалансирующаяся структура данных. Ключ — тот самый vruntime. Самый «голодный» процесс всегда крайний левый узел дерева.
Планировщик просто берёт левый узел, запускает процесс, обновляет vruntime — и снова кладёт в дерево уже на другое место. Вставка и поиск за O(log n). Элегантно.
А что с приоритетами?
Приоритет (nice value, от -20 до +19) влияет на скорость роста vruntime. У важного процесса vruntime растёт медленнее — значит, он чаще оказывается «самым голодным» и получает больше времени. Никакой магии, просто математика.
Период и гранулярность
CFS работает с понятием целевой задержки — примерно 6 миллисекунд по умолчанию. За это время каждый активный процесс должен хоть раз поработать. Если процессов много, минимальный квант не даёт нарезать время слишком мелко — иначе ядро будет только переключаться и ничего не делать.
Почему это круто
До CFS в Linux был O(1) scheduler — он работал быстро, но интерактивность страдала. Браузер мог подвисать, потому что планировщик не умел хорошо отличать «жду ввода от пользователя» от «считаю что-то тяжёлое».
CFS решил это элегантно: процессы, которые часто спят (ждут клавиатуру, сеть), накапливают маленький vruntime. Когда они просыпаются — сразу оказываются в начале очереди и получают процессор почти мгновенно. Отсюда отзывчивость десктопа.
Сейчас в ядре 6.6+ появился EEVDF — наследник CFS с более честной математикой, но принцип тот же: виртуальное время и честное распределение.
Планировщик — это несколько тысяч строк кода в kernel/sched/fair.c, которые незаметно делают так, чтобы твой терминал отвечал быстро, пока в фоне компилируется ядро 😄
📍 Подпишись на создателей: https://t.me/linuxexex
Представь: у тебя 8 ядер и 300 процессов. Кто работает, а кто ждёт? Этим занимается планировщик задач — одна из самых интересных подсистем ядра.
С 2007 года в Linux живёт CFS — Completely Fair Scheduler. Название говорит само за себя: он пытается быть честным. Но как именно?
Главная идея — виртуальное время
CFS не думает категориями «дай процессу 10 миллисекунд». Вместо этого он ведёт для каждого процесса счётчик vruntime — виртуальное время выполнения. Чем дольше процесс уже работал, тем больше его vruntime.
Логика простая: всегда запускай того, у кого vruntime наименьший. То есть того, кто меньше всего получил процессорного времени.
Красно-чёрное дерево вместо очереди
Все запущенные процессы хранятся в красно-чёрном дереве — это самобалансирующаяся структура данных. Ключ — тот самый vruntime. Самый «голодный» процесс всегда крайний левый узел дерева.
Планировщик просто берёт левый узел, запускает процесс, обновляет vruntime — и снова кладёт в дерево уже на другое место. Вставка и поиск за O(log n). Элегантно.
А что с приоритетами?
Приоритет (nice value, от -20 до +19) влияет на скорость роста vruntime. У важного процесса vruntime растёт медленнее — значит, он чаще оказывается «самым голодным» и получает больше времени. Никакой магии, просто математика.
Период и гранулярность
CFS работает с понятием целевой задержки — примерно 6 миллисекунд по умолчанию. За это время каждый активный процесс должен хоть раз поработать. Если процессов много, минимальный квант не даёт нарезать время слишком мелко — иначе ядро будет только переключаться и ничего не делать.
Почему это круто
До CFS в Linux был O(1) scheduler — он работал быстро, но интерактивность страдала. Браузер мог подвисать, потому что планировщик не умел хорошо отличать «жду ввода от пользователя» от «считаю что-то тяжёлое».
CFS решил это элегантно: процессы, которые часто спят (ждут клавиатуру, сеть), накапливают маленький vruntime. Когда они просыпаются — сразу оказываются в начале очереди и получают процессор почти мгновенно. Отсюда отзывчивость десктопа.
Сейчас в ядре 6.6+ появился EEVDF — наследник CFS с более честной математикой, но принцип тот же: виртуальное время и честное распределение.
Планировщик — это несколько тысяч строк кода в kernel/sched/fair.c, которые незаметно делают так, чтобы твой терминал отвечал быстро, пока в фоне компилируется ядро 😄
📍 Подпишись на создателей: https://t.me/linuxexex
📰 Учёные изучили, как длинноцепочечные полиненасыщенные жирные кислоты распределяются в пищевых цепях пресноводных рыб Европы
Систематический обзор исследовал пространственно-временное распределение длинноцепочечных полиненасыщенных жирных кислот (LC-PUFA) в пищевых сетях европейских пресноводных озёр и прудов — в той их части, которая фильтруется через жабры рыб.
LC-PUFA, в частности омега-3 кислоты EPA и DHA, критически важны для здоровья водных экосистем и самих рыб. Они синтезируются преимущественно микроводорослями и фитопланктоном, затем передаются по пищевой цепи — от зоопланктона к рыбам.
Исследование охватывает европейские пресноводные водоёмы и анализирует, как концентрация этих веществ меняется в зависимости от сезона, географии и типа экосистемы. Это важно для понимания того, насколько пресноводные рыбы способны обеспечивать людей качественными омега-3 жирными кислотами — особенно на фоне изменения климата и эвтрофикации водоёмов, которые влияют на состав фитопланктона и, следовательно, на доступность LC-PUFA во всей пищевой цепи.
Источник (r/science): https://www.reddit.com/r/science/comments/1v6xq62/spatiotemporal_distribution_of_longchain/
📍 Подпишись на создателей: https://t.me/linuxexex
Систематический обзор исследовал пространственно-временное распределение длинноцепочечных полиненасыщенных жирных кислот (LC-PUFA) в пищевых сетях европейских пресноводных озёр и прудов — в той их части, которая фильтруется через жабры рыб.
LC-PUFA, в частности омега-3 кислоты EPA и DHA, критически важны для здоровья водных экосистем и самих рыб. Они синтезируются преимущественно микроводорослями и фитопланктоном, затем передаются по пищевой цепи — от зоопланктона к рыбам.
Исследование охватывает европейские пресноводные водоёмы и анализирует, как концентрация этих веществ меняется в зависимости от сезона, географии и типа экосистемы. Это важно для понимания того, насколько пресноводные рыбы способны обеспечивать людей качественными омега-3 жирными кислотами — особенно на фоне изменения климата и эвтрофикации водоёмов, которые влияют на состав фитопланктона и, следовательно, на доступность LC-PUFA во всей пищевой цепи.
Источник (r/science): https://www.reddit.com/r/science/comments/1v6xq62/spatiotemporal_distribution_of_longchain/
📍 Подпишись на создателей: https://t.me/linuxexex
Reddit
From the science community on Reddit: Spatiotemporal distribution of long-chain polyunsaturated fatty acids (LC-PUFA) in gill filterable…
Posted by koushik_roy - 7 votes and 1 comment
watch — команда, о которой забывают, но зря
Большинство линуксоидов знают top, htop, tail -f. Но есть одна простая штука, которую почему-то игнорируют — команда watch.
Что она делает: запускает любую команду повторно через заданный интервал и показывает результат прямо в терминале. Живое обновление без скриптов и циклов.
Базовое использование:
watch df -h
Это будет каждые 2 секунды показывать состояние дисков. Никакого скрипта, никакого while true.
Полезные флаги:
-n — задать интервал в секундах
watch -n 5 free -m
обновляет каждые 5 секунд, смотрим память
-d — подсвечивает изменения между обновлениями
watch -d netstat -an
сразу видно, что поменялось в сетевых соединениях
-t — убирает шапку с временем и командой, если мешает
-e — останавливает выполнение, если команда вернула ошибку
Реальные сценарии где это реально спасает:
Следишь за размером лога в реальном времени:
watch -n 1 'ls -lh /var/log/syslog'
Мониторишь очередь задач:
watch -n 3 'ps aux | grep python'
Ждёшь когда файл появится в директории:
watch -n 2 'ls /tmp/ | grep backup'
Смотришь как меняется температура процессора:
watch -n 1 sensors
Проверяешь статус сервиса пока что-то деплоишь:
watch systemctl status nginx
Одна тонкость: watch запускает команду через sh -c, поэтому алиасы из вашего .bashrc там не работают. Если нужен алиас — передавай явно строкой или используй функцию.
Ещё момент — минимальный интервал 0.1 секунды. Можно делать почти real-time мониторинг без написания ни строчки кода.
watch есть в procps-ng, стоит практически везде из коробки. На macOS ставится через brew install watch.
Простая команда, но когда знаешь о ней — перестаёшь писать дурацкие циклы в bash ради банального мониторинга 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex
Большинство линуксоидов знают top, htop, tail -f. Но есть одна простая штука, которую почему-то игнорируют — команда watch.
Что она делает: запускает любую команду повторно через заданный интервал и показывает результат прямо в терминале. Живое обновление без скриптов и циклов.
Базовое использование:
watch df -h
Это будет каждые 2 секунды показывать состояние дисков. Никакого скрипта, никакого while true.
Полезные флаги:
-n — задать интервал в секундах
watch -n 5 free -m
обновляет каждые 5 секунд, смотрим память
-d — подсвечивает изменения между обновлениями
watch -d netstat -an
сразу видно, что поменялось в сетевых соединениях
-t — убирает шапку с временем и командой, если мешает
-e — останавливает выполнение, если команда вернула ошибку
Реальные сценарии где это реально спасает:
Следишь за размером лога в реальном времени:
watch -n 1 'ls -lh /var/log/syslog'
Мониторишь очередь задач:
watch -n 3 'ps aux | grep python'
Ждёшь когда файл появится в директории:
watch -n 2 'ls /tmp/ | grep backup'
Смотришь как меняется температура процессора:
watch -n 1 sensors
Проверяешь статус сервиса пока что-то деплоишь:
watch systemctl status nginx
Одна тонкость: watch запускает команду через sh -c, поэтому алиасы из вашего .bashrc там не работают. Если нужен алиас — передавай явно строкой или используй функцию.
Ещё момент — минимальный интервал 0.1 секунды. Можно делать почти real-time мониторинг без написания ни строчки кода.
watch есть в procps-ng, стоит практически везде из коробки. На macOS ставится через brew install watch.
Простая команда, но когда знаешь о ней — перестаёшь писать дурацкие циклы в bash ради банального мониторинга 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex
Лайфхак для терминала, который реально экономит время ⚡
Вы знаете про Ctrl+R — поиск по истории команд. Но большинство людей используют его неправильно: нажал, начал вводить, получил одну команду, вышел. Всё.
А теперь настоящий трюк.
Установите fzf — это fuzzy finder для командной строки. После установки он перехватывает Ctrl+R и превращает поиск по истории в интерактивный список с нечётким поиском.
Например, помните что запускали что-то с docker compose и каким-то длинным флагом — но не помните точно что. Жмёте Ctrl+R, вводите "dock comp", и fzf мгновенно показывает все подходящие команды из истории. Стрелками выбираете нужную, Enter — и она уже в строке ввода.
Установка на Ubuntu/Debian:
sudo apt install fzf
На macOS:
brew install fzf
После установки нужно подключить интеграцию с шеллом. Для bash и zsh:
$(brew --prefix)/opt/fzf/install
или на Linux:
/usr/share/doc/fzf/examples/key-bindings.bash
Добавьте source этого файла в .bashrc или .zshrc.
Но это ещё не всё. fzf работает не только с историей команд. Нажмите Ctrl+T в терминале — получите интерактивный поиск файлов прямо во время набора команды. Пишете vim, жмёте Ctrl+T, находите файл — путь вставляется автоматически.
А команда **cd + Alt+C** открывает интерактивный выбор директории для перехода.
Ещё один момент: по умолчанию история bash хранит 500 команд. Это смешно. Добавьте в .bashrc:
HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
Теперь история не будет дублировать одинаковые команды и будет хранить реально много записей. В связке с fzf это становится вашей персональной базой знаний по командам, которые вы уже запускали.
Звучит как мелочь, но когда каждый день работаешь в терминале — это десятки минут, которые перестают уходить на вспоминание и перепечатку. 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex
Вы знаете про Ctrl+R — поиск по истории команд. Но большинство людей используют его неправильно: нажал, начал вводить, получил одну команду, вышел. Всё.
А теперь настоящий трюк.
Установите fzf — это fuzzy finder для командной строки. После установки он перехватывает Ctrl+R и превращает поиск по истории в интерактивный список с нечётким поиском.
Например, помните что запускали что-то с docker compose и каким-то длинным флагом — но не помните точно что. Жмёте Ctrl+R, вводите "dock comp", и fzf мгновенно показывает все подходящие команды из истории. Стрелками выбираете нужную, Enter — и она уже в строке ввода.
Установка на Ubuntu/Debian:
sudo apt install fzf
На macOS:
brew install fzf
После установки нужно подключить интеграцию с шеллом. Для bash и zsh:
$(brew --prefix)/opt/fzf/install
или на Linux:
/usr/share/doc/fzf/examples/key-bindings.bash
Добавьте source этого файла в .bashrc или .zshrc.
Но это ещё не всё. fzf работает не только с историей команд. Нажмите Ctrl+T в терминале — получите интерактивный поиск файлов прямо во время набора команды. Пишете vim, жмёте Ctrl+T, находите файл — путь вставляется автоматически.
А команда **cd + Alt+C** открывает интерактивный выбор директории для перехода.
Ещё один момент: по умолчанию история bash хранит 500 команд. Это смешно. Добавьте в .bashrc:
HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
Теперь история не будет дублировать одинаковые команды и будет хранить реально много записей. В связке с fzf это становится вашей персональной базой знаний по командам, которые вы уже запускали.
Звучит как мелочь, но когда каждый день работаешь в терминале — это десятки минут, которые перестают уходить на вспоминание и перепечатку. 🖥️
📍 Подпишись на создателей: https://t.me/linuxexex