А знаете ли вы, что в Bash есть особая переменная "$_" ? Из описания можно узнать, что в переменную "$_" помещается последний аргумент последней команды.
Что-то знакомое? Конечно, в Python есть примерно тоже самое.
Мы знаем, что дата первого релиза Bash (8 июня 1989) несколько раньше чем первый релиз Python (20 февраля 1991). Если учесть, что по задумке автора Python это агрегация самых успешных практик отовсюду, можно ли сказать что именно эта фишка к нему пришла из Bash? Ни подтверждения ни опровержения я пока не нашел.
Давайте просто считать это совпадением 😉
А как это может быть полезно в Bash?
Приведу простой пример, который оценят те, кто часто работает в терминале.
Допустим, нам надо создать директорию и зайти в неё. Что обычно делаем?
:~$ mkdir foldername
:~$ cd foldername
:~/foldername$
Как это сделать в одну команду?
:~$ mkdir foldername && cd foldername
:~/foldername$
Уже лучше, но хочется короче, без повторов. Вот тут и пригодится наша переменная. Напомню, что в неё сохраняется последний аргумент предыдущей команды.
:~$ mkdir foldername && cd $_
:~/foldername$
_________________
PS.
Символы "&&"" разделяют команды и означают, что требуется выполнить вторую команду только если первая завершилась успешно.
#linux#tricks
Waydroid - решение на основе контейнеров для запуска Android приложения в GNU/Linux системах, используй Wayland
Если любите Linux, то Waydroid даст вам возможность запуска Android приложений и сделать их интеграцию в систему как нативные приложения.
#linux
• На хабре недавно был опубликован очень содержательный гайд по настройке рабочего окружения: Linux, VScode, Python. Если используете Linux, то уверяю, что вы найдете для себя очень много полезной информации. Ну и не забывайте про комменты, там есть интересные мнения и информация от других пользователей по настройке окружения:
➡️https://habr.com/ru/post/916040/
#Linux
• Если у вас возникает потребность в логировании всех команд пользователя Linux, которые он вводит в консоли, то есть отличное решение для данной задачи - Snoopy Command Logger. Настраивается предельно легко и очень быстро. Можно настроить различные фильтры записи, что сохранять, что нет. Например: можно задать логирование только root, указать формат лога, настроить исключения и т.д.
• Тут стоит учитывать, что root может очистить файл, куда будут сохранятся логи. Соответственно если существует такой риск, то пересылайте сохраненные логи на удаленный сервер, к которому нет доступа с текущего.
➡️https://github.com/a2o/snoopy
#Linux
Как патчить ядро Linux: подробное руководство
#Linux
Всем привет, это Тимур. Сейчас в YADRO я разрабатываю сетевую операционную систему для коммутаторов KORNFELD. В ходе этого проекта летом я получил сложную задачу: реализовать установку опции PROTO_DOWN для Ethernet-интерфейсов в ядре Linux. «Из коробки» ядро поддерживает эту опцию только для vxlan и macvlan-интерфейсов, а для Ethernet поддержка определяется драйвером сетевого устройства.
В статье я подробно расскажу о той части задачи, что касается непосредственно ядра Linux. На реализацию требования я потратил много сил, времени и хочу, чтобы мой опыт остался в сообществе. Постараюсь максимально подробно объяснить каждый шаг, чтобы вы смогли построить собственный процесс разработки на этой основе, даже если никогда не занимались разработкой для ядра. Статья будет полезна не только программистам, но и любителям Linux, так как в большей степени она посвящена тонкостям работы с этой ОС, а не программированию.
Ссылка на статью
• Операционная система Linux, а точнее, ее ядро, является основой для огромного числа дистрибутивов. Выбор подходящего дистрибутива – задача, требующая понимания их ключевых различий, философии и целевой аудитории.
• На хабре была опубликована хорошая статья, которая преследует цель предоставить структурированный обзор наиболее значимых дистрибутивов и их семейств, осветить их сильные и слабые стороны, а также помочь в формировании критериев для осознанного выбора. Материал содержит тонну полезных ссылок для осознанного подхода к выбору и дальнейшему изучению мира Linux.
➡️https://habr.com/ru/articles/908986/
#Linux
👩💻 Создаем свой загрузочный диск Linux.
• Если у вас есть потребность в создании собственного загрузочного образа Linux, чтобы всегда иметь под рукой флешку с готовой к работе системой, то я рекомендую изучить данную статью.
• Тут описывается, как создать собственный загрузочный диск Linux, добавить в него только нужные программы и убрать все лишнее. Полученный образ у автора занял менее 25 Мб. Образ позволяет быстро загружаться, работать в текстовом режиме, создавать, редактировать, удалять файлы на разных файловых системах, имеет поддержку русского языка. За основу взят Debian.
➡️https://habr.com/ru/articles/709528/
#Linux
• На прошлой неделе я делился с вами ссылкой на бесплатный курс по изучению Linux, который вам очень понравился (судя по реакциям и репостам). Так вот, после этой публикации мне написал один из подписчиков и поделился ссылкой на очень полезный блог одного автора, который написал большое кол-во книг по изучению Linux и опубликовал их совершенно бесплатно. Книги написаны на английском языке, а некоторые из них опубликованы в бородатом году, но там много тем, которые являются актуальными. Так что забирайте по ссылочке ниже и изучайте:
➡️https://linux-training.be
#Linux
👩💻 Большое руководство по сетям и шифрованию трафика в Linux.
• На хабре есть очень крутое руководство, которое состоит из двух частей и содержит информацию по теме шифрования трафика в Linux системах. Если в коротко, то мы рассмотрим основные методы шифрования, которые можно использовать в Linux, и разберем, как их внедрить. Мы попытаемся разобраться, как работает криптография на уровне протоколов, как работает сеть в Linux, что такое сквозное шифрование и виртуальные частные сети.
➡️Часть 1 [23 min];
➡️Часть 2 [16 min].
#Linux
👩💻Если не можете выбрать подходящий Linux дистрибутив, то вот вам полностью бесплатный сервис, который позволяет прямо в браузере затестить различные версии операционных систем. Тут даже есть богатый выбор графических оболочек, а общее кол-во доступных систем переваливает за 70!
➡️https://distrosea.com/
• Кстати, судя по Reddit, проект поддерживается только одним человеком. Достойно уважения 👍
#Linux
• Turnkey Linux - отличный проект, который содержит огромное кол-во дистрибутивов на базе Linux с преднастроенным набором ПО (на выбор). Самое главное: сервис бесплатный, имеет открытый исходный код и более 100 готовых решений.
• В общем и целом, если нужен готовый образ под определенные нужды, то загляните сюда. Да, вы можете всё сделать самостоятельно (скачать отдельно нужный образ, настроить ПО и т.д.), но тут всё уже сделали за вас:
➡️https://www.turnkeylinux.org
#Linux
• Полезный репозиторий, который содержит огромную коллекцию ссылок, связанных с безопасностью ядра Linux и эксплуатацией уязвимостей:
- Books.
- Techniques:
➡Exploitation;
➡Protection Bypasses.
- Vulnerabilities:
➡Info-leaks;
➡LPE;
➡RCE;
➡Other.
- Finding Bugs.
- Defensive.
- Exploits.
- Tools:
➡Fuzzers;
➡Assorted.
- Practice:
➡Workshops;
➡CTF Tasks;
➡Other Tasks;
➡Playgrounds;
➡Infrastructure.
➡️https://github.com/xairy/linux-kernel-exploitation
• В качестве дополнения рекомендую обратить внимание на материал, который описывает ядро Linux и его внутреннее устройство:
➡Первые шаги после декомпрессии ядра — описывает первые шаги в ядре.
➡Начальная обработка прерываний и исключений — описывает инициализацию начальных прерываний и начального обработчика ошибки страницы.
➡Последние приготовления перед точкой входа в ядро — описывает последние приготовления перед вызовом start_kernel.
➡Точка входа в ядро — описывает первые шаги в общем коде ядра.
➡Продолжение архитектурно-зависимой инициализации — описывает архитектурно-зависимую инициализацию.
➡Архитектурно-зависимая инициализация, снова... — описывает продолжение процесса архитектурно-зависимой инициализации.
➡Конец архитектурно-зависимой инициализации, почти... — описывает конец setup_arch.
➡Инициализация RCU — описывает инициализацию RCU.
➡Конец инициализации — последняя часть об инициализации ядра Linux.
#Linux
• Смотрите какая крутая библиотека команд, однострочников и шпаргалок для линуксоидов. На самом деле, данному ресурсу уже много лет, но я решил напомнить о нем, так как библиотека постоянно обновляется авторами и содержит тонну полезной информации, как для начинающих, так и для опытных специалистов.
• На текущий момент времени приложение содержит 6686 страниц информации по 22 основным категориям:
➡One-liners;
➡System information;
➡System control;
➡Users & Groups;
➡Files & Folders;
➡Input;
➡Printing;
➡JSON;
➡Network;
➡Search & Find;
➡GIT;
➡SSH;
➡Video & Audio;
➡Package manager;
➡Hacking tools;
➡Terminal games;
➡Crypto currencies;
➡VIM Texteditor;
➡Emacs Texteditor;
➡Nano Texteditor;
➡Pico Texteditor;
➡Micro Texteditor.
• Здесь собраны все основные команды, которые разбиты по разделам и используются при работе с UNIX-подобными системами. К примеру для работы с файлами, папками, сетью и т.д. А может вы ищите хакерские примочки? Пожалуйста!
• Исходный код открыт, а еще есть приложение приложение на Android, которое можно скачать с GitHub или F-Droid. Пользуйтесь!
#linux