linux.exex [GFYB]
159 subscribers
745 photos
86 videos
9 files
501 links
GFYB - go fuck yourself bitch. This Is team GFYB. goida
Download Telegram
CTRL+R — это знают все. А вот про это скорее всего не знаешь.

В bash и zsh есть встроенная штука под названием CDPATH. Работает как PATH, только для команды cd.

Допустим, ты постоянно лазишь в ~/projects, ~/work, ~/configs. Без CDPATH каждый раз пишешь полный путь или городишь алиасы. С CDPATH делаешь один раз:

export CDPATH=.:~/projects:~/work:~/configs

И теперь просто пишешь cd myrepo, cd nginx, cd scripts — шелл сам ищет по всем директориям из списка и прыгает куда надо. Без полного пути, без алиасов, без боли.

Точка в начале — это текущая директория, она должна быть первой, иначе шелл начнёт искать сначала в ~/projects и будет вести себя как идиот.

Добавляешь в.bashrc или.zshrc, переоткрываешь терминал, кайфуешь.

Бонус для параноиков: когда cd срабатывает через CDPATH, шелл вежливо печатает куда именно он тебя унёс. Это не баг, это фича, чтобы ты не офигел внезапно оказавшись не там.

Почему об этом мало кто знает? Потому что это в мане. А кто читает маны, тот читает маны.

Подпишись на создателей: https://t.me/linuxexex
лайфхак, который я использую каждый день, а вы, скорее всего, нет

если ты работаешь в терминале и до сих пор вручную переписываешь длинные команды из истории — ты тратишь своё время в мусорное ведро по одной минуте.

вот штука, которую знают немногие: Ctrl+R

это reverse search по истории bash/zsh. нажимаешь Ctrl+R, начинаешь вводить кусок команды — и терминал сам находит последнюю похожую из истории. не надо листать стрелками вверх двадцать раз, не надо помнить точный синтаксис.

набрал "docker run" — оно вытащило ту длинную команду с флагами, которую ты писал три дня назад. нажал Enter — готово.

хочешь следующее совпадение — жми Ctrl+R ещё раз. хочешь редактировать найденное — стрелка вправо или End, и команда встаёт в строку ввода.

работает в bash, zsh, и даже вfish если правильно настроен.

бонус для параноиков и перфекционистов: если хочешь, чтобы история была длиннее и не терялась между сессиями, добавь в.bashrc вот это

HISTSIZE=100000
HISTFILESIZE=200000
HISTCONTROL=ignoredups:erasedups
shopt -s histappend

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

простая хрень, которая реально сокращает время на рутину. пользуйтесь.

Подпишись на создателей: https://t.me/linuxexex
CTRL+R все знают. Это база. А вот что реально мало кто использует — это ** в глобинге в bash и zsh.

По умолчанию в bash нужно включить его руками:

shopt -s globstar

И после этого конструкция ** начинает означать «любое количество вложенных директорий». То есть:

ls **/*.log

выдаст тебе все.log файлы рекурсивно по всему дереву. Без find, без xargs, без этого бесконечного танца с флагами.

В zsh это работает из коробки, без шопта.

Казалось бы, мелочь. Но когда ты в третий раз пишешь:

find. -name "*.conf" -exec grep -l "timeout" {} \;

и в четвёртый раз путаешься в этих скобках и слешах — вспоминаешь, что можно было просто:

grep -l "timeout" **/*.conf

Чище, быстрее, читается как человеческая речь, а не как заклинание из документации к sendmail.

Ещё один момент, который реально удивляет людей: ** работает не только в ls и grep, но и в for-циклах. Хочешь пройтись по всем Python-файлам в проекте и что-то с ними сделать — пожалуйста:

for f in **/*.py; do
echo "$f"
done

Никакого find -exec, никакого subshell, никакого головняка с пробелами в именах файлов.

Пробелы, кстати, отдельная история. Глобинг обрабатывает их корректно, если переменная в кавычках. А вот find -exec и обратные кавычки — это уже лотерея.

В общем, shopt -s globstar в.bashrc, и жизнь становится чуть менее похожей на ад.

Подпишись на создателей: https://t.me/linuxexex
Знаете, что вообще могло угробить Linux в зародыше?

В 1992 году Эндрю Таненбаум, профессор и автор учебной операционки MINIX, публично назвал Linux технологически отсталым и устаревшим ещё до того, как оно толком взлетело. Мол, монолитное ядро — это прошлый век, будущее за микроядрами, и вообще Линус Торвальдс написал фигню для одной архитектуры x86, которая протухнет через пять лет.

Этот срач вошёл в историю как дискуссия Tanenbaum-Torvalds и до сих пор цитируется в учебниках.

Линус не стал вежливо раскланиваться. Он ответил прямо в Usenet: да, ядро монолитное, и что с того. Потом добавил, что MINIX с её лицензией на тот момент была бесполезна для реального применения, а теории Таненбаума хороши для лекций, но не для работающего софта.

Таненбаум был прав насчёт архитектуры с академической точки зрения. Микроядра действительно чище по дизайну. Но Linux оказался прав с практической: монолитное ядро с правильно написанными модулями работало быстро, его легко было портировать, оно жрало меньше ресурсов на IPC и вокруг него сложилось сообщество, которое просто допилило всё руками.

Сегодня Linux крутится на большинстве серверов планеты, на вашем телефоне, на МКС, на суперкомпьютерах и в холодильниках умных домов. MINIX тихонько живёт в учебных аудиториях и, по иронии, внутри процессоров Intel как управляющая прошивка, о которой большинство пользователей вообще не знает.

А спор о микроядрах против монолитных до сих пор не закрыт. Просто пока что у монолитного ядра серверная стойка, а у микроядра — конспект с лекции.

Подпишись на создателей: https://t.me/linuxexex
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
слепая печать
Том
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM