А знаете ли вы, что в 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
• Linux в роли серверной ОС привыкли считать гарантией надёжности и безопасности, он популярен у компаний и обычных пользователей. Однако никакая система не является полностью непроницаемой для атак. С учётом эволюционирующих киберугроз администраторы серверов должны принимать проактивные меры для защиты своих систем от атак и вовремя закрывать уязвимости.
• По ссылкам ниже можно найти очень полезный материал, который содержит рекомендации для тех, кто только начинает заниматься администрированием и защитой Linux-серверов и планирует изучить базовые техники создания укреплённой линукс-среды, устойчивой к различным угрозам:
➡Hardening Linux Servers Against Threats and Attacks.
➡40 Linux Server Hardening Security Tips [2024 edition].
➡Linux Hardening Guide.
#Linux
• Нашел очень крутой ресурс по основам Linux для начинающих. Вся соль в том, что материал представлен в виде мини-курсов, которые содержат уроки с заданиями. Если приступаете к решению задач, то сервис проверит ваши ответы автоматически. Доступно множество тем для изучения:
➡Командная строка;
➡Работа с текстом;
➡Управление пользователями;
➡Управление процессами;
➡Файловая система;
➡Ядро Linux;
➡Логирование;
➡Сети и многое другое...
➡️https://linuxjourney.com
#Linux
👩💻 Управление Linux-сервером — самая ценная инвестиция.
• В эпоху облаков настройка Linux-сервера своими руками кажется неким вымирающим искусством. Для непосвящённого человека даже bash-скрипты выглядят как заклинания, а коллеги проникаются уважением к сисадмину, как древние индейцы к своему шаману…
• Сейчас это «древнее искусство» вновь стало актуальным. История идёт по кругу — всё старое возвращается в новом виде. Запуск сервера на своём хостинге стал хорошей альтернативой облакам. Автор этой статьи называет ряд причин, почему настройка и управление Linux-сервером на своём собственном железе/хостинге это круто и даже необходимо...
➡️https://habr.com/ru/post/768548/
#Linux
👩💻 Linux и мировые рекорды производительности.
• Знаете ли вы, что абсолютное большинство мировых рекордов производительности было установлено на системах под управлением Linux? От высокопроизводительных вычислений и обработки больших данных до сетевых коммуникаций и энергоэффективности – Linux доминирует практически во всех дисциплинах.
• Возьмем, к примеру, тест LINPACK, который используется для составления списка Top500 самых мощных суперкомпьютеров мира. Этот тест измеряет скорость решения плотных систем линейных уравнений и является одним из основных показателей производительности суперкомпьютеров.
• Текущий рекорд в тесте LINPACK принадлежит суперкомпьютеру Frontier и составляет 1.2 экзафлопса (квинтиллиона операций с плавающей запятой в секунду). Frontier работает под управлением специализированного дистрибутива Linux и использует более 9408 оптимизированных 64-ядерных процессоров AMD Epyc Milan с частотой 2 ГГц и 37632 ускорителя AMD Instinct MI250x.
• Другой важный рекорд – скорость передачи данных по сети. В 2020 году команда исследователей из Университета Иллинойса, Калифорнийского технологического института и Ливерморской национальной лаборатории им. Лоуренса установила новый мировой рекорд пропускной способности сети – 1,2 петабита в секунду (Пбит/с) на расстоянии 1000 км. Это примерно в миллион раз быстрее, чем средняя скорость домашнего интернет-соединения.
• Для достижения такой скорости исследователи использовали экспериментальную сеть, состоящую из четырех оптических линий, каждая из которых работала на скорости 300 Гбит/с. Управляющие серверы этой сети работали под управлением модифицированного ядра Linux с поддержкой специальных сетевых протоколов и драйверов.
• Linux также помогает устанавливать рекорды энергоэффективности в центрах обработки данных (ЦОД). Проект Hyperscale Datacenter Efficiency (HDE) разрабатывает стандарты и практики для повышения эффективности использования энергии в крупных ЦОД. Участники проекта, такие как Google, Facebook, Intel и другие, регулярно публикуют отчеты о достижениях в этой области.
• Так, в 2021 году компания Supermicro объявила о достижении рекордной эффективности использования энергии (PUE) на уровне 1,008 для своего ЦОД в Кремниевой долине. Это означает, что на каждый ватт энергии, потребляемой серверами, тратится всего 0,008 ватт на охлаждение и другие накладные расходы. Ключевую роль в достижении такой эффективности сыграло использование серверов на базе процессоров Intel Xeon и ОС Linux с оптимизированным управлением питанием.
• Таким образом, Linux не только помогает устанавливать рекорды производительности, но и делает работу ИТ-систем более экологичной и экономичной. Благодаря открытости и гибкости Linux, исследователи и инженеры могут оптимизировать каждый аспект системы – от ядра ОС до прикладных библиотек и алгоритмов, добиваясь поразительных результатов.
#Linux
👩💻 Как создавалось ядро Linux.
• В далёком 2013 году один из разработчиков Microsoft детально объяснил, в чём главные технические проблемы при разработке ядра Windows NT. Спустя десять лет Windows 10/11 работает на том же ядре, а многие старые проблемы так и остались нерешёнными.
• Хотя в ряде задач Windows превосходит Linux, но в большинстве тестов она на порядок медленнее. По словам разработчика, это отставание усугубляется, а причина «социальная». Суть в том, как организован процесс разработки, внесения изменений в ОС. Если в мире опенсорса это открытый процесс, который несёт пользу и улучшает систему, то в мире корпоративного ПО зачастую изменения вносятся по причинам эгоизма, желания продвижения по карьерной лестнице, славы и т.д. Всё это ведёт к деградации продукта.
• Один из студенческих товарищей Линуса Торвальдса вспоминает ранние дни Linux, как всё начиналось. С исторической точки зрения в воспоминаниях Ларса Вирцениуса много интересных фактов. Они дают понять, под влиянием каких концепций создавалось ядро Linux. Сообщество Open Source — это абсолютно другой мир, который кардинально отличается от корпоративной разработки.
• Ларс познакомился с Линусом Торвальдсом на первом курсе в университете Хельсинки, тогда же они получили доступ к серверу Unix и случайно обнаружили на нём Usenet, когда по ошибке ввели команду rn вместо rm (подробнее вот тут). После службы в армии в 1990 году ребята взяли курс обучения по C и программированию Unix, что включало в себя изучение архитектуры ядра Unix. Ларс и Линус также заинтересовались и изучили устройства ядра других ОС, таких как QNX и Plan 9.
• В январе 1991 года Линус купил свой первый ПК и сутками зависал в Prince of Persia, а позже приобрёл ОС MINIX, потому что с университета привык к Unix и хотел установить на домашнем компьютере похожую систему.
• Когда Линус наконец прошёл игру, он начал изучать ассемблер и в качестве эксперимента реализовал программу с многозадачностью. Затем начал понемногу писать ядро, добавляя функцию за функцией. Например, однажды он случайно запустил HDD вместо модема, так что в загрузочный сектор записалась инструкция ATDT с номером университетской BBS — после этого Линус прописал в ядре права доступа к файлам. Так и шёл процесс. Постепенно появлялась и другая функциональность. Во время рождественских каникул 1991 года после сессии Линус реализовал виртуальную память, и т. д.
• Ядро Linux было написано студентами под сильным влиянием Unix. В августе 1991 года Линус впервые упомянул о своём проекте в эхоконференции comp.os.minix. Первоначально система называлась Freax. В 1992 году вышел первый дистрибутив Softlanding Linux System (SLS), а также под Linux была портирована система X11, что сильно повлияло на популярность Linux.
• Когда Линус программировал на рабочем ПК, его раздражала медлительность машины — и он потратил целый день, чтобы переписать на ассемблере парсер командной строки в ядре (потом его переписали обратно на С). А потом Линус несколько дней играл в Quake, выдавая это за стресс-тест управления памятью ядра.
• Так или иначе, но разработчики Linux изначально ориентировались на производительность, они писали на С и ассемблере, и в общем это была цельная, мощная концепция. Наверное, в этом одно из отличий с ядром Windows NT, над которым работают тысячи программистов в корпорации Microsoft, не имея единого видения.
• Весной 1994 года работа над ядром Linux была в основном закончена, так что Ларс организовал торжественную презентацию Linux 1.0 с приглашением прессы:
➡https://youtu.be/qaDpjlFpbfo
• На презентации 30 марта 1994 года Линус Торвальдс пошутил, что коммерческая лицензия на Unix стоит так дорого, что проще написать собственную операционную систему.
#Linux
👩💻 picosnitch. Утилита для мониторинга трафика в Linux.
• Смотрите, какая есть крутая тулза для мониторинга трафика в Linux. Покажет нам данные по определенному приложению, хешу, порту, домену и исполняемому файлу. Конфигурируется через json, а инфу выводит в веб-интерфейсе. А еще мы можем настроить различные уведомления, к примеру, когда наше ПО полезет в сеть. В общем и целом, по ссылке ниже (или на скриншоте) Вы сможете найти подробное описание и другую необходимую информацию:
➡️https://github.com/elesiuta/picosnitch
#Linux
👩💻 ++ 101 Linux commands.
• Объемная книга (CheatSheet) для изучения командной строки Linux. Материал пригодиться не только начинающим, но и опытным пользователям Linux. Содержание следующее:
• Basics;
- File Hierarchy Standard (FHS);
- Commands;
• Disk and File System Management;
- General Disk Manipulation (non-LVM);
- Globs (Wildcards);
- Regex;
- Stream redirection;
• Text Readers & Editors;
- Less;
- VI;
• User and Group Management;
• File System Permissions;
• SSH;
• Cronjobs;
• Package Management;
- RPM;
- YUM;
• List of commands by category:
- Directory Navigation;
- File Commands;
- File and Directory Manipulation;
- Package archive and compression tools;
- System commands;
- Networking Commands;
- Package Management;
- User Information commands;
- Session commands;
- Getting Help;
- Applications.
#Linux
👩💻 Oracle Linux Networking.
• Еще один полезный плейлист от Oracle, который содержит материал по инструментам для настройки и управления сетью в системе - nmcli, nftables, ip, firewalld:
• Network Configuration Files on Oracle Linux;
• Using NetworkManager CLI (nmcli) on Oracle Linux;
• Network Bonding in Oracle Linux with the NMCLI Utility;
• Create VLANs in Oracle Linux with the NMCLI and IP Utilities;
• Using the ip command on Oracle Linux;
• Introduction to using firewalld on Oracle Linux;
• Using nftables on Oracle Linux.
#Linux
👩💻 Oracle Linux Monitoring and Logging.
• Полезный плейлист коротких видеороликов для начинающих, об утилитах, которые помогают получить информацию о состоянии системы (iostat, rsyslog, top, vmstat).
• System Logging with rsyslog on Oracle Linux;
• System Logging with logwatch on Oracle Linux;
• System Logging with journald on Oracle Linux;
• Using the sosreport Utility on Oracle Linux;
• Using the iostat Utility on Oracle Linux;
• Using the mpstat Utility on Oracle Linux;
• Using the vmstat Utility on Oracle Linux;
• Using the netstat Utility on Oracle Linux;
• Using the top Utility on Oracle Linux;
• Use Gprofng for Performance Profiling Applications;
• Linux Auditing System on Oracle Linux.
#Linux
👩💻 Многообразие Linux-дистрибутивов.
• Если Вы хотя бы чуть-чуть знакомы с Linux, то наверняка задавались вопросом: "Для чего? Почему такое огромное кол-во дистрибутивов? Можно же было сделать один-два, ну три варианта… Почему их сотни?"...
• Вы и так знаете, что большинство дистрибутивов НЕ делаются для продажи, а создаются как сопутствующий инструмент, который решает определенные задачи и потребности. Это относится не только к дистрибутивам, но и к инструментам, которые есть в Linux. И чаще всего созданное решение авторы публикуют в открытом доступе для ознакомления или использования всем желающим. Созданное решение надо развивать, исправлять ошибки, тестировать, и гораздо продуктивнее, если к этой работе подключатся энтузиасты с новыми предложениями.
• Давайте представим, что Вы пришли на ярмарку, где цель показать свое мастерство и обзавестись полезными контактами с мастерами в определенных сферах, а продажи - на втором месте. Отсюда получаем качество продукта и уважение к клиенту - отсутствие телеметрии и рекламы, открытый API, модульность и т.д. А уже потом, если будет спрос, будет и предложение (готовность платить за работающую систему (люди и компании)).
• Ну, а сколько дистрибутивов на самом деле? Скажу сразу, точное кол-во никто не знает. Может тысяча? Может сотни тысяч? Собственный дистрибутив может создать любой желающий, особенно если за основу взят другой дистрибутив. Тут даже и знаний особых не нужно. Неделя-две и вот Вы создали свой собственный дистрибутив.
• Для создания собственного дистрибутива есть пошаговая инструкция, с которой может ознакомиться любой желающий. Она опубликована в открытом доступе (ссылка будет ниже) и содержит 400 страниц информации. Именно поэтому вам и потребуется 2 недели свободного времени =)
➡https://www.linuxfromscratch.org
• P.S. Если Вам интересно, какие дистрибутивы существовали в разное время, то на этой странице отображается актуальный список в хронологическом порядке:
- С даты начала проекта до даты окончания существования дистрибутива или текущего года, если разработка дистрибутива в текущий момент продолжается.
- Посредством соединения кривыми линиями показано, какие дистрибутивы являются производными от других дистрибутивов.
- Вертикальные пунктирные линии указывают на различные слияния проектов.
➡Linux Distribution Timeline.
#Linux