Как стать автором
Обновить
45.7

Оболочки *

Шелл и компания

Сначала показывать
Порог рейтинга
Уровень сложности

Использование цвета в терминале

Время на прочтение7 мин
Количество просмотров7.3K

Я пишу небольшие скрипты для работы в программах-оболочках «Windows PowerShell» версии 5.1 и «PowerShell» версии 7 в операционной системе «Windows 10». Иногда тянет подсветить текстовый вывод в консоль разными цветами. В этой статье я хочу рассказать о паре грабель, на которые можно при этом наступить.

Читать далее
Всего голосов 12: ↑12 и ↓0+12
Комментарии5

PowerShell: парсер HTML, устаревшие методы

Время на прочтение5 мин
Количество просмотров5.8K

Обзор двух устаревших методов преобразования кода на языке HTML в объект (HTML-парсер) на скриптовом языке PowerShell в операционной системе Windows 10.

Читать далее
Всего голосов 2: ↑2 и ↓0+2
Комментарии5

Нюансы установки сторонних прошивок на Android-смартфоны. Устанавливаем сustom ROM

Время на прочтение9 мин
Количество просмотров19K

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

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

Читать далее
Всего голосов 6: ↑6 и ↓0+6
Комментарии5

Пишем тетрис в bat-файле

Время на прочтение5 мин
Количество просмотров23K

В комментарии к моей предыдущей статье, «Какие задачи не решаются bat-файлами?», предположили, что на bat-файлах не получится написать Doom. Насчет Дума я пока не уверен, а вот тетрис у меня получился.

Играть в тетрис бесплатно
Всего голосов 94: ↑94 и ↓0+94
Комментарии41

Истории

Паттерны верстки. Как объединить верстальщиков и дизайнеров

Время на прочтение11 мин
Количество просмотров11K

Данная статья поможет улучшить взаимодействие между дизайнерами и верстальщиками для минимизации ошибок и повышения продуктивности работы.

Работа богата практическими примерами. Она будет полезна специалистам разного профиля.

Дизайн является основой качественной верстки и помогает успешно продолжить создание веб-приложения.

Читать далее
Всего голосов 10: ↑8 и ↓2+6
Комментарии13

Какие задачи не решаются bat-файлами?

Время на прочтение8 мин
Количество просмотров27K

Бат-файлы ведут свою историю со времен MS-DOS. Новые фичи добавлялись с сохранением обратной совместимости. Из-за этого многое в языке bat-файлов, как мы увидим далее, нелогично и неудобно.

Вместе с тем, в bat-файле можно использовать переменные, условия, циклы и подпрограммы. При помощи некоторых костылей можно передавать данные на вход команд и разбирать их вывод. Проще говоря, можно программировать.

В этой статье мы постараемся дать обзор основных элементов языка командного интерпретатора Windows, с помощью которых можно реализовать любой алгоритм.

Читать далее
Всего голосов 36: ↑34 и ↓2+32
Комментарии53

Как скрестить Коня и Трепетную лань

Время на прочтение2 мин
Количество просмотров3.3K

«Бить (Bash) или не бить», - спрашивал один датский принц. Вот и у меня возник аналогичный вопрос, когда у нас в компании появился сервер сборки Bamboo. Как можно в задании Bamboo, выполняющем скрипт Bash или Cmd, написать команды, одновременно понятные интерпретатору командной строки Windows и оболочки Linux?

У нас в компании в качестве скриптового языка планов Bamboo используется кроссплатформенный язык Python. Но для запуска скриптов в Windows и Linux используется разный код.

Команды, понятные Linux, будут обработаны с ошибкой в Windows и наоборот. Что делать в этой ситуации?

Читать далее
Всего голосов 7: ↑6 и ↓1+5
Комментарии16

HaikuOS или немного практической кибер-поэзии

Время на прочтение13 мин
Количество просмотров4.5K

На Хабре регулярно публикуются отчёты о состоянии и развитии проекта HaikuOS. Я, питая некую слабость к экзотике и раритетам, их внимательно читаю. И чем дальше читаю, тем больше мне этот проект нравится. Главным образом потому, что среди аналогичной направленности проектов этот развивается достаточно активно и постепенно приближается, как мне начало казаться, к выходу из пелёнок и полноценному продукту (в противовес концептам, на стадии которых застыли многие его собратья).

В общем, после очередного отчёта с красивыми скриншотами я задался вопросом - а можно ли на это не просто посмотреть, но и реально этим попользоваться?

Читать далее
Всего голосов 20: ↑20 и ↓0+20
Комментарии9

Нюансы установки сторонних прошивок на Android-смартфоны. Первые шаги. Установка стороннего Recovery

Время на прочтение6 мин
Количество просмотров42K

Здравствуй, уважаемый читатель! Этот пост является первым в цикле статей про нюансы установки сторонних (далее — кастомных, от слова custom) прошивок на свои устройства под управлением ОС Andoid, а также о критически важных нюансах этого процесса. Цикл статей ориентирован на тех, кто либо только думает над тем, чтобы «накатить» на свой аппарат неофициальную прошивку, либо не знает некоторых моментов (например, как подружить GPay с новой ОС).

Читать далее
Всего голосов 8: ↑7 и ↓1+6
Комментарии51

Как сделать ваш терминал удобнее

Время на прочтение4 мин
Количество просмотров20K

Если вам приходится время от времени работать в терминале, и хочется сделать его удобнее, не затрачивая много сил, то небольшое руководство от Рейгана Макфарланда будет как нельзя кстати.

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

Читать далее
Всего голосов 20: ↑14 и ↓6+8
Комментарии25

Для программиста shell так же необходим, как умение читать

Время на прочтение4 мин
Количество просмотров16K
Грамотное владение shell — один из самых важных навыков, которыми вы как программист должны обладать. Unix shell — одна из самых мощных идей, реализованных в коде, и она должна стать вашей второй натурой. Ни один другой инструмент и близко не сравним с возможностью быстрого выполнения сложных задач или с сохранением этих команд в виде скриптов.

В своей работе я использую Vim в качестве редактора, а Unix — в качестве «IDE». Я не модифицирую свой vimrc, чтобы добавить в него функции IDE; самый важный плагин, который использую ежедневно — это Ctrl+P, и он нужен мне только для упрощения открытия файлов. Грамотное владение Vim — ценный навык, но важно понимать, когда от него нужно отказаться. В своей повседневной работе я взаимодействую с несколькими терминалами: обычно в одном из них есть Vim, второй используется для запуска сборок или демонов, а в третьем запущен shell, способный выполнить любые мои команды.



Постоянно открытый shell позволяет мне выполнять сложные задачи и отвечать на сложные вопросы. Интересные вещи я нахожу при помощи git grep, масштабные операции поиска и замены я выполняю через sed, отвечаю на вопросы с помощью awk, а более тонкие задачи я выполняю создаваемыми по ходу работы командами и конвейерами shell. Я обладаю свободой творческого решения задач без ограничений, заложенных проектировщиками IDE.
Читать дальше →
Всего голосов 44: ↑38 и ↓6+32
Комментарии72

WinUI 3 — Новая эра разработки под Windows

Время на прочтение4 мин
Количество просмотров60K

В этой статье:

- WinUI 3 - это не просто новая версия библиотеки пользовательских компонентов. Это изменит разработку ПО под Windows и не только.
- Как менялась разработка графических интерфейсов?
- Эволюция системных API пошла не по плану....
- В чём провал Universal Windows Platform?
- Что такое .NET, и почему за ним будущее?

Читать далее
Всего голосов 58: ↑52 и ↓6+46
Комментарии166

Пишем панельный менеджер для сертификатов на linux shell

Время на прочтение6 мин
Количество просмотров4.7K

Однажды мне пришлось поработать в проекте, где сертификатов оказалось мягко говоря много. Плюс несколько сотен виртуалок и контейнеров, где все сертификаты обновляли вручную от случая к случаю. Перед тем как подойти к вопросу автоматизации, было необходимо все это разобрать и причесать. Но долгое время руки просто не доходили - с одной стороны были вещи более приоритетные а сертификаты как-то потихоньку обновлялись и в общем напрягали нечасто. С другой стороны, навскидку в лоб задача решалась слишком уныло и кропотливо. То есть браться за нее не хотелось.

Возможно я бы собрался силой воли, помучился бы недельку, сделал бы все стандартными однострочниками+notepad+excel, но тут внезапно у меня случился больничный отпуск, а когда температура меня попустила, а на работу еще можно было не выходить. И я случайно вспомнил, что считаю себя спецом по bash.

И пусть я не хватаю лавры автора PIUPIU, но тем не менее встречайте:

35+ кбайт двух-панельного keystore manager на Linux shell

Читать далее
Всего голосов 14: ↑14 и ↓0+14
Комментарии5

Ближайшие события

Как «приручить» консоль, или 5 шагов к жизни с командной строкой

Время на прочтение15 мин
Количество просмотров24K

Всем привет! Меня зовут Осип, я Android-разработчик в red_mad_robot и я люблю автоматизировать всё, что автоматизируется. В этом мне помогает консоль, поэтому решил поделиться опытом, как настроить командную оболочку так, чтобы в ней было приятно работать и она ежедневно помогала вам решать задачи.

Статья для тех, кто использует Linux или macOS. Если у вас Windows, вы можете использовать WSL (приравнивается к Ubuntu).

Читать далее
Всего голосов 25: ↑24 и ↓1+23
Комментарии33

Ты еще не используешь tmux на полную! (Наверное)

Время на прочтение4 мин
Количество просмотров33K
Привет, Хабр! Представляю вашему вниманию перевод статьи "(たぶん)君はまだtmuxの真の力を引き出せていない".

Содержание


  • Что такое tmux
  • Запуск и начало новой сессии
  • Открытие нового окна
  • Переходы между окнами
  • Разделение окон и создание панелей
  • Передвижение между панелями
  • Передвижение между сессиями
  • [Практическое использование] Переадресация отображаемого содержания в tmux
  • [Практическое использование] Отображение названия ветки Git в информационном поле
  • [Практическое использование] Отображение пути текущей операции
  • [Практическое использование] Вызов сниппета
  • Ссылка на настройки .tmux.conf
  • Совместимость версий tmux
Читать дальше →
Всего голосов 24: ↑24 и ↓0+24
Комментарии17

Blue-Green Deployment на минималках

Время на прочтение15 мин
Количество просмотров42K

В этой статье мы с помощью bash, ssh, docker и nginx организуем бесшовную выкладку веб-приложения. Blue-green deployment — это техника, позволяющая мгновенно обновлять приложение, не отклоняя ни одного запроса. Она является одной из стратегий zero downtime deployment и лучше всего подходит для приложений, у которых один инстанс, но есть возможность загрузить рядом второй, готовый к работе инстанс.


Допустим, у Вас есть веб-приложение, с которым активно работает множество клиентов, и ему совершенно никак нельзя на пару секунд прилечь. А Вам очень нужно выкатить обновление библиотеки, фикс бага или новую крутую фичу. В обычной ситуации, потребуется остановить приложение, заменить его и снова запустить. В случае докера, можно сначала заменить, потом перезапустить, но всё равно будет период, в котором запросы к приложению не обработаются, ведь обычно приложению требуется некоторое время на первоначальную загрузку. А если оно запустится, но окажется неработоспособным? Вот такая задача, давайте её решать минимальными средствами и максимально элегантно.


Disclaimer: Большая часть статьи представлена в экспериментальном формате — в виде записи консольной сессии. Надеюсь, это будет не очень сложно воспринимать, и этот код сам себя документирует в достаточном объёме. Для атмосферности, представьте, что это не просто кодсниппеты, а бумага из "железного" телетайпа.


Читать дальше →
Всего голосов 17: ↑16 и ↓1+15
Комментарии36

Простые консольные команды, которые стоит знать всем

Время на прочтение5 мин
Количество просмотров18K
Навыки работы в терминале помогают быть более продуктивным.


Каждый современный разработчик старается совершенствоваться и быть более продуктивным. Терминал — инструмент, позволяющий работать быстрее. Вместо того чтобы кликать мышью для перемещения по графическому интерфейсу, можно просто выполнить ту же самую работу в терминале, но гораздо быстрее. Хотя, это потребует некоторых знаний о консольных командах, которые можно использовать.

Эта статья для тех, кто хотел бы освоить ниндзюцу консольных команд, но пока не имеет сколь значимого опыта работы с командной строкой. Ну и для тех, кто просто хочет больше знать и глубже понимать широкий спектр команд, доступных в терминале — вдруг встретится что-то новое.

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

Список базовых команд:


pwd — информация о каталоге
cd — смена каталога
ls — список файлов в каталоге
cp & mv — скопировать/переместить файл/каталог
mkdir & touch — создать каталог/файл
rmdir & rm — удалить каталог/файл
cat, tail & head — прочитать файл
grep — поиск текста в файле по регулярному выражению
find — поиск файла/каталога
Читать дальше →
Всего голосов 12: ↑6 и ↓60
Комментарии3

Книга «Bash и кибербезопасность: атака, защита и анализ из командной строки Linux»

Время на прочтение12 мин
Количество просмотров11K
image Привет, Хаброжители! Командная строка может стать идеальным инструментом для обеспечения кибербезопасности. Невероятная гибкость и абсолютная доступность превращают стандартный интерфейс командной строки (CLI) в фундаментальное решение, если у вас есть соответствующий опыт.

Авторы Пол Тронкон и Карл Олбинг рассказывают об инструментах и хитростях командной строки, помогающих собирать данные при упреждающей защите, анализировать логи и отслеживать состояние сетей. Пентестеры узнают, как проводить атаки, используя колоссальный функционал, встроенный практически в любую версию Linux.
Читать дальше →
Всего голосов 11: ↑11 и ↓0+11
Комментарии1

Осторожнее с редактированием bash-скриптов

Время на прочтение2 мин
Количество просмотров64K
Предположим, я написал такой bash-скрипт с названием delay.sh. Как думаете, что он делает?

#!/bin/bash
sleep 30
#rm -rf --no-preserve-root /
echo "Time's up!"

Похоже, он ожидает 30 секунд, а затем выводит сообщение на экран. Здесь никаких фокусов — он делает именно это. Там есть опасная команда в середине, но она закомментирована и не выполняется.

Представьте, что я снова запускаю этот скрипт, но теперь мне не хочется ждать 30 секунд — это слишком долго. Я открываю вторую консоль, меняю sleep 30 на sleep 3, затем сохраняю файл. Как думаете, что будет теперь?

Ну, через 30 секунд скрипт удалит все мои файлы.
Читать дальше →
Всего голосов 262: ↑256 и ↓6+250
Комментарии201

Можно ли писать скрипты на C++?

Время на прочтение3 мин
Количество просмотров28K

Недавно пришлось мне опять/снова погрузиться в чудесный мир программирования Linux скриптов. В принципе, дело не очень хитрое, но поскольку мне попадаются такие задачи не часто, то каждый раз изучаю заново. Знаю точно, что завтра многое забуду и через месяц опять буду гуглить, как сделать то или это. Проблема еще оказывается в том, что зачастую не пишешь скрипт заново, а модифицируешь существующий, уже написанный кем-то. А он может быть не bash, а sh или еще что-то… Различия в синтаксисе есть, что работает в sh по идее должно работать и в bash, но не всегда наоборот. А если там dash или ash? Я не знаю… Различия в этих скриптовых языках все же есть, и они сбивают с толка. Ну и конечно, лично для меня, вишенка на торте, когда скрипт вызывает какой нибудь sed или awk и там такие параметры в командной строке, что смотришь на них и диву даешься. Понятно, что это все зависит от квалификации программиста, но вот у меня не все в голове помещается. И вот сейчас мое терпение лопнуло и я подумал, что отныне хочу попробовать писать скрипты на c++…

Я понимаю, что для true системного администратора моя мысль может показаться крамольной. Но почему бы и нет?
Читать дальше →
Всего голосов 62: ↑55 и ↓7+48
Комментарии73