Десять лет в девопсе. Десять. И я гуглю tar -xzf. Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт. Открываю хром, набираю «tar extract gz linux», пролистываю три рекламы, нахожу ответ на SO, копирую, вставляю, закрываю вкладку. Через неделю — по новой.
Я не идиот. Точнее, может и идиот, но не поэтому. Просто tar — это такой синтаксис, который у меня физически отказывается залезать в долговременную память. Там дефис или нет? xzf или xfz? Или zxf? Вроде порядок не важен? Или важен?..
Короче. Месяц назад я написал скрипт, который это решил. А потом скрипт решил больше, чем я хотел.
Зачем вообще
Я выгрузил историю хрома за последний год — ну, не целиком, отфильтровал по командной строке. Там tar extract — 47 раз. find files larger than — 31. kill process on port — 28. crontab format — 22 раза, Карл. Crontab. Я его настраиваю на каждом втором сервере.
Всего насчитал 168 запросов на вещи, которые я по идее должен знать. Ну ладно, find -exec {} \; я никогда не помнил, бог с ним, но chmod 755?
По 30 секунд на запрос (если сразу нашёл) — это полтора часа в год. Не катастрофа, да. Но раздражает неимоверно.
И я подумал — а что если просто спрашивать терминал по-русски?
Скрипт
Требования: ноль внешних зависимостей, потому что я не собираюсь тащить pip install на каждый прод-сервер (хотя кого я обманываю — на проде я его в итоге не поставил, но об этом позже). Любой LLM-бэкенд. И подтверждение перед выполнением — это не обсуждается.
#!/usr/bin/env python3 """ai-bash: спрашиваю по-русски — получаю bash""" import sys, os, json, urllib.request API_KEY = os.getenv("OPENAI_API_KEY", "") API_URL = os.getenv("AI_BASH_URL", "https://api.openai.com/v1/chat/completions") MODEL = os.getenv("AI_BASH_MODEL", "gpt-4o-mini") SYSTEM = ( "Ты — терминальный ассистент. Пользователь описывает задачу " "на русском языке. Отвечай ТОЛЬКО bash-командой — одной строкой. " "Без пояснений, без markdown, без обратных кавычек. " "Несколько команд — через && или |. ОС: Linux." ) def ask(question: str) -> str: body = json.dumps({ "model": MODEL, "temperature": 0, "max_tokens": 200, "messages": [ {"role": "system", "content": SYSTEM}, {"role": "user", "content": question}, ], }).encode() req = urllib.request.Request(API_URL, data=body, headers={ "Content-Type": "application/json", "Authorization": f"Bearer {API_KEY}", }) with urllib.request.urlopen(req) as r: data = json.loads(r.read()) return data["choices"][0]["message"]["content"].strip() def main(): if len(sys.argv) < 2: print("Использование: ai 'найди файлы больше 100мб'") sys.exit(1) cmd = ask(" ".join(sys.argv[1:])) print(f"\n \033[1;33m➜ {cmd}\033[0m\n") if input("Выполнить? [y/N] ").strip().lower() in ("y", "д"): os.system(cmd) if __name__ == "__main__": main()
50 строк. urllib.request — стандартная библиотека, не нужно ничего ставить. Берёт фразу, шлёт в API с промптом «ответь одной командой», показывает результат жёлтым, спрашивает «y/N». Всё.

Установка:
mkdir -p ~/bin chmod +x ~/bin/ai-bash.py echo 'alias ai="python3 ~/bin/ai-bash.py"' >> ~/.bashrc
Ключ OpenAI в .bashrc или в .env — кому как нравится. Я сначала гонял через API, потом поставил Ollama с qwen2.5:7b локально — тоже работает без изменений кода, просто меняешь переменные окружения:
export AI_BASH_URL="http://localhost:11434/v1/chat/completions" export AI_BASH_MODEL="qwen2.5:7b" export OPENAI_API_KEY="local"
На моей 3060 ответ приходит за полторы-две секунды. Не мгновенно, но быстрее, чем открыть хром.
Как оно на практике
Ну вот. ai "сколько места на диске" → df -h. ai "распакуй archive.tar.gz" → tar -xzf archive.tar.gz. ai "убей процесс на порту 8080" → kill $(lsof -t -i:8080). Нормально работает.
Самое полезное для меня оказалось вот что:
ai "переименуй все .jpeg в .jpg" → for f in *.jpeg; do mv "$f" "${f%.jpeg}.jpg"; done
Вот эта конструкция ${f%.jpeg} — parameter expansion. Я её гуглил КАЖДЫЙ раз. Каждый. Гуглил, использовал, забывал. По кругу. LLM выдаёт за секунду.
Или кронтаб. Мне нужно было ротировать логи в полночь. Я бы полез на crontab.guru, потом на SO, потом обратно на crontab.guru, потому что вечно путаю, где день недели, а где месяц. А тут — ai "crontab: ротация логов в полночь" и готово.
Кстати, не все ответы одинаково хороши. Забегая вперёд — за месяц из 847 запросов 23 раза LLM выдала фигню. Не синтаксическую ошибку — синтаксически всё валидно. А по смыслу — не то. Или опасное. Про опасное отдельно расскажу.
Вот тут я, наверное, должен сравнить с tldr и thefuck
Ладно, скажу сразу, чтобы потом не отвечать на одно и то же в каждом втором комменте.
tldr tar — покажет примеры для tar. Но ты должен знать, что тебе нужен tar. Если ты хочешь «сделай бэкап постгреса с датой в имени файла» — тлдр тебе не поможет, потому что у тебя в голове нет слова pg_dump.
thefuck — классная штука, я ей пользуюсь до сих пор. Но она исправляет ошибку ПОСЛЕ того, как ты её допустил. Мне нужно ДО.
navi — вот тут не уверен, честно говоря. Я ставил её год назад, потыкался и забросил. Может, с тех пор стало лучше. Если кто активно пользуется — расскажите, интересно сравнить. По-моему, там каталог шаблонов, и на произвольную задачу он не ответит, но я могу ошибаться.
Copilot CLI — 10 баксов в месяц. Мой скрипт за месяц сжёг 1.80 через OpenAI API. Через Ollama — ноль.
Ну и да, мой скрипт понимает русский. Мелочь, но мне лично удобнее формулировать задачу на родном языке. Не знаю почему — скорее всего привычка, я на работе всё по-русски обсуждаю.
Отступление про man-страницы
Вот сейчас будет ворчание не по теме, но я не могу не сказать.
Знаете, почему я гуглю, а не делаю man tar? Потому что man tar — это 800 строк, из которых мне нужны две. И они на экране 340 из 800. И я ищу их грепом по ману, что само по себе абсурд. man — гениальный инструмент, спроектированный для вдумчивого чтения на бумаге в 1971 году. Я в 2026 году в панике ищу, как распаковать архив, пока тимлид в слаке спрашивает «ну что там?».
Это не жалоба на man. Man — ОК. Это жалоба на то, что за 55 лет не появилось нормальной альтернативы. Ну, tldr появился, да. Но я про это уже сказал.
Ладно, возвращаюсь к теме.
Статистика за месяц
Я добавил логирование — каждый запрос пишется в ~/.ai-bash.log с таймстампом. Через 30 дней выгрузил.
847 запросов. В среднем 28 в день. По-моему, это дофига. Я не ожидал столько. Видимо, раньше часть этих задач я решал по памяти (пусть и с ошибками), а тут стал пропускать через скрипт вообще ВСЁ, вплоть до ls -la. Ну, не ls -la, конечно, но du -sh * | sort -rh — уже да.
Медианное время ответа — 0.9 сек через OpenAI, 2.1 через Ollama. Ошибочных ответов — 23 штуки, 2.7%. Три из них были реально опасные.
Стоимость API — $1.80 за месяц. По-моему, это смешно. Я на кофе из автомата больше трачу.
Самый частый запрос — «убей процесс на порту [что-нибудь]». 41 раз за месяц. Это ненормально. Это значит, что у меня что-то не так с тем, как я запускаю сервисы. Вот это, кстати, неожиданный побочный эффект — лог показал мне паттерны моей работы, которые я сам не замечал.
Но. Но-но-но.
Чужой сервер
Третья неделя. Пятница. Меня позвали починить деплой на сервере, к которому у меня ssh и больше ничего. Моего скрипта нет, Ollama нет, алиаса ai нет. Нужно распаковать архив.
Набираю tar...
И всё. Пальцы встали. -xzf? -xfz? Дефис или без? Раньше я не задумывался, просто набирал — мышечная память. А тут она пропала. Вру, не совсем пропала — я вспомнил секунд через пятнадцать. Но это были ДЛИННЫЕ пятнадцать секунд.
Я потом сел и проверил себя по десятку команд. По-честному, без гугла и скрипта. И вот что вышло (субъективно, конечно, точнее оценить сложно):
tar -xzf— раньше набирал на автомате, теперь с запинкойfind -name -exec {} \;— ну тут я и раньше не помнил, так что не считаетсяchmod 755vs644— помню, но задумываюсь на секунду дольшеrsync -avz— помню, его я не гонял через скрипт почему-тоawk '{print $3}'— раньше мог вспомнить, сейчас нетdf -h,du -sh— помню, они слишком короткие, их я набирал руками
Получается, деградировало примерно пять из десяти. Не полностью — скорее перешло из «помню мгновенно» в «помню через 10-20 секунд» или в «не помню совсем». И закономерность такая: то, что я и раньше гуглил — не ухудшилось (нечему). То, что я набирал совсем на автомате — тоже не ухудшилось (слишком вбито в пальцы). Пострадало среднее — команды, которые я ПОЧТИ помнил.
Мозг, видимо, решил: зачем хранить то, что можно получить за секунду извне? И выкинул.
Так это плохо или нет?
Не знаю. Честно — не знаю.
С одной стороны — я с телефонными номерами так же. Лет десять назад помнил штук двадцать наизусть. Сейчас — ноль. Мамин не помню. Ну и ладно, телефон помнит за меня, и никто не считает это деградацией.
С другой стороны... Номера телефонов — это просто данные. Десять цифр, никакого навыка. А tar -xzf — это навык. Ну, ладно, скорее микронавык. Но это способность действовать без посредника. Когда ты не помнишь мамин номер — ты не можешь позвонить маме без телефона. Когда ты не помнишь tar — ты не можешь работать без интернета.
Хотя. Если подумать. Когда я последний раз работал без интернета?
...
Ну вот. Я не могу ответить на этот вопрос, потому что не помню. Кажется, в самолёте полгода назад, и то у меня была Ollama на ноутбуке.
При этом за этот месяц я закрыл заметно больше задач. На сколько — точно не скажу, потому что месяц на месяц не приходится, может просто задачи были проще. Но ощущение такое, что каждое переключение в браузер — это маленький разрыв потока. Ты думал про деплой, полез гуглить rsync, увидел уведомление на почте, прочитал, вернулся — и три секунды вспоминаешь, что ты делал. Убрал это переключение — и поток идёт ровнее.
Скорее всего, правда где-то посередине, и я выгадал в скорости, но проиграл в автономности.
Три раза, когда я сказал «нет»
Это та часть, которую я хочу зафиксировать. Потому что эти три случая — причина, по которой строчка input("Выполнить? [y/N]") не просто UX-фича, а, без преувеличения, штука, которая спасла мне рабочий день.
Случай первый. Я пишу: «удали временные файлы». Скрипт отвечает: rm -rf /tmp/*. Казалось бы — именно то, что я просил. Но у меня в /tmp/ лежали юникс-сокеты запущенных сервисов. Я это ЗНАЛ, но забыл в момент запроса. Скрипт этого знать не мог.
Второй. «Очисти логи старше 7 дней». Ответ: find /var/log -mtime +7 -delete. Видите? Без -type f. Удалило бы директории вместе с файлами. Синтаксически идеально, по смыслу — катастрофа.
Третий. «Дай права на запись всем в текущей папке». Ответ: chmod -R 777 .. Я стоял в директории проекта. С .git. С ssh-ключами в подпапке. chmod 777 на ssh-ключи = ключи перестают работать (ssh отказывается использовать ключ с широкими правами). Это я бы чинил полчаса, и то если бы сразу понял, в чём дело.
Вывод, который я для себя сделал: скрипт экономит время на генерацию команды. Проверка — моя ответственность. Не LLM-а, не скрипта — моя. Если перестану читать то, что он мне выдаёт, перед нажатием «y» — рано или поздно словлю rm -rf или что-нибудь в этом духе.
Я потом, кстати, добавил в скрипт блеклист паттернов — rm -rf /, chmod -R 777 /, ещё пару вещей. И режим --explain, который вместо выполнения разбирает чужую команду на русском. Скрипт раздулся до 120 строк, но всё ещё стандартная библиотека, всё ещё ноль зависимостей.
Итого
Я пользуюсь этой штукой месяц. Обратно к гуглу не вернулся. По-моему, для меня лично это нетто-позитив — я быстрее работаю, меньше отвлекаюсь, меньше бешусь от рекламы на SO.
Но я соврал бы, если бы сказал, что меня не напрягает потеря мышечной памяти на tar. Напрягает. Не сильно, но где-то фоном.
Ну и главный вопрос, который я себе задаю и не могу ответить: если я за месяц разучился tar, то через год я разучусь... что? grep? awk? В какой момент я перестаю быть инженером, который использует инструмент, и становлюсь оператором, который без инструмента бесполезен?
Может, этот момент уже наступил, и я просто не заметил.
А может, это нормальная эволюция, и мои дети будут смеяться над тем, что я вообще запоминал команды — как я смеюсь над тем, что дед помнил наизусть расписание электричек.
Не знаю. Скрипт работает. tar забыл.
«Иногда пишу про такое в токены на ветер — иногда о том, как LLM думают, или просто притворяются»
UPD: Перечитал и понял, что написал «847 запросов, 28 в день» — а 847/30 это 28.2, то есть я работал без выходных. На самом деле нет, в выходные я тоже иногда дёргал терминал, просто реже. В будни было скорее 35-40, в выходные 5-10. Не то чтобы это сильно меняет суть, но для точности.
Комментарии (219)

eps
19.02.2026 04:15ноль внешних зависимостей
Я сначала гонял через API, потом поставил Ollama с qwen2.5:7b
Это уже совсем не ноль внешних зависимостей.
А складывать API-ключи с привязанной кредиткой в
.bashrc– это не прямо катастрофа, но поведение крайне опасное
ScriptShaper Автор
19.02.2026 04:15Согласен, замечания по делу.
Под «ноль зависимостей» имел в виду именно стандартную библиотеку Python (без pip/venv). Но вы правы, сама Ollama зависимость та ещё.
Про ключи в .bashrc вредная привычка из разряда «пока тестирую, потом поправлю». Лучше так не делать. Спасибо за внимательность!

leftToddler
19.02.2026 04:15А если прокидывать локальный порт на VM (Remote Forward)? Тогда можно использовать в принципе без параметров. Не знаю конечно насколько это возможно для всех сценариев работы. По идее локально можно и простую проксю поднять к OpenAI, благо подобных сервисов на github уже много.

Goron_Dekar
19.02.2026 04:15Не большая, чем факт наличия ключей с кредиткой. Сама идея - дыра в безопасности.
Если уж вы пользуетесь API с оплатой за потребление и без настроенных лимитов, то не особенно важно, как вы храните ключи.
vvzvlad
19.02.2026 04:15Ну, эм, нет. Так у вас любой софт может взять и сложить в файл диагностики ваш env, а вы его отправите разработчику или выложите на pastebin.

Groosha
19.02.2026 04:15А куда их лучше положить тогда?

eps
19.02.2026 04:15В идеале – в system keychain, но
.envв каталоге проекта – нормальный вариант.Проблема с заданием переменных окружения в
.bashrcв том, что каждый запущенный пользователем процесс будет автоматически знатьOPENAI_API_KEY. User environment может попасть даже в некоторые изолированные окружения, если там нет whitelisting.Попросил нейросеть вас попугать, она предложила два сценария:
IDE и редакторы: Если вы запускаете PyCharm, VS Code или любой другой редактор из терминала (командой
code .илиpycharm .), этот редактор унаследует переменнуюOPENAI_API_KEY. Если в редакторе есть плагин (например, для Copilot, для форматирования кода или даже для отправки телеметрии), этот плагин в теории имеет доступ к переменной. Плагин может быть вредоносным или просто иметь баг, из-за которого отправит окружение на свой сервер.Система сборки (CI/CD локально): Вы запускаете тесты или сборку Docker-образа. Переменная уходит внутрь контейнера. Если вы потом закоммитите этот образ в Docker Hub (публичный репозиторий), ключ окажется в слое образа. Даже если вы его удалите из итогового образа, он останется в истории слоев.

xenon
19.02.2026 04:15Выглядит как "не кладите вилку на стол! а то пустите в дом злоумышленника, он у вас вилку-то и украдет! вешайте вилку на люстру и каждый раз ее оттуда берите".
Но во-первых, если у меня злоумышленник в доме - то он вилку и на люстре найдет (grep -r OPENAI /), а во-вторых, помимо вилки, у него еще будет достаточно способов доставить мне неприятности, что потеря вилки будет далеко не самой большой проблемой.
eps
19.02.2026 04:15Частично соглашусь. Это защита от чужого раздолбайства, не от злоумышленников.
Чтобы защититься от прямо злоумышленников, лучше
Хранить такие секреты в hardware encrypted system keychain (с чего я собственно и начал)
Запускать непонятные closed-source программы в песочнице (всё, что из Flatpak в Linux; всё, что из App Store в Mac OS)
Поставить уже себе application firewall и не давать непонятным программам соединяться с непонятными серверами.
grep -r OPENAI /
В Mac OS, кстати, это кучу privacy warnings выкинет поверх всех окон. Такую кучу, что пользователь прибьёт эту программу просто от того, что достала.

xenon
19.02.2026 04:15Чтобы...
Тут все-таки нужно взвешивать и выбирать, а не "в любой непонятной ситуации - всего опасайся". Если у нас какая-то важная (и простая!) рабочая система, на OpenAI баланс в сотни тысяч долларов - тогда это хорошая практика. Например, наше какое-то большое продакшн приложение, а на этой машине крутится только ИИшный микросервис (так проще его защитить). И тут рекомендации уместны.
Но если это домашняя машина разработчика, которая динамичная - мы то одно на ней делаем, то другое, то начали какой-то проект, то забросили, то поменяли половину системы под другие требования (или под собственный каприз, захотелось попробовать другой desktop environment) - то строить такой зацементированный бункер будет очень дорого. При этом, на счету в OpenAI (стоимость кражи токена) - 20 баксов... Да лучше чтобы с шансом (сильно завышенно) в 1% мы рискнули этой двадцаткой, чем потратить рабочего времени на (занижено) 200 баксов, чтобы на домашней машине выстроить такой же бункер.
eps
19.02.2026 04:15Где вы усмотрели "зацементированный бункер", который "дорого строить" (и откуда столько точных чисел), ума не приложу.
Предпочитать sandboxed приложения? Поставить application firewall? Это не бункер, это информационная гигиена. Это "мыть руки перед едой" и "не поднимать с земли всякую гадость", только эпохи интернета и ИИ-стартапов.

Barnaby
19.02.2026 04:15Мне вот что ИИ посоветовал
ai() { OPENAI_API_KEY="$(cat ~/.openai_key)" python3 ~/bin/ai-bash.py "$@" } echo "sk-..." > ~/.openai_key chmod 600 ~/.openai_key source ~/.bashrc

bbc_69
19.02.2026 04:15Интересная статья. Мне вот интересно, а не проще ли было сделать что-то типа описания типовых случаев (по типу FAQ). Я так навскидку в статье где-то около 10 вариантов увидел. Модель
qwen2.5:7bвесит около 5 ГБ, там мнооооого информации можно было бы вложить. Или просто скрипт был бы в пару кБ.С другой стороны, то, что надо меньше в интернет лезть, мне нравится.

ScriptShaper Автор
19.02.2026 04:15FAQ это круто, но он статичен. А LLM вывозит любой мой сиюминутный «поток сознания», который в шпаргалку просто не влезет. А 5 Гб на диске сегодня небольшая цена за спокойные нервы.

bbc_69
19.02.2026 04:15Как будто статика не является проблемой. Я по себе сужу. Меня вымораживало писать и запоминать git команды. Сделал себе алиасы, в итоге получилось 12 шт. С прочей мелочёвкой даже до 20 не доходит.
Касаемо FAQ, я имел в виду примерно следующее:
Скрытый текст
alias what-tar='echo "Распаковка данных:"; \ echo " tar -xzf archive.tar.gz # распаковать .tar.gz"; \ echo " tar -xjf archive.tar.bz2 # распаковать .tar.bz2"; \ echo " tar -xf archive.tar # распаковать обычный .tar"; \ echo ""; \ echo "Упаковка данных:"; \ echo " tar -czf archive.tar.gz /path/to/dir # создать .tar.gz из директории"; \ echo " tar -cjf archive.tar.bz2 /path/to/dir # создать .tar.bz2"; \ echo " tar -cf archive.tar /path/to/dir # создать обычный .tar"; \ echo ""; \ echo "Дополнительные опции:"; \ echo " -v — выводить подробный список файлов (verbose)"; \ echo " -C /dir — распаковать в указанную директорию"; \ echo " --exclude=\"pattern\" — исключить файлы по шаблону"; \ echo ""; \ echo "Примеры:"; \ echo " tar -xzvf archive.tar.gz # распаковать с выводом списка файлов"; \ echo " tar -czvf archive.tar.gz /home/user --exclude=\"*.tmp\" # упаковать, исключив *.tmp"'Можно в виде скрипта оформить, тут без разницы. Смысл в том, что этот набор будет весьма ограниченным и вряд ли перевалит за 10. Ну 20.
Касаемо размера, это мой загон, но как будто неправильно использовать ГБ там, где можно обойтись кБ. С другой стороны - всё лучше, чем в интернет лесть с тоннами рекламы.

Zulu0
19.02.2026 04:15а не проще ли было сделать что-то типа описания типовых случаев (по типу FAQ)
Я себе поднял dokuwiki на компе, и там все храню. По разделам. Один раз нашел, скопировал, добавил раздел. Оч удобно. Рекомендую

wsf
19.02.2026 04:15Раз уж имеется статистика, было бы интересно посмотреть на сколько в среднем стали длиннее или короче команды от изначально ввода на естественном языке до конечного результата на баше.

ScriptShaper Автор
19.02.2026 04:15Точную статистику не вел, но по ощущениям: в символах выходит примерно так же. А вот «когнитивная нагрузка» падает в разы, сформулировать задачу на русском на порядок быстрее, чем вспоминать ключи в мане.

wsf
19.02.2026 04:15Если честно, плохо представляю какую команду можно вбить в поиск чтобы получилось короче чем chmod, df или tar перечисленные в статье. Деды уже все что можно посокращали чтобы меньше кнопок нажимать.

kamaz1
19.02.2026 04:15я кстати попробовал в chatgpt просто повбивать типа
find dirs 4g+
extr bz
kill port 8080
вполне себе однострочники которые ИИ успешно конвертировал в то что надо, читая мои мысли. так что можно и очень коротко, особенно если напомнить ему что на выходе всегда должна быть linux команда. больше всего нелюблю частые переключения языка в процессе набора, оно еще и тупит по секунде на винде и на маке (на линуксе кажется побыстрей).
YuriyPashkov
19.02.2026 04:15частые переключения языка в процессе набора, оно еще и тупит по секунде на винде и на маке
Что касается мака - вы возможно переключаете раскладку кнопкой с глобусом слева внизу на клавиатуре, и там при переключении показывается источник ввода всегда, из-за этого не сразу происходит смена раскладки. Повесьте на капслок переключение, или на другую какую комбинацию удобную (ну или дефолтный ctrl+space, не удерживая ctrl, чтобы также не показывать источники ввода) - переключение мгновенно будет происходить

kamaz1
19.02.2026 04:15Это я уже нагуглил спасибо, но все равно бывают варианты когда печатаешь, и переключение просто не срабатывает, возможно я жму букву слова одновременно и комбинацией, тут уж ниче не поделать

Dr_Zlo13
19.02.2026 04:15Переключение раскладки капслоком на маке требует после капслока сделать небольшую, но заметную паузу, иначе переключение не произойдёт. При быстро наборе это использовать практически невозможно.

numark
19.02.2026 04:15Да, я переключаю капсом и постоянно это замечаю. Есть какие-нибудь рекомендации на что можно поменять, чтобы быстро переключать одной кнопкой (глобус, ctrl+space не очень удобно).

megahertz
19.02.2026 04:15Я достаточно быстро забываю комманды / опции своих скриптов, если не пользуюсь регулярно. tar тоже всегда гуглю. По причине такой памяти, для меня вещи типа vim мало юзабельны. Мешает, но не критично.

ScriptShaper Автор
19.02.2026 04:15Жму руку. Рад, что я не один такой. В vim, для меня, без шпаргалки до сих пор некомфортно заходить.

Okeu
19.02.2026 04:15Нужно мышечную память нарабатывать. Например отказаться от nano/mcedit
и даже на винде поставить себе vim и только им открывать все текстовики - шпаргалка отпадет достаточно быстро и все станет казаться простым. Другой вопрос, например, лично мне - ЛЕНЬ. Мне лень заниматься самооптимизациями, даже если они отобьют себя с лихвой - мне нужно решить задачу здесь и сейчас. Поэтому на каждую такую таску я трачу лишние секунды на гугл, вместо того, чтоб один раз набить руку и получить выигрыш в будущем)) Но иногда у меня наступает озарение и я начинаю в свободное время занимаясь со своими домашними компами намеренно использовать без гугла те инструменты - в которых вот так "плаваю" - помогает. Но лень))

Daiichi
19.02.2026 04:15В vim, для меня, без шпаргалки до сих пор некомфортно заходить.
behave mswin "Luke!

select26
19.02.2026 04:15Для этого добавляю в тело скрипта комментарии и ключ -h.
Иначе - лапша уже через год.

megahertz
19.02.2026 04:15Это база. Стараюсь делать хелп даже для 10 строчного скрпита, если он не одноразовый

Okeu
19.02.2026 04:15если скрипты на питоне, то там есть несколько либ, которые помогают в составлении справки в т.ч. описание опций и аргументов, разной степени сложности

code07734
19.02.2026 04:15Знакомо. Попробуйте helix. Быстрый, и всегда хоткеи на виду. Мощный редактор

borey
19.02.2026 04:15Вот эта штука решает такие и не только задачи. https://github.com/sigoden/aichat/wiki/Role-Guide#built-in-roles. Тут делал обзор юзкейсов https://habr.com/ru/articles/938418/

ScriptShaper Автор
19.02.2026 04:15О, спасибо за наводку, не видел. Моя поделка — это скорее DIY-велосипед на коленке. Изучу на досуге ваш обзор!

Olgeir
19.02.2026 04:15В итоге получается, что всё равно нужно гуглить, чтобы проверить полученный вариант. Это не говоря о том, что лезть куда-то с запросом с прод сервера, ну такое себе.
При наличии статистики запросов проще было написать простые узконаправленные баш скрипты. Больше безопасности и контроля.

wsf
19.02.2026 04:15Да тут половина команд вообще как будто по старинке алиасами в .bashrc закрывается. Другой вопрос что за опытный девопс такой у которого за 10 лет такой фаил не появился.

gotch
19.02.2026 04:15eXtract gZip File действительно сложно запомнить. Но если хорошо потренироваться, то можно запомнить и Create gZip File
Но если и это сверхзадача, то откройте для себя вместо гугла cheat.sh/tar

select26
19.02.2026 04:15действительно сложно запомнить
За десять то лет? Я даже не вспоминаю это в голове - пальцы сами помнят.
Это не проблема запоминания, по моему.

Sagittarius67
19.02.2026 04:15Согласен, это какое-то заболевание. У меня все эти ключи спустя 20 лет в голове после трёх лет ежедневной солярки, хотя nix пользуюсь с тех пор не каждый день.

albatross
19.02.2026 04:15Кстати да, на мой взгляд проблема здесь тоже не в проблеме запоминания, а в непонимании почему эти ключи так назваются а не иначе. Мне, например, было достаточно много лет назад один раз прочитать документацию и понять что "X/C" - это от eXtract/Create, "Z" - от gZip, "F" - от File (и это название ключа для имени файла уже практически стандарт) чтобы никогда не иметь проблем с "вспоминанием". Ассоциации и понимание в абсолютном большинстве случаев более эффективный инструмент памяти чем тупая зубрежка.

drWhy
19.02.2026 04:15Вероятно люди, начинавшие писать полезный инструмент для себя не задумывались над обобществлением ассоциаций? А после было поздно что-то менять.. А инструмент разрастался.
Апогей апофеоза - несколько уровней вложенности мана, различающихся по объёму на порядок, как например у FFMpeg или VLC Player, включающих массу библиотек, кодеков, и прочая, когда можно потратить массу усилий сперва на поиск нужных опций, затем на попытки разобраться в правильном синтаксисе, порядке опций и возможных несовместимостях.. Тут впору отдельный конструктор писать.
radioxoma
19.02.2026 04:15Подбор ключей к
ffmpeg,yt-dlpсродни поэзии. Или проекту выходного дня.Скачай в x264, не более 1080p, субтитры извлеки, субтитры автогенерируемые всё равно извлеки, старайся mp4, но mkv тоже пойдёт... Но если не можешь, то делай как можешь...
Скачай пестню с YouTube, да через прокси, да в opus, да cover вставь, да id3 заполни...
Склей файло с видеорегистратора, да через USB, да пережми, да в два прохода, чтобы влезло на DVD.
Из всех серий сериала все субтиты извлеки, в SRT рядом в папку положи.

edogs
19.02.2026 04:15проблема здесь тоже не в проблеме запоминания, а в непонимании почему эти ключи так назваются а не иначе
Проблема скорее в зоопарке похожих стандартов.
eXtract/Create ? окей. Для tar. А потом Вы узнаете о zip в котором ключа не надо, зато обязательно указать рекурсию для папки. А потом учите 7z в котором внезапно для архивации надо (A)dd.
Список файлов? tar -t, unzip -l, 7z l. Потому что (T)able, (L)ist и тире не везде надо.
А потом к этому добавляются еще утилиты типа df, rar, iptables, nftables в которых для похожих операций (список, удаление, добавление) еще дополнительный зоопарк.И вот в случае такой похожести - ассоциации только портят, т.к. запутывают. Create или Add? Попробуй тут проассоциируй.
Мы по этой же причине никак не можем адекватно 1С использовать, потому что в английском однозначно "for" и все, оно запомнено как цикл без контекста и ассоциаций (хотя мы знаем конечно что это "для"), а вот в русском из-за ассоциации с циклом даже в такой простой ситуации пытаемся натужно вспомнить "цикл"? "для"? "перебор"? Потому что блин ассоциации.

xenon
19.02.2026 04:15Я помню ключи tar потому что довольно часто пользуюсь (и начал с древнейших времен). Но я вовлечен в десяток наших проектов, по каждому куча задач, и когда мне задают вопрос о проекте, на котором я работал 3 года назад - мне трудно что-то вспомнить, приходится ковыряться, разбираться.
Легко помнить одну вещь, можно помнить, условно, N вещей, но когда кладешь на эту полочку конечного размера N+1'ую - то что-то с нее слетает.

NN1
19.02.2026 04:15Есть и альтернативная мнемоника для лёгкого запоминания для неанглоязычных:
eXtract Ze File
Create Ze File

DarthVictor
19.02.2026 04:15На всякий случай напомню, что восклицательный знак в большинстве оболочек (zsh, bash и т.д.) запускает поиск по истории введенных вами комманд.

saga111a
19.02.2026 04:15еще можно ctrl+R далее ввод части команды. Если еще раз нажать ctrl+r то переключится на следующее совпадение. Причем стрелки вверх/вниз позволяют искать по соседним командам. Я иногда помню с каким файлом работало, но не помню команды и наоборот

select26
19.02.2026 04:15Десять лет в девопсе. Десять. И я гуглю tar -xzf. Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт.
Пожалуйста , отнеситесь серьёзно к моему комментарию!
Обратитесь к врачу! Нехороший симптом: Не то, что вы не знаете синтаксис tar, а то, что вы не можете запомнить команду, котоую регулярно на протяжении 10 лет используете.
Я cам devops.

AllFiction
19.02.2026 04:15это нормально если ты работаешь с много чем кроме tar
каждый лепит кто во что горазд и проще потратить 10 сек и узнать валидную команду чем сидеть вспоминать или разбиратся, а почему не сработало как ожидалось. Другое дело что есть -h
Вообще история команд это лучшее что придумали для консолей, но если много всего разного и повторяющегося, то проще себе в файлик выписать и копипастить из него
никогда не понимал этой избыточной любви к консоли, когда все пытаются через нее тянуть даже то что вообще неудобно (те же дифы)

HardlinePeak936
19.02.2026 04:15На листочек записать и приклеить на стенку рядом с рабочим местом. Или даже на крышку ноутбука/поверхность стола ;)

iBljad
19.02.2026 04:15Если перестану читать то, что он мне выдаёт, перед нажатием «y» — рано или поздно словлю rm -rf или что-нибудь в этом духе.
То есть по сравнению с файлом на 168 строк (+ещё столько же комментариев для удобства поиска) решение автора обладает двумя преимуществами:
нужна видеокарта (своя или за деньги)
результат непредсказуем
Не переживай, работы много, зато платим мало! ©

mapcuk
19.02.2026 04:15Я тоже не помню синтаксиса команды tar, find, xargs, ps и т. д., и я постоянно работаю в консоли, а ещё не помню каких-то конструкций языков программирования за меня это IDE добавляет. Это нормально не помнить, и периодически посматривать в шпаргалку.

tkutru
19.02.2026 04:15Раз автор всё логирует, то можно написать и "тренажёр мышечной памяти". Смотреть, что чаще всего спрашивал и делать llm кой заметки или тест на тему. Можно найти и не очевидные "общие узкие места", но кажется моделька должна быть помощнее чем qwen2.5:7b.

unreal_undead2
19.02.2026 04:15Просто tar — это такой синтаксис, который у меня физически отказывается залезать в долговременную память.
Уж xzf за десятилетия пальцы запоминают ) Вот к новомодным bzip2/xz так и не привык.

ri1wing
19.02.2026 04:15Начало статьи:
И я гуглю
tar -xzf. Не раз в год — раз в неделю. Ну, может раз в десять дней, если повезёт. Открываю хром, набираю «tar extract gz linux», пролистываю три рекламы, нахожу ответ на SO, копирую, вставляю, закрываю вкладку. Через неделю — по новой.<...> Просто tar — это такой синтаксис, который у меня физически отказывается залезать в долговременную память.
Конец статьи:
Пальцы встали.
-xzf?-xfz? Дефис или без? Раньше я не задумывался, просто набирал — мышечная память. А тут она пропала.Откуда взялась мышечная память на tar, если вы его каждый раз c SO копировали?

ScriptShaper Автор
19.02.2026 04:15Мышечная память на Ctrl+C Ctrl+V. А если серьезно, то я имел в виду ту стадию, когда пальцы начинают писать команду, но на середине ты зависаешь.

lampslave
19.02.2026 04:15Достаточно заставить себя не скопировать, а перенабрать команду, так намного лучше запоминается, особенно, если делаешь это постоянно, а не раз в год.

xi-tauw
19.02.2026 04:15Видимо, чтобы сэкономить 100500 часов разрабам и девопсам достаточно стикер с двумя строчками:
memcpy(dest, src, size);
tar -xzf archive.tar.gz

Dmitry_Shumkov
19.02.2026 04:15Хотел написать саркастичный комментарий в духе - 10 лет в девопсе, а не знает про ctrl-r. Но я сам об этом поиске узнал случайно от коллеги программиста, когда уже из администрирования ушел. На минутку уже 20 лет стажа в ИТ индустрии было. Если что - ключевое слово для гугления - bck-i-search

lampslave
19.02.2026 04:15ctrl+r не всегда подходит, особенно если одновременно открыто много терминалов. Выручает grep ~/.bash_history*

bbc_69
19.02.2026 04:15Там ещё
Ctrl+Sдолжен работать для поиска в другом (прямом) направлении, но на эту клавину забита остановка ввода. Сам я так и не удосужился его выключить. Обидно бывает, когда, то что ты ищешь перепрыгиваешь из-за лишнего нажатия.Может и стоит вырутить, не знаю даже.

Bobos
19.02.2026 04:15«Инженер — это человек, который не обязан знать всё, но обязан точно знать, где и как это всё найти».
25 лет коммерческой разработки и каждый раз гуглю ожидаемый результат array.sort — когда вернуть 1, а когда -1. Никак не могу запомнить

CaptainFlint
19.02.2026 04:15Там, кстати, довольно элементарно. Всё идёт из операции сравнения, которая по сути вычитание. Самый элементарный сравниватель — это буквально "a-b" (в некоторых языках/библиотеках проверяется только знак возвращаемого значения и не требуется обеспечивать строго -1/0/1).

kukovik
19.02.2026 04:15Наверное вы на себя наговариваете. Либо вам просто лень запомнить несколько букв. Таром можно создать (c), развернуть (x) или проверить (t) tar-архив. Можно наблюдать (v) за процессом. Можно сжать bzip2 (j) или gzip (z). При развертывании или проверке нет необходимости указывать способ сжатия -- оно само. Можно указать имя файла (f), иначе оно в лицо полетит. И эта буква должна быть последней, поскольку за ней как раз и надо писать имя (которое может быть -, если вы таки хотите в лицо, но решили указать это явно).
Авторы даже позаботились о тех, кто сомневается, писать с дефисом или без -- можно и так и так (не без нюансов, но если не выходить за перечисленную выше выдержку из латинского алфавита, то нюансы не важны).

domix32
19.02.2026 04:15мнемоника для тара довольно простая - нужно просто быть немцем и читать это как
"eXtract Ze File" и "Compress Ze File". А вообще проще поставить в оболчку подсказку команд или какой-нибудь atuin, чтобы можно было в истории подсмотреть как было в прошлый раз. Или хотя бы tldr. На порядок проще и энергоэффективнее, чем теребить кланкеров.

drWhy
19.02.2026 04:15Спасибо, было интересно прочесть, коллега. Как раз недавно перечитывал
Айзек Азимов - Профессия.С одной стороны ожидаемо в нашем насыщенном информацией мире просить оператора "Загрузить программу управления вертолётом". С другой - как же предки, давшие имена физическим величинам, как Мария Склодовская-Кюри стала матерью радиохимии без поддержки нейросетей?

tba
19.02.2026 04:15Для меня проблема решилась через
Ctrl+Rhistory | grep <token>
.bash_aliases
.bash_functions -- можете, например, написать функцию "архив()" если хотите непременно на русском
curl cheat.sh/<команда> для новых или редко используемых команд
AcckiyGerman
19.02.2026 04:15Аналогично. Когда сам написал
alias untar="tar -xvf"илиspace="du -hs * | sort -hr | head"потом эти команды не забываются. Ну и Ctrl+R для всего что еще не в алиасах.p.s. a еще есть
unzip

Maxor1k
19.02.2026 04:15я сам люблю нейронки, но использовать их для такой фигни? лол?
почему просто автоматически не парсить скриптом введенную фразу "распаковать FILENAME" и заменять слово "распаковать " в команду? Чисто словарь иметь для парсинга фраз

RranAmaru
19.02.2026 04:15Отключил intellsense, после того как коллега спросил как называется ф-я делающая то-то, а я смог вспомнить только первые 3 буквы.

Astrowalk
19.02.2026 04:15Часто вспоминаю коллегу по работе (разработка на C++), который принципиально пользовался редактором Emacs с дефолтной конфигурацией и без подсветки синтаксиса. Может быть, он был не так уж чудаковат, как казалось...

ProgerMan
19.02.2026 04:15У меня на этот случай в корне папки с проектами лежат текстовые файлы с говорящими названиями.
Dotnet.txtдля команд, связанные сdotnetи проектами на C#.Git.txtдля редко используемых командgit, а такжеAWS,Docker,Goи т.д.Практически никакого больше "Гугла", с моим описанием, что и для чего использовать. А также нужный порядок для серии команд. Так что трудно забыть и невозможно потерять.

BeLord
19.02.2026 04:15Вообще вредная привычка все гуглить, что будете делать в закрытом контуре, где инета нет? Как по мне проще, если что-то не запоминается сделать себе склеротичку. Не так много вещей, которые постоянно используешь. И еще мозг штука ленивая, если он знает кратчайший путь, то им пользоваться и будет, на выходе память улетит в ноль, а способность думать самостоятельно сильно упадет. Восстанавливать навыки будет крайне сложно.

randomsimplenumber
19.02.2026 04:15что будете делать в закрытом контуре, где инета нет?
Не попадать туда.

Daiichi
19.02.2026 04:15chmod 755vs644(Печально смотрит)
Ну есть же символические обозначания прав, вот эти все u(ser)g(roup)o(ther)a(ll)=r(ead)w(rite)(e)x(ecute),… ? Зачем страдать и мучиться, запоминая восьмиричные маски?
chmod u=rwx,og=rx (user: read+write+execute, others,group: read+execute) вместо chmod 755
chmod u=rw,og=r (user: read+write, others,group: read) вместо chmod 644

AllFiction
19.02.2026 04:15Странно, мне было проще запомнить в цифрах группы чем что могут значить все эти сокращения. Плюс в коде ты всегда указываешь цифрами опять-таки если создавать файл.

Daiichi
19.02.2026 04:15Странно, мне было проще запомнить в цифрах группы чем что могут значить все эти сокращения.
Нуу, лично мне проще запоминать слова, а не цифры, и, как показывает само наличие символических обозначений масок прав, так проще не только мне. А потому как таких людей подавляющее большинство, для облегчение сопровождения ими своего кода, желательно использовать именно символические обозначения. Считаю, что незачем злить цифрами интеллектуальное большинство ^_^
Плюс в коде ты всегда указываешь цифрами опять-таки если создавать файл.
Почему цифрами? Зачем цифрами? На каждый бит маски прав есть соответствующий #define.
man 2 chmodсоврать не даст, да: S_IRUSR, S_IWUSR, S_IXUSR и так далее для GRP и OTH. Полагаю, в других языках также наверняка должны быть соответствующие константы.
CaptainFlint
19.02.2026 04:15IMHO, эти константы ещё сложнее запомнить. USR или USER? или просто U? G/GRP/GROUP, O/OTH/OTHER? read-user или user-read? И что за I в начале, и почему префикс S_?
И даже в команде chmod с простыми однобуквенными обозначениями есть свои сюрпризы. Помнится, в каких-то системах буквенные rwx по умолчанию означали "установить указанные права", а в других — "добавить права к имеющимся". А число — что указал, ровно то и будет.

Daiichi
19.02.2026 04:15IMHO, эти константы ещё сложнее запомнить. USR или USER? или просто U? G/GRP/GROUP, O/OTH/OTHER? read-user или user-read? И что за I в начале, и почему префикс S_?
Автокомплит в помощь! Не знаю, как в исхолниках на С, а в исходниках на перле автокомплит vim'а увеиенно находил все имена функций и констант из подключаемых модулей.
Помнится, в каких-то системах буквенные rwx по умолчанию означали "установить указанные права", а в других — "добавить права к имеющимся". А число — что указал, ровно то и будет.
Это во всех системах так, если вместо знака = между ugoa и rwx поставить знак +. И это совершенно стандартное документированное поведение chmod.

CaptainFlint
19.02.2026 04:15Автокомплит в помощь!
И как автокомплитить, если даже не помнишь, что константа начинается именно с S_? Да и констант таких как бы не так уж мало.
$ grep -E '\bS_' -r /usr/include/ | wc -l 222Ну, ОК, 202, если исключить упоминания в комментариях. И 148 из них начинаются с S_I. То есть чтобы получить внятную подсказку автодополнения, нужно ввести бо́льшую часть самого имени, а для этого надо его помнить. Разве что система дополнения жутко умная и подставляет не все константы, а только соответствующие контексту в вызове функции. Но опять же, а если я в переменную засовываю значение, чтобы потом применить? Контекста уже не будет.
Это во всех системах так, если вместо знака = между ugoa и rwx поставить знак +. И это совершенно стандартное документированное поведение chmod.
Я про запуск без указания оператора. Кроме того, если не указывать, к кому применять права (типа
chmod +rwx), то где-то это будет применено к юзеру, а где-то — ко всем. В общем, не супер-важная проблема, можно указывать и явно. Но лично мне проще вписать 0755 и не дёргаться. Буквенные использую, только когда права нужно именно частично модифицировать, а не установить полный набор.
Daiichi
19.02.2026 04:15И как автокомплитить, если даже не помнишь, что константа начинается именно с S_?
А чё это, только с S_ , а не с S_I? ;) А если ещё помнить, что за S_I в нужной нам константе должны идти либо R, либо W, либо X, то диапазон поиска совершенно драматически сужается до USR, GRP и OTH. Там, правда, затесались ещё WXU, WXG, и WXO, но ничего страшного, это просто RWX для пользователя, группы и всех остальных, соответственно:
grep -hE '\bS_I' -r /usr/include \ | sed -nEe '/^\s*#define\s+(S_I[RWX][^[:space:]]+)\>.*$/ s!!\1!p' \ | sort -u

MountainGoat
19.02.2026 04:15Через цифры не выразить операцию "всем файлам убрать execute, всем папкам проставить" и некоторые подобные, придётся городить через поиск.

RTFM13
19.02.2026 04:15Зачем страдать и мучиться, запоминая восьмиричные маски?
в моём случае это было 25 лет назад и я помню их гораздо лучше чем таблицу умножения.
а вот эти буковки могут значить что угодно (хотя их тоже помню но не использую)

Daiichi
19.02.2026 04:15а вот эти буковки могут значить что угодно
Как это, что угодно? Что в мане написано, то они и значат.
(хотя их тоже помню но не использую)
Ну успехов тогда писать скрипт вычисления разрешений каждого файла для массового отзыва разрешения записи или исполнения огромному количеству файлов в какой-нибудь директории, да чтобы он при этом не затронул остальные биты разрешений.

RTFM13
19.02.2026 04:15В программировании для установки/сброса бит есть & |
тоже удобнее буковок.

Daiichi
19.02.2026 04:15В программировании для установки/сброса бит есть & |
Есть. Но если пользоваться символическими обозначениями прав при вызове chmod, то программу писать попросту не нужно,
chmod og-wx .вычислит результирующие разрешения самостоятельно, убрав права группы и всех остальных и не затронув разрешения пользователя.тоже удобнее буковок.
Но быстрее пользоваться уже существующими программами, чем каждый раз писать их заново, ещё и рискуя ошибиться при этом.

Daiichi
19.02.2026 04:15Там дефис или нет?
xzfилиxfz? Илиzxf? Вроде порядок не важен? Или важен?..Ага, угу, а для системных бэкапов надо ещё не забыть
-С / --one-file-system --acls --selinux --xattrs --xattrs-include=\*и опционально--wildcards. И не забыть, что-С /надо указать после имени архива но до имён извлекаемых/добавляемых файлов, иначе случатся абсурд и коррупция, потому что tar всосёт или, наоборот, загадит текущую директорию.
Astrowalk
19.02.2026 04:15Вот была бы такая команда, которая создавала бы короткое имя для вызова утилиты с набором опций... Да нет, фантастика какая-то!

Daiichi
19.02.2026 04:15Вот была бы такая команда, которая создавала бы короткое имя для вызова утилиты с набором опций... Да нет, фантастика какая-то!
Команда есть, называется
alias, но беда в том, что созданные с её помощью короткие имена для команд остаются в настроенных системах, а что делать, если попал в ещё не настроенную? Так что надо тренировать моторную память, надо.
Andrusha
19.02.2026 04:15Если речь именно про ещё не настроенную систему, а не про мысленные эксперименты с защищёнными контурами и безопасниками, которым больше заняться нечем, то очевидно скопировать туда свой .bash_aliases с настроенной.

JBFW
19.02.2026 04:15На самом деле мало смешного.
Многие люди реально не понимают, что для задач типа "системных бекапов" не надо ПОМНИТЬ и НЕ ЗАБЫВАТЬ 100500 ключей.Достаточно их написать один раз в скрипт сделать_хорошо.

Daiichi
19.02.2026 04:15Достаточно их написать один раз в скрипт сделать_хорошо.
… чтобы потом в каком-нибудь ограниченном контуре попасть на систему, где твоего скрипта отродясь не было, и поставить его нельзя, потому что за спиной стоит безопасник и нежно и страстно дышит в ухо с невысказанным вопросом: «А чё это ты тут, падла ты кулхацкерская, какой-то скрипт пишешь, ты бэкап делай!»

Dr_Faksov
19.02.2026 04:15Вы ещё забыли добавит, что в этой конторе на всех разъёмах стоят заглушки. С пластилиновыми печатями. На ниточках. И даже позвонить вовне, в свой офис, можно только через коммутатор и телефонистку.

Daiichi
19.02.2026 04:15И даже позвонить вовне, в свой офис, можно только через коммутатор и телефонистку.
… а смартфон отобрали на входе и теперь уже никак не получится даже одним глазком подсмотреть в исходник своего скрипта сделать_хорошо, который стопицот лет уже как был заботливо записан в отдельный каталог его диска среди прочего барахла вроде мемчиков, котиков, снимков супермегаважных договоров и этикеток разного коньтуперного барахла с партнамберами и серийными номерами и инсталляций из него различной степени упоротости :)

randomsimplenumber
19.02.2026 04:15А вас поймали на улице, привезли с мешком на голове и сказали программировай? ;)
Можно и подготовиться заранее, шпаргалку распечатать..

Daiichi
19.02.2026 04:15А вас поймали на улице, привезли с мешком на голове и сказали программировай? ;)
Какое программировай? Бэкапай же!
Можно и подготовиться заранее, шпаргалку распечатать..
Если приглашённый специалист, чтобы сделать бэкап, немедленно полез за шпаргалкой — это уже очень серьёзный удар по его имиджу в глазах обступившей его сплочённой группы товарищей :)
Ладно бы
manилиinfoполез читать, а то сразу за шпаргалкой. Не, ну это же не серьёзно!

ZlodeiBaal
19.02.2026 04:15Для мелких команд всё так же гуглю.
А если что-то серьёзное делаю - то почти на всех машинах стоит codex или его аналоги. Которым можно сказать "настрой то-то и то то" и они вполне неплохо справляются.
Но в целом да, идея хороша. Единственное, так как часто работаю с мелкими железками - всё равно надо будет через openrouter или аналог стримить.

Hexlight
19.02.2026 04:15Еще лет 20 пройдет, и линуксоиды изобретут человеческий GUI с кнопками на экране, вместо прикручивания LLM к консоли

Dr_Faksov
19.02.2026 04:15Есть такое понятие - мазохист. И фраза "понты дороже денег". Просто вспомнилось почему-то.

Hexlight
19.02.2026 04:15Да нет, мне кажется это массовый психоз. Консольный ввод был нужен 40 лет назад, когда иных вариантов не было.
Когда люди в 2026 году ,сидя перед 4K мониторами и очевидно имея GPU, стирают глаза о бесконечные простыни текста и думают, что так и должно быть....это клиника.

garwall
19.02.2026 04:15что-то удобнее делать в gui, что-то - через cli. нет одного интерфейса, чтобы править всеми.

JBFW
19.02.2026 04:15вот сейчас у меня примерно 8 окон к разным системам в разных местах. В некоторых 128 гигов RAM, в некоторых - 128 мегабайт.
Устанавливать везде и гонять графику с кнопками туда-сюда ради того чтобы распаковать архив? Серьезно?А потом, если надо автоматизировать - писать копроприложение, которое будет двигать мышь по экрану и пытаться поймать кнопки, вместо того чтобы просто сохранить нужные команды в текстовый файлик?
Да, такой он, windows-way. Ну его нафиг.

Ravius
19.02.2026 04:15А потом когда число "параметров/конопок" вырастает...становится больше двух.
Все возвращаются к набору команд, которые можно скопипастить.

max9
19.02.2026 04:15лет 20 примерно как есть
Скрытый текст


Astrowalk
19.02.2026 04:15Вот, кстати, наглядный пример, почему многим людям удобнее использовать CLI вместо GUI. Тут на нас вываливается куча мусора, в которой надо повозиться мышью.

mayorovp
19.02.2026 04:15Только если нет необходимости гуглить команды или читать маны. Иначе мусора в CLI вываливается ещё больше чем в этом меню на скриншоте.

milkground
19.02.2026 04:15Вам шашечки или ехать? Пока автор гуглит, у @max9 уже создастся архив и он сможет быстрее вернуться к чтению Хабра.

wsf
19.02.2026 04:15В это может быть сложно поверить, но линуксойды часто обделены мониторами, и ресурсами на рисование всяких гуев.

bbc_69
19.02.2026 04:15Если ты точно знаешь, что тебе надо, то куда быстрее это написать, чем пытаться найти то, что тебе нужно. Особенно если создатели дистрибутива
любят всё менять в каждой версиистремятся предоставить актуальный дизайн. Если же ты очень примерно представляешь, что тебе надо, то да - гуй незаменим.Ну и да, бывают ситуации, когда гуя просто нет и альтернатив тоже. Ну знаешь, там сервер какой-нибудь настроить.

MountainGoat
19.02.2026 04:15Есть в мире один пример, когда у системы всё управление оформлено в своего рода графический и наглядный интерфейс. Это кабина самолёта. Все видели, надеюсь. А знаете что самолётостроители делают с ней сегодня? Понемногу переходят к командной строке для всего, что не может потребоваться вот прям в одну секунду.

LF69ssop
19.02.2026 04:15Это не синтаксис tar плохой. Это у автора профдеформация, когда вместо чтения документации сразу спрашивают гугль или того хуже ИИ.
Но справедливости ради, это касается ныне практически большинства.
mayorovp
19.02.2026 04:15Так документацию откуда брать? Я её обычно гуглю...

ajijiadduh
19.02.2026 04:15смотря для чего, а так man

MountainGoat
19.02.2026 04:15man это не инструкция, это справочник. Это антиобразец удобства. Большинство манов, если не все, отсортированы тупо по алфавиту. То есть у программы могут быть опции, которые нужны одному человеку во всём мире (он их и написал), но каждый новый изучающий программу будет их читать прежде чем сможет первый раз воспользоваться программой.
Иногда в TealDeer более полезная информация. Хотя часто она, наоборот, слишком примитивна.
У Rust та же проблема: у популярных пакетов справочник есть, документации нету. Я как-то сутки потратил, пытаясь понять, как из PNG файла прочитать нестандартную метадату, хотя либа для этого находится слёту. А вот как ей пользоваться, хрен поймёшь, несмотря на обилие текста в doc.rs.

JBFW
19.02.2026 04:15В man есть волшебная кнопка /, которую можно нажать для поиска нужной опции, типа /-f
Это примерно как f1, "типовая вещь которую все знают"
Для особых случаев можно вообще вывести в файл man program > zzz, после чего открыть zzz в своем любимом редакторе и читать хоть с конца к началу.

MountainGoat
19.02.2026 04:15Да, но
/wtf this app doesне работает без ИИ, а бывает нужен. Угадать, как называется нужная опция, тоже не всегда просто.

CaptainFlint
19.02.2026 04:15Вот только этот поиск найдёт не только -f, но и всякие "--first", "--delete-file", "well-formed" и так далее. Надо изгаляться с пробелами, но лишний пробел — и вот мы уже не можем найти нужную опцию, потому что там не "-f", а "-f, --force".
Особенно доставляют инструкции вида "а вот это описано в разделе Pattern Matching", но чтобы найти этот раздел, надо сначала прокликать Next'ом ещё сто двадцать упоминаний этого раздела.
В общем, man — штука полезная, тут спорить сложно, но вот юзабилити у неё не ахти.

mayorovp
19.02.2026 04:15Что-то мне даже интересно стало, а если написать man man - там про кнопку / расскажут, или это надо man less читать?

rrrrex
19.02.2026 04:15Тут бы полезнее оказался консольный псевдо gui с чекбоксами, полями ввода и прочим. Поставил галочку извлечь, указал место и т.д., а на выходе уже стандартная команда для выполнения

JBFW
19.02.2026 04:15Это будет тупо дольше, чем набрать текстом команду, или иными словами - заколебёт.
Нечто среднее - использование хотя бы того же Миднайта: наступить на архив - он откроется, дальше просто копирование файлов между двумя панелями.
+100 к наглядности, -10 к быстроте выполнения.

MomoTMR
19.02.2026 04:15Все комменты не прочитал. Статья интересная, я бы докрутил кэш запросов, что бы каждый раз апи не дергать, а хранить небольшую базу с готовыми ответами.

1pyxa1
19.02.2026 04:15если нужно писать запрос на русском и команда автоматически не выполняется, чем не подходит браузер с любой LLM через веб-клиент на локальной машине? все тоже самое с нулем трудозатрат. нет рекламы, с сервера не нужно ходить во внешний интернет, если продолжать один и тот же диалог, тогда LLM впоследствии вам и cheat sheet соберет удобный на один А4 из ваших же запросов. ну да, команду нужно скопипастить.
автоматизация ради автоматизации потому что могу?

Ravius
19.02.2026 04:15У меня в браузере 100 вкладок. И 8 терминалов открыто.
Я пианист на ALT+TAB.
Вот и вся причина.

UserNoUser
19.02.2026 04:15Мда))) конечно автору было проще загуглить, чем в терминале набрать man tar

192IP
19.02.2026 04:15Интересно, что же произойдёт если попадёт доступ в интернет? Или внезапно доступ к модели будет не доступен?)

Magn
19.02.2026 04:15Таких проектов довольно много.
В качестве примера - https://github.com/sigoden/aichat-> % ai -e show current directory size du -sh . > execute | revise | describe | copy | quit: e 1.6G .

erley
19.02.2026 04:15Следующий этап - не прикасаться к клавиатуре, а управлять всем этим голосом :-)
Но если серьёзно, то у вас или задачи слишком простые / некритичные или вы не понимаете досконально как всё работает. Извините, не хочу обидеть, но базовые команды чтобы управлять системой нужно знать очень хорошо и понимать что там происходит внутри.

ildarz
19.02.2026 04:15Есть очень большая разница между "понимать, как все работает" и "запоминать кучу команд с неочевидными названиями и синтаксисом". Знание наизусть ключей tar никак не приближает к пониманию чего бы то ни было.

rpc1
19.02.2026 04:15Я использую ctrl + r в bash, поиск команды занимает секунды

Stanislavvv
19.02.2026 04:15Ровно до тех пор, пока не понадобится редкоиспользуемая команда, которая уже вымылась из истории. Или вообще никогда там не была, так как делается один раз на свежем сервере.
Другой вопрос, что непонятно, накой делать что-то повторяющееся руками. Ситуация повторяется каждые N дней — что мешает автоматизировать? Есть же тот же ансибл, в котором есть модуль unarchive. Вобщем, по-моему, вместо того, чтобы закрутить шуруп хотя бы отвёрткой за неимением шуруповёрта, его тут вбивают молотком.

JBFW
19.02.2026 04:15Мелочь, но мне лично удобнее формулировать задачу на родном языке. Не знаю почему — скорее всего привычка, я на работе всё по-русски обсуждаю.
Это не мелочь.
Это причина того, что вместо tar eXtract gZipped File вам приходится лезть в гугель за магическими букавками xzf.
И даже не попытаться посмотреть man tar, а ведь там всё написано...

2Miron
19.02.2026 04:15Было бы интересно увидеть что-то подобное, но допустим по командам ЯП, или по возможностям фреймворка.
У меня самого было так, что когда переложил часть задач по коду на нейронку, забыл простое
open('file', '-r')в Python ))

achekalin
19.02.2026 04:15А потом кто-то переименует ai в матерное слово, и получится прямо "ёп как найти самый большой файл"

AndreySitaev
19.02.2026 04:15Автор только что изобрел Warp Terminal (https://www.warp.dev/) на минималках.

achekalin
19.02.2026 04:15Пошел почитать, начал хихикать, закрыл. За "бесплатно" у них ограниченное изучение кодовой базы, и ограниченный доступ к топовым моделям. В общем, выглядят как те девушки, которые хотят так раздеться, чтобы не выглядеть доступными, но все же и не неприступными.
Кроме что терминал - это где много всего творится. То пароль вводится, то ключик в файле лежит - а это всё "в облако, в облако!"

kroggy
19.02.2026 04:15Ctrl+R или history помогает. А так для команд веду для себя заметки в joplin. Пока достаточно.

initum
19.02.2026 04:15а нельзя просто создать файл 'COMMANDS.md' с наиболее востребованными командами? Можно даже в Path поместить специальный скрипт для поиска нужной команды в этом файле, если лень его открывать и искать команду вручную

webhamster
19.02.2026 04:15Да, в Linux традиционно много названий программ и командных опций, которые невозможно запомнить. Всякие "tar -vfx", "gdb", хотя хотелось бы "dbg", "find" с одинарным "-" перед многобуквенной опцией... Такое впечатление, что авторы консольных утилит специально делают такие незапоминающиеся и сложные названия и выбор опций, чтобы максимально затруднить их использование.
Поэтому я 17 лет назад, когда допиливал собственный PIM-менеджер MyTetra, первым же делом сделал себе записульки:
Команды для работы с архивами tar.gz, tar.bz2, tar.xz
... и прочие подобные записи.
И этим действием я закрыл все свои потребности. Но если я оказываюсь за не своим компьютером, на котором нет MyTetra, я ничего не могу сделать: я просто ничего не помню. Так что автор не один такой.
Другое дело, что 50 строк - это не все что нужно. Нужен еще и постоянный доступ в интернет и доступ к LLM, которого может и не быть. А по законам Мерфи именно в самый нужный момент либо интернет отвалится, либо LLM станет недоступной.Если же мы позуем локальную LLM, то тогда это не 50 строк на пистоне, а вся среда исполнения LLM вместе со всеми библиотеками и несколько десятков гигабайт весов.

MountainGoat
19.02.2026 04:15А если немножко подумать, то у tar все опции это стандартные акронимы, а порядок их, кстати, не важен.
gdb это GNU Debugger потому что существует он в паре с GNU C Compiler.
А find уже и забыть можно, он правда очень древний и поэтому чудаковатый.

ajijiadduh
19.02.2026 04:15И я ищу их грепом по ману, что само по себе абсурд.
определённо, ведь есть /
Я его настраиваю на каждом втором сервере.
может пора освоить ansible?

bbc_69
19.02.2026 04:15Как-то именно в ансибле я разочаровался в итоге. helm больше понравился. Правда, он кубер ворочал, может в этом дело. Терраформ вроде тоже ничего.

winorun
19.02.2026 04:15Если вы наберете в Google как распаковать gzip то увидите что сделать это можно командой tar xzf файл, если вы наберете tar - и нажмете таб, то вылезут подсказки и вы узнаете что можно и tar -x -z -f файл, сделать. Возможно вас будет удручать что в 2026 году не догадались сделать автоматическое определение типа архива. Но возможно случится чудо и вы наберете man tar. И увидите там на 20 строке:
tar -x [-f ARCHIVE] [OPTIONS] [MEMBER...]
А на 30 это
tar {--extract|--get} [--file ARCHIVE] [OPTIONS] [MEMBER...]
Для тех кто совсем не может в англиский, что бы распаковать файл достаточно набрать
tar -xf файл

RS6
19.02.2026 04:15О, интересно. У меня похожая проблема с гитом - очень люблю гит, но не очень люблю командную строку. И прям жутко бесит вбивать руками то, что вбивать на самом деле не обязательно, так как информация уже есть у машины - названия файлов, хэши коммитов и так далее. Поэтому пилю по-немногу такую штуку - вызывается по хоткею, вылезает как панель в Windows 10, понимает текущий репозиторий в активном приложении (VS, VS code, Explorer), анализирует текущее состояние (наличие локальных коммитов, сабмодулей, detached head, незапушенные тэги и т.д.) и предлагает релевантные действия. При выборе действия позволяет визуально задать параметры, например выбрать в табличке коммиты для сквоша.
Естественно, всё легко кастомизируемо: можно добавлять новые кондишены и экшены, UI для задания параметров создаётся автоматически.Скрытый текст

пока только POC для проверки юзабилити 
str1ker17
19.02.2026 04:15Зумеры придумали TortoiseGit?

RS6
19.02.2026 04:15Да нет же. Tortoise использовал много лет, но сейчас всё меньше потому что все базовые операции неплохо реализованы в IDE. Смысле в черепахе немного лично для меня. Но как только какая-то нестандартная ситуация случается, в IDE просто ничего нет, приходится запускать консоль и вспоминать/гуглить. Именно для таких edge-cases и хочется удобства.

LarexSetch
19.02.2026 04:15Не могу понять это рофл какой то или искренне автор гордиться оверинжинирингом для простых команд?
Так то можно алиасы написать или собрать набор запросов и смапить их с командами и искать максимально похожее значение от вводимого, и греть атмосферу видяхой не надо.

vvzvlad
19.02.2026 04:15Блин, огонь. Объеденил решение в статье с идеей @davidaxxonи за пару часов сделал себе штуку, которая не только генерирует команды, но еще и обьясняет, как именно она работает. + записывает команду в историю. https://github.com/vvzvlad/ai_bash


Moog_Prodigy
19.02.2026 04:15ЛЛмка писала? там есть ряд мелких косячков. И вообще для полного счастья надо чтобы llm перед выполнением запроса ознакомилась с кратким хелпом того, с чем она будет работать. Например, она собирается использовать graphic magick для изменения размеров изображений в папке. Или тот же aircrack-ng. Пусть сначала делает для себя --help или нечто подобное.
Вот тута result = subprocess.run([CURRENT_SHELL, "/c", cmd], check=False) исправил под винду, а писалось "-c" под линукс. Ну это так, мелкие всякие штуки. Логирование тоже исключительно под линукс, тогда зачем распознавать шелл и систему?

alepron
19.02.2026 04:15Вообще не запоминаю эту дристопердь. Как и номера портов, и прочую ерунду. Всегда есть гугл или жопете. Память - она для вещей приятных и полезных, а не для всякого рабочего мусора.

StriganovSergey
19.02.2026 04:15Спасибо, собрал себе такое же на основе этого кода с некоторыми доработками.
Доработка подгружает в системный промт данные из двух файлов.
1 - автогенерируемый файл с базовыми характеристиками сервера - версия ОС, ядра, подробности о железе.
Он создается при старте сервера ( и иногда пересоздается ).
Такая информация позволяет подбирать более подходящие команды конкретно для этой машины.
2 - файл с описанием желательного поведения в некоторых задачах.
например: для получения метрик температур ( процессор, система, видеокарты) - делать вызов заранее подготовленного скрипта, в котором уже реализована логика - в каком виде нужно их показать.Вообще, всегда найдется некоторое количество уже готовых типовых скриптов для разных задач, можно их все перечислить с описанием когда использовать.

lv333
19.02.2026 04:15А что если... Просто в текстовый файлик записать все эти "откровения"? А потом просто поиском по нему пройтись в поисках нужного??? Да не... Ерунда какая то, а как же ИИ, модели и вот это все стильное, модное, молодежное...
А ещё можно вообще блокнот бумажный использовать...))

bbc_69
19.02.2026 04:15А ещё можно вообще блокнот бумажный использовать...))
А ctrl+C, ctrl+V как делать?

hazard2005
19.02.2026 04:15Автор, а ты когда последний раз проходил собеседование?
А то я тоже не помню, что вчера было, поэтому все конспектирую, решение задач, синтаксис часто используемых команд (тот же tar) - потом поиск выручает. Но на собесе сложно без шпаргалок.

Uglevod
19.02.2026 04:15Все к этому и идёт )
Как внешний референс ллм можно использовать апи hugginface и там 7b модельку.
Сделать сервисом что бы можно было обратится через curl/wget
-
Сделать обвес внутри Кеша запросов. Можно через вектор.
Можно типа своего MCP ( ковырял context7, ну вот векторный поиск он и есть )
Понемногу подсаживать на свой сервис других девопсников )))

vovanmozg
19.02.2026 04:15Цивильный фазан (cvfz) и х**вый фазан (xvfz)

polar_yogi
19.02.2026 04:15create, extract, verbose, filename, permissions, gzip, Change dir - недостаточно очевидно?

alfatek
19.02.2026 04:15Про oh-my-zsh ещё не говорили? Начинаешь набирать команду, потом стрелкой вверх ходишь по истории всего что начиналось с этих символов.
Для bash имеется oh-my-bash

hypermachine
19.02.2026 04:15После слов:
> Десять лет в девопсе. Десять. И я гуглюtar -xzf.
Читать дальше не стал.
A1EF
19.02.2026 04:15Да вот да. Даже не знаю, что меня больше шокировало - этот факт или число "плюсов" к статье..

alexeyKatsuro
19.02.2026 04:15Ощущение что какой-то велосипед.
Есть же готовые AI терминалы Warp, Chaterm, TmuxAI

StriganovSergey
19.02.2026 04:15Спасибо за список. Эту статью стоило написать уже только для того, чтобы найти в комментариях список аналогов :)
Пока буду смотреть как работает этот "велосипед" из статьи.
Но Chaterm заинтересовал, попробую и его.

MaximKiselev
19.02.2026 04:15По мне автор изобрел велосипед который не нужен. Не помнишь команду - зайди в гугл, мануал или спроси chatgpt. Сам грешу таким же правда с ffmpeg и прочими консольными монстрами. Плюс очевидно есть время подумать, не сломает бездумное выполнение команды что-то тем более что агенты иногда ошибаются даже с командами приложений, особенно если в новой версии тулзы вырезали какие то опции или добавили что-то. Такое часто бывает. А без рук, она все равно ниче не напишет.

Lagovi
19.02.2026 04:15Если напрягает атрофия мышечных навыков, просто добавьте быстрый вывод топ истории запросов, так реально частые команды будете перенабирать с подсказки перед глазами, без перехода в браузер.

freemorger
19.02.2026 04:15Это все конечно круто, но только один пишет длинные тире. Еще никогда штирл.. ГПТ не был так близок к провалу. Да и стиль повествования в его стиле

Stanislavvv
19.02.2026 04:15Длинные тире в некоторых случаях набираются несложно — в линуксе достаточно просто настроить клавиатуру и использовать Compose Key. В моём случае это
lv3:ralt_switch,misc:typoв дополнительных настройках клавиатуры и далее через RAlt и "-" получаю длинное тире.А вообще, если статья готовилась в чём-то типа ворда или аналогов, то они минусы таки заменяют на длинные тире и надо отдельно ковыряться, чтобы это не делалось.
Другой вопрос, что сама идея вынести часть мышления на аутсорс заманчива, но вот конкретно это — не мышление, а хреновая память на базовые вещи и обходится не галлюцинациями нейросетки, не запросом в поисковик, а собственноручно написанной шпаргалкой. Причём, желательно, без автодополнения, каждую букву набирать самостоятельно — есть шанс, что хоть что-то запомнится.

WhiteBehemoth
19.02.2026 04:15мне, как нечасто, но периодически работающему в терминале linux, прямо очень оказалось полезным. Ну вот от души спасибо за идею.
Там выше еще ссыль была на реализацию через GO - в конце вместо запроса на вылопление, ответ выводится в терминал с возможностью редактирования. Мне показалось это удобнее, - сделал как там. Ну и вообще скрипт под себя расширил, докинув пару параметров. Удобно, комфортно, быстро. Спасибо еще раз.




hremlin
Боюсь себе представить, что с вами случится, если вы откроете себе Midnight Commander или, не дай бог, Far2l.
ScriptShaper Автор
MC - это база, согласен. Но он хорош для файлов. А мой костыль умеет и однострочники на awk собирать, и кронтабы крутить, и порты убивать. Это попытка сделать универсальный интерфейс к терминалу для тех, кто (как я) устал контекстно переключаться между разными утилитами. Хотя за напоминание про Far2l спасибо. Надо проверить, помнят ли пальцы F5-F6
Anton_lah
Мне кажется вы изобрели упрощённую версию claude. В смысле не замену, а именно новый похожий инструмент для shell.
Последее время я все больше пишу в нем причем на разных языках включая страницы в html и css. И вместо того чтобы бороться и вспоминать синтаксис (или учить новый css) - просто говорю что мне нужно сделать.
Теперь в вашими скрипом у меня будет ещё один инструмент, спасибо. Но если нужно написать какой-то скрип даже на bash - обратно к claude
lil_master
Следующим шагом после изобретения автором упрощенной версии claude будет изобретение GUI, и окажется что вообще не нужно помнить команды, тратить время на запрос к ЛЛМ и набор текста, просто нажал кнопку и всё
RulenBagdasis
Я открыл, а потом закрыл. Когда я 20 лет назад перешёл на линух, мне очень не хватало Windows/Total Commander-а и Far-а, использовал Midnight Commander и что-то ещё, уже и не помню что. Но потом как-то естественным образом перешёл на работу просто в консоли и фаовым менеджером пользоваться перестал. Это оказалось удобнее и быстрее.
Xziut
тоже не понимаю, зачем нужен файловый менеджер. с помощью таба выбор файла в строке происходит не медленней. пакетная обработка и все команды также легче выполнять в самом терминале. разве что надо часто пролистывать полностью незнакомые файловые системы,но не представляю кому это нужно
Arty_Fact
Просто зависит от профиля работы. Условно, если мне нужно грепнуть и я знаю что и где лежит, то конечно мне проще написать команду. А вот писать команды для мува, разархивирования, удаления и копирования мне абсолютно лень, мне проще F5, F6, F8 нажать. Да и сразу через встроенный просмотрщик глянуть файл без дополнительных команд. chmod и chown я больмень помню, но mc нагляднее. Обычно у меня mc запущен и я просто через ctrl+O переключаюсь между консолью и менеджеров в зависимости от задачи.
elestrin
а я иногда удаляю через mc, чтобы про себя пропеть строчку "я нажал F8 и веселый нортон удалял мне всё подряд"
frei480
Могу предлоджить вариант - МС двухпанельный, таким образом, в "левой" вкладке делаем соединение через ssh на удаленный сервер, в "правой" либо локальная ФС, либо так же, удаленный сервер через ssh и копируем файлы.
Vilgelm
Total Commander - Krusader
Far - MC
FSA
Krusader в подмётки не годится Total Commander. Много раз пробовал, но вообще не заходит. Это при том, что я активно пользовался Total Commander на Windows. Ну а сейчас больше пользуюсь Double Commander. Но не так активно, как TC на Windows. Больше времени в MC провожу, даже с тем учётом, что Far никогда не пользовался.
Anton_lah
зовите меня динозавром, но тоже перешел на линукс 20 лет назад. И до сих пор пользуюсь mc (fyi, раньше был deco), и экспериментирую с far2l.
Мне до сих пор удобней в двух консолях с совершенно разными путями, например. Манипуляция файлами, проверка размера подкаталога, запуск дополнительных программ типа гуевого meld для сравнения файлов из разных подкаталогов. Помнить и вбивать пути каждый раз к этим файлам просто задалбливает, а в mc можно сохранить их по ctrl-\.
Ну а пример с архивами - это вообще универсальное средство. Kлючи ко всем архиваторам разные - 7z, .gz, bz2, всякие .deb и тд. Один распаковывается, другой распаковывается и архив удаляется, да елки! А в mc ничего не нужно помнить, просто зашел в него как фолдер, сделал что нужно, и вышел. Вот напишите на память, например, как вытащить из .deb архива один файл, и сколько команд вам на это потребуется?
RulenBagdasis
Только на фряхе с ним дело имел.
Попробуйте ncdu
Последний раз я имел дело с архивами лет 15 назад. Не, иногда я их скачиваю откуда-нибудь, но мне всегда хватает в гуях пкм -> exctract here
Ни разу в жизни этого не делал, попробовал вот так, сработало. Зачем в консоль ради этого идти?
Anton_lah
разговор был про исключительно консоль. Понятно, что в любом UI это делается проще.
RulenBagdasis
Не было никогда разговора исключительно про консоль, зачем себя ограничивать? Я писал, что использовал консольный Midnight Commander, но потом понял, что в самой консоли работать удобнее. Другие инструменты я никогда не отрицал.
IceGerda
В файловом менеджере можно настроить быстрые каталоги и перемещаться по папкам в считанные секунды.. Как в консоли набирать adminidtrator/settings и т.п дремучие папки профайлов - где мне нужный видеофайл, не понимаю. Так же у меня там есть и bat файлы где без всяких питонов можно набирать что типа sysdmcpl и забыть и новых изысках создателей графических интерфейсов. Ясно, что подобное можно и вручную, и на питонах, и через баши и т.д. Ещё через файл-менеджер можно открывать файлы например с помощью своего плеера и прог, который в одной папке с программой. В андроиде тот же тотал самое простое свойство устанавливать apk. Для меня прямой способ борьбы с дизайнерами и развивателями "новых функций" ОС . Комстрока это для серверов, но не для домашнего применения
RulenBagdasis
Алиасы. В те 5 папок кроме хомяка, в которые я хожу регулярно, я хожу алиасами (вы же в курсе, что просто "cd" переходит в хомяк, а "cd -" возвращает вас в папку, в которой вы были до последнего перехода?) А ещё поставьте себе fzf и вызывайте его по Ctrl+r вместо стандартного поиска по истории. Это просто охренительно удобно и быстро и не только для смены каталогов. Во все остальные папки я хожу именно так. Набираете Ctrl+r, settings и вот у вас уже все папки settings перед глазами в которые вы ходили, стрелками можно выбрать или набрать ещё пару символов, чтобы уменьшить количество вариантов.
Полная ерунда, я перешёл на десктопный линух, во многом, ради линуховой консоли и использую её постоянно для повседневных задач.
nbkgroup
В консоли nnn в целом намного удобнее, хотя и не без косяков.
andreylavrov
в процессе)